ADCsA_A = 'h8F,// ADC A,A ; 8F
|
ADCsA_A = 'h8F,// ADC A,A ; 8F
|
ADCsA_B = 'h88,// ADC A,B ; 88
|
ADCsA_B = 'h88,// ADC A,B ; 88
|
ADCsA_C = 'h89,// ADC A,C ; 89
|
ADCsA_C = 'h89,// ADC A,C ; 89
|
ADCsA_D = 'h8A,// ADC A,D ; 8A
|
ADCsA_D = 'h8A,// ADC A,D ; 8A
|
ADCsA_E = 'h8B,// ADC A,E ; 8B
|
ADCsA_E = 'h8B,// ADC A,E ; 8B
|
ADCsA_H = 'h8C,// ADC A,H ; 8C
|
ADCsA_H = 'h8C,// ADC A,H ; 8C
|
ADCsA_L = 'h8D,// ADC A,L ; 8D
|
ADCsA_L = 'h8D,// ADC A,L ; 8D
|
ADCsA_N = 'hCE,// ADC A,N ; CE XX
|
ADCsA_N = 'hCE,// ADC A,N ; CE XX
|
ADDsA_A = 'h87,// ADD A,A ; 87
|
ADDsA_A = 'h87,// ADD A,A ; 87
|
ADDsA_B = 'h80,// ADD A,B ; 80
|
ADDsA_B = 'h80,// ADD A,B ; 80
|
ADDsA_C = 'h81,// ADD A,C ; 81
|
ADDsA_C = 'h81,// ADD A,C ; 81
|
ADDsA_D = 'h82,// ADD A,D ; 82
|
ADDsA_D = 'h82,// ADD A,D ; 82
|
ADDsA_E = 'h83,// ADD A,E ; 83
|
ADDsA_E = 'h83,// ADD A,E ; 83
|
ADDsA_H = 'h84,// ADD A,H ; 84
|
ADDsA_H = 'h84,// ADD A,H ; 84
|
ADDsA_L = 'h85,// ADD A,L ; 85
|
ADDsA_L = 'h85,// ADD A,L ; 85
|
ADDsA_N = 'hC6,// ADD A,N ; C6 XX
|
ADDsA_N = 'hC6,// ADD A,N ; C6 XX
|
ADDsHL_BC = 'h09,// ADD HL,BC ; 09
|
ADDsHL_BC = 'h09,// ADD HL,BC ; 09
|
ADDsHL_DE = 'h19,// ADD HL,DE ; 19
|
ADDsHL_DE = 'h19,// ADD HL,DE ; 19
|
ADDsHL_HL = 'h29,// ADD HL,HL ; 29
|
ADDsHL_HL = 'h29,// ADD HL,HL ; 29
|
ADDsHL_SP = 'h39,// ADD HL,SP ; 39
|
ADDsHL_SP = 'h39,// ADD HL,SP ; 39
|
ANDsA = 'hA7,// AND A ; A7
|
ANDsA = 'hA7,// AND A ; A7
|
ANDsB = 'hA0,// AND B ; A0
|
ANDsB = 'hA0,// AND B ; A0
|
ANDsC = 'hA1,// AND C ; A1
|
ANDsC = 'hA1,// AND C ; A1
|
ANDsD = 'hA2,// AND D ; A2
|
ANDsD = 'hA2,// AND D ; A2
|
ANDsE = 'hA3,// AND E ; A3
|
ANDsE = 'hA3,// AND E ; A3
|
ANDsH = 'hA4,// AND H ; A4
|
ANDsH = 'hA4,// AND H ; A4
|
ANDsL = 'hA5,// AND L ; A5
|
ANDsL = 'hA5,// AND L ; A5
|
ANDsN = 'hE6,// AND N ; E6 XX
|
ANDsN = 'hE6,// AND N ; E6 XX
|
CCF = 'h3F,// CCF ; 3F
|
CCF = 'h3F,// CCF ; 3F
|
CPL = 'h2F,// CPL ; 2F
|
CPL = 'h2F,// CPL ; 2F
|
CPsA = 'hBF,// CP A ; BF
|
CPsA = 'hBF,// CP A ; BF
|
CPsB = 'hB8,// CP B ; B8
|
CPsB = 'hB8,// CP B ; B8
|
CPsC = 'hB9,// CP C ; B9
|
CPsC = 'hB9,// CP C ; B9
|
CPsD = 'hBA,// CP D ; BA
|
CPsD = 'hBA,// CP D ; BA
|
CPsE = 'hBB,// CP E ; BB
|
CPsE = 'hBB,// CP E ; BB
|
CPsH = 'hBC,// CP H ; BC
|
CPsH = 'hBC,// CP H ; BC
|
CPsL = 'hBD,// CP L ; BD
|
CPsL = 'hBD,// CP L ; BD
|
CPsN = 'hFE,// CP N ; FE XX
|
CPsN = 'hFE,// CP N ; FE XX
|
DAA = 'h27,// DAA ; 27
|
DAA = 'h27,// DAA ; 27
|
DECsA = 'h3D,// DEC A ; 3D
|
DECsA = 'h3D,// DEC A ; 3D
|
DECsB = 'h05,// DEC B ; 05
|
DECsB = 'h05,// DEC B ; 05
|
DECsBC = 'h0B,// DEC BC ; 0B
|
DECsBC = 'h0B,// DEC BC ; 0B
|
DECsC = 'h0D,// DEC C ; 0D
|
DECsC = 'h0D,// DEC C ; 0D
|
DECsD = 'h15,// DEC D ; 15
|
DECsD = 'h15,// DEC D ; 15
|
DECsDE = 'h1B,// DEC DE ; 1B
|
DECsDE = 'h1B,// DEC DE ; 1B
|
DECsE = 'h1D,// DEC E ; 1D
|
DECsE = 'h1D,// DEC E ; 1D
|
DECsH = 'h25,// DEC H ; 25
|
DECsH = 'h25,// DEC H ; 25
|
DECsHL = 'h2B,// DEC HL ; 2B
|
DECsHL = 'h2B,// DEC HL ; 2B
|
DECsL = 'h2D,// DEC L ; 2D
|
DECsL = 'h2D,// DEC L ; 2D
|
DECsSP = 'h3B,// DEC SP ; 3B
|
DECsSP = 'h3B,// DEC SP ; 3B
|
DI = 'hF3,// DI ; F3
|
DI = 'hF3,// DI ; F3
|
EI = 'hFB,// EI ; FB
|
EI = 'hFB,// EI ; FB
|
EXX = 'hD9,// EXX ; D9
|
EXX = 'hD9,// EXX ; D9
|
EXsAF_AFp = 'h08,// EX AF,AF' ; 08
|
EXsAF_AFp = 'h08,// EX AF,AF' ; 08
|
EXsDE_HL = 'hEB,// EX DE,HL ; EB
|
EXsDE_HL = 'hEB,// EX DE,HL ; EB
|
HALT = 'h76,// HALT ; 76
|
HALT = 'h76,// HALT ; 76
|
INCsA = 'h3C,// INC A ; 3C
|
INCsA = 'h3C,// INC A ; 3C
|
INCsB = 'h04,// INC B ; 04
|
INCsB = 'h04,// INC B ; 04
|
INCsBC = 'h03,// INC BC ; 03
|
INCsBC = 'h03,// INC BC ; 03
|
INCsC = 'h0C,// INC C ; 0C
|
INCsC = 'h0C,// INC C ; 0C
|
INCsD = 'h14,// INC D ; 14
|
INCsD = 'h14,// INC D ; 14
|
INCsDE = 'h13,// INC DE ; 13
|
INCsDE = 'h13,// INC DE ; 13
|
INCsE = 'h1C,// INC E ; 1C
|
INCsE = 'h1C,// INC E ; 1C
|
INCsH = 'h24,// INC H ; 24
|
INCsH = 'h24,// INC H ; 24
|
INCsHL = 'h23,// INC HL ; 23
|
INCsHL = 'h23,// INC HL ; 23
|
INCsL = 'h2C,// INC L ; 2C
|
INCsL = 'h2C,// INC L ; 2C
|
INCsSP = 'h33,// INC SP ; 33
|
INCsSP = 'h33,// INC SP ; 33
|
LDsA_A = 'h7F,// LD A,A ; 7F
|
LDsA_A = 'h7F,// LD A,A ; 7F
|
LDsA_B = 'h78,// LD A,B ; 78
|
LDsA_B = 'h78,// LD A,B ; 78
|
LDsA_C = 'h79,// LD A,C ; 79
|
LDsA_C = 'h79,// LD A,C ; 79
|
LDsA_D = 'h7A,// LD A,D ; 7A
|
LDsA_D = 'h7A,// LD A,D ; 7A
|
LDsA_E = 'h7B,// LD A,E ; 7B
|
LDsA_E = 'h7B,// LD A,E ; 7B
|
LDsA_H = 'h7C,// LD A,H ; 7C
|
LDsA_H = 'h7C,// LD A,H ; 7C
|
LDsA_L = 'h7D,// LD A,L ; 7D
|
LDsA_L = 'h7D,// LD A,L ; 7D
|
LDsA_N = 'h3E,// LD A,N ; 3E XX
|
LDsA_N = 'h3E,// LD A,N ; 3E XX
|
LDsBC_nn = 'h01,// LD BC,NN ; 01 XX XX
|
LDsBC_nn = 'h01,// LD BC,NN ; 01 XX XX
|
LDsB_A = 'h47,// LD B,A ; 47
|
LDsB_A = 'h47,// LD B,A ; 47
|
LDsB_B = 'h40,// LD B,B ; 40
|
LDsB_B = 'h40,// LD B,B ; 40
|
LDsB_C = 'h41,// LD B,C ; 41
|
LDsB_C = 'h41,// LD B,C ; 41
|
LDsB_D = 'h42,// LD B,D ; 42
|
LDsB_D = 'h42,// LD B,D ; 42
|
LDsB_E = 'h43,// LD B,E ; 43
|
LDsB_E = 'h43,// LD B,E ; 43
|
LDsB_H = 'h44,// LD B,H ; 44
|
LDsB_H = 'h44,// LD B,H ; 44
|
LDsB_L = 'h45,// LD B,L ; 45
|
LDsB_L = 'h45,// LD B,L ; 45
|
LDsB_N = 'h06,// LD B,N ; 06 XX
|
LDsB_N = 'h06,// LD B,N ; 06 XX
|
LDsC_A = 'h4F,// LD C,A ; 4F
|
LDsC_A = 'h4F,// LD C,A ; 4F
|
LDsC_B = 'h48,// LD C,B ; 48
|
LDsC_B = 'h48,// LD C,B ; 48
|
LDsC_C = 'h49,// LD C,C ; 49
|
LDsC_C = 'h49,// LD C,C ; 49
|
LDsC_D = 'h4A,// LD C,D ; 4A
|
LDsC_D = 'h4A,// LD C,D ; 4A
|
LDsC_E = 'h4B,// LD C,E ; 4B
|
LDsC_E = 'h4B,// LD C,E ; 4B
|
LDsC_H = 'h4C,// LD C,H ; 4C
|
LDsC_H = 'h4C,// LD C,H ; 4C
|
LDsC_L = 'h4D,// LD C,L ; 4D
|
LDsC_L = 'h4D,// LD C,L ; 4D
|
LDsC_N = 'h0E,// LD C,N ; 0E XX
|
LDsC_N = 'h0E,// LD C,N ; 0E XX
|
LDsDE_NN = 'h11,// LD DE,NN ; 11 XX XX
|
LDsDE_NN = 'h11,// LD DE,NN ; 11 XX XX
|
LDsD_A = 'h57,// LD D,A ; 57
|
LDsD_A = 'h57,// LD D,A ; 57
|
LDsD_B = 'h50,// LD D,B ; 50
|
LDsD_B = 'h50,// LD D,B ; 50
|
LDsD_C = 'h51,// LD D,C ; 51
|
LDsD_C = 'h51,// LD D,C ; 51
|
LDsD_D = 'h52,// LD D,D ; 52
|
LDsD_D = 'h52,// LD D,D ; 52
|
LDsD_E = 'h53,// LD D,E ; 53
|
LDsD_E = 'h53,// LD D,E ; 53
|
LDsD_H = 'h54,// LD D,H ; 54
|
LDsD_H = 'h54,// LD D,H ; 54
|
LDsD_L = 'h55,// LD D,L ; 55
|
LDsD_L = 'h55,// LD D,L ; 55
|
LDsD_N = 'h16,// LD D,N ; 16 XX
|
LDsD_N = 'h16,// LD D,N ; 16 XX
|
LDsE_A = 'h5F,// LD E,A ; 5F
|
LDsE_A = 'h5F,// LD E,A ; 5F
|
LDsE_B = 'h58,// LD E,B ; 58
|
LDsE_B = 'h58,// LD E,B ; 58
|
LDsE_C = 'h59,// LD E,C ; 59
|
LDsE_C = 'h59,// LD E,C ; 59
|
LDsE_D = 'h5A,// LD E,D ; 5A
|
LDsE_D = 'h5A,// LD E,D ; 5A
|
LDsE_E = 'h5B,// LD E,E ; 5B
|
LDsE_E = 'h5B,// LD E,E ; 5B
|
LDsE_H = 'h5C,// LD E,H ; 5C
|
LDsE_H = 'h5C,// LD E,H ; 5C
|
LDsE_L = 'h5D,// LD E,L ; 5D
|
LDsE_L = 'h5D,// LD E,L ; 5D
|
LDsE_N = 'h1E,// LD E,N ; 1E XX
|
LDsE_N = 'h1E,// LD E,N ; 1E XX
|
LDsHL_NN = 'h21,// LD HL,NN ; 21 XX XX
|
LDsHL_NN = 'h21,// LD HL,NN ; 21 XX XX
|
LDsH_A = 'h67,// LD H,A ; 67
|
LDsH_A = 'h67,// LD H,A ; 67
|
LDsH_B = 'h60,// LD H,B ; 60
|
LDsH_B = 'h60,// LD H,B ; 60
|
LDsH_C = 'h61,// LD H,C ; 61
|
LDsH_C = 'h61,// LD H,C ; 61
|
LDsH_D = 'h62,// LD H,D ; 62
|
LDsH_D = 'h62,// LD H,D ; 62
|
LDsH_E = 'h63,// LD H,E ; 63
|
LDsH_E = 'h63,// LD H,E ; 63
|
LDsH_H = 'h64,// LD H,H ; 64
|
LDsH_H = 'h64,// LD H,H ; 64
|
LDsH_L = 'h65,// LD H,L ; 65
|
LDsH_L = 'h65,// LD H,L ; 65
|
LDsH_N = 'h26,// LD H,N ; 26 XX
|
LDsH_N = 'h26,// LD H,N ; 26 XX
|
LDsL_A = 'h6F,// LD L,A ; 6F
|
LDsL_A = 'h6F,// LD L,A ; 6F
|
LDsL_B = 'h68,// LD L,B ; 68
|
LDsL_B = 'h68,// LD L,B ; 68
|
LDsL_C = 'h69,// LD L,C ; 69
|
LDsL_C = 'h69,// LD L,C ; 69
|
LDsL_D = 'h6A,// LD L,D ; 6A
|
LDsL_D = 'h6A,// LD L,D ; 6A
|
LDsL_E = 'h6B,// LD L,E ; 6B
|
LDsL_E = 'h6B,// LD L,E ; 6B
|
LDsL_H = 'h6C,// LD L,H ; 6C
|
LDsL_H = 'h6C,// LD L,H ; 6C
|
LDsL_L = 'h6D,// LD L,L ; 6D
|
LDsL_L = 'h6D,// LD L,L ; 6D
|
LDsL_N = 'h2E,// LD L,N ; 2E XX
|
LDsL_N = 'h2E,// LD L,N ; 2E XX
|
LDsSP_HL = 'hF9,// LD SP,HL ; F9
|
LDsSP_HL = 'hF9,// LD SP,HL ; F9
|
LDsSP_NN = 'h31,// LD SP,NN ; 31 XX XX
|
LDsSP_NN = 'h31,// LD SP,NN ; 31 XX XX
|
NOP = 'h00,// NOP ; 00
|
NOP = 'h00,// NOP ; 00
|
ORsA = 'hB7,// OR A ; B7
|
ORsA = 'hB7,// OR A ; B7
|
ORsB = 'hB0,// OR B ; B0
|
ORsB = 'hB0,// OR B ; B0
|
ORsC = 'hB1,// OR C ; B1
|
ORsC = 'hB1,// OR C ; B1
|
ORsD = 'hB2,// OR D ; B2
|
ORsD = 'hB2,// OR D ; B2
|
ORsE = 'hB3,// OR E ; B3
|
ORsE = 'hB3,// OR E ; B3
|
ORsH = 'hB4,// OR H ; B4
|
ORsH = 'hB4,// OR H ; B4
|
ORsL = 'hB5,// OR L ; B5
|
ORsL = 'hB5,// OR L ; B5
|
ORsN = 'hF6,// OR N ; F6 XX
|
ORsN = 'hF6,// OR N ; F6 XX
|
RLA = 'h17,// RLA ; 17
|
RLA = 'h17,// RLA ; 17
|
RLCA = 'h07,// RLCA ; 07
|
RLCA = 'h07,// RLCA ; 07
|
RRA = 'h1F,// RRA ; 1F
|
RRA = 'h1F,// RRA ; 1F
|
RRCA = 'h0F,// RRCA ; 0F
|
RRCA = 'h0F,// RRCA ; 0F
|
SBCsA = 'h9F,// SBC A ; 9F
|
SBCsA = 'h9F,// SBC A ; 9F
|
SBCsA_N = 'hDE,// SBC A,N ; DE XX
|
SBCsA_N = 'hDE,// SBC A,N ; DE XX
|
SBCsB = 'h98,// SBC B ; 98
|
SBCsB = 'h98,// SBC B ; 98
|
SBCsC = 'h99,// SBC C ; 99
|
SBCsC = 'h99,// SBC C ; 99
|
SBCsD = 'h9A,// SBC D ; 9A
|
SBCsD = 'h9A,// SBC D ; 9A
|
SBCsE = 'h9B,// SBC E ; 9B
|
SBCsE = 'h9B,// SBC E ; 9B
|
SBCsH = 'h9C,// SBC H ; 9C
|
SBCsH = 'h9C,// SBC H ; 9C
|
SBCsL = 'h9D,// SBC L ; 9D
|
SBCsL = 'h9D,// SBC L ; 9D
|
SCF = 'h37,// SCF ; 37
|
SCF = 'h37,// SCF ; 37
|
SUBsA = 'h97,// SUB A ; 97
|
SUBsA = 'h97,// SUB A ; 97
|
SUBsB = 'h90,// SUB B ; 90
|
SUBsB = 'h90,// SUB B ; 90
|
SUBsC = 'h91,// SUB C ; 91
|
SUBsC = 'h91,// SUB C ; 91
|
SUBsD = 'h92,// SUB D ; 92
|
SUBsD = 'h92,// SUB D ; 92
|
SUBsE = 'h93,// SUB E ; 93
|
SUBsE = 'h93,// SUB E ; 93
|
SUBsH = 'h94,// SUB H ; 94
|
SUBsH = 'h94,// SUB H ; 94
|
SUBsL = 'h95,// SUB L ; 95
|
SUBsL = 'h95,// SUB L ; 95
|
SUBsN = 'hD6,// SUB N ; D6 XX
|
SUBsN = 'hD6,// SUB N ; D6 XX
|
XORsA = 'hAF,// XOR A ; AF
|
XORsA = 'hAF,// XOR A ; AF
|
XORsB = 'hA8,// XOR B ; A8
|
XORsB = 'hA8,// XOR B ; A8
|
XORsC = 'hA9,// XOR C ; A9
|
XORsC = 'hA9,// XOR C ; A9
|
XORsD = 'hAA,// XOR D ; AA
|
XORsD = 'hAA,// XOR D ; AA
|
XORsE = 'hAB,// XOR E ; AB
|
XORsE = 'hAB,// XOR E ; AB
|
XORsH = 'hAC,// XOR H ; AC
|
XORsH = 'hAC,// XOR H ; AC
|
XORsL = 'hAD,// XOR L ; AD
|
XORsL = 'hAD,// XOR L ; AD
|
XORsN = 'hEE,// XOR N ; EE XX
|
XORsN = 'hEE,// XOR N ; EE XX
|
ED_SBCsHL_REG = 6'b01__0010, // compair with {ir[7:6],ir[3:0]}
|
ED_SBCsHL_REG = 6'b01__0010, // compair with {ir[7:6],ir[3:0]}
|
ED_ADCsHL_REG = 6'b01__1010, // compair with {ir[7:6],ir[3:0]}
|
ED_ADCsHL_REG = 6'b01__1010, // compair with {ir[7:6],ir[3:0]}
|
~CB_MEM & CB_RLC = 5'b00_000, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RLC = 5'b00_000, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RRC = 5'b00_001, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RRC = 5'b00_001, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RL = 5'b00_010, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RL = 5'b00_010, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RR = 5'b00_011, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_RR = 5'b00_011, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SLA = 5'b00_100, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SLA = 5'b00_100, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SRA = 5'b00_101, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SRA = 5'b00_101, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SLL = 5'b00_110, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SLL = 5'b00_110, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SRL = 5'b00_111, // these must be compaired with ir[7:3]
|
~CB_MEM & CB_SRL = 5'b00_111, // these must be compaired with ir[7:3]
|
|
|
~CB_MEM & CB_BIT = 2'b01, // these must be compaired with ir[7:6]
|
~CB_MEM & CB_BIT = 2'b01, // these must be compaired with ir[7:6]
|
~CB_MEM & CB_RES = 2'b10, // these must be compaired with ir[7:6]
|
~CB_MEM & CB_RES = 2'b10, // these must be compaired with ir[7:6]
|
~CB_MEM & CB_SET = 2'b11, // these must be compaired with ir[7:6]
|
~CB_MEM & CB_SET = 2'b11, // these must be compaired with ir[7:6]
|
ED_NEG = 5'b01___100, // compair with {ir[7:6],ir[2:0]} all A<= -A
|
ED_NEG = 5'b01___100, // compair with {ir[7:6],ir[2:0]} all A<= -A
|
ED_IMs0 = 'h46// IM 0 ; ED 46 set IM0
|
ED_IMs0 = 'h46// IM 0 ; ED 46 set IM0
|
ED_LDsI_A = 'h47// LD I,A ; ED 47 move a to I
|
ED_LDsI_A = 'h47// LD I,A ; ED 47 move a to I
|
ED_IMs1 = 'h56// IM 1 ; ED 56 set IM1
|
ED_IMs1 = 'h56// IM 1 ; ED 56 set IM1
|
ED_LDsA_I = 'h57// LD A,I ; ED 57 move I to A
|
ED_LDsA_I = 'h57// LD A,I ; ED 57 move I to A
|
ED_IMs2 = 'h5E// IM 2 ; ED 5E set IM2
|
ED_IMs2 = 'h5E// IM 2 ; ED 5E set IM2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// load 8 types
|
// load 8 types
|
LDsA_6BC7 = 'h0A,// LD A,(BC) ; 0A
|
LDsA_6BC7 = 'h0A,// LD A,(BC) ; 0A
|
LDsA_6DE7 = 'h1A,// LD A,(DE) ; 1A
|
LDsA_6DE7 = 'h1A,// LD A,(DE) ; 1A
|
LDsB_6HL7 = 'h46,// LD B,(HL) ; 46
|
LDsB_6HL7 = 'h46,// LD B,(HL) ; 46
|
LDsD_6HL7 = 'h56,// LD D,(HL) ; 56
|
LDsD_6HL7 = 'h56,// LD D,(HL) ; 56
|
LDsH_6HL7 = 'h66,// LD H,(HL) ; 66
|
LDsH_6HL7 = 'h66,// LD H,(HL) ; 66
|
ADDsA_6HL7 = 'h86,// ADD A,(HL) ; 86
|
ADDsA_6HL7 = 'h86,// ADD A,(HL) ; 86
|
SUBs6HL7 = 'h96,// SUB (HL) ; 96
|
SUBs6HL7 = 'h96,// SUB (HL) ; 96
|
ANDs6HL7 = 'hA6,// AND (HL) ; A6
|
ANDs6HL7 = 'hA6,// AND (HL) ; A6
|
ORs6HL7 = 'hB6,// OR (HL) ; B6
|
ORs6HL7 = 'hB6,// OR (HL) ; B6
|
LDsC_6HL7 = 'h4E,// LD C,(HL) ; 4E
|
LDsC_6HL7 = 'h4E,// LD C,(HL) ; 4E
|
LDsE_6HL7 = 'h5E,// LD E,(HL) ; 5E
|
LDsE_6HL7 = 'h5E,// LD E,(HL) ; 5E
|
LDsL_6HL7 = 'h6E,// LD L,(HL) ; 6E
|
LDsL_6HL7 = 'h6E,// LD L,(HL) ; 6E
|
LDsA_6HL7 = 'h7E,// LD A,(HL) ; 7E
|
LDsA_6HL7 = 'h7E,// LD A,(HL) ; 7E
|
ADCsA_6HL7 = 'h8E,// ADC A,(HL) ; 8E
|
ADCsA_6HL7 = 'h8E,// ADC A,(HL) ; 8E
|
SBCs6HL7 = 'h9E,// SBC (HL) ; 9E
|
SBCs6HL7 = 'h9E,// SBC (HL) ; 9E
|
XORs6HL7 = 'hAE,// XOR (HL) ; AE
|
XORs6HL7 = 'hAE,// XOR (HL) ; AE
|
CPs6HL7 = 'hBE,// CP (HL) ; BE
|
CPs6HL7 = 'hBE,// CP (HL) ; BE
|
LDsA_6NN7 = 'h3A,// LD A,(NN) ; 3A XX XX
|
LDsA_6NN7 = 'h3A,// LD A,(NN) ; 3A XX XX
|
CB_MEM & CB_BIT = 2'b01, // (HL) these must be compaired with ir[7:6]
|
CB_MEM & CB_BIT = 2'b01, // (HL) these must be compaired with ir[7:6]
|
|
|
|
|
|
|
// load 16 types
|
// load 16 types
|
LDsHL_6NN7 = 'h2A,// LD HL,(NN) ; 2A XX XX
|
LDsHL_6NN7 = 'h2A,// LD HL,(NN) ; 2A XX XX
|
POPsAF = 'hF1,// POP AF ; F1 AF<- (SP++ ++)
|
POPsAF = 'hF1,// POP AF ; F1 AF<- (SP++ ++)
|
POPsBC = 'hC1,// POP BC ; C1 BC<- (SP++ ++)
|
POPsBC = 'hC1,// POP BC ; C1 BC<- (SP++ ++)
|
POPsDE = 'hD1,// POP DE ; D1 DE<- (SP++ ++)
|
POPsDE = 'hD1,// POP DE ; D1 DE<- (SP++ ++)
|
POPsHL = 'hE1,// POP HL ; E1 HL<- (SP++ ++)
|
POPsHL = 'hE1,// POP HL ; E1 HL<- (SP++ ++)
|
ED_LDsREG_6NN7 = 6'b01__1011, // compair with {ir[7:6],ir[3:0]} REG = BC,DE,HL,SP
|
ED_LDsREG_6NN7 = 6'b01__1011, // compair with {ir[7:6],ir[3:0]} REG = BC,DE,HL,SP
|
|
|
|
|
// store 8 types
|
// store 8 types
|
LDs6HL7_N = 'h36,// LD (HL),N ; 36 XX
|
LDs6HL7_N = 'h36,// LD (HL),N ; 36 XX
|
LDs6BC7_A = 'h02,// LD (BC),A ; 02
|
LDs6BC7_A = 'h02,// LD (BC),A ; 02
|
LDs6DE7_A = 'h12,// LD (DE),A ; 12
|
LDs6DE7_A = 'h12,// LD (DE),A ; 12
|
LDs6HL7_A = 'h77,// LD (HL),A ; 77
|
LDs6HL7_A = 'h77,// LD (HL),A ; 77
|
LDs6HL7_B = 'h70,// LD (HL),B ; 70
|
LDs6HL7_B = 'h70,// LD (HL),B ; 70
|
LDs6HL7_C = 'h71,// LD (HL),C ; 71
|
LDs6HL7_C = 'h71,// LD (HL),C ; 71
|
LDs6HL7_D = 'h72,// LD (HL),D ; 72
|
LDs6HL7_D = 'h72,// LD (HL),D ; 72
|
LDs6HL7_E = 'h73,// LD (HL),E ; 73
|
LDs6HL7_E = 'h73,// LD (HL),E ; 73
|
LDs6HL7_H = 'h74,// LD (HL),H ; 74
|
LDs6HL7_H = 'h74,// LD (HL),H ; 74
|
LDs6HL7_L = 'h75,// LD (HL),L ; 75
|
LDs6HL7_L = 'h75,// LD (HL),L ; 75
|
LDs6NN7_A = 'h32,// LD (NN),A ; 32 XX XX
|
LDs6NN7_A = 'h32,// LD (NN),A ; 32 XX XX
|
|
|
// store 16 types
|
// store 16 types
|
PUSHsAF = 'hF5,// PUSH AF ; F5 (-- --SP) <- AF
|
PUSHsAF = 'hF5,// PUSH AF ; F5 (-- --SP) <- AF
|
PUSHsBC = 'hC5,// PUSH BC ; C5 (-- --SP) <- BC
|
PUSHsBC = 'hC5,// PUSH BC ; C5 (-- --SP) <- BC
|
PUSHsDE = 'hD5,// PUSH DE ; D5 (-- --SP) <- DE
|
PUSHsDE = 'hD5,// PUSH DE ; D5 (-- --SP) <- DE
|
PUSHsHL = 'hE5,// PUSH HL ; E5 (-- --SP) <- HL
|
PUSHsHL = 'hE5,// PUSH HL ; E5 (-- --SP) <- HL
|
LDs6NN7_HL = 'h22,// LD (NN),HL ; 22 XX XX
|
LDs6NN7_HL = 'h22,// LD (NN),HL ; 22 XX XX
|
ED_LDs6NN7_REG = 6'b01__0011,// XX XX compair with {ir[7:6],ir[3:0]} REG = BC,DE,HL,SP
|
ED_LDs6NN7_REG = 6'b01__0011,// XX XX compair with {ir[7:6],ir[3:0]} REG = BC,DE,HL,SP
|
|
|
// rmw 8 types
|
// rmw 8 types
|
INCs6HL7 = 'h34,// INC (HL) ; 34
|
INCs6HL7 = 'h34,// INC (HL) ; 34
|
DECs6HL7 = 'h35,// DEC (HL) ; 35
|
DECs6HL7 = 'h35,// DEC (HL) ; 35
|
|
|
ED_RRD = 'h67// RRD ; ED 67 nibble roates A (HL) no prefix
|
ED_RRD = 'h67// RRD ; ED 67 nibble roates A (HL) no prefix
|
ED_RLD = 'h6F// RLD ; ED 6F nibble roates A (HL) no prefix
|
ED_RLD = 'h6F// RLD ; ED 6F nibble roates A (HL) no prefix
|
//CB_MEM = 3'h110, // this must be compaired with ir[2:0]
|
//CB_MEM = 3'h110, // this must be compaired with ir[2:0]
|
CB_MEM & CB_RLC = 5'b00_000, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RLC = 5'b00_000, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RRC = 5'b00_001, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RRC = 5'b00_001, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RL = 5'b00_010, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RL = 5'b00_010, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RR = 5'b00_011, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RR = 5'b00_011, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_SLA = 5'b00_100, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_SLA = 5'b00_100, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_SRA = 5'b00_100, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_SRA = 5'b00_100, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_SRL = 5'b00_110, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_SRL = 5'b00_110, // these must be compaired with ir[7:3] (HL)
|
CB_MEM & CB_RES = 2'b10, // these must be compaired with ir[7:6] (HL)
|
CB_MEM & CB_RES = 2'b10, // these must be compaired with ir[7:6] (HL)
|
CB_MEM & CB_SET = 2'b11, // these must be compaired with ir[7:6] (HL)
|
CB_MEM & CB_SET = 2'b11, // these must be compaired with ir[7:6] (HL)
|
|
|
|
|
|
|
// rmw 16 types
|
// rmw 16 types
|
EXs6SP7_HL = 'hE3,// EX (SP),HL ; E3
|
EXs6SP7_HL = 'hE3,// EX (SP),HL ; E3
|
|
|
// Jumps only trick here is that next inst is not valid - ignore it
|
// Jumps only trick here is that next inst is not valid - ignore it
|
JRs$t2 = 'h18,// JR $+2 ; 18 XX
|
JRs$t2 = 'h18,// JR $+2 ; 18 XX
|
JRsC_$t2 = 'h38,// JR C,$+2 ; 38
|
JRsC_$t2 = 'h38,// JR C,$+2 ; 38
|
JRsNC_$t2 = 'h30,// JR NC,$+2 ; 30
|
JRsNC_$t2 = 'h30,// JR NC,$+2 ; 30
|
JRsNZ_$t2 = 'h20,// JR NZ,$+2 ; 20
|
JRsNZ_$t2 = 'h20,// JR NZ,$+2 ; 20
|
JRsZ_$t2 = 'h28,// JR Z,$+2 ; 28
|
JRsZ_$t2 = 'h28,// JR Z,$+2 ; 28
|
DJNZs$t2 = 'h10,// DJNZ $+2 ; 10 XX XX
|
DJNZs$t2 = 'h10,// DJNZ $+2 ; 10 XX XX
|
JPs = 'hC3,// JP $+3 ; C3 XX XX
|
JPs = 'hC3,// JP $+3 ; C3 XX XX
|
JPsC = 'hDA,// JP C,$+3 ; DA XX XX
|
JPsC = 'hDA,// JP C,$+3 ; DA XX XX
|
JPsHL = 'hE9,// JP HL ; E9 // documented as indirect IS NOT
|
JPsHL = 'hE9,// JP HL ; E9 // documented as indirect IS NOT
|
JPsM = 'hFA,// JP M,$+3 ; FA XX XX
|
JPsM = 'hFA,// JP M,$+3 ; FA XX XX
|
JPsNC = 'hD2,// JP NC,$+3 ; D2 XX XX
|
JPsNC = 'hD2,// JP NC,$+3 ; D2 XX XX
|
JPsNZ = 'hC2,// JP NZ,$+3 ; C2 XX XX
|
JPsNZ = 'hC2,// JP NZ,$+3 ; C2 XX XX
|
JPsPE = 'hEA,// JP PE,$+3 ; EA XX XX
|
JPsPE = 'hEA,// JP PE,$+3 ; EA XX XX
|
JPsPO = 'hE2,// JP PO,$+3 ; E2 XX XX
|
JPsPO = 'hE2,// JP PO,$+3 ; E2 XX XX
|
JPsP = 'hF2,// JP P,$+3 ; F2 XX XX
|
JPsP = 'hF2,// JP P,$+3 ; F2 XX XX
|
JPsZ = 'hCA,// JP Z,$+3 ; CA XX XX
|
JPsZ = 'hCA,// JP Z,$+3 ; CA XX XX
|
RSTs0 = 'hC7,// RST 0 ; C7
|
RSTs0 = 'hC7,// RST 0 ; C7
|
RSTs8H = 'hCF,// RST 8H ; CF
|
RSTs8H = 'hCF,// RST 8H ; CF
|
RSTs10H = 'hD7,// RST 10H ; D7
|
RSTs10H = 'hD7,// RST 10H ; D7
|
RSTs18H = 'hDF,// RST 18H ; DF
|
RSTs18H = 'hDF,// RST 18H ; DF
|
RSTs20H = 'hE7,// RST 20H ; E7
|
RSTs20H = 'hE7,// RST 20H ; E7
|
RSTs28H = 'hEF,// RST 28H ; EF
|
RSTs28H = 'hEF,// RST 28H ; EF
|
RSTs30H = 'hF7,// RST 30H ; F7
|
RSTs30H = 'hF7,// RST 30H ; F7
|
RSTs38H = 'hFF,// RST 38H ; FF
|
RSTs38H = 'hFF,// RST 38H ; FF
|
|
|
|
|
// calls
|
// calls
|
CALLsC_NN = 'hDC,// CALL C,NN ; DC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsC_NN = 'hDC,// CALL C,NN ; DC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsM_NN = 'hFC,// CALL M,NN ; FC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsM_NN = 'hFC,// CALL M,NN ; FC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsNC_NN = 'hD4,// CALL NC,NN ; D4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsNC_NN = 'hD4,// CALL NC,NN ; D4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsNN = 'hCD,// CALL NN ; CD XX XX (-- --SP) <- PC, PC<-NN
|
CALLsNN = 'hCD,// CALL NN ; CD XX XX (-- --SP) <- PC, PC<-NN
|
CALLsNZ_NN = 'hC4,// CALL NZ,NN ; C4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsNZ_NN = 'hC4,// CALL NZ,NN ; C4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsPE_NN = 'hEC,// CALL PE,NN ; EC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsPE_NN = 'hEC,// CALL PE,NN ; EC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsPO_NN = 'hE4,// CALL PO,NN ; E4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsPO_NN = 'hE4,// CALL PO,NN ; E4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsP_NN = 'hF4,// CALL P,NN ; F4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsP_NN = 'hF4,// CALL P,NN ; F4 XX XX (-- --SP) <- PC, PC<-NN
|
CALLsZ_NN = 'hCC,// CALL Z,NN ; CC XX XX (-- --SP) <- PC, PC<-NN
|
CALLsZ_NN = 'hCC,// CALL Z,NN ; CC XX XX (-- --SP) <- PC, PC<-NN
|
|
|
//returns
|
//returns
|
RET = 'hC9,// RET ; C9 PC <- (SP++ ++)
|
RET = 'hC9,// RET ; C9 PC <- (SP++ ++)
|
RETsC = 'hD8,// RET C ; D8 PC <- (SP++ ++)
|
RETsC = 'hD8,// RET C ; D8 PC <- (SP++ ++)
|
RETsM = 'hF8,// RET M ; F8 PC <- (SP++ ++)
|
RETsM = 'hF8,// RET M ; F8 PC <- (SP++ ++)
|
RETsNC = 'hD0,// RET NC ; D0 PC <- (SP++ ++)
|
RETsNC = 'hD0,// RET NC ; D0 PC <- (SP++ ++)
|
RETsNZ = 'hC0,// RET NZ ; C0 PC <- (SP++ ++)
|
RETsNZ = 'hC0,// RET NZ ; C0 PC <- (SP++ ++)
|
RETsP = 'hF0,// RET P ; F0 PC <- (SP++ ++)
|
RETsP = 'hF0,// RET P ; F0 PC <- (SP++ ++)
|
RETsPE = 'hE8,// RET PE ; E8 PC <- (SP++ ++)
|
RETsPE = 'hE8,// RET PE ; E8 PC <- (SP++ ++)
|
RETsPO = 'hE0,// RET PO ; E0 PC <- (SP++ ++)
|
RETsPO = 'hE0,// RET PO ; E0 PC <- (SP++ ++)
|
RETsZ = 'hC8,// RET Z ; C8 PC <- (SP++ ++)
|
RETsZ = 'hC8,// RET Z ; C8 PC <- (SP++ ++)
|
ED_RETN = 5'b01___101; // compair with {ir[7:6],ir[2:0]} and !reti
|
ED_RETN = 5'b01___101; // compair with {ir[7:6],ir[2:0]} and !reti
|
|
|
|
|
//io input
|
//io input
|
INsA_6N7 = 'hDB,// IN A,(N) ; DB XX A<-(Nio)//silly
|
INsA_6N7 = 'hDB,// IN A,(N) ; DB XX A<-(Nio)//silly
|
ED_INsREG_6C7 = 5'b01___000,// compair with {ir[7:6],ir[2:0]} really (BCio)
|
ED_INsREG_6C7 = 5'b01___000,// compair with {ir[7:6],ir[2:0]} really (BCio)
|
|
|
//io output
|
//io output
|
OUTs6N7_A = 'hD3,// OUT (N),A ; D3 XX A-> (Nio)
|
OUTs6N7_A = 'hD3,// OUT (N),A ; D3 XX A-> (Nio)
|
ED_OUTs6C7_REG = 5'b01___001,// compair with {ir[7:6],ir[2:0]}
|
ED_OUTs6C7_REG = 5'b01___001,// compair with {ir[7:6],ir[2:0]}
|
|
|
// ED Block Move messyness
|
// ED Block Move messyness
|
//
|
//
|
ED_LDI = 'hA0// LDI ; ED A0 (DE++) <= (HL++) , BC--
|
ED_LDI = 'hA0// LDI ; ED A0 (DE++) <= (HL++) , BC--
|
ED_LDD = 'hA8// LDD ; ED A8 (DE--) <= (HL--) , BC--
|
ED_LDD = 'hA8// LDD ; ED A8 (DE--) <= (HL--) , BC--
|
ED_LDIR = 'hB0// LDIR ; ED B0 (DE++) <= (HL++) , BC-- Repeat til BC==0
|
ED_LDIR = 'hB0// LDIR ; ED B0 (DE++) <= (HL++) , BC-- Repeat til BC==0
|
ED_LDDR = 'hB8// LDDR ; ED B8 (DE--) <= (HL--) , BC-- Repeat til BC==0
|
ED_LDDR = 'hB8// LDDR ; ED B8 (DE--) <= (HL--) , BC-- Repeat til BC==0
|
|
|
|
|
ED_CPI = 'hA1// CPI ; ED A1 A - (HL++) , BC--
|
ED_CPI = 'hA1// CPI ; ED A1 A - (HL++) , BC--
|
ED_CPD = 'hA9// CPD ; ED A9 A - (HL--) , BC--
|
ED_CPD = 'hA9// CPD ; ED A9 A - (HL--) , BC--
|
ED_CPIR = 'hB1// CPIR ; ED B1 A - (HL++) , BC-- repeat if(|B
|
ED_CPIR = 'hB1// CPIR ; ED B1 A - (HL++) , BC-- repeat if(|B
|
ED_CPDR = 'hB9// CPDR ; ED B9 A - (HL--) , BC-- repeat if(|B
|
ED_CPDR = 'hB9// CPDR ; ED B9 A - (HL--) , BC-- repeat if(|B
|
|
|
|
|
ED_INI = 'hA2// INI ; ED A2 (HL++) <- (Cio) , B--
|
ED_INI = 'hA2// INI ; ED A2 (HL++) <- (Cio) , B--
|
ED_IND = 'hAA// IND ; ED AA (HL--) <- (Cio) , B--
|
ED_IND = 'hAA// IND ; ED AA (HL--) <- (Cio) , B--
|
ED_INIR = 'hB2// INIR ; ED B2 (HL++) <- (Cio) , B-- repeat if(|B)
|
ED_INIR = 'hB2// INIR ; ED B2 (HL++) <- (Cio) , B-- repeat if(|B)
|
ED_INDR = 'hBA// INDR ; ED BA (HL--) <- (Cio) , B-- repeat if(|B)
|
ED_INDR = 'hBA// INDR ; ED BA (HL--) <- (Cio) , B-- repeat if(|B)
|
|
|
|
|
|
|
ED_OUTI = 'hA3// OUTI ; ED A3 (Cio) <-(HL++) , B--
|
ED_OUTI = 'hA3// OUTI ; ED A3 (Cio) <-(HL++) , B--
|
ED_OUTD = 'hAB// OUTD ; ED AB (Cio) <-(HL--) , B--
|
ED_OUTD = 'hAB// OUTD ; ED AB (Cio) <-(HL--) , B--
|
ED_OTIR = 'hB3// OTIR ; ED B3 (Cio) <-(HL++) , B-- rpt if(|B)
|
ED_OTIR = 'hB3// OTIR ; ED B3 (Cio) <-(HL++) , B-- rpt if(|B)
|
ED_OTDR = 'hBB// OTDR ; ED BB (Cio) <-(HL--) , B-- rpt if(|B)
|
ED_OTDR = 'hBB// OTDR ; ED BB (Cio) <-(HL--) , B-- rpt if(|B)
|
|
|
|
|
|
|
|
|
|
|
CBgrp = 'hCB,// CBgrp is rotates and bit munging below
|
CBgrp = 'hCB,// CBgrp is rotates and bit munging below
|
EDgrp = 'hED,// EDgrp ED
|
EDgrp = 'hED,// EDgrp ED
|
FDgrp = 'hFD,// FDgrp FD
|
FDgrp = 'hFD,// FDgrp FD
|
DDgrp = 'hDD,// DDgrp
|
DDgrp = 'hDD,// DDgrp
|
|
|