aboutsummaryrefslogtreecommitdiffstats
path: root/tests/t_z380/t_z380.asm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/t_z380/t_z380.asm')
-rw-r--r--tests/t_z380/t_z380.asm677
1 files changed, 677 insertions, 0 deletions
diff --git a/tests/t_z380/t_z380.asm b/tests/t_z380/t_z380.asm
new file mode 100644
index 0000000..a681044
--- /dev/null
+++ b/tests/t_z380/t_z380.asm
@@ -0,0 +1,677 @@
+ cpu z380
+ include regz380
+
+ extmode on
+
+ page 0
+ relaxed on
+
+ ddir w
+ ddir ib,w
+ ddir iw,w
+ ddir ib
+ ddir lw
+ ddir ib,lw
+ ddir iw,lw
+ ddir iw
+
+ cpl
+ cpl a
+ neg
+ neg a
+
+ ei
+ ei $40
+ di
+ di $bf
+
+ btest
+ exall
+ exxx
+ exxy
+ indw
+ indrw
+ iniw
+ inirw
+ lddw
+ lddrw
+ ldiw
+ ldirw
+ mtest
+ otdrw
+ otirw
+ outdw
+ outiw
+ retb
+
+ cplw
+ cplw hl
+ negw
+ negw hl
+
+ ret
+ ret nz
+ ret z
+ ret nc
+ ret c
+ ret po
+ ret nv
+ ret pe
+ ret v
+ ret p
+ ret ns
+ ret m
+ ret s
+
+ jp 1234h
+ jp 123456h
+ ddir ib
+ jp 123456h
+ ddir iw
+ jp 123456h
+ ddir w
+ jp 123456h
+ ddir lw
+ jp 123456h
+ ddir w,iw
+ jp 123456h
+ jp 12345678h
+ ddir lw
+ jp 12345678h
+ jp z,4321h
+ jp nc,654321h
+ jp pe,87654321h
+ jp (hl)
+ jp (ix)
+ jp (iy)
+
+ call $1234
+ call $123456
+ call $12345678
+ call nz,$4321
+ call m,$654321
+ call po,$87654321
+
+ jr $+20
+ jr c,$-20
+ jr $-200
+ jr z,$+200
+ jr $+$200000
+ jr nc,$-$200000
+
+ calr $+20
+ calr c,$-20
+ calr $-200
+ calr z,$+200
+ calr $+$200000
+ calr nc,$-$200000
+
+ djnz $+20
+ djnz $-200
+ djnz $+$200000
+
+ exts a
+ exts
+ extsw hl
+ extsw
+
+ and a
+ and a,b
+ and a,c
+ and a,d
+ and a,e
+ and a,h
+ and a,l
+ and a,ixl
+ and a,ixu
+ and a,iyl
+ and a,iyu
+ and a,$55
+ and a,(hl)
+ and a,(ix+20)
+ and a,(iy-300)
+ and a,(ix+100000)
+
+ andw ix
+ andw hl,ix
+ andw hl,iy
+ andw hl,bc
+ andw hl,de
+ andw hl,hl
+ andw hl,(ix+5)
+ andw hl,(iy-200)
+ andw hl,55aah
+
+ cp a
+ cp a,b
+ cp a,c
+ cp a,d
+ cp a,e
+ cp a,h
+ cp a,l
+ cp a,ixl
+ cp a,ixu
+ cp a,iyl
+ cp a,iyu
+ cp a,$34
+ cp a,(hl)
+ cp a,(ix-20)
+ cp a,(iy+$300)
+ cp a,(ix+100000h)
+
+ cpw ix
+ cpw hl,ix
+ cpw hl,iy
+ cpw hl,bc
+ cpw hl,de
+ cpw hl,hl
+ cpw hl,(ix+17)
+ cpw hl,(iy-200)
+ cpw hl,$aa55
+
+ or a
+ or a,b
+ or a,c
+ or a,d
+ or a,e
+ or a,h
+ or a,l
+ or a,ixl
+ or a,ixu
+ or a,iyl
+ or a,iyu
+ or a,$34
+ or a,(hl)
+ or a,(ix-20)
+ or a,(iy+$300)
+ or a,(ix+100000h)
+
+ orw ix
+ orw hl,ix
+ orw hl,iy
+ orw hl,bc
+ orw hl,de
+ orw hl,hl
+ orw hl,(ix+17)
+ orw hl,(iy-200)
+ orw hl,$aa55
+
+ xor a
+ xor a,b
+ xor a,c
+ xor a,d
+ xor a,e
+ xor a,h
+ xor a,l
+ xor a,ixl
+ xor a,ixu
+ xor a,iyl
+ xor a,iyu
+ xor a,$34
+ xor a,(hl)
+ xor a,(ix-20)
+ xor a,(iy+$300)
+ xor a,(ix+100000h)
+
+ xorw ix
+ xorw hl,ix
+ xorw hl,iy
+ xorw hl,bc
+ xorw hl,de
+ xorw hl,hl
+ xorw hl,(ix+17)
+ xorw hl,(iy-200)
+ xorw hl,$aa55
+
+ sub a
+ sub a,b
+ sub a,c
+ sub a,d
+ sub a,e
+ sub a,h
+ sub a,l
+ sub a,ixl
+ sub a,ixu
+ sub a,iyl
+ sub a,iyu
+ sub a,$34
+ sub a,(hl)
+ sub a,(ix-20)
+ sub a,(iy+$300)
+ sub a,(ix+100000h)
+
+ sub hl,(1234h)
+ sub hl,(123456h)
+ sub hl,(12345678h)
+ sub sp,3412o
+
+ subw ix
+ subw hl,ix
+ subw hl,iy
+ subw hl,bc
+ subw hl,de
+ subw hl,hl
+ subw hl,(ix+17)
+ subw hl,(iy-200)
+ subw hl,$aa55
+
+ add a,b
+ add a,iyu
+ add a,' '
+ add a,(hl)
+ add a,(ix+10)
+ add a,(ix+1000)
+ add hl,bc
+ add ix,de
+ add iy,iy
+ add ix,sp
+ add hl,(12345678h)
+ add sp,3412o
+
+ addw bc
+ addw hl,hl
+ addw hl,iy
+ addw hl,2314h
+ addw hl,(ix+128)
+
+ adc a,h
+ adc a,ixu
+ adc a,20
+ adc a,(hl)
+ adc a,(ix-500)
+ adc hl,sp
+
+ adcw hl,bc
+ adcw hl,iy
+ adcw hl,$abcd
+ adcw hl,(iy-30)
+
+ sbc a,d
+ sbc a,iyl
+ sbc a,20h
+ sbc a,(hl)
+ sbc a,(ix+500)
+ sbc hl,sp
+
+ sbcw hl,bc
+ sbcw hl,iy
+ sbcw hl,$abcd
+ sbcw hl,(iy-30)
+
+ dec a
+ dec (hl)
+ dec ixu
+ dec (ix+35)
+
+ decw de
+ dec iy
+
+ inc a
+ inc (hl)
+ inc ixu
+ inc (ix+35)
+
+ incw de
+ inc iy
+
+ rl d
+ rl (hl)
+ rl (ix+200)
+ rlw ix
+ rlw iy
+ rlw de
+ rlw hl
+ rlw (hl)
+ rlw (iy+$100000)
+
+ rlc d
+ rlc (hl)
+ rlc (ix+200)
+ rlcw ix
+ rlcw iy
+ rlcw de
+ rlcw hl
+ rlcw (hl)
+ rlcw (iy+$100000)
+
+ rr d
+ rr (hl)
+ rr (ix+200)
+ rrw ix
+ rrw iy
+ rrw de
+ rrw hl
+ rrw (hl)
+ rrw (iy+$100000)
+
+ rrc d
+ rrc (hl)
+ rrc (ix+200)
+ rrcw ix
+ rrcw iy
+ rrcw de
+ rrcw hl
+ rrcw (hl)
+ rrcw (iy+$100000)
+
+ sla d
+ sla (hl)
+ sla (ix+200)
+ slaw ix
+ slaw iy
+ slaw de
+ slaw hl
+ slaw (hl)
+ slaw (iy+$100000)
+
+ sra d
+ sra (hl)
+ sra (ix+200)
+ sraw ix
+ sraw iy
+ sraw de
+ sraw hl
+ sraw (hl)
+ sraw (iy+$100000)
+
+ srl d
+ srl (hl)
+ srl (ix+200)
+ srlw ix
+ srlw iy
+ srlw de
+ srlw hl
+ srlw (hl)
+ srlw (iy+$100000)
+
+ bit 5,a
+ bit 6,(hl)
+ bit 3,(ix+67)
+
+ res 5,a
+ res 6,(hl)
+ res 3,(ix+67)
+
+ set 5,a
+ set 6,(hl)
+ set 3,(ix+67)
+
+ mlt bc
+ mlt hl
+ mlt sp
+
+ ld a,c
+ ld a,h
+ ld a,iyu
+ ld a,ixl
+ ld a,(hl)
+ ld a,(ix+20)
+ ld a,(iy-300)
+ ld a,(bc)
+ ld a,(de)
+ ld a,'A'
+ ld a,(2000h)
+ ld a,(10000h)
+ ld a,r
+ ld a,i
+ ld d,a
+ ld d,e
+ ld d,ixl
+ ld d,(hl)
+ ld d,(iy+15)
+ ld d,'D'
+ ld ixl,a
+ ld iyu,'I'
+ ld iyl,iyu
+ ld ixu,ixl
+ ld ixl,e
+ ld (hl),a
+ ld (hl),c
+ ld (ix+100),a
+ ld (iy-200),d
+ ld (hl),'H'
+ ld (ix),'X'
+ ld (hl),hl
+ ld (hl),de
+ ld (hl),bc
+ ld (hl),ix
+ ld (hl),iy
+ ld (ix),hl
+ ld (ix),de
+ ld (ix),bc
+ ld (iy),hl
+ ld (iy),de
+ ld (iy),bc
+ ld (iy),ix
+ ld (ix+123456h),iy
+ ld sp,hl
+ ld sp,iy
+ ddir lw
+ ld sp,123456h
+ ld sp,(6)
+ ld bc,(hl)
+ ld de,(hl)
+ ld hl,(hl)
+ ld bc,(ix)
+ ld de,(ix)
+ ld hl,(ix)
+ ld bc,(iy)
+ ld de,(iy)
+ ld hl,(iy)
+ ld bc,hl
+ ld de,bc
+ ld de,ix
+ ld hl,iy
+ ld de,(bc)
+ ld hl,(de)
+ ld hl,2000h
+ ddir lw
+ ld hl,12345687h
+ ld hl,(2000h)
+ ld de,(20000h)
+ ld hl,(sp+5)
+ ld de,(sp-200)
+ ld ix,(hl)
+ ld iy,(hl)
+ ld ix,(iy)
+ ld iy,(ix)
+ ld iy,hl
+ ld ix,bc
+ ld ix,iy
+ ld iy,ix
+ ld ix,(bc)
+ ld iy,(de)
+ ddir lw
+ ld ix,123456h
+ ld iy,0
+ ld ix,(2000h)
+ ld iy,(87654321h)
+ ld ix,(sp)
+ ld (bc),a
+ ld (de),a
+ ld (bc),de
+ ld (de),hl
+ ld (de),iy
+ ld ($20001),a
+ ld (123456h),hl
+ ld (123456h),ix
+ ld (123456h),de
+ ld (123456h),sp
+ ld i,a
+ ld i,hl
+ ld r,a
+ ld hl,i
+ ld (sp),de
+ ld (sp),ix
+ ld (hl),10
+ ldw (hl),1000
+ ddir lw
+ ldw (hl),100000
+ ldw (bc),30
+ ldw (de),40
+
+ pop af
+ pop sr
+ pop bc
+ pop de
+ pop hl
+ pop ix
+ pop iy
+ push af
+ push sr
+ push 300
+ push bc
+ push de
+ push hl
+ push ix
+ push iy
+
+ ex af,af'
+ ex (sp),hl
+ ex hl,(sp)
+ ex (sp),ix
+ ex ix,(sp)
+ ex (sp),iy
+ ex iy,(sp)
+ ex de,hl
+ ex hl,de
+ ex a,a'
+ ex c,c'
+ ex a,h
+ ex d,a
+ ex a,(hl)
+ ex (hl),a
+ ex bc,de
+ ex bc,hl
+ ex bc,ix
+ ex bc,iy
+ ex de,bc
+ ex de,hl
+ ex de,ix
+ ex de,iy
+ ex hl,bc
+ ex hl,de
+ ex hl,ix
+ ex hl,iy
+ ex ix,bc
+ ex ix,de
+ ex ix,hl
+ ex ix,iy
+ ex iy,bc
+ ex iy,de
+ ex iy,hl
+ ex iy,ix
+ ex bc,bc'
+ ex de,de'
+ ex hl,hl'
+ ex ix,ix'
+ ex iy,iy'
+
+ im 0
+ im 1
+ im 2
+ im 3
+
+ in a,(12h)
+ out (12h),a
+ in c,(c)
+ out (c),c
+ out (c),12h
+
+ inw bc,(c)
+ outw (c),bc
+ inw de,(c)
+ outw (c),de
+ inw hl,(c)
+ outw (c),hl
+ outw (c),$2002
+
+ in0 d,(20h)
+ in0 (20h)
+ out0 (20h),e
+
+ ina a,(12h)
+ inaw hl,(1234h)
+ outa (123456h),a
+ outaw (12345678h),hl
+
+ tstio 1<<7
+
+ tst a
+ tst (hl)
+ tst 33h
+
+ divuw (ix+5)
+ multw hl,(iy-3)
+ multuw hl,(iy+100)
+ divuw hl,bc
+ multw hl,de
+ multuw hl,hl
+ divuw hl,ix
+ multw hl,iy
+ multuw hl,ix
+ divuw hl,10
+ multw hl,100
+ multuw hl,1000
+
+ ldctl sr,a
+ ldctl xsr,a
+ ldctl a,xsr
+ ldctl dsr,a
+ ldctl a,dsr
+ ldctl ysr,a
+ ldctl a,ysr
+ ldctl sr,20h
+ ldctl xsr,31h
+ ldctl dsr,42h
+ ldctl ysr,53h
+ ldctl sr,hl
+ ldctl hl,sr
+
+ resc lw
+ setc lw
+ resc lck
+ setc lck
+ setc xm
+
+ swap bc
+ swap de
+ swap hl
+ swap ix
+ swap iy
+
+ out (c),0
+
+ cpu z80undoc
+
+ slia d
+ slia (ix+5)
+ slia (hl)
+ slia a
+ inc ixl
+ inc iyu
+ dec ixu
+ dec iyl
+ ld iyl,'a'
+ ld b,ixl
+ ld ixu,c
+ ld iyl,iyu
+ add a,ixl
+ adc a,ixu
+ sub a,iyl
+ sbc a,iyu
+ and a,ixl
+ xor a,ixu
+ or a,iyl
+ cp a,iyu
+ rlc (ix+3)
+ rrc b,(iy-3)
+ slia a,(ix-100)
+ res 5,h
+ set 6,(ix+6)
+ bit 3,(hl)
+ res c,4,(ix-1)
+ set l,6,(iy+17)
+ out (c),0
+ in (c)
+ tsti