7828 lines
No EOL
106 KiB
Z80 Assembly
7828 lines
No EOL
106 KiB
Z80 Assembly
#define bytes_skipped 0
|
|
|
|
;Make sure LSB of address is not C7, CF, D7, DF
|
|
#macro FIX_LBL
|
|
#if $ & $E7 == $C7
|
|
nop
|
|
#endif
|
|
#endmacro
|
|
|
|
;Your typical NEXT routine where SP=GBPC. Puts the second byte in E and calls the _B opcode routine.
|
|
#macro NEXT
|
|
rst 00h
|
|
.org $+6
|
|
#define bytes_skipped eval(bytes_skipped+6)
|
|
;ei
|
|
;pop hl ;10cc
|
|
;di
|
|
;ld b,h ;14cc
|
|
;ld h,d ;18cc
|
|
;ld h,(hl) ;25cc
|
|
;jp (hl) ;29cc
|
|
#endmacro
|
|
|
|
;Another typical NEXT routine where SP=GBPC+1, B=(GBPC). Calls the normal opcode routine.
|
|
#macro NEXT_B
|
|
rst 08h
|
|
.org $+3
|
|
#define bytes_skipped eval(bytes_skipped+3)
|
|
;ld l,b ;4cc
|
|
;ld h,e ;8cc
|
|
;ld h,(hl) ;15cc
|
|
;jp (hl) ;19cc
|
|
#endmacro
|
|
|
|
;An optimized NEXT routine where SP=GBPC+1, H=(GBPC). Calls the normal opcode routine.
|
|
#macro NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#endmacro
|
|
|
|
;A NEXT routine which allows interrupts to trigger.
|
|
#macro NEXT_INT
|
|
rst 10h
|
|
.org $+6
|
|
#define bytes_skipped eval(bytes_skipped+6)
|
|
;ei ;4cc
|
|
;pop hl ;14cc
|
|
;di ;18cc
|
|
;ld b,h ;22cc
|
|
;ld h,d ;26cc
|
|
;ld h,(hl) ;33cc
|
|
;jp (hl) ;37cc
|
|
#endmacro
|
|
|
|
#define opcodeC9_B opcodeC9
|
|
#define opcodeD9_B opcodeD9
|
|
#define opcodeE9_B opcodeE9
|
|
#define opcodeF3 opcodeF3end
|
|
#define opcodeCB bitcodes
|
|
#define opcodeD3 invalid
|
|
#define opcodeD3_B invalid
|
|
#define opcodeDB invalid
|
|
#define opcodeDB_B invalid
|
|
#define opcodeDD invalid
|
|
#define opcodeDD_B invalid
|
|
#define opcodeE3 invalid
|
|
#define opcodeE3_B invalid
|
|
#define opcodeE4 invalid
|
|
#define opcodeE4_B invalid
|
|
#define opcodeEB invalid
|
|
#define opcodeEB_B invalid
|
|
#define opcodeEC invalid
|
|
#define opcodeEC_B invalid
|
|
#define opcodeED invalid
|
|
#define opcodeED_B invalid
|
|
#define opcodeF4 invalid
|
|
#define opcodeF4_B invalid
|
|
#define opcodeFC invalid
|
|
#define opcodeFC_B invalid
|
|
#define opcodeFD invalid
|
|
#define opcodeFD_B invalid
|
|
|
|
#macro insert_op(address)
|
|
#if address&$FF == $00
|
|
#ifndef opcode00
|
|
fill_to(address)
|
|
#define opcode00 eval($)
|
|
;nop
|
|
NEXT
|
|
#else
|
|
#ifndef opcode00_B
|
|
fill_to(address)
|
|
#define opcode00_B eval($)
|
|
;nop
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $01
|
|
#ifndef opcode01
|
|
fill_to(address)
|
|
#define opcode01 eval($)
|
|
;ld bc,NN
|
|
exx
|
|
pop bc
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode01_B
|
|
fill_to(address)
|
|
#define opcode01_B eval($)
|
|
;ld bc,NN
|
|
dec sp
|
|
exx
|
|
pop bc
|
|
exx
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $02
|
|
#ifndef opcode02
|
|
fill_to(address)
|
|
#define opcode02 eval($)
|
|
;ld (bc),a
|
|
exx
|
|
ld (bc),a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode02_B
|
|
fill_to(address)
|
|
#define opcode02_B eval($)
|
|
;ld (bc),a
|
|
exx
|
|
ld (bc),a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $03
|
|
#ifndef opcode03
|
|
fill_to(address)
|
|
#define opcode03 eval($)
|
|
;inc bc
|
|
exx
|
|
inc bc
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode03_B
|
|
fill_to(address)
|
|
#define opcode03_B eval($)
|
|
;inc bc
|
|
exx
|
|
inc bc
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $04
|
|
#ifndef opcode04
|
|
fill_to(address)
|
|
#define opcode04 eval($)
|
|
;inc b
|
|
exx
|
|
inc b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode04_B
|
|
fill_to(address)
|
|
#define opcode04_B eval($)
|
|
;inc b
|
|
exx
|
|
inc b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $05
|
|
#ifndef opcode05
|
|
fill_to(address)
|
|
#define opcode05 eval($)
|
|
;dec b
|
|
exx
|
|
dec b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode05_B
|
|
fill_to(address)
|
|
#define opcode05_B eval($)
|
|
;dec b
|
|
exx
|
|
dec b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $06
|
|
#ifndef opcode06
|
|
fill_to(address)
|
|
#define opcode06 eval($)
|
|
;ld b,N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
ld b,a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode06_B
|
|
fill_to(address)
|
|
#define opcode06_B eval($)
|
|
;ld b,N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
ld b,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $07
|
|
#ifndef opcode07
|
|
fill_to(address)
|
|
#define opcode07 eval($)
|
|
;rlca
|
|
rlca
|
|
NEXT
|
|
#else
|
|
#ifndef opcode07_B
|
|
fill_to(address)
|
|
#define opcode07_B eval($)
|
|
;rlca
|
|
rlca
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $08
|
|
#ifndef opcode08
|
|
fill_to(address)
|
|
#define opcode08 eval($)
|
|
;ld (nnnn),sp
|
|
pop hl
|
|
ld (_+2),hl
|
|
_
|
|
ld (0),iy
|
|
NEXT
|
|
#else
|
|
#ifndef opcode08_B
|
|
fill_to(address)
|
|
#define opcode08_B eval($)
|
|
;ld (nnnn),sp
|
|
dec sp
|
|
pop hl
|
|
ld (_+2),hl
|
|
_
|
|
ld (0),iy
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $09
|
|
#ifndef opcode09
|
|
fill_to(address)
|
|
#define opcode09 eval($)
|
|
;add hl,bc
|
|
exx
|
|
add hl,bc
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode09_B
|
|
fill_to(address)
|
|
#define opcode09_B eval($)
|
|
;add hl,bc
|
|
exx
|
|
add hl,bc
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $0A
|
|
#ifndef opcode0A
|
|
fill_to(address)
|
|
#define opcode0A eval($)
|
|
;ld a,(bc)
|
|
exx
|
|
ld a,(bc)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode0A_B
|
|
fill_to(address)
|
|
#define opcode0A_B eval($)
|
|
;ld a,(bc)
|
|
exx
|
|
ld a,(bc)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $0B
|
|
#ifndef opcode0B
|
|
fill_to(address)
|
|
#define opcode0B eval($)
|
|
;dec bc
|
|
exx
|
|
dec bc
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode0B_B
|
|
fill_to(address)
|
|
#define opcode0B_B eval($)
|
|
;dec bc
|
|
exx
|
|
dec bc
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $0C
|
|
#ifndef opcode0C
|
|
fill_to(address)
|
|
#define opcode0C eval($)
|
|
;inc c
|
|
exx
|
|
inc c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode0C_B
|
|
fill_to(address)
|
|
#define opcode0C_B eval($)
|
|
;inc c
|
|
exx
|
|
inc c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $0D
|
|
#ifndef opcode0D
|
|
fill_to(address)
|
|
#define opcode0D eval($)
|
|
;dec c
|
|
exx
|
|
dec c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode0D_B
|
|
fill_to(address)
|
|
#define opcode0D_B eval($)
|
|
;dec c
|
|
exx
|
|
dec c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $0E
|
|
#ifndef opcode0E
|
|
fill_to(address)
|
|
#define opcode0E eval($)
|
|
;ld c,N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
ld c,a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode0E_B
|
|
fill_to(address)
|
|
#define opcode0E_B eval($)
|
|
;ld c,N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
ld c,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $0F
|
|
#ifndef opcode0F
|
|
fill_to(address)
|
|
#define opcode0F eval($)
|
|
;rrca
|
|
rrca
|
|
NEXT
|
|
#else
|
|
#ifndef opcode0F_B
|
|
fill_to(address)
|
|
#define opcode0F_B eval($)
|
|
;rrca
|
|
rrca
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $10
|
|
#ifndef opcode10
|
|
fill_to(address)
|
|
#define opcode10 eval($)
|
|
;stop
|
|
pop hl
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode10_B
|
|
fill_to(address)
|
|
#define opcode10_B eval($)
|
|
;stop
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $11
|
|
#ifndef opcode11
|
|
fill_to(address)
|
|
#define opcode11 eval($)
|
|
;ld de,NN
|
|
exx
|
|
pop de
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode11_B
|
|
fill_to(address)
|
|
#define opcode11_B eval($)
|
|
;ld de,NN
|
|
dec sp
|
|
exx
|
|
pop de
|
|
exx
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $12
|
|
#ifndef opcode12
|
|
fill_to(address)
|
|
#define opcode12 eval($)
|
|
;ld (de),a
|
|
exx
|
|
ld (de),a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode12_B
|
|
fill_to(address)
|
|
#define opcode12_B eval($)
|
|
;ld (de),a
|
|
exx
|
|
ld (de),a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $13
|
|
#ifndef opcode13
|
|
fill_to(address)
|
|
#define opcode13 eval($)
|
|
;inc de
|
|
exx
|
|
inc de
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode13_B
|
|
fill_to(address)
|
|
#define opcode13_B eval($)
|
|
;inc de
|
|
exx
|
|
inc de
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $14
|
|
#ifndef opcode14
|
|
fill_to(address)
|
|
#define opcode14 eval($)
|
|
;inc d
|
|
exx
|
|
inc d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode14_B
|
|
fill_to(address)
|
|
#define opcode14_B eval($)
|
|
;inc d
|
|
exx
|
|
inc d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $15
|
|
#ifndef opcode15
|
|
fill_to(address)
|
|
#define opcode15 eval($)
|
|
;dec d
|
|
exx
|
|
dec d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode15_B
|
|
fill_to(address)
|
|
#define opcode15_B eval($)
|
|
;dec d
|
|
exx
|
|
dec d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $16
|
|
#ifndef opcode16
|
|
fill_to(address)
|
|
#define opcode16 eval($)
|
|
;ld d,N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
ld d,a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode16_B
|
|
fill_to(address)
|
|
#define opcode16_B eval($)
|
|
;ld d,N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
ld d,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $17
|
|
#ifndef opcode17
|
|
fill_to(address)
|
|
#define opcode17 eval($)
|
|
;rla
|
|
rla
|
|
NEXT
|
|
#else
|
|
#ifndef opcode17_B
|
|
fill_to(address)
|
|
#define opcode17_B eval($)
|
|
;rla
|
|
rla
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $18
|
|
#ifndef opcode18
|
|
fill_to(address)
|
|
#define opcode18 eval($)
|
|
;jr N
|
|
ex af,af'
|
|
pop hl
|
|
dec sp
|
|
ld a,l
|
|
rla
|
|
sbc a,a
|
|
ld h,a
|
|
add hl,sp
|
|
ex af,af'
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcode18_B
|
|
fill_to(address)
|
|
#define opcode18_B eval($)
|
|
;jr N
|
|
ex af,af'
|
|
ld l,b
|
|
ld a,l
|
|
rla
|
|
sbc a,a
|
|
ld h,a
|
|
add hl,sp
|
|
ex af,af'
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $19
|
|
#ifndef opcode19
|
|
fill_to(address)
|
|
#define opcode19 eval($)
|
|
;add hl,de
|
|
exx
|
|
add hl,de
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode19_B
|
|
fill_to(address)
|
|
#define opcode19_B eval($)
|
|
;add hl,de
|
|
exx
|
|
add hl,de
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $1A
|
|
#ifndef opcode1A
|
|
fill_to(address)
|
|
#define opcode1A eval($)
|
|
;ld a,(de)
|
|
exx
|
|
ld a,(de)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode1A_B
|
|
fill_to(address)
|
|
#define opcode1A_B eval($)
|
|
;ld a,(de)
|
|
exx
|
|
ld a,(de)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $1B
|
|
#ifndef opcode1B
|
|
fill_to(address)
|
|
#define opcode1B eval($)
|
|
;dec de
|
|
exx
|
|
dec de
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode1B_B
|
|
fill_to(address)
|
|
#define opcode1B_B eval($)
|
|
;dec de
|
|
exx
|
|
dec de
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $1C
|
|
#ifndef opcode1C
|
|
fill_to(address)
|
|
#define opcode1C eval($)
|
|
;inc e
|
|
exx
|
|
inc e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode1C_B
|
|
fill_to(address)
|
|
#define opcode1C_B eval($)
|
|
;inc e
|
|
exx
|
|
inc e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $1D
|
|
#ifndef opcode1D
|
|
fill_to(address)
|
|
#define opcode1D eval($)
|
|
;dec e
|
|
exx
|
|
dec e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode1D_B
|
|
fill_to(address)
|
|
#define opcode1D_B eval($)
|
|
;dec e
|
|
exx
|
|
dec e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $1E
|
|
#ifndef opcode1E
|
|
fill_to(address)
|
|
#define opcode1E eval($)
|
|
;ld e,N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
ld e,a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode1E_B
|
|
fill_to(address)
|
|
#define opcode1E_B eval($)
|
|
;ld e,N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
ld e,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $1F
|
|
#ifndef opcode1F
|
|
fill_to(address)
|
|
#define opcode1F eval($)
|
|
;rra
|
|
rra
|
|
NEXT
|
|
#else
|
|
#ifndef opcode1F_B
|
|
fill_to(address)
|
|
#define opcode1F_B eval($)
|
|
;rra
|
|
rra
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $20
|
|
#ifndef opcode20
|
|
fill_to(address)
|
|
#define opcode20 eval($)
|
|
;jr nz,N
|
|
jp nz,opcode18
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcode20_B
|
|
fill_to(address)
|
|
#define opcode20_B eval($)
|
|
;jr nz,N
|
|
jp nz,opcode18_B
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $21
|
|
#ifndef opcode21
|
|
fill_to(address)
|
|
#define opcode21 eval($)
|
|
;ld hl,NN
|
|
exx
|
|
pop hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode21_B
|
|
fill_to(address)
|
|
#define opcode21_B eval($)
|
|
;ld hl,NN
|
|
dec sp
|
|
exx
|
|
pop hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $22
|
|
#ifndef opcode22
|
|
fill_to(address)
|
|
#define opcode22 eval($)
|
|
;ld (hl+),a
|
|
exx
|
|
ld (hl),a
|
|
inc hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode22_B
|
|
fill_to(address)
|
|
#define opcode22_B eval($)
|
|
;ld (hl+),a
|
|
exx
|
|
ld (hl),a
|
|
inc hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $23
|
|
#ifndef opcode23
|
|
fill_to(address)
|
|
#define opcode23 eval($)
|
|
;inc hl
|
|
exx
|
|
inc hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode23_B
|
|
fill_to(address)
|
|
#define opcode23_B eval($)
|
|
;inc hl
|
|
exx
|
|
inc hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $24
|
|
#ifndef opcode24
|
|
fill_to(address)
|
|
#define opcode24 eval($)
|
|
;inc h
|
|
exx
|
|
inc h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode24_B
|
|
fill_to(address)
|
|
#define opcode24_B eval($)
|
|
;inc h
|
|
exx
|
|
inc h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $25
|
|
#ifndef opcode25
|
|
fill_to(address)
|
|
#define opcode25 eval($)
|
|
;dec h
|
|
exx
|
|
dec h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode25_B
|
|
fill_to(address)
|
|
#define opcode25_B eval($)
|
|
;dec h
|
|
exx
|
|
dec h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $26
|
|
#ifndef opcode26
|
|
fill_to(address)
|
|
#define opcode26 eval($)
|
|
;ld h,N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
ld h,a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode26_B
|
|
fill_to(address)
|
|
#define opcode26_B eval($)
|
|
;ld h,N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
ld h,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $27
|
|
#ifndef opcode27
|
|
fill_to(address)
|
|
#define opcode27 eval($)
|
|
;daa
|
|
daa
|
|
NEXT
|
|
#else
|
|
#ifndef opcode27_B
|
|
fill_to(address)
|
|
#define opcode27_B eval($)
|
|
;daa
|
|
daa
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $28
|
|
#ifndef opcode28
|
|
fill_to(address)
|
|
#define opcode28 eval($)
|
|
;jr z,N
|
|
jp z,opcode18
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcode28_B
|
|
fill_to(address)
|
|
#define opcode28_B eval($)
|
|
;jr z,N
|
|
jp z,opcode18_B
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $29
|
|
#ifndef opcode29
|
|
fill_to(address)
|
|
#define opcode29 eval($)
|
|
;add hl,hl
|
|
exx
|
|
add hl,hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode29_B
|
|
fill_to(address)
|
|
#define opcode29_B eval($)
|
|
;add hl,hl
|
|
exx
|
|
add hl,hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $2A
|
|
#ifndef opcode2A
|
|
fill_to(address)
|
|
#define opcode2A eval($)
|
|
;ld a,(hl+)
|
|
exx
|
|
ld a,(hl)
|
|
inc hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode2A_B
|
|
fill_to(address)
|
|
#define opcode2A_B eval($)
|
|
;ld a,(hl+)
|
|
exx
|
|
ld a,(hl)
|
|
inc hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $2B
|
|
#ifndef opcode2B
|
|
fill_to(address)
|
|
#define opcode2B eval($)
|
|
;dec hl
|
|
exx
|
|
dec hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode2B_B
|
|
fill_to(address)
|
|
#define opcode2B_B eval($)
|
|
;dec hl
|
|
exx
|
|
dec hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $2C
|
|
#ifndef opcode2C
|
|
fill_to(address)
|
|
#define opcode2C eval($)
|
|
;inc l
|
|
exx
|
|
inc l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode2C_B
|
|
fill_to(address)
|
|
#define opcode2C_B eval($)
|
|
;inc l
|
|
exx
|
|
inc l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $2D
|
|
#ifndef opcode2D
|
|
fill_to(address)
|
|
#define opcode2D eval($)
|
|
;dec l
|
|
exx
|
|
dec l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode2D_B
|
|
fill_to(address)
|
|
#define opcode2D_B eval($)
|
|
;dec l
|
|
exx
|
|
dec l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $2E
|
|
#ifndef opcode2E
|
|
fill_to(address)
|
|
#define opcode2E eval($)
|
|
;ld l,N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
ld l,a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode2E_B
|
|
fill_to(address)
|
|
#define opcode2E_B eval($)
|
|
;ld l,N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
ld l,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $2F
|
|
#ifndef opcode2F
|
|
fill_to(address)
|
|
#define opcode2F eval($)
|
|
;cpl
|
|
cpl
|
|
NEXT
|
|
#else
|
|
#ifndef opcode2F_B
|
|
fill_to(address)
|
|
#define opcode2F_B eval($)
|
|
;cpl
|
|
cpl
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $30
|
|
#ifndef opcode30
|
|
fill_to(address)
|
|
#define opcode30 eval($)
|
|
;jr nc,N
|
|
jp nc,opcode18
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcode30_B
|
|
fill_to(address)
|
|
#define opcode30_B eval($)
|
|
;jr nc,N
|
|
jp nc,opcode18_B
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $31
|
|
#ifndef opcode31
|
|
fill_to(address)
|
|
#define opcode31 eval($)
|
|
;ld sp,NN
|
|
pop iy
|
|
NEXT
|
|
#else
|
|
#ifndef opcode31_B
|
|
fill_to(address)
|
|
#define opcode31_B eval($)
|
|
;ld sp,NN
|
|
dec sp
|
|
pop iy
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $32
|
|
#ifndef opcode32
|
|
fill_to(address)
|
|
#define opcode32 eval($)
|
|
;ld (hl-),a
|
|
exx
|
|
ld (hl),a
|
|
dec hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode32_B
|
|
fill_to(address)
|
|
#define opcode32_B eval($)
|
|
;ld (hl-),a
|
|
exx
|
|
ld (hl),a
|
|
dec hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $33
|
|
#ifndef opcode33
|
|
fill_to(address)
|
|
#define opcode33 eval($)
|
|
;inc sp
|
|
inc iy
|
|
NEXT
|
|
#else
|
|
#ifndef opcode33_B
|
|
fill_to(address)
|
|
#define opcode33_B eval($)
|
|
;inc sp
|
|
inc iy
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $34
|
|
#ifndef opcode34
|
|
fill_to(address)
|
|
#define opcode34 eval($)
|
|
;inc (hl)
|
|
exx
|
|
inc (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode34_B
|
|
fill_to(address)
|
|
#define opcode34_B eval($)
|
|
;inc (hl)
|
|
exx
|
|
inc (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $35
|
|
#ifndef opcode35
|
|
fill_to(address)
|
|
#define opcode35 eval($)
|
|
;dec (hl)
|
|
exx
|
|
dec (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode35_B
|
|
fill_to(address)
|
|
#define opcode35_B eval($)
|
|
;dec (hl)
|
|
exx
|
|
dec (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $36
|
|
#ifndef opcode36
|
|
fill_to(address)
|
|
#define opcode36 eval($)
|
|
;ld (hl),N
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
exx
|
|
bit 7,h
|
|
jr z,_
|
|
ld (hl),a
|
|
exx
|
|
ex af,af'
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
_
|
|
dec sp
|
|
ld a,h
|
|
exx
|
|
ld h,a
|
|
jp memcontrol
|
|
#else
|
|
#ifndef opcode36_B
|
|
fill_to(address)
|
|
#define opcode36_B eval($)
|
|
;ld (hl),N
|
|
ex af,af'
|
|
ld a,b
|
|
exx
|
|
bit 7,h
|
|
jr z,_
|
|
ld (hl),a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
_
|
|
ld a,h
|
|
exx
|
|
ld h,a
|
|
ld l,b
|
|
jp memcontrol
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $37
|
|
#ifndef opcode37
|
|
fill_to(address)
|
|
#define opcode37 eval($)
|
|
;scf
|
|
scf
|
|
NEXT
|
|
#else
|
|
#ifndef opcode37_B
|
|
fill_to(address)
|
|
#define opcode37_B eval($)
|
|
;scf
|
|
scf
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $38
|
|
#ifndef opcode38
|
|
fill_to(address)
|
|
#define opcode38 eval($)
|
|
;jr c,N
|
|
jp c,opcode18
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcode38_B
|
|
fill_to(address)
|
|
#define opcode38_B eval($)
|
|
;jr c,N
|
|
jp c,opcode18_B
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $39
|
|
#ifndef opcode39
|
|
fill_to(address)
|
|
#define opcode39 eval($)
|
|
;add hl,sp
|
|
ld hl,0
|
|
add hl,sp
|
|
ld sp,iy
|
|
exx
|
|
add hl,sp
|
|
exx
|
|
ld sp,hl
|
|
NEXT
|
|
#else
|
|
#ifndef opcode39_B
|
|
fill_to(address)
|
|
#define opcode39_B eval($)
|
|
;add hl,sp
|
|
ld hl,0
|
|
add hl,sp
|
|
ld sp,iy
|
|
exx
|
|
add hl,sp
|
|
exx
|
|
ld sp,hl
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $3A
|
|
#ifndef opcode3A
|
|
fill_to(address)
|
|
#define opcode3A eval($)
|
|
;ld a,(hl-)
|
|
exx
|
|
ld a,(hl)
|
|
dec hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode3A_B
|
|
fill_to(address)
|
|
#define opcode3A_B eval($)
|
|
;ld a,(hl-)
|
|
exx
|
|
ld a,(hl)
|
|
dec hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $3B
|
|
#ifndef opcode3B
|
|
fill_to(address)
|
|
#define opcode3B eval($)
|
|
;dec sp
|
|
dec iy
|
|
NEXT
|
|
#else
|
|
#ifndef opcode3B_B
|
|
fill_to(address)
|
|
#define opcode3B_B eval($)
|
|
;dec sp
|
|
dec iy
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $3C
|
|
#ifndef opcode3C
|
|
fill_to(address)
|
|
#define opcode3C eval($)
|
|
;inc a
|
|
inc a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode3C_B
|
|
fill_to(address)
|
|
#define opcode3C_B eval($)
|
|
;inc a
|
|
inc a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $3D
|
|
#ifndef opcode3D
|
|
fill_to(address)
|
|
#define opcode3D eval($)
|
|
;dec a
|
|
dec a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode3D_B
|
|
fill_to(address)
|
|
#define opcode3D_B eval($)
|
|
;dec a
|
|
dec a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $3E
|
|
#ifndef opcode3E
|
|
fill_to(address)
|
|
#define opcode3E eval($)
|
|
;ld a,N
|
|
pop hl
|
|
ld a,l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcode3E_B
|
|
fill_to(address)
|
|
#define opcode3E_B eval($)
|
|
;ld a,N
|
|
ld a,b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $3F
|
|
#ifndef opcode3F
|
|
fill_to(address)
|
|
#define opcode3F eval($)
|
|
;ccf
|
|
ccf
|
|
NEXT
|
|
#else
|
|
#ifndef opcode3F_B
|
|
fill_to(address)
|
|
#define opcode3F_B eval($)
|
|
;ccf
|
|
ccf
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $40
|
|
#ifndef opcode40
|
|
fill_to(address)
|
|
#define opcode40 eval($)
|
|
;ld b,b
|
|
NEXT
|
|
#else
|
|
#ifndef opcode40_B
|
|
fill_to(address)
|
|
#define opcode40_B eval($)
|
|
;ld b,b
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $41
|
|
#ifndef opcode41
|
|
fill_to(address)
|
|
#define opcode41 eval($)
|
|
;ld b,c
|
|
exx
|
|
ld b,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode41_B
|
|
fill_to(address)
|
|
#define opcode41_B eval($)
|
|
;ld b,c
|
|
exx
|
|
ld b,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $42
|
|
#ifndef opcode42
|
|
fill_to(address)
|
|
#define opcode42 eval($)
|
|
;ld b,d
|
|
exx
|
|
ld b,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode42_B
|
|
fill_to(address)
|
|
#define opcode42_B eval($)
|
|
;ld b,d
|
|
exx
|
|
ld b,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $43
|
|
#ifndef opcode43
|
|
fill_to(address)
|
|
#define opcode43 eval($)
|
|
;ld b,e
|
|
exx
|
|
ld b,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode43_B
|
|
fill_to(address)
|
|
#define opcode43_B eval($)
|
|
;ld b,e
|
|
exx
|
|
ld b,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $44
|
|
#ifndef opcode44
|
|
fill_to(address)
|
|
#define opcode44 eval($)
|
|
;ld b,h
|
|
exx
|
|
ld b,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode44_B
|
|
fill_to(address)
|
|
#define opcode44_B eval($)
|
|
;ld b,h
|
|
exx
|
|
ld b,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $45
|
|
#ifndef opcode45
|
|
fill_to(address)
|
|
#define opcode45 eval($)
|
|
;ld b,l
|
|
exx
|
|
ld b,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode45_B
|
|
fill_to(address)
|
|
#define opcode45_B eval($)
|
|
;ld b,l
|
|
exx
|
|
ld b,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $46
|
|
#ifndef opcode46
|
|
fill_to(address)
|
|
#define opcode46 eval($)
|
|
;ld b,(hl)
|
|
exx
|
|
ld b,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode46_B
|
|
fill_to(address)
|
|
#define opcode46_B eval($)
|
|
;ld b,(hl)
|
|
exx
|
|
ld b,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $47
|
|
#ifndef opcode47
|
|
fill_to(address)
|
|
#define opcode47 eval($)
|
|
;ld b,a
|
|
exx
|
|
ld b,a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode47_B
|
|
fill_to(address)
|
|
#define opcode47_B eval($)
|
|
;ld b,a
|
|
exx
|
|
ld b,a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $48
|
|
#ifndef opcode48
|
|
fill_to(address)
|
|
#define opcode48 eval($)
|
|
;ld c,b
|
|
exx
|
|
ld c,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode48_B
|
|
fill_to(address)
|
|
#define opcode48_B eval($)
|
|
;ld c,b
|
|
exx
|
|
ld c,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $49
|
|
#ifndef opcode49
|
|
fill_to(address)
|
|
#define opcode49 eval($)
|
|
;ld c,c
|
|
NEXT
|
|
#else
|
|
#ifndef opcode49_B
|
|
fill_to(address)
|
|
#define opcode49_B eval($)
|
|
;ld c,c
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $4A
|
|
#ifndef opcode4A
|
|
fill_to(address)
|
|
#define opcode4A eval($)
|
|
;ld c,d
|
|
exx
|
|
ld c,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode4A_B
|
|
fill_to(address)
|
|
#define opcode4A_B eval($)
|
|
;ld c,d
|
|
exx
|
|
ld c,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $4B
|
|
#ifndef opcode4B
|
|
fill_to(address)
|
|
#define opcode4B eval($)
|
|
;ld c,e
|
|
exx
|
|
ld c,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode4B_B
|
|
fill_to(address)
|
|
#define opcode4B_B eval($)
|
|
;ld c,e
|
|
exx
|
|
ld c,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $4C
|
|
#ifndef opcode4C
|
|
fill_to(address)
|
|
#define opcode4C eval($)
|
|
;ld c,h
|
|
exx
|
|
ld c,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode4C_B
|
|
fill_to(address)
|
|
#define opcode4C_B eval($)
|
|
;ld c,h
|
|
exx
|
|
ld c,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $4D
|
|
#ifndef opcode4D
|
|
fill_to(address)
|
|
#define opcode4D eval($)
|
|
;ld c,l
|
|
exx
|
|
ld c,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode4D_B
|
|
fill_to(address)
|
|
#define opcode4D_B eval($)
|
|
;ld c,l
|
|
exx
|
|
ld c,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $4E
|
|
#ifndef opcode4E
|
|
fill_to(address)
|
|
#define opcode4E eval($)
|
|
;ld c,(hl)
|
|
exx
|
|
ld c,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode4E_B
|
|
fill_to(address)
|
|
#define opcode4E_B eval($)
|
|
;ld c,(hl)
|
|
exx
|
|
ld c,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $4F
|
|
#ifndef opcode4F
|
|
fill_to(address)
|
|
#define opcode4F eval($)
|
|
;ld c,a
|
|
exx
|
|
ld c,a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode4F_B
|
|
fill_to(address)
|
|
#define opcode4F_B eval($)
|
|
;ld c,a
|
|
exx
|
|
ld c,a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $50
|
|
#ifndef opcode50
|
|
fill_to(address)
|
|
#define opcode50 eval($)
|
|
;ld d,b
|
|
exx
|
|
ld d,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode50_B
|
|
fill_to(address)
|
|
#define opcode50_B eval($)
|
|
;ld d,b
|
|
exx
|
|
ld d,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $51
|
|
#ifndef opcode51
|
|
fill_to(address)
|
|
#define opcode51 eval($)
|
|
;ld d,c
|
|
exx
|
|
ld d,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode51_B
|
|
fill_to(address)
|
|
#define opcode51_B eval($)
|
|
;ld d,c
|
|
exx
|
|
ld d,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $52
|
|
#ifndef opcode52
|
|
fill_to(address)
|
|
#define opcode52 eval($)
|
|
;ld d,d
|
|
NEXT
|
|
#else
|
|
#ifndef opcode52_B
|
|
fill_to(address)
|
|
#define opcode52_B eval($)
|
|
;ld d,d
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $53
|
|
#ifndef opcode53
|
|
fill_to(address)
|
|
#define opcode53 eval($)
|
|
;ld d,e
|
|
exx
|
|
ld d,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode53_B
|
|
fill_to(address)
|
|
#define opcode53_B eval($)
|
|
;ld d,e
|
|
exx
|
|
ld d,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $54
|
|
#ifndef opcode54
|
|
fill_to(address)
|
|
#define opcode54 eval($)
|
|
;ld d,h
|
|
exx
|
|
ld d,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode54_B
|
|
fill_to(address)
|
|
#define opcode54_B eval($)
|
|
;ld d,h
|
|
exx
|
|
ld d,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $55
|
|
#ifndef opcode55
|
|
fill_to(address)
|
|
#define opcode55 eval($)
|
|
;ld d,l
|
|
exx
|
|
ld d,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode55_B
|
|
fill_to(address)
|
|
#define opcode55_B eval($)
|
|
;ld d,l
|
|
exx
|
|
ld d,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $56
|
|
#ifndef opcode56
|
|
fill_to(address)
|
|
#define opcode56 eval($)
|
|
;ld d,(hl)
|
|
exx
|
|
ld d,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode56_B
|
|
fill_to(address)
|
|
#define opcode56_B eval($)
|
|
;ld d,(hl)
|
|
exx
|
|
ld d,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $57
|
|
#ifndef opcode57
|
|
fill_to(address)
|
|
#define opcode57 eval($)
|
|
;ld d,a
|
|
exx
|
|
ld d,a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode57_B
|
|
fill_to(address)
|
|
#define opcode57_B eval($)
|
|
;ld d,a
|
|
exx
|
|
ld d,a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $58
|
|
#ifndef opcode58
|
|
fill_to(address)
|
|
#define opcode58 eval($)
|
|
;ld e,b
|
|
exx
|
|
ld e,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode58_B
|
|
fill_to(address)
|
|
#define opcode58_B eval($)
|
|
;ld e,b
|
|
exx
|
|
ld e,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $59
|
|
#ifndef opcode59
|
|
fill_to(address)
|
|
#define opcode59 eval($)
|
|
;ld e,c
|
|
exx
|
|
ld e,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode59_B
|
|
fill_to(address)
|
|
#define opcode59_B eval($)
|
|
;ld e,c
|
|
exx
|
|
ld e,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $5A
|
|
#ifndef opcode5A
|
|
fill_to(address)
|
|
#define opcode5A eval($)
|
|
;ld e,d
|
|
exx
|
|
ld e,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode5A_B
|
|
fill_to(address)
|
|
#define opcode5A_B eval($)
|
|
;ld e,d
|
|
exx
|
|
ld e,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $5B
|
|
#ifndef opcode5B
|
|
fill_to(address)
|
|
#define opcode5B eval($)
|
|
;ld e,e
|
|
NEXT
|
|
#else
|
|
#ifndef opcode5B_B
|
|
fill_to(address)
|
|
#define opcode5B_B eval($)
|
|
;ld e,e
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $5C
|
|
#ifndef opcode5C
|
|
fill_to(address)
|
|
#define opcode5C eval($)
|
|
;ld e,h
|
|
exx
|
|
ld e,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode5C_B
|
|
fill_to(address)
|
|
#define opcode5C_B eval($)
|
|
;ld e,h
|
|
exx
|
|
ld e,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $5D
|
|
#ifndef opcode5D
|
|
fill_to(address)
|
|
#define opcode5D eval($)
|
|
;ld e,l
|
|
exx
|
|
ld e,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode5D_B
|
|
fill_to(address)
|
|
#define opcode5D_B eval($)
|
|
;ld e,l
|
|
exx
|
|
ld e,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $5E
|
|
#ifndef opcode5E
|
|
fill_to(address)
|
|
#define opcode5E eval($)
|
|
;ld e,(hl)
|
|
exx
|
|
ld e,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode5E_B
|
|
fill_to(address)
|
|
#define opcode5E_B eval($)
|
|
;ld e,(hl)
|
|
exx
|
|
ld e,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $5F
|
|
#ifndef opcode5F
|
|
fill_to(address)
|
|
#define opcode5F eval($)
|
|
;ld e,a
|
|
exx
|
|
ld e,a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode5F_B
|
|
fill_to(address)
|
|
#define opcode5F_B eval($)
|
|
;ld e,a
|
|
exx
|
|
ld e,a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $60
|
|
#ifndef opcode60
|
|
fill_to(address)
|
|
#define opcode60 eval($)
|
|
;ld h,b
|
|
exx
|
|
ld h,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode60_B
|
|
fill_to(address)
|
|
#define opcode60_B eval($)
|
|
;ld h,b
|
|
exx
|
|
ld h,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $61
|
|
#ifndef opcode61
|
|
fill_to(address)
|
|
#define opcode61 eval($)
|
|
;ld h,c
|
|
exx
|
|
ld h,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode61_B
|
|
fill_to(address)
|
|
#define opcode61_B eval($)
|
|
;ld h,c
|
|
exx
|
|
ld h,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $62
|
|
#ifndef opcode62
|
|
fill_to(address)
|
|
#define opcode62 eval($)
|
|
;ld h,d
|
|
exx
|
|
ld h,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode62_B
|
|
fill_to(address)
|
|
#define opcode62_B eval($)
|
|
;ld h,d
|
|
exx
|
|
ld h,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $63
|
|
#ifndef opcode63
|
|
fill_to(address)
|
|
#define opcode63 eval($)
|
|
;ld h,e
|
|
exx
|
|
ld h,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode63_B
|
|
fill_to(address)
|
|
#define opcode63_B eval($)
|
|
;ld h,e
|
|
exx
|
|
ld h,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $64
|
|
#ifndef opcode64
|
|
fill_to(address)
|
|
#define opcode64 eval($)
|
|
;ld h,h
|
|
NEXT
|
|
#else
|
|
#ifndef opcode64_B
|
|
fill_to(address)
|
|
#define opcode64_B eval($)
|
|
;ld h,h
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $65
|
|
#ifndef opcode65
|
|
fill_to(address)
|
|
#define opcode65 eval($)
|
|
;ld h,l
|
|
exx
|
|
ld h,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode65_B
|
|
fill_to(address)
|
|
#define opcode65_B eval($)
|
|
;ld h,l
|
|
exx
|
|
ld h,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $66
|
|
#ifndef opcode66
|
|
fill_to(address)
|
|
#define opcode66 eval($)
|
|
;ld h,(hl)
|
|
exx
|
|
ld h,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode66_B
|
|
fill_to(address)
|
|
#define opcode66_B eval($)
|
|
;ld h,(hl)
|
|
exx
|
|
ld h,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $67
|
|
#ifndef opcode67
|
|
fill_to(address)
|
|
#define opcode67 eval($)
|
|
;ld h,a
|
|
exx
|
|
ld h,a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode67_B
|
|
fill_to(address)
|
|
#define opcode67_B eval($)
|
|
;ld h,a
|
|
exx
|
|
ld h,a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $68
|
|
#ifndef opcode68
|
|
fill_to(address)
|
|
#define opcode68 eval($)
|
|
;ld l,b
|
|
exx
|
|
ld l,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode68_B
|
|
fill_to(address)
|
|
#define opcode68_B eval($)
|
|
;ld l,b
|
|
exx
|
|
ld l,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $69
|
|
#ifndef opcode69
|
|
fill_to(address)
|
|
#define opcode69 eval($)
|
|
;ld l,c
|
|
exx
|
|
ld l,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode69_B
|
|
fill_to(address)
|
|
#define opcode69_B eval($)
|
|
;ld l,c
|
|
exx
|
|
ld l,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $6A
|
|
#ifndef opcode6A
|
|
fill_to(address)
|
|
#define opcode6A eval($)
|
|
;ld l,d
|
|
exx
|
|
ld l,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode6A_B
|
|
fill_to(address)
|
|
#define opcode6A_B eval($)
|
|
;ld l,d
|
|
exx
|
|
ld l,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $6B
|
|
#ifndef opcode6B
|
|
fill_to(address)
|
|
#define opcode6B eval($)
|
|
;ld l,e
|
|
exx
|
|
ld l,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode6B_B
|
|
fill_to(address)
|
|
#define opcode6B_B eval($)
|
|
;ld l,e
|
|
exx
|
|
ld l,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $6C
|
|
#ifndef opcode6C
|
|
fill_to(address)
|
|
#define opcode6C eval($)
|
|
;ld l,h
|
|
exx
|
|
ld l,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode6C_B
|
|
fill_to(address)
|
|
#define opcode6C_B eval($)
|
|
;ld l,h
|
|
exx
|
|
ld l,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $6D
|
|
#ifndef opcode6D
|
|
fill_to(address)
|
|
#define opcode6D eval($)
|
|
;ld l,l
|
|
NEXT
|
|
#else
|
|
#ifndef opcode6D_B
|
|
fill_to(address)
|
|
#define opcode6D_B eval($)
|
|
;ld l,l
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $6E
|
|
#ifndef opcode6E
|
|
fill_to(address)
|
|
#define opcode6E eval($)
|
|
;ld l,(hl)
|
|
exx
|
|
ld l,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode6E_B
|
|
fill_to(address)
|
|
#define opcode6E_B eval($)
|
|
;ld l,(hl)
|
|
exx
|
|
ld l,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $6F
|
|
#ifndef opcode6F
|
|
fill_to(address)
|
|
#define opcode6F eval($)
|
|
;ld l,a
|
|
exx
|
|
ld l,a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode6F_B
|
|
fill_to(address)
|
|
#define opcode6F_B eval($)
|
|
;ld l,a
|
|
exx
|
|
ld l,a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $70
|
|
#ifndef opcode70
|
|
fill_to(address)
|
|
#define opcode70 eval($)
|
|
;ld (hl),b
|
|
exx
|
|
ld (hl),b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode70_B
|
|
fill_to(address)
|
|
#define opcode70_B eval($)
|
|
;ld (hl),b
|
|
exx
|
|
ld (hl),b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $71
|
|
#ifndef opcode71
|
|
fill_to(address)
|
|
#define opcode71 eval($)
|
|
;ld (hl),c
|
|
exx
|
|
ld (hl),c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode71_B
|
|
fill_to(address)
|
|
#define opcode71_B eval($)
|
|
;ld (hl),c
|
|
exx
|
|
ld (hl),c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $72
|
|
#ifndef opcode72
|
|
fill_to(address)
|
|
#define opcode72 eval($)
|
|
;ld (hl),d
|
|
exx
|
|
ld (hl),d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode72_B
|
|
fill_to(address)
|
|
#define opcode72_B eval($)
|
|
;ld (hl),d
|
|
exx
|
|
ld (hl),d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $73
|
|
#ifndef opcode73
|
|
fill_to(address)
|
|
#define opcode73 eval($)
|
|
;ld (hl),e
|
|
exx
|
|
ld (hl),e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode73_B
|
|
fill_to(address)
|
|
#define opcode73_B eval($)
|
|
;ld (hl),e
|
|
exx
|
|
ld (hl),e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $74
|
|
#ifndef opcode74
|
|
fill_to(address)
|
|
#define opcode74 eval($)
|
|
;ld (hl),h
|
|
exx
|
|
ld (hl),h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode74_B
|
|
fill_to(address)
|
|
#define opcode74_B eval($)
|
|
;ld (hl),h
|
|
exx
|
|
ld (hl),h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $75
|
|
#ifndef opcode75
|
|
fill_to(address)
|
|
#define opcode75 eval($)
|
|
;ld (hl),l
|
|
exx
|
|
ld (hl),l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode75_B
|
|
fill_to(address)
|
|
#define opcode75_B eval($)
|
|
;ld (hl),l
|
|
exx
|
|
ld (hl),l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $76
|
|
#ifndef opcode76
|
|
fill_to(address)
|
|
#define opcode76 eval($)
|
|
;halt
|
|
ex af,af'
|
|
dec sp
|
|
jp hardware
|
|
#else
|
|
#ifndef opcode76_B
|
|
fill_to(address)
|
|
#define opcode76_B eval($)
|
|
;halt
|
|
dec sp
|
|
jp opcode76
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $77
|
|
#ifndef opcode77
|
|
fill_to(address)
|
|
#define opcode77 eval($)
|
|
;ld (hl),a
|
|
exx
|
|
ld (hl),a
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode77_B
|
|
fill_to(address)
|
|
#define opcode77_B eval($)
|
|
;ld (hl),a
|
|
exx
|
|
ld (hl),a
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $78
|
|
#ifndef opcode78
|
|
fill_to(address)
|
|
#define opcode78 eval($)
|
|
;ld a,b
|
|
exx
|
|
ld a,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode78_B
|
|
fill_to(address)
|
|
#define opcode78_B eval($)
|
|
;ld a,b
|
|
exx
|
|
ld a,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $79
|
|
#ifndef opcode79
|
|
fill_to(address)
|
|
#define opcode79 eval($)
|
|
;ld a,c
|
|
exx
|
|
ld a,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode79_B
|
|
fill_to(address)
|
|
#define opcode79_B eval($)
|
|
;ld a,c
|
|
exx
|
|
ld a,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $7A
|
|
#ifndef opcode7A
|
|
fill_to(address)
|
|
#define opcode7A eval($)
|
|
;ld a,d
|
|
exx
|
|
ld a,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode7A_B
|
|
fill_to(address)
|
|
#define opcode7A_B eval($)
|
|
;ld a,d
|
|
exx
|
|
ld a,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $7B
|
|
#ifndef opcode7B
|
|
fill_to(address)
|
|
#define opcode7B eval($)
|
|
;ld a,e
|
|
exx
|
|
ld a,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode7B_B
|
|
fill_to(address)
|
|
#define opcode7B_B eval($)
|
|
;ld a,e
|
|
exx
|
|
ld a,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $7C
|
|
#ifndef opcode7C
|
|
fill_to(address)
|
|
#define opcode7C eval($)
|
|
;ld a,h
|
|
exx
|
|
ld a,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode7C_B
|
|
fill_to(address)
|
|
#define opcode7C_B eval($)
|
|
;ld a,h
|
|
exx
|
|
ld a,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $7D
|
|
#ifndef opcode7D
|
|
fill_to(address)
|
|
#define opcode7D eval($)
|
|
;ld a,l
|
|
exx
|
|
ld a,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode7D_B
|
|
fill_to(address)
|
|
#define opcode7D_B eval($)
|
|
;ld a,l
|
|
exx
|
|
ld a,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $7E
|
|
#ifndef opcode7E
|
|
fill_to(address)
|
|
#define opcode7E eval($)
|
|
;ld a,(hl)
|
|
exx
|
|
ld a,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode7E_B
|
|
fill_to(address)
|
|
#define opcode7E_B eval($)
|
|
;ld a,(hl)
|
|
exx
|
|
ld a,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $7F
|
|
#ifndef opcode7F
|
|
fill_to(address)
|
|
#define opcode7F eval($)
|
|
;ld a,a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode7F_B
|
|
fill_to(address)
|
|
#define opcode7F_B eval($)
|
|
;ld a,a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $80
|
|
#ifndef opcode80
|
|
fill_to(address)
|
|
#define opcode80 eval($)
|
|
;add a,b
|
|
exx
|
|
add a,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode80_B
|
|
fill_to(address)
|
|
#define opcode80_B eval($)
|
|
;add a,b
|
|
exx
|
|
add a,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $81
|
|
#ifndef opcode81
|
|
fill_to(address)
|
|
#define opcode81 eval($)
|
|
;add a,c
|
|
exx
|
|
add a,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode81_B
|
|
fill_to(address)
|
|
#define opcode81_B eval($)
|
|
;add a,c
|
|
exx
|
|
add a,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $82
|
|
#ifndef opcode82
|
|
fill_to(address)
|
|
#define opcode82 eval($)
|
|
;add a,d
|
|
exx
|
|
add a,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode82_B
|
|
fill_to(address)
|
|
#define opcode82_B eval($)
|
|
;add a,d
|
|
exx
|
|
add a,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $83
|
|
#ifndef opcode83
|
|
fill_to(address)
|
|
#define opcode83 eval($)
|
|
;add a,e
|
|
exx
|
|
add a,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode83_B
|
|
fill_to(address)
|
|
#define opcode83_B eval($)
|
|
;add a,e
|
|
exx
|
|
add a,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $84
|
|
#ifndef opcode84
|
|
fill_to(address)
|
|
#define opcode84 eval($)
|
|
;add a,h
|
|
exx
|
|
add a,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode84_B
|
|
fill_to(address)
|
|
#define opcode84_B eval($)
|
|
;add a,h
|
|
exx
|
|
add a,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $85
|
|
#ifndef opcode85
|
|
fill_to(address)
|
|
#define opcode85 eval($)
|
|
;add a,l
|
|
exx
|
|
add a,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode85_B
|
|
fill_to(address)
|
|
#define opcode85_B eval($)
|
|
;add a,l
|
|
exx
|
|
add a,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $86
|
|
#ifndef opcode86
|
|
fill_to(address)
|
|
#define opcode86 eval($)
|
|
;add a,(hl)
|
|
exx
|
|
add a,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode86_B
|
|
fill_to(address)
|
|
#define opcode86_B eval($)
|
|
;add a,(hl)
|
|
exx
|
|
add a,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $87
|
|
#ifndef opcode87
|
|
fill_to(address)
|
|
#define opcode87 eval($)
|
|
;add a,a
|
|
add a,a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode87_B
|
|
fill_to(address)
|
|
#define opcode87_B eval($)
|
|
;add a,a
|
|
add a,a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $88
|
|
#ifndef opcode88
|
|
fill_to(address)
|
|
#define opcode88 eval($)
|
|
;adc a,b
|
|
exx
|
|
adc a,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode88_B
|
|
fill_to(address)
|
|
#define opcode88_B eval($)
|
|
;adc a,b
|
|
exx
|
|
adc a,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $89
|
|
#ifndef opcode89
|
|
fill_to(address)
|
|
#define opcode89 eval($)
|
|
;adc a,c
|
|
exx
|
|
adc a,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode89_B
|
|
fill_to(address)
|
|
#define opcode89_B eval($)
|
|
;adc a,c
|
|
exx
|
|
adc a,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $8A
|
|
#ifndef opcode8A
|
|
fill_to(address)
|
|
#define opcode8A eval($)
|
|
;adc a,d
|
|
exx
|
|
adc a,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode8A_B
|
|
fill_to(address)
|
|
#define opcode8A_B eval($)
|
|
;adc a,d
|
|
exx
|
|
adc a,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $8B
|
|
#ifndef opcode8B
|
|
fill_to(address)
|
|
#define opcode8B eval($)
|
|
;adc a,e
|
|
exx
|
|
adc a,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode8B_B
|
|
fill_to(address)
|
|
#define opcode8B_B eval($)
|
|
;adc a,e
|
|
exx
|
|
adc a,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $8C
|
|
#ifndef opcode8C
|
|
fill_to(address)
|
|
#define opcode8C eval($)
|
|
;adc a,h
|
|
exx
|
|
adc a,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode8C_B
|
|
fill_to(address)
|
|
#define opcode8C_B eval($)
|
|
;adc a,h
|
|
exx
|
|
adc a,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $8D
|
|
#ifndef opcode8D
|
|
fill_to(address)
|
|
#define opcode8D eval($)
|
|
;adc a,l
|
|
exx
|
|
adc a,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode8D_B
|
|
fill_to(address)
|
|
#define opcode8D_B eval($)
|
|
;adc a,l
|
|
exx
|
|
adc a,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $8E
|
|
#ifndef opcode8E
|
|
fill_to(address)
|
|
#define opcode8E eval($)
|
|
;adc a,(hl)
|
|
exx
|
|
adc a,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode8E_B
|
|
fill_to(address)
|
|
#define opcode8E_B eval($)
|
|
;adc a,(hl)
|
|
exx
|
|
adc a,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $8F
|
|
#ifndef opcode8F
|
|
fill_to(address)
|
|
#define opcode8F eval($)
|
|
;adc a,a
|
|
adc a,a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode8F_B
|
|
fill_to(address)
|
|
#define opcode8F_B eval($)
|
|
;adc a,a
|
|
adc a,a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $90
|
|
#ifndef opcode90
|
|
fill_to(address)
|
|
#define opcode90 eval($)
|
|
;sub b
|
|
exx
|
|
sub b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode90_B
|
|
fill_to(address)
|
|
#define opcode90_B eval($)
|
|
;sub b
|
|
exx
|
|
sub b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $91
|
|
#ifndef opcode91
|
|
fill_to(address)
|
|
#define opcode91 eval($)
|
|
;sub c
|
|
exx
|
|
sub c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode91_B
|
|
fill_to(address)
|
|
#define opcode91_B eval($)
|
|
;sub c
|
|
exx
|
|
sub c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $92
|
|
#ifndef opcode92
|
|
fill_to(address)
|
|
#define opcode92 eval($)
|
|
;sub d
|
|
exx
|
|
sub d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode92_B
|
|
fill_to(address)
|
|
#define opcode92_B eval($)
|
|
;sub d
|
|
exx
|
|
sub d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $93
|
|
#ifndef opcode93
|
|
fill_to(address)
|
|
#define opcode93 eval($)
|
|
;sub e
|
|
exx
|
|
sub e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode93_B
|
|
fill_to(address)
|
|
#define opcode93_B eval($)
|
|
;sub e
|
|
exx
|
|
sub e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $94
|
|
#ifndef opcode94
|
|
fill_to(address)
|
|
#define opcode94 eval($)
|
|
;sub h
|
|
exx
|
|
sub h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode94_B
|
|
fill_to(address)
|
|
#define opcode94_B eval($)
|
|
;sub h
|
|
exx
|
|
sub h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $95
|
|
#ifndef opcode95
|
|
fill_to(address)
|
|
#define opcode95 eval($)
|
|
;sub l
|
|
exx
|
|
sub l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode95_B
|
|
fill_to(address)
|
|
#define opcode95_B eval($)
|
|
;sub l
|
|
exx
|
|
sub l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $96
|
|
#ifndef opcode96
|
|
fill_to(address)
|
|
#define opcode96 eval($)
|
|
;sub (hl)
|
|
exx
|
|
sub (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode96_B
|
|
fill_to(address)
|
|
#define opcode96_B eval($)
|
|
;sub (hl)
|
|
exx
|
|
sub (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $97
|
|
#ifndef opcode97
|
|
fill_to(address)
|
|
#define opcode97 eval($)
|
|
;sub a
|
|
sub a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode97_B
|
|
fill_to(address)
|
|
#define opcode97_B eval($)
|
|
;sub a
|
|
sub a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $98
|
|
#ifndef opcode98
|
|
fill_to(address)
|
|
#define opcode98 eval($)
|
|
;sbc a,b
|
|
exx
|
|
sbc a,b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode98_B
|
|
fill_to(address)
|
|
#define opcode98_B eval($)
|
|
;sbc a,b
|
|
exx
|
|
sbc a,b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $99
|
|
#ifndef opcode99
|
|
fill_to(address)
|
|
#define opcode99 eval($)
|
|
;sbc a,c
|
|
exx
|
|
sbc a,c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode99_B
|
|
fill_to(address)
|
|
#define opcode99_B eval($)
|
|
;sbc a,c
|
|
exx
|
|
sbc a,c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $9A
|
|
#ifndef opcode9A
|
|
fill_to(address)
|
|
#define opcode9A eval($)
|
|
;sbc a,d
|
|
exx
|
|
sbc a,d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode9A_B
|
|
fill_to(address)
|
|
#define opcode9A_B eval($)
|
|
;sbc a,d
|
|
exx
|
|
sbc a,d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $9B
|
|
#ifndef opcode9B
|
|
fill_to(address)
|
|
#define opcode9B eval($)
|
|
;sbc a,e
|
|
exx
|
|
sbc a,e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode9B_B
|
|
fill_to(address)
|
|
#define opcode9B_B eval($)
|
|
;sbc a,e
|
|
exx
|
|
sbc a,e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $9C
|
|
#ifndef opcode9C
|
|
fill_to(address)
|
|
#define opcode9C eval($)
|
|
;sbc a,h
|
|
exx
|
|
sbc a,h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode9C_B
|
|
fill_to(address)
|
|
#define opcode9C_B eval($)
|
|
;sbc a,h
|
|
exx
|
|
sbc a,h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $9D
|
|
#ifndef opcode9D
|
|
fill_to(address)
|
|
#define opcode9D eval($)
|
|
;sbc a,l
|
|
exx
|
|
sbc a,l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode9D_B
|
|
fill_to(address)
|
|
#define opcode9D_B eval($)
|
|
;sbc a,l
|
|
exx
|
|
sbc a,l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $9E
|
|
#ifndef opcode9E
|
|
fill_to(address)
|
|
#define opcode9E eval($)
|
|
;sbc a,(hl)
|
|
exx
|
|
sbc a,(hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcode9E_B
|
|
fill_to(address)
|
|
#define opcode9E_B eval($)
|
|
;sbc a,(hl)
|
|
exx
|
|
sbc a,(hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $9F
|
|
#ifndef opcode9F
|
|
fill_to(address)
|
|
#define opcode9F eval($)
|
|
;sbc a,a
|
|
sbc a,a
|
|
NEXT
|
|
#else
|
|
#ifndef opcode9F_B
|
|
fill_to(address)
|
|
#define opcode9F_B eval($)
|
|
;sbc a,a
|
|
sbc a,a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A0
|
|
#ifndef opcodeA0
|
|
fill_to(address)
|
|
#define opcodeA0 eval($)
|
|
;and b
|
|
exx
|
|
and b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA0_B
|
|
fill_to(address)
|
|
#define opcodeA0_B eval($)
|
|
;and b
|
|
exx
|
|
and b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A1
|
|
#ifndef opcodeA1
|
|
fill_to(address)
|
|
#define opcodeA1 eval($)
|
|
;and c
|
|
exx
|
|
and c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA1_B
|
|
fill_to(address)
|
|
#define opcodeA1_B eval($)
|
|
;and c
|
|
exx
|
|
and c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A2
|
|
#ifndef opcodeA2
|
|
fill_to(address)
|
|
#define opcodeA2 eval($)
|
|
;and d
|
|
exx
|
|
and d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA2_B
|
|
fill_to(address)
|
|
#define opcodeA2_B eval($)
|
|
;and d
|
|
exx
|
|
and d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A3
|
|
#ifndef opcodeA3
|
|
fill_to(address)
|
|
#define opcodeA3 eval($)
|
|
;and e
|
|
exx
|
|
and e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA3_B
|
|
fill_to(address)
|
|
#define opcodeA3_B eval($)
|
|
;and e
|
|
exx
|
|
and e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A4
|
|
#ifndef opcodeA4
|
|
fill_to(address)
|
|
#define opcodeA4 eval($)
|
|
;and h
|
|
exx
|
|
and h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA4_B
|
|
fill_to(address)
|
|
#define opcodeA4_B eval($)
|
|
;and h
|
|
exx
|
|
and h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A5
|
|
#ifndef opcodeA5
|
|
fill_to(address)
|
|
#define opcodeA5 eval($)
|
|
;and l
|
|
exx
|
|
and l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA5_B
|
|
fill_to(address)
|
|
#define opcodeA5_B eval($)
|
|
;and l
|
|
exx
|
|
and l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A6
|
|
#ifndef opcodeA6
|
|
fill_to(address)
|
|
#define opcodeA6 eval($)
|
|
;and (hl)
|
|
exx
|
|
and (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA6_B
|
|
fill_to(address)
|
|
#define opcodeA6_B eval($)
|
|
;and (hl)
|
|
exx
|
|
and (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A7
|
|
#ifndef opcodeA7
|
|
fill_to(address)
|
|
#define opcodeA7 eval($)
|
|
;and a
|
|
and a
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA7_B
|
|
fill_to(address)
|
|
#define opcodeA7_B eval($)
|
|
;and a
|
|
and a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A8
|
|
#ifndef opcodeA8
|
|
fill_to(address)
|
|
#define opcodeA8 eval($)
|
|
;xor b
|
|
exx
|
|
xor b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA8_B
|
|
fill_to(address)
|
|
#define opcodeA8_B eval($)
|
|
;xor b
|
|
exx
|
|
xor b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $A9
|
|
#ifndef opcodeA9
|
|
fill_to(address)
|
|
#define opcodeA9 eval($)
|
|
;xor c
|
|
exx
|
|
xor c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeA9_B
|
|
fill_to(address)
|
|
#define opcodeA9_B eval($)
|
|
;xor c
|
|
exx
|
|
xor c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $AA
|
|
#ifndef opcodeAA
|
|
fill_to(address)
|
|
#define opcodeAA eval($)
|
|
;xor d
|
|
exx
|
|
xor d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeAA_B
|
|
fill_to(address)
|
|
#define opcodeAA_B eval($)
|
|
;xor d
|
|
exx
|
|
xor d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $AB
|
|
#ifndef opcodeAB
|
|
fill_to(address)
|
|
#define opcodeAB eval($)
|
|
;xor e
|
|
exx
|
|
xor e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeAB_B
|
|
fill_to(address)
|
|
#define opcodeAB_B eval($)
|
|
;xor e
|
|
exx
|
|
xor e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $AC
|
|
#ifndef opcodeAC
|
|
fill_to(address)
|
|
#define opcodeAC eval($)
|
|
;xor h
|
|
exx
|
|
xor h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeAC_B
|
|
fill_to(address)
|
|
#define opcodeAC_B eval($)
|
|
;xor h
|
|
exx
|
|
xor h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $AD
|
|
#ifndef opcodeAD
|
|
fill_to(address)
|
|
#define opcodeAD eval($)
|
|
;xor l
|
|
exx
|
|
xor l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeAD_B
|
|
fill_to(address)
|
|
#define opcodeAD_B eval($)
|
|
;xor l
|
|
exx
|
|
xor l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $AE
|
|
#ifndef opcodeAE
|
|
fill_to(address)
|
|
#define opcodeAE eval($)
|
|
;xor (hl)
|
|
exx
|
|
xor (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeAE_B
|
|
fill_to(address)
|
|
#define opcodeAE_B eval($)
|
|
;xor (hl)
|
|
exx
|
|
xor (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $AF
|
|
#ifndef opcodeAF
|
|
fill_to(address)
|
|
#define opcodeAF eval($)
|
|
;xor a
|
|
xor a
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeAF_B
|
|
fill_to(address)
|
|
#define opcodeAF_B eval($)
|
|
;xor a
|
|
xor a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B0
|
|
#ifndef opcodeB0
|
|
fill_to(address)
|
|
#define opcodeB0 eval($)
|
|
;or b
|
|
exx
|
|
or b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB0_B
|
|
fill_to(address)
|
|
#define opcodeB0_B eval($)
|
|
;or b
|
|
exx
|
|
or b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B1
|
|
#ifndef opcodeB1
|
|
fill_to(address)
|
|
#define opcodeB1 eval($)
|
|
;or c
|
|
exx
|
|
or c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB1_B
|
|
fill_to(address)
|
|
#define opcodeB1_B eval($)
|
|
;or c
|
|
exx
|
|
or c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B2
|
|
#ifndef opcodeB2
|
|
fill_to(address)
|
|
#define opcodeB2 eval($)
|
|
;or d
|
|
exx
|
|
or d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB2_B
|
|
fill_to(address)
|
|
#define opcodeB2_B eval($)
|
|
;or d
|
|
exx
|
|
or d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B3
|
|
#ifndef opcodeB3
|
|
fill_to(address)
|
|
#define opcodeB3 eval($)
|
|
;or e
|
|
exx
|
|
or e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB3_B
|
|
fill_to(address)
|
|
#define opcodeB3_B eval($)
|
|
;or e
|
|
exx
|
|
or e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B4
|
|
#ifndef opcodeB4
|
|
fill_to(address)
|
|
#define opcodeB4 eval($)
|
|
;or h
|
|
exx
|
|
or h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB4_B
|
|
fill_to(address)
|
|
#define opcodeB4_B eval($)
|
|
;or h
|
|
exx
|
|
or h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B5
|
|
#ifndef opcodeB5
|
|
fill_to(address)
|
|
#define opcodeB5 eval($)
|
|
;or l
|
|
exx
|
|
or l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB5_B
|
|
fill_to(address)
|
|
#define opcodeB5_B eval($)
|
|
;or l
|
|
exx
|
|
or l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B6
|
|
#ifndef opcodeB6
|
|
fill_to(address)
|
|
#define opcodeB6 eval($)
|
|
;or (hl)
|
|
exx
|
|
or (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB6_B
|
|
fill_to(address)
|
|
#define opcodeB6_B eval($)
|
|
;or (hl)
|
|
exx
|
|
or (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B7
|
|
#ifndef opcodeB7
|
|
fill_to(address)
|
|
#define opcodeB7 eval($)
|
|
;or a
|
|
or a
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB7_B
|
|
fill_to(address)
|
|
#define opcodeB7_B eval($)
|
|
;or a
|
|
or a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B8
|
|
#ifndef opcodeB8
|
|
fill_to(address)
|
|
#define opcodeB8 eval($)
|
|
;cp b
|
|
exx
|
|
cp b
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB8_B
|
|
fill_to(address)
|
|
#define opcodeB8_B eval($)
|
|
;cp b
|
|
exx
|
|
cp b
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $B9
|
|
#ifndef opcodeB9
|
|
fill_to(address)
|
|
#define opcodeB9 eval($)
|
|
;cp c
|
|
exx
|
|
cp c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeB9_B
|
|
fill_to(address)
|
|
#define opcodeB9_B eval($)
|
|
;cp c
|
|
exx
|
|
cp c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $BA
|
|
#ifndef opcodeBA
|
|
fill_to(address)
|
|
#define opcodeBA eval($)
|
|
;cp d
|
|
exx
|
|
cp d
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeBA_B
|
|
fill_to(address)
|
|
#define opcodeBA_B eval($)
|
|
;cp d
|
|
exx
|
|
cp d
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $BB
|
|
#ifndef opcodeBB
|
|
fill_to(address)
|
|
#define opcodeBB eval($)
|
|
;cp e
|
|
exx
|
|
cp e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeBB_B
|
|
fill_to(address)
|
|
#define opcodeBB_B eval($)
|
|
;cp e
|
|
exx
|
|
cp e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $BC
|
|
#ifndef opcodeBC
|
|
fill_to(address)
|
|
#define opcodeBC eval($)
|
|
;cp h
|
|
exx
|
|
cp h
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeBC_B
|
|
fill_to(address)
|
|
#define opcodeBC_B eval($)
|
|
;cp h
|
|
exx
|
|
cp h
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $BD
|
|
#ifndef opcodeBD
|
|
fill_to(address)
|
|
#define opcodeBD eval($)
|
|
;cp l
|
|
exx
|
|
cp l
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeBD_B
|
|
fill_to(address)
|
|
#define opcodeBD_B eval($)
|
|
;cp l
|
|
exx
|
|
cp l
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $BE
|
|
#ifndef opcodeBE
|
|
fill_to(address)
|
|
#define opcodeBE eval($)
|
|
;cp (hl)
|
|
exx
|
|
cp (hl)
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeBE_B
|
|
fill_to(address)
|
|
#define opcodeBE_B eval($)
|
|
;cp (hl)
|
|
exx
|
|
cp (hl)
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $BF
|
|
#ifndef opcodeBF
|
|
fill_to(address)
|
|
#define opcodeBF eval($)
|
|
;cp a
|
|
cp a
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeBF_B
|
|
fill_to(address)
|
|
#define opcodeBF_B eval($)
|
|
;cp a
|
|
cp a
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C0
|
|
#ifndef opcodeC0
|
|
fill_to(address)
|
|
#define opcodeC0 eval($)
|
|
;ret nz
|
|
jp nz,opcodeC9
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeC0_B
|
|
fill_to(address)
|
|
#define opcodeC0_B eval($)
|
|
;ret nz
|
|
jp nz,opcodeC9_B
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C1
|
|
#ifndef opcodeC1
|
|
fill_to(address)
|
|
#define opcodeC1 eval($)
|
|
;pop bc
|
|
exx
|
|
ld c,(iy)
|
|
inc iy
|
|
ld b,(iy)
|
|
inc iy
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeC1_B
|
|
fill_to(address)
|
|
#define opcodeC1_B eval($)
|
|
;pop bc
|
|
exx
|
|
ld c,(iy)
|
|
inc iy
|
|
ld b,(iy)
|
|
inc iy
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C2
|
|
#ifndef opcodeC2
|
|
fill_to(address)
|
|
#define opcodeC2 eval($)
|
|
;jp nz,NN
|
|
jp nz,opcodeC3
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeC2_B
|
|
fill_to(address)
|
|
#define opcodeC2_B eval($)
|
|
;jp nz,NN
|
|
jp nz,opcodeC3_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C3
|
|
#ifndef opcodeC3
|
|
fill_to(address)
|
|
#define opcodeC3 eval($)
|
|
;jp NN
|
|
pop hl
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeC3_B
|
|
fill_to(address)
|
|
#define opcodeC3_B eval($)
|
|
;jp NN
|
|
dec sp
|
|
pop hl
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C4
|
|
#ifndef opcodeC4
|
|
fill_to(address)
|
|
#define opcodeC4 eval($)
|
|
;call nz,NN
|
|
jp nz,opcodeCD
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeC4_B
|
|
fill_to(address)
|
|
#define opcodeC4_B eval($)
|
|
;call nz,NN
|
|
jp nz,opcodeCD_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C5
|
|
#ifndef opcodeC5
|
|
fill_to(address)
|
|
#define opcodeC5 eval($)
|
|
;push bc
|
|
exx
|
|
dec iy
|
|
ld (iy),b
|
|
dec iy
|
|
ld (iy),c
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeC5_B
|
|
fill_to(address)
|
|
#define opcodeC5_B eval($)
|
|
;push bc
|
|
exx
|
|
dec iy
|
|
ld (iy),b
|
|
dec iy
|
|
ld (iy),c
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C6
|
|
#ifndef opcodeC6
|
|
fill_to(address)
|
|
#define opcodeC6 eval($)
|
|
;add a,N
|
|
pop hl
|
|
add a,l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeC6_B
|
|
fill_to(address)
|
|
#define opcodeC6_B eval($)
|
|
;add a,N
|
|
add a,b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C7
|
|
#ifndef opcodeC7
|
|
fill_to(address)
|
|
#define opcodeC7 eval($)
|
|
;rst 00h
|
|
ld hl,$00
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeC7_B
|
|
fill_to(address)
|
|
#define opcodeC7_B eval($)
|
|
;rst 00h
|
|
dec sp
|
|
ld hl,$00
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C8
|
|
#ifndef opcodeC8
|
|
fill_to(address)
|
|
#define opcodeC8 eval($)
|
|
;ret z
|
|
jp z,opcodeC9
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeC8_B
|
|
fill_to(address)
|
|
#define opcodeC8_B eval($)
|
|
;ret z
|
|
jp z,opcodeC9_B
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $C9
|
|
#ifndef opcodeC9
|
|
fill_to(address)
|
|
#define opcodeC9 eval($)
|
|
;ret
|
|
ld sp,iy
|
|
inc iy
|
|
inc iy
|
|
pop hl
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeC9_B
|
|
fill_to(address)
|
|
#define opcodeC9_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $CA
|
|
#ifndef opcodeCA
|
|
fill_to(address)
|
|
#define opcodeCA eval($)
|
|
;jp z,NN
|
|
jp z,opcodeC3
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeCA_B
|
|
fill_to(address)
|
|
#define opcodeCA_B eval($)
|
|
;jp z,NN
|
|
jp z,opcodeC3_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $CB
|
|
#ifndef opcodeCB
|
|
fill_to(address)
|
|
#define opcodeCB eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeCB_B
|
|
fill_to(address)
|
|
#define opcodeCB_B eval($)
|
|
;CB-opcodes
|
|
ex af,af'
|
|
ld a,b
|
|
ld hl,bitcodes_B
|
|
jp (hl)
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $CC
|
|
#ifndef opcodeCC
|
|
fill_to(address)
|
|
#define opcodeCC eval($)
|
|
;call z,NN
|
|
jp z,opcodeCD
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeCC_B
|
|
fill_to(address)
|
|
#define opcodeCC_B eval($)
|
|
;call z,NN
|
|
jp z,opcodeCD_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $CD
|
|
#ifndef opcodeCD
|
|
fill_to(address)
|
|
#define opcodeCD eval($)
|
|
;call NN
|
|
pop hl
|
|
do_call:
|
|
dec iy
|
|
dec iy
|
|
ld (_+2),iy
|
|
_
|
|
ld (0),sp
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeCD_B
|
|
fill_to(address)
|
|
#define opcodeCD_B eval($)
|
|
;call NN
|
|
dec sp
|
|
pop hl
|
|
dec iy
|
|
dec iy
|
|
ld (_+2),iy
|
|
_
|
|
ld (0),sp
|
|
ld sp,hl
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $CE
|
|
#ifndef opcodeCE
|
|
fill_to(address)
|
|
#define opcodeCE eval($)
|
|
;adc a,N
|
|
pop hl
|
|
adc a,l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeCE_B
|
|
fill_to(address)
|
|
#define opcodeCE_B eval($)
|
|
;adc a,N
|
|
adc a,b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $CF
|
|
#ifndef opcodeCF
|
|
fill_to(address)
|
|
#define opcodeCF eval($)
|
|
;rst 08h
|
|
ld hl,$08
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeCF_B
|
|
fill_to(address)
|
|
#define opcodeCF_B eval($)
|
|
;rst 08h
|
|
dec sp
|
|
ld hl,$08
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D0
|
|
#ifndef opcodeD0
|
|
fill_to(address)
|
|
#define opcodeD0 eval($)
|
|
;ret nc
|
|
jp nc,opcodeC9
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeD0_B
|
|
fill_to(address)
|
|
#define opcodeD0_B eval($)
|
|
;ret nc
|
|
jp nc,opcodeC9_B
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D1
|
|
#ifndef opcodeD1
|
|
fill_to(address)
|
|
#define opcodeD1 eval($)
|
|
;pop de
|
|
exx
|
|
ld e,(iy)
|
|
inc iy
|
|
ld d,(iy)
|
|
inc iy
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeD1_B
|
|
fill_to(address)
|
|
#define opcodeD1_B eval($)
|
|
;pop de
|
|
exx
|
|
ld e,(iy)
|
|
inc iy
|
|
ld d,(iy)
|
|
inc iy
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D2
|
|
#ifndef opcodeD2
|
|
fill_to(address)
|
|
#define opcodeD2 eval($)
|
|
;jp nc,NN
|
|
jp nc,opcodeC3
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeD2_B
|
|
fill_to(address)
|
|
#define opcodeD2_B eval($)
|
|
;jp nc,NN
|
|
jp nc,opcodeC3_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D3
|
|
#ifndef opcodeD3
|
|
fill_to(address)
|
|
#define opcodeD3 eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeD3_B
|
|
fill_to(address)
|
|
#define opcodeD3_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D4
|
|
#ifndef opcodeD4
|
|
fill_to(address)
|
|
#define opcodeD4 eval($)
|
|
;call nc,NN
|
|
jp nc,opcodeCD
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeD4_B
|
|
fill_to(address)
|
|
#define opcodeD4_B eval($)
|
|
;call nc,NN
|
|
jp nc,opcodeCD_B
|
|
inc sp
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D5
|
|
#ifndef opcodeD5
|
|
fill_to(address)
|
|
#define opcodeD5 eval($)
|
|
;push de
|
|
exx
|
|
dec iy
|
|
ld (iy),d
|
|
dec iy
|
|
ld (iy),e
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeD5_B
|
|
fill_to(address)
|
|
#define opcodeD5_B eval($)
|
|
;push de
|
|
exx
|
|
dec iy
|
|
ld (iy),d
|
|
dec iy
|
|
ld (iy),e
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D6
|
|
#ifndef opcodeD6
|
|
fill_to(address)
|
|
#define opcodeD6 eval($)
|
|
;sub N
|
|
pop hl
|
|
sub l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeD6_B
|
|
fill_to(address)
|
|
#define opcodeD6_B eval($)
|
|
;sub N
|
|
sub b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D7
|
|
#ifndef opcodeD7
|
|
fill_to(address)
|
|
#define opcodeD7 eval($)
|
|
;rst 10h
|
|
ld hl,$10
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeD7_B
|
|
fill_to(address)
|
|
#define opcodeD7_B eval($)
|
|
;rst 10h
|
|
dec sp
|
|
ld hl,$10
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D8
|
|
#ifndef opcodeD8
|
|
fill_to(address)
|
|
#define opcodeD8 eval($)
|
|
;ret c
|
|
jp c,opcodeC9
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeD8_B
|
|
fill_to(address)
|
|
#define opcodeD8_B eval($)
|
|
;ret c
|
|
jp c,opcodeC9_B
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $D9
|
|
#ifndef opcodeD9
|
|
fill_to(address)
|
|
#define opcodeD9 eval($)
|
|
;reti
|
|
ld sp,iy
|
|
inc iy
|
|
inc iy
|
|
pop hl
|
|
ld sp,hl
|
|
jp opcodeFB
|
|
#else
|
|
#ifndef opcodeD9_B
|
|
fill_to(address)
|
|
#define opcodeD9_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $DA
|
|
#ifndef opcodeDA
|
|
fill_to(address)
|
|
#define opcodeDA eval($)
|
|
;jp c,NN
|
|
jp c,opcodeC3
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeDA_B
|
|
fill_to(address)
|
|
#define opcodeDA_B eval($)
|
|
;jp c,NN
|
|
jp c,opcodeC3_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $DB
|
|
#ifndef opcodeDB
|
|
fill_to(address)
|
|
#define opcodeDB eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeDB_B
|
|
fill_to(address)
|
|
#define opcodeDB_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $DC
|
|
#ifndef opcodeDC
|
|
fill_to(address)
|
|
#define opcodeDC eval($)
|
|
;call c,NN
|
|
jp c,opcodeCD
|
|
pop hl
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeDC_B
|
|
fill_to(address)
|
|
#define opcodeDC_B eval($)
|
|
;call c,NN
|
|
jp c,opcodeCD_B
|
|
inc sp
|
|
NEXT_INT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $DD
|
|
#ifndef opcodeDD
|
|
fill_to(address)
|
|
#define opcodeDD eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeDD_B
|
|
fill_to(address)
|
|
#define opcodeDD_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $DE
|
|
#ifndef opcodeDE
|
|
fill_to(address)
|
|
#define opcodeDE eval($)
|
|
;sbc a,N
|
|
pop hl
|
|
sbc a,l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeDE_B
|
|
fill_to(address)
|
|
#define opcodeDE_B eval($)
|
|
;sbc a,N
|
|
sbc a,b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $DF
|
|
#ifndef opcodeDF
|
|
fill_to(address)
|
|
#define opcodeDF eval($)
|
|
;rst 18h
|
|
ld hl,$18
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeDF_B
|
|
fill_to(address)
|
|
#define opcodeDF_B eval($)
|
|
;rst 18h
|
|
dec sp
|
|
ld hl,$18
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E0
|
|
#ifndef opcodeE0
|
|
fill_to(address)
|
|
#define opcodeE0 eval($)
|
|
;ld ($FF00+N),a
|
|
ex af,af'
|
|
dec sp
|
|
pop af
|
|
ld l,a
|
|
ld h,$FF
|
|
inc a
|
|
jp p,io_write
|
|
ex af,af'
|
|
ld (hl),a
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeE0_B
|
|
fill_to(address)
|
|
#define opcodeE0_B eval($)
|
|
;ld ($FF00+N),a
|
|
ex af,af'
|
|
ld a,b
|
|
ld l,a
|
|
ld h,$FF
|
|
inc a
|
|
jp p,io_write
|
|
ex af,af'
|
|
ld (hl),a
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E1
|
|
#ifndef opcodeE1
|
|
fill_to(address)
|
|
#define opcodeE1 eval($)
|
|
;pop hl
|
|
ld (_+1),iy
|
|
exx
|
|
_
|
|
ld hl,(0)
|
|
exx
|
|
inc iy
|
|
inc iy
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeE1_B
|
|
fill_to(address)
|
|
#define opcodeE1_B eval($)
|
|
;pop hl
|
|
ld (_+1),iy
|
|
exx
|
|
_
|
|
ld hl,(0)
|
|
exx
|
|
inc iy
|
|
inc iy
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E2
|
|
#ifndef opcodeE2
|
|
fill_to(address)
|
|
#define opcodeE2 eval($)
|
|
;ld ($FF00+c),a
|
|
ex af,af'
|
|
exx
|
|
ld a,c
|
|
exx
|
|
ld l,a
|
|
ld h,$FF
|
|
inc a
|
|
jp p,io_write
|
|
ex af,af'
|
|
ld (hl),a
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeE2_B
|
|
fill_to(address)
|
|
#define opcodeE2_B eval($)
|
|
;ld ($FF00+c),a
|
|
dec sp
|
|
jp opcodeE2
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E3
|
|
#ifndef opcodeE3
|
|
fill_to(address)
|
|
#define opcodeE3 eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeE3_B
|
|
fill_to(address)
|
|
#define opcodeE3_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E4
|
|
#ifndef opcodeE4
|
|
fill_to(address)
|
|
#define opcodeE4 eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeE4_B
|
|
fill_to(address)
|
|
#define opcodeE4_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E5
|
|
#ifndef opcodeE5
|
|
fill_to(address)
|
|
#define opcodeE5 eval($)
|
|
;push hl
|
|
dec iy
|
|
dec iy
|
|
ld (_+1),iy
|
|
exx
|
|
_
|
|
ld (0),hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeE5_B
|
|
fill_to(address)
|
|
#define opcodeE5_B eval($)
|
|
;push hl
|
|
dec iy
|
|
dec iy
|
|
ld (_+1),iy
|
|
exx
|
|
_
|
|
ld (0),hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E6
|
|
#ifndef opcodeE6
|
|
fill_to(address)
|
|
#define opcodeE6 eval($)
|
|
;and N
|
|
pop hl
|
|
and l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeE6_B
|
|
fill_to(address)
|
|
#define opcodeE6_B eval($)
|
|
;and N
|
|
and b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E7
|
|
#ifndef opcodeE7
|
|
fill_to(address)
|
|
#define opcodeE7 eval($)
|
|
;rst 20h
|
|
ld hl,$20
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeE7_B
|
|
fill_to(address)
|
|
#define opcodeE7_B eval($)
|
|
;rst 20h
|
|
dec sp
|
|
ld hl,$20
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E8
|
|
#ifndef opcodeE8
|
|
fill_to(address)
|
|
#define opcodeE8 eval($)
|
|
;add sp,N
|
|
ex af,af'
|
|
pop hl
|
|
ld b,h
|
|
ld a,l
|
|
rla
|
|
sbc a,a
|
|
ld h,a
|
|
ex de,hl
|
|
add iy,de
|
|
ex de,hl
|
|
ex af,af'
|
|
NEXT_B
|
|
#else
|
|
#ifndef opcodeE8_B
|
|
fill_to(address)
|
|
#define opcodeE8_B eval($)
|
|
;add sp,N
|
|
ex af,af'
|
|
ld l,b
|
|
ld a,l
|
|
rla
|
|
sbc a,a
|
|
ld h,a
|
|
ex de,hl
|
|
add iy,de
|
|
ex de,hl
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $E9
|
|
#ifndef opcodeE9
|
|
fill_to(address)
|
|
#define opcodeE9 eval($)
|
|
;jp (hl)
|
|
exx
|
|
ld sp,hl
|
|
exx
|
|
NEXT_INT
|
|
#else
|
|
#ifndef opcodeE9_B
|
|
fill_to(address)
|
|
#define opcodeE9_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $EA
|
|
#ifndef opcodeEA
|
|
fill_to(address)
|
|
#define opcodeEA eval($)
|
|
;ld (NN),a
|
|
ex af,af'
|
|
pop hl
|
|
bit 7,h
|
|
jr z,_
|
|
ex af,af'
|
|
ld (hl),a
|
|
NEXT
|
|
_
|
|
ex af,af'
|
|
ld l,a
|
|
ex af,af'
|
|
jp memcontrol
|
|
#else
|
|
#ifndef opcodeEA_B
|
|
fill_to(address)
|
|
#define opcodeEA_B eval($)
|
|
;ld (NN),a
|
|
ex af,af'
|
|
pop hl
|
|
ld a,l
|
|
ld l,b
|
|
ld b,h
|
|
ld h,a
|
|
rla
|
|
jr nc,_
|
|
ex af,af'
|
|
ld (hl),a
|
|
NEXT_B
|
|
_
|
|
dec sp
|
|
ex af,af'
|
|
ld l,a
|
|
ex af,af'
|
|
jp memcontrol
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $EB
|
|
#ifndef opcodeEB
|
|
fill_to(address)
|
|
#define opcodeEB eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeEB_B
|
|
fill_to(address)
|
|
#define opcodeEB_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $EC
|
|
#ifndef opcodeEC
|
|
fill_to(address)
|
|
#define opcodeEC eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeEC_B
|
|
fill_to(address)
|
|
#define opcodeEC_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $ED
|
|
#ifndef opcodeED
|
|
fill_to(address)
|
|
#define opcodeED eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeED_B
|
|
fill_to(address)
|
|
#define opcodeED_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $EE
|
|
#ifndef opcodeEE
|
|
fill_to(address)
|
|
#define opcodeEE eval($)
|
|
;xor N
|
|
pop hl
|
|
xor l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeEE_B
|
|
fill_to(address)
|
|
#define opcodeEE_B eval($)
|
|
;xor N
|
|
xor b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $EF
|
|
#ifndef opcodeEF
|
|
fill_to(address)
|
|
#define opcodeEF eval($)
|
|
;rst 28h
|
|
ld hl,$28
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeEF_B
|
|
fill_to(address)
|
|
#define opcodeEF_B eval($)
|
|
;rst 28h
|
|
dec sp
|
|
ld hl,$28
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F0
|
|
#ifndef opcodeF0
|
|
fill_to(address)
|
|
#define opcodeF0 eval($)
|
|
;ld a,($FF00+N)
|
|
pop hl
|
|
ld b,h
|
|
ld h,$FF
|
|
ld a,(hl)
|
|
NEXT_B
|
|
#else
|
|
#ifndef opcodeF0_B
|
|
fill_to(address)
|
|
#define opcodeF0_B eval($)
|
|
;ld a,($FF00+N)
|
|
ld l,b
|
|
ld h,$FF
|
|
ld a,(hl)
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F1
|
|
#ifndef opcodeF1
|
|
fill_to(address)
|
|
#define opcodeF1 eval($)
|
|
;pop af
|
|
ld hl,0
|
|
add hl,sp
|
|
ld sp,iy
|
|
inc iy
|
|
inc iy
|
|
pop af
|
|
ld sp,hl
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeF1_B
|
|
fill_to(address)
|
|
#define opcodeF1_B eval($)
|
|
;pop af
|
|
ld hl,0
|
|
add hl,sp
|
|
ld sp,iy
|
|
inc iy
|
|
inc iy
|
|
pop af
|
|
ld sp,hl
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F2
|
|
#ifndef opcodeF2
|
|
fill_to(address)
|
|
#define opcodeF2 eval($)
|
|
;ld a,($FF00+C)
|
|
ex af,af'
|
|
exx
|
|
ld a,c
|
|
exx
|
|
ld l,a
|
|
ld h,$FF
|
|
ex af,af'
|
|
ld a,(hl)
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeF2_B
|
|
fill_to(address)
|
|
#define opcodeF2_B eval($)
|
|
;ld a,($FF00+C)
|
|
ex af,af'
|
|
exx
|
|
ld a,c
|
|
exx
|
|
ld l,a
|
|
ld h,$FF
|
|
ex af,af'
|
|
ld a,(hl)
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F3
|
|
#ifndef opcodeF3
|
|
fill_to(address)
|
|
#define opcodeF3 eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeF3_B
|
|
fill_to(address)
|
|
#define opcodeF3_B eval($)
|
|
;di
|
|
ex af,af'
|
|
xor a
|
|
ld (intstatus),a
|
|
ex af,af'
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F4
|
|
#ifndef opcodeF4
|
|
fill_to(address)
|
|
#define opcodeF4 eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeF4_B
|
|
fill_to(address)
|
|
#define opcodeF4_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F5
|
|
#ifndef opcodeF5
|
|
fill_to(address)
|
|
#define opcodeF5 eval($)
|
|
;push af
|
|
ld (_+1),sp
|
|
ld sp,iy
|
|
dec iy
|
|
dec iy
|
|
push af
|
|
_
|
|
ld sp,0
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeF5_B
|
|
fill_to(address)
|
|
#define opcodeF5_B eval($)
|
|
;push af
|
|
ld (_+1),sp
|
|
ld sp,iy
|
|
dec iy
|
|
dec iy
|
|
push af
|
|
_
|
|
ld sp,0
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F6
|
|
#ifndef opcodeF6
|
|
fill_to(address)
|
|
#define opcodeF6 eval($)
|
|
;or N
|
|
pop hl
|
|
or l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeF6_B
|
|
fill_to(address)
|
|
#define opcodeF6_B eval($)
|
|
;or N
|
|
or b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F7
|
|
#ifndef opcodeF7
|
|
fill_to(address)
|
|
#define opcodeF7 eval($)
|
|
;rst 30h
|
|
ld hl,$30
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeF7_B
|
|
fill_to(address)
|
|
#define opcodeF7_B eval($)
|
|
;rst 30h
|
|
dec sp
|
|
ld hl,$30
|
|
jp do_call
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F8
|
|
#ifndef opcodeF8
|
|
fill_to(address)
|
|
#define opcodeF8 eval($)
|
|
;ld hl,sp+N
|
|
ex af,af'
|
|
ld hl,1
|
|
add hl,sp
|
|
exx
|
|
pop hl
|
|
ld a,l
|
|
rla
|
|
sbc a,a
|
|
ld h,a
|
|
ld sp,iy
|
|
add hl,sp
|
|
exx
|
|
ld sp,hl
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeF8_B
|
|
fill_to(address)
|
|
#define opcodeF8_B eval($)
|
|
;ld hl,sp+N
|
|
ex af,af'
|
|
ld hl,0
|
|
add hl,sp
|
|
ld a,b
|
|
exx
|
|
ld l,a
|
|
rla
|
|
sbc a,a
|
|
ld h,a
|
|
ld sp,iy
|
|
add hl,sp
|
|
exx
|
|
ld sp,hl
|
|
ex af,af'
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $F9
|
|
#ifndef opcodeF9
|
|
fill_to(address)
|
|
#define opcodeF9 eval($)
|
|
;ld sp,hl
|
|
exx
|
|
ex de,hl
|
|
ld iyh,d
|
|
ld iyl,e
|
|
ex de,hl
|
|
exx
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeF9_B
|
|
fill_to(address)
|
|
#define opcodeF9_B eval($)
|
|
;ld sp,hl
|
|
exx
|
|
ex de,hl
|
|
ld iyh,d
|
|
ld iyl,e
|
|
ex de,hl
|
|
exx
|
|
NEXT_B
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $FA
|
|
#ifndef opcodeFA
|
|
fill_to(address)
|
|
#define opcodeFA eval($)
|
|
;ld a,(NN)
|
|
pop hl
|
|
ld a,(hl)
|
|
NEXT
|
|
#else
|
|
#ifndef opcodeFA_B
|
|
fill_to(address)
|
|
#define opcodeFA_B eval($)
|
|
;ld a,(NN)
|
|
dec sp
|
|
pop hl
|
|
ld a,(hl)
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $FB
|
|
#ifndef opcodeFB
|
|
fill_to(address)
|
|
#define opcodeFB eval($)
|
|
;ei
|
|
ex af,af'
|
|
ld a,1
|
|
ld (intstatus),a
|
|
check_ints_2:
|
|
ld hl,0
|
|
add hl,sp
|
|
ld sp,mystack
|
|
push hl
|
|
jp check_ints
|
|
#else
|
|
#ifndef opcodeFB_B
|
|
fill_to(address)
|
|
#define opcodeFB_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $FC
|
|
#ifndef opcodeFC
|
|
fill_to(address)
|
|
#define opcodeFC eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeFC_B
|
|
fill_to(address)
|
|
#define opcodeFC_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $FD
|
|
#ifndef opcodeFD
|
|
fill_to(address)
|
|
#define opcodeFD eval($)
|
|
;empty
|
|
#else
|
|
#ifndef opcodeFD_B
|
|
fill_to(address)
|
|
#define opcodeFD_B eval($)
|
|
;empty
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $FE
|
|
#ifndef opcodeFE
|
|
fill_to(address)
|
|
#define opcodeFE eval($)
|
|
;cp N
|
|
pop hl
|
|
cp l
|
|
;NEXT_H
|
|
ld l,h ;4cc
|
|
ld h,e ;8cc
|
|
ld h,(hl) ;15cc
|
|
jp (hl) ;19cc
|
|
#else
|
|
#ifndef opcodeFE_B
|
|
fill_to(address)
|
|
#define opcodeFE_B eval($)
|
|
;cp N
|
|
cp b
|
|
NEXT
|
|
#else
|
|
#define address eval(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if address&$FF == $FF
|
|
#ifndef opcodeFF
|
|
fill_to(address)
|
|
#define opcodeFF eval($)
|
|
;rst 38h
|
|
ld hl,$38
|
|
jp do_call
|
|
#else
|
|
#ifndef opcodeFF_B
|
|
fill_to(address)
|
|
#define opcodeFF_B eval($)
|
|
;rst 38h
|
|
dec sp
|
|
ld hl,$38
|
|
jp do_call
|
|
#else
|
|
#if address-$ < 256
|
|
insert_op(address+1)
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endmacro
|
|
|
|
#macro fill_to(address)
|
|
#if address == ($+1)
|
|
.db $FD
|
|
#else
|
|
#if address == ($+2)
|
|
.db $FD,$FD
|
|
#else
|
|
#if address > ($+2)
|
|
rst 18h
|
|
.db address-$-1
|
|
#define bytes_skipped eval(bytes_skipped+address-$)
|
|
.org address
|
|
#else
|
|
#if address < $
|
|
.echo "ERROR: NEGATIVE FILL AT ",$," TO ",address
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
;.block address - $
|
|
#endmacro
|
|
|
|
#macro insert_opcodes(howmany)
|
|
#if howmany > 0
|
|
insert_op($)
|
|
insert_opcodes(howmany-1)
|
|
#endif
|
|
#endmacro
|
|
|
|
page3code:
|
|
.org $E000
|
|
opcodetable:
|
|
.db opcode00 >> 8
|
|
.db opcode01 >> 8
|
|
.db opcode02 >> 8
|
|
.db opcode03 >> 8
|
|
.db opcode04 >> 8
|
|
.db opcode05 >> 8
|
|
.db opcode06 >> 8
|
|
.db opcode07 >> 8
|
|
.db opcode08 >> 8
|
|
.db opcode09 >> 8
|
|
.db opcode0A >> 8
|
|
.db opcode0B >> 8
|
|
.db opcode0C >> 8
|
|
.db opcode0D >> 8
|
|
.db opcode0E >> 8
|
|
.db opcode0F >> 8
|
|
.db opcode10 >> 8
|
|
.db opcode11 >> 8
|
|
.db opcode12 >> 8
|
|
.db opcode13 >> 8
|
|
.db opcode14 >> 8
|
|
.db opcode15 >> 8
|
|
.db opcode16 >> 8
|
|
.db opcode17 >> 8
|
|
.db opcode18 >> 8
|
|
.db opcode19 >> 8
|
|
.db opcode1A >> 8
|
|
.db opcode1B >> 8
|
|
.db opcode1C >> 8
|
|
.db opcode1D >> 8
|
|
.db opcode1E >> 8
|
|
.db opcode1F >> 8
|
|
.db opcode20 >> 8
|
|
.db opcode21 >> 8
|
|
.db opcode22 >> 8
|
|
.db opcode23 >> 8
|
|
.db opcode24 >> 8
|
|
.db opcode25 >> 8
|
|
.db opcode26 >> 8
|
|
.db opcode27 >> 8
|
|
.db opcode28 >> 8
|
|
.db opcode29 >> 8
|
|
.db opcode2A >> 8
|
|
.db opcode2B >> 8
|
|
.db opcode2C >> 8
|
|
.db opcode2D >> 8
|
|
.db opcode2E >> 8
|
|
.db opcode2F >> 8
|
|
.db opcode30 >> 8
|
|
.db opcode31 >> 8
|
|
.db opcode32 >> 8
|
|
.db opcode33 >> 8
|
|
.db opcode34 >> 8
|
|
.db opcode35 >> 8
|
|
.db opcode36 >> 8
|
|
.db opcode37 >> 8
|
|
.db opcode38 >> 8
|
|
.db opcode39 >> 8
|
|
.db opcode3A >> 8
|
|
.db opcode3B >> 8
|
|
.db opcode3C >> 8
|
|
.db opcode3D >> 8
|
|
.db opcode3E >> 8
|
|
.db opcode3F >> 8
|
|
.db opcode40 >> 8
|
|
.db opcode41 >> 8
|
|
.db opcode42 >> 8
|
|
.db opcode43 >> 8
|
|
.db opcode44 >> 8
|
|
.db opcode45 >> 8
|
|
.db opcode46 >> 8
|
|
.db opcode47 >> 8
|
|
.db opcode48 >> 8
|
|
.db opcode49 >> 8
|
|
.db opcode4A >> 8
|
|
.db opcode4B >> 8
|
|
.db opcode4C >> 8
|
|
.db opcode4D >> 8
|
|
.db opcode4E >> 8
|
|
.db opcode4F >> 8
|
|
.db opcode50 >> 8
|
|
.db opcode51 >> 8
|
|
.db opcode52 >> 8
|
|
.db opcode53 >> 8
|
|
.db opcode54 >> 8
|
|
.db opcode55 >> 8
|
|
.db opcode56 >> 8
|
|
.db opcode57 >> 8
|
|
.db opcode58 >> 8
|
|
.db opcode59 >> 8
|
|
.db opcode5A >> 8
|
|
.db opcode5B >> 8
|
|
.db opcode5C >> 8
|
|
.db opcode5D >> 8
|
|
.db opcode5E >> 8
|
|
.db opcode5F >> 8
|
|
.db opcode60 >> 8
|
|
.db opcode61 >> 8
|
|
.db opcode62 >> 8
|
|
.db opcode63 >> 8
|
|
.db opcode64 >> 8
|
|
.db opcode65 >> 8
|
|
.db opcode66 >> 8
|
|
.db opcode67 >> 8
|
|
.db opcode68 >> 8
|
|
.db opcode69 >> 8
|
|
.db opcode6A >> 8
|
|
.db opcode6B >> 8
|
|
.db opcode6C >> 8
|
|
.db opcode6D >> 8
|
|
.db opcode6E >> 8
|
|
.db opcode6F >> 8
|
|
.db opcode70 >> 8
|
|
.db opcode71 >> 8
|
|
.db opcode72 >> 8
|
|
.db opcode73 >> 8
|
|
.db opcode74 >> 8
|
|
.db opcode75 >> 8
|
|
.db opcode76 >> 8
|
|
.db opcode77 >> 8
|
|
.db opcode78 >> 8
|
|
.db opcode79 >> 8
|
|
.db opcode7A >> 8
|
|
.db opcode7B >> 8
|
|
.db opcode7C >> 8
|
|
.db opcode7D >> 8
|
|
.db opcode7E >> 8
|
|
.db opcode7F >> 8
|
|
.db opcode80 >> 8
|
|
.db opcode81 >> 8
|
|
.db opcode82 >> 8
|
|
.db opcode83 >> 8
|
|
.db opcode84 >> 8
|
|
.db opcode85 >> 8
|
|
.db opcode86 >> 8
|
|
.db opcode87 >> 8
|
|
.db opcode88 >> 8
|
|
.db opcode89 >> 8
|
|
.db opcode8A >> 8
|
|
.db opcode8B >> 8
|
|
.db opcode8C >> 8
|
|
.db opcode8D >> 8
|
|
.db opcode8E >> 8
|
|
.db opcode8F >> 8
|
|
.db opcode90 >> 8
|
|
.db opcode91 >> 8
|
|
.db opcode92 >> 8
|
|
.db opcode93 >> 8
|
|
.db opcode94 >> 8
|
|
.db opcode95 >> 8
|
|
.db opcode96 >> 8
|
|
.db opcode97 >> 8
|
|
.db opcode98 >> 8
|
|
.db opcode99 >> 8
|
|
.db opcode9A >> 8
|
|
.db opcode9B >> 8
|
|
.db opcode9C >> 8
|
|
.db opcode9D >> 8
|
|
.db opcode9E >> 8
|
|
.db opcode9F >> 8
|
|
.db opcodeA0 >> 8
|
|
.db opcodeA1 >> 8
|
|
.db opcodeA2 >> 8
|
|
.db opcodeA3 >> 8
|
|
.db opcodeA4 >> 8
|
|
.db opcodeA5 >> 8
|
|
.db opcodeA6 >> 8
|
|
.db opcodeA7 >> 8
|
|
.db opcodeA8 >> 8
|
|
.db opcodeA9 >> 8
|
|
.db opcodeAA >> 8
|
|
.db opcodeAB >> 8
|
|
.db opcodeAC >> 8
|
|
.db opcodeAD >> 8
|
|
.db opcodeAE >> 8
|
|
.db opcodeAF >> 8
|
|
.db opcodeB0 >> 8
|
|
.db opcodeB1 >> 8
|
|
.db opcodeB2 >> 8
|
|
.db opcodeB3 >> 8
|
|
.db opcodeB4 >> 8
|
|
.db opcodeB5 >> 8
|
|
.db opcodeB6 >> 8
|
|
.db opcodeB7 >> 8
|
|
.db opcodeB8 >> 8
|
|
.db opcodeB9 >> 8
|
|
.db opcodeBA >> 8
|
|
.db opcodeBB >> 8
|
|
.db opcodeBC >> 8
|
|
.db opcodeBD >> 8
|
|
.db opcodeBE >> 8
|
|
.db opcodeBF >> 8
|
|
.db opcodeC0 >> 8
|
|
.db opcodeC1 >> 8
|
|
.db opcodeC2 >> 8
|
|
.db opcodeC3 >> 8
|
|
.db opcodeC4 >> 8
|
|
.db opcodeC5 >> 8
|
|
.db opcodeC6 >> 8
|
|
.db opcodeC7 >> 8
|
|
.db opcodeC8 >> 8
|
|
.db opcodeC9 >> 8
|
|
.db opcodeCA >> 8
|
|
.db opcodeCB >> 8
|
|
.db opcodeCC >> 8
|
|
.db opcodeCD >> 8
|
|
.db opcodeCE >> 8
|
|
.db opcodeCF >> 8
|
|
.db opcodeD0 >> 8
|
|
.db opcodeD1 >> 8
|
|
.db opcodeD2 >> 8
|
|
.db opcodeD3 >> 8
|
|
.db opcodeD4 >> 8
|
|
.db opcodeD5 >> 8
|
|
.db opcodeD6 >> 8
|
|
.db opcodeD7 >> 8
|
|
.db opcodeD8 >> 8
|
|
.db opcodeD9 >> 8
|
|
.db opcodeDA >> 8
|
|
.db opcodeDB >> 8
|
|
.db opcodeDC >> 8
|
|
.db opcodeDD >> 8
|
|
.db opcodeDE >> 8
|
|
.db opcodeDF >> 8
|
|
.db opcodeE0 >> 8
|
|
.db opcodeE1 >> 8
|
|
.db opcodeE2 >> 8
|
|
.db opcodeE3 >> 8
|
|
.db opcodeE4 >> 8
|
|
.db opcodeE5 >> 8
|
|
.db opcodeE6 >> 8
|
|
.db opcodeE7 >> 8
|
|
.db opcodeE8 >> 8
|
|
.db opcodeE9 >> 8
|
|
.db opcodeEA >> 8
|
|
.db opcodeEB >> 8
|
|
.db opcodeEC >> 8
|
|
.db opcodeED >> 8
|
|
.db opcodeEE >> 8
|
|
.db opcodeEF >> 8
|
|
.db opcodeF0 >> 8
|
|
.db opcodeF1 >> 8
|
|
.db opcodeF2 >> 8
|
|
.db opcodeF3 >> 8
|
|
.db opcodeF4 >> 8
|
|
.db opcodeF5 >> 8
|
|
.db opcodeF6 >> 8
|
|
.db opcodeF7 >> 8
|
|
.db opcodeF8 >> 8
|
|
.db opcodeF9 >> 8
|
|
.db opcodeFA >> 8
|
|
.db opcodeFB >> 8
|
|
.db opcodeFC >> 8
|
|
.db opcodeFD >> 8
|
|
.db opcodeFE >> 8
|
|
.db opcodeFF >> 8
|
|
|
|
opcodetable_B:
|
|
.db opcode00_B >> 8
|
|
.db opcode01_B >> 8
|
|
.db opcode02_B >> 8
|
|
.db opcode03_B >> 8
|
|
.db opcode04_B >> 8
|
|
.db opcode05_B >> 8
|
|
.db opcode06_B >> 8
|
|
.db opcode07_B >> 8
|
|
.db opcode08_B >> 8
|
|
.db opcode09_B >> 8
|
|
.db opcode0A_B >> 8
|
|
.db opcode0B_B >> 8
|
|
.db opcode0C_B >> 8
|
|
.db opcode0D_B >> 8
|
|
.db opcode0E_B >> 8
|
|
.db opcode0F_B >> 8
|
|
.db opcode10_B >> 8
|
|
.db opcode11_B >> 8
|
|
.db opcode12_B >> 8
|
|
.db opcode13_B >> 8
|
|
.db opcode14_B >> 8
|
|
.db opcode15_B >> 8
|
|
.db opcode16_B >> 8
|
|
.db opcode17_B >> 8
|
|
.db opcode18_B >> 8
|
|
.db opcode19_B >> 8
|
|
.db opcode1A_B >> 8
|
|
.db opcode1B_B >> 8
|
|
.db opcode1C_B >> 8
|
|
.db opcode1D_B >> 8
|
|
.db opcode1E_B >> 8
|
|
.db opcode1F_B >> 8
|
|
.db opcode20_B >> 8
|
|
.db opcode21_B >> 8
|
|
.db opcode22_B >> 8
|
|
.db opcode23_B >> 8
|
|
.db opcode24_B >> 8
|
|
.db opcode25_B >> 8
|
|
.db opcode26_B >> 8
|
|
.db opcode27_B >> 8
|
|
.db opcode28_B >> 8
|
|
.db opcode29_B >> 8
|
|
.db opcode2A_B >> 8
|
|
.db opcode2B_B >> 8
|
|
.db opcode2C_B >> 8
|
|
.db opcode2D_B >> 8
|
|
.db opcode2E_B >> 8
|
|
.db opcode2F_B >> 8
|
|
.db opcode30_B >> 8
|
|
.db opcode31_B >> 8
|
|
.db opcode32_B >> 8
|
|
.db opcode33_B >> 8
|
|
.db opcode34_B >> 8
|
|
.db opcode35_B >> 8
|
|
.db opcode36_B >> 8
|
|
.db opcode37_B >> 8
|
|
.db opcode38_B >> 8
|
|
.db opcode39_B >> 8
|
|
.db opcode3A_B >> 8
|
|
.db opcode3B_B >> 8
|
|
.db opcode3C_B >> 8
|
|
.db opcode3D_B >> 8
|
|
.db opcode3E_B >> 8
|
|
.db opcode3F_B >> 8
|
|
.db opcode40_B >> 8
|
|
.db opcode41_B >> 8
|
|
.db opcode42_B >> 8
|
|
.db opcode43_B >> 8
|
|
.db opcode44_B >> 8
|
|
.db opcode45_B >> 8
|
|
.db opcode46_B >> 8
|
|
.db opcode47_B >> 8
|
|
.db opcode48_B >> 8
|
|
.db opcode49_B >> 8
|
|
.db opcode4A_B >> 8
|
|
.db opcode4B_B >> 8
|
|
.db opcode4C_B >> 8
|
|
.db opcode4D_B >> 8
|
|
.db opcode4E_B >> 8
|
|
.db opcode4F_B >> 8
|
|
.db opcode50_B >> 8
|
|
.db opcode51_B >> 8
|
|
.db opcode52_B >> 8
|
|
.db opcode53_B >> 8
|
|
.db opcode54_B >> 8
|
|
.db opcode55_B >> 8
|
|
.db opcode56_B >> 8
|
|
.db opcode57_B >> 8
|
|
.db opcode58_B >> 8
|
|
.db opcode59_B >> 8
|
|
.db opcode5A_B >> 8
|
|
.db opcode5B_B >> 8
|
|
.db opcode5C_B >> 8
|
|
.db opcode5D_B >> 8
|
|
.db opcode5E_B >> 8
|
|
.db opcode5F_B >> 8
|
|
.db opcode60_B >> 8
|
|
.db opcode61_B >> 8
|
|
.db opcode62_B >> 8
|
|
.db opcode63_B >> 8
|
|
.db opcode64_B >> 8
|
|
.db opcode65_B >> 8
|
|
.db opcode66_B >> 8
|
|
.db opcode67_B >> 8
|
|
.db opcode68_B >> 8
|
|
.db opcode69_B >> 8
|
|
.db opcode6A_B >> 8
|
|
.db opcode6B_B >> 8
|
|
.db opcode6C_B >> 8
|
|
.db opcode6D_B >> 8
|
|
.db opcode6E_B >> 8
|
|
.db opcode6F_B >> 8
|
|
.db opcode70_B >> 8
|
|
.db opcode71_B >> 8
|
|
.db opcode72_B >> 8
|
|
.db opcode73_B >> 8
|
|
.db opcode74_B >> 8
|
|
.db opcode75_B >> 8
|
|
.db opcode76_B >> 8
|
|
.db opcode77_B >> 8
|
|
.db opcode78_B >> 8
|
|
.db opcode79_B >> 8
|
|
.db opcode7A_B >> 8
|
|
.db opcode7B_B >> 8
|
|
.db opcode7C_B >> 8
|
|
.db opcode7D_B >> 8
|
|
.db opcode7E_B >> 8
|
|
.db opcode7F_B >> 8
|
|
.db opcode80_B >> 8
|
|
.db opcode81_B >> 8
|
|
.db opcode82_B >> 8
|
|
.db opcode83_B >> 8
|
|
.db opcode84_B >> 8
|
|
.db opcode85_B >> 8
|
|
.db opcode86_B >> 8
|
|
.db opcode87_B >> 8
|
|
.db opcode88_B >> 8
|
|
.db opcode89_B >> 8
|
|
.db opcode8A_B >> 8
|
|
.db opcode8B_B >> 8
|
|
.db opcode8C_B >> 8
|
|
.db opcode8D_B >> 8
|
|
.db opcode8E_B >> 8
|
|
.db opcode8F_B >> 8
|
|
.db opcode90_B >> 8
|
|
.db opcode91_B >> 8
|
|
.db opcode92_B >> 8
|
|
.db opcode93_B >> 8
|
|
.db opcode94_B >> 8
|
|
.db opcode95_B >> 8
|
|
.db opcode96_B >> 8
|
|
.db opcode97_B >> 8
|
|
.db opcode98_B >> 8
|
|
.db opcode99_B >> 8
|
|
.db opcode9A_B >> 8
|
|
.db opcode9B_B >> 8
|
|
.db opcode9C_B >> 8
|
|
.db opcode9D_B >> 8
|
|
.db opcode9E_B >> 8
|
|
.db opcode9F_B >> 8
|
|
.db opcodeA0_B >> 8
|
|
.db opcodeA1_B >> 8
|
|
.db opcodeA2_B >> 8
|
|
.db opcodeA3_B >> 8
|
|
.db opcodeA4_B >> 8
|
|
.db opcodeA5_B >> 8
|
|
.db opcodeA6_B >> 8
|
|
.db opcodeA7_B >> 8
|
|
.db opcodeA8_B >> 8
|
|
.db opcodeA9_B >> 8
|
|
.db opcodeAA_B >> 8
|
|
.db opcodeAB_B >> 8
|
|
.db opcodeAC_B >> 8
|
|
.db opcodeAD_B >> 8
|
|
.db opcodeAE_B >> 8
|
|
.db opcodeAF_B >> 8
|
|
.db opcodeB0_B >> 8
|
|
.db opcodeB1_B >> 8
|
|
.db opcodeB2_B >> 8
|
|
.db opcodeB3_B >> 8
|
|
.db opcodeB4_B >> 8
|
|
.db opcodeB5_B >> 8
|
|
.db opcodeB6_B >> 8
|
|
.db opcodeB7_B >> 8
|
|
.db opcodeB8_B >> 8
|
|
.db opcodeB9_B >> 8
|
|
.db opcodeBA_B >> 8
|
|
.db opcodeBB_B >> 8
|
|
.db opcodeBC_B >> 8
|
|
.db opcodeBD_B >> 8
|
|
.db opcodeBE_B >> 8
|
|
.db opcodeBF_B >> 8
|
|
.db opcodeC0_B >> 8
|
|
.db opcodeC1_B >> 8
|
|
.db opcodeC2_B >> 8
|
|
.db opcodeC3_B >> 8
|
|
.db opcodeC4_B >> 8
|
|
.db opcodeC5_B >> 8
|
|
.db opcodeC6_B >> 8
|
|
.db opcodeC7_B >> 8
|
|
.db opcodeC8_B >> 8
|
|
.db opcodeC9_B >> 8
|
|
.db opcodeCA_B >> 8
|
|
.db opcodeCB_B >> 8
|
|
.db opcodeCC_B >> 8
|
|
.db opcodeCD_B >> 8
|
|
.db opcodeCE_B >> 8
|
|
.db opcodeCF_B >> 8
|
|
.db opcodeD0_B >> 8
|
|
.db opcodeD1_B >> 8
|
|
.db opcodeD2_B >> 8
|
|
.db opcodeD3_B >> 8
|
|
.db opcodeD4_B >> 8
|
|
.db opcodeD5_B >> 8
|
|
.db opcodeD6_B >> 8
|
|
.db opcodeD7_B >> 8
|
|
.db opcodeD8_B >> 8
|
|
.db opcodeD9_B >> 8
|
|
.db opcodeDA_B >> 8
|
|
.db opcodeDB_B >> 8
|
|
.db opcodeDC_B >> 8
|
|
.db opcodeDD_B >> 8
|
|
.db opcodeDE_B >> 8
|
|
.db opcodeDF_B >> 8
|
|
.db opcodeE0_B >> 8
|
|
.db opcodeE1_B >> 8
|
|
.db opcodeE2_B >> 8
|
|
.db opcodeE3_B >> 8
|
|
.db opcodeE4_B >> 8
|
|
.db opcodeE5_B >> 8
|
|
.db opcodeE6_B >> 8
|
|
.db opcodeE7_B >> 8
|
|
.db opcodeE8_B >> 8
|
|
.db opcodeE9_B >> 8
|
|
.db opcodeEA_B >> 8
|
|
.db opcodeEB_B >> 8
|
|
.db opcodeEC_B >> 8
|
|
.db opcodeED_B >> 8
|
|
.db opcodeEE_B >> 8
|
|
.db opcodeEF_B >> 8
|
|
.db opcodeF0_B >> 8
|
|
.db opcodeF1_B >> 8
|
|
.db opcodeF2_B >> 8
|
|
.db opcodeF3_B >> 8
|
|
.db opcodeF4_B >> 8
|
|
.db opcodeF5_B >> 8
|
|
.db opcodeF6_B >> 8
|
|
.db opcodeF7_B >> 8
|
|
.db opcodeF8_B >> 8
|
|
.db opcodeF9_B >> 8
|
|
.db opcodeFA_B >> 8
|
|
.db opcodeFB_B >> 8
|
|
.db opcodeFC_B >> 8
|
|
.db opcodeFD_B >> 8
|
|
.db opcodeFE_B >> 8
|
|
.db opcodeFF_B >> 8
|
|
|
|
bitop_table:
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_swap_b & $FF
|
|
.db bitop_swap_c & $FF
|
|
.db bitop_swap_d & $FF
|
|
.db bitop_swap_e & $FF
|
|
.db bitop_swap_h & $FF
|
|
.db bitop_swap_l & $FF
|
|
.db bitop_swap_hl & $FF
|
|
.db bitop_swap_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_xf & $FF
|
|
.db bitop_a & $FF
|
|
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_x & $FF
|
|
.db bitop_a & $FF
|
|
|
|
;////////////////////////
|
|
;///// BIT SHIFTING /////
|
|
;////////////////////////
|
|
bitop_a:
|
|
ld (_+1),a
|
|
ex af,af'
|
|
_
|
|
rlc a
|
|
NEXT
|
|
|
|
bitop_x:
|
|
bitop_xf:
|
|
ld (_+1),a
|
|
ex af,af'
|
|
exx
|
|
_
|
|
rlc b
|
|
exx
|
|
NEXT
|
|
|
|
bitop_swap_b:
|
|
exx
|
|
ld a,b
|
|
rrca \ rrca \ rrca \ rrca
|
|
ld b,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_c:
|
|
exx
|
|
ld a,c
|
|
rrca \ rrca \ rrca \ rrca
|
|
ld c,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_d:
|
|
exx
|
|
ld a,d
|
|
rrca \ rrca \ rrca \ rrca
|
|
ld d,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_e:
|
|
exx
|
|
ld a,e
|
|
rrca \ rrca \ rrca \ rrca
|
|
ld e,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_h:
|
|
exx
|
|
ld a,h
|
|
rrca \ rrca \ rrca \ rrca
|
|
ld h,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_l:
|
|
exx
|
|
ld a,l
|
|
rrca \ rrca \ rrca \ rrca
|
|
ld l,a
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_hl:
|
|
exx
|
|
ld a,(hl)
|
|
rrd
|
|
exx
|
|
ex af,af'
|
|
NEXT
|
|
|
|
bitop_swap_a:
|
|
ex af,af'
|
|
rrca \ rrca \ rrca \ rrca
|
|
NEXT
|
|
|
|
fill_to($E3CB)
|
|
bitcodes:
|
|
ex af,af'
|
|
dec sp
|
|
pop af
|
|
bitcodes_B:
|
|
ld l,a
|
|
dec h
|
|
ld l,(hl)
|
|
inc h
|
|
jp (hl)
|
|
|
|
fill_to($E3FB)
|
|
#define opcodeFB_B eval($)
|
|
;ei
|
|
dec sp
|
|
jp opcodeFB
|
|
|
|
opcodes_start:
|
|
insert_opcodes(512-27)
|
|
|
|
.echo "Opcode emulation size is ", $-opcodes_start
|
|
|
|
;Input: HL = address, A = LSB of address plus 1, Z = (LSB==$FF)
|
|
FIX_LBL
|
|
io_write:
|
|
ex af,af'
|
|
ld (hl),a
|
|
ex af,af'
|
|
jp z,check_ints_2
|
|
dec a
|
|
jp z,getkey
|
|
cp $0f
|
|
jp z,check_ints_2
|
|
cp $41
|
|
jr nz,_
|
|
res 0,(hl)
|
|
res 1,(hl)
|
|
ld a,(LY)
|
|
cp 144
|
|
jr c,end_io_write
|
|
set 0,(hl)
|
|
jr end_io_write
|
|
_
|
|
cp $46
|
|
jr nz,end_io_write
|
|
ld de,$fe00
|
|
ld h,(hl)
|
|
ld l,e
|
|
ld a,c
|
|
ld bc,$00a0
|
|
ldir
|
|
ld c,a
|
|
ld de,(opcodetable_B & $FF00) + (opcodetable >> 8)
|
|
end_io_write:
|
|
ex af,af'
|
|
NEXT
|
|
|
|
FIX_LBL
|
|
timer1:
|
|
ld a,2
|
|
out ($31),a
|
|
ld d,0
|
|
in a,($32)
|
|
ld e,a
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld hl,(chan3cnt)
|
|
add hl,de
|
|
jr nc,++_
|
|
ld hl,NR52_backup
|
|
bit 2,(hl)
|
|
jr z,_
|
|
ld a,(NR32)
|
|
and %01100000
|
|
jr z,_
|
|
ld l,soundOutputs+1 & $FF
|
|
ld a,(hl)
|
|
xor 2
|
|
ld (hl),a
|
|
_
|
|
ld hl,(chan3div)
|
|
bit 1,a
|
|
jr z,$+3
|
|
inc hl
|
|
res 0,l
|
|
_
|
|
ld (chan3cnt),hl
|
|
|
|
ld a,$FF
|
|
cp h
|
|
jr nz,_
|
|
xor l
|
|
_
|
|
ld b,a
|
|
|
|
ld hl,(chan4cnt)
|
|
add hl,de
|
|
jr nc,++_
|
|
ld hl,NR52_backup
|
|
bit 3,(hl)
|
|
jr z,_
|
|
ld l,soundOutputs & $FF
|
|
ld a,r
|
|
xor (hl)
|
|
and 1
|
|
xor (hl)
|
|
ld (hl),a
|
|
_
|
|
ld hl,(chan4div)
|
|
_
|
|
ld (chan4cnt),hl
|
|
|
|
ld a,$FF
|
|
cp h
|
|
jr nz,_
|
|
xor l
|
|
_
|
|
cp b
|
|
jr c,_
|
|
ld a,b
|
|
_
|
|
out ($32),a
|
|
|
|
ld hl,(soundOutputs)
|
|
ld a,h
|
|
xor l
|
|
ld (soundDiff1),a
|
|
ld (soundDiff2),a
|
|
bit 7,c
|
|
ld c,l
|
|
jr z,$+3
|
|
ld c,h
|
|
|
|
ld de,(opcodetable_B & $FF00) + (opcodetable >> 8)
|
|
ex af,af'
|
|
NEXT
|
|
|
|
FIX_LBL
|
|
timer2:
|
|
ld a,2
|
|
out ($34),a
|
|
ld d,0
|
|
in a,($35)
|
|
ld e,a
|
|
inc de
|
|
inc de
|
|
inc de
|
|
ld hl,(chan1cnt)
|
|
add hl,de
|
|
jr nc,++_
|
|
ld hl,NR52_backup
|
|
bit 0,(hl)
|
|
jr z,_
|
|
ld l,soundOutputs & $FF
|
|
ld a,(hl)
|
|
xor 2
|
|
ld (hl),a
|
|
bit 1,a
|
|
ld hl,(chan1div1)
|
|
jr nz,++_
|
|
_
|
|
ld hl,(chan1div0)
|
|
_
|
|
ld (chan1cnt),hl
|
|
|
|
ld a,$FF
|
|
cp h
|
|
jr nz,_
|
|
xor l
|
|
_
|
|
ld b,a
|
|
|
|
ld hl,(chan2cnt)
|
|
add hl,de
|
|
jr nc,++_
|
|
ld hl,NR52_backup
|
|
bit 1,(hl)
|
|
jr z,_
|
|
ld l,soundOutputs+1 & $FF
|
|
ld a,(hl)
|
|
xor 1
|
|
ld (hl),a
|
|
rra
|
|
ld hl,(chan2div1)
|
|
jr c,++_
|
|
_
|
|
ld hl,(chan2div0)
|
|
_
|
|
ld (chan2cnt),hl
|
|
|
|
ld a,$FF
|
|
cp h
|
|
jr nz,_
|
|
xor l
|
|
_
|
|
cp b
|
|
jr c,_
|
|
ld a,b
|
|
_
|
|
out ($35),a
|
|
|
|
ld hl,(soundOutputs)
|
|
ld a,h
|
|
xor l
|
|
ld (soundDiff1),a
|
|
ld (soundDiff2),a
|
|
bit 7,c
|
|
ld c,l
|
|
jr z,$+3
|
|
ld c,h
|
|
|
|
ld de,(opcodetable_B & $FF00) + (opcodetable >> 8)
|
|
ex af,af'
|
|
NEXT
|
|
|
|
FIX_LBL
|
|
irq_sound:
|
|
ex (sp),hl
|
|
ex af,af'
|
|
in a,(4)
|
|
rla
|
|
jr nc,_
|
|
sbc a,a
|
|
out ($37),a
|
|
ld a,c
|
|
soundDiff1 = $+1
|
|
xor 0
|
|
ld c,a
|
|
out (0),a
|
|
dec ixl
|
|
jr z,hardware
|
|
ex af,af'
|
|
NEXT
|
|
|
|
_
|
|
rla
|
|
jp c,timer2
|
|
rla
|
|
jp c,timer1
|
|
and %00100000
|
|
jp z,die
|
|
|
|
ld (_+1),sp
|
|
ld sp,mystack
|
|
ld a,3
|
|
out (6),a
|
|
call handleSound
|
|
ld a,(pageA)
|
|
out (6),a
|
|
_
|
|
ld sp,0
|
|
ex af,af'
|
|
jp opcode00
|
|
|
|
FIX_LBL
|
|
irq:
|
|
ex (sp),hl
|
|
ex af,af'
|
|
in a,(4)
|
|
rla
|
|
jp nc,die
|
|
|
|
FIX_LBL
|
|
hardware:
|
|
ld a,(STAT)
|
|
rrca
|
|
rrca
|
|
add a,a
|
|
rlca
|
|
jp pe,_
|
|
xor 3
|
|
ld (STAT),a
|
|
ld a,(channelSelect)
|
|
or a
|
|
ld a,2
|
|
ld ixl,a
|
|
jr nz,midscanline_continue
|
|
out ($37),a
|
|
out ($38),a
|
|
jr midscanline_continue
|
|
FIX_LBL
|
|
_
|
|
ld (STAT),a
|
|
ld hl,0
|
|
add hl,sp
|
|
ld sp,mystack
|
|
push hl
|
|
ld a,3
|
|
out (6),a
|
|
call hardwareflash
|
|
ld a,(pageA)
|
|
out (6),a
|
|
|
|
FIX_LBL
|
|
check_ints:
|
|
ld a,(intstatus)
|
|
or a
|
|
ld a,(IE)
|
|
ld hl,IF
|
|
jr z,no_interrupts
|
|
and (hl)
|
|
jr z,no_interrupts_3
|
|
rra
|
|
jr nc,_
|
|
res 0,(hl)
|
|
ld l,$40
|
|
jr do_interrupt
|
|
_
|
|
rra
|
|
jr nc,_
|
|
res 1,(hl)
|
|
ld l,$48
|
|
jr do_interrupt
|
|
_
|
|
rra
|
|
jr nc,_
|
|
res 2,(hl)
|
|
ld l,$50
|
|
jr do_interrupt
|
|
_
|
|
rra
|
|
jr nc,no_interrupts
|
|
res 3,(hl)
|
|
ld l,$58
|
|
do_interrupt:
|
|
xor a
|
|
ld h,a
|
|
ld (intstatus),a
|
|
ex (sp),hl
|
|
ld a,(hl)
|
|
cp $76 ;halt
|
|
jr nz,_
|
|
inc hl
|
|
_
|
|
dec iy
|
|
ld (iy),h
|
|
dec iy
|
|
ld (iy),l
|
|
pop hl
|
|
ld sp,hl
|
|
ex af,af'
|
|
NEXT
|
|
no_interrupts:
|
|
and (hl)
|
|
no_interrupts_3:
|
|
pop hl
|
|
jr z,no_interrupts_2
|
|
ld a,(hl)
|
|
cp $76
|
|
jr nz,no_interrupts_2
|
|
inc hl
|
|
no_interrupts_2:
|
|
ld sp,hl
|
|
midscanline_continue:
|
|
ex af,af'
|
|
NEXT
|
|
|
|
FIX_LBL
|
|
getkey:
|
|
;Writing to $ff00, so gimmeh the keys
|
|
ld a,(hl)
|
|
ld hl,(keys)
|
|
or %00001111
|
|
bit 4,a
|
|
jr nz,$+3
|
|
and l
|
|
bit 5,a
|
|
jr nz,$+3
|
|
and h
|
|
ld (P1),a
|
|
ex af,af'
|
|
jp opcode00
|
|
|
|
FIX_LBL
|
|
memcontrol:
|
|
ld a,(mbc)
|
|
dec a
|
|
jp z,dombc2
|
|
dec a
|
|
jp z,dombc3
|
|
dec a
|
|
jp z,dombc5
|
|
ld a,h
|
|
and %01100000
|
|
cp $60
|
|
jr nz,_
|
|
ld a,l
|
|
ld hl,mbcstatus
|
|
res 0,(hl)
|
|
rra
|
|
jr nc,$+4
|
|
set 0,(hl)
|
|
ex af,af'
|
|
jp opcode00
|
|
_
|
|
cp $20
|
|
jr nz,_
|
|
in a,(6)
|
|
ld h,a
|
|
ld a,(basepage)
|
|
sub h
|
|
and %11100000
|
|
ld h,a
|
|
ld a,l
|
|
and %00011111
|
|
jr nz,$+3
|
|
inc a
|
|
or h
|
|
jr setcartrom
|
|
_
|
|
cp $40
|
|
jr nz,++_
|
|
ld a,(mbcstatus)
|
|
rra
|
|
jr c,setcartram
|
|
in a,(6)
|
|
ld h,a
|
|
ld a,(basepage)
|
|
sub h
|
|
ld h,a
|
|
ld a,l
|
|
rrca
|
|
rrca
|
|
rrca
|
|
xor h
|
|
and %01100000
|
|
xor h
|
|
jr nz,setcartrom
|
|
inc a
|
|
jr setcartrom
|
|
|
|
FIX_LBL
|
|
dombc5:
|
|
ld a,h
|
|
and %01100000
|
|
cp $20
|
|
jr nz,_
|
|
ld a,l
|
|
and %01111111
|
|
jr z,setcartrom_abs
|
|
setcartrom:
|
|
ld h,a
|
|
ld a,(basepage)
|
|
sub h
|
|
setcartrom_abs:
|
|
ld (pageA),a
|
|
out (6),a
|
|
ex af,af'
|
|
jp opcode00
|
|
|
|
FIX_LBL
|
|
dombc3:
|
|
ld a,h
|
|
and %01100000
|
|
cp $20
|
|
jr nz,_
|
|
ld a,l
|
|
and %01111111
|
|
jr nz,setcartrom
|
|
inc a
|
|
jr setcartrom
|
|
_
|
|
cp $40
|
|
jr nz,_
|
|
setcartram:
|
|
ld a,l
|
|
and 3
|
|
ld hl,maxRamPageUsed
|
|
cp (hl)
|
|
jr c,$+3
|
|
ld (hl),a
|
|
add a,$81
|
|
ld (pageB),a
|
|
out (7),a
|
|
; See if accessing unavailable page
|
|
inc l
|
|
cp (hl)
|
|
jp nc,die
|
|
_
|
|
ex af,af'
|
|
jp opcode00
|
|
|
|
FIX_LBL
|
|
dombc2:
|
|
ld a,h
|
|
and %01100001
|
|
cp %00100001
|
|
jr nz,-_
|
|
ld a,l
|
|
and %00001111
|
|
jr nz,setcartrom
|
|
inc a
|
|
jr setcartrom
|
|
|
|
decompressRAM:
|
|
ld a,(basepage)
|
|
out (6),a
|
|
call decompress_page3code
|
|
ld a,3
|
|
out (6),a
|
|
ret
|
|
|
|
FIX_LBL
|
|
invalid_chk:
|
|
ex af,af'
|
|
ld hl,-$0053
|
|
add hl,sp
|
|
ld a,h
|
|
or a
|
|
jr nz,diewait
|
|
ld a,l
|
|
cp 2
|
|
jr nc,diewait
|
|
ld sp,TimerInterruptReplacement + 1
|
|
add hl,sp
|
|
ld sp,hl
|
|
ex af,af'
|
|
jp opcode00
|
|
|
|
diewait:
|
|
in a,(4)
|
|
bit 3,a
|
|
jr nz,diewait
|
|
jp die
|
|
|
|
.echo "CPU emulator: ", $-$E000, " used"
|
|
.echo "CPU emulator: ", $FC00-$, " left"
|
|
|
|
fill_to($FC00)
|
|
im2lut:
|
|
invalid:
|
|
fill_to($FC00+257)
|
|
jp invalid_chk
|
|
|
|
FIX_LBL
|
|
die:
|
|
ld a,(basepage)
|
|
out (6),a
|
|
jp Recover
|
|
|
|
FIX_LBL
|
|
irqflash:
|
|
push af
|
|
in a,(4)
|
|
rla
|
|
jr nc,_
|
|
sbc a,a
|
|
out ($37),a
|
|
ex af,af'
|
|
soundDiff2 = $+1
|
|
xor 0
|
|
out (0),a
|
|
ex af,af'
|
|
pop af
|
|
ei
|
|
ret
|
|
_
|
|
rla
|
|
jp c,timer2flash
|
|
rla
|
|
jp c,timer1flash
|
|
bit 5,a
|
|
jp z,die
|
|
push hl
|
|
call handleSound
|
|
pop hl
|
|
pop af
|
|
ei
|
|
ret
|
|
|
|
.block $%2
|
|
chan1div0:
|
|
.dw 0
|
|
chan1div1:
|
|
.dw 0
|
|
chan1cnt:
|
|
.dw 0
|
|
chan2div0:
|
|
.dw 0
|
|
chan2div1:
|
|
.dw 0
|
|
chan2cnt:
|
|
.dw 0
|
|
chan3div:
|
|
.dw 0
|
|
chan3cnt:
|
|
.dw 0
|
|
chan4div:
|
|
.dw 0
|
|
chan4cnt:
|
|
.dw 0
|
|
|
|
bytes_skipped_1 = bytes_skipped
|
|
vars:
|
|
trackoffsetY:
|
|
.db 0
|
|
trackoffsetX:
|
|
.db 0
|
|
sprite_to_track:
|
|
.db -4
|
|
sprite_track_count:
|
|
.db 1
|
|
basepage:
|
|
.db 0
|
|
sprite_detect:
|
|
.db 0
|
|
intstatus:
|
|
.db 1
|
|
lcdchanged:
|
|
.db 0
|
|
lcdchecksum:
|
|
.db 0
|
|
mbcstatus:
|
|
.db 0
|
|
mbc:
|
|
.db 1
|
|
framecount:
|
|
.db 1
|
|
frameskip:
|
|
.db 5
|
|
offsetYFake:
|
|
.db 8
|
|
offsetXFake:
|
|
.db 0
|
|
offsetY:
|
|
.db 8
|
|
offsetX:
|
|
.db 0
|
|
myLY:
|
|
.db 8
|
|
mySCY:
|
|
.db 0
|
|
mySCX:
|
|
.db 0
|
|
screenHeight:
|
|
.db 128
|
|
screenWidth:
|
|
.db 21
|
|
windowLine:
|
|
.db 0
|
|
screenCopy:
|
|
jp safecopy_mono_3
|
|
intermediateFrame:
|
|
jp safecopy_mono_3_intermediate
|
|
dithercount:
|
|
.db 1
|
|
displayFlags:
|
|
.db %11000000
|
|
displayFlagsFake:
|
|
.db %11000000
|
|
decimalSave:
|
|
.db 0
|
|
keySave:
|
|
.db 0
|
|
mycontrast:
|
|
.db 0
|
|
channelSelect:
|
|
.db 0
|
|
pageA:
|
|
.db 0
|
|
pageB:
|
|
.db $81
|
|
keys:
|
|
.dw 0
|
|
maxRamPageUsed:
|
|
.db 0
|
|
firstInvalidRamPage:
|
|
.db 0
|
|
LCDC_backup:
|
|
.db 0
|
|
STAT_backup:
|
|
.db 0
|
|
SCY_backup:
|
|
.db 0
|
|
SCX_backup:
|
|
.db 0
|
|
LY_backup:
|
|
.db 0
|
|
LYC_backup:
|
|
.db 0
|
|
DMA_backup:
|
|
.db 0
|
|
BGP_backup:
|
|
.db 0
|
|
OBP0_backup:
|
|
.db 0
|
|
OBP1_backup:
|
|
.db 0
|
|
WY_backup:
|
|
.db 0
|
|
WX_backup:
|
|
.db 0
|
|
|
|
TimerInterruptReplacement:
|
|
;.block 16
|
|
|
|
fill_to($FDF3)
|
|
#define opcodeF3end eval($)
|
|
;di
|
|
ex af,af'
|
|
xor a
|
|
ld (intstatus),a
|
|
ex af,af'
|
|
jp opcode00
|
|
|
|
fill_to($FDFD)
|
|
irq_jump:
|
|
jp irq
|
|
|
|
page3codesize = $FE00-$E000-bytes_skipped
|
|
.org page3code + page3codesize
|
|
|