.text .org 0 ;; eZ80 instructions ; AND A,x group and a,a and a,b and a,c and a,d and a,e and a,h and a,l and a,(hl) and a,0xaa and a,(ix+5) and a,(iy-5) ; CP A,x group cp a,a cp a,b cp a,c cp a,d cp a,e cp a,h cp a,l cp a,(hl) cp a,0xaa cp a,(ix+5) cp a,(iy-5) ; OR A,x group or a,a or a,b or a,c or a,d or a,e or a,h or a,l or a,(hl) or a,0xaa or a,(ix+5) or a,(iy-5) ; SUB A,x group sub a,a sub a,b sub a,c sub a,d sub a,e sub a,h sub a,l sub a,(hl) sub a,0xaa sub a,(ix+5) sub a,(iy-5) ; TST A,x group tst a,a tst a,b tst a,c tst a,d tst a,e tst a,h tst a,l tst a,(hl) tst a,0x0f ; XOR A,x group xor a,a xor a,b xor a,c xor a,d xor a,e xor a,h xor a,l xor a,(hl) xor a,0xaa xor a,(ix+5) xor a,(iy-5) ; IN r,(BC) group (new naming) in a,(bc) in b,(bc) in c,(bc) in d,(bc) in e,(bc) in h,(bc) in l,(bc) ; OUT (BC),r group (new naming) out (bc),a out (bc),b out (bc),c out (bc),d out (bc),e out (bc),h out (bc),l ; LD rr,(ii+d) group ld bc,(ix-7) ld de,(ix-7) ld hl,(ix-7) ld ix,(ix-7) ld iy,(ix-7) ld bc,(iy+38) ld de,(iy+38) ld hl,(iy+38) ld ix,(iy+38) ld iy,(iy+38) ; LD (ii+d),rr group ld (ix+126),bc ld (ix+126),de ld (ix+126),hl ld (ix+126),ix ld (ix+126),iy ld (iy-98),bc ld (iy-98),de ld (iy-98),hl ld (iy-98),ix ld (iy-98),iy ; LEA rr,ii+d group lea bc,ix-27 lea de,ix-27 lea hl,ix-27 lea ix,ix-27 lea iy,ix-27 lea bc,iy+12 lea de,iy+12 lea hl,iy+12 lea ix,iy+12 lea iy,iy+12 ; PEA ii+d group pea ix+127 pea iy-128 ; IN0 group in0 a,(0x5) in0 b,(0x5) in0 c,(0x5) in0 d,(0x5) in0 e,(0x5) in0 h,(0x5) in0 l,(0x5) ; OUT0 group out0 (0x5),a out0 (0x5),b out0 (0x5),c out0 (0x5),d out0 (0x5),e out0 (0x5),h out0 (0x5),l ; MLT group mlt bc mlt de mlt hl mlt sp ; TSTIO instruction tstio 0f0h ; SLP instruction slp ; ADLMIX flag manipulation instructions stmix rsmix ; Additional block I/O instructions inim otim ini2 indm otdm ind2 inimr otimr ini2r indmr otdmr ind2r outi2 outd2 oti2r otd2r inirx otirx indrx otdrx ; Index registers halves ld a,ixh ld b,ixh ld c,ixh ld d,ixh ld e,ixh ld ixh,ixh ld ixl,ixh ld a,ixl ld b,ixl ld c,ixl ld d,ixl ld e,ixl ld ixh,ixl ld ixl,ixl ld a,iyh ld b,iyh ld c,iyh ld d,iyh ld e,iyh ld iyh,iyh ld iyl,iyh ld a,iyl ld b,iyl ld c,iyl ld d,iyl ld e,iyl ld iyh,iyl ld iyl,iyl ld ixh,a ld ixh,b ld ixh,c ld ixh,d ld ixh,e ld ixh,ixh ld ixh,ixl ld ixh,25 ld ixl,a ld ixl,b ld ixl,c ld ixl,d ld ixl,e ld ixl,ixh ld ixl,ixl ld ixl,25 ld iyh,a ld iyh,b ld iyh,c ld iyh,d ld iyh,e ld iyh,iyh ld iyh,iyl ld iyh,25 ld iyl,a ld iyl,b ld iyl,c ld iyl,d ld iyl,e ld iyl,iyh ld iyl,iyl ld iyl,25 add a,ixh add a,ixl add a,iyh add a,iyl adc a,ixh adc a,ixl adc a,iyh adc a,iyl cp a,ixh cp a,ixl cp a,iyh cp a,iyl dec ixh dec ixl dec iyh dec iyl inc ixh inc ixl inc iyh inc iyl sbc a,ixh sbc a,ixl sbc a,iyh sbc a,iyl sub a,ixh sub a,ixl sub a,iyh sub a,iyl and a,ixh and a,ixl and a,iyh and a,iyl or a,ixh or a,ixl or a,iyh or a,iyl xor a,ixh xor a,ixl xor a,iyh xor a,iyl ; Standard Z80 instructions adc a,(hl) adc a,(ix+9) adc a,(iy+9) adc a,3 adc a,a adc a,b adc a,c adc a,d adc a,e adc a,h adc a,l adc hl,bc adc hl,de adc hl,hl adc hl,sp add a,(hl) add a,(ix+9) add a,(iy+9) add a,3 add a,a add a,b add a,c add a,d add a,e add a,h add a,l add hl,bc add hl,de add hl,hl add hl,sp add ix,bc add ix,de add ix,ix add ix,sp add iy,bc add iy,de add iy,iy add iy,sp and (hl) and (ix+9) and (iy+9) and 3 and a and b and c and d and e and h and l bit 0,(hl) bit 0,(ix+9) bit 0,(iy+9) bit 0,a bit 0,b bit 0,c bit 0,d bit 0,e bit 0,h bit 0,l bit 1,(hl) bit 1,(ix+9) bit 1,(iy+9) bit 1,a bit 1,b bit 1,c bit 1,d bit 1,e bit 1,h bit 1,l bit 2,(hl) bit 2,(ix+9) bit 2,(iy+9) bit 2,a bit 2,b bit 2,c bit 2,d bit 2,e bit 2,h bit 2,l bit 3,(hl) bit 3,(ix+9) bit 3,(iy+9) bit 3,a bit 3,b bit 3,c bit 3,d bit 3,e bit 3,h bit 3,l bit 4,(hl) bit 4,(ix+9) bit 4,(iy+9) bit 4,a bit 4,b bit 4,c bit 4,d bit 4,e bit 4,h bit 4,l bit 5,(hl) bit 5,(ix+9) bit 5,(iy+9) bit 5,a bit 5,b bit 5,c bit 5,d bit 5,e bit 5,h bit 5,l bit 6,(hl) bit 6,(ix+9) bit 6,(iy+9) bit 6,a bit 6,b bit 6,c bit 6,d bit 6,e bit 6,h bit 6,l bit 7,(hl) bit 7,(ix+9) bit 7,(iy+9) bit 7,a bit 7,b bit 7,c bit 7,d bit 7,e bit 7,h bit 7,l call 0x1234 call c,0x1234 call m,0x1234 call nc,0x1234 call nz,0x1234 call p,0x1234 call pe,0x1234 call po,0x1234 call z,0x1234 ccf cp (hl) cp (ix+9) cp (iy+9) cp 03 cp a cp b cp c cp d cp e cp h cp l cpd cpdr cpi cpir cpl daa dec (hl) dec (ix+9) dec (iy+9) dec a dec b dec bc dec c dec d dec de dec e dec h dec hl dec ix dec iy dec l dec sp di djnz .+7 ei ex (sp),hl ex (sp),ix ex (sp),iy ex af,af' ;' ex de,hl exx halt im 0 im 1 im 2 in a,(c) in a,(3) in b,(c) in c,(c) in d,(c) in e,(c) in h,(c) in l,(c) inc (hl) inc (ix+9) inc (iy+9) inc a inc b inc bc inc c inc d inc de inc e inc h inc hl inc ix inc iy inc l inc sp ind indr ini inir jp (hl) jp (ix) jp (iy) jp 0x1234 jp c,0x1234 jp m,0x1234 jp nc,0x1234 jp nz,0x1234 jp p,0x1234 jp pe,0x1234 jp po,0x1234 jp z,0x1234 jr .+7 jr c,.+7 jr nc,.+7 jr nz,.+7 jr z,.+7 ld (0x1234),a ld (0x1234),bc ld (0x1234),de ld (0x1234),hl ld (0x1234),ix ld (0x1234),iy ld (0x1234),sp ld (bc),a ld (de),a ld (hl),3 ld (hl),a ld (hl),b ld (hl),c ld (hl),d ld (hl),e ld (hl),h ld (hl),l ld (ix+9),3 ld (ix+9),a ld (ix+9),b ld (ix+9),c ld (ix+9),d ld (ix+9),e ld (ix+9),h ld (ix+9),l ld (iy+9),3 ld (iy+9),a ld (iy+9),b ld (iy+9),c ld (iy+9),d ld (iy+9),e ld (iy+9),h ld (iy+9),l ld a,(0x1234) ld a,(bc) ld a,(de) ld a,(hl) ld a,(ix+9) ld a,(iy+9) ld a,3 ld a,a ld a,b ld a,c ld a,d ld a,e ld a,h ld a,i ld a,l ld a,r ld b,(hl) ld b,(ix+9) ld b,(iy+9) ld b,3 ld b,a nop ;ld b,b ld b,c ld b,d ld b,e ld b,h ld b,l ld bc,(0x1234) ld bc,0x1234 ld c,(hl) ld c,(ix+9) ld c,(iy+9) ld c,3 ld c,a ld c,b nop ;ld c,c ld c,d ld c,e ld c,h ld c,l ld d,(hl) ld d,(ix+9) ld d,(iy+9) ld d,3 ld d,a ld d,b ld d,c nop ;ld d,d ld d,e ld d,h ld d,l ld de,(0x1234) ld de,0x1234 ld e,(hl) ld e,(ix+9) ld e,(iy+9) ld e,3 ld e,a ld e,b ld e,c ld e,d nop ;ld e,e ld e,h ld e,l ld h,(hl) ld h,(ix+9) ld h,(iy+9) ld h,3 ld h,a ld h,b ld h,c ld h,d ld h,e ld h,h ld h,l ld hl,(0x1234) ld hl,0x1234 ld i,a ld ix,(0x1234) ld ix,0x1234 ld iy,(0x1234) ld iy,0x1234 ld l,(hl) ld l,(ix+9) ld l,(iy+9) ld l,3 ld l,a ld l,b ld l,c ld l,d ld l,e ld l,h ld l,l ld r,a ld sp,(0x1234) ld sp,0x1234 ld sp,hl ld sp,ix ld sp,iy ldd lddr ldi ldir neg nop or (hl) or (ix+9) or (iy+9) or 3 or a or b or c or d or e or h or l otdr otir out (c),a out (c),b out (c),c out (c),d out (c),e out (c),h out (c),l out (3),a outd outi pop af pop bc pop de pop hl pop ix pop iy push af push bc push de push hl push ix push iy res 0,(hl) res 0,(ix+9) res 0,(iy+9) res 0,a res 0,b res 0,c res 0,d res 0,e res 0,h res 0,l res 1,(hl) res 1,(ix+9) res 1,(iy+9) res 1,a res 1,b res 1,c res 1,d res 1,e res 1,h res 1,l res 2,(hl) res 2,(ix+9) res 2,(iy+9) res 2,a res 2,b res 2,c res 2,d res 2,e res 2,h res 2,l res 3,(hl) res 3,(ix+9) res 3,(iy+9) res 3,a res 3,b res 3,c res 3,d res 3,e res 3,h res 3,l res 4,(hl) res 4,(ix+9) res 4,(iy+9) res 4,a res 4,b res 4,c res 4,d res 4,e res 4,h res 4,l res 5,(hl) res 5,(ix+9) res 5,(iy+9) res 5,a res 5,b res 5,c res 5,d res 5,e res 5,h res 5,l res 6,(hl) res 6,(ix+9) res 6,(iy+9) res 6,a res 6,b res 6,c res 6,d res 6,e res 6,h res 6,l res 7,(hl) res 7,(ix+9) res 7,(iy+9) res 7,a res 7,b res 7,c res 7,d res 7,e res 7,h res 7,l ret ret c ret m ret nc ret nz ret p ret pe ret po ret z reti retn rl (hl) rl (ix+9) rl (iy+9) rl a rl b rl c rl d rl e rl h rl l rla rlc (hl) rlc (ix+9) rlc (iy+9) rlc a rlc b rlc c rlc d rlc e rlc h rlc l rlca rld rr (hl) rr (ix+9) rr (iy+9) rr a rr b rr c rr d rr e rr h rr l rra rrc (hl) rrc (ix+9) rrc (iy+9) rrc a rrc b rrc c rrc d rrc e rrc h rrc l rrca rrd rst 0x00 rst 0x08 rst 0x10 rst 0x18 rst 0x20 rst 0x28 rst 0x30 rst 0x38 sbc a,(hl) sbc a,(ix+9) sbc a,(iy+9) sbc a,3 sbc a,a sbc a,b sbc a,c sbc a,d sbc a,e sbc a,h sbc a,l sbc hl,bc sbc hl,de sbc hl,hl sbc hl,sp scf set 0,(hl) set 0,(ix+9) set 0,(iy+9) set 0,a set 0,b set 0,c set 0,d set 0,e set 0,h set 0,l set 1,(hl) set 1,(ix+9) set 1,(iy+9) set 1,a set 1,b set 1,c set 1,d set 1,e set 1,h set 1,l set 2,(hl) set 2,(ix+9) set 2,(iy+9) set 2,a set 2,b set 2,c set 2,d set 2,e set 2,h set 2,l set 3,(hl) set 3,(ix+9) set 3,(iy+9) set 3,a set 3,b set 3,c set 3,d set 3,e set 3,h set 3,l set 4,(hl) set 4,(ix+9) set 4,(iy+9) set 4,a set 4,b set 4,c set 4,d set 4,e set 4,h set 4,l set 5,(hl) set 5,(ix+9) set 5,(iy+9) set 5,a set 5,b set 5,c set 5,d set 5,e set 5,h set 5,l set 6,(hl) set 6,(ix+9) set 6,(iy+9) set 6,a set 6,b set 6,c set 6,d set 6,e set 6,h set 6,l set 7,(hl) set 7,(ix+9) set 7,(iy+9) set 7,a set 7,b set 7,c set 7,d set 7,e set 7,h set 7,l sla (hl) sla (ix+9) sla (iy+9) sla a sla b sla c sla d sla e sla h sla l sra (hl) sra (ix+9) sra (iy+9) sra a sra b sra c sra d sra e sra h sra l srl (hl) srl (ix+9) srl (iy+9) srl a srl b srl c srl d srl e srl h srl l sub (hl) sub (ix+9) sub (iy+9) sub 3 sub a sub b sub c sub d sub e sub h sub l xor (hl) xor (ix+9) xor (iy+9) xor 3 xor a xor b xor c xor d xor e xor h xor l ld bc,(hl) ld de,(hl) ld hl,(hl) ld ix,(hl) ld iy,(hl) ld (hl),bc ld (hl),de ld (hl),hl ld (hl),ix ld (hl),iy