954 lines
43 KiB
C
954 lines
43 KiB
C
/*
|
|
PokeMini - Pokémon-Mini Emulator
|
|
Copyright (C) 2009-2012 JustBurn
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include "InstructionInfo.h"
|
|
|
|
char *DebugCPUInstructions_Opcode[] = {
|
|
".DB", // 0 (No instruction)
|
|
"NOP", // 1
|
|
"MOV", // 2
|
|
"EXPAND", // 3
|
|
"ADD", // 4
|
|
"ADC", // 5
|
|
"SUB", // 6
|
|
"SBC", // 7
|
|
"AND", // 8
|
|
"OR", // 9
|
|
"CMP", // 10
|
|
"XOR", // 11
|
|
"INC", // 12
|
|
"DEC", // 13
|
|
"TST", // 14
|
|
"EX", // 15
|
|
"PUSH", // 16
|
|
"POP", // 17
|
|
"PUSHX", // 18
|
|
"POPX", // 19
|
|
"XCHG", // 20
|
|
"PACK", // 21
|
|
"UNPACK", // 22
|
|
"SWAP", // 23
|
|
"CALLC", // 24
|
|
"CALLNC", // 25
|
|
"CALLZ", // 26
|
|
"CALLNZ", // 27
|
|
"JC", // 28
|
|
"JNC", // 29
|
|
"JZ", // 30
|
|
"JNZ", // 31
|
|
"CALL", // 32
|
|
"JMP", // 33
|
|
"JDBNZ", // 34
|
|
"RET", // 35
|
|
"RETI", // 36
|
|
"RETSKIP", // 37
|
|
"CINT", // 38
|
|
"JINT", // 39
|
|
"SAL", // 40
|
|
"SHL", // 41
|
|
"SAR", // 42
|
|
"SHR", // 43
|
|
"ROLC", // 44
|
|
"ROL", // 45
|
|
"RORC", // 46
|
|
"ROR", // 47
|
|
"NOT", // 48
|
|
"NEG", // 49
|
|
"MUL", // 50
|
|
"DIV", // 51
|
|
"PUSHA", // 52
|
|
"PUSHAX", // 53
|
|
"POPA", // 54
|
|
"POPAX", // 55
|
|
"JL", // 56
|
|
"JLE", // 57
|
|
"JG", // 58
|
|
"JGE", // 59
|
|
"JO", // 60
|
|
"JNO", // 61
|
|
"JNS", // 62
|
|
"JS", // 63
|
|
"JNX0", // 64
|
|
"JNX1", // 65
|
|
"JNX2", // 66
|
|
"JNX3", // 67
|
|
"JX0", // 68
|
|
"JX1", // 69
|
|
"JX2", // 70
|
|
"JX3", // 71
|
|
"CALLL", // 72
|
|
"CALLLE", // 73
|
|
"CALLG", // 74
|
|
"CALLGE", // 75
|
|
"CALLO", // 76
|
|
"CALLNO", // 77
|
|
"CALLNS", // 78
|
|
"CALLS", // 79
|
|
"CALLNX0", // 80
|
|
"CALLNX1", // 81
|
|
"CALLNX2", // 82
|
|
"CALLNX3", // 83
|
|
"CALLX0", // 84
|
|
"CALLX1", // 85
|
|
"CALLX2", // 86
|
|
"CALLX3", // 87
|
|
"STOP", // 88
|
|
"HALT", // 89
|
|
NULL
|
|
};
|
|
|
|
char *DebugCPUInstructions_Operand[] = {
|
|
"", // 0 (No operand)
|
|
"%j", // 1
|
|
"%J", // 2
|
|
"%i", // 3
|
|
"%u", // 4
|
|
"%U", // 5
|
|
"%s", // 6
|
|
"%S", // 7
|
|
"A", // 8
|
|
"B", // 9
|
|
"%u", // 10
|
|
"[HL]", // 11
|
|
"[N+%u]", // 12
|
|
"[%U]", // 13
|
|
"[X]", // 14
|
|
"[Y]", // 15
|
|
"L", // 16
|
|
"H", // 17
|
|
"N", // 18
|
|
"SP", // 19
|
|
"BA", // 20
|
|
"HL", // 21
|
|
"X", // 22
|
|
"Y", // 23
|
|
"F", // 24
|
|
"I", // 25
|
|
"XI", // 26
|
|
"YI", // 27
|
|
"[X+%s]", // 28
|
|
"[Y+%s]", // 29
|
|
"[X+L]", // 30
|
|
"[Y+L]", // 31
|
|
"U", // 32
|
|
"V", // 33
|
|
"XI", // 34
|
|
"YI", // 35
|
|
"[SP+%s]", // 36
|
|
"PC", // 37
|
|
"%h", // 38
|
|
NULL
|
|
};
|
|
|
|
// %u = Unsigned 8-Bits
|
|
// %U = Unsigned 16-Bits
|
|
// %s = Signed 8-Bits
|
|
// %S = Signed 16-Bits
|
|
// %j = Relative jump (8-Bits)
|
|
// %J = Relative jump (16-Bits)
|
|
// %i = Interrupt
|
|
|
|
InstructionInfo DebugCPUInstructions_DX[8] = {
|
|
{0x00, 1, 0, 0, 4, 0, 0, 0}, // ".DB %u"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u..."
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u..."
|
|
{0x00, 5, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u..."
|
|
{0x00, 6, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u..."
|
|
{0x00, 7, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u..."
|
|
{0x00, 8, 0, 0, 4, 0, 4, 0}, // ".DB %u,%u..."
|
|
};
|
|
|
|
InstructionInfo DebugCPUInstructions_XX[256] = {
|
|
{0x00, 1, 4, 0, 8, 0, 8, 0}, // 00 __ "ADD A, A"
|
|
{0x00, 1, 4, 0, 8, 0, 9, 0}, // 01 __ "ADD A, B"
|
|
{0x00, 2, 4, 0, 8, 0,10, 1}, // 02 __ "ADD A, %u"
|
|
{0x00, 1, 4, 0, 8, 0,11, 0}, // 03 __ "ADD A, [HL]"
|
|
{0x00, 2, 4, 0, 8, 0,12, 1}, // 04 __ "ADD A, [N+%u]"
|
|
{0x00, 3, 4, 0, 8, 0,13, 1}, // 05 __ "ADD A, [%U]"
|
|
{0x00, 1, 4, 0, 8, 0,14, 0}, // 06 __ "ADD A, [X]"
|
|
{0x00, 1, 4, 0, 8, 0,15, 0}, // 07 __ "ADD A, [Y]"
|
|
{0x00, 1, 5, 0, 8, 0, 8, 0}, // 08 __ "ADC A, A"
|
|
{0x00, 1, 5, 0, 8, 0, 9, 0}, // 09 __ "ADC A, B"
|
|
{0x00, 2, 5, 0, 8, 0,10, 1}, // 0A __ "ADC A, %u"
|
|
{0x00, 1, 5, 0, 8, 0,11, 0}, // 0B __ "ADC A, [HL]"
|
|
{0x00, 2, 5, 0, 8, 0,12, 1}, // 0C __ "ADC A, [N+%u]"
|
|
{0x00, 3, 5, 0, 8, 0,13, 1}, // 0D __ "ADC A, [%U]"
|
|
{0x00, 1, 5, 0, 8, 0,14, 0}, // 0E __ "ADC A, [X]"
|
|
{0x00, 1, 5, 0, 8, 0,15, 0}, // 0F __ "ADC A, [Y]"
|
|
{0x00, 1, 6, 0, 8, 0, 8, 0}, // 10 __ "SUB A, A"
|
|
{0x00, 1, 6, 0, 8, 0, 9, 0}, // 11 __ "SUB A, B"
|
|
{0x00, 2, 6, 0, 8, 0,10, 1}, // 12 __ "SUB A, %u"
|
|
{0x00, 1, 6, 0, 8, 0,11, 0}, // 13 __ "SUB A, [HL]"
|
|
{0x00, 2, 6, 0, 8, 0,12, 1}, // 14 __ "SUB A, [N+%u]"
|
|
{0x00, 3, 6, 0, 8, 0,13, 1}, // 15 __ "SUB A, [%U]"
|
|
{0x00, 1, 6, 0, 8, 0,14, 0}, // 16 __ "SUB A, [X]"
|
|
{0x00, 1, 6, 0, 8, 0,15, 0}, // 17 __ "SUB A, [Y]"
|
|
{0x00, 1, 7, 0, 8, 0, 8, 0}, // 18 __ "SBC A, A"
|
|
{0x00, 1, 7, 0, 8, 0, 9, 0}, // 19 __ "SBC A, B"
|
|
{0x00, 2, 7, 0, 8, 0,10, 1}, // 1A __ "SBC A, %u"
|
|
{0x00, 1, 7, 0, 8, 0,11, 0}, // 1B __ "SBC A, [HL]"
|
|
{0x00, 2, 7, 0, 8, 0,12, 1}, // 1C __ "SBC A, [N+%u]"
|
|
{0x00, 3, 7, 0, 8, 0,13, 1}, // 1D __ "SBC A, [%U]"
|
|
{0x00, 1, 7, 0, 8, 0,14, 0}, // 1E __ "SBC A, [X]"
|
|
{0x00, 1, 7, 0, 8, 0,15, 0}, // 1F __ "SBC A, [Y]"
|
|
{0x00, 1, 8, 0, 8, 0, 8, 0}, // 20 __ "AND A, A"
|
|
{0x00, 1, 8, 0, 8, 0, 9, 0}, // 21 __ "AND A, B"
|
|
{0x00, 2, 8, 0, 8, 0,10, 1}, // 22 __ "AND A, %u"
|
|
{0x00, 1, 8, 0, 8, 0,11, 0}, // 23 __ "AND A, [HL]"
|
|
{0x00, 2, 8, 0, 8, 0,12, 1}, // 24 __ "AND A, [N+%u]"
|
|
{0x00, 3, 8, 0, 8, 0,13, 1}, // 25 __ "AND A, [%U]"
|
|
{0x00, 1, 8, 0, 8, 0,14, 0}, // 26 __ "AND A, [X]"
|
|
{0x00, 1, 8, 0, 8, 0,15, 0}, // 27 __ "AND A, [Y]"
|
|
{0x00, 1, 9, 0, 8, 0, 8, 0}, // 28 __ "OR A, A"
|
|
{0x00, 1, 9, 0, 8, 0, 9, 0}, // 29 __ "OR A, B"
|
|
{0x00, 2, 9, 0, 8, 0,10, 1}, // 2A __ "OR A, %u"
|
|
{0x00, 1, 9, 0, 8, 0,11, 0}, // 2B __ "OR A, [HL]"
|
|
{0x00, 2, 9, 0, 8, 0,12, 1}, // 2C __ "OR A, [N+%u]"
|
|
{0x00, 3, 9, 0, 8, 0,13, 1}, // 2D __ "OR A, [%U]"
|
|
{0x00, 1, 9, 0, 8, 0,14, 0}, // 2E __ "OR A, [X]"
|
|
{0x00, 1, 9, 0, 8, 0,15, 0}, // 2F __ "OR A, [Y]"
|
|
{0x00, 1,10, 0, 8, 0, 8, 0}, // 30 __ "CMP A, A"
|
|
{0x00, 1,10, 0, 8, 0, 9, 0}, // 31 __ "CMP A, B"
|
|
{0x00, 2,10, 0, 8, 0,10, 1}, // 32 __ "CMP A, %u"
|
|
{0x00, 1,10, 0, 8, 0,11, 0}, // 33 __ "CMP A, [HL]"
|
|
{0x00, 2,10, 0, 8, 0,12, 1}, // 34 __ "CMP A, [N+%u]"
|
|
{0x00, 3,10, 0, 8, 0,13, 1}, // 35 __ "CMP A, [%U]"
|
|
{0x00, 1,10, 0, 8, 0,14, 0}, // 36 __ "CMP A, [X]"
|
|
{0x00, 1,10, 0, 8, 0,15, 0}, // 37 __ "CMP A, [Y]"
|
|
{0x00, 1,11, 0, 8, 0, 8, 0}, // 38 __ "XOR A, A"
|
|
{0x00, 1,11, 0, 8, 0, 9, 0}, // 39 __ "XOR A, B"
|
|
{0x00, 2,11, 0, 8, 0,10, 1}, // 3A __ "XOR A, %u"
|
|
{0x00, 1,11, 0, 8, 0,11, 0}, // 3B __ "XOR A, [HL]"
|
|
{0x00, 2,11, 0, 8, 0,12, 1}, // 3C __ "XOR A, [N+%u]"
|
|
{0x00, 3,11, 0, 8, 0,13, 1}, // 3D __ "XOR A, [%U]"
|
|
{0x00, 1,11, 0, 8, 0,14, 0}, // 3E __ "XOR A, [X]"
|
|
{0x00, 1,11, 0, 8, 0,15, 0}, // 3F __ "XOR A, [Y]"
|
|
{0x00, 1, 2, 0, 8, 0, 8, 0}, // 40 __ "MOV A, A"
|
|
{0x00, 1, 2, 0, 8, 0, 9, 0}, // 41 __ "MOV A, B"
|
|
{0x00, 1, 2, 0, 8, 0,16, 0}, // 42 __ "MOV A, L"
|
|
{0x00, 1, 2, 0, 8, 0,17, 0}, // 43 __ "MOV A, H"
|
|
{0x00, 2, 2, 0, 8, 0,12, 1}, // 44 __ "MOV A, [N+%u]"
|
|
{0x00, 1, 2, 0, 8, 0,11, 0}, // 45 __ "MOV A, [HL]"
|
|
{0x00, 1, 2, 0, 8, 0,14, 0}, // 46 __ "MOV A, [X]"
|
|
{0x00, 1, 2, 0, 8, 0,15, 0}, // 47 __ "MOV A, [Y]"
|
|
{0x00, 1, 2, 0, 9, 0, 8, 0}, // 48 __ "MOV B, A"
|
|
{0x00, 1, 2, 0, 9, 0, 9, 0}, // 49 __ "MOV B, B"
|
|
{0x00, 1, 2, 0, 9, 0,16, 0}, // 4A __ "MOV B, L"
|
|
{0x00, 1, 2, 0, 9, 0,17, 0}, // 4B __ "MOV B, H"
|
|
{0x00, 2, 2, 0, 9, 0,12, 1}, // 4C __ "MOV B, [N+%u]"
|
|
{0x00, 1, 2, 0, 9, 0,11, 0}, // 4D __ "MOV B, [HL]"
|
|
{0x00, 1, 2, 0, 9, 0,14, 0}, // 4E __ "MOV B, [X]"
|
|
{0x00, 1, 2, 0, 9, 0,15, 0}, // 4F __ "MOV B, [Y]"
|
|
{0x00, 1, 2, 0,16, 0, 8, 0}, // 50 __ "MOV L, A"
|
|
{0x00, 1, 2, 0,16, 0, 9, 0}, // 51 __ "MOV L, B"
|
|
{0x00, 1, 2, 0,16, 0,16, 0}, // 52 __ "MOV L, L"
|
|
{0x00, 1, 2, 0,16, 0,17, 0}, // 53 __ "MOV L, H"
|
|
{0x00, 2, 2, 0,16, 0,12, 1}, // 54 __ "MOV L, [N+%u]"
|
|
{0x00, 1, 2, 0,16, 0,11, 0}, // 55 __ "MOV L, [HL]"
|
|
{0x00, 1, 2, 0,16, 0,14, 0}, // 56 __ "MOV L, [X]"
|
|
{0x00, 1, 2, 0,16, 0,15, 0}, // 57 __ "MOV L, [Y]"
|
|
{0x00, 1, 2, 0,17, 0, 8, 0}, // 58 __ "MOV H, A"
|
|
{0x00, 1, 2, 0,17, 0, 9, 0}, // 59 __ "MOV H, B"
|
|
{0x00, 1, 2, 0,17, 0,16, 0}, // 5A __ "MOV H, L"
|
|
{0x00, 1, 2, 0,17, 0,17, 0}, // 5B __ "MOV H, H"
|
|
{0x00, 2, 2, 0,17, 0,12, 1}, // 5C __ "MOV H, [N+%u]"
|
|
{0x00, 1, 2, 0,17, 0,11, 0}, // 5D __ "MOV H, [HL]"
|
|
{0x00, 1, 2, 0,17, 0,14, 0}, // 5E __ "MOV H, [X]"
|
|
{0x00, 1, 2, 0,17, 0,15, 0}, // 5F __ "MOV H, [Y]"
|
|
{0x00, 1, 2, 0,14, 0, 8, 0}, // 60 __ "MOV [X], A"
|
|
{0x00, 1, 2, 0,14, 0, 9, 0}, // 61 __ "MOV [X], B"
|
|
{0x00, 1, 2, 0,14, 0,16, 0}, // 62 __ "MOV [X], L"
|
|
{0x00, 1, 2, 0,14, 0,17, 0}, // 63 __ "MOV [X], H"
|
|
{0x00, 2, 2, 0,14, 0,12, 1}, // 64 __ "MOV [X], [N+%u]"
|
|
{0x00, 1, 2, 0,14, 0,11, 0}, // 65 __ "MOV [X], [HL]"
|
|
{0x00, 1, 2, 0,14, 0,14, 0}, // 66 __ "MOV [X], [X]"
|
|
{0x00, 1, 2, 0,14, 0,15, 0}, // 67 __ "MOV [X], [Y]"
|
|
{0x00, 1, 2, 0,11, 0, 8, 0}, // 68 __ "MOV [HL], A"
|
|
{0x00, 1, 2, 0,11, 0, 9, 0}, // 69 __ "MOV [HL], B"
|
|
{0x00, 1, 2, 0,11, 0,16, 0}, // 6A __ "MOV [HL], L"
|
|
{0x00, 1, 2, 0,11, 0,17, 0}, // 6B __ "MOV [HL], H"
|
|
{0x00, 2, 2, 0,11, 0,12, 1}, // 6C __ "MOV [HL], [N+%u]"
|
|
{0x00, 1, 2, 0,11, 0,11, 0}, // 6D __ "MOV [HL], [HL]"
|
|
{0x00, 1, 2, 0,11, 0,14, 0}, // 6E __ "MOV [HL], [X]"
|
|
{0x00, 1, 2, 0,11, 0,15, 0}, // 6F __ "MOV [HL], [Y]"
|
|
{0x00, 1, 2, 0,15, 0, 8, 0}, // 70 __ "MOV [Y], A"
|
|
{0x00, 1, 2, 0,15, 0, 9, 0}, // 71 __ "MOV [Y], B"
|
|
{0x00, 1, 2, 0,15, 0,16, 0}, // 72 __ "MOV [Y], L"
|
|
{0x00, 1, 2, 0,15, 0,17, 0}, // 73 __ "MOV [Y], H"
|
|
{0x00, 2, 2, 0,15, 0,12, 1}, // 74 __ "MOV [Y], [N+%u]"
|
|
{0x00, 1, 2, 0,15, 0,11, 0}, // 75 __ "MOV [Y], [HL]"
|
|
{0x00, 1, 2, 0,15, 0,14, 0}, // 76 __ "MOV [Y], [X]"
|
|
{0x00, 1, 2, 0,15, 0,15, 0}, // 77 __ "MOV [Y], [Y]"
|
|
{0x00, 2, 2, 0,12, 1, 8, 0}, // 78 __ "MOV [N+%u], A"
|
|
{0x00, 2, 2, 0,12, 1, 9, 0}, // 79 __ "MOV [N+%u], B"
|
|
{0x00, 2, 2, 0,12, 1,16, 0}, // 7A __ "MOV [N+%u], L"
|
|
{0x00, 2, 2, 0,12, 1,17, 0}, // 7B __ "MOV [N+%u], H"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // 7C __ ".DB $7C,%u"
|
|
{0x00, 2, 2, 0,12, 1,11, 0}, // 7D __ "MOV [N+%u], [HL]"
|
|
{0x00, 2, 2, 0,12, 1,14, 0}, // 7E __ "MOV [N+%u], [X]"
|
|
{0x00, 2, 2, 0,12, 1,15, 0}, // 7F __ "MOV [N+%u], [Y]"
|
|
{0x00, 1,12, 0, 8, 0, 0, 0}, // 80 __ "INC A"
|
|
{0x00, 1,12, 0, 9, 0, 0, 0}, // 81 __ "INC B"
|
|
{0x00, 1,12, 0,16, 0, 0, 0}, // 82 __ "INC L"
|
|
{0x00, 1,12, 0,17, 0, 0, 0}, // 83 __ "INC H"
|
|
{0x00, 1,12, 0,18, 0, 0, 0}, // 84 __ "INC N"
|
|
{0x00, 2,12, 0,12, 1, 0, 0}, // 85 __ "INC [N+%u]"
|
|
{0x00, 1,12, 0,11, 0, 0, 0}, // 86 __ "INC [HL]"
|
|
{0x00, 1,12, 0,19, 0, 0, 0}, // 87 __ "INC SP"
|
|
{0x00, 1,13, 0, 8, 0, 0, 0}, // 88 __ "DEC A"
|
|
{0x00, 1,13, 0, 9, 0, 0, 0}, // 89 __ "DEC B"
|
|
{0x00, 1,13, 0,16, 0, 0, 0}, // 8A __ "DEC L"
|
|
{0x00, 1,13, 0,17, 0, 0, 0}, // 8B __ "DEC H"
|
|
{0x00, 1,13, 0,18, 0, 0, 0}, // 8C __ "DEC N"
|
|
{0x00, 2,13, 0,12, 1, 0, 0}, // 8D __ "DEC [N+%u]"
|
|
{0x00, 1,13, 0,11, 0, 0, 0}, // 8E __ "DEC [HL]"
|
|
{0x00, 1,13, 0,19, 0, 0, 0}, // 8F __ "DEC SP"
|
|
{0x00, 1,12, 0,20, 0, 0, 0}, // 90 __ "INC BA"
|
|
{0x00, 1,12, 0,21, 0, 0, 0}, // 91 __ "INC HL"
|
|
{0x00, 1,12, 0,22, 0, 0, 0}, // 92 __ "INC X"
|
|
{0x00, 1,12, 0,23, 0, 0, 0}, // 93 __ "INC Y"
|
|
{0x00, 1,14, 0, 8, 0, 9, 0}, // 94 __ "TST A, B"
|
|
{0x00, 2,14, 0,11, 0, 4, 1}, // 95 __ "TST [HL], %u"
|
|
{0x00, 2,14, 0, 8, 0, 4, 1}, // 96 __ "TST A, %u"
|
|
{0x00, 2,14, 0, 9, 0, 4, 1}, // 97 __ "TST B, %u"
|
|
{0x00, 1,13, 0,20, 0, 0, 0}, // 98 __ "DEC BA"
|
|
{0x00, 1,13, 0,21, 0, 0, 0}, // 99 __ "DEC HL"
|
|
{0x00, 1,13, 0,22, 0, 0, 0}, // 9A __ "DEC X"
|
|
{0x00, 1,13, 0,23, 0, 0, 0}, // 9B __ "DEC Y"
|
|
{0x00, 2, 8, 0,24, 0, 4, 1}, // 9C __ "AND F, %u"
|
|
{0x00, 2, 9, 0,24, 0, 4, 1}, // 9D __ "OR F, %u"
|
|
{0x00, 2,11, 0,24, 0, 4, 1}, // 9E __ "XOR F, %u"
|
|
{0x00, 2, 2, 0,24, 0, 4, 1}, // 9F __ "MOV F, %u"
|
|
{0x00, 1,16, 0,20, 0, 0, 0}, // A0 __ "PUSH BA"
|
|
{0x00, 1,16, 0,21, 0, 0, 0}, // A1 __ "PUSH HL"
|
|
{0x00, 1,16, 0,22, 0, 0, 0}, // A2 __ "PUSH X"
|
|
{0x00, 1,16, 0,23, 0, 0, 0}, // A3 __ "PUSH Y"
|
|
{0x00, 1,16, 0,18, 0, 0, 0}, // A4 __ "PUSH N"
|
|
{0x00, 1,16, 0,25, 0, 0, 0}, // A5 __ "PUSH I"
|
|
{0x00, 1,18, 0, 0, 0, 0, 0}, // A6 __ "PUSHX"
|
|
{0x00, 1,16, 0,24, 0, 0, 0}, // A7 __ "PUSH F"
|
|
{0x00, 1,17, 0,20, 0, 0, 0}, // A8 __ "POP BA"
|
|
{0x00, 1,17, 0,21, 0, 0, 0}, // A9 __ "POP HL"
|
|
{0x00, 1,17, 0,22, 0, 0, 0}, // AA __ "POP X"
|
|
{0x00, 1,17, 0,23, 0, 0, 0}, // AB __ "POP Y"
|
|
{0x00, 1,17, 0,18, 0, 0, 0}, // AC __ "POP N"
|
|
{0x00, 1,17, 0,25, 0, 0, 0}, // AD __ "POP I"
|
|
{0x00, 1,19, 0, 0, 0, 0, 0}, // AE __ "POPX"
|
|
{0x00, 1,17, 0,24, 0, 0, 0}, // AF __ "POP F"
|
|
{0x00, 2, 2, 0, 8, 0, 4, 1}, // B0 __ "MOV A, %u"
|
|
{0x00, 2, 2, 0, 9, 0, 4, 1}, // B1 __ "MOV B, %u"
|
|
{0x00, 2, 2, 0,16, 0, 4, 1}, // B2 __ "MOV L, %u"
|
|
{0x00, 2, 2, 0,17, 0, 4, 1}, // B3 __ "MOV H, %u"
|
|
{0x00, 2, 2, 0,18, 0, 4, 1}, // B4 __ "MOV N, %u"
|
|
{0x00, 2, 2, 0,11, 0, 4, 1}, // B5 __ "MOV [HL], %u"
|
|
{0x00, 2, 2, 0,14, 0, 4, 1}, // B6 __ "MOV [X], %u"
|
|
{0x00, 2, 2, 0,15, 0, 4, 1}, // B7 __ "MOV [Y], %u"
|
|
{0x00, 3, 2, 0,20, 0,13, 1}, // B8 __ "MOV BA, [%U]"
|
|
{0x00, 3, 2, 0,21, 0,13, 1}, // B9 __ "MOV HL, [%U]"
|
|
{0x00, 3, 2, 0,22, 0,13, 1}, // BA __ "MOV X, [%U]"
|
|
{0x00, 3, 2, 0,23, 0,13, 1}, // BB __ "MOV Y, [%U]"
|
|
{0x00, 3, 2, 0,13, 1,20, 0}, // BC __ "MOV [%U], BA"
|
|
{0x00, 3, 2, 0,13, 1,21, 0}, // BD __ "MOV [%U], HL"
|
|
{0x00, 3, 2, 0,13, 1,22, 0}, // BE __ "MOV [%U], X"
|
|
{0x00, 3, 2, 0,13, 1,23, 0}, // BF __ "MOV [%U], Y"
|
|
{0x00, 3, 4, 0,20, 0, 5, 1}, // C0 __ "ADD BA, %U"
|
|
{0x00, 3, 4, 0,21, 0, 5, 1}, // C1 __ "ADD HL, %U"
|
|
{0x00, 3, 4, 0,22, 0, 5, 1}, // C2 __ "ADD X, %U"
|
|
{0x00, 3, 4, 0,23, 0, 5, 1}, // C3 __ "ADD Y, %U"
|
|
{0x00, 3, 2, 0,20, 0, 5, 1}, // C4 __ "MOV BA, %U"
|
|
{0x00, 3, 2, 0,21, 0, 5, 1}, // C5 __ "MOV HL, %U"
|
|
{0x00, 3, 2, 0,22, 0, 5, 1}, // C6 __ "MOV X, %U"
|
|
{0x00, 3, 2, 0,23, 0, 5, 1}, // C7 __ "MOV Y, %U"
|
|
{0x00, 1,20, 0,20, 0,21, 0}, // C8 __ "XCHG BA, HL"
|
|
{0x00, 1,20, 0,20, 0,22, 0}, // C9 __ "XCHG BA, X"
|
|
{0x00, 1,20, 0,20, 0,23, 0}, // CA __ "XCHG BA, Y"
|
|
{0x00, 1,20, 0,20, 0,19, 0}, // CB __ "XCHG BA, SP"
|
|
{0x00, 1,20, 0, 8, 0, 9, 0}, // CC __ "XCHG A, B"
|
|
{0x00, 1,20, 0, 8, 0,11, 0}, // CD __ "XCHG A, [HL]"
|
|
{0x00, 2, 3, 0, 8, 0, 4, 1}, // CE __ EXPAND CE
|
|
{0x00, 2, 3, 0, 9, 0, 4, 1}, // CF __ EXPAND CF
|
|
{0x00, 3, 6, 0,20, 0, 5, 1}, // D0 __ "SUB BA, %U"
|
|
{0x00, 3, 6, 0,21, 0, 5, 1}, // D1 __ "SUB HL, %U"
|
|
{0x00, 3, 6, 0,22, 0, 5, 1}, // D2 __ "SUB X, %U"
|
|
{0x00, 3, 6, 0,23, 0, 5, 1}, // D3 __ "SUB Y, %U"
|
|
{0x00, 3,10, 0,20, 0, 5, 1}, // D4 __ "CMP BA, %U"
|
|
{0x00, 3,10, 0,21, 0, 5, 1}, // D5 __ "CMP HL, %U"
|
|
{0x00, 3,10, 0,22, 0, 5, 1}, // D6 __ "CMP X, %U"
|
|
{0x00, 3,10, 0,23, 0, 5, 1}, // D7 __ "CMP Y, %U"
|
|
{0x00, 3, 8, 0,12, 1, 4, 2}, // D8 __ "AND [N+%u], %u"
|
|
{0x00, 3, 9, 0,12, 1, 4, 2}, // D9 __ "OR [N+%u], %u"
|
|
{0x00, 3,11, 0,12, 1, 4, 2}, // DA __ "XOR [N+%u], %u"
|
|
{0x00, 3,10, 0,12, 1, 4, 2}, // DB __ "CMP [N+%u], %u"
|
|
{0x00, 3,14, 0,12, 1, 4, 2}, // DC __ "TST [N+%u], %u"
|
|
{0x00, 3, 2, 0,12, 1, 4, 2}, // DD __ "MOV [N+%u], %u"
|
|
{0x00, 1,21, 0, 0, 0, 0, 0}, // DE __ "PACK"
|
|
{0x00, 1,22, 0, 0, 0, 0, 0}, // DF __ "UNPACK"
|
|
{0x00, 2,24, 1, 1, 1, 0, 0}, // E0 __ "CALLCb %j"
|
|
{0x00, 2,25, 1, 1, 1, 0, 0}, // E1 __ "CALLNCb %j"
|
|
{0x00, 2,26, 1, 1, 1, 0, 0}, // E2 __ "CALLZb %j"
|
|
{0x00, 2,27, 1, 1, 1, 0, 0}, // E3 __ "CALLNZb %j"
|
|
{0x00, 2,28, 1, 1, 1, 0, 0}, // E4 __ "JCb %j"
|
|
{0x00, 2,29, 1, 1, 1, 0, 0}, // E5 __ "JNCb %j"
|
|
{0x00, 2,30, 1, 1, 1, 0, 0}, // E6 __ "JZb %j"
|
|
{0x00, 2,31, 1, 1, 1, 0, 0}, // E7 __ "JNZb %j"
|
|
{0x00, 3,24, 2, 2, 1, 0, 0}, // E8 __ "CALLCw %J"
|
|
{0x00, 3,25, 2, 2, 1, 0, 0}, // E9 __ "CALLNCw %J"
|
|
{0x00, 3,26, 2, 2, 1, 0, 0}, // EA __ "CALLZw %J"
|
|
{0x00, 3,27, 2, 2, 1, 0, 0}, // EB __ "CALLNZw %J"
|
|
{0x00, 3,28, 2, 2, 1, 0, 0}, // EC __ "JCw %J"
|
|
{0x00, 3,29, 2, 2, 1, 0, 0}, // ED __ "JNCw %J"
|
|
{0x00, 3,30, 2, 2, 1, 0, 0}, // EE __ "JZw %J"
|
|
{0x00, 3,31, 2, 2, 1, 0, 0}, // EF __ "JNZw %J"
|
|
{0x00, 2,32, 1, 1, 1, 0, 0}, // F0 __ "CALLb %j"
|
|
{0x00, 2,33, 1, 1, 1, 0, 0}, // F1 __ "JMPb %j"
|
|
{0x00, 3,32, 2, 2, 1, 0, 0}, // F2 __ "CALLw %J"
|
|
{0x00, 3,33, 2, 2, 1, 0, 0}, // F3 __ "JMPw %J"
|
|
{0x00, 1,33, 0,21, 0, 0, 0}, // F4 __ "JMP HL"
|
|
{0x00, 2,34, 0, 1, 1, 0, 0}, // F5 __ "JDBNZ %j"
|
|
{0x00, 1,23, 0, 8, 0, 0, 0}, // F6 __ "SWAP A"
|
|
{0x00, 1,23, 0,11, 0, 0, 0}, // F7 __ "SWAP [HL]"
|
|
{0x00, 1,35, 0, 0, 0, 0, 0}, // F8 __ "RET"
|
|
{0x00, 1,36, 0, 0, 0, 0, 0}, // F9 __ "RETI"
|
|
{0x00, 1,37, 0, 0, 0, 0, 0}, // FA __ "RETSKIP"
|
|
{0x00, 3,32, 0, 5, 1, 0, 0}, // FB __ "CALL [%U]"
|
|
{0x00, 2,38, 0, 3, 1, 0, 0}, // FC __ "CINT %i"
|
|
{0x00, 2,39, 0, 3, 1, 0, 0}, // FD __ "JINT %i"
|
|
{0x00, 1, 0, 0, 4, 0, 0, 0}, // FE __ ".DB $FE"
|
|
{0x00, 1, 1, 0, 0, 0, 0, 0}, // FF __ "NOP"
|
|
};
|
|
|
|
InstructionInfo DebugCPUInstructions_CE[256] = {
|
|
{0x00, 3, 4, 0, 8, 0,28, 2}, // CE 00 "ADD A, [X+%s]"
|
|
{0x00, 3, 4, 0, 8, 0,29, 2}, // CE 01 "ADD A, [Y+%s]"
|
|
{0x00, 2, 4, 0, 8, 0,30, 0}, // CE 02 "ADD A, [X+L]"
|
|
{0x00, 2, 4, 0, 8, 0,31, 0}, // CE 03 "ADD A, [Y+L]"
|
|
{0x00, 2, 4, 0,11, 0, 8, 0}, // CE 04 "ADD [HL], A"
|
|
{0x00, 3, 4, 0,11, 0, 4, 2}, // CE 05 "ADD [HL], %u"
|
|
{0x00, 2, 4, 0,11, 0,14, 0}, // CE 06 "ADD [HL], [X]"
|
|
{0x00, 2, 4, 0,11, 0,15, 0}, // CE 07 "ADD [HL], [Y]"
|
|
{0x00, 3, 5, 0, 8, 0,28, 2}, // CE 08 "ADC A, [X+%s]"
|
|
{0x00, 3, 5, 0, 8, 0,29, 2}, // CE 09 "ADC A, [Y+%s]"
|
|
{0x00, 2, 5, 0, 8, 0,30, 0}, // CE 0A "ADC A, [X+L]"
|
|
{0x00, 2, 5, 0, 8, 0,31, 0}, // CE 0B "ADC A, [Y+L]"
|
|
{0x00, 2, 5, 0,11, 0, 8, 0}, // CE 0C "ADC [HL], A"
|
|
{0x00, 3, 5, 0,11, 0, 4, 2}, // CE 0D "ADC [HL], %u"
|
|
{0x00, 2, 5, 0,11, 0,14, 0}, // CE 0E "ADC [HL], [X]"
|
|
{0x00, 2, 5, 0,11, 0,15, 0}, // CE 0F "ADC [HL], [Y]"
|
|
{0x00, 3, 6, 0, 8, 0,28, 2}, // CE 10 "SUB A, [X+%s]"
|
|
{0x00, 3, 6, 0, 8, 0,29, 2}, // CE 11 "SUB A, [Y+%s]"
|
|
{0x00, 2, 6, 0, 8, 0,30, 0}, // CE 12 "SUB A, [X+L]"
|
|
{0x00, 2, 6, 0, 8, 0,31, 0}, // CE 13 "SUB A, [Y+L]"
|
|
{0x00, 2, 6, 0,11, 0, 8, 0}, // CE 14 "SUB [HL], A"
|
|
{0x00, 3, 6, 0,11, 0, 4, 2}, // CE 15 "SUB [HL], %u"
|
|
{0x00, 2, 6, 0,11, 0,14, 0}, // CE 16 "SUB [HL], [X]"
|
|
{0x00, 2, 6, 0,11, 0,15, 0}, // CE 17 "SUB [HL], [Y]"
|
|
{0x00, 3, 7, 0, 8, 0,28, 2}, // CE 18 "SBC A, [X+%s]"
|
|
{0x00, 3, 7, 0, 8, 0,29, 2}, // CE 19 "SBC A, [Y+%s]"
|
|
{0x00, 2, 7, 0, 8, 0,30, 0}, // CE 1A "SBC A, [X+L]"
|
|
{0x00, 2, 7, 0, 8, 0,31, 0}, // CE 1B "SBC A, [Y+L]"
|
|
{0x00, 2, 7, 0,11, 0, 8, 0}, // CE 1C "SBC [HL], A"
|
|
{0x00, 3, 7, 0,11, 0, 4, 2}, // CE 1D "SBC [HL], %u"
|
|
{0x00, 2, 7, 0,11, 0,14, 0}, // CE 1E "SBC [HL], [X]"
|
|
{0x00, 2, 7, 0,11, 0,15, 0}, // CE 1F "SBC [HL], [Y]"
|
|
{0x00, 3, 8, 0, 8, 0,28, 2}, // CE 20 "AND A, [X+%s]"
|
|
{0x00, 3, 8, 0, 8, 0,29, 2}, // CE 21 "AND A, [Y+%s]"
|
|
{0x00, 2, 8, 0, 8, 0,30, 0}, // CE 22 "AND A, [X+L]"
|
|
{0x00, 2, 8, 0, 8, 0,31, 0}, // CE 23 "AND A, [Y+L]"
|
|
{0x00, 2, 8, 0,11, 0, 8, 0}, // CE 24 "AND [HL], A"
|
|
{0x00, 3, 8, 0,11, 0, 4, 2}, // CE 25 "AND [HL], %u"
|
|
{0x00, 2, 8, 0,11, 0,14, 0}, // CE 26 "AND [HL], [X]"
|
|
{0x00, 2, 8, 0,11, 0,15, 0}, // CE 27 "AND [HL], [Y]"
|
|
{0x00, 3, 9, 0, 8, 0,28, 2}, // CE 28 "OR A, [X+%s]"
|
|
{0x00, 3, 9, 0, 8, 0,29, 2}, // CE 29 "OR A, [Y+%s]"
|
|
{0x00, 2, 9, 0, 8, 0,30, 0}, // CE 2A "OR A, [X+L]"
|
|
{0x00, 2, 9, 0, 8, 0,31, 0}, // CE 2B "OR A, [Y+L]"
|
|
{0x00, 2, 9, 0,11, 0, 8, 0}, // CE 2C "OR [HL], A"
|
|
{0x00, 3, 9, 0,11, 0, 4, 2}, // CE 2D "OR [HL], %u"
|
|
{0x00, 2, 9, 0,11, 0,14, 0}, // CE 2E "OR [HL], [X]"
|
|
{0x00, 2, 9, 0,11, 0,15, 0}, // CE 2F "OR [HL], [Y]"
|
|
{0x00, 3,10, 0, 8, 0,28, 2}, // CE 30 "CMP A, [X+%s]"
|
|
{0x00, 3,10, 0, 8, 0,29, 2}, // CE 31 "CMP A, [Y+%s]"
|
|
{0x00, 2,10, 0, 8, 0,30, 0}, // CE 32 "CMP A, [X+L]"
|
|
{0x00, 2,10, 0, 8, 0,31, 0}, // CE 33 "CMP A, [Y+L]"
|
|
{0x00, 2,10, 0,11, 0, 8, 0}, // CE 34 "CMP [HL], A"
|
|
{0x00, 3,10, 0,11, 0, 4, 2}, // CE 35 "CMP [HL], %u"
|
|
{0x00, 2,10, 0,11, 0,14, 0}, // CE 36 "CMP [HL], [X]"
|
|
{0x00, 2,10, 0,11, 0,15, 0}, // CE 37 "CMP [HL], [Y]"
|
|
{0x00, 3,10, 0, 8, 0,28, 2}, // CE 38 "XOR A, [X+%s]"
|
|
{0x00, 3,10, 0, 8, 0,29, 2}, // CE 39 "XOR A, [Y+%s]"
|
|
{0x00, 2,10, 0, 8, 0,30, 0}, // CE 3A "XOR A, [X+L]"
|
|
{0x00, 2,10, 0, 8, 0,31, 0}, // CE 3B "XOR A, [Y+L]"
|
|
{0x00, 2,10, 0,11, 0, 8, 0}, // CE 3C "XOR [HL], A"
|
|
{0x00, 3,10, 0,11, 0, 4, 2}, // CE 3D "XOR [HL], %u"
|
|
{0x00, 2,10, 0,11, 0,14, 0}, // CE 3E "XOR [HL], [X]"
|
|
{0x00, 2,10, 0,11, 0,15, 0}, // CE 3F "XOR [HL], [Y]"
|
|
{0x00, 3, 2, 0, 8, 0,28, 2}, // CE 40 "MOV A, [X+%s]"
|
|
{0x00, 3, 2, 0, 8, 0,29, 2}, // CE 41 "MOV A, [Y+%s]"
|
|
{0x00, 2, 2, 0, 8, 0,30, 0}, // CE 42 "MOV A, [X+L]"
|
|
{0x00, 2, 2, 0, 8, 0,31, 0}, // CE 43 "MOV A, [Y+L]"
|
|
{0x00, 3, 2, 0,28, 2, 8, 0}, // CE 44 "MOV [X+%s], A"
|
|
{0x00, 3, 2, 0,29, 2, 8, 0}, // CE 45 "MOV [Y+%s], A"
|
|
{0x00, 2, 2, 0,30, 0, 8, 0}, // CE 46 "MOV [X+L], A"
|
|
{0x00, 2, 2, 0,31, 0, 8, 0}, // CE 47 "MOV [Y+L], A"
|
|
{0x00, 3, 2, 0, 9, 0,28, 2}, // CE 48 "MOV B, [X+%s]"
|
|
{0x00, 3, 2, 0, 9, 0,29, 2}, // CE 49 "MOV B, [Y+%s]"
|
|
{0x00, 2, 2, 0, 9, 0,30, 0}, // CE 4A "MOV B, [X+L]"
|
|
{0x00, 2, 2, 0, 9, 0,31, 0}, // CE 4B "MOV B, [Y+L]"
|
|
{0x00, 3, 2, 0,28, 2, 9, 0}, // CE 4C "MOV [X+%s], B"
|
|
{0x00, 3, 2, 0,29, 2, 9, 0}, // CE 4D "MOV [Y+%s], B"
|
|
{0x00, 2, 2, 0,30, 0, 9, 0}, // CE 4E "MOV [X+L], B"
|
|
{0x00, 2, 2, 0,31, 0, 9, 0}, // CE 4F "MOV [Y+L], B"
|
|
{0x00, 3, 2, 0,16, 0,28, 2}, // CE 50 "MOV L, [X+%s]"
|
|
{0x00, 3, 2, 0,16, 0,29, 2}, // CE 51 "MOV L, [Y+%s]"
|
|
{0x00, 2, 2, 0,16, 0,30, 0}, // CE 52 "MOV L, [X+L]"
|
|
{0x00, 2, 2, 0,16, 0,31, 0}, // CE 53 "MOV L, [Y+L]"
|
|
{0x00, 3, 2, 0,28, 2,16, 0}, // CE 54 "MOV [X+%s], L"
|
|
{0x00, 3, 2, 0,29, 2,16, 0}, // CE 55 "MOV [Y+%s], L"
|
|
{0x00, 2, 2, 0,30, 0,16, 0}, // CE 56 "MOV [X+L], L"
|
|
{0x00, 2, 2, 0,31, 0,16, 0}, // CE 57 "MOV [Y+L], L"
|
|
{0x00, 3, 2, 0,17, 0,28, 2}, // CE 58 "MOV H, [X+%s]"
|
|
{0x00, 3, 2, 0,17, 0,29, 2}, // CE 59 "MOV H, [Y+%s]"
|
|
{0x00, 2, 2, 0,17, 0,30, 0}, // CE 5A "MOV H, [X+L]"
|
|
{0x00, 2, 2, 0,17, 0,31, 0}, // CE 5B "MOV H, [Y+L]"
|
|
{0x00, 3, 2, 0,28, 2,17, 0}, // CE 5C "MOV [X+%s], H"
|
|
{0x00, 3, 2, 0,29, 2,17, 0}, // CE 5D "MOV [Y+%s], H"
|
|
{0x00, 2, 2, 0,30, 0,17, 0}, // CE 5E "MOV [X+L], H"
|
|
{0x00, 2, 2, 0,31, 0,17, 0}, // CE 5F "MOV [Y+L], H"
|
|
{0x00, 3, 2, 0,11, 0,28, 2}, // CE 60 "MOV [HL], [X+%s]"
|
|
{0x00, 3, 2, 0,11, 0,29, 2}, // CE 61 "MOV [HL], [Y+%s]"
|
|
{0x00, 2, 2, 0,11, 0,30, 0}, // CE 62 "MOV [HL], [X+L]"
|
|
{0x00, 2, 2, 0,11, 0,31, 0}, // CE 63 "MOV [HL], [Y+L]"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 64 ".DB $CE,$65,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 65 ".DB $CE,$66,%u,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 66 ".DB $CE,$67,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 67 ".DB $CE,$68,%u"
|
|
{0x00, 3, 2, 0,14, 0,28, 2}, // CE 68 "MOV [X], [X+%s]"
|
|
{0x00, 3, 2, 0,14, 0,29, 2}, // CE 69 "MOV [X], [Y+%s]"
|
|
{0x00, 2, 2, 0,14, 0,30, 0}, // CE 6A "MOV [X], [X+L]"
|
|
{0x00, 2, 2, 0,14, 0,31, 0}, // CE 6B "MOV [X], [Y+L]"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 6C ".DB $CE,$6C,%u,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 6D ".DB $CE,$6D,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 6E ".DB $CE,$6E,%u"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 6F ".DB $CE,$6F"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 70 ".DB $CE,$70,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 71 ".DB $CE,$71,%u"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 72 ".DB $CE,$72"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 73 ".DB $CE,$73"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 74 ".DB $CE,$74,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 75 ".DB $CE,$75,%u"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 76 ".DB $CE,$76"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 77 ".DB $CE,$77"
|
|
{0x00, 3, 2, 0,15, 0,28, 2}, // CE 78 "MOV [Y], [X+%s]"
|
|
{0x00, 3, 2, 0,15, 0,29, 2}, // CE 79 "MOV [Y], [Y+%s]"
|
|
{0x00, 2, 2, 0,15, 0,30, 0}, // CE 7A "MOV [Y], [X+L]"
|
|
{0x00, 2, 2, 0,15, 0,31, 0}, // CE 7B "MOV [Y], [Y+L]"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 7C ".DB $CE,$7C,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE 7D ".DB $CE,$7D,%u"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 7E ".DB $CE,$7E"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 7F ".DB $CE,$7F"
|
|
{0x00, 2,40, 0, 8, 0, 0, 0}, // CE 80 "SAL A"
|
|
{0x00, 2,40, 0, 9, 0, 0, 0}, // CE 81 "SAL B"
|
|
{0x00, 3,40, 0,12, 2, 0, 0}, // CE 82 "SAL [N+%u]"
|
|
{0x00, 2,40, 0,11, 0, 0, 0}, // CE 83 "SAL [HL]"
|
|
{0x00, 2,41, 0, 8, 0, 0, 0}, // CE 84 "SHL A"
|
|
{0x00, 2,41, 0, 9, 0, 0, 0}, // CE 85 "SHL B"
|
|
{0x00, 3,41, 0,12, 2, 0, 0}, // CE 86 "SHL [N+%u]"
|
|
{0x00, 2,41, 0,11, 0, 0, 0}, // CE 87 "SHL [HL]"
|
|
{0x00, 2,42, 0, 8, 0, 0, 0}, // CE 88 "SAR A"
|
|
{0x00, 2,42, 0, 9, 0, 0, 0}, // CE 89 "SAR B"
|
|
{0x00, 3,42, 0,12, 2, 0, 0}, // CE 8A "SAR [N+%u]"
|
|
{0x00, 2,42, 0,11, 0, 0, 0}, // CE 8B "SAR [HL]"
|
|
{0x00, 2,43, 0, 8, 0, 0, 0}, // CE 8C "SHR A"
|
|
{0x00, 2,43, 0, 9, 0, 0, 0}, // CE 8D "SHR B"
|
|
{0x00, 3,43, 0,12, 2, 0, 0}, // CE 8E "SHR [N+%u]"
|
|
{0x00, 2,43, 0,11, 0, 0, 0}, // CE 8F "SHR [HL]"
|
|
{0x00, 2,44, 0, 8, 0, 0, 0}, // CE 90 "ROLC A"
|
|
{0x00, 2,44, 0, 9, 0, 0, 0}, // CE 91 "ROLC B"
|
|
{0x00, 3,44, 0,12, 2, 0, 0}, // CE 92 "ROLC [N+%u]"
|
|
{0x00, 2,44, 0,11, 0, 0, 0}, // CE 93 "ROLC [HL]"
|
|
{0x00, 2,45, 0, 8, 0, 0, 0}, // CE 94 "ROL A"
|
|
{0x00, 2,45, 0, 9, 0, 0, 0}, // CE 95 "ROL B"
|
|
{0x00, 3,45, 0,12, 2, 0, 0}, // CE 96 "ROL [N+%u]"
|
|
{0x00, 2,45, 0,11, 0, 0, 0}, // CE 97 "ROL [HL]"
|
|
{0x00, 2,46, 0, 8, 0, 0, 0}, // CE 98 "RORC A"
|
|
{0x00, 2,46, 0, 9, 0, 0, 0}, // CE 99 "RORC B"
|
|
{0x00, 3,46, 0,12, 2, 0, 0}, // CE 9A "RORC [N+%u]"
|
|
{0x00, 2,46, 0,11, 0, 0, 0}, // CE 9B "RORC [HL]"
|
|
{0x00, 2,47, 0, 8, 0, 0, 0}, // CE 9C "ROR A"
|
|
{0x00, 2,47, 0, 9, 0, 0, 0}, // CE 9D "ROR B"
|
|
{0x00, 3,47, 0,12, 2, 0, 0}, // CE 9E "ROR [N+%u]"
|
|
{0x00, 2,47, 0,11, 0, 0, 0}, // CE 9F "ROR [HL]"
|
|
{0x00, 2,48, 0, 8, 0, 0, 0}, // CE A0 "NOT A"
|
|
{0x00, 2,48, 0, 9, 0, 0, 0}, // CE A1 "NOT B"
|
|
{0x00, 3,48, 0,12, 2, 0, 0}, // CE A2 "NOT [N+%u]"
|
|
{0x00, 2,48, 0,11, 0, 0, 0}, // CE A3 "NOT [HL]"
|
|
{0x00, 2,49, 0, 8, 0, 0, 0}, // CE A4 "NEG A"
|
|
{0x00, 2,49, 0, 9, 0, 0, 0}, // CE A5 "NEG B"
|
|
{0x00, 3,49, 0,12, 2, 0, 0}, // CE A6 "NEG [N+%u]"
|
|
{0x00, 2,49, 0,11, 0, 0, 0}, // CE A7 "NEG [HL]"
|
|
{0x00, 2,15, 0,20, 0, 8, 0}, // CE A8 "EX BA, A"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE A9 ".DB $CE,$A9"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE AA ".DB $CE,$AA"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE AB ".DB $CE,$AB"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE AC ".DB $CE,$AC"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE AD ".DB $CE,$AD"
|
|
{0x00, 2,89, 0, 0, 0, 0, 0}, // CE AE "HALT"
|
|
{0x00, 2,88, 0, 0, 0, 0, 0}, // CE AF "STOP"
|
|
{0x00, 3, 8, 0, 9, 0,10, 2}, // CE B0 "AND B, %u"
|
|
{0x00, 3, 8, 0,16, 0,10, 2}, // CE B1 "AND L, %u"
|
|
{0x00, 3, 8, 0,17, 0,10, 2}, // CE B2 "AND H, %u"
|
|
{0x00, 2, 0, 0, 0, 0, 0, 0}, // CE B3 ".DB $CE,$B3"
|
|
{0x00, 3, 9, 0, 9, 0,10, 2}, // CE B4 "OR B, %u"
|
|
{0x00, 3, 9, 0,16, 0,10, 2}, // CE B5 "OR L, %u"
|
|
{0x00, 3, 9, 0,17, 0,10, 2}, // CE B6 "OR H, %u"
|
|
{0x00, 2, 0, 0, 0, 0, 0, 0}, // CE B7 ".DB $CE,$B7"
|
|
{0x00, 3,11, 0, 9, 0,10, 2}, // CE B8 "XOR B, %u"
|
|
{0x00, 3,11, 0,16, 0,10, 2}, // CE B9 "XOR L, %u"
|
|
{0x00, 3,11, 0,17, 0,10, 2}, // CE BA "XOR H, %u"
|
|
{0x00, 2, 0, 0, 0, 0, 0, 0}, // CE BB ".DB $CE,$B3"
|
|
{0x00, 3,10, 0, 9, 0,10, 2}, // CE BC "CMP B, %u"
|
|
{0x00, 3,10, 0,16, 0,10, 2}, // CE BD "CMP L, %u"
|
|
{0x00, 3,10, 0,17, 0,10, 2}, // CE BE "CMP H, %u"
|
|
{0x00, 3,10, 0,18, 0,10, 2}, // CE BF "CMP N, %u"
|
|
{0x00, 2, 2, 0, 8, 0,18, 0}, // CE C0 "MOV A, N"
|
|
{0x00, 2, 2, 0, 8, 0,24, 0}, // CE C1 "MOV A, F"
|
|
{0x00, 2, 2, 0,18, 0, 8, 0}, // CE C2 "MOV N, A"
|
|
{0x00, 2, 2, 0,24, 0, 8, 0}, // CE C3 "MOV F, A"
|
|
{0x00, 3, 2, 0,32, 0, 4, 2}, // CE C4 "MOV U, %u"
|
|
{0x00, 3, 2, 0,25, 0, 4, 2}, // CE C5 "MOV I, %u"
|
|
{0x00, 3, 2, 0,34, 0, 4, 2}, // CE C6 "MOV XI, %u"
|
|
{0x00, 3, 2, 0,35, 0, 4, 2}, // CE C7 "MOV YI, %u"
|
|
{0x00, 2, 2, 0, 8, 0,33, 0}, // CE C8 "MOV A, V"
|
|
{0x00, 2, 2, 0, 8, 0,25, 0}, // CE C9 "MOV A, I"
|
|
{0x00, 2, 2, 0, 8, 0,34, 0}, // CE CA "MOV A, XI"
|
|
{0x00, 2, 2, 0, 8, 0,35, 0}, // CE CB "MOV A, YI"
|
|
{0x00, 2, 2, 0,32, 0, 8, 0}, // CE CC "MOV U, A"
|
|
{0x00, 2, 2, 0,25, 0, 8, 0}, // CE CD "MOV I, A"
|
|
{0x00, 2, 2, 0,34, 0, 8, 0}, // CE CE "MOV XI, A"
|
|
{0x00, 2, 2, 0,35, 0, 8, 0}, // CE CF "MOV YI, A"
|
|
{0x00, 4, 2, 0, 8, 0,13, 2}, // CE D0 "MOV A, [%U]"
|
|
{0x00, 4, 2, 0, 9, 0,13, 2}, // CE D1 "MOV B, [%U]"
|
|
{0x00, 4, 2, 0,16, 0,13, 2}, // CE D2 "MOV L, [%U]"
|
|
{0x00, 4, 2, 0,17, 0,13, 2}, // CE D3 "MOV H, [%U]"
|
|
{0x00, 4, 2, 0,13, 2, 8, 0}, // CE D4 "MOV [%U], A"
|
|
{0x00, 4, 2, 0,13, 2, 9, 0}, // CE D5 "MOV [%U], B"
|
|
{0x00, 4, 2, 0,13, 2,16, 0}, // CE D6 "MOV [%U], L"
|
|
{0x00, 4, 2, 0,13, 2,17, 0}, // CE D7 "MOV [%U], H"
|
|
{0x00, 2,50, 0,16, 0, 8, 0}, // CE D8 "MUL L, A"
|
|
{0x00, 2,51, 0,21, 0, 8, 0}, // CE D9 "DIV HL, A"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE DA ".DB $CE,$DA,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE DB ".DB $CE,$DB,%u"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE DC ".DB $CE,$DC"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE DD ".DB $CE,$DD"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE DE ".DB $CE,$DE,%u"
|
|
{0x00, 3, 0, 0, 4, 0, 4, 0}, // CE DF ".DB $CE,$DF,%u"
|
|
{0x00, 3,56, 0,38, 2, 0, 0}, // CE E0 "JL %h"
|
|
{0x00, 3,57, 0,38, 2, 0, 0}, // CE E1 "JLE %h"
|
|
{0x00, 3,58, 0,38, 2, 0, 0}, // CE E2 "JG %h"
|
|
{0x00, 3,59, 0,38, 2, 0, 0}, // CE E3 "JGE %h"
|
|
{0x00, 3,60, 0,38, 2, 0, 0}, // CE E4 "JO %h"
|
|
{0x00, 3,61, 0,38, 2, 0, 0}, // CE E5 "JNO %h"
|
|
{0x00, 3,62, 0,38, 2, 0, 0}, // CE E6 "JNS %h"
|
|
{0x00, 3,63, 0,38, 2, 0, 0}, // CE E7 "JS %h"
|
|
{0x00, 3,64, 0,38, 2, 0, 0}, // CE E8 "JNX0 %h"
|
|
{0x00, 3,65, 0,38, 2, 0, 0}, // CE E9 "JNX1 %h"
|
|
{0x00, 3,66, 0,38, 2, 0, 0}, // CE EA "JNX2 %h"
|
|
{0x00, 3,67, 0,38, 2, 0, 0}, // CE EB "JNX3 %h"
|
|
{0x00, 3,68, 0,38, 2, 0, 0}, // CE EC "JX0 %h"
|
|
{0x00, 2,69, 0,38, 2, 0, 0}, // CE ED "JX1 %h"
|
|
{0x00, 3,70, 0,38, 2, 0, 0}, // CE EE "JX2 %h"
|
|
{0x00, 3,71, 0,38, 2, 0, 0}, // CE EF "JX3 %h"
|
|
{0x00, 3,72, 0,38, 2, 0, 0}, // CE F0 "CALLL %h"
|
|
{0x00, 3,73, 0,38, 2, 0, 0}, // CE F1 "CALLLE %h"
|
|
{0x00, 3,74, 0,38, 2, 0, 0}, // CE F2 "CALLG %h"
|
|
{0x00, 3,75, 0,38, 2, 0, 0}, // CE F3 "CALLGE %h"
|
|
{0x00, 3,76, 0,38, 2, 0, 0}, // CE F4 "CALLO %h"
|
|
{0x00, 3,77, 0,38, 2, 0, 0}, // CE F5 "CALLNO %h"
|
|
{0x00, 3,78, 0,38, 2, 0, 0}, // CE F6 "CALLNS %h"
|
|
{0x00, 3,79, 0,38, 2, 0, 0}, // CE F7 "CALLS %h"
|
|
{0x00, 3,80, 0,38, 2, 0, 0}, // CE F8 "CALLNX0 %h"
|
|
{0x00, 3,81, 0,38, 2, 0, 0}, // CE F9 "CALLNX1 %h"
|
|
{0x00, 3,82, 0,38, 2, 0, 0}, // CE FA "CALLNX2 %h"
|
|
{0x00, 3,83, 0,38, 2, 0, 0}, // CE FB "CALLNX3 %h"
|
|
{0x00, 3,84, 0,38, 2, 0, 0}, // CE FC "CALLX0 %h"
|
|
{0x00, 3,85, 0,38, 2, 0, 0}, // CE FD "CALLX1 %h"
|
|
{0x00, 3,86, 0,38, 2, 0, 0}, // CE FE "CALLX2 %h"
|
|
{0x00, 3,87, 0,38, 2, 0, 0} // CE FF "CALLX3 %h"
|
|
};
|
|
|
|
InstructionInfo DebugCPUInstructions_CF[256] = {
|
|
{0x00, 2, 4, 0,20, 0,20, 0}, // CE 00 "ADD BA, BA"
|
|
{0x00, 2, 4, 0,20, 0,21, 0}, // CE 01 "ADD BA, HL"
|
|
{0x00, 2, 4, 0,20, 0,22, 0}, // CE 02 "ADD BA, X"
|
|
{0x00, 2, 4, 0,20, 0,23, 0}, // CE 03 "ADD BA, Y"
|
|
{0x00, 2, 5, 0,20, 0,20, 0}, // CE 04 "ADC BA, BA"
|
|
{0x00, 2, 5, 0,20, 0,21, 0}, // CE 05 "ADC BA, HL"
|
|
{0x00, 2, 5, 0,20, 0,22, 0}, // CE 06 "ADC BA, X"
|
|
{0x00, 2, 5, 0,20, 0,23, 0}, // CE 07 "ADC BA, Y"
|
|
{0x00, 2, 6, 0,20, 0,20, 0}, // CE 08 "SUB BA, BA"
|
|
{0x00, 2, 6, 0,20, 0,21, 0}, // CE 09 "SUB BA, HL"
|
|
{0x00, 2, 6, 0,20, 0,22, 0}, // CE 0A "SUB BA, X"
|
|
{0x00, 2, 6, 0,20, 0,23, 0}, // CE 0B "SUB BA, Y"
|
|
{0x00, 2, 7, 0,20, 0,20, 0}, // CE 0C "SBC BA, BA"
|
|
{0x00, 2, 7, 0,20, 0,21, 0}, // CE 0D "SBC BA, HL"
|
|
{0x00, 2, 7, 0,20, 0,22, 0}, // CE 0E "SBC BA, X"
|
|
{0x00, 2, 7, 0,20, 0,23, 0}, // CE 0F "SBC BA, Y"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 10 ".DB $CF,$10"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 11 ".DB $CF,$11"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 12 ".DB $CF,$12"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 13 ".DB $CF,$13"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 14 ".DB $CF,$14"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 15 ".DB $CF,$15"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 16 ".DB $CF,$16"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 17 ".DB $CF,$17"
|
|
{0x00, 2,10, 0,20, 0,20, 0}, // CE 18 "CMP BA, BA"
|
|
{0x00, 2,10, 0,20, 0,21, 0}, // CE 19 "CMP BA, HL"
|
|
{0x00, 2,10, 0,20, 0,22, 0}, // CE 1A "CMP BA, X"
|
|
{0x00, 2,10, 0,20, 0,23, 0}, // CE 1B "CMP BA, Y"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 1C ".DB $CF,$1C"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 1D ".DB $CF,$1D"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 1E ".DB $CF,$1E"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 1F ".DB $CF,$1F"
|
|
{0x00, 2, 4, 0,21, 0,20, 0}, // CE 20 "ADD HL, BA"
|
|
{0x00, 2, 4, 0,21, 0,21, 0}, // CE 21 "ADD HL, HL"
|
|
{0x00, 2, 4, 0,21, 0,22, 0}, // CE 22 "ADD HL, X"
|
|
{0x00, 2, 4, 0,21, 0,23, 0}, // CE 23 "ADD HL, Y"
|
|
{0x00, 2, 5, 0,21, 0,20, 0}, // CE 24 "ADC HL, BA"
|
|
{0x00, 2, 5, 0,21, 0,21, 0}, // CE 25 "ADC HL, HL"
|
|
{0x00, 2, 5, 0,21, 0,22, 0}, // CE 26 "ADC HL, X"
|
|
{0x00, 2, 5, 0,21, 0,23, 0}, // CE 27 "ADC HL, Y"
|
|
{0x00, 2, 6, 0,21, 0,20, 0}, // CE 28 "SUB HL, BA"
|
|
{0x00, 2, 6, 0,21, 0,21, 0}, // CE 29 "SUB HL, HL"
|
|
{0x00, 2, 6, 0,21, 0,22, 0}, // CE 2A "SUB HL, X"
|
|
{0x00, 2, 6, 0,21, 0,23, 0}, // CE 2B "SUB HL, Y"
|
|
{0x00, 2, 7, 0,21, 0,20, 0}, // CE 2C "SBC HL, BA"
|
|
{0x00, 2, 7, 0,21, 0,21, 0}, // CE 2D "SBC HL, HL"
|
|
{0x00, 2, 7, 0,21, 0,22, 0}, // CE 2E "SBC HL, X"
|
|
{0x00, 2, 7, 0,21, 0,23, 0}, // CE 2F "SBC HL, Y"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 30 ".DB $CF,$30"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 31 ".DB $CF,$31"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 32 ".DB $CF,$32"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 33 ".DB $CF,$33"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 34 ".DB $CF,$34"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 35 ".DB $CF,$35"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 36 ".DB $CF,$36"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 37 ".DB $CF,$37"
|
|
{0x00, 2,10, 0,21, 0,20, 0}, // CE 38 "CMP HL, BA"
|
|
{0x00, 2,10, 0,21, 0,21, 0}, // CE 39 "CMP HL, HL"
|
|
{0x00, 2,10, 0,21, 0,22, 0}, // CE 3A "CMP HL, X"
|
|
{0x00, 2,10, 0,21, 0,23, 0}, // CE 3B "CMP HL, Y"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 3C ".DB $CF,$3C"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 3D ".DB $CF,$3D"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 3E ".DB $CF,$3E"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 3F ".DB $CF,$3F"
|
|
{0x00, 2, 4, 0,22, 0,20, 0}, // CE 40 "ADD X, BA"
|
|
{0x00, 2, 4, 0,22, 0,21, 0}, // CE 41 "ADD X, HL"
|
|
{0x00, 2, 4, 0,23, 0,20, 0}, // CE 42 "ADD Y, BA"
|
|
{0x00, 2, 4, 0,23, 0,21, 0}, // CE 43 "ADD Y, HL"
|
|
{0x00, 2, 4, 0,19, 0,20, 0}, // CE 44 "ADD SP, BA"
|
|
{0x00, 2, 4, 0,19, 0,21, 0}, // CE 45 "ADD SP, HL"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 46 ".DB $CF,$46"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 47 ".DB $CF,$47"
|
|
{0x00, 2, 6, 0,22, 0,20, 0}, // CE 48 "SUB X, BA"
|
|
{0x00, 2, 6, 0,22, 0,21, 0}, // CE 49 "SUB X, HL"
|
|
{0x00, 2, 6, 0,23, 0,20, 0}, // CE 4A "SUB Y, BA"
|
|
{0x00, 2, 6, 0,23, 0,21, 0}, // CE 4B "SUB Y, HL"
|
|
{0x00, 2, 6, 0,19, 0,20, 0}, // CE 4C "SUB SP, BA"
|
|
{0x00, 2, 6, 0,19, 0,21, 0}, // CE 4D "SUB SP, HL"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 4E ".DB $CF,$4E"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 4F ".DB $CF,$4F"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 50 ".DB $CF,$50"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 51 ".DB $CF,$51"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 52 ".DB $CF,$52"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 53 ".DB $CF,$53"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 54 ".DB $CF,$54"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 55 ".DB $CF,$55"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 56 ".DB $CF,$56"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 57 ".DB $CF,$57"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 58 ".DB $CF,$58"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 59 ".DB $CF,$59"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 5A ".DB $CF,$5A"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 5B ".DB $CF,$5B"
|
|
{0x00, 2,10, 0,19, 0,20, 0}, // CE 5C "CMP SP, BA"
|
|
{0x00, 2,10, 0,19, 0,21, 0}, // CE 5D "CMP SP, HL"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 5E ".DB $CF,$5E"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 5F ".DB $CF,$5F"
|
|
{0x00, 4, 5, 0,20, 0, 5, 2}, // CE 60 "ADC BA, %U"
|
|
{0x00, 4, 5, 0,21, 0, 5, 2}, // CE 61 "ADC HL, %U"
|
|
{0x00, 4, 7, 0,20, 0, 5, 2}, // CE 62 "SBC BA, %U"
|
|
{0x00, 4, 7, 0,21, 0, 5, 2}, // CE 63 "SBC HL, %U"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 64 ".DB $CF,$64"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 65 ".DB $CF,$65"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 66 ".DB $CF,$66"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 67 ".DB $CF,$67"
|
|
{0x00, 4, 4, 0,19, 0, 5, 2}, // CE 68 "ADD SP, %U"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 69 ".DB $CF,$69"
|
|
{0x00, 4, 6, 0,19, 0, 5, 2}, // CE 6A "SUB SP, %U"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 6B ".DB $CF,$6B"
|
|
{0x00, 4,10, 0,19, 0, 5, 2}, // CE 6C "CMP SP, %U"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 6D ".DB $CF,$6D"
|
|
{0x00, 4, 2, 0,19, 0, 5, 2}, // CE 6E "MOV SP, %U"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE 6F ".DB $CF,$6F"
|
|
{0x00, 3, 2, 0,20, 0,36, 2}, // CE 70 "MOV BA, [SP+%s]"
|
|
{0x00, 3, 2, 0,21, 0,36, 2}, // CE 71 "MOV HL, [SP+%s]"
|
|
{0x00, 3, 2, 0,22, 0,36, 2}, // CE 72 "MOV X, [SP+%s]"
|
|
{0x00, 3, 2, 0,23, 0,36, 2}, // CE 73 "MOV Y, [SP+%s]"
|
|
{0x00, 3, 2, 0,36, 2,20, 0}, // CE 74 "MOV [SP+%s], BA"
|
|
{0x00, 3, 2, 0,36, 2,21, 0}, // CE 75 "MOV [SP+%s], HL"
|
|
{0x00, 3, 2, 0,36, 2,22, 0}, // CE 76 "MOV [SP+%s], X"
|
|
{0x00, 3, 2, 0,36, 2,23, 0}, // CE 77 "MOV [SP+%s], Y"
|
|
{0x00, 4, 2, 0,19, 0,13, 2}, // CE 78 "MOV SP, [%U]"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 79 ".DB $CF,$79,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 7A ".DB $CF,$7A,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 7B ".DB $CF,$7B,%u,%u"
|
|
{0x00, 4, 2, 0,13, 2,19, 0}, // CE 7C "MOV [%U], SP"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 7D ".DB $CF,$7D,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 7E ".DB $CF,$7E,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 7F ".DB $CF,$7F,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 80 ".DB $CF,$80,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 81 ".DB $CF,$81,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 82 ".DB $CF,$82,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 83 ".DB $CF,$83,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 84 ".DB $CF,$84,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 85 ".DB $CF,$85,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 86 ".DB $CF,$86,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 87 ".DB $CF,$87,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 88 ".DB $CF,$88,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 89 ".DB $CF,$89,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 8A ".DB $CF,$8A,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 8B ".DB $CF,$8B,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 8C ".DB $CF,$8C,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 8D ".DB $CF,$8D,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 8E ".DB $CF,$8E,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 8F ".DB $CF,$8F,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 90 ".DB $CF,$90,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 91 ".DB $CF,$91,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 92 ".DB $CF,$92,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 93 ".DB $CF,$93,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 94 ".DB $CF,$94,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 95 ".DB $CF,$95,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 96 ".DB $CF,$96,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 97 ".DB $CF,$97,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 98 ".DB $CF,$98,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 99 ".DB $CF,$99,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 9A ".DB $CF,$9A,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 9B ".DB $CF,$9B,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 9C ".DB $CF,$9C,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 9D ".DB $CF,$9D,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 9E ".DB $CF,$9E,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE 9F ".DB $CF,$9F,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A0 ".DB $CF,$A0,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A1 ".DB $CF,$A1,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A2 ".DB $CF,$A2,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A3 ".DB $CF,$A3,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A4 ".DB $CF,$A4,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A5 ".DB $CF,$A5,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A6 ".DB $CF,$A6,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A7 ".DB $CF,$A7,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A8 ".DB $CF,$A8,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE A9 ".DB $CF,$A9,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE AA ".DB $CF,$AA,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE AB ".DB $CF,$AB,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE AC ".DB $CF,$AC,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE AD ".DB $CF,$AD,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE AE ".DB $CF,$AE,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE AF ".DB $CF,$AF,%u,%u"
|
|
{0x00, 2,16, 0, 8, 0, 0, 0}, // CE B0 "PUSH A"
|
|
{0x00, 2,16, 0, 9, 0, 0, 0}, // CE B1 "PUSH B"
|
|
{0x00, 2,16, 0,16, 0, 0, 0}, // CE B2 "PUSH L"
|
|
{0x00, 2,16, 0,17, 0, 0, 0}, // CE B3 "PUSH H"
|
|
{0x00, 2,17, 0, 8, 0, 0, 0}, // CE B4 "POP A"
|
|
{0x00, 2,17, 0, 9, 0, 0, 0}, // CE B5 "POP B"
|
|
{0x00, 2,17, 0,16, 0, 0, 0}, // CE B6 "POP L"
|
|
{0x00, 2,17, 0,17, 0, 0, 0}, // CE B7 "POP H"
|
|
{0x00, 2,52, 0, 0, 0, 0, 0}, // CE B8 "PUSHA"
|
|
{0x00, 2,53, 0, 0, 0, 0, 0}, // CE B9 "PUSHAX"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE BA ".DB $CF,$BA,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE BB ".DB $CF,$BB,%u,%u"
|
|
{0x00, 2,54, 0, 0, 0, 0, 0}, // CE BC "POPA"
|
|
{0x00, 2,55, 0, 0, 0, 0, 0}, // CE BD "POPAX"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE BE ".DB $CF,$BE,%u,%u"
|
|
{0x00, 4, 0, 0, 4, 0, 4, 0}, // CE BF ".DB $CF,$BF,%u,%u"
|
|
{0x00, 2, 2, 0,20, 0,11, 0}, // CE C0 "MOV BA, [HL]"
|
|
{0x00, 2, 2, 0,21, 0,11, 0}, // CE C1 "MOV HL, [HL]"
|
|
{0x00, 2, 2, 0,22, 0,11, 0}, // CE C2 "MOV X, [HL]"
|
|
{0x00, 2, 2, 0,23, 0,11, 0}, // CE C3 "MOV Y, [HL]"
|
|
{0x00, 2, 2, 0,11, 0,20, 0}, // CE C4 "MOV [HL], BA"
|
|
{0x00, 2, 2, 0,11, 0,21, 0}, // CE C5 "MOV [HL], HL"
|
|
{0x00, 2, 2, 0,11, 0,22, 0}, // CE C6 "MOV [HL], X"
|
|
{0x00, 2, 2, 0,11, 0,23, 0}, // CE C7 "MOV [HL], Y"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE C8 ".DB $CF,$C8"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE C9 ".DB $CF,$C9"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE CA ".DB $CF,$CA"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE CB ".DB $CF,$CB"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE CC ".DB $CF,$CC"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE CD ".DB $CF,$CD"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE CE ".DB $CF,$CE"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE CF ".DB $CF,$CF"
|
|
{0x00, 2, 2, 0,20, 0,14, 0}, // CE D0 "MOV BA, [X]"
|
|
{0x00, 2, 2, 0,21, 0,14, 0}, // CE D1 "MOV HL, [X]"
|
|
{0x00, 2, 2, 0,22, 0,14, 0}, // CE D2 "MOV X, [X]"
|
|
{0x00, 2, 2, 0,23, 0,14, 0}, // CE D3 "MOV Y, [X]"
|
|
{0x00, 2, 2, 0,14, 0,20, 0}, // CE D4 "MOV [X], BA"
|
|
{0x00, 2, 2, 0,14, 0,21, 0}, // CE D5 "MOV [X], HL"
|
|
{0x00, 2, 2, 0,14, 0,22, 0}, // CE D6 "MOV [X], X"
|
|
{0x00, 2, 2, 0,14, 0,23, 0}, // CE D7 "MOV [X], Y"
|
|
{0x00, 2, 2, 0,20, 0,15, 0}, // CE D8 "MOV BA, [Y]"
|
|
{0x00, 2, 2, 0,21, 0,15, 0}, // CE D9 "MOV HL, [Y]"
|
|
{0x00, 2, 2, 0,22, 0,15, 0}, // CE DA "MOV X, [Y]"
|
|
{0x00, 2, 2, 0,23, 0,15, 0}, // CE DB "MOV Y, [Y]"
|
|
{0x00, 2, 2, 0,15, 0,20, 0}, // CE DC "MOV [Y], BA"
|
|
{0x00, 2, 2, 0,15, 0,21, 0}, // CE DD "MOV [Y], HL"
|
|
{0x00, 2, 2, 0,15, 0,22, 0}, // CE DE "MOV [Y], X"
|
|
{0x00, 2, 2, 0,15, 0,23, 0}, // CE DF "MOV [Y], Y"
|
|
{0x00, 2, 2, 0,20, 0,20, 0}, // CE E0 "MOV BA, BA"
|
|
{0x00, 2, 2, 0,20, 0,21, 0}, // CE E1 "MOV BA, HL"
|
|
{0x00, 2, 2, 0,20, 0,22, 0}, // CE E2 "MOV BA, X"
|
|
{0x00, 2, 2, 0,20, 0,23, 0}, // CE E3 "MOV BA, Y"
|
|
{0x00, 2, 2, 0,21, 0,20, 0}, // CE E4 "MOV HL, BA"
|
|
{0x00, 2, 2, 0,21, 0,21, 0}, // CE E5 "MOV HL, HL"
|
|
{0x00, 2, 2, 0,21, 0,22, 0}, // CE E6 "MOV HL, X"
|
|
{0x00, 2, 2, 0,21, 0,23, 0}, // CE E7 "MOV HL, Y"
|
|
{0x00, 2, 2, 0,22, 0,20, 0}, // CE E8 "MOV X, BA"
|
|
{0x00, 2, 2, 0,22, 0,21, 0}, // CE E9 "MOV X, HL"
|
|
{0x00, 2, 2, 0,22, 0,22, 0}, // CE EA "MOV X, X"
|
|
{0x00, 2, 2, 0,20, 0,23, 0}, // CE EB "MOV X, Y"
|
|
{0x00, 2, 2, 0,23, 0,20, 0}, // CE EC "MOV Y, BA"
|
|
{0x00, 2, 2, 0,23, 0,21, 0}, // CE ED "MOV Y, HL"
|
|
{0x00, 2, 2, 0,23, 0,22, 0}, // CE EE "MOV Y, X"
|
|
{0x00, 2, 2, 0,23, 0,23, 0}, // CE EF "MOV Y, Y"
|
|
{0x00, 2, 2, 0,19, 0,20, 0}, // CE F0 "MOV SP, BA"
|
|
{0x00, 2, 2, 0,19, 0,21, 0}, // CE F1 "MOV SP, HL"
|
|
{0x00, 2, 2, 0,19, 0,22, 0}, // CE F2 "MOV SP, X"
|
|
{0x00, 2, 2, 0,19, 0,23, 0}, // CE F3 "MOV SP, Y"
|
|
{0x00, 2, 2, 0,21, 0,19, 0}, // CE F4 "MOV HL, SP"
|
|
{0x00, 2, 2, 0,21, 0,37, 0}, // CE F5 "MOV HL, PC"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE F6 ".DB $CF,$F6"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE F7 ".DB $CF,$F7"
|
|
{0x00, 2, 2, 0,20, 0,19, 0}, // CE F8 "MOV BA, SP"
|
|
{0x00, 2, 2, 0,20, 0,37, 0}, // CE F9 "MOV BA, PC"
|
|
{0x00, 2, 2, 0,22, 0,19, 0}, // CE FA "MOV X, SP"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE FB ".DB $CF,$FB"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE FC ".DB $CF,$FC"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0}, // CE FD ".DB $CF,$FD"
|
|
{0x00, 2, 2, 0,23, 0,19, 0}, // CE FE "MOV Y, SP"
|
|
{0x00, 2, 0, 0, 4, 0, 4, 0} // CE FF ".DB $CF,$FF"
|
|
};
|