?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download

  1. ;; Sharp LR35902 - various syntax variants provided by NEO SPECTRUMAN
  2. ;; https://zx-pk.ru/threads/30314-sjasmplus-ot-z00m.html?p=1028186&viewfull=1#post1028186
  3. ;; Syntax examples are from IDA (disassembler), bgb (emulator) and GameBoy CPU Manual
  4. ;; also cross-checked with http://www.pastraiser.com/cpu/gameboy/gameboy_opcodes.html
  5.  
  6. ;; 10 errors are expected! These syntax variants are *NOT* compatible with sjasmplus:
  7. ; 4x "($FF00+c)" to emit `ld a,(c)` or `ld (c),a`; use "(c)" or "[c]" without $FF00 constant
  8. ; 4x "HLI"/"HLD" as "HL+"/"HL-"; use HL+/HL- (or LDI/LDD with HL only)
  9. ; "ld hl,[sp+n]"; use logical syntax `ld hl,sp+rel8`, it's not accessing memory
  10. ; "ldhl" alias; same as above, use the `ld hl,sp+rel8` syntax
  11.  
  12. ;; these are intentionally left out. don't expect sjasmplus to support any of these.
  13. ; reasons: either the syntax is atrocious like "ld hl,[sp+0]" or the extra syntax adds
  14. ; too much complexity and/or possible accidental collisions, like "hli" label, etc.
  15.  
  16. ; in the end the sjasmplus is 100% compatible with IDA disassembler syntax and supports
  17. ; at least one variant from CPU Manual (if not all of them).
  18. ; Only bgb compatibility is not 100%, and sources from bgb may need syntax fixing.
  19.  
  20. n:      OPT --syntax=ab         ; "a" = multiarg is ",," to support "sub a,n" syntax
  21. nn:                             ; "b" = "(expr.)" is legit only for memory access
  22.  
  23. ;                       :IDA            :bgb            :GBCPUman.pdf
  24.   defb $06,0            :ld b,0         :ld b,$00       :LD B,n
  25.   defb $0E,0            :ld c,0         :ld c,$00       :LD C,n
  26.   defb $16,0            :ld d,0         :ld d,$00       :LD D,n
  27.   defb $1E,0            :ld e,0         :ld e,$00       :LD E,n
  28.   defb $26,0            :ld h,0         :ld h,$00       :LD H,n
  29.   defb $2E,0            :ld l,0         :ld l,$00       :LD L,n
  30.   defb $36,0            :ld [hl],0      :ld [hl],$00    :LD (HL),n
  31.   defb $3E,0            :ld a,0         :ld a,$00       :LD A,n
  32.  
  33.   defb $40              :ld b,b         :ld b,b         :LD B,B
  34.   defb $41              :ld b,c         :ld b,c         :LD B,C
  35.   defb $42              :ld b,d         :ld b,d         :LD B,D
  36.   defb $43              :ld b,e         :ld b,e         :LD B,E
  37.   defb $44              :ld b,h         :ld b,h         :LD B,H
  38.   defb $45              :ld b,l         :ld b,l         :LD B,L
  39.   defb $46              :ld b,[hl]      :ld b,[hl]      :LD B,(HL)
  40.   defb $47              :ld b,a         :ld b,a         :LD B,A
  41.  
  42.   defb $48              :ld c,b         :ld c,b         :LD C,B
  43.   defb $49              :ld c,c         :ld c,c         :LD C,C
  44.   defb $4A              :ld c,d         :ld c,d         :LD C,D
  45.   defb $4B              :ld c,e         :ld c,e         :LD C,E
  46.   defb $4C              :ld c,h         :ld c,h         :LD C,H
  47.   defb $4D              :ld c,l         :ld c,l         :LD C,L
  48.   defb $4E              :ld c,[hl]      :ld c,[hl]      :LD C,(HL)
  49.   defb $4F              :ld c,a         :ld c,a         :LD C,A
  50.  
  51.   defb $50              :ld d,b         :ld d,b         :LD D,B
  52.   defb $51              :ld d,c         :ld d,c         :LD D,C
  53.   defb $52              :ld d,d         :ld d,d         :LD D,D
  54.   defb $53              :ld d,e         :ld d,e         :LD D,E
  55.   defb $54              :ld d,h         :ld d,h         :LD D,H
  56.   defb $55              :ld d,l         :ld d,l         :LD D,L
  57.   defb $56              :ld d,[hl]      :ld d,[hl]      :LD D,(HL)
  58.   defb $57              :ld d,a         :ld d,a         :LD D,A
  59.  
  60.   defb $58              :ld e,b         :ld e,b         :LD E,B
  61.   defb $59              :ld e,c         :ld e,c         :LD E,C
  62.   defb $5A              :ld e,d         :ld e,d         :LD E,D
  63.   defb $5B              :ld e,e         :ld e,e         :LD E,E
  64.   defb $5C              :ld e,h         :ld e,h         :LD E,H
  65.   defb $5D              :ld e,l         :ld e,l         :LD E,L
  66.   defb $5E              :ld e,[hl]      :ld e,[hl]      :LD E,(HL)
  67.   defb $5F              :ld e,a         :ld e,a         :LD E,A
  68.  
  69.   defb $60              :ld h,b         :ld h,b         :LD H,B
  70.   defb $61              :ld h,c         :ld h,c         :LD H,C
  71.   defb $62              :ld h,d         :ld h,d         :LD H,D
  72.   defb $63              :ld h,e         :ld h,e         :LD H,E
  73.   defb $64              :ld h,h         :ld h,h         :LD H,H
  74.   defb $65              :ld h,l         :ld h,l         :LD H,L
  75.   defb $66              :ld h,[hl]      :ld h,[hl]      :LD H,(HL)
  76.   defb $67              :ld h,a         :ld h,a         :LD H,A
  77.  
  78.   defb $68              :ld l,b         :ld l,b         :LD L,B
  79.   defb $69              :ld l,c         :ld l,c         :LD L,C
  80.   defb $6A              :ld l,d         :ld l,d         :LD L,D
  81.   defb $6B              :ld l,e         :ld l,e         :LD L,E
  82.   defb $6C              :ld l,h         :ld l,h         :LD L,H
  83.   defb $6D              :ld l,l         :ld l,l         :LD L,L
  84.   defb $6E              :ld l,[hl]      :ld l,[hl]      :LD L,(HL)
  85.   defb $6F              :ld l,a         :ld l,a         :LD L,A
  86.  
  87.   defb $70              :ld [hl],b      :ld [hl],b      :LD (HL),B
  88.   defb $71              :ld [hl],c      :ld [hl],c      :LD (HL),C
  89.   defb $72              :ld [hl],d      :ld [hl],d      :LD (HL),D
  90.   defb $73              :ld [hl],e      :ld [hl],e      :LD (HL),E
  91.   defb $74              :ld [hl],h      :ld [hl],h      :LD (HL),H
  92.   defb $75              :ld [hl],l      :ld [hl],l      :LD (HL),L
  93.   defb $76              :halt           :halt           :HALT
  94.   defb $77              :ld [hl],a      :ld [hl],a      :LD (HL),A
  95.  
  96.   defb $78              :ld a,b         :ld a,b         :LD A,B
  97.   defb $79              :ld a,c         :ld a,c         :LD A,C
  98.   defb $7A              :ld a,d         :ld a,d         :LD A,D
  99.   defb $7B              :ld a,e         :ld a,e         :LD A,E
  100.   defb $7C              :ld a,h         :ld a,h         :LD A,H
  101.   defb $7D              :ld a,l         :ld a,l         :LD A,L
  102.   defb $7E              :ld a,[hl]      :ld a,[hl]      :LD A,(HL)
  103.   defb $7F              :ld a,a         :ld a,a         :LD A,A
  104.  
  105.   defb $0A              :ld a,[bc]      :ld a,[bc]      :LD A,(BC)
  106.   defb $1A              :ld a,[de]      :ld a,[de]      :LD A,(DE)
  107.  
  108.   defb $02              :ld [bc],a      :ld [bc],a      :LD (BC),A
  109.   defb $12              :ld [de],a      :ld [de],a      :LD (DE),A
  110.  
  111.   defb $F0,0            :ld a,[$FF00]   :ldh a,[$FF00]  :LDH A,(n) : LD A,($FF00+n)
  112.   defb $E0,0            :ld [$FF00],a   :ldh [$FF00],a  :LDH (n),A : LD ($FF00+n),A
  113.   ; syntax "ld a,($ff00+c)" is not accepted by sjasmplus, only "(c)" argument works: 2x error
  114.   defb $F2              :ld a,[c]       :ld a,[$ff00+c] :LD A,(C) : LD A,($FF00+C)
  115.   ; syntax "ld ($ff00+c),a" is not accepted by sjasmplus, only "(c)" argument works: 2x error
  116.   defb $E2              :ld [c], a      :ld [$ff00+c],a :ld (C),A : LD ($FF00+C),A
  117.  
  118.   defb $FA,0,0          :ld a,[0]       :ld a,[$0000]   :LD A,(nn)
  119.   defb $EA,0,0          :ld [0],a       :ld [$0000],a   :LD (nn),A
  120.  
  121.   ; syntax with HLI and HLD is not accepted by sjasmplus: 4x error
  122.   defb $22              :ldi [hl],a     :ldi [hl],a     :LD (HLI),A : LDI (HL),A : LD (HL+),A
  123.   defb $32              :ldd [hl],a     :ldd [hl],a     :LD (HLD),A : LDD (HL),A : LD (HL-),A
  124.   defb $2A              :ldi a,[hl]     :ldi a,[hl]     :LD A,(HLI) : LDI A,(HL) : LD A,(HL+)
  125.   defb $3A              :ldd a,[hl]     :ldd a,[hl]     :LD A,(HLD) : LDD A,(HL) : LD A,(HL-)
  126.  
  127.   defb $01,0,0          :ld bc,0        :ld bc,$0000    :LD BC,nn
  128.   defb $11,0,0          :ld de,0        :ld de,$0000    :LD DE,nn
  129.   defb $21,0,0          :ld hl,0        :ld hl,$0000    :LD HL,nn
  130.   defb $31,0,0          :ld sp,0        :ld sp,$0000    :LD SP,nn
  131.  
  132.   defb $F9              :ld sp,hl       :ld sp,hl       :LD SP,HL
  133.  
  134.   ; syntax "ld hl,[sp+$00]" and "LDHL" is not accepted by sjasmplus: 2x error
  135.   defb $F8,0            :ld hl,sp+0     :ld hl,[sp+$00] :LD HL,SP+n : LDHL SP,n
  136.  
  137.   defb $08,0,0          :ld [0],sp      :ld [$0000],sp  :LD (nn),SP
  138.  
  139.   defb $F5              :push af        :push af        :PUSH AF
  140.   defb $C5              :push bc        :push bc        :PUSH BC
  141.   defb $D5              :push de        :push de        :PUSH DE
  142.   defb $E5              :push hl        :push hl        :PUSH HL
  143.  
  144.   defb $F1              :pop af         :pop af         :POP AF
  145.   defb $C1              :pop bc         :pop bc         :POP BC
  146.   defb $D1              :pop de         :pop de         :POP DE
  147.   defb $E1              :pop hl         :pop hl         :POP HL
  148.  
  149.   defb $80              :add a,b        :add b          :ADD A,B
  150.   defb $81              :add a,c        :add c          :ADD A,C
  151.   defb $82              :add a,d        :add d          :ADD A,D
  152.   defb $83              :add a,e        :add e          :ADD A,E
  153.   defb $84              :add a,h        :add h          :ADD A,H
  154.   defb $85              :add a,l        :add l          :ADD A,L
  155.   defb $86              :add a,[hl]     :add [hl]       :ADD A,(HL)
  156.   defb $87              :add a,a        :add a          :ADD A,A
  157.  
  158.   defb $88              :adc a,b        :adc b          :ADC A,B
  159.   defb $89              :adc a,c        :adc c          :ADC A,C
  160.   defb $8A              :adc a,d        :adc d          :ADC A,D
  161.   defb $8B              :adc a,e        :adc e          :ADC A,E
  162.   defb $8C              :adc a,h        :adc h          :ADC A,H
  163.   defb $8D              :adc a,l        :adc l          :ADC A,L
  164.   defb $8E              :adc a,[hl]     :adc [hl]       :ADC A,(HL)
  165.   defb $8F              :adc a,a        :adc a          :ADC A,A
  166.  
  167.   defb $90              :sub b          :sub b          :SUB B
  168.   defb $91              :sub c          :sub c          :SUB C
  169.   defb $92              :sub d          :sub d          :SUB D
  170.   defb $93              :sub e          :sub e          :SUB E
  171.   defb $94              :sub h          :sub h          :SUB H
  172.   defb $95              :sub l          :sub l          :SUB L
  173.   defb $96              :sub [hl]       :sub [hl]       :SUB (HL)
  174.   defb $97              :sub a          :sub a          :SUB A
  175.  
  176.   defb $98              :sbc a,b        :sbc b          :SBC A,B
  177.   defb $99              :sbc a,c        :sbc c          :SBC A,C
  178.   defb $9A              :sbc a,d        :sbc d          :SBC A,D
  179.   defb $9B              :sbc a,e        :sbc e          :SBC A,E
  180.   defb $9C              :sbc a,h        :sbc h          :SBC A,H
  181.   defb $9D              :sbc a,l        :sbc l          :SBC A,L
  182.   defb $9E              :sbc a,[hl]     :sbc [hl]       :SBC A,(HL)
  183.   defb $9F              :sbc a,a        :sbc a          :SBC A,A
  184.  
  185.   defb $A0              :and b          :and b          :AND B
  186.   defb $A1              :and c          :and c          :AND C
  187.   defb $A2              :and d          :and d          :AND D
  188.   defb $A3              :and e          :and e          :AND E
  189.   defb $A4              :and h          :and h          :AND H
  190.   defb $A5              :and l          :and l          :AND L
  191.   defb $A6              :and [hl]       :and [hl]       :AND (HL)
  192.   defb $A7              :and a          :and a          :AND A
  193.  
  194.   defb $B0              :or b           :or b           :OR B
  195.   defb $B1              :or c           :or c           :OR C
  196.   defb $B2              :or d           :or d           :OR D
  197.   defb $B3              :or e           :or e           :OR E
  198.   defb $B4              :or h           :or h           :OR H
  199.   defb $B5              :or l           :or l           :OR L
  200.   defb $B6              :or [hl]        :or [hl]        :OR (HL)
  201.   defb $B7              :or a           :or a           :OR A
  202.  
  203.   defb $A8              :xor b          :xor b          :XOR B
  204.   defb $A9              :xor c          :xor c          :XOR C
  205.   defb $AA              :xor d          :xor d          :XOR D
  206.   defb $AB              :xor e          :xor e          :XOR E
  207.   defb $AC              :xor h          :xor h          :XOR H
  208.   defb $AD              :xor l          :xor l          :XOR L
  209.   defb $AE              :xor [hl]       :xor [hl]       :XOR (HL)
  210.   defb $AF              :xor a          :xor a          :XOR A
  211.  
  212.   defb $B8              :cp b           :cp b           :CP B
  213.   defb $B9              :cp c           :cp c           :CP C
  214.   defb $BA              :cp d           :cp d           :CP D
  215.   defb $BB              :cp e           :cp e           :CP E
  216.   defb $BC              :cp h           :cp h           :CP H
  217.   defb $BD              :cp l           :cp l           :CP L
  218.   defb $BE              :cp [hl]        :cp [hl]        :CP (HL)
  219.   defb $BF              :cp a           :cp a           :CP A
  220.  
  221.   defb $04              :inc b          :inc b          :INC B
  222.   defb $0C              :inc c          :inc c          :INC C
  223.   defb $14              :inc d          :inc d          :INC D
  224.   defb $1C              :inc e          :inc e          :INC E
  225.   defb $24              :inc h          :inc h          :INC H
  226.   defb $2C              :inc l          :inc l          :INC L
  227.   defb $34              :inc [hl]       :inc [hl]       :INC (HL)
  228.   defb $3C              :inc a          :inc a          :INC A
  229.  
  230.   defb $05              :dec b          :dec b          :DEC B
  231.   defb $0D              :dec c          :dec c          :DEC C
  232.   defb $15              :dec d          :dec d          :DEC D
  233.   defb $1D              :dec e          :dec e          :DEC E
  234.   defb $25              :dec h          :dec h          :DEC H
  235.   defb $2D              :dec l          :dec l          :DEC L
  236.   defb $35              :dec [hl]       :dec [hl]       :DEC (HL)
  237.   defb $3D              :dec a          :dec a          :DEC A
  238.  
  239.   ; the sub/and/xor/or/cp needs "--syntax=a" in sjasmplus for "a," recognition like this
  240.   ; by default the sjasmplus understands "a," as multi-arg: "sub a,0" = "sub a : sub 0" (!)
  241.   defb $C6,0            :add a,0        :add a,$00      :ADD A,n
  242.   defb $CE,0            :adc a,0        :adc a,$00      :ADC A,n
  243.   defb $D6,0            :sub 0          :sub a,$00      :SUB n         ; "sub a,*" needs `--syntax=a` in sjasmplus
  244.   defb $DE,0            :sbc a,0        :sbc a,$00      :SBC A,n
  245.   defb $E6,0            :and 0          :and a,$00      :AND n         ; "and a,*" needs `--syntax=a` in sjasmplus
  246.   defb $EE,0            :xor 0          :xor a,$00      :XOR n         ; "xor a,*" needs `--syntax=a` in sjasmplus
  247.   defb $F6,0            :or 0           :or a,$00       :OR n          ; "or a,*" needs `--syntax=a` in sjasmplus
  248.   defb $FE,0            :cp 0           :cp a,$00       :CP n          ; "cp a,*" needs `--syntax=a` in sjasmplus
  249.  
  250.   defb $09              :add hl,bc      :add hl,bc      :ADD HL,BC
  251.   defb $19              :add hl,de      :add hl,de      :ADD HL,DE
  252.   defb $29              :add hl,hl      :add hl,hl      :ADD HL,HL
  253.   defb $39              :add hl,sp      :add hl,sp      :ADD HL,SP
  254.  
  255.   defb $E8,0            :add sp,0       :add sp,$00     :ADD SP,n
  256.  
  257.   defb $03              :inc bc         :inc bc         :INC BC
  258.   defb $13              :inc de         :inc de         :INC DE
  259.   defb $23              :inc hl         :inc hl         :INC HL
  260.   defb $33              :inc sp         :inc sp         :INC SP
  261.  
  262.   defb $0B              :dec bc         :dec bc         :DEC BC
  263.   defb $1B              :dec de         :dec de         :DEC DE
  264.   defb $2B              :dec hl         :dec hl         :DEC HL
  265.   defb $3B              :dec sp         :dec sp         :DEC SP
  266.  
  267.   defb $CB,$30          :swap b         :swap b         :SWAP B
  268.   defb $CB,$31          :swap c         :swap c         :SWAP C
  269.   defb $CB,$32          :swap d         :swap d         :SWAP D
  270.   defb $CB,$33          :swap e         :swap e         :SWAP E
  271.   defb $CB,$34          :swap h         :swap h         :SWAP H
  272.   defb $CB,$35          :swap l         :swap l         :SWAP L
  273.   defb $CB,$36          :swap [hl]      :swap [hl]      :SWAP (HL)
  274.   defb $CB,$37          :swap a         :swap a         :SWAP A
  275.  
  276.   defb $27              :daa            :daa            :DAA
  277.   defb $2F              :cpl            :cpl            :CPL
  278.   defb $3F              :ccf            :ccf            :CCF
  279.   defb $37              :scf            :scf            :SCF
  280.  
  281.   defb $00              :nop            :nop            :NOP
  282.  
  283.   defb $10,$00          :stop           :stop           :STOP
  284.   defb $F3              :di             :di             :DI
  285.   defb $FB              :ei             :ei             :EI
  286.  
  287.   defb $07              :rlca           :rlca           :RLCA
  288.   defb $17              :rla            :rla            :RLA
  289.   defb $0F              :rrca           :rrca           :RRCA
  290.   defb $1F              :rra            :rra            :RRA
  291.  
  292.   defb $CB,$00          :rlc b          :rlc b          :RLC B
  293.   defb $CB,$01          :rlc c          :rlc c          :RLC C
  294.   defb $CB,$02          :rlc d          :rlc d          :RLC D
  295.   defb $CB,$03          :rlc e          :rlc e          :RLC E
  296.   defb $CB,$04          :rlc h          :rlc h          :RLC H
  297.   defb $CB,$05          :rlc l          :rlc l          :RLC L
  298.   defb $CB,$06          :rlc [hl]       :rlc [hl]       :RLC (HL)
  299.   defb $CB,$07          :rlc a          :rlc a          :RLC A
  300.  
  301.   defb $CB,$10          :rl b           :rl b           :RL B
  302.   defb $CB,$11          :rl c           :rl c           :RL C
  303.   defb $CB,$12          :rl d           :rl d           :RL D
  304.   defb $CB,$13          :rl e           :rl e           :RL E
  305.   defb $CB,$14          :rl h           :rl h           :RL H
  306.   defb $CB,$15          :rl l           :rl l           :RL L
  307.   defb $CB,$16          :rl [hl]        :rl [hl]        :RL (HL)
  308.   defb $CB,$17          :rl a           :rl a           :RL A
  309.  
  310.   defb $CB,$08          :rrc b          :rrc b          :RRC B
  311.   defb $CB,$09          :rrc c          :rrc c          :RRC C
  312.   defb $CB,$0A          :rrc d          :rrc d          :RRC D
  313.   defb $CB,$0B          :rrc e          :rrc e          :RRC E
  314.   defb $CB,$0C          :rrc h          :rrc h          :RRC H
  315.   defb $CB,$0D          :rrc l          :rrc l          :RRC L
  316.   defb $CB,$0E          :rrc [hl]       :rrc [hl]       :RRC (HL)
  317.   defb $CB,$0F          :rrc a          :rrc a          :RRC A
  318.  
  319.   defb $CB,$18          :rr b           :rr b           :RR B
  320.   defb $CB,$19          :rr c           :rr c           :RR C
  321.   defb $CB,$1A          :rr d           :rr d           :RR D
  322.   defb $CB,$1B          :rr e           :rr e           :RR E
  323.   defb $CB,$1C          :rr h           :rr h           :RR H
  324.   defb $CB,$1D          :rr l           :rr l           :RR L
  325.   defb $CB,$1E          :rr [hl]        :rr [hl]        :RR (HL)
  326.   defb $CB,$1F          :rr a           :rr a           :RR A
  327.  
  328.   defb $CB,$20          :sla b          :sla b          :SLA B
  329.   defb $CB,$21          :sla c          :sla c          :SLA C
  330.   defb $CB,$22          :sla d          :sla d          :SLA D
  331.   defb $CB,$23          :sla e          :sla e          :SLA E
  332.   defb $CB,$24          :sla h          :sla h          :SLA H
  333.   defb $CB,$25          :sla l          :sla l          :SLA L
  334.   defb $CB,$26          :sla [hl]       :sla [hl]       :SLA (HL)
  335.   defb $CB,$27          :sla a          :sla a          :SLA A
  336.  
  337.   defb $CB,$28          :sra b          :sra b          :SRA B
  338.   defb $CB,$29          :sra c          :sra c          :SRA C
  339.   defb $CB,$2A          :sra d          :sra d          :SRA D
  340.   defb $CB,$2B          :sra e          :sra e          :SRA E
  341.   defb $CB,$2C          :sra h          :sra h          :SRA H
  342.   defb $CB,$2D          :sra l          :sra l          :SRA L
  343.   defb $CB,$2E          :sra [hl]       :sra [hl]       :SRA (HL)
  344.   defb $CB,$2F          :sra a          :sra a          :SRA A
  345.  
  346.   defb $CB,$38          :srl b          :srl b          :SRL B
  347.   defb $CB,$39          :srl c          :srl c          :SRL C
  348.   defb $CB,$3A          :srl d          :srl d          :SRL D
  349.   defb $CB,$3B          :srl e          :srl e          :SRL E
  350.   defb $CB,$3C          :srl h          :srl h          :SRL H
  351.   defb $CB,$3D          :srl l          :srl l          :SRL L
  352.   defb $CB,$3E          :srl [hl]       :srl [hl]       :SRL (HL)
  353.   defb $CB,$3F          :srl a          :srl a          :SRL A
  354.  
  355.   defb $CB,$40          :bit 0,b        :bit 0,b        :BIT 0,B
  356.   defb $CB,$41          :bit 0,c        :bit 0,c        :BIT 0,C
  357.   defb $CB,$42          :bit 0,d        :bit 0,d        :BIT 0,D
  358.   defb $CB,$43          :bit 0,e        :bit 0,e        :BIT 0,E
  359.   defb $CB,$44          :bit 0,h        :bit 0,h        :BIT 0,H
  360.   defb $CB,$45          :bit 0,l        :bit 0,l        :BIT 0,L
  361.   defb $CB,$46          :bit 0,[hl]     :bit 0,[hl]     :BIT 0,(HL)
  362.   defb $CB,$47          :bit 0,a        :bit 0,a        :BIT 0,A
  363.  
  364.   defb $CB,$40+$08      :bit 1,b        :bit 1,b        :BIT 1,B
  365.   defb $CB,$41+$08      :bit 1,c        :bit 1,c        :BIT 1,C
  366.   defb $CB,$42+$08      :bit 1,d        :bit 1,d        :BIT 1,D
  367.   defb $CB,$43+$08      :bit 1,e        :bit 1,e        :BIT 1,E
  368.   defb $CB,$44+$08      :bit 1,h        :bit 1,h        :BIT 1,H
  369.   defb $CB,$45+$08      :bit 1,l        :bit 1,l        :BIT 1,L
  370.   defb $CB,$46+$08      :bit 1,[hl]     :bit 1,[hl]     :BIT 1,(HL)
  371.   defb $CB,$47+$08      :bit 1,a        :bit 1,a        :BIT 1,A
  372.  
  373.   defb $CB,$40+$10      :bit 2,b        :bit 2,b        :BIT 2,B
  374.   defb $CB,$41+$10      :bit 2,c        :bit 2,c        :BIT 2,C
  375.   defb $CB,$42+$10      :bit 2,d        :bit 2,d        :BIT 2,D
  376.   defb $CB,$43+$10      :bit 2,e        :bit 2,e        :BIT 2,E
  377.   defb $CB,$44+$10      :bit 2,h        :bit 2,h        :BIT 2,H
  378.   defb $CB,$45+$10      :bit 2,l        :bit 2,l        :BIT 2,L
  379.   defb $CB,$46+$10      :bit 2,[hl]     :bit 2,[hl]     :BIT 2,(HL)
  380.   defb $CB,$47+$10      :bit 2,a        :bit 2,a        :BIT 2,A
  381.  
  382.   defb $CB,$40+$18      :bit 3,b        :bit 3,b        :BIT 3,B
  383.   defb $CB,$41+$18      :bit 3,c        :bit 3,c        :BIT 3,C
  384.   defb $CB,$42+$18      :bit 3,d        :bit 3,d        :BIT 3,D
  385.   defb $CB,$43+$18      :bit 3,e        :bit 3,e        :BIT 3,E
  386.   defb $CB,$44+$18      :bit 3,h        :bit 3,h        :BIT 3,H
  387.   defb $CB,$45+$18      :bit 3,l        :bit 3,l        :BIT 3,L
  388.   defb $CB,$46+$18      :bit 3,[hl]     :bit 3,[hl]     :BIT 3,(HL)
  389.   defb $CB,$47+$18      :bit 3,a        :bit 3,a        :BIT 3,A
  390.  
  391.   defb $CB,$40+$20      :bit 4,b        :bit 4,b        :BIT 4,B
  392.   defb $CB,$41+$20      :bit 4,c        :bit 4,c        :BIT 4,C
  393.   defb $CB,$42+$20      :bit 4,d        :bit 4,d        :BIT 4,D
  394.   defb $CB,$43+$20      :bit 4,e        :bit 4,e        :BIT 4,E
  395.   defb $CB,$44+$20      :bit 4,h        :bit 4,h        :BIT 4,H
  396.   defb $CB,$45+$20      :bit 4,l        :bit 4,l        :BIT 4,L
  397.   defb $CB,$46+$20      :bit 4,[hl]     :bit 4,[hl]     :BIT 4,(HL)
  398.   defb $CB,$47+$20      :bit 4,a        :bit 4,a        :BIT 4,A
  399.  
  400.   defb $CB,$40+$28      :bit 5,b        :bit 5,b        :BIT 5,B
  401.   defb $CB,$41+$28      :bit 5,c        :bit 5,c        :BIT 5,C
  402.   defb $CB,$42+$28      :bit 5,d        :bit 5,d        :BIT 5,D
  403.   defb $CB,$43+$28      :bit 5,e        :bit 5,e        :BIT 5,E
  404.   defb $CB,$44+$28      :bit 5,h        :bit 5,h        :BIT 5,H
  405.   defb $CB,$45+$28      :bit 5,l        :bit 5,l        :BIT 5,L
  406.   defb $CB,$46+$28      :bit 5,[hl]     :bit 5,[hl]     :BIT 5,(HL)
  407.   defb $CB,$47+$28      :bit 5,a        :bit 5,a        :BIT 5,A
  408.  
  409.   defb $CB,$40+$30      :bit 6,b        :bit 6,b        :BIT 6,B
  410.   defb $CB,$41+$30      :bit 6,c        :bit 6,c        :BIT 6,C
  411.   defb $CB,$42+$30      :bit 6,d        :bit 6,d        :BIT 6,D
  412.   defb $CB,$43+$30      :bit 6,e        :bit 6,e        :BIT 6,E
  413.   defb $CB,$44+$30      :bit 6,h        :bit 6,h        :BIT 6,H
  414.   defb $CB,$45+$30      :bit 6,l        :bit 6,l        :BIT 6,L
  415.   defb $CB,$46+$30      :bit 6,[hl]     :bit 6,[hl]     :BIT 6,(HL)
  416.   defb $CB,$47+$30      :bit 6,a        :bit 6,a        :BIT 6,A
  417.  
  418.   defb $CB,$40+$38      :bit 7,b        :bit 7,b        :BIT 7,B
  419.   defb $CB,$41+$38      :bit 7,c        :bit 7,c        :BIT 7,C
  420.   defb $CB,$42+$38      :bit 7,d        :bit 7,d        :BIT 7,D
  421.   defb $CB,$43+$38      :bit 7,e        :bit 7,e        :BIT 7,E
  422.   defb $CB,$44+$38      :bit 7,h        :bit 7,h        :BIT 7,H
  423.   defb $CB,$45+$38      :bit 7,l        :bit 7,l        :BIT 7,L
  424.   defb $CB,$46+$38      :bit 7,[hl]     :bit 7,[hl]     :BIT 7,(HL)
  425.   defb $CB,$47+$38      :bit 7,a        :bit 7,a        :BIT 7,A
  426.  
  427.   defb $CB,$C0          :set 0,b        :set 0,b        :SET 0,B
  428.   defb $CB,$C1          :set 0,c        :set 0,c        :SET 0,C
  429.   defb $CB,$C2          :set 0,d        :set 0,d        :SET 0,D
  430.   defb $CB,$C3          :set 0,e        :set 0,e        :SET 0,E
  431.   defb $CB,$C4          :set 0,h        :set 0,h        :SET 0,H
  432.   defb $CB,$C5          :set 0,l        :set 0,l        :SET 0,L
  433.   defb $CB,$C6          :set 0,[hl]     :set 0,[hl]     :SET 0,(HL)
  434.   defb $CB,$C7          :set 0,a        :set 0,a        :SET 0,A
  435.  
  436.   defb $CB,$C0+$08      :set 1,b        :set 1,b        :SET 1,B
  437.   defb $CB,$C1+$08      :set 1,c        :set 1,c        :SET 1,C
  438.   defb $CB,$C2+$08      :set 1,d        :set 1,d        :SET 1,D
  439.   defb $CB,$C3+$08      :set 1,e        :set 1,e        :SET 1,E
  440.   defb $CB,$C4+$08      :set 1,h        :set 1,h        :SET 1,H
  441.   defb $CB,$C5+$08      :set 1,l        :set 1,l        :SET 1,L
  442.   defb $CB,$C6+$08      :set 1,[hl]     :set 1,[hl]     :SET 1,(HL)
  443.   defb $CB,$C7+$08      :set 1,a        :set 1,a        :SET 1,A
  444.  
  445.   defb $CB,$C0+$10      :set 2,b        :set 2,b        :SET 2,B
  446.   defb $CB,$C1+$10      :set 2,c        :set 2,c        :SET 2,C
  447.   defb $CB,$C2+$10      :set 2,d        :set 2,d        :SET 2,D
  448.   defb $CB,$C3+$10      :set 2,e        :set 2,e        :SET 2,E
  449.   defb $CB,$C4+$10      :set 2,h        :set 2,h        :SET 2,H
  450.   defb $CB,$C5+$10      :set 2,l        :set 2,l        :SET 2,L
  451.   defb $CB,$C6+$10      :set 2,[hl]     :set 2,[hl]     :SET 2,(HL)
  452.   defb $CB,$C7+$10      :set 2,a        :set 2,a        :SET 2,A
  453.  
  454.   defb $CB,$C0+$18      :set 3,b        :set 3,b        :SET 3,B
  455.   defb $CB,$C1+$18      :set 3,c        :set 3,c        :SET 3,C
  456.   defb $CB,$C2+$18      :set 3,d        :set 3,d        :SET 3,D
  457.   defb $CB,$C3+$18      :set 3,e        :set 3,e        :SET 3,E
  458.   defb $CB,$C4+$18      :set 3,h        :set 3,h        :SET 3,H
  459.   defb $CB,$C5+$18      :set 3,l        :set 3,l        :SET 3,L
  460.   defb $CB,$C6+$18      :set 3,[hl]     :set 3,[hl]     :SET 3,(HL)
  461.   defb $CB,$C7+$18      :set 3,a        :set 3,a        :SET 3,A
  462.  
  463.   defb $CB,$C0+$20      :set 4,b        :set 4,b        :SET 4,B
  464.   defb $CB,$C1+$20      :set 4,c        :set 4,c        :SET 4,C
  465.   defb $CB,$C2+$20      :set 4,d        :set 4,d        :SET 4,D
  466.   defb $CB,$C3+$20      :set 4,e        :set 4,e        :SET 4,E
  467.   defb $CB,$C4+$20      :set 4,h        :set 4,h        :SET 4,H
  468.   defb $CB,$C5+$20      :set 4,l        :set 4,l        :SET 4,L
  469.   defb $CB,$C6+$20      :set 4,[hl]     :set 4,[hl]     :SET 4,(HL)
  470.   defb $CB,$C7+$20      :set 4,a        :set 4,a        :SET 4,A
  471.  
  472.   defb $CB,$C0+$28      :set 5,b        :set 5,b        :SET 5,B
  473.   defb $CB,$C1+$28      :set 5,c        :set 5,c        :SET 5,C
  474.   defb $CB,$C2+$28      :set 5,d        :set 5,d        :SET 5,D
  475.   defb $CB,$C3+$28      :set 5,e        :set 5,e        :SET 5,E
  476.   defb $CB,$C4+$28      :set 5,h        :set 5,h        :SET 5,H
  477.   defb $CB,$C5+$28      :set 5,l        :set 5,l        :SET 5,L
  478.   defb $CB,$C6+$28      :set 5,[hl]     :set 5,[hl]     :SET 5,(HL)
  479.   defb $CB,$C7+$28      :set 5,a        :set 5,a        :SET 5,A
  480.  
  481.   defb $CB,$C0+$30      :set 6,b        :set 6,b        :SET 6,B
  482.   defb $CB,$C1+$30      :set 6,c        :set 6,c        :SET 6,C
  483.   defb $CB,$C2+$30      :set 6,d        :set 6,d        :SET 6,D
  484.   defb $CB,$C3+$30      :set 6,e        :set 6,e        :SET 6,E
  485.   defb $CB,$C4+$30      :set 6,h        :set 6,h        :SET 6,H
  486.   defb $CB,$C5+$30      :set 6,l        :set 6,l        :SET 6,L
  487.   defb $CB,$C6+$30      :set 6,[hl]     :set 6,[hl]     :SET 6,(HL)
  488.   defb $CB,$C7+$30      :set 6,a        :set 6,a        :SET 6,A
  489.  
  490.   defb $CB,$C0+$38      :set 7,b        :set 7,b        :SET 7,B
  491.   defb $CB,$C1+$38      :set 7,c        :set 7,c        :SET 7,C
  492.   defb $CB,$C2+$38      :set 7,d        :set 7,d        :SET 7,D
  493.   defb $CB,$C3+$38      :set 7,e        :set 7,e        :SET 7,E
  494.   defb $CB,$C4+$38      :set 7,h        :set 7,h        :SET 7,H
  495.   defb $CB,$C5+$38      :set 7,l        :set 7,l        :SET 7,L
  496.   defb $CB,$C6+$38      :set 7,[hl]     :set 7,[hl]     :SET 7,(HL)
  497.   defb $CB,$C7+$38      :set 7,a        :set 7,a        :SET 7,A
  498.  
  499.   defb $CB,$80          :res 0,b        :res 0,b        :RES 0,B
  500.   defb $CB,$81          :res 0,c        :res 0,c        :RES 0,C
  501.   defb $CB,$82          :res 0,d        :res 0,d        :RES 0,D
  502.   defb $CB,$83          :res 0,e        :res 0,e        :RES 0,E
  503.   defb $CB,$84          :res 0,h        :res 0,h        :RES 0,H
  504.   defb $CB,$85          :res 0,l        :res 0,l        :RES 0,L
  505.   defb $CB,$86          :res 0,[hl]     :res 0,[hl]     :RES 0,(HL)
  506.   defb $CB,$87          :res 0,a        :res 0,a        :RES 0,A
  507.  
  508.   defb $CB,$80+$08      :res 1,b        :res 1,b        :RES 1,B
  509.   defb $CB,$81+$08      :res 1,c        :res 1,c        :RES 1,C
  510.   defb $CB,$82+$08      :res 1,d        :res 1,d        :RES 1,D
  511.   defb $CB,$83+$08      :res 1,e        :res 1,e        :RES 1,E
  512.   defb $CB,$84+$08      :res 1,h        :res 1,h        :RES 1,H
  513.   defb $CB,$85+$08      :res 1,l        :res 1,l        :RES 1,L
  514.   defb $CB,$86+$08      :res 1,[hl]     :res 1,[hl]     :RES 1,(HL)
  515.   defb $CB,$87+$08      :res 1,a        :res 1,a        :RES 1,A
  516.  
  517.   defb $CB,$80+$10      :res 2,b        :res 2,b        :RES 2,B
  518.   defb $CB,$81+$10      :res 2,c        :res 2,c        :RES 2,C
  519.   defb $CB,$82+$10      :res 2,d        :res 2,d        :RES 2,D
  520.   defb $CB,$83+$10      :res 2,e        :res 2,e        :RES 2,E
  521.   defb $CB,$84+$10      :res 2,h        :res 2,h        :RES 2,H
  522.   defb $CB,$85+$10      :res 2,l        :res 2,l        :RES 2,L
  523.   defb $CB,$86+$10      :res 2,[hl]     :res 2,[hl]     :RES 2,(HL)
  524.   defb $CB,$87+$10      :res 2,a        :res 2,a        :RES 2,A
  525.  
  526.   defb $CB,$80+$18      :res 3,b        :res 3,b        :RES 3,B
  527.   defb $CB,$81+$18      :res 3,c        :res 3,c        :RES 3,C
  528.   defb $CB,$82+$18      :res 3,d        :res 3,d        :RES 3,D
  529.   defb $CB,$83+$18      :res 3,e        :res 3,e        :RES 3,E
  530.   defb $CB,$84+$18      :res 3,h        :res 3,h        :RES 3,H
  531.   defb $CB,$85+$18      :res 3,l        :res 3,l        :RES 3,L
  532.   defb $CB,$86+$18      :res 3,[hl]     :res 3,[hl]     :RES 3,(HL)
  533.   defb $CB,$87+$18      :res 3,a        :res 3,a        :RES 3,A
  534.  
  535.   defb $CB,$80+$20      :res 4,b        :res 4,b        :RES 4,B
  536.   defb $CB,$81+$20      :res 4,c        :res 4,c        :RES 4,C
  537.   defb $CB,$82+$20      :res 4,d        :res 4,d        :RES 4,D
  538.   defb $CB,$83+$20      :res 4,e        :res 4,e        :RES 4,E
  539.   defb $CB,$84+$20      :res 4,h        :res 4,h        :RES 4,H
  540.   defb $CB,$85+$20      :res 4,l        :res 4,l        :RES 4,L
  541.   defb $CB,$86+$20      :res 4,[hl]     :res 4,[hl]     :RES 4,(HL)
  542.   defb $CB,$87+$20      :res 4,a        :res 4,a        :RES 4,A
  543.  
  544.   defb $CB,$80+$28      :res 5,b        :res 5,b        :RES 5,B
  545.   defb $CB,$81+$28      :res 5,c        :res 5,c        :RES 5,C
  546.   defb $CB,$82+$28      :res 5,d        :res 5,d        :RES 5,D
  547.   defb $CB,$83+$28      :res 5,e        :res 5,e        :RES 5,E
  548.   defb $CB,$84+$28      :res 5,h        :res 5,h        :RES 5,H
  549.   defb $CB,$85+$28      :res 5,l        :res 5,l        :RES 5,L
  550.   defb $CB,$86+$28      :res 5,[hl]     :res 5,[hl]     :RES 5,(HL)
  551.   defb $CB,$87+$28      :res 5,a        :res 5,a        :RES 5,A
  552.  
  553.   defb $CB,$80+$30      :res 6,b        :res 6,b        :RES 6,B
  554.   defb $CB,$81+$30      :res 6,c        :res 6,c        :RES 6,C
  555.   defb $CB,$82+$30      :res 6,d        :res 6,d        :RES 6,D
  556.   defb $CB,$83+$30      :res 6,e        :res 6,e        :RES 6,E
  557.   defb $CB,$84+$30      :res 6,h        :res 6,h        :RES 6,H
  558.   defb $CB,$85+$30      :res 6,l        :res 6,l        :RES 6,L
  559.   defb $CB,$86+$30      :res 6,[hl]     :res 6,[hl]     :RES 6,(HL)
  560.   defb $CB,$87+$30      :res 6,a        :res 6,a        :RES 6,A
  561.  
  562.   defb $CB,$80+$38      :res 7,b        :res 7,b        :RES 7,B
  563.   defb $CB,$81+$38      :res 7,c        :res 7,c        :RES 7,C
  564.   defb $CB,$82+$38      :res 7,d        :res 7,d        :RES 7,D
  565.   defb $CB,$83+$38      :res 7,e        :res 7,e        :RES 7,E
  566.   defb $CB,$84+$38      :res 7,h        :res 7,h        :RES 7,H
  567.   defb $CB,$85+$38      :res 7,l        :res 7,l        :RES 7,L
  568.   defb $CB,$86+$38      :res 7,[hl]     :res 7,[hl]     :RES 7,(HL)
  569.   defb $CB,$87+$38      :res 7,a        :res 7,a        :RES 7,A
  570.  
  571.   defb $C3,0,0          :jp 0           :jp $0000       :JP nn
  572.  
  573.   defb $C2,0,0          :jp nz,0        :jp nz,$0000    :JP NZ,nn
  574.   defb $CA,0,0          :jp z,0         :jp z,$0000     :JP Z,nn
  575.   defb $D2,0,0          :jp nc,0        :jp nc,$0000    :JP NC,nn
  576.   defb $DA,0,0          :jp c,0         :jp c,$0000     :JP C,nn
  577.  
  578.   defb $E9              :jp [hl]        :jp [hl]        :JP (HL)
  579.  
  580.   defb $18,0            :jr $+2         :jr $+2         :JR $+2
  581.  
  582.   defb $20,0            :jr nz,$+2      :jr nz,$+2      :JR NZ,$+2  ; was literal "n", but needs "$+2" for tests
  583.   defb $28,0            :jr z,$+2       :jr z,$+2       :JR Z,$+2
  584.   defb $30,0            :jr nc,$+2      :jr nc,$+2      :JR NC,$+2
  585.   defb $38,0            :jr c,$+2       :jr c,$+2       :JR C,$+2
  586.  
  587.   defb $CD,0,0          :call 0         :call $0000     :CALL nn
  588.  
  589.   defb $C4,0,0          :call nz,0      :call nz,$0000  :CALL NZ,nn
  590.   defb $CC,0,0          :call z,0       :call z,$0000   :CALL Z,nn
  591.   defb $D4,0,0          :call nc,0      :call nc,$0000  :CALL NC,nn
  592.   defb $DC,0,0          :call c,0       :call c,$0000   :CALL C,nn
  593.  
  594.   defb $C7              :rst 0          :rst $00        :RST 00H
  595.   defb $CF              :rst 8          :rst $08        :RST 08H
  596.   defb $D7              :rst $10        :rst $10        :RST 10H
  597.   defb $DF              :rst $18        :rst $18        :RST 18H
  598.   defb $E7              :rst $20        :rst $20        :RST 20H
  599.   defb $EF              :rst $28        :rst $28        :RST 28H
  600.   defb $F7              :rst $30        :rst $30        :RST 30H
  601.   defb $FF              :rst $38        :rst $38        :RST 38H
  602.  
  603.   defb $C9              :ret            :ret            :RET
  604.  
  605.   defb $C0              :ret nz         :ret nz         :RET NZ
  606.   defb $C8              :ret z          :ret z          :RET Z
  607.   defb $D0              :ret nc         :ret nc         :RET NC
  608.   defb $D8              :ret c          :ret c          :RET C
  609.  
  610.   defb $D9              :reti           :reti           :RETI
  611.