Shortened test subdir names.

This commit is contained in:
Oliver Schmidt
2017-03-19 17:57:25 +01:00
parent 66634ef683
commit ff9b77b6cc
26 changed files with 4 additions and 4 deletions

BIN
test/asm/4510-cpudetect.ref Normal file

Binary file not shown.

BIN
test/asm/4510-opcodes.ref Normal file

Binary file not shown.

278
test/asm/4510-opcodes.s Normal file
View File

@@ -0,0 +1,278 @@
.setcpu "4510"
brk
ora ($05,x)
cle
see
tsb $02
ora $02
asl $02
rmb0 $02
php
ora #$01
asl
tsy
tsb $1234
ora $1234
asl $1234
bbr0 $02,*+$34
bpl *+$32
ora ($06),y
ora ($07),z
lbpl *+$3133 ; bpl *+$3133
trb $02
ora $03,x
asl $03,x
rmb1 $02
clc
ora $1456,y
inc
inz
trb $1234
ora $1345,x
asl $1345,x
bbr1 $02,*+$34
jsr $1234
and ($05,x)
jsr ($2345)
jsr ($2456,x)
bit $02
and $02
rol $02
rmb2 $02
plp
and #$01
rol
tys
bit $1234
and $1234
rol $1234
bbr2 $02,*+$34
bmi *+$32
and ($06),y
and ($07),z
lbmi *+$3133 ; bmi *+$3133
bit $03,x
and $03,x
rol $03,x
rmb3 $02
sec
and $1456,y
dec
dez
bit $1345,x
and $1345,x
rol $1345,x
bbr3 $02,*+$34
rti
eor ($05,x)
neg
asr
asr $02
eor $02
lsr $02
rmb4 $02
pha
eor #$01
lsr
taz
jmp $1234
eor $1234
lsr $1234
bbr4 $02,*+$34
bvc *+$32
eor ($06),y
eor ($07),z
lbvc *+$3133 ; bvc *+$3133
asr $03,x
eor $03,x
lsr $03,x
rmb5 $02
cli
eor $1456,y
phy
tab
map
eor $1345,x
lsr $1345,x
bbr5 $02,*+$34
rts
adc ($05,x)
rtn #$09
bsr *+$3133
stz $02
adc $02
ror $02
rmb6 $02
pla
adc #$01
ror
tza
jmp ($2345)
adc $1234
ror $1234
bbr6 $02,*+$34
bvs *+$32
adc ($06),y
adc ($07),z
lbvs *+$3133 ; bvs *+$3133
stz $03,x
adc $03,x
ror $03,x
rmb7 $02
sei
adc $1456,y
ply
tba
jmp ($2456,x)
adc $1345,x
ror $1345,x
bbr7 $02,*+$34
bra *+$32
sta ($05,x)
sta ($0f,s),y
sta ($0f,sp),y
lbra *+$3133 ; bra *+$3133
sty $02
sta $02
stx $02
smb0 $02
dey
bit #$01
txa
sty $1345,x
sty $1234
sta $1234
stx $1234
bbs0 $02,*+$34
bcc *+$32
sta ($06),y
sta ($07),z
lbcc *+$3133 ; bcc *+$3133
sty $03,x
sta $03,x
stx $04,y
smb1 $02
tya
sta $1456,y
txs
stx $1456,y
stz $1234
sta $1345,x
stz $1345,x
bbs1 $02,*+$34
ldy #$01
lda ($05,x)
ldx #$01
ldz #$01
ldy $02
lda $02
ldx $02
smb2 $02
tay
lda #$01
tax
ldz $1234
ldy $1234
lda $1234
ldx $1234
bbs2 $02,*+$34
bcs *+$32
lda ($06),y
lda ($07),z
lbcs *+$3133 ; bcs *+$3133
ldy $03,x
lda $03,x
ldx $04,y
smb3 $02
clv
lda $1456,y
tsx
ldz $1345,x
ldy $1345,x
lda $1345,x
ldx $1456,y
bbs3 $02,*+$34
cpy #$01
cmp ($05,x)
cpz #$01
dew $02
cpy $02
cmp $02
dec $02
smb4 $02
iny
cmp #$01
dex
asw $1234
cpy $1234
cmp $1234
dec $1234
bbs4 $02,*+$34
bne *+$32
cmp ($06),y
cmp ($07),z
lbne *+$3133 ; bne *+$3133
cpz $02
cmp $03,x
dec $03,x
smb5 $02
cld
cmp $1456,y
phx
phz
cpz $1234
cmp $1345,x
dec $1345,x
bbs5 $02,*+$34
cpx #$01
sbc ($05,x)
lda ($0f,s),y
lda ($0f,sp),y
inw $02
cpx $02
sbc $02
inc $02
smb6 $02
inx
sbc #$01
eom
nop
row $1234
cpx $1234
sbc $1234
inc $1234
bbs6 $02,*+$34
beq *+$32
sbc ($06),y
sbc ($07),z
lbeq *+$3133 ; beq *+$3133
phd #$089a
phw #$089a
sbc $03,x
inc $03,x
smb7 $02
sed
sbc $1456,y
plx
plz
phd $1234
phw $1234
sbc $1345,x
inc $1345,x
bbs7 $02,*+$34

BIN
test/asm/6502-cpudetect.ref Normal file

Binary file not shown.

BIN
test/asm/6502-opcodes.ref Normal file

Binary file not shown.

257
test/asm/6502-opcodes.s Normal file
View File

@@ -0,0 +1,257 @@
.setcpu "6502"
brk
ora ($12,x)
.byte $02
.byte $03
.byte $04
ora $12
asl $12
.byte $07
php
ora #$12
asl a
.byte $0B
.byte $0C
ora $3456
asl $3456
.byte $0F
bpl *+122
ora ($12),y
.byte $12
.byte $13
.byte $14
ora $12,x
asl $12,x
.byte $17
clc
ora $3456,y
.byte $1A
.byte $1B
.byte $1C
ora $3456,x
asl $3456,x
.byte $1F
jsr $3456
and ($12,x)
.byte $22
.byte $23
bit $12
and $12
rol $12
.byte $27
plp
and #$12
rol a
.byte $2B
bit $3456
and $3456
rol $3456
.byte $2F
bmi *+122
and ($12),y
.byte $32
.byte $33
.byte $34
and $12,x
rol $12,x
.byte $37
sec
and $3456,y
.byte $3A
.byte $3B
.byte $3C
and $3456,x
rol $3456,x
.byte $3F
rti
eor ($12,x)
.byte $42
.byte $43
.byte $44
eor $12
lsr $12
.byte $47
pha
eor #$12
lsr a
.byte $4B
jmp $3456
eor $3456
lsr $3456
.byte $4F
bvc *+122
eor ($12),y
.byte $52
.byte $53
.byte $54
eor $12,x
lsr $12,x
.byte $57
cli
eor $3456,y
.byte $5A
.byte $5B
.byte $5C
eor $3456,x
lsr $3456,x
.byte $5F
rts
adc ($12,x)
.byte $62
.byte $63
.byte $64
adc $12
ror $12
.byte $67
pla
adc #$12
ror a
.byte $6B
jmp ($3456)
adc $3456
ror $3456
.byte $6F
bvs *+122
adc ($12),y
.byte $72
.byte $73
.byte $74
adc $12,x
ror $12,x
.byte $77
sei
adc $3456,y
.byte $7A
.byte $7B
.byte $7C
adc $3456,x
ror $3456,x
.byte $7F
.byte $80
sta ($12,x)
.byte $82
.byte $83
sty $12
sta $12
stx $12
.byte $87
dey
.byte $89
txa
.byte $8B
sty $3456
sta $3456
stx $3456
.byte $8F
bcc *+122
sta ($12),y
.byte $92
.byte $93
sty $12,x
sta $12,x
stx $12,y
.byte $97
tya
sta $3456,y
txs
.byte $9B
.byte $9C
sta $3456,x
.byte $9E
.byte $9F
ldy #$12
lda ($12,x)
ldx #$12
.byte $A3
ldy $12
lda $12
ldx $12
.byte $A7
tay
lda #$12
tax
.byte $AB
ldy $3456
lda $3456
ldx $3456
.byte $AF
bcs *+122
lda ($12),y
.byte $B2
.byte $B3
ldy $12,x
lda $12,x
ldx $12,y
.byte $B7
clv
lda $3456,y
tsx
.byte $BB
ldy $3456,x
lda $3456,x
ldx $3456,y
.byte $BF
cpy #$12
cmp ($12,x)
.byte $C2
.byte $C3
cpy $12
cmp $12
dec $12
.byte $C7
iny
cmp #$12
dex
.byte $CB
cpy $3456
cmp $3456
dec $3456
.byte $CF
bne *+122
cmp ($12),y
.byte $D2
.byte $D3
.byte $D4
cmp $12,x
dec $12,x
.byte $D7
cld
cmp $3456,y
.byte $DA
.byte $DB
.byte $DC
cmp $3456,x
dec $3456,x
.byte $DF
cpx #$12
sbc ($12,x)
.byte $E2
.byte $E3
cpx $12
sbc $12
inc $12
.byte $E7
inx
sbc #$12
.byte $EB
cpx $3456
sbc $3456
inc $3456
.byte $EF
beq *+122
sbc ($12),y
.byte $F2
.byte $F3
.byte $F4
sbc $12,x
inc $12,x
.byte $F7
sed
sbc $3456,y
.byte $FA
.byte $FB
.byte $FC
sbc $3456,x
inc $3456,x
.byte $FF

Binary file not shown.

BIN
test/asm/6502x-opcodes.ref Normal file

Binary file not shown.

258
test/asm/6502x-opcodes.s Normal file
View File

@@ -0,0 +1,258 @@
.setcpu "6502X"
brk
ora ($12,x)
jam
slo ($12,x)
nop $12
ora $12
asl $12
slo $12
php
ora #$12
asl a
anc #$12
nop $3456
ora $3456
asl $3456
slo $3456
bpl *+122
ora ($12),y
.byte $12 ; jam
slo ($12),y
nop $12,x
ora $12,x
asl $12,x
slo $12,x
clc
ora $3456,y
.byte $1a ; nop
slo $3456,y
nop $3456,x
ora $3456,x
asl $3456,x
slo $3456,x
jsr $3456
and ($12,x)
.byte $22 ; jam
rla ($12,x)
bit $12
and $12
rol $12
rla $12
plp
and #$12
rol a
.byte $2b ; anc #$12
bit $3456
and $3456
rol $3456
rla $3456
bmi *+122
and ($12),y
.byte $32 ; jam
rla ($12),y
.byte $34,$12 ; nop $12,x
and $12,x
rol $12,x
rla $12,x
sec
and $3456,y
.byte $3a ; nop
rla $3456,y
.byte $3c,$56,$34 ; nop $3456,x
and $3456,x
rol $3456,x
rla $3456,x
rti
eor ($12,x)
.byte $42 ; jam
sre ($12,x)
.byte $44,$12 ; nop $12
eor $12
lsr $12
sre $12
pha
eor #$12
lsr a
alr #$12
jmp $3456
eor $3456
lsr $3456
sre $3456
bvc *+122
eor ($12),y
.byte $52 ; jam
sre ($12),y
.byte $54,$12 ; nop $12,x
eor $12,x
lsr $12,x
sre $12,x
cli
eor $3456,y
.byte $5a ; nop
sre $3456,y
nop $3456,x
eor $3456,x
lsr $3456,x
sre $3456,x
rts
adc ($12,x)
.byte $62 ; jam
rra ($12,x)
.byte $64,$12 ; nop $12
adc $12
ror $12
rra $12
pla
adc #$12
ror a
arr #$12
jmp ($3456)
adc $3456
ror $3456
rra $3456
bvs *+122
adc ($12),y
.byte $72 ; jam
rra ($12),y
.byte $74,$12 ; nop $12,x
adc $12,x
ror $12,x
rra $12,x
sei
adc $3456,y
.byte $7a ; nop
rra $3456,y
.byte $7c,$56,$34 ; nop $3456,x
adc $3456,x
ror $3456,x
rra $3456,x
nop #$12
sta ($12,x)
.byte $82,$12 ; nop #$12
sax ($12,x)
sty $12
sta $12
stx $12
sax $12
dey
.byte $89,$12 ; nop #$12
txa
.byte $8b,$12 ; xaa #$12
sty $3456
sta $3456
stx $3456
sax $3456
bcc *+122
sta ($12),y
.byte $92 ; jam
.byte $93,$12 ; ahx ($12),y
sty $12,x
sta $12,x
stx $12,y
sax $12,y
tya
sta $3456,y
txs
tas $3456,y
shy $3456,x
sta $3456,x
shx $3456,y
.byte $9f,$56,$34 ; ahx $3456,y
ldy #$12
lda ($12,x)
ldx #$12
lax ($12,x)
ldy $12
lda $12
ldx $12
lax $12
tay
lda #$12
tax
lax #$12
ldy $3456
lda $3456
ldx $3456
lax $3456
bcs *+122
lda ($12),y
.byte $b2 ; jam
lax ($12),y
ldy $12,x
lda $12,x
ldx $12,y
lax $12,y
clv
lda $3456,y
tsx
las $3456,y
ldy $3456,x
lda $3456,x
ldx $3456,y
lax $3456,y
cpy #$12
cmp ($12,x)
.byte $c2,$12 ; nop #$12
dcp ($12,x)
cpy $12
cmp $12
dec $12
dcp $12
iny
cmp #$12
dex
axs #$12
cpy $3456
cmp $3456
dec $3456
dcp $3456
bne *+122
cmp ($12),y
.byte $d2 ; jam
dcp ($12),y
.byte $d4,$12 ; nop $12,x
cmp $12,x
dec $12,x
dcp $12,x
cld
cmp $3456,y
.byte $da ; nop
dcp $3456,y
.byte $dc,$56,$34 ; nop $3456,x
cmp $3456,x
dec $3456,x
dcp $3456,x
cpx #$12
sbc ($12,x)
.byte $e2,$12 ; nop #$12
isc ($12,x)
cpx $12
sbc $12
inc $12
isc $12
inx
sbc #$12
nop
.byte $eb ; nop
cpx $3456
sbc $3456
inc $3456
isc $3456
beq *+122
sbc ($12),y
.byte $f2 ; jam
isc ($12),y
.byte $f4,$12 ; nop $12,x
sbc $12,x
inc $12,x
isc $12,x
sed
sbc $3456,y
.byte $fa ; nop
isc $3456,y
.byte $fc,$56,$34 ; nop $3456,x
sbc $3456,x
inc $3456,x
isc $3456,x

Binary file not shown.

Binary file not shown.

BIN
test/asm/65c02-opcodes.ref Normal file

Binary file not shown.

258
test/asm/65c02-opcodes.s Normal file
View File

@@ -0,0 +1,258 @@
.setcpu "65C02"
brk
ora ($12,x)
.byte $02
.byte $03
tsb $12
ora $12
asl $12
rmb0 $12
php
ora #$12
asl a
.byte $0B
tsb $3456
ora $3456
asl $3456
bbr0 $12,*+122
bpl *+122
ora ($12),y
ora ($12)
.byte $13
trb $12
ora $12,x
asl $12,x
rmb1 $12
clc
ora $3456,y
inc a
.byte $1B
trb $3456
ora $3456,x
asl $3456,x
bbr1 $12,*+122
jsr $3456
and ($12,x)
.byte $22
.byte $23
bit $12
and $12
rol $12
rmb2 $12
plp
and #$12
rol a
.byte $2B
bit $3456
and $3456
rol $3456
bbr2 $12,*+122
bmi *+122
and ($12),y
and ($12)
.byte $33
bit $12,x
and $12,x
rol $12,x
rmb3 $12
sec
and $3456,y
dec a
.byte $3B
bit $3456,x
and $3456,x
rol $3456,x
bbr3 $12,*+122
rti
eor ($12,x)
.byte $42
.byte $43
.byte $44
eor $12
lsr $12
rmb4 $12
pha
eor #$12
lsr a
.byte $4B
jmp $3456
eor $3456
lsr $3456
bbr4 $12,*+122
bvc *+122
eor ($12),y
eor ($12)
.byte $53
.byte $54
eor $12,x
lsr $12,x
rmb5 $12
cli
eor $3456,y
phy
.byte $5B
.byte $5C
eor $3456,x
lsr $3456,x
bbr5 $12,*+122
rts
adc ($12,x)
.byte $62
.byte $63
stz $12
adc $12
ror $12
rmb6 $12
pla
adc #$12
ror a
.byte $6B
jmp ($3456)
adc $3456
ror $3456
bbr6 $12,*+122
bvs *+122
adc ($12),y
adc ($12)
.byte $73
stz $12,x
adc $12,x
ror $12,x
rmb7 $12
sei
adc $3456,y
ply
.byte $7B
jmp ($3456,x)
adc $3456,x
ror $3456,x
bbr7 $12,*+122
bra *+122
sta ($12,x)
.byte $82
.byte $83
sty $12
sta $12
stx $12
smb0 $12
dey
bit #$12
txa
.byte $8B
sty $3456
sta $3456
stx $3456
bbs0 $12,*+122
bcc *+122
sta ($12),y
sta ($12)
.byte $93
sty $12,x
sta $12,x
stx $12,y
smb1 $12
tya
sta $3456,y
txs
.byte $9B
stz $3456
sta $3456,x
stz $3456,x
bbs1 $12,*+122
ldy #$12
lda ($12,x)
ldx #$12
.byte $A3
ldy $12
lda $12
ldx $12
smb2 $12
tay
lda #$12
tax
.byte $AB
ldy $3456
lda $3456
ldx $3456
bbs2 $12,*+122
bcs *+122
lda ($12),y
lda ($12)
.byte $B3
ldy $12,x
lda $12,x
ldx $12,y
smb3 $12
clv
lda $3456,y
tsx
.byte $BB
ldy $3456,x
lda $3456,x
ldx $3456,y
bbs3 $12,*+122
cpy #$12
cmp ($12,x)
.byte $C2
.byte $C3
cpy $12
cmp $12
dec $12
smb4 $12
iny
cmp #$12
dex
.byte $CB
cpy $3456
cmp $3456
dec $3456
bbs4 $12,*+122
bne *+122
cmp ($12),y
cmp ($12)
.byte $D3
.byte $D4
cmp $12,x
dec $12,x
smb5 $12
cld
cmp $3456,y
phx
.byte $DB
.byte $DC
cmp $3456,x
dec $3456,x
bbs5 $12,*+122
cpx #$12
sbc ($12,x)
.byte $E2
.byte $E3
cpx $12
sbc $12
inc $12
smb6 $12
inx
sbc #$12
nop
.byte $EB
cpx $3456
sbc $3456
inc $3456
bbs6 $12,*+122
beq *+122
sbc ($12),y
sbc ($12)
.byte $F3
.byte $F4
sbc $12,x
inc $12,x
smb7 $12
sed
sbc $3456,y
plx
.byte $FB
.byte $FC
sbc $3456,x
inc $3456,x
bbs7 $12,*+122

Binary file not shown.

BIN
test/asm/65sc02-opcodes.ref Normal file

Binary file not shown.

258
test/asm/65sc02-opcodes.s Normal file
View File

@@ -0,0 +1,258 @@
.setcpu "65SC02"
brk
ora ($12,x)
.byte $02
.byte $03
tsb $12
ora $12
asl $12
.byte $07
php
ora #$12
asl a
.byte $0B
tsb $3456
ora $3456
asl $3456
.byte $0F
bpl *+122
ora ($12),y
ora ($12)
.byte $13
trb $12
ora $12,x
asl $12,x
.byte $17
clc
ora $3456,y
inc a
.byte $1B
trb $3456
ora $3456,x
asl $3456,x
.byte $1F
jsr $3456
and ($12,x)
.byte $22
.byte $23
bit $12
and $12
rol $12
.byte $27
plp
and #$12
rol a
.byte $2B
bit $3456
and $3456
rol $3456
.byte $2F
bmi *+122
and ($12),y
and ($12)
.byte $33
bit $12,x
and $12,x
rol $12,x
.byte $37
sec
and $3456,y
dec a
.byte $3B
bit $3456,x
and $3456,x
rol $3456,x
.byte $3F
rti
eor ($12,x)
.byte $42
.byte $43
.byte $44
eor $12
lsr $12
.byte $47
pha
eor #$12
lsr a
.byte $4B
jmp $3456
eor $3456
lsr $3456
.byte $4F
bvc *+122
eor ($12),y
eor ($12)
.byte $53
.byte $54
eor $12,x
lsr $12,x
.byte $57
cli
eor $3456,y
phy
.byte $5B
.byte $5C
eor $3456,x
lsr $3456,x
.byte $5F
rts
adc ($12,x)
.byte $62
.byte $63
stz $12
adc $12
ror $12
.byte $67
pla
adc #$12
ror a
.byte $6B
jmp ($3456)
adc $3456
ror $3456
.byte $6F
bvs *+122
adc ($12),y
adc ($12)
.byte $73
stz $12,x
adc $12,x
ror $12,x
.byte $77
sei
adc $3456,y
ply
.byte $7B
jmp ($3456,x)
adc $3456,x
ror $3456,x
.byte $7F
bra *+122
sta ($12,x)
.byte $82
.byte $83
sty $12
sta $12
stx $12
.byte $87
dey
bit #$12
txa
.byte $8B
sty $3456
sta $3456
stx $3456
.byte $8F
bcc *+122
sta ($12),y
sta ($12)
.byte $93
sty $12,x
sta $12,x
stx $12,y
.byte $97
tya
sta $3456,y
txs
.byte $9B
stz $3456
sta $3456,x
stz $3456,x
.byte $9F
ldy #$12
lda ($12,x)
ldx #$12
.byte $A3
ldy $12
lda $12
ldx $12
.byte $A7
tay
lda #$12
tax
.byte $AB
ldy $3456
lda $3456
ldx $3456
.byte $AF
bcs *+122
lda ($12),y
lda ($12)
.byte $B3
ldy $12,x
lda $12,x
ldx $12,y
.byte $B7
clv
lda $3456,y
tsx
.byte $BB
ldy $3456,x
lda $3456,x
ldx $3456,y
.byte $BF
cpy #$12
cmp ($12,x)
.byte $C2
.byte $C3
cpy $12
cmp $12
dec $12
.byte $C7
iny
cmp #$12
dex
.byte $CB
cpy $3456
cmp $3456
dec $3456
.byte $CF
bne *+122
cmp ($12),y
cmp ($12)
.byte $D3
.byte $D4
cmp $12,x
dec $12,x
.byte $D7
cld
cmp $3456,y
phx
.byte $DB
.byte $DC
cmp $3456,x
dec $3456,x
.byte $DF
cpx #$12
sbc ($12,x)
.byte $E2
.byte $E3
cpx $12
sbc $12
inc $12
.byte $E7
inx
sbc #$12
nop
.byte $EB
cpx $3456
sbc $3456
inc $3456
.byte $EF
beq *+122
sbc ($12),y
sbc ($12)
.byte $F3
.byte $F4
sbc $12,x
inc $12,x
.byte $F7
sed
sbc $3456,y
plx
.byte $FB
.byte $FC
sbc $3456,x
inc $3456,x
.byte $FF

68
test/asm/Makefile Normal file
View File

@@ -0,0 +1,68 @@
# Makefile for the assembler regression tests
ifneq ($(shell echo),)
CMD_EXE = 1
endif
ifdef CMD_EXE
EXE = .exe
MKDIR = mkdir $(subst /,\,$1)
RMDIR = -rmdir /s /q $(subst /,\,$1)
DEL = del /f $(subst /,\,$1)
else
EXE =
MKDIR = mkdir -p $1
RMDIR = $(RM) -r $1
DEL = $(RM) $1
endif
CL65 := $(if $(wildcard ../../bin/cl65*),../../bin/cl65,cl65)
WORKDIR = ../../testwrk/asm
DIFF = $(WORKDIR)/bdiff$(EXE)
CC = gcc
CFLAGS = -O2
.PHONY: all clean
OPCODE_REFS := $(wildcard *-opcodes.ref)
OPCODE_CPUS = $(foreach ref,$(OPCODE_REFS),$(ref:%-opcodes.ref=%))
OPCODE_BINS = $(foreach cpu,$(OPCODE_CPUS),$(WORKDIR)/$(cpu)-opcodes.bin)
CPUDETECT_REFS := $(wildcard *-cpudetect.ref)
CPUDETECT_CPUS = $(foreach ref,$(CPUDETECT_REFS),$(ref:%-cpudetect.ref=%))
CPUDETECT_BINS = $(foreach cpu,$(CPUDETECT_CPUS),$(WORKDIR)/$(cpu)-cpudetect.bin)
all: $(OPCODE_BINS) $(CPUDETECT_BINS)
$(WORKDIR):
$(call MKDIR,$(WORKDIR))
$(DIFF): ../bdiff.c | $(WORKDIR)
$(CC) $(CFLAGS) -o $@ $<
define OPCODE_template
$(WORKDIR)/$1-opcodes.bin: $1-opcodes.s $(DIFF)
$(CL65) --cpu $1 -t none -l $(WORKDIR)/$1-opcodes.lst -o $$@ $$<
$(DIFF) $$@ $1-opcodes.ref
endef # OPCODE_template
$(foreach cpu,$(OPCODE_CPUS),$(eval $(call OPCODE_template,$(cpu))))
define CPUDETECT_template
$(WORKDIR)/$1-cpudetect.bin: cpudetect.s $(DIFF)
$(CL65) --cpu $1 -t none -l $(WORKDIR)/$1-cpudetect.lst -o $$@ $$<
$(DIFF) $$@ $1-cpudetect.ref
endef # CPUDETECT_template
$(foreach cpu,$(CPUDETECT_CPUS),$(eval $(call CPUDETECT_template,$(cpu))))
clean:
@$(call RMDIR,$(WORKDIR))
@$(call DEL,$(OPCODE_REFS:.ref=.o) cpudetect.o)

48
test/asm/README Normal file
View File

@@ -0,0 +1,48 @@
Assembler Testcases
===================
Opcode Tests:
-------------
These testcases are inspired by the ones now removed from test/assembler.
The main purpose is to have each possible opcode generated at least once,
either by an assembly instruction or a ".byte"-placeholder. Typically
generated by disassembling a binary dump that contains data in the form
of the pattern that each opcode is stated once in order followed by easy
to recognise:
00 00 EA 00
01 00 EA 00
02 00 EA 00
[...]
fe 00 EA 00
ff 00 EA 00
The disassembly is then put in a better readable form by replacing the
leftover dummy opcode parameters with something more recognizable.
The testcases for 6502, 6502x, 65sc02, 65c02, 4510, and huc6280 have been
put together by Sven Oliver ("SvOlli") Moll, as well as a template for the
m740 instructions set.
Still to do is to find a way to implement an opcode testcase for the 65816
processor, since it's capable of executing instructions with an 8-bit and
a 16-bit operator alike, only distinguished by one processor flag.
CPU detect Tests
----------------
These tests all assemble the same file "cpudetect.s" which contains several
conditionals for several CPUs, only using every option known to the "--cpu"
commandline switch of ca65/cl65.
Reference (".ref") Files
------------------------
A hint on creating these files: when running the test, it will fail due to
the missing ".ref" file. Review the output of the ".lst" very pedantic, then
copy the ".bin" to the ".ref" file.

66
test/asm/cpudetect.s Normal file
View File

@@ -0,0 +1,66 @@
.macpack cpu
; step 1: try to assemble an instruction that's exclusive to this set
; (when possible)
.ifp02
lda #$ea
.endif
.ifpsc02
jmp ($1234,x)
.endif
.ifpc02
rmb0 $12
.endif
.ifp816
xba
.endif
.ifp4510
taz
.endif
; step 2: check for bitwise compatibility of instructions sets
; (made verbose for better reading with hexdump/hd(1))
.if (.cpu .bitand CPU_ISET_NONE)
.byte 0,"CPU_ISET_NONE"
.endif
.if (.cpu .bitand CPU_ISET_6502)
.byte 0,"CPU_ISET_6502"
.endif
.if (.cpu .bitand CPU_ISET_6502X)
.byte 0,"CPU_ISET_6502X"
.endif
.if (.cpu .bitand CPU_ISET_65SC02)
.byte 0,"CPU_ISET_65SC02"
.endif
.if (.cpu .bitand CPU_ISET_65C02)
.byte 0,"CPU_ISET_65C02"
.endif
.if (.cpu .bitand CPU_ISET_65816)
.byte 0,"CPU_ISET_65816"
.endif
.if (.cpu .bitand CPU_ISET_SWEET16)
.byte 0,"CPU_ISET_SWEET16"
.endif
.if (.cpu .bitand CPU_ISET_HUC6280)
.byte 0,"CPU_ISET_HUC6280"
.endif
.if (.cpu .bitand CPU_ISET_4510)
.byte 0,"CPU_ISET_4510"
.endif

Binary file not shown.

Binary file not shown.

258
test/asm/huc6280-opcodes.s Normal file
View File

@@ -0,0 +1,258 @@
.setcpu "huc6280"
brk
ora ($12,x)
sxy
st0 #$12
tsb $12
ora $12
asl $12
rmb0 $12
php
ora #$12
asl a
.byte $0B
tsb $3456
ora $3456
asl $3456
bbr0 $12,*+122
bpl *+122
ora ($12),y
ora ($12)
st1 #$12
trb $12
ora $12,x
asl $12,x
rmb1 $12
clc
ora $3456,y
inc a
.byte $1B
trb $3456
ora $3456,x
asl $3456,x
bbr1 $12,*+122
jsr $3456
and ($12,x)
sax
st2 #$12
bit $12
and $12
rol $12
rmb2 $12
plp
and #$12
rol a
.byte $2B
bit $3456
and $3456
rol $3456
bbr2 $12,*+122
bmi *+122
and ($12),y
and ($12)
.byte $33
bit $12,x
and $12,x
rol $12,x
rmb3 $12
sec
and $3456,y
dec a
.byte $3B
bit $3456,x
and $3456,x
rol $3456,x
bbr3 $12,*+122
rti
eor ($12,x)
say
tma #$02
bsr *+122
eor $12
lsr $12
rmb4 $12
pha
eor #$12
lsr a
.byte $4B
jmp $3456
eor $3456
lsr $3456
bbr4 $12,*+122
bvc *+122
eor ($12),y
eor ($12)
tam #$12
csl
eor $12,x
lsr $12,x
rmb5 $12
cli
eor $3456,y
phy
.byte $5B
.byte $5C
eor $3456,x
lsr $3456,x
bbr5 $12,*+122
rts
adc ($12,x)
cla
.byte $63
stz $12
adc $12
ror $12
rmb6 $12
pla
adc #$12
ror a
.byte $6B
jmp ($3456)
adc $3456
ror $3456
bbr6 $12,*+122
bvs *+122
adc ($12),y
adc ($12)
tii $3333,$7373,$1111
stz $12,x
adc $12,x
ror $12,x
rmb7 $12
sei
adc $3456,y
ply
.byte $7B
jmp ($3456,x)
adc $3456,x
ror $3456,x
bbr7 $12,*+122
bra *+122
sta ($12,x)
clx
tst #$12,$EA
sty $12
sta $12
stx $12
smb0 $12
dey
bit #$12
txa
.byte $8B
sty $3456
sta $3456
stx $3456
bbs0 $12,*+122
bcc *+122
sta ($12),y
sta ($12)
tst #$12,$EAEA
sty $12,x
sta $12,x
stx $12,y
smb1 $12
tya
sta $3456,y
txs
.byte $9B
stz $3456
sta $3456,x
stz $3456,x
bbs1 $12,*+122
ldy #$12
lda ($12,x)
ldx #$12
tst #$12,$EA,x
ldy $12
lda $12
ldx $12
smb2 $12
tay
lda #$12
tax
.byte $AB
ldy $3456
lda $3456
ldx $3456
bbs2 $12,*+122
bcs *+122
lda ($12),y
lda ($12)
tst #$12,$EAEA,x
ldy $12,x
lda $12,x
ldx $12,y
smb3 $12
clv
lda $3456,y
tsx
.byte $BB
ldy $3456,x
lda $3456,x
ldx $3456,y
bbs3 $12,*+122
cpy #$12
cmp ($12,x)
cly
tdd $3333,$C3C3,$1111
cpy $12
cmp $12
dec $12
smb4 $12
iny
cmp #$12
dex
.byte $CB
cpy $3456
cmp $3456
dec $3456
bbs4 $12,*+122
bne *+122
cmp ($12),y
cmp ($12)
tin $3333,$D3D3,$1111
.byte $D4
cmp $12,x
dec $12,x
smb5 $12
cld
cmp $3456,y
phx
.byte $DB
.byte $DC
cmp $3456,x
dec $3456,x
bbs5 $12,*+122
cpx #$12
sbc ($12,x)
.byte $E2
tia $3333,$E3E3,$1111
cpx $12
sbc $12
inc $12
smb6 $12
inx
sbc #$12
nop
.byte $EB
cpx $3456
sbc $3456
inc $3456
bbs6 $12,*+122
beq *+122
sbc ($12),y
sbc ($12)
tai $3333,$F3F3,$1111
.byte $F4
sbc $12,x
inc $12,x
smb7 $12
sed
sbc $3456,y
plx
.byte $FB
.byte $FC
sbc $3456,x
inc $3456,x
bbs7 $12,*+122

260
test/asm/m740-opcodes.s Normal file
View File

@@ -0,0 +1,260 @@
.setcpu "65C02"
; copy of 65c02, comments note changes to the m740 according to
; http://documentation.renesas.com/doc/products/mpumcu/rej09b0322_740sm.pdf
brk
ora ($12,x)
.byte $02,$00,$00 ; jsr zp,ind
.byte $03,$00,$00 ; bbs 0,a
tsb $12 ; .byte $04
ora $12
asl $12
rmb0 $12 ; bbs 0,zp
php
ora #$12
asl a
.byte $0B,$00,$00 ; seb 0,a
tsb $3456 ; .byte $0c
ora $3456
asl $3456
bbr0 $12,*+122 ; seb 0,zp
bpl *+122
ora ($12),y
ora ($12) ; clt
.byte $13,$00,$00 ; bbc 0,a
trb $12 ; .byte $14
ora $12,x
asl $12,x
rmb1 $12 ; bbc 0,zp
clc
ora $3456,y
inc a
.byte $1B,$00,$00 ; clb 0,a
trb $3456 ; .byte $1c
ora $3456,x
asl $3456,x
bbr1 $12,*+122 ; clb 0,zp
jsr $3456
and ($12,x)
.byte $22,$00,$00 ; jsr sp
.byte $23,$00,$00 ; bbs 1,a
bit $12
and $12
rol $12
rmb2 $12 ; bbs 1,zp
plp
and #$12
rol a
.byte $2B,$00,$00 ; seb 1,a
bit $3456
and $3456
rol $3456
bbr2 $12,*+122 ; seb 1,zp
bmi *+122
and ($12),y
and ($12) ; set
.byte $33,$00,$00 ; bbc 1,a
bit $12,x ; .byte $34
and $12,x
rol $12,x
rmb3 $12 ; bbc 1,zp
sec
and $3456,y
dec a
.byte $3B,$00,$00 ; clb 1,a
bit $3456,x ; ldm zp
and $3456,x
rol $3456,x
bbr3 $12,*+122 ; clb 1,zp
rti
eor ($12,x)
.byte $42,$00,$00 ; stp
.byte $43,$00,$00 ; bbs 2,a
.byte $44,$00,$00 ; com zp
eor $12
lsr $12
rmb4 $12 ; bbs 2,zp
pha
eor #$12
lsr a
.byte $4B,$00,$00 ; seb 2,a
jmp $3456
eor $3456
lsr $3456
bbr4 $12,*+122 ; seb 2,zp
bvc *+122
eor ($12),y
eor ($12) ; .byte $52
.byte $53,$00,$00 ; bbc 2,a
.byte $54,$00,$00
eor $12,x
lsr $12,x
rmb5 $12 ; bbc 2,zp
cli
eor $3456,y
phy
.byte $5B,$00,$00 ; clb 2,a
.byte $5C,$00,$00
eor $3456,x
lsr $3456,x
bbr5 $12,*+122 ; clb 2,zp
rts
adc ($12,x)
.byte $62,$00,$00 ; mul zp,x
.byte $63,$00,$00 ; bbs 3,a
stz $12 ; tst zp
adc $12
ror $12
rmb6 $12 ; bbs 3,zp
pla
adc #$12
ror a
.byte $6B,$00,$00 ; seb 3,a
jmp ($3456)
adc $3456
ror $3456
bbr6 $12,*+122 ; seb 3,zp
bvs *+122
adc ($12),y
adc ($12) ; .byte $72
.byte $73,$00,$00 ; bbc 3,a
stz $12,x ; .byte $74
adc $12,x
ror $12,x
rmb7 $12 ; bbc 3,zp
sei
adc $3456,y
ply
.byte $7B,$00,$00 ; clb 3,a
jmp ($3456,x) ; .byte $7c
adc $3456,x
ror $3456,x
bbr7 $12,*+122 ; clb 3,zp
bra *+122
sta ($12,x)
.byte $82,$00,$00 ; rrf zp
.byte $83,$00,$00 ; bbs 4,a
sty $12
sta $12
stx $12
smb0 $12 ; bbs 4,zp
dey
bit #$12
txa
.byte $8B,$00,$00 ; seb 4,a
sty $3456
sta $3456
stx $3456
bbs0 $12,*+122 ; seb 4,zp
bcc *+122
sta ($12),y
sta ($12) ; .byte $92
.byte $93,$00,$00 ; bbc 4,a
sty $12,x
sta $12,x
stx $12,y
smb1 $12 ; bbc 4,zp
tya
sta $3456,y
txs
.byte $9B,$00,$00 ; clb 4,a
stz $3456 ; .byte $9c
sta $3456,x
stz $3456,x ; .byte $9e
bbs1 $12,*+122 ; clb 4,zp
ldy #$12
lda ($12,x)
ldx #$12
.byte $A3,$00,$00 ; bbs 5,a
ldy $12
lda $12
ldx $12
smb2 $12 ; bbs 5,zp
tay
lda #$12
tax
.byte $AB,$00,$00 ; seb 5,a
ldy $3456
lda $3456
ldx $3456
bbs2 $12,*+122 ; seb 5,zp
bcs *+122
lda ($12),y
lda ($12) ; .byte $b2
.byte $B3,$00,$00 ; bbc 5,a
ldy $12,x
lda $12,x
ldx $12,y
smb3 $12 ; bbc 5,zp
clv
lda $3456,y
tsx
.byte $BB,$00,$00 ; clb 5,a
ldy $3456,x
lda $3456,x
ldx $3456,y
bbs3 $12,*+122 ; clb 5,zp
cpy #$12
cmp ($12,x)
.byte $C2,$00,$00 ; wit
.byte $C3,$00,$00 ; bbs 6,a
cpy $12
cmp $12
dec $12
smb4 $12 ; bbs 6,zp
iny
cmp #$12
dex
.byte $CB,$00,$00 ; seb 6,a
cpy $3456
cmp $3456
dec $3456
bbs4 $12,*+122 ; seb 6,zp
bne *+122
cmp ($12),y
cmp ($12) ; .byte $d2
.byte $D3,$00,$00 ; bbc 6,a
.byte $D4,$00,$00
cmp $12,x
dec $12,x
smb5 $12 ; bbc 6,zp
cld
cmp $3456,y
phx
.byte $DB,$00,$00 ; clb 6,a
.byte $DC,$00,$00
cmp $3456,x
dec $3456,x
bbs5 $12,*+122 ; clb 6,zp
cpx #$12
sbc ($12,x)
.byte $E2,$00,$00 ; div zp,x
.byte $E3,$00,$00 ; bbs 7,a
cpx $12
sbc $12
inc $12
smb6 $12 ; bbs 7,zp
inx
sbc #$12
nop
.byte $EB,$00,$00 ; seb 7,a
cpx $3456
sbc $3456
inc $3456
bbs6 $12,*+122 ; seb 7,zp
beq *+122
sbc ($12),y
sbc ($12) ; .byte $f2
.byte $F3,$00,$00 ; bbc 7,a
.byte $F4,$00,$00
sbc $12,x
inc $12,x
smb7 $12 ; bbc 7,zp
sed
sbc $3456,y
plx
.byte $FB,$00,$00 ; clb 7,a
.byte $FC,$00,$00
sbc $3456,x
inc $3456,x
bbs7 $12,*+122 ; clb 7,zp