1# Tab 18, tabs 18, :set ts=182# op args size bytes format cpu3.SECTION sym,string? 0 none section Z80,R800,GB804.TEXT none 0 none text Z80,R800,GB805.DATA none 0 none data Z80,R800,GB806.BSS none 0 none bss Z80,R800,GB807.DB imm8+ 0 none defb Z80,R800,GB808.DEFB imm8+ 0 none defb Z80,R800,GB809.BYTE imm8+ 0 none defb Z80,R800,GB8010.DW imm16+ 0 none defw Z80,R800,GB8011.DEFW imm16+ 0 none defw Z80,R800,GB8012.SHORT imm16+ 0 none defw Z80,R800,GB8013.WORD imm16+ 0 none defw Z80,R800,GB8014.DD imm32+ 0 none defd Z80,R800,GB8015.DEFD imm32+ 0 none defd Z80,R800,GB8016.LONG imm32+ 0 none defd Z80,R800,GB8017.INT imm16+ 0 none defd Z80,R800,GB8018.DQ imm64+ 0 none defq Z80,R800,GB8019.DEFQ imm64+ 0 none defq Z80,R800,GB8020.EQU sym,imm16 0 none equ Z80,R800,GB8021.EQU imm16 0 none equ Z80,R800,GB8022= imm16 0 none equ Z80,R800,GB8023.SIZE sym,imm16 0 none size Z80,R800,GB8024.SIZE imm16 0 none size Z80,R800,GB8025.COMM sym,imm16 0 none common Z80,R800,GB8026.COMM imm16 0 none common Z80,R800,GB8027.TYPE sym,imm16 0 none type Z80,R800,GB8028.TYPE imm16 0 none type Z80,R800,GB8029.GLOBL sym+ 0 none global Z80,R800,GB8030.PUBLIC sym+ 0 none global Z80,R800,GB8031.EXTERN sym+ 0 none extrn Z80,R800,GB8032.EXTRN sym+ 0 none extrn Z80,R800,GB8033.STRING string+ 0 none string Z80,R800,GB8034.ASCII string+ 0 none ascii Z80,R800,GB8035.ALIGN imm16+ 0 none align Z80,R800,GB8036.END none 0 none end Z80,R800,GB8037.INCLUDE string 0 none include Z80,R800,GB8038394041# p is any register from B, C, D, E, IXL, IXH, A42# q is any register from B, C, D, E, IYL, IYH, A43# r is any register from B, C, D, E, L, H, A44# dd is any register from BC, DE, HL, SP45# qq is any register from BC, DE, HL, AF46# pp is any register from BC, DE, IX, SP47# rr is any register from BC, DE, IY, SP48# cc is any flag from NZ, Z, NC, C, PO, PE, P, M49# ss is any flag from C, NC, Z, NZ5051# 8 bit load group52LD r,imm8 2 0x06 ld8 Z80,R800,GB8053LD p,imm8 3 0xdd,0x06 ld8 Z80,R80054LD q,imm8 3 0xfd,0x06 ld8 Z80,R80055LD (HL),imm8 2 0x36 ld8 Z80,R800,GB805657LD r,r 1 0x40 ld8 Z80,R800,GB8058LD p,p 2 0xdd,0x40 ld8 Z80,R80059LD q,q 2 0xfd,0x40 ld8 Z80,R80060LD (HL),r 1 0x70 ld8 Z80,R800,GB8061LD r,(HL) 1 0x46 ld8 Z80,R800,GB806263LD r,(IX+n) 3 0xdd,0x46 idx Z80,R80064LD r,(IY+n) 3 0xfd,0x46 idx Z80,R80065LD (IX+n),r 3 0xdd,0x70 idx Z80,R80066LD (IY+n),r 3 0xfd,0x70 idx Z80,R8006768LD (HL),imm8 2 0x36 ld8 Z80,R800,GB8069LD (IX+n),imm8 4 0xdd,0x36 idx Z80,R80070LD (IY+n),imm8 4 0xfd,0x36 idx Z80,R8007172LD A,(BC) 1 0x0a noargs Z80,R800,GB8073LD A,(DE) 1 0x1a noargs Z80,R800,GB8074LD A,(n) 3 0x3a dir Z80,R8007576LD (BC),A 1 0x2 noargs Z80,R800,GB8077LD (DE),A 1 0x12 noargs Z80,R800,GB8078LD (n),A 3 0x32 dir Z80,R8007980LD A,(n) 3 0xfa dir GB8081LD A,(HL+) 1 0x2a ld8 GB80 #TODO82LD A,(HL-) 1 0x3a ld8 GB80 #TODO83LD A,($FF00+n) 2 0xf0 dir GB80 #TODO84LD A,($FF00+C) 2 0xf2 dir GB80 #TODO8586LD (n),A 3 0xea dir GB8087LD (HL+),A 1 0x22 ld8 GB80 #TODO88LD (HL-),A 1 0x32 ld8 GB80 #TODO89LD ($FF00+n),A 2 0xe0 dir GB80 #TODO90LD ($FF00+C),A 2 0xe2 dir GB80 #TODO9192LD A,I 2 0xed,0x57 noargs Z80,R80093LD A,R 2 0xed,0x5f noargs Z80,R80094LD I,A 2 0xed,0x47 noargs Z80,R80095LD R,A 2 0xed,0x4f noargs Z80,R8009697# 16 bit load group98LD dd,imm16 3 0x01 ld16 Z80,R800,GB8099LD IX,imm16 4 0xdd,0x21 ld16 Z80,R800100LD IY,imm16 4 0xfd,0x21 ld16 Z80,R800101102LD HL,(n) 3 0x2a ld16 Z80,R800,GB80103LD dd,(n) 4 0xed,0x4b ld16 Z80,R800104LD IX,(n) 4 0xdd,0x2a ld16 Z80,R800105LD IY,(n) 4 0xfd,0x2a ld16 Z80,R800106107LD (n),HL 3 0x22 ld16 Z80,R800,GB80108LD (n),dd 4 0xed,0x43 ld16 Z80,R800109LD (n),IX 4 0xdd,0x22 ld16 Z80,R800110LD (n),IY 4 0xfd,0x22 ld16 Z80,R800111112LD SP,HL 1 0xf9 noargs Z80,R800,GB80113LD SP,IX 2 0xdd,0xf9 noargs Z80,R800114LD SP,IY 2 0xfd,0xf9 noargs Z80,R800115116PUSH qq 1 0xc5 ld16 Z80,R800,GB80117PUSH IX 2 0xdd,0xe5 ld16 Z80,R800118PUSH IY 2 0xfd,0xe5 ld16 Z80,R800119POP qq 1 0xc1 ld16 Z80,R800,GB80120POP IX 2 0xdd,0xe1 ld16 Z80,R800121POP IY 2 0xfd,0xe1 ld16 Z80,R800122123# 8 bit ALU group124ADD A,r 1 0x80 alu8 Z80,R800,GB80125ADD A,p 2 0xdd,0x80 alu8 Z80,R800126ADD A,q 2 0xfd,0x80 alu8 Z80,R800127ADD A,imm8 2 0xc6 alu8 Z80,R800,GB80128ADD A,(HL) 1 0x86 alu8 Z80,R800,GB80129ADD A,(IX+n) 3 0xdd,0x86 alu8 Z80,R800130ADD A,(IY+n) 3 0xfd,0x86 alu8 Z80,R800131132ADC A,r 1 0x88 alu8 Z80,R800,GB80133ADC A,p 2 0xdd,0x88 alu8 Z80,R800134ADC A,q 2 0xfd,0x88 alu8 Z80,R800135ADC A,imm8 2 0xce alu8 Z80,R800,GB80136ADC A,(HL) 1 0x8e alu8 Z80,R800,GB80137ADC A,(IX+n) 3 0xdd,0x8e alu8 Z80,R800138ADC A,(IY+n) 3 0xfd,0x8e alu8 Z80,R800139140SUB A,r 1 0x90 alu8 Z80,R800,GB80141SUB A,p 2 0xdd,0x90 alu8 Z80,R800142SUB A,q 2 0xfd,0x90 alu8 Z80,R800143SUB A,imm8 2 0xd6 alu8 Z80,R800,GB80144SUB A,(HL) 1 0x96 alu8 Z80,R800,GB80145SUB A,(IX+n) 3 0xdd,0x96 alu8 Z80,R800146SUB A,(IY+n) 3 0xfd,0x96 alu8 Z80,R800147148SBC A,r 1 0x98 alu8 Z80,R800,GB80149SBC A,p 2 0xdd,0x98 alu8 Z80,R800150SBC A,q 2 0xfd,0x98 alu8 Z80,R800151SBC A,imm8 2 0xde alu8 Z80,R800,GB80152SBC A,(HL) 1 0x9e alu8 Z80,R800,GB80153SBC A,(IX+n) 3 0xdd,0x9e alu8 Z80,R800154SBC A,(IY+n) 3 0xfd,0x9e alu8 Z80,R800155156AND A,r 1 0xa0 alu8 Z80,R800,GB80157AND A,p 2 0xdd,0xa0 alu8 Z80,R800158AND A,q 2 0xfd,0xa0 alu8 Z80,R800159AND A,imm8 2 0xe6 alu8 Z80,R800,GB80160AND A,(HL) 1 0xa6 alu8 Z80,R800,GB80161AND A,(IX+n) 3 0xdd,0xa6 alu8 Z80,R800162AND A,(IY+n) 3 0xfd,0xa6 alu8 Z80,R800163164OR A,r 1 0xb0 alu8 Z80,R800,GB80165OR A,p 2 0xdd,0xb0 alu8 Z80,R800166OR A,q 2 0xfd,0xb0 alu8 Z80,R800167OR A,imm8 2 0xf6 alu8 Z80,R800,GB80168OR A,(HL) 1 0xb6 alu8 Z80,R800,GB80169OR A,(IX+n) 3 0xdd,0xb6 alu8 Z80,R800170OR A,(IY+n) 3 0xfd,0xb6 alu8 Z80,R800171172XOR A,r 1 0xa8 alu8 Z80,R800,GB80173XOR A,p 2 0xdd,0xa8 alu8 Z80,R800174XOR A,q 2 0xfd,0xa8 alu8 Z80,R800175XOR A,imm8 2 0xee alu8 Z80,R800,GB80176XOR A,(HL) 1 0xae alu8 Z80,R800,GB80177XOR A,(IX+n) 3 0xdd,0xae alu8 Z80,R800178XOR A,(IY+n) 3 0xfd,0xae alu8 Z80,R800179180CP A,r 1 0xb8 alu8 Z80,R800,GB80181CP A,p 2 0xdd,0xb8 alu8 Z80,R800182CP A,q 2 0xfd,0xb8 alu8 Z80,R800183CP A,imm8 2 0xfe alu8 Z80,R800,GB80184CP A,(HL) 1 0xbe alu8 Z80,R800,GB80185CP A,(IX+n) 3 0xdd,0xbe alu8 Z80,R800186CP A,(IY+n) 3 0xfd,0xbe alu8 Z80,R800187188INC r 1 0x04 alu8 Z80,R800,GB80189INC p 2 0xdd,0x04 alu8 Z80,R800190INC q 2 0xfd,0x04 alu8 Z80,R800191INC (HL) 1 0x34 alu8 Z80,R800,GB80192INC (IX+n) 3 0xdd,0x34 alu8 Z80,R800193INC (IY+n) 3 0xfd,0x34 alu8 Z80,R800194195DEC r 1 0x05 alu8 Z80,R800,GB80196DEC p 2 0xdd,0x05 alu8 Z80,R800197DEC q 2 0xfd,0x05 alu8 Z80,R800198DEC (HL) 1 0x35 alu8 Z80,R800,GB80199DEC (IX+n) 3 0xdd,0x35 alu8 Z80,R800200DEC (IY+n) 3 0xfd,0x35 alu8 Z80,R800201202ADD SP,dd 2 0xE8 alu8 GB80203LD HL,SP+imm8 2 0xF8 alu8 GB80204205# 16 bit ALU group206ADD HL,dd 1 0x09 alu16 Z80,R800,GB80207ADC HL,dd 2 0xed,0x4a alu16 Z80,R800208SBC HL,dd 2 0xed,0x42 alu16 Z80,R800209ADD IX,pp 2 0xdd,0x09 alu16 Z80,R800210ADD IY,rr 2 0xfd,0x09 alu16 Z80,R800211212INC dd 1 0x03 alu16 Z80,R800,GB80213INC IX 2 0xdd,0x23 alu16 Z80,R800214INC IY 2 0xfd,0x23 alu16 Z80,R800215216DEC dd 1 0x0b alu16 Z80,R800,GB80217DEC IX 2 0xdd,0x2b alu16 Z80,R800218DEC IY 2 0xfd,0x2b alu16 Z80,R800219220# General purpose arithmetic and CPU control group221DAA none 1 0x27 noargs Z80,R800,GB80222CPL none 1 0x2f noargs Z80,R800,GB80223NEG none 2 0xed,0x44 noargs Z80,R800224CCF none 1 0x3f noargs Z80,R800,GB80225SCF none 1 0x37 noargs Z80,R800,GB80226NOP none 1 0x00 noargs Z80,R800,GB80227HALT none 1 0x76 noargs Z80,R800,GB80228STOP none 2 0x10,0x00 noargs GB80229DI none 1 0xf3 noargs Z80,R800,GB80230EI none 1 0xfb noargs Z80,R800,GB80231IM imm8 2 0xed,0x46 im Z80,R800232233# Exchange, block transfer and search groups234EX DE,HL 1 0xeb noargs Z80,R800235EX AF,AF' 1 0x08 noargs Z80,R800236EXX none 1 0xd9 noargs Z80,R800237EX (SP),HL 1 0xe3 noargs Z80,R800238EX (SP),IX 2 0xdd,0xe3 noargs Z80,R800239EX (SP),IY 2 0xfd,0xe3 noargs Z80,R800240241LDI none 2 0xed,0xa0 noargs Z80,R800242LDIR none 2 0xed,0xb0 noargs Z80,R800243LDD none 2 0xed,0xa8 noargs Z80,R800244LDDR none 2 0xed,0xb8 noargs Z80,R800245246CPI none 2 0xed,0xa1 noargs Z80,R800247CPIR none 2 0xed,0xb1 noargs Z80,R800248CPD none 2 0xed,0xa9 noargs Z80,R800249CPDR none 2 0xed,0xb9 noargs Z80,R800250251# Rotate and shift group252RLCA none 1 0x07 noargs Z80,R800,GB80253RLA none 1 0x17 noargs Z80,R800,GB80254RRCA none 1 0x0f noargs Z80,R800,GB80255RRA none 1 0x1f noargs Z80,R800,GB80256257RLD none 2 0xed,0x6f noargs Z80,R800258RRD none 2 0xed,0x67 noargs Z80,R800259260RLC r 2 0xcb,0x00 rot_bit Z80,R800,GB80261RLC (HL) 2 0xcb,0x06 rot_bit Z80,R800,GB80262RLC (IX+n) 4 0xdd,0xcb,0,0x06 rot_bit Z80,R800263RLC (IY+n) 4 0xfd,0xcb,0,0x06 rot_bit Z80,R800264RLC (IX+n),r 4 0xdd,0xcb,0,0x00 rot_bit Z80,R800265RLC (IY+n),r 4 0xfd,0xcb,0,0x00 rot_bit Z80,R800266267RL r 2 0xcb,0x10 rot_bit Z80,R800,GB80268RL (HL) 2 0xcb,0x16 rot_bit Z80,R800,GB80269RL (IX+n) 4 0xdd,0xcb,0,0x16 rot_bit Z80,R800270RL (IY+n) 4 0xfd,0xcb,0,0x16 rot_bit Z80,R800271RL (IX+n),r 4 0xdd,0xcb,0,0x10 rot_bit Z80,R800272RL (IY+n),r 4 0xfd,0xcb,0,0x10 rot_bit Z80,R800273274RRC r 2 0xcb,0x08 rot_bit Z80,R800,GB80275RRC (HL) 2 0xcb,0x0e rot_bit Z80,R800,GB80276RRC (IX+n) 4 0xdd,0xcb,0,0x0e rot_bit Z80,R800277RRC (IY+n) 4 0xfd,0xcb,0,0x0e rot_bit Z80,R800278RRC (IX+n),r 4 0xdd,0xcb,0,0x08 rot_bit Z80,R800279RRC (IY+n),r 4 0xfd,0xcb,0,0x08 rot_bit Z80,R800280281RR r 2 0xcb,0x18 rot_bit Z80,R800,GB80282RR (HL) 2 0xcb,0x1e rot_bit Z80,R800,GB80283RR (IX+n) 4 0xdd,0xcb,0,0x1e rot_bit Z80,R800284RR (IY+n) 4 0xfd,0xcb,0,0x1e rot_bit Z80,R800285RR (IX+n),r 4 0xdd,0xcb,0,0x18 rot_bit Z80,R800286RR (IY+n),r 4 0xfd,0xcb,0,0x18 rot_bit Z80,R800287288SLA r 2 0xcb,0x20 rot_bit Z80,R800,GB80289SLA (HL) 2 0xcb,0x26 rot_bit Z80,R800,GB80290SLA (IX+n) 4 0xdd,0xcb,0,0x26 rot_bit Z80,R800291SLA (IY+n) 4 0xfd,0xcb,0,0x26 rot_bit Z80,R800292SLA (IX+n),r 4 0xdd,0xcb,0,0x20 rot_bit Z80,R800293SLA (IY+n),r 4 0xfd,0xcb,0,0x20 rot_bit Z80,R800294295SWAP r 2 0xcb,0x30 rot_bit GB80296SWAP (HL) 2 0xcb,0x36 rot_bit GB80297298SLL r 2 0xcb,0x30 rot_bit Z80299SLL (HL) 2 0xcb,0x36 rot_bit Z80300SLL (IX+n) 4 0xdd,0xcb,0,0x36 rot_bit Z80301SLL (IY+n) 4 0xfd,0xcb,0,0x36 rot_bit Z80302SLL (IX+n),r 4 0xdd,0xcb,0,0x30 rot_bit Z80303SLL (IY+n),r 4 0xfd,0xcb,0,0x30 rot_bit Z80304305SRA r 2 0xcb,0x28 rot_bit Z80,R800,GB80306SRA (HL) 2 0xcb,0x2e rot_bit Z80,R800,GB80307SRA (IX+n) 4 0xdd,0xcb,0,0x2e rot_bit Z80,R800308SRA (IY+n) 4 0xfd,0xcb,0,0x2e rot_bit Z80,R800309SRA (IX+n),r 4 0xdd,0xcb,0,0x28 rot_bit Z80,R800310SRA (IY+n),r 4 0xfd,0xcb,0,0x28 rot_bit Z80,R800311312SRL r 2 0xcb,0x38 rot_bit Z80,R800,GB80313SRL (HL) 2 0xcb,0x3e rot_bit Z80,R800,GB80314SRL (IX+n) 4 0xdd,0xcb,0,0x3e rot_bit Z80,R800315SRL (IY+n) 4 0xfd,0xcb,0,0x3e rot_bit Z80,R800316SRL (IX+n),r 4 0xdd,0xcb,0,0x38 rot_bit Z80,R800317SRL (IY+n),r 4 0xfd,0xcb,0,0x38 rot_bit Z80,R800318319# Bit manipulation group320BIT imm3,r 2 0xcb,0x40 rot_bit Z80,R800,GB80321BIT imm3,(HL) 2 0xcb,0x46 rot_bit Z80,R800322BIT imm3,(IX+n) 4 0xdd,0xcb,0,0x46 rot_bit Z80,R800323BIT imm3,(IY+n) 4 0xfd,0xcb,0,0x46 rot_bit Z80,R800324325SET imm3,r 2 0xcb,0xc0 rot_bit Z80,R800,GB80326SET imm3,(HL) 2 0xcb,0xc6 rot_bit Z80,R800,GB80327SET imm3,(IX+n) 4 0xdd,0xcb,0,0xc6 rot_bit Z80,R800328SET imm3,(IY+n) 4 0xfd,0xcb,0,0xc6 rot_bit Z80,R800329SET imm3,(IX+n),r 4 0xdd,0xcb,0,0xc0 rot_bit Z80,R800330SET imm3,(IY+n),r 4 0xfd,0xcb,0,0xc0 rot_bit Z80,R800331332RES imm3,r 2 0xcb,0x80 rot_bit Z80,R800,GB80333RES imm3,(HL) 2 0xcb,0x86 rot_bit Z80,R800,GB80334RES imm3,(IX+n) 4 0xdd,0xcb,0,0x86 rot_bit Z80,R800335RES imm3,(IY+n) 4 0xfd,0xcb,0,0x86 rot_bit Z80,R800336RES imm3,(IX+n),r 4 0xdd,0xcb,0,0x80 rot_bit Z80,R800337RES imm3,(IY+n),r 4 0xfd,0xcb,0,0x80 rot_bit Z80,R800338339# Input and output group340IN A,(n) 2 0xdb inout Z80,R800341IN r,(C) 2 0xed,0x40 inout Z80,R800342IN F,(C) 2 0xed,0x70 inout Z80,R800343INI none 2 0xed,0xa2 noargs Z80,R800344INIR none 2 0xed,0xb2 noargs Z80,R800345IND none 2 0xed,0xaa noargs Z80,R800346INDR none 2 0xed,0xba noargs Z80,R800347348OUT (n),A 2 0xd3 inout Z80,R800349OUT (C),r 2 0xed,0x41 inout Z80,R800350OUT (C),0 2 0xed,0x71 inout Z80,R800351OUTI none 2 0xed,0xa3 noargs Z80,R800352OTIR none 2 0xed,0xb3 noargs Z80,R800353OUTD none 2 0xed,0xab noargs Z80,R800354OTDR none 2 0xed,0xbb noargs Z80,R800355356# Jump group357JP imm16 3 0xc3 jp Z80,R800,GB80358JP cc,imm16 3 0xc2 jp Z80,R800,GB80359JR imm16 2 0x18 jr Z80,R800,GB80360JR ss,imm16 2 0x00 jr Z80,R800,GB80361JP HL 1 0xe9 noargs Z80,R800,GB80362JP IX 2 0xdd,0xe9 noargs Z80,R800363JP IY 2 0xfd,0xe9 noargs Z80,R800364DJNZ imm16 2 0x10 jr Z80,R800365366# Call and return group367CALL imm16 3 0xcd jp Z80,R800,GB80368CALL cc,imm16 3 0xc4 jp Z80,R800,GB80369RET none 1 0xc9 noargs Z80,R800,GB80370RET cc 1 0xc0 jp Z80,R800,GB80371RETI none 2 0xed,0x4d noargs Z80,R800372RETI none 1 0xd9 noargs GB80373RETN none 2 0xed,0x45 noargs Z80,R800374RST rst 1 0xc7 rst Z80,R800,GB80