Implemented a load more Z80 OpCodes

This commit is contained in:
2026-04-09 16:08:56 +01:00
parent 340583d663
commit f22da937b5
3 changed files with 179 additions and 6 deletions

View File

@@ -208,9 +208,27 @@ namespace Desktop
mnemonic = $"LD DE, 0x{deHigh:X2}{deLow:X2}";
instructionLength = 3;
break;
case 0x19:
mnemonic = "ADD HL, DE";
break;
case 0x20:
sbyte jrOffset = (sbyte)_memoryBus.Read((ushort)(currentPc + 1));
ushort destination = (ushort)(currentPc + 2 + jrOffset);
mnemonic = $"JR NZ, 0x{destination:X4}";
instructionLength = 2;
break;
case 0x23:
mnemonic = "INC HL";
break;
case 0x2B:
mnemonic = "DEC HL";
break;
case 0x30:
sbyte jrNcOffset = (sbyte)_memoryBus.Read((ushort)(currentPc + 1));
ushort dest = (ushort)(currentPc + 2 + jrNcOffset);
mnemonic = $"JR NC, 0x{dest:X4}";
instructionLength = 2;
break;
case 0x36:
byte memValue = _memoryBus.Read((ushort)(currentPc + 1));
mnemonic = $"LD (HL), 0x{memValue:X2}";
@@ -229,9 +247,15 @@ namespace Desktop
case 0x6B:
mnemonic = "LD L, E";
break;
case 0xA7:
mnemonic = "AND A";
break;
case 0xAF:
mnemonic = "XOR A";
break;
case 0xBC:
mnemonic = "CP H";
break;
case 0xC3:
// JP nn
byte jpLow = _memoryBus.Read((ushort)(currentPc + 1));
@@ -259,7 +283,10 @@ namespace Desktop
mnemonic = "LD I, A";
instructionLength = 2; // 0xED + 0x47
break;
case 0x52:
mnemonic = "SBC HL, DE";
instructionLength = 2; // ED 52
break;
// Example: ED B0 is LDIR (a massive block copy instruction)
case 0xB0:
mnemonic = "LDIR";