From 1d7bc938f2a3f0790c1e16921beb039cb1b5720e Mon Sep 17 00:00:00 2001 From: mrdudz Date: Sun, 22 Jun 2025 01:18:41 +0200 Subject: [PATCH] add roundtrip disasm tests for all cpus --- test/dasm/45GS02-disass.s | 381 +++++++++++++++++++++++++++++++++++++ test/dasm/6502-disass.s | 8 + test/dasm/6502DTV-disass.s | 188 ++++++++++++++++++ test/dasm/6502X-disass.s | 30 +++ test/dasm/65C02-disass.s | 214 +++++++++++++++++++++ test/dasm/65SC02-disass.s | 181 ++++++++++++++++++ test/dasm/huc6280-disass.s | 250 ++++++++++++++++++++++++ test/dasm/m740-disass.s | 8 + test/dasm/readme.txt | 9 + 9 files changed, 1269 insertions(+) create mode 100644 test/dasm/45GS02-disass.s create mode 100644 test/dasm/6502-disass.s create mode 100644 test/dasm/6502DTV-disass.s create mode 100644 test/dasm/6502X-disass.s create mode 100644 test/dasm/65C02-disass.s create mode 100644 test/dasm/65SC02-disass.s create mode 100644 test/dasm/huc6280-disass.s create mode 100644 test/dasm/m740-disass.s create mode 100644 test/dasm/readme.txt diff --git a/test/dasm/45GS02-disass.s b/test/dasm/45GS02-disass.s new file mode 100644 index 000000000..1ed174a2f --- /dev/null +++ b/test/dasm/45GS02-disass.s @@ -0,0 +1,381 @@ +.setcpu "45GS02" + +ZP = $12 +ABS = $1234 + + 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, L0 +L0: + bpl L0 + 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,L1 +L1: + 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,L2 +L2: + bmi L2 + 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,L3 +L3: + 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,L4 +L4: + bvc L4 + 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,L5 +L5: + 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,L6 +L6: + bvs L6 + 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,L7 +L7: + bra L7 + 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,L8 +L8: + bcc L8 + 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,L9 +L9: + 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,L10 +L10: + bcs L10 + 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,L11 +L11: + 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,L12 +L12: + bne L12 + 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,L13 +L13: + 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,L14 +L14: + beq L14 + 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,L15 +L15: + + adc [$12],z + + adcq $12 + adcq $3456 + adcq ($78) + adcq [$9a] + + and [$12],z + + andq $12 + andq $3456 + andq ($78) + andq [$9a] + + aslq $12 + aslq + aslq $3456 + aslq $78,x + aslq $9abc,x + + asrq + asrq $12 + asrq $34,x + + bitq $12 + bitq $3456 + + cmp [$12],z + + cmpq $12 + cmpq $3456 + cmpq ($78) + cmpq [$9a] + + deq + deq $12 + deq $3456 + deq $78,x + deq $9abc,x + + eor [$12],z + + eorq $12 + eorq $3456 + eorq ($78) + eorq [$9a] + + inq + inq $12 + inq $3456 + inq $78,x + inq $9abc,x + + lda [$12],z + + ldq $12 + ldq $3456 + ldq ($78),z + ldq [$9a],z + + lsrq $12 + lsrq + lsrq $3456 + lsrq $78,x + lsrq $9abc,x + + ora [$12],z + + orq $12 + orq $3456 + orq ($78) + orq [$9a] + + rolq $12 + rolq + rolq $3456 + rolq $78,x + rolq $9abc,x + + rorq $12 + rorq + rorq $3456 + rorq $78,x + rorq $9abc,x + + sbc [$12],z + + sbcq $12 + sbcq $3456 + sbcq ($78) + sbcq [$9a] + + sta [$12],z ; EA 92 12 + + stq $12 + stq $3456 + stq ($78) + stq [$9a] diff --git a/test/dasm/6502-disass.s b/test/dasm/6502-disass.s new file mode 100644 index 000000000..794eead76 --- /dev/null +++ b/test/dasm/6502-disass.s @@ -0,0 +1,8 @@ + + .setcpu "6502" + + .repeat 256, cnt + + .byte 0 + cnt, $02, $ea, $00 + + .endrepeat diff --git a/test/dasm/6502DTV-disass.s b/test/dasm/6502DTV-disass.s new file mode 100644 index 000000000..5254923c5 --- /dev/null +++ b/test/dasm/6502DTV-disass.s @@ -0,0 +1,188 @@ +.setcpu "6502DTV" + + brk + ora ($12,x) + nop $12 + ora $12 + asl $12 + php + ora #$12 + asl a + anc #$12 + nop $3456 + ora $3456 + asl $3456 + bpl *+2 + ora ($12),y + bra *+2 + nop $12,x + ora $12,x + asl $12,x + clc + ora $3456,y + nop $3456,x + ora $3456,x + asl $3456,x + jsr $3456 + and ($12,x) + rla ($12,x) + bit $12 + and $12 + rol $12 + rla $12 + plp + and #$12 + rol a + bit $3456 + and $3456 + rol $3456 + rla $3456 + bmi *+2 + and ($12),y + sac #$12 + rla ($12),y + and $12,x + rol $12,x + rla $12,x + sec + and $3456,y + rla $3456,y + and $3456,x + rol $3456,x + rla $3456,x + rti + eor ($12,x) + sir #$12 + eor $12 + lsr $12 + pha + eor #$12 + lsr a + alr #$12 + jmp $3456 + eor $3456 + lsr $3456 + bvc *+2 + eor ($12),y + eor $12,x + lsr $12,x + cli + eor $3456,x + lsr $3456,x + rts + adc ($12,x) + rra ($12,x) + adc $12 + ror $12 + rra $12 + pla + adc #$12 + ror a + arr #$12 + jmp ($3456) + adc $3456 + ror $3456 + rra $3456 + bvs *+2 + adc ($12),y + rra ($12),y + adc $12,x + ror $12,x + rra $12,x + sei + adc $3456,y + rra $3456,y + adc $3456,x + ror $3456,x + rra $3456,x + nop #$12 + sta ($12,x) + sty $12 + sta $12 + stx $12 + dey + txa + sty $3456 + sta $3456 + stx $3456 + bcc *+2 + sta ($12),y + sty $12,x + sta $12,x + stx $12,y + tya + sta $3456,y + txs + shy $3456,x + sta $3456,x + shx $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 *+2 + lda ($12),y + 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) + cpy $12 + cmp $12 + dec $12 + iny + cmp #$12 + dex + axs #$12 + cpy $3456 + cmp $3456 + dec $3456 + bne *+2 + cmp ($12),y + cmp $12,x + dec $12,x + cld + cmp $3456,y + cmp $3456,x + dec $3456,x + cpx #$12 + sbc ($12,x) + cpx $12 + sbc $12 + inc $12 + inx + sbc #$12 + nop + cpx $3456 + sbc $3456 + inc $3456 + beq *+2 + sbc ($12),y + sbc $12,x + inc $12,x + sed + sbc $3456,y + sbc $3456,x + inc $3456,x diff --git a/test/dasm/6502X-disass.s b/test/dasm/6502X-disass.s new file mode 100644 index 000000000..f102144c4 --- /dev/null +++ b/test/dasm/6502X-disass.s @@ -0,0 +1,30 @@ + + .setcpu "6502X" + + .repeat 256, cnt + + ; generate a pattern with all opcodes. however, for the full cycle to work, + ; we must take care of the "duplicate" opcodes, ie use only the favourite one. + .if ((cnt & $0f) = $02) + .byte $02 ; all JAM + .elseif ((cnt & $1f) = $1a) + .byte $ea ; all NOP + .elseif (cnt = $2b) + .byte $0b ; both ANC #imm + .elseif (cnt = $89) + .byte $80 ; both NOP #imm + .elseif (cnt = $eb) + .byte $e9 ; both SBC #imm + .elseif (cnt = $34) || (cnt = $54) || (cnt = $74) || (cnt = $d4) || (cnt = $f4) + .byte $14 ; all NOP zp, x + .elseif (cnt = $3c) || (cnt = $5c) || (cnt = $7c) || (cnt = $dc) || (cnt = $fc) + .byte $1c ; all NOP abs, x + .elseif (cnt = $44) || (cnt = $64) + .byte $04 ; all NOP zp + .else + .byte cnt + .endif + + .byte $02, $ea, $00 + + .endrepeat diff --git a/test/dasm/65C02-disass.s b/test/dasm/65C02-disass.s new file mode 100644 index 000000000..0613921d5 --- /dev/null +++ b/test/dasm/65C02-disass.s @@ -0,0 +1,214 @@ +.setcpu "65C02" + + brk + ora ($12,x) + tsb $12 + ora $12 + asl $12 + rmb0 $12 + php + ora #$12 + asl a + tsb $3456 + ora $3456 + asl $3456 + bbr0 $12,*+2 + bpl *+2 + ora ($12),y + ora ($12) + trb $12 + ora $12,x + asl $12,x + rmb1 $12 + clc + ora $3456,y + inc a + trb $3456 + ora $3456,x + asl $3456,x + bbr1 $12,*+2 + jsr $3456 + and ($12,x) + bit $12 + and $12 + rol $12 + rmb2 $12 + plp + and #$12 + rol a + bit $3456 + and $3456 + rol $3456 + bbr2 $12,*+2 + bmi *+2 + and ($12),y + and ($12) + bit $12,x + and $12,x + rol $12,x + rmb3 $12 + sec + and $3456,y + dec a + bit $3456,x + and $3456,x + rol $3456,x + bbr3 $12,*+2 + rti + eor ($12,x) + eor $12 + lsr $12 + rmb4 $12 + pha + eor #$12 + lsr a + jmp $3456 + eor $3456 + lsr $3456 + bbr4 $12,*+2 + bvc *+2 + eor ($12),y + eor ($12) + eor $12,x + lsr $12,x + rmb5 $12 + cli + eor $3456,y + phy + eor $3456,x + lsr $3456,x + bbr5 $12,*+2 + rts + adc ($12,x) + stz $12 + adc $12 + ror $12 + rmb6 $12 + pla + adc #$12 + ror a + jmp ($3456) + adc $3456 + ror $3456 + bbr6 $12,*+2 + bvs *+2 + adc ($12),y + adc ($12) + stz $12,x + adc $12,x + ror $12,x + rmb7 $12 + sei + adc $3456,y + ply + jmp ($3456,x) + adc $3456,x + ror $3456,x + bbr7 $12,*+2 + bra *+2 + sta ($12,x) + sty $12 + sta $12 + stx $12 + smb0 $12 + dey + bit #$12 + txa + sty $3456 + sta $3456 + stx $3456 + bbs0 $12,*+2 + bcc *+2 + sta ($12),y + sta ($12) + sty $12,x + sta $12,x + stx $12,y + smb1 $12 + tya + sta $3456,y + txs + stz $3456 + sta $3456,x + stz $3456,x + bbs1 $12,*+2 + ldy #$12 + lda ($12,x) + ldx #$12 + ldy $12 + lda $12 + ldx $12 + smb2 $12 + tay + lda #$12 + tax + ldy $3456 + lda $3456 + ldx $3456 + bbs2 $12,*+2 + bcs *+2 + lda ($12),y + lda ($12) + ldy $12,x + lda $12,x + ldx $12,y + smb3 $12 + clv + lda $3456,y + tsx + ldy $3456,x + lda $3456,x + ldx $3456,y + bbs3 $12,*+2 + cpy #$12 + cmp ($12,x) + cpy $12 + cmp $12 + dec $12 + smb4 $12 + iny + cmp #$12 + dex + cpy $3456 + cmp $3456 + dec $3456 + bbs4 $12,*+2 + bne *+2 + cmp ($12),y + cmp ($12) + cmp $12,x + dec $12,x + smb5 $12 + cld + cmp $3456,y + phx + cmp $3456,x + dec $3456,x + bbs5 $12,*+2 + cpx #$12 + sbc ($12,x) + cpx $12 + sbc $12 + inc $12 + smb6 $12 + inx + sbc #$12 + nop + cpx $3456 + sbc $3456 + inc $3456 + bbs6 $12,*+2 + beq *+2 + sbc ($12),y + sbc ($12) + sbc $12,x + inc $12,x + smb7 $12 + sed + sbc $3456,y + plx + sbc $3456,x + inc $3456,x +L0: + bbs7 $12,L0 + nop diff --git a/test/dasm/65SC02-disass.s b/test/dasm/65SC02-disass.s new file mode 100644 index 000000000..46e96aaf9 --- /dev/null +++ b/test/dasm/65SC02-disass.s @@ -0,0 +1,181 @@ +.setcpu "65SC02" + + brk + ora ($12,x) + tsb $12 + ora $12 + asl $12 + php + ora #$12 + asl a + tsb $3456 + ora $3456 + asl $3456 + bpl *+2 + ora ($12),y + ora ($12) + trb $12 + ora $12,x + asl $12,x + clc + ora $3456,y + inc a + trb $3456 + ora $3456,x + asl $3456,x + jsr $3456 + and ($12,x) + bit $12 + and $12 + rol $12 + plp + and #$12 + rol a + bit $3456 + and $3456 + rol $3456 + bmi *+2 + and ($12),y + and ($12) + bit $12,x + and $12,x + rol $12,x + sec + and $3456,y + dec a + bit $3456,x + and $3456,x + rol $3456,x + rti + eor ($12,x) + eor $12 + lsr $12 + pha + eor #$12 + lsr a + jmp $3456 + eor $3456 + lsr $3456 + bvc *+2 + eor ($12),y + eor ($12) + eor $12,x + lsr $12,x + cli + eor $3456,y + phy + eor $3456,x + lsr $3456,x + rts + adc ($12,x) + stz $12 + adc $12 + ror $12 + pla + adc #$12 + ror a + jmp ($3456) + adc $3456 + ror $3456 + bvs *+2 + adc ($12),y + adc ($12) + stz $12,x + adc $12,x + ror $12,x + sei + adc $3456,y + ply + jmp ($3456,x) + adc $3456,x + ror $3456,x + bra *+2 + sta ($12,x) + sty $12 + sta $12 + stx $12 + dey + bit #$12 + txa + sty $3456 + sta $3456 + stx $3456 + bcc *+2 + sta ($12),y + sta ($12) + sty $12,x + sta $12,x + stx $12,y + tya + sta $3456,y + txs + stz $3456 + sta $3456,x + stz $3456,x + ldy #$12 + lda ($12,x) + ldx #$12 + ldy $12 + lda $12 + ldx $12 + tay + lda #$12 + tax + ldy $3456 + lda $3456 + ldx $3456 + bcs *+2 + lda ($12),y + lda ($12) + ldy $12,x + lda $12,x + ldx $12,y + clv + lda $3456,y + tsx + ldy $3456,x + lda $3456,x + ldx $3456,y + cpy #$12 + cmp ($12,x) + cpy $12 + cmp $12 + dec $12 + iny + cmp #$12 + dex + cpy $3456 + cmp $3456 + dec $3456 + bne *+2 + cmp ($12),y + cmp ($12) + cmp $12,x + dec $12,x + cld + cmp $3456,y + phx + cmp $3456,x + dec $3456,x + cpx #$12 + sbc ($12,x) + cpx $12 + sbc $12 + inc $12 + inx + sbc #$12 + nop + cpx $3456 + sbc $3456 + inc $3456 + beq *+2 + sbc ($12),y + sbc ($12) + sbc $12,x + inc $12,x + sed + sbc $3456,y + plx + sbc $3456,x + inc $3456,x + diff --git a/test/dasm/huc6280-disass.s b/test/dasm/huc6280-disass.s new file mode 100644 index 000000000..4ae7b067d --- /dev/null +++ b/test/dasm/huc6280-disass.s @@ -0,0 +1,250 @@ +.setcpu "huc6280" + + brk + ora ($12,x) + sxy + st0 #$12 + tsb $12 + ora $12 + asl $12 + rmb0 $12 + php + ora #$12 + asl a + tsb $3456 + ora $3456 + asl $3456 + bbr0 $12,L0 +L0: + bpl *+2 + ora ($12),y + ora ($12) + st1 #$12 + trb $12 + ora $12,x + asl $12,x + rmb1 $12 + clc + ora $3456,y + inc a + trb $3456 + ora $3456,x + asl $3456,x + bbr1 $12,L1 +L1: + jsr $3456 + and ($12,x) + sax + st2 #$12 + bit $12 + and $12 + rol $12 + rmb2 $12 + plp + and #$12 + rol a + bit $3456 + and $3456 + rol $3456 + bbr2 $12,L2 +L2: + bmi *+2 + and ($12),y + and ($12) + bit $12,x + and $12,x + rol $12,x + rmb3 $12 + sec + and $3456,y + dec a + bit $3456,x + and $3456,x + rol $3456,x + bbr3 $12,L3 +L3: + rti + eor ($12,x) + say + tma #$02 + bsr *+2 + eor $12 + lsr $12 + rmb4 $12 + pha + eor #$12 + lsr a + jmp $3456 + eor $3456 + lsr $3456 + bbr4 $12,L4 +L4: + bvc *+2 + eor ($12),y + eor ($12) + tam #$12 + csl + eor $12,x + lsr $12,x + rmb5 $12 + cli + eor $3456,y + phy + eor $3456,x + lsr $3456,x + bbr5 $12,L5 +L5: + rts + adc ($12,x) + cla + stz $12 + adc $12 + ror $12 + rmb6 $12 + pla + adc #$12 + ror a + jmp ($3456) + adc $3456 + ror $3456 + bbr6 $12,L6 +L6: + bvs *+2 + 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 + jmp ($3456,x) + adc $3456,x + ror $3456,x + bbr7 $12,L7 +L7: + bra *+2 + sta ($12,x) + clx + tst #$12,$EA + sty $12 + sta $12 + stx $12 + smb0 $12 + dey + bit #$12 + txa + sty $3456 + sta $3456 + stx $3456 + bbs0 $12,LS0 +LS0: + bcc *+2 + sta ($12),y + sta ($12) + tst #$12,$EAEA + sty $12,x + sta $12,x + stx $12,y + smb1 $12 + tya + sta $3456,y + txs + stz $3456 + sta $3456,x + stz $3456,x + bbs1 $12,LS1 +LS1: + ldy #$12 + lda ($12,x) + ldx #$12 + tst #$12,$EA,x + ldy $12 + lda $12 + ldx $12 + smb2 $12 + tay + lda #$12 + tax + ldy $3456 + lda $3456 + ldx $3456 + bbs2 $12,LS2 +LS2: + bcs *+2 + 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 + ldy $3456,x + lda $3456,x + ldx $3456,y + bbs3 $12,LS3 +LS3: + cpy #$12 + cmp ($12,x) + cly + tdd $3333,$C3C3,$1111 + cpy $12 + cmp $12 + dec $12 + smb4 $12 + iny + cmp #$12 + dex + cpy $3456 + cmp $3456 + dec $3456 + bbs4 $12,LS4 +LS4: + bne *+2 + cmp ($12),y + cmp ($12) + tin $3333,$D3D3,$1111 + cmp $12,x + dec $12,x + smb5 $12 + cld + cmp $3456,y + phx + cmp $3456,x + dec $3456,x + bbs5 $12,LS5 +LS5: + cpx #$12 + sbc ($12,x) + tia $3333,$E3E3,$1111 + cpx $12 + sbc $12 + inc $12 + smb6 $12 + inx + sbc #$12 + nop + cpx $3456 + sbc $3456 + inc $3456 + bbs6 $12,LS6 +LS6: + beq *+2 + sbc ($12),y + sbc ($12) + tai $3333,$F3F3,$1111 + sbc $12,x + inc $12,x + smb7 $12 + sed + sbc $3456,y + plx + sbc $3456,x + inc $3456,x +LS7: + bbs7 $12,LS7 diff --git a/test/dasm/m740-disass.s b/test/dasm/m740-disass.s new file mode 100644 index 000000000..ea0f19f8d --- /dev/null +++ b/test/dasm/m740-disass.s @@ -0,0 +1,8 @@ + + .setcpu "M740" + + .repeat 256, cnt + + .byte 0 + cnt, $12, $02, $ea + + .endrepeat diff --git a/test/dasm/readme.txt b/test/dasm/readme.txt new file mode 100644 index 000000000..9e001ec8c --- /dev/null +++ b/test/dasm/readme.txt @@ -0,0 +1,9 @@ + +Per CPU, a test binary is produced (using the assembler), which should contain +all possible instructions. That file is then disassembled, and assembled again, +and finally the resulting binary compared with the binary produced in the first +step. + +Given that we assume the assembler works (this is tested in other/previous +tests), this proves that the disassembler works, and can produce output that the +assembler will understand - and produce an identical binary from.