Implemented SNA files. More OpCodes. Chuckie Egg Title SCreen!
This commit is contained in:
@@ -323,6 +323,7 @@ namespace Desktop
|
||||
case 0x08:
|
||||
mnemonic = "EX AF, AF'";
|
||||
break;
|
||||
case 0x0A: mnemonic = "LD A, (BC)"; break;
|
||||
case 0x12: mnemonic = "LD (DE), A"; break;
|
||||
case 0x13: mnemonic = "INC DE"; break;
|
||||
case 0x33: mnemonic = "INC SP"; break;
|
||||
@@ -391,9 +392,7 @@ namespace Desktop
|
||||
break;
|
||||
case 0x18:
|
||||
sbyte dUnconditional = (sbyte)_memoryBus.Read((ushort)(currentPc + 1));
|
||||
// Calculate the target address based on the PC *after* this 2-byte instruction
|
||||
ushort targetAddressUnconditional = (ushort)(currentPc + 2 + dUnconditional);
|
||||
|
||||
mnemonic = $"JR 0x{targetAddressUnconditional:X4}";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
@@ -981,6 +980,7 @@ namespace Desktop
|
||||
|
||||
switch (extendedOp)
|
||||
{
|
||||
case 0x42: mnemonic = "SBC HL, BC"; instructionLength = 2; break;
|
||||
case 0x43:
|
||||
ushort bcAddr = (ushort)(_memoryBus.Read((ushort)(currentPc + 2)) | (_memoryBus.Read((ushort)(currentPc + 3)) << 8));
|
||||
mnemonic = $"LD (0x{bcAddr:X4}), BC";
|
||||
@@ -994,11 +994,17 @@ namespace Desktop
|
||||
mnemonic = "LD I, A";
|
||||
instructionLength = 2; // 0xED + 0x47
|
||||
break;
|
||||
// Inside your ED prefix switch statement in the debugger:
|
||||
case 0x4A: mnemonic = "ADC HL, BC"; instructionLength = 2; break;
|
||||
case 0x4B:
|
||||
ushort addr4B = (ushort)(_memoryBus.Read((ushort)(currentPc + 2)) | (_memoryBus.Read((ushort)(currentPc + 3)) << 8));
|
||||
mnemonic = $"LD BC, (0x{addr4B:X4})";
|
||||
instructionLength = 4;
|
||||
break;
|
||||
case 0x4D:
|
||||
mnemonic = "RETI";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
case 0x52:
|
||||
mnemonic = "SBC HL, DE";
|
||||
instructionLength = 2; // ED 52
|
||||
@@ -1012,11 +1018,14 @@ namespace Desktop
|
||||
mnemonic = "IM 1";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
case 0x5A: mnemonic = "ADC HL, DE"; instructionLength = 2; break;
|
||||
case 0x5B:
|
||||
ushort addr5B = (ushort)(_memoryBus.Read((ushort)(currentPc + 2)) | (_memoryBus.Read((ushort)(currentPc + 3)) << 8));
|
||||
mnemonic = $"LD DE, (0x{addr5B:X4})";
|
||||
instructionLength = 4;
|
||||
break;
|
||||
case 0x6A: mnemonic = "ADC HL, HL"; instructionLength = 2; break;
|
||||
case 0x62: mnemonic = "SBC HL, HL"; instructionLength = 2; break;
|
||||
case 0x73:
|
||||
ushort addr73 = (ushort)(_memoryBus.Read((ushort)(currentPc + 2)) | (_memoryBus.Read((ushort)(currentPc + 3)) << 8));
|
||||
mnemonic = $"LD (0x{addr73:X4}), SP";
|
||||
@@ -1030,6 +1039,7 @@ namespace Desktop
|
||||
mnemonic = "IN A, (C)";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
case 0x7A: mnemonic = "ADC HL, SP"; instructionLength = 2; break;
|
||||
case 0x7B: // LD SP, (nn)
|
||||
ushort nn = (ushort)(_memoryBus.Read((ushort)(currentPc + 2)) | (_memoryBus.Read((ushort)(currentPc + 3)) << 8));
|
||||
mnemonic = $"LD SP, (0x{nn:X4})";
|
||||
|
||||
Reference in New Issue
Block a user