private ushort Param(ParamIndex index, ushort ipOffset = 1, DataSize size = X8086.DataSize.UseAddressingMode) { if (size == DataSize.UseAddressingMode) { size = addrMode.Size; } opCodeSize += (byte)(size + 1); return(ParamNOPS(index, ipOffset, size)); }
private ushort ParamNOPS(ParamIndex index, ushort ipOffset = 1, DataSize size = X8086.DataSize.UseAddressingMode) { // Extra cycles for address misalignment // This is too CPU expensive, with few benefits, if any... not worth it //If (mRegisters.IP Mod 2) <> 0 Then clkCyc += 4 return((ushort)((size == DataSize.Byte || (size == DataSize.UseAddressingMode && addrMode.Size == DataSize.Byte)) ? ( get_RAM8(mRegisters.CS, mRegisters.IP, (byte)(ipOffset + index), true)) : ( get_RAM16(mRegisters.CS, mRegisters.IP, (byte)(ipOffset + (int)index * 2), true)))); }