home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
develop
/
as65
/
test
/
as6502_opc_tst.asm
< prev
Wrap
Assembly Source File
|
1995-02-27
|
11KB
|
526 lines
tabsize 3
; ****************
; AS65 opcode test
; ****************
; this file will test all available opcodes for the defined device
;
; =======================================
; pro R_STD file : "R6500_std.opc"
; pro r6500 file : "R6500.opc"
; pro r65C00 file : "R65C00XX.opc"
; pro r6501 file : "R6500.opc"
; pro r65c01 file : "R65C00XX.opc"
; pro r6502 file : "R6500.opc"
; pro r65c02 file : "R65CXXX.opc"
; pro r65c102 file : "R65CXXX.opc"
; pro r65c112 file : "R65CXXX.opc"
; pro r65c10 file : "R65C00XX.opc"
; pro r6511 file : "R6500.opc"
; =======================================
sernr TLS_B0001 ; Serialnumber
warnoff ; warnings off
liston sf ; assm listing to screen and file
seterr fs ; errors to screen and file
setout "RAM:" ; set output to RAM:
R_STD equ 1 ; all devices (standart)
R6500 equ 2 ; R6500/* devices
R65CXXX equ 3 ; R65CXXX devices
R65C00XX equ 4 ; R65C00/XX devices
TST_STDRT equ 1 ; 1 = show standart opcodes too
; 0 = only specified by familie
PRO set R65C00XX ; device to test
ifequ PRO-R_STD ; default setting (all devices in all families)
pro R_STD ; file : "R6500_std.opc"
endif
ifequ PRO-R6500 ; R6500/* devices
pro r6502 ; file : "R6500.opc"
ifequ TST_STDRT
listoff ; assm listing off
endif
endif
ifequ PRO-R65CXXX ; R65CXXX devices
pro r65C02 ; file : "R65CXXX.opc"
ifequ TST_STDRT
listoff ; assm listing off
endif
endif
ifequ PRO-R65C00XX ; R65C00/XX devices
pro r65C01 ; file : "R65C00XX.opc"
ifequ TST_STDRT
listoff ; assm listing off
endif
endif
*= $1000 ; set PC
; im = immediate
; zp = zeropage
; zp,x = zeropage,x
; zp,y = zeropage,y
; abs = absolute
; abs,x = absolute,x
; abs,y = absolute,y
; ind,x = indirect,x (oper,x)
; ind,y = indirect,y (oper,y)
; ind = indirect
; rel = relative
; accu = accumulator
; impl = implied
; ==============
; R6500 Opcodes:
; ==============
conprt "\t-> \"standard opcodes, R6500\"\n"
; mnenomic opcode $ adressing mode
adc #$FF ; 69 im
adc 10 ; 65 zp
adc 10,x ; 75 zp,x
adc $1000 ; 6d abs
adc $1000,x ; 7d abs,x
adc $1000,y ; 79 abs,y
adc (10,x) ; 61 ind,x
adc (10),y ; 71 ind,y
and #$FF ; 29 im
and 10 ; 25 zp
and 10,x ; 35 zp,x
and $1000 ; 2d abs
and $1000,x ; 3d abs,x
and $1000,y ; 39 abs,y
and (10,x) ; 21 ind,x
and (10),y ; 31 ind,y
asl ; 0a accu
asl 10 ; 06 zp
asl 10,x ; 16 zp,x
asl $1000 ; 0e abs
asl $1000,x ; 1e abs,x
brch bcc brch ; 90 rel
bcs brch ; b0 rel
beq brch ; f0 rel
bit 10 ; 24 zp
bit $1000 ; 2c abs
bmi brch ; 30 rel
bne brch ; d0 rel
bpl brch ; 10 rel
brk ; 00 impl
bvc brch ; 50 rel
bvs brch ; 70 rel
clc ; 18 impl
cld ; d8 impl
cli ; 58 impl
clv ; b8 impl
cmp #$FF ; c9 im
cmp 10 ; c5 zp
cmp 10,x ; d5 zp,x
cmp $1000 ; cd abs
cmp $1000,x ; dd abs,x
cmp $1000,y ; d9 abs,y
cmp (10,x) ; c1 ind,x
cmp (10),y ; d1 ind,y
cpx #$FF ; e0 im
cpx 10 ; e4 zp
cpx $1000 ; ec abs
cpy #$FF ; c0 im
cpy 10 ; c4 zp
cpy $1000 ; cc abs
dec 10 ; c6 zp
dec 10,x ; d6 zp,x
dec $1000 ; ce abs
dec $1000,x ; de abs,x
dex ; ca impl
dey ; 88 impl
eor #$FF ; 49 im
eor 10 ; 45 zp
eor 10,x ; 55 zp,x
eor $1000 ; 4d abs
eor $1000,x ; 5d abs,x
eor $1000,y ; 59 abs,y
eor (10,x) ; 41 ind,x
eor (10),y ; 51 ind,y
inc 10 ; e6 zp
inc 10,x ; f6 zp,x
inc $1000 ; ee abs
inc $1000,x ; fe abs,x
inx ; e8 impl
iny ; c8 impl
jmp $1000 ; 4c 00 10 abs
jmp ($1000) ; 6c 00 10 abs ind
jmp $10 ; 4c 10 00 abs (no zeropage)
jmp ($10) ; 6c 10 00 abs ind (no zp)
jsr $1000 ; 20 abs
jsr $10 ; 20 10 00 abs (no zeropage)
lda #$FF ; a9 im
lda 10 ; a5 zp
lda 10,x ; b5 zp,x
lda $1000 ; ad abs
lda $1000,x ; bd abs,x
lda $1000,y ; b9 abs,y
lda (10,x) ; a1 ind,x
lda (10),y ; b1 ind,y
ldx #$FF ; a2 im
ldx 10 ; a6 zp
ldx 10,y ; b6 zp,y
ldx $1000 ; ae abs
ldx $1000,y ; be abs,y
ldy #$FF ; a0 im
ldy 10 ; a4 zp
ldy 10,x ; b4 zp,x
ldy $1000 ; ac abs
ldy $1000,x ; bc abs,x
lsr a ; 4a accu
lsr 10 ; 46 zp
lsr 10,x ; 56 zp,x
lsr $1000 ; 4e abs
lsr $1000,x ; 5e abs,x
nop ; ea impl
ora #$FF ; 09 im
ora 10 ; 05 zp
ora 10,x ; 15 zp,x
ora $1000 ; 0d abs
ora $1000,x ; 1d abs,x
ora $1000,y ; 19 abs,y
ora (10,x) ; 01 ind,x
ora (10),y ; 11 ind,y
pha ; 48 impl
php ; 08 impl
pla ; 68 impl
plp ; 28 impl
rol a ; 2a accu
rol 10 ; 26 zp
rol 10,x ; 36 zp,x
rol $1000 ; 2e abs
rol $1000,x ; 3e abs,x
ror a ; 6a accu
ror 10 ; 66 zp
ror 10,x ; 76 zp,x
ror $1000 ; 6e abs
ror $1000,x ; 7e abs,x
rti ; 40 impl
rts ; 60 impl
sbc #$FF ; e9 im
sbc 10 ; e5 zp
sbc 10,x ; f5 zp,x
sbc $1000 ; ed abs
sbc $1000,x ; fd abs,x
sbc $1000,y ; f9 abs,y
sbc (10,x) ; e1 ind,x
sbc (10),y ; f1 ind,y
sec ; 38 impl
sed ; f8 impl
sei ; 78 impl
sta 10 ; 85 zp
sta 10,x ; 95 zp,x
sta $1000 ; 8d abs
sta $1000,x ; 9d abs,x
sta $1000,y ; 99 abs,y
sta (10,x) ; 81 ind,x
sta (10),y ; 91 ind,y
stx 10 ; 86 zp
stx 10,y ; 96 zp,x
stx $1000 ; 8e abs
sty 10 ; 84 zp
sty 10,x ; 94 zp,x
sty $1000 ; 8c abs
tax ; aa impl
tay ; a8 impl
tsx ; ba impl
txa ; 8a impl
txs ; 9a impl
tya ; 98 impl
ifequ PRO-R6500
liston ; assm listing on
; ==========================
; added instructions R6500/*
; ==========================
conprt "\t-> \"added instructions, R6500/*\"\n"
ifequ TST_STDRT
breakpt
endif
brch1 bbr 0,$10,brch1 ; 0f bit
bbr 1,$10,brch1 ; 1f bit
bbr 2,$10,brch1 ; 2f bit
bbr 3,$10,brch1 ; 3f bit
bbr 4,$10,brch1 ; 4f bit
bbr 5,$10,brch1 ; 5f bit
bbr 6,$10,brch1 ; 6f bit
bbr 7,$10,brch1 ; 7f bit
bbs 0,$10,brch1 ; 8f bit
bbs 1,$10,brch1 ; 9f bit
bbs 2,$10,brch1 ; af bit
bbs 3,$10,brch1 ; bf bit
bbs 4,$10,brch1 ; cf bit
bbs 5,$10,brch1 ; df bit
bbs 6,$10,brch1 ; ef bit
bbs 7,$10,brch1 ; ff bit
rmb 0,$10 ; 07 bit
rmb 1,$10 ; 17 bit
rmb 2,$10 ; 27 bit
rmb 3,$10 ; 37 bit
rmb 4,$10 ; 47 bit
rmb 5,$10 ; 57 bit
rmb 6,$10 ; 67 bit
rmb 7,$10 ; 77 bit
smb 0,$10 ; 87 bit
smb 1,$10 ; 97 bit
smb 2,$10 ; a7 bit
smb 3,$10 ; b7 bit
smb 4,$10 ; c7 bit
smb 5,$10 ; d7 bit
smb 6,$10 ; e7 bit
smb 7,$10 ; f7 bit
endif
ifequ PRO-R65CXXX
liston ; assm listing on
; =======
; R65CXXX
; =======
conprt "\t-> \"added instructions, R65CXXX\"\n"
ifequ TST_STDRT
breakpt
endif
adc (10) ; 72 ind
and (10) ; 32 ind
brch1 bbr 0,$10,brch1 ; 0f bit
bbr 1,$10,brch1 ; 1f bit
bbr 2,$10,brch1 ; 2f bit
bbr 3,$10,brch1 ; 3f bit
bbr 4,$10,brch1 ; 4f bit
bbr 5,$10,brch1 ; 5f bit
bbr 6,$10,brch1 ; 6f bit
bbr 7,$10,brch1 ; 7f bit
bbs 0,$10,brch1 ; 8f bit
bbs 1,$10,brch1 ; 9f bit
bbs 2,$10,brch1 ; af bit
bbs 3,$10,brch1 ; bf bit
bbs 4,$10,brch1 ; cf bit
bbs 5,$10,brch1 ; df bit
bbs 6,$10,brch1 ; ef bit
bbs 7,$10,brch1 ; ff bit
brch2 bra brch2 ; 80 rel
bit 10,x ; 34 zp,x
bit $1000,x ; 3c abs,x
bit #10 ; 89 im
cmp (10) ; d2 ind
dec a ; 3a accu
eor (10) ; 52 ind
inc a ; 1a accu
jmp ($1000,x) ; 7c 00 10 abs ind,x
jmp ($10,x) ; 7c 10 00 abs ind,x (no zp)
lda (10) ; b2 ind
ora (10) ; 12 ind
phx ; da impl
phy ; 5a impl
plx ; fa impl
ply ; 7a impl
rmb 0,$10 ; 07 bit
rmb 1,$10 ; 17 bit
rmb 2,$10 ; 27 bit
rmb 3,$10 ; 37 bit
rmb 4,$10 ; 47 bit
rmb 5,$10 ; 57 bit
rmb 6,$10 ; 67 bit
rmb 7,$10 ; 77 bit
sbc (10) ; f2 ind
smb 0,$10 ; 87 bit
smb 1,$10 ; 97 bit
smb 2,$10 ; a7 bit
smb 3,$10 ; b7 bit
smb 4,$10 ; c7 bit
smb 5,$10 ; d7 bit
smb 6,$10 ; e7 bit
smb 7,$10 ; f7 bit
sta (10) ; 92 ind
stz 10 ; 64 zp
stz 10,x ; 74 zp,x
stz $1000 ; 9c abs
stz $1000,x ; 9e abs,x
trb 10 ; 14 zp
trb $1000 ; 1c abs
tsb 10 ; 04 zp
tsb $1000 ; 0c abs
endif
ifequ PRO-R65C00XX
liston ; assm listing on
; =========
; R65C00/XX
; =========
conprt "\t-> \"added instructions, R65C00/XX\"\n"
ifequ TST_STDRT
breakpt
endif
brch1 bbr 0,$10,brch1 ; 0f bit
bbr 1,$10,brch1 ; 1f bit
bbr 2,$10,brch1 ; 2f bit
bbr 3,$10,brch1 ; 3f bit
bbr 4,$10,brch1 ; 4f bit
bbr 5,$10,brch1 ; 5f bit
bbr 6,$10,brch1 ; 6f bit
bbr 7,$10,brch1 ; 7f bit
bbs 0,$10,brch1 ; 8f bit
bbs 1,$10,brch1 ; 9f bit
bbs 2,$10,brch1 ; af bit
bbs 3,$10,brch1 ; bf bit
bbs 4,$10,brch1 ; cf bit
bbs 5,$10,brch1 ; df bit
bbs 6,$10,brch1 ; ef bit
bbs 7,$10,brch1 ; ff bit
brch3 bra brch3 ; 80 rel
mul ; 02 impl
phx ; da impl
phy ; 5a impl
plx ; fa impl
ply ; 7a impl
rmb 0,$10 ; 07 bit
rmb 1,$10 ; 17 bit
rmb 2,$10 ; 27 bit
rmb 3,$10 ; 37 bit
rmb 4,$10 ; 47 bit
rmb 5,$10 ; 57 bit
rmb 6,$10 ; 67 bit
rmb 7,$10 ; 77 bit
smb 0,$10 ; 87 bit
smb 1,$10 ; 97 bit
smb 2,$10 ; a7 bit
smb 3,$10 ; b7 bit
smb 4,$10 ; c7 bit
smb 5,$10 ; d7 bit
smb 6,$10 ; e7 bit
smb 7,$10 ; f7 bit
endif