Added some undocumented LD IY OpCodes
This commit is contained in:
@@ -1897,6 +1897,9 @@ namespace Core.Cpu
|
|||||||
case 0x7C: // LD A, IXH
|
case 0x7C: // LD A, IXH
|
||||||
AF.High = IX.High;
|
AF.High = IX.High;
|
||||||
return 8;
|
return 8;
|
||||||
|
case 0x7D: // LD A, IXL
|
||||||
|
AF.High = IX.Low;
|
||||||
|
return 8;
|
||||||
case 0x7E: // LD A, (IX+d)
|
case 0x7E: // LD A, (IX+d)
|
||||||
sbyte offset7E = (sbyte)FetchByte();
|
sbyte offset7E = (sbyte)FetchByte();
|
||||||
ushort address7E = (ushort)(IX.Word + offset7E);
|
ushort address7E = (ushort)(IX.Word + offset7E);
|
||||||
@@ -2222,6 +2225,13 @@ namespace Core.Cpu
|
|||||||
ushort targetAddr = (ushort)(IY.Word + displacementVal);
|
ushort targetAddr = (ushort)(IY.Word + displacementVal);
|
||||||
HL.Low = ReadMemory(targetAddr);
|
HL.Low = ReadMemory(targetAddr);
|
||||||
return 19;
|
return 19;
|
||||||
|
case 0x70: // LD (IY+d), B
|
||||||
|
{
|
||||||
|
sbyte offset70 = (sbyte)FetchByte();
|
||||||
|
ushort address70 = (ushort)(IY.Word + offset70);
|
||||||
|
WriteMemory(address70, BC.High);
|
||||||
|
return 19;
|
||||||
|
}
|
||||||
case 0x71: // LD (IY+d), C
|
case 0x71: // LD (IY+d), C
|
||||||
{
|
{
|
||||||
sbyte offset71 = (sbyte)FetchByte();
|
sbyte offset71 = (sbyte)FetchByte();
|
||||||
@@ -2332,6 +2342,18 @@ namespace Core.Cpu
|
|||||||
case 0x63: IY.High = DE.Low; return 8; // LD IYH, E
|
case 0x63: IY.High = DE.Low; return 8; // LD IYH, E
|
||||||
case 0x64: return 8; // LD IYH, IYH
|
case 0x64: return 8; // LD IYH, IYH
|
||||||
case 0x65: IY.High = IY.Low; return 8; // LD IYH, IYL
|
case 0x65: IY.High = IY.Low; return 8; // LD IYH, IYL
|
||||||
|
case 0x67: // LD IYH, A
|
||||||
|
IY.High = AF.High;
|
||||||
|
return 8;
|
||||||
|
case 0x6F: // LD IYL, A
|
||||||
|
IY.Low = AF.High;
|
||||||
|
return 8;
|
||||||
|
case 0x7C: // LD A, IYH
|
||||||
|
AF.High = IY.High;
|
||||||
|
return 8;
|
||||||
|
case 0x7D: // LD A, IYL
|
||||||
|
AF.High = IY.Low;
|
||||||
|
return 8;
|
||||||
case 0x68: IY.Low = BC.High; return 8; // LD IYL, B
|
case 0x68: IY.Low = BC.High; return 8; // LD IYL, B
|
||||||
case 0x69: IY.Low = BC.Low; return 8; // LD IYL, C
|
case 0x69: IY.Low = BC.Low; return 8; // LD IYL, C
|
||||||
case 0x6A: IY.Low = DE.High; return 8; // LD IYL, D
|
case 0x6A: IY.Low = DE.High; return 8; // LD IYL, D
|
||||||
|
|||||||
Reference in New Issue
Block a user