From: Sven Oliver Moll Date: Sat, 3 Sep 2016 14:45:59 +0000 (+0200) Subject: migrated opcodes tests for assembler from testcode to test for inclusion on automated... X-Git-Tag: V2.16~69^2~1 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=89e2bf89cb44bff9f7969a1cb5dd87b4b3579081;p=cc65 migrated opcodes tests for assembler from testcode to test for inclusion on automated testing --- diff --git a/test/Makefile b/test/Makefile index ffdf72aa0..2fd252d2a 100644 --- a/test/Makefile +++ b/test/Makefile @@ -40,12 +40,14 @@ $(WORKDIR)/bdiff$(EXE): bdiff.c | $(WORKDIR) dotests: mostlyclean continue continue: $(WORKDIR)/bdiff$(EXE) + @$(MAKE) -C assembler all @$(MAKE) -C val all @$(MAKE) -C ref all @$(MAKE) -C err all @$(MAKE) -C misc all mostlyclean: + @$(MAKE) -C assembler clean @$(MAKE) -C val clean @$(MAKE) -C ref clean @$(MAKE) -C err clean diff --git a/test/assembler/.gitignore b/test/assembler/.gitignore new file mode 100644 index 000000000..c0c74a35e --- /dev/null +++ b/test/assembler/.gitignore @@ -0,0 +1,3 @@ +*.o +*.bin +*.lst diff --git a/test/assembler/4510-opcodes.ref b/test/assembler/4510-opcodes.ref new file mode 100644 index 000000000..b65b12e61 Binary files /dev/null and b/test/assembler/4510-opcodes.ref differ diff --git a/test/assembler/4510-opcodes.s b/test/assembler/4510-opcodes.s new file mode 100644 index 000000000..3d6805674 --- /dev/null +++ b/test/assembler/4510-opcodes.s @@ -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 diff --git a/test/assembler/6502-opcodes.ref b/test/assembler/6502-opcodes.ref new file mode 100644 index 000000000..c12fa8fd6 Binary files /dev/null and b/test/assembler/6502-opcodes.ref differ diff --git a/test/assembler/6502-opcodes.s b/test/assembler/6502-opcodes.s new file mode 100644 index 000000000..5cb94c29f --- /dev/null +++ b/test/assembler/6502-opcodes.s @@ -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 diff --git a/test/assembler/6502x-opcodes.ref b/test/assembler/6502x-opcodes.ref new file mode 100644 index 000000000..f942bec76 Binary files /dev/null and b/test/assembler/6502x-opcodes.ref differ diff --git a/test/assembler/6502x-opcodes.s b/test/assembler/6502x-opcodes.s new file mode 100644 index 000000000..5f21aeb9f --- /dev/null +++ b/test/assembler/6502x-opcodes.s @@ -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 diff --git a/test/assembler/65c02-opcodes.ref b/test/assembler/65c02-opcodes.ref new file mode 100644 index 000000000..2d44045cb Binary files /dev/null and b/test/assembler/65c02-opcodes.ref differ diff --git a/test/assembler/65c02-opcodes.s b/test/assembler/65c02-opcodes.s new file mode 100644 index 000000000..09c3f04f2 --- /dev/null +++ b/test/assembler/65c02-opcodes.s @@ -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 diff --git a/test/assembler/65sc02-opcodes.ref b/test/assembler/65sc02-opcodes.ref new file mode 100644 index 000000000..d22fe6688 Binary files /dev/null and b/test/assembler/65sc02-opcodes.ref differ diff --git a/test/assembler/65sc02-opcodes.s b/test/assembler/65sc02-opcodes.s new file mode 100644 index 000000000..aa539913a --- /dev/null +++ b/test/assembler/65sc02-opcodes.s @@ -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 diff --git a/test/assembler/Makefile b/test/assembler/Makefile new file mode 100644 index 000000000..5e4d580b5 --- /dev/null +++ b/test/assembler/Makefile @@ -0,0 +1,30 @@ + +# makefile for the assembler regression tests + +BINDIR = ../../bin +#WORKDIR := ../../testwrk +WORKDIR := . + +TARGETS = 6502 6502x 65sc02 65c02 +#TARGETS += 65816 +TARGETS += 4510 +TARGETS += huc6280 +#TARGETS += m740 + +all: $(addprefix $(WORKDIR)/, $(addsuffix -opcodes.bin, $(TARGETS))) + @# + +.PHONY: $(addprefix $(WORKDIR)/, $(addsuffix -opcodes.bin, $(TARGETS))) + +clean: + rm -f *.o *.bin *.lst + +define build +$$(WORKDIR)/$(1)-opcodes.bin: $(1)-opcodes.s + @$$(BINDIR)/cl65 --cpu $(1) -t none -l $$(WORKDIR)/$(1)-opcodes.lst --obj-path $$(WORKDIR) -o $$@ $$< + @diff -q $(1)-opcodes.ref $$@ || (cat $$(WORKDIR)/$(1)-opcodes.lst ; exit 1) + @echo ca65 --cpu $(1) ok +endef + +$(foreach target,$(TARGETS),$(eval $(call build,$(target)))) + diff --git a/test/assembler/huc6280-opcodes.ref b/test/assembler/huc6280-opcodes.ref new file mode 100644 index 000000000..33f5b297f Binary files /dev/null and b/test/assembler/huc6280-opcodes.ref differ diff --git a/test/assembler/huc6280-opcodes.s b/test/assembler/huc6280-opcodes.s new file mode 100644 index 000000000..bd3ad5c79 --- /dev/null +++ b/test/assembler/huc6280-opcodes.s @@ -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 diff --git a/test/assembler/m740-opcodes.s b/test/assembler/m740-opcodes.s new file mode 100644 index 000000000..df6d71488 --- /dev/null +++ b/test/assembler/m740-opcodes.s @@ -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 diff --git a/testcode/assembler/.gitignore b/testcode/assembler/.gitignore deleted file mode 100644 index 0f7f86d78..000000000 --- a/testcode/assembler/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.bin -*.o -*.lst diff --git a/testcode/assembler/4510all.ref b/testcode/assembler/4510all.ref deleted file mode 100644 index b65b12e61..000000000 Binary files a/testcode/assembler/4510all.ref and /dev/null differ diff --git a/testcode/assembler/4510all.s b/testcode/assembler/4510all.s deleted file mode 100644 index 997ddd05d..000000000 --- a/testcode/assembler/4510all.s +++ /dev/null @@ -1,278 +0,0 @@ - .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 diff --git a/testcode/assembler/Makefile b/testcode/assembler/Makefile deleted file mode 100644 index 35c34235a..000000000 --- a/testcode/assembler/Makefile +++ /dev/null @@ -1,32 +0,0 @@ - -all: chklegal.bin chkillegal.bin chkall.bin chk4510.bin - @# - -.PHONY: chklegal.bin chkillegal.bin chkall.bin chk4510.bin - -chk4510.bin: 4510all.s - $(MAKE) -C ../../src all - ../../bin/cl65 --target none --cpu 4510 --listing 4510all.lst -o $@ $< - diff -q 4510all.ref $@ || cat 4510all.lst - -chklegal.bin: legal.s - ../../bin/cl65 --target none --cpu 6502X -o chklegal.bin legal.s - diff -q legal.ref chklegal.bin || hex chklegal.bin - -chkillegal.bin: illegal.s - ../../bin/cl65 --target none --cpu 6502X -o chkillegal.bin illegal.s - diff -q illegal.ref chkillegal.bin || hex chkillegal.bin - -chkall.bin: all.s - ../../bin/cl65 --target none --cpu 6502X -o chkall.bin all.s - -ref: legal.s illegal.s - ../../bin/cl65 --target none --cpu 6502X -o legal.ref legal.s - ../../bin/cl65 --target none --cpu 6502X -o illegal.ref illegal.s - -clean: - rm -f legal.o chklegal.bin - rm -f illegal.o chkillegal.bin - rm -f all.o chkall.bin - rm -f 4510all.o chk4510.bin 4510all.lst - diff --git a/testcode/assembler/all.s b/testcode/assembler/all.s deleted file mode 100644 index 2e8f55ec7..000000000 --- a/testcode/assembler/all.s +++ /dev/null @@ -1,260 +0,0 @@ - .setcpu "6502X" - -; all legal and illegal opcodes as they would be disassembled by da65 -; note that this would not assemble into the exact same binary - - brk ; 00 - ora ($12,x) ; 01 12 - jam ; 02 - slo ($12,x) ; 03 12 - nop $12 ; 04 12 - ora $12 ; 05 12 - asl $12 ; 06 12 - slo $12 ; 07 12 - php ; 08 - ora #$12 ; 09 12 - asl a ; 0a - anc #$12 ; 0b 12 - nop $1234 ; 0c 34 12 - ora $1234 ; 0d 34 12 - asl $1234 ; 0e 34 12 - slo $1234 ; 0f 34 12 - bpl *+$14 ; 10 12 - ora ($12),y ; 11 12 - jam ; 12 - slo ($12),y ; 13 12 - nop $12,x ; 14 12 - ora $12,x ; 15 12 - asl $12,x ; 16 12 - slo $12,x ; 17 12 - clc ; 18 - ora $1234,y ; 19 34 12 - nop ; 1a - slo $1234,y ; 1b 34 12 - nop $1234,x ; 1c 34 12 - ora $1234,x ; 1d 34 12 - asl $1234,x ; 1e 34 12 - slo $1234,x ; 1f 34 12 - jsr $1234 ; 20 34 12 - and ($12,x) ; 21 12 - jam ; 22 - rla ($12,x) ; 23 12 - bit $12 ; 24 12 - and $12 ; 25 12 - rol $12 ; 26 12 - rla $12 ; 27 12 - plp ; 28 - and #$12 ; 29 12 - rol a ; 2a - anc #$12 ; 2b 12 - bit $1234 ; 2c 34 12 - and $1234 ; 2d 34 12 - rol $1234 ; 2e 34 12 - rla $1234 ; 2f 34 12 - bmi *+$14 ; 30 12 - and ($12),y ; 31 12 - jam ; 32 - rla ($12),y ; 33 12 - nop $12,x ; 34 12 - and $12,x ; 35 12 - rol $12,x ; 36 12 - rla $12,x ; 37 12 - sec ; 38 - and $1234,y ; 39 34 12 - nop ; 3a - rla $1234,y ; 3b 34 12 - nop $1234,x ; 3c 34 12 - and $1234,x ; 3d 34 12 - rol $1234,x ; 3e 34 12 - rla $1234,x ; 3f 34 12 - rti ; 40 - eor ($12,x) ; 41 12 - jam ; 42 - sre ($12,x) ; 43 12 - nop $12 ; 44 12 - eor $12 ; 45 12 - lsr $12 ; 46 12 - sre $12 ; 47 12 - pha ; 48 - eor #$12 ; 49 12 - lsr a ; 4a - alr #$12 ; 4b 12 - jmp $1234 ; 4c 34 12 - eor $1234 ; 4d 34 12 - lsr $1234 ; 4e 34 12 - sre $1234 ; 4f 34 12 - bvc *+$14 ; 50 12 - eor ($12),y ; 51 12 - jam ; 52 - sre ($12),y ; 53 12 - nop $12,x ; 54 12 - eor $12,x ; 55 12 - lsr $12,x ; 56 12 - sre $12,x ; 57 12 - cli ; 58 - eor $1234,y ; 59 34 12 - nop ; 5a - sre $1234,y ; 5b 34 12 - nop $1234,x ; 5c 34 12 - eor $1234,x ; 5d 34 12 - lsr $1234,x ; 5e 34 12 - sre $1234,x ; 5f 34 12 - rts ; 60 - adc ($12,x) ; 61 12 - jam ; 62 - rra ($12,x) ; 63 12 - nop $12 ; 64 12 - adc $12 ; 65 12 - ror $12 ; 66 12 - rra $12 ; 67 12 - pla ; 68 - adc #$12 ; 69 12 - ror a ; 6a - arr #$12 ; 6b 12 - jmp ($1234) ; 6c 34 12 - adc $1234 ; 6d 34 12 - ror $1234 ; 6e 34 12 - rra $1234 ; 6f 34 12 - bvs *+$14 ; 70 12 - adc ($12),y ; 71 12 - jam ; 72 - rra ($12),y ; 73 12 - nop $12,x ; 74 12 - adc $12,x ; 75 12 - ror $12,x ; 76 12 - rra $12,x ; 77 12 - sei ; 78 - adc $1234,y ; 79 34 12 - nop ; 7a - rra $1234,y ; 7b 34 12 - nop $1234,x ; 7c 34 12 - adc $1234,x ; 7d 34 12 - ror $1234,x ; 7e 34 12 - rra $1234,x ; 7f 34 12 - nop #$12 ; 80 12 - sta ($12,x) ; 81 12 - nop #$12 ; 82 12 - sax ($12,x) ; 83 12 - sty $12 ; 84 12 - sta $12 ; 85 12 - stx $12 ; 86 12 - sax $12 ; 87 12 - dey ; 88 - nop #$12 ; 89 12 - txa ; 8a - ane #$12 ; 8b 12 - sty $1234 ; 8c 34 12 - sta $1234 ; 8d 34 12 - stx $1234 ; 8e 34 12 - sax $1234 ; 8f 34 12 - bcc *+$14 ; 90 12 - sta ($12),y ; 91 12 - jam ; 92 - sha ($12),y ; 93 12 - sty $12,x ; 94 12 - sta $12,x ; 95 12 - stx $12,y ; 96 12 - sax $12,y ; 97 12 - tya ; 98 - sta $1234,y ; 99 34 12 - txs ; 9a - tas $1234,y ; 9b 34 12 - shy $1234,x ; 9c 34 12 - sta $1234,x ; 9d 34 12 - shx $1234,y ; 9e 34 12 - sha $1234,y ; 9f 34 12 - ldy #$12 ; a0 12 - lda ($12,x) ; a1 12 - ldx #$12 ; a2 12 - lax ($12,x) ; a3 12 - ldy $12 ; a4 12 - lda $12 ; a5 12 - ldx $12 ; a6 12 - lax $12 ; a7 12 - tay ; a8 - lda #$12 ; a9 12 - tax ; aa - lax #$12 ; ab 12 - ldy $1234 ; ac 34 12 - lda $1234 ; ad 34 12 - ldx $1234 ; ae 34 12 - lax $1234 ; af 34 12 - bcs *+$14 ; b0 12 - lda ($12),y ; b1 12 - jam ; b2 - lax ($12),y ; b3 12 - ldy $12,x ; b4 12 - lda $12,x ; b5 12 - ldx $12,y ; b6 12 - lax $12,y ; b7 12 - clv ; b8 - lda $1234,y ; b9 34 12 - tsx ; ba - las $1234,y ; bb 34 12 - ldy $1234,x ; bc 34 12 - lda $1234,x ; bd 34 12 - ldx $1234,y ; be 34 12 - lax $1234,y ; bf 34 12 - cpy #$12 ; c0 12 - cmp ($12,x) ; c1 12 - nop #$12 ; c2 12 - dcp ($12,x) ; c3 12 - cpy $12 ; c4 12 - cmp $12 ; c5 12 - dec $12 ; c6 12 - dcp $12 ; c7 12 - iny ; c8 - cmp #$12 ; c9 12 - dex ; ca - axs #$12 ; cb 12 - cpy $1234 ; cc 34 12 - cmp $1234 ; cd 34 12 - dec $1234 ; ce 34 12 - dcp $1234 ; cf 34 12 - bne *+$14 ; d0 12 - cmp ($12),y ; d1 12 - jam ; d2 - dcp ($12),y ; d3 12 - nop $12,x ; d4 12 - cmp $12,x ; d5 12 - dec $12,x ; d6 12 - dcp $12,x ; d7 12 - cld ; d8 - cmp $1234,y ; d9 34 12 - nop ; da - dcp $1234,y ; db 34 12 - nop $1234,x ; dc 34 12 - cmp $1234,x ; dd 34 12 - dec $1234,x ; de 34 12 - dcp $1234,x ; df 34 12 - cpx #$12 ; e0 12 - sbc ($12,x) ; e1 12 - nop #$12 ; e2 12 - isc ($12,x) ; e3 12 - cpx $12 ; e4 12 - sbc $12 ; e5 12 - inc $12 ; e6 12 - isc $12 ; e7 12 - inx ; e8 - sbc #$12 ; e9 12 - nop ; ea - sbc #$12 ; eb 12 - cpx $1234 ; ec 34 12 - sbc $1234 ; ed 34 12 - inc $1234 ; ee 34 12 - isc $1234 ; ef 34 12 - beq *+$14 ; f0 12 - sbc ($12),y ; f1 12 - jam ; f2 - isc ($12),y ; f3 12 - nop $12,x ; f4 12 - sbc $12,x ; f5 12 - inc $12,x ; f6 12 - isc $12,x ; f7 12 - sed ; f8 - sbc $1234,y ; f9 34 12 - isc $1234,y ; fb 34 12 - nop $1234,x ; fc 34 12 - sbc $1234,x ; fd 34 12 - inc $1234,x ; fe 34 12 - isc $1234,x ; ff 34 12 diff --git a/testcode/assembler/illegal.ref b/testcode/assembler/illegal.ref deleted file mode 100644 index c8dc208b4..000000000 --- a/testcode/assembler/illegal.ref +++ /dev/null @@ -1 +0,0 @@ -444'/4?4;4#73O4_4[4GCWSo44{4gcwsÏ4ß4Û4ÇÃ×Óï4ÿ4û4çã÷ó4‡ƒ—¯4¿4§£³· kKË 44€“Ÿ4ž4œ4›4»4«‹ \ No newline at end of file diff --git a/testcode/assembler/illegal.s b/testcode/assembler/illegal.s deleted file mode 100644 index b49b88761..000000000 --- a/testcode/assembler/illegal.s +++ /dev/null @@ -1,135 +0,0 @@ - - .setcpu "6502X" - -; all so called "illegal" opcodes. duplicated (functionally identical) ones -; are commented out - -; first all totally stable undocs: - - slo $12 ; 07 12 - slo $1234 ; 0f 34 12 - slo $1234,x ; 1f 34 12 - slo $1234,y ; 1b 34 12 - slo ($12,x) ; 03 12 - slo $12,x ; 17 12 - slo ($12),y ; 13 12 - - rla $12 ; 27 12 - rla $1234 ; 2f 34 12 - rla $1234,x ; 3f 34 12 - rla $1234,y ; 3b 34 12 - rla ($12,x) ; 23 12 - rla $12,x ; 37 12 - rla ($12),y ; 33 12 - - sre $1234 ; 4f 34 12 - sre $1234,x ; 5f 34 12 - sre $1234,y ; 5b 34 12 - sre $12 ; 47 12 - sre ($12,x) ; 43 12 - sre $12,x ; 57 12 - sre ($12),y ; 53 12 - - rra $1234 ; 6f 34 12 - rra $1234,x ; 7f 34 12 - rra $1234,y ; 7b 34 12 - rra $12 ; 67 12 - rra ($12,x) ; 63 12 - rra $12,x ; 77 12 - rra ($12),y ; 73 12 - - dcp $1234 ; cf 34 12 - dcp $1234,x ; df 34 12 - dcp $1234,y ; db 34 12 - dcp $12 ; c7 12 - dcp ($12,x) ; c3 12 - dcp $12,x ; d7 12 - dcp ($12),y ; d3 12 - - isc $1234 ; ef 34 12 - isc $1234,x ; ff 34 12 - isc $1234,y ; fb 34 12 - isc $12 ; e7 12 - isc ($12,x) ; e3 12 - isc $12,x ; f7 12 - isc ($12),y ; f3 12 - - sax $1234 ; 8f 34 12 - sax $12 ; 87 12 - sax ($12,x) ; 83 12 - sax $12,y ; 97 12 - - lax $1234 ; af 34 12 - lax $1234,y ; bf 34 12 - lax $12 ; a7 12 - lax ($12,x) ; a3 12 - lax ($12),y ; b3 12 - lax $12,y ; b7 12 - - anc #$12 ; 0b 12 - ;anc #$12 ; 2b 12 - - arr #$12 ; 6b 12 - - alr #$12 ; 4b 12 - - axs #$12 ; cb 12 - - nop $1234 ; 0c 34 12 - nop $1234,x ; 1c 34 12 - nop $12 ; 04 12 - nop $12,x ; 14 12 - nop #$12 ; 80 12 - ;nop $1234,x ; 3c 34 12 - ;nop $1234,x ; 5c 34 12 - ;nop $1234,x ; 7c 34 12 - ;nop $1234,x ; dc 34 12 - ;nop $1234,x ; fc 34 12 - ;nop $12 ; 44 12 - ;nop $12 ; 64 12 - ;nop #$12 ; 82 12 - ;nop #$12 ; 89 12 - ;nop #$12 ; c2 12 - ;nop #$12 ; e2 12 - ;nop $12,x ; 34 12 - ;nop $12,x ; 54 12 - ;nop $12,x ; 74 12 - ;nop $12,x ; d4 12 - ;nop $12,x ; f4 12 - ;nop ; 1a - ;nop ; 3a - ;nop ; 5a - ;nop ; 7a - ;nop ; da - - jam ; 02 - ;jam ; 12 - ;jam ; 22 - ;jam ; 32 - ;jam ; 42 - ;jam ; 52 - ;jam ; 62 - ;jam ; 72 - ;jam ; 92 - ;jam ; b2 - ;jam ; d2 - ;jam ; f2 - - ;sbc #$12 ; eb 12 - -; the so-called "unstable" ones: - - sha ($12),y ; 93 12 - sha $1234,y ; 9f 34 12 - - shx $1234,y ; 9e 34 12 - shy $1234,x ; 9c 34 12 - - tas $1234,y ; 9b 34 12 - las $1234,y ; bb 34 12 - -; the two so-called "highly unstable" ones: - - lax #$12 ; ab 12 - - ane #$12 ; 8b 12 diff --git a/testcode/assembler/legal.ref b/testcode/assembler/legal.ref deleted file mode 100644 index c38f29014..000000000 Binary files a/testcode/assembler/legal.ref and /dev/null differ diff --git a/testcode/assembler/legal.s b/testcode/assembler/legal.s deleted file mode 100644 index 1de43b98b..000000000 --- a/testcode/assembler/legal.s +++ /dev/null @@ -1,185 +0,0 @@ - - .setcpu "6502" - - adc $1234 ; 6d 34 12 - adc $1234,x ; 7d 34 12 - adc $1234,y ; 79 34 12 - adc $12 ; 65 12 - adc #$12 ; 69 12 - adc ($12,x) ; 61 12 - adc $12,x ; 75 12 - adc ($12),y ; 71 12 - - and $12 ; 25 12 - and #$12 ; 29 12 - and $1234 ; 2d 34 12 - and $1234,x ; 3d 34 12 - and $1234,y ; 39 34 12 - and ($12,x) ; 21 12 - and $12,x ; 35 12 - and ($12),y ; 31 12 - - asl $12 ; 06 12 - asl $1234 ; 0e 34 12 - asl $1234,x ; 1e 34 12 - asl $12,x ; 16 12 - asl a ; 0a - - bcc *+$14 ; 90 12 - bcs *+$14 ; b0 12 - beq *+$14 ; f0 12 - bmi *+$14 ; 30 12 - bne *+$14 ; d0 12 - bpl *+$14 ; 10 12 - bvc *+$14 ; 50 12 - bvs *+$14 ; 70 12 - - bit $12 ; 24 12 - bit $1234 ; 2c 34 12 - - brk ; 00 - - clc ; 18 - cld ; d8 - cli ; 58 - clv ; b8 - - cmp $1234 ; cd 34 12 - cmp $1234,x ; dd 34 12 - cmp $1234,y ; d9 34 12 - cmp $12 ; c5 12 - cmp #$12 ; c9 12 - cmp ($12,x) ; c1 12 - cmp $12,x ; d5 12 - cmp ($12),y ; d1 12 - - cpx $1234 ; ec 34 12 - cpx #$12 ; e0 12 - cpx $12 ; e4 12 - - cpy $1234 ; cc 34 12 - cpy #$12 ; c0 12 - cpy $12 ; c4 12 - - dec $1234 ; ce 34 12 - dec $1234,x ; de 34 12 - dec $12 ; c6 12 - dec $12,x ; d6 12 - - dex ; ca - dey ; 88 - - eor $1234 ; 4d 34 12 - eor $1234,x ; 5d 34 12 - eor $1234,y ; 59 34 12 - eor $12 ; 45 12 - eor #$12 ; 49 12 - eor ($12,x) ; 41 12 - eor $12,x ; 55 12 - eor ($12),y ; 51 12 - - inc $1234 ; ee 34 12 - inc $1234,x ; fe 34 12 - inc $12 ; e6 12 - inc $12,x ; f6 12 - - inx ; e8 - iny ; c8 - - jmp $1234 ; 4c 34 12 - jmp ($1234) ; 6c 34 12 - - jsr $1234 ; 20 34 12 - - lda $1234 ; ad 34 12 - lda $1234,x ; bd 34 12 - lda $1234,y ; b9 34 12 - lda $12 ; a5 12 - lda #$12 ; a9 12 - lda ($12,x) ; a1 12 - lda $12,x ; b5 12 - lda ($12),y ; b1 12 - - ldx $1234 ; ae 34 12 - ldx $1234,y ; be 34 12 - ldx #$12 ; a2 12 - ldx $12 ; a6 12 - ldx $12,y ; b6 12 - - ldy $1234 ; ac 34 12 - ldy $1234,x ; bc 34 12 - ldy #$12 ; a0 12 - ldy $12 ; a4 12 - ldy $12,x ; b4 12 - - lsr $1234 ; 4e 34 12 - lsr $1234,x ; 5e 34 12 - lsr $12 ; 46 12 - lsr $12,x ; 56 12 - lsr a ; 4a - - nop ; ea - - ora $12 ; 05 12 - ora #$12 ; 09 12 - ora $1234 ; 0d 34 12 - ora $1234,x ; 1d 34 12 - ora $1234,y ; 19 34 12 - ora ($12,x) ; 01 12 - ora $12,x ; 15 12 - ora ($12),y ; 11 12 - - pha ; 48 - php ; 08 - pla ; 68 - plp ; 28 - - rol $12 ; 26 12 - rol $1234 ; 2e 34 12 - rol $1234,x ; 3e 34 12 - rol $12,x ; 36 12 - rol a ; 2a - ror $1234 ; 6e 34 12 - ror $1234,x ; 7e 34 12 - ror $12 ; 66 12 - ror $12,x ; 76 12 - ror a ; 6a - - rti ; 40 - rts ; 60 - - sbc $1234 ; ed 34 12 - sbc $1234,x ; fd 34 12 - sbc $1234,y ; f9 34 12 - sbc $12 ; e5 12 - sbc #$12 ; e9 12 - sbc ($12,x) ; e1 12 - sbc $12,x ; f5 12 - sbc ($12),y ; f1 12 - - sec ; 38 - sed ; f8 - sei ; 78 - - sta $1234 ; 8d 34 12 - sta $1234,x ; 9d 34 12 - sta $1234,y ; 99 34 12 - sta $12 ; 85 12 - sta ($12,x) ; 81 12 - sta $12,x ; 95 12 - sta ($12),y ; 91 12 - - stx $1234 ; 8e 34 12 - stx $12 ; 86 12 - stx $12,y ; 96 12 - - sty $1234 ; 8c 34 12 - sty $12 ; 84 12 - sty $12,x ; 94 12 - - tax ; aa - tay ; a8 - tsx ; ba - txa ; 8a - txs ; 9a - tya ; 98