More keys. Implemented Border. Completes LOAD readiness sequence
This commit is contained in:
@@ -822,6 +822,11 @@ namespace Desktop
|
||||
case 0xD8:
|
||||
mnemonic = "RET C";
|
||||
break;
|
||||
case 0xDB: // IN A, (n)
|
||||
n = _memoryBus.Read((ushort)(currentPc + 1));
|
||||
mnemonic = $"IN A, (0x{n:X2})";
|
||||
instructionLength = 2;
|
||||
break;
|
||||
case 0xDD:
|
||||
{
|
||||
byte ddOpcode = _memoryBus.Read((ushort)(currentPc + 1));
|
||||
@@ -836,6 +841,39 @@ namespace Desktop
|
||||
mnemonic = $"LD IX, 0x{ixVal:X4}";
|
||||
instructionLength = 4;
|
||||
}
|
||||
else if (ddOpcode == 0x36) // LD (IX+d), n
|
||||
{
|
||||
sbyte d = (sbyte)_memoryBus.Read((ushort)(currentPc + 2));
|
||||
n = _memoryBus.Read((ushort)(currentPc + 3));
|
||||
|
||||
string sign = d >= 0 ? "+" : "";
|
||||
mnemonic = $"LD (IX{sign}{d}), 0x{n:X2}";
|
||||
instructionLength = 4;
|
||||
}
|
||||
else if (ddOpcode == 0x74) // LD (IX+d), H
|
||||
{
|
||||
sbyte d = (sbyte)_memoryBus.Read((ushort)(currentPc + 2));
|
||||
string sign = d >= 0 ? "+" : "";
|
||||
mnemonic = $"LD (IX{sign}{d}), H";
|
||||
instructionLength = 3;
|
||||
}
|
||||
else if (ddOpcode == 0x75) // LD (IX+d), L
|
||||
{
|
||||
sbyte d = (sbyte)_memoryBus.Read((ushort)(currentPc + 2));
|
||||
string sign = d >= 0 ? "+" : "";
|
||||
mnemonic = $"LD (IX{sign}{d}), L";
|
||||
instructionLength = 3;
|
||||
}
|
||||
else if (ddOpcode == 0xE1) // POP IX
|
||||
{
|
||||
mnemonic = "POP IX";
|
||||
instructionLength = 2;
|
||||
}
|
||||
else if (ddOpcode == 0xE5) // PUSH IX
|
||||
{
|
||||
mnemonic = "PUSH IX";
|
||||
instructionLength = 2;
|
||||
}
|
||||
else if (ddOpcode == 0xE9) // JP (IX)
|
||||
{
|
||||
mnemonic = "JP (IX)";
|
||||
@@ -1037,6 +1075,13 @@ namespace Desktop
|
||||
mnemonic = $"LD L, (IY{signL}{offsetL})";
|
||||
instructionLength = 3;
|
||||
}
|
||||
else if (fdOpcode == 0x72) // LD (IY+d), D
|
||||
{
|
||||
sbyte d = (sbyte)_memoryBus.Read((ushort)(currentPc + 2));
|
||||
string sign = d >= 0 ? "+" : "";
|
||||
mnemonic = $"LD (IY{sign}{d}), D";
|
||||
instructionLength = 3;
|
||||
}
|
||||
else if (fdOpcode == 0x74) // LD (IY+d), H
|
||||
{
|
||||
sbyte d = (sbyte)_memoryBus.Read((ushort)(currentPc + 2));
|
||||
|
||||
Reference in New Issue
Block a user