Implemented many more OpCodes - again!
This commit is contained in:
@@ -285,6 +285,9 @@ namespace Desktop
|
||||
case 0x19:
|
||||
mnemonic = "ADD HL, DE";
|
||||
break;
|
||||
case 0x1B:
|
||||
mnemonic = "DEC DE";
|
||||
break;
|
||||
case 0x20:
|
||||
sbyte jrOffset = (sbyte)_memoryBus.Read((ushort)(currentPc + 1));
|
||||
ushort destination = (ushort)(currentPc + 2 + jrOffset);
|
||||
@@ -306,6 +309,11 @@ namespace Desktop
|
||||
case 0x23:
|
||||
mnemonic = "INC HL";
|
||||
break;
|
||||
case 0x26:
|
||||
byte hImm = _memoryBus.Read((ushort)(currentPc + 1));
|
||||
mnemonic = $"LD H, 0x{hImm:X2}";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
case 0x28:
|
||||
sbyte jrZOffset = (sbyte)_memoryBus.Read((ushort)(currentPc + 1));
|
||||
ushort jrZDest = (ushort)(currentPc + 2 + jrZOffset);
|
||||
@@ -343,6 +351,9 @@ namespace Desktop
|
||||
mnemonic = $"LD (HL), 0x{memValue:X2}";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
case 0x37:
|
||||
mnemonic = "SCF";
|
||||
break;
|
||||
case 0x3E:
|
||||
mnemonic = $"LD A, 0x{_memoryBus.Read((ushort)(currentPc + 1)):X2}";
|
||||
instructionLength = 2;
|
||||
@@ -350,6 +361,15 @@ namespace Desktop
|
||||
case 0x47:
|
||||
mnemonic = "LD B, A";
|
||||
break;
|
||||
case 0x4E:
|
||||
mnemonic = "LD C, (HL)";
|
||||
break;
|
||||
case 0x56:
|
||||
mnemonic = "LD D, (HL)";
|
||||
break;
|
||||
case 0x5E:
|
||||
mnemonic = "LD E, (HL)";
|
||||
break;
|
||||
case 0x5F:
|
||||
mnemonic = "LD E, A";
|
||||
break;
|
||||
@@ -359,9 +379,21 @@ namespace Desktop
|
||||
case 0x6B:
|
||||
mnemonic = "LD L, E";
|
||||
break;
|
||||
case 0x6F:
|
||||
mnemonic = "LD L, A";
|
||||
break;
|
||||
case 0x77:
|
||||
mnemonic = "LD (HL), A";
|
||||
break;
|
||||
case 0x7A:
|
||||
mnemonic = "LD A, D";
|
||||
break;
|
||||
case 0x7E:
|
||||
mnemonic = "LD A, (HL)";
|
||||
break;
|
||||
case 0x87:
|
||||
mnemonic = "ADD A, A";
|
||||
break;
|
||||
case 0x91:
|
||||
mnemonic = "SUB C";
|
||||
break;
|
||||
@@ -371,6 +403,12 @@ namespace Desktop
|
||||
case 0xAF:
|
||||
mnemonic = "XOR A";
|
||||
break;
|
||||
case 0xB3:
|
||||
mnemonic = "OR E";
|
||||
break;
|
||||
case 0xB9:
|
||||
mnemonic = "CP C";
|
||||
break;
|
||||
case 0xBC:
|
||||
mnemonic = "CP H";
|
||||
break;
|
||||
@@ -381,6 +419,16 @@ namespace Desktop
|
||||
mnemonic = $"JP 0x{jpHigh:X2}{jpLow:X2}";
|
||||
instructionLength = 3;
|
||||
break;
|
||||
case 0xC6:
|
||||
{
|
||||
byte addImm = _memoryBus.Read((ushort)(currentPc + 1));
|
||||
mnemonic = $"ADD A, 0x{addImm:X2}";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
}
|
||||
case 0xC8:
|
||||
mnemonic = "RET Z";
|
||||
break;
|
||||
case 0xC9:
|
||||
mnemonic = "RET";
|
||||
break;
|
||||
@@ -389,6 +437,9 @@ namespace Desktop
|
||||
mnemonic = $"CALL 0x{callDest:X4}";
|
||||
instructionLength = 3;
|
||||
break;
|
||||
case 0xD0:
|
||||
mnemonic = "RET NC";
|
||||
break;
|
||||
case 0xD3:
|
||||
byte outPort = _memoryBus.Read((ushort)(currentPc + 1));
|
||||
mnemonic = $"OUT (0x{outPort:X2}), A";
|
||||
@@ -490,6 +541,14 @@ namespace Desktop
|
||||
{
|
||||
mnemonic = $"BIT 1, (IY{sign}{d})";
|
||||
}
|
||||
else if (cbOpcode == 0x86)
|
||||
{
|
||||
mnemonic = $"RES 0, (IY{sign}{d})";
|
||||
}
|
||||
else if (cbOpcode == 0xA6)
|
||||
{
|
||||
mnemonic = $"RES 4, (IY{sign}{d})";
|
||||
}
|
||||
else if (cbOpcode == 0xCE)
|
||||
{
|
||||
mnemonic = $"SET 1, (IY{sign}{d})";
|
||||
|
||||
Reference in New Issue
Block a user