diff options
author | fishsoupisgood <github@madingley.org> | 2019-05-27 02:41:51 +0100 |
---|---|---|
committer | fishsoupisgood <github@madingley.org> | 2019-05-27 02:41:51 +0100 |
commit | 333b605b2afd472b823aeda0adf0e8b1ea9843c0 (patch) | |
tree | bc8f581317897e2e53f278f1716b4471fcdccd4f /tests/t_full09/t_full09.asm | |
download | asl-master.tar.gz asl-master.tar.bz2 asl-master.zip |
Diffstat (limited to 'tests/t_full09/t_full09.asm')
-rw-r--r-- | tests/t_full09/t_full09.asm | 1604 |
1 files changed, 1604 insertions, 0 deletions
diff --git a/tests/t_full09/t_full09.asm b/tests/t_full09/t_full09.asm new file mode 100644 index 0000000..4b39d38 --- /dev/null +++ b/tests/t_full09/t_full09.asm @@ -0,0 +1,1604 @@ + cpu 6309 + +list macro + listing on + endm + +nolist macro + listing off + endm + +db macro op + byt (op) + endm + +fcb macro op + byt (op) + endm + +fcc macro op + byt (op) + endm + +dw macro op + adr (op) + endm + +fdb macro op + adr (op) + endm + +fcw macro op + adr (op) + endm + +ds macro op + dfs (op) + endm + +rmb macro op + rept op + db 0 + endm + endm + +dd macro op + adr (op)>>16,(op)&$ffff + endm + +fcd macro op + adr (op)>>16,(op)&$ffff + endm + +direct macro num + if num=-1 + assume dpr:nothing + elseif num>255 + assume dpr:num>>8 + elseif + assume dpr:num + endif + endm + +page macro + newpage + endm + +opt macro + endm + +noopt macro + endm + +nop macro cnt + if "CNT"="" +__cnt set 1 + elseif +__cnt set cnt + endif + rept __cnt + !nop + endm + endm + +momseg set 0 +segsave_code set 0 +segsave_data set 0 +segsave_bss set 0 + +saveseg macro + switch momseg + case 0 +segsave_code set * + case 1 +segsave_data set * + case 2 +segsave_bss set * + endcase + endm + +data macro + saveseg + org segsave_data +momseg set 1 + endm + +code macro + saveseg + org segsave_code +momseg set 0 + endm + +bss macro + saveseg + org segsave_bss +momseg set 2 + endm + +;-------------------------------------------------------------------------- + +; <:t17,25,41,45:> +; +=====================================================================+ +; | | +; | TESTCASE.A09 | +; | | +; | Test case for 6809/6309 assembler. | +; | | +; | Copyright 1993, Frank A. Vorstenbosch | +; | | +; +=====================================================================+ +; +; File created 13-oct-93 + + title "Test case for 6809/6309 assembler" + + list + +; +---------------------------------------------------------------------+ +; | | +; | Options. | +; | | +; +---------------------------------------------------------------------+ + +; -dERRORS check error handling +; -n disable optimizations + + +; +---------------------------------------------------------------------+ +; | | +; | Assembler pseudo instructions. | +; | | +; +---------------------------------------------------------------------+ + +; ----- expressions ----------------------------------------------------- + + data + org 4 + bss + org 1634 + +TEST equ 2+*/2 + ifdef ERRORS +TEST equ TEST+1 + endif + +Constant8 equ -43 +Constant16 equ 16383 +Constant32 equ 96285725 +Address equ $bb5a + +ANOTHER set 3|24&8 +ANOTHER set (3|24)&8 +ANOTHER set 4*(3>5) +ANOTHER set 4*~~(3<5) +ANOTHER set 15<<4 +ANOTHER set ANOTHER+1 +ANOTHER set ANOTHER+1 ; shorthand for SET + +CHAR equ "a" +DOUBLECHAR equ "xy" +QUADCHAR equ "quad" + + ifdef ERRORS +TRIPLE equ "abc" +TOOMUCH equ "abcde" + endif + + data +AddressFour dw TEST + dw **5 + + org $800 + + direct $8 + direct $0800 + + ds 14 +DirectByte db 123 + align 32 +DirectWord dw 12345 + align 48 +DirectLong dd 123456789 + align 79 +DirectCode rts + + dw 1234#12 + dw %1010100101 + dw (1+2)#8 + dw 1010101#%1010101 + + bss +Unin_1 db 0 +Unin_2 dw 4256 +Unin_3 dd 34568957 + + code + org $200 + + page + + ifdef ERRORS +1 + equ 123 + psscht + ! + endif + +; ----- range checking on immediate values ------------------------------ + + lda #10 + lda #100 + ifdef ERRORS + lda #1000 + lda #10000 + lda #100000 + lda #1000000 + lda #10000000 + lda #100000000 + lda #1000000000 + endif + + ldx #10 + ldx #100 + ldx #1000 + ldx #10000 + ifdef ERRORS + ldx #100000 + ldx #1000000 + ldx #10000000 + ldx #100000000 + ldx #1000000000 + endif + + ifdef __6309__ + ldq #10 + ldq #100 + ldq #1000 + ldq #10000 + ldq #100000 + ldq #1000000 + ldq #10000000 + ldq #100000000 + ldq #1000000000 + endif + + page 10 ; keep 10 lines togethre + +; ----- align ----------------------------------------------------------- + + align 16 + align 32 + + +; ----- code, data, org ------------------------------------------------- + + code + org $1300 + data + org $1180 + + code + lda #1 + + data +Table db 1,2,3 + + code + ldx #Table + + +; ----- db, fcb, fcc ---------------------------------------------------- + +Message1 db 7,"Error",13,10,0 + +Message2 fcb 7 + fcc "Error" + fcb 13,10,0 + + +; ----- ds, rmb --------------------------------------------------------- + + ds 10 + rmb 10 + + +; ----- dw, fcw, fdb ---------------------------------------------------- + + dw 23457 + fcw 13462 + fdb 6235 + + +; ----- if ... else ... endif ------------------------------------------- + + if 5=6 + db 0 + if 0 + db 1 + else + db 2 + endif + db 3 + else + db 4 + if 1 + db 5 + else + db 6 + endif + db 7 + endif + + +; ----- list, nolist ---------------------------------------------------- + + nolist + ; comment not listed + db 10 + + list + ; comment is listed + db 10 + + +; ----- opt, noopt ------------------------------------------------------ + + noopt + + opt + + +; ----- nop ------------------------------------------------------------- + + nop + nop 3 + + +; ----- struct ---------------------------------------------------------- + +; struct ListNode +; dw LN_Next +; dw LN_Previous +; db LN_Type +; end struct + + +; ----- number bases ---------------------------------------------------- + + dd 1 + dd 10 + dd 100 + dd 1000 + + dd $1 + dd $10 + dd $100 + dd $1000 + + dd %1 + dd %10 + dd %100 + dd %1000 + + dd @1 + dd @10 + dd @100 + dd @1000 + + dd 2#1 + dd 2#10 + dd 2#100 + dd 2#1000 + + dd 3#1 + dd 3#10 + dd 3#100 + dd 3#1000 + dd 3#12 + + dd 4#1 + dd 4#10 + dd 4#100 + dd 4#1000 + dd 4#123 + + dd 5#1 + dd 5#10 + dd 5#100 + dd 5#1000 + dd 5#1234 + + dd 6#1 + dd 6#10 + dd 6#100 + dd 6#1000 + dd 6#2345 + + dd 7#1 + dd 7#10 + dd 7#100 + dd 7#1000 + dd 7#3456 + + dd 8#1 + dd 8#10 + dd 8#100 + dd 8#1000 + dd 8#4567 + + dd 9#1 + dd 9#10 + dd 9#100 + dd 9#1000 + dd 9#5678 + + dd 10#1 + dd 10#10 + dd 10#100 + dd 10#1000 + dd 10#6789 + + dd 11#1 + dd 11#10 + dd 11#100 + dd 11#1000 +; dd 11#789a + + dd 12#1 + dd 12#10 + dd 12#100 + dd 12#1000 +; dd 12#89ab + + dd 13#1 + dd 13#10 + dd 13#100 + dd 13#1000 +; dd 13#9abc + + dd 14#1 + dd 14#10 + dd 14#100 + dd 14#1000 +; dd 14#abcd + + dd 15#1 + dd 15#10 + dd 15#100 + dd 15#1000 +; dd 15#bcde + + dd 16#1 + dd 16#10 + dd 16#100 + dd 16#1000 +; dd 16#cdef + + dd 17#1 + dd 17#10 + dd 17#100 + dd 17#1000 +; dd 17#defg + + dd 18#1 + dd 18#10 + dd 18#100 + dd 18#1000 +; dd 18#efgh + + dd 19#1 + dd 19#10 + dd 19#100 + dd 19#1000 +; dd 19#fghi + + dd 20#1 + dd 20#10 + dd 20#100 + dd 20#1000 +; dd 20#ghij + + dd 21#1 + dd 21#10 + dd 21#100 + dd 21#1000 +; dd 21#hijk + + dd 22#1 + dd 22#10 + dd 22#100 + dd 22#1000 +; dd 22#ijkl + + dd 23#1 + dd 23#10 + dd 23#100 + dd 23#1000 +; dd 23#jklm + + dd 24#1 + dd 24#10 + dd 24#100 + dd 24#1000 +; dd 24#klmn + + dd 25#1 + dd 25#10 + dd 25#100 + dd 25#1000 +; dd 25#lmno + + dd 26#1 + dd 26#10 + dd 26#100 + dd 26#1000 +; dd 26#mnop + + dd 27#1 + dd 27#10 + dd 27#100 + dd 27#1000 +; dd 27#nopq + + dd 28#1 + dd 28#10 + dd 28#100 + dd 28#1000 +; dd 28#opqr + + dd 29#1 + dd 29#10 + dd 29#100 + dd 29#1000 +; dd 29#pqrs + + dd 30#1 + dd 30#10 + dd 30#100 + dd 30#1000 +; dd 30#qrst + + dd 31#1 + dd 31#10 + dd 31#100 + dd 31#1000 +; dd 31#rstu + + dd 32#1 + dd 32#10 + dd 32#100 + dd 32#1000 +; dd 32#stuv + + dd 33#1 + dd 33#10 + dd 33#100 + dd 33#1000 +; dd 33#tuvw + + dd 34#1 + dd 34#10 + dd 34#100 + dd 34#1000 +; dd 34#uvwx + + dd 35#1 + dd 35#10 + dd 35#100 + dd 35#1000 +; dd 35#vwxy + + dd 36#1 + dd 36#10 + dd 36#100 + dd 36#1000 +; dd 36#wxyz + + ifdef ERRORS + dd 37#1 + dd 37#10 + dd 37#100 + dd 37#1000 + + dd 1#1 + dd 1#10 + dd 1#100 + dd 1#1000 + + dd 0#1 + dd 0#10 + dd 0#100 + dd 0#1000 + endif + + +; ----- garbage in inactive if-clause ----------------------------------- + + if 0 + !"#$%&'()*+,-./ +0123456789:;<=>? +@ABCDEFGHIJKLMNO +PQRSTUVWXYZ[\]^_ +`abcdefghijklmno +pqrstuvwxyz{|}~ +€‚ƒ„…†‡ˆ‰Š‹ŒŽ +‘’“”•–—˜™š›œžŸ + ¡¢£¤¥¦§¨©ª«¬®¯ +°±²|´µ¶·¸¹|+¼½¾¿ +ÀÁÂÃ-ÅÆÇÈ+ÊËÌ=ÎÏ +ÐÑÒÓÔÕÖרÙÚÛÜÝÞß +àáâãäåæçèéêëìíîï +ðñòóôõö÷øùúûüýþ + endif + + +; +=====================================================================+ +; | | +; | Instructions. | +; | | +; È=====================================================================¼ + +; Ú---------------------------------------------------------------------¿ +; | | +; | Register to register operations. | +; | | +; À---------------------------------------------------------------------Ù + +Start tfr a,a ; NOP + tfr a,b + tfr a,cc + tfr a,ccr + tfr a,dp + tfr a,dpr + + tfr b,a + tfr b,b ; NOP + tfr b,cc + tfr b,ccr + tfr b,dp + tfr b,dpr + + tfr d,d ; NOP + tfr d,x + tfr d,y + tfr d,u + tfr d,s + tfr d,sp + + tfr x,d + tfr x,x ; NOP + tfr x,y + tfr x,u + tfr x,s + tfr x,sp + + tfr y,d + tfr y,x + tfr y,y ; NOP + tfr y,u + tfr y,s + tfr y,sp + + tfr u,d + tfr u,x + tfr u,y + tfr u,u ; NOP + tfr u,s + tfr u,sp + + tfr s,d + tfr s,x + tfr s,y + tfr s,u + tfr s,s ; NOP + tfr s,sp ; NOP + + tfr sp,d + tfr sp,x + tfr sp,y + tfr sp,u + tfr sp,s ; NOP + tfr sp,sp ; NOP + + tfr pc,d + tfr pc,x + tfr pc,y + tfr pc,u + tfr pc,s + tfr pc,sp + + ifdef __6309__ + tfr a,e + tfr a,f + tfr b,e + tfr b,f + + tfr e,a + tfr e,b + tfr e,cc + tfr e,ccr + tfr e,dp + tfr e,dpr + tfr e,e ; NOP + tfr e,f + + tfr f,a + tfr f,b + tfr f,cc + tfr f,ccr + tfr f,dp + tfr f,dpr + tfr f,e + tfr f,f ; NOP + + tfr d,v + tfr d,w + + tfr v,d + tfr v,v ; NOP + tfr v,w + tfr v,x + tfr v,y + tfr v,u + tfr v,s + tfr v,sp + + tfr w,d + tfr w,v + tfr w,w ; NOP + tfr w,x + tfr w,y + tfr w,u + tfr w,s + tfr w,sp + + tfr x,v + tfr x,w + tfr y,v + tfr y,w + tfr u,v + tfr u,w + tfr s,v + tfr s,w + tfr pc,v + tfr pc,w + + tfr z,a + tfr z,b + tfr z,cc + tfr z,ccr + tfr z,dp + tfr z,dpr + tfr z,e + tfr z,f + tfr z,d + tfr z,v + tfr z,w + tfr z,x + tfr z,y + tfr z,u + tfr z,s + tfr z,sp + + tfr a,z + tfr b,z + tfr cc,z + tfr ccr,z + tfr dp,z + tfr dpr,z + tfr e,z + tfr f,z + tfr d,z + tfr v,z + tfr w,z + tfr x,z + tfr y,z + tfr u,z + tfr s,z + tfr sp,z + tfr pc,z + endif + + ifdef ERRORS + tfm a,b + tfr a,d + tfr a,v + tfr a,w + tfr a,x + tfr a,y + tfr a,u + tfr a,s + tfr a,sp + + tfr b,d + tfr b,v + tfr b,w + tfr b,x + tfr b,y + tfr b,u + tfr b,s + tfr b,sp + endif + + +; +---------------------------------------------------------------------+ +; | | +; | Addressing modes. | +; | | +; +---------------------------------------------------------------------+ + + lda #0 + lda DirectByte + lda >DirectByte + lda AddressFour + ifdef ERRORS + lda <AddressFour + endif + lda 12+5*17/3 + lda ,x + noopt + lda 0,x + opt + lda 0,x + lda <0,x + lda <<0,x + noopt + lda <<0,x + opt + lda >0,x + lda 1,x + lda <1,x + lda <<1,x + lda >1,x + lda 15,x + lda -16,x + lda 16,x + lda -17,x + lda 127,x + lda -128,x + lda 128,x + lda -129,x + lda FORWARD5,x + lda <FORWARD5,x + lda <<FORWARD5,x + lda FORWARD99,x + lda <FORWARD99,x + ifdef ERRORS + lda <<FORWARD99,x + endif + lda a,x + lda b,x + lda d,x + lda ,x+ + lda ,x++ + lda ,-x + lda ,--x + lda NearData,pc + lda <NearData,pc + lda AddressFour,pc + lda [,x] + lda [0,x] + lda [1,x] + lda [15,x] + lda [-16,x] + lda [17,x] + lda [-17,x] + lda [127,x] + lda [-128,x] + lda [128,x] + lda [-129,x] + lda [a,x] + lda [b,x] +NearData lda [d,x] + lda [,x++] + lda [,--x] + lda [NearData,pc] + lda [>NearData,pc] + lda [AddressFour,pc] + ifdef ERRORS + lda [<AddressFour,pc] + endif + +FORWARD5 equ 5 +FORWARD99 equ 99 + + ifdef __6309__ + lda e,x + lda f,x + lda w,x + lda ,w + lda 0,w + lda 1,w + lda ,w++ + lda ,--w + lda [e,x] + lda [f,x] + lda [w,x] + lda [,w] + lda [0,w] + lda [1000,w] + lda [,w++] + lda [,--w] + endif + + +; +---------------------------------------------------------------------+ +; | | +; | Instructions in numerical order. | +; | | +; +---------------------------------------------------------------------+ + + neg DirectByte ; $00,2 + ifdef __6309__ + oim #123,DirectByte ; $01,3 + aim #123,DirectByte ; $02,3 + endif + com DirectByte ; $03,2 + lsr DirectByte ; $04,2 + ifdef __6309__ + eim #123,DirectByte ; $05,3 + endif + ror DirectByte ; $06,2 + asr DirectByte ; $07,2 + asl DirectByte ; $08,2 + lsl DirectByte ; alternate + rol DirectByte ; $09,2 + dec DirectByte ; $0A,2 + ifdef __6309__ + tim #1,DirectByte ; $0B,3 + endif + inc DirectByte ; $0C,2 + tst DirectByte ; $0D,2 + jmp DirectByte ; $0E,2 + clr DirectByte ; $0F,2 + +; ----------------------------------------------------------------------- + + nop ; $12,1 + nop 4 ; repeat count specified + sync ; $13,1 + ifdef __6309__ + sexw ; $14,1 + endif + noopt + lbra AddressFour ; $16,3 + lbsr AddressFour ; $17,3 + opt + daa ; $19,1 + orcc #1 ; $1A,2 + orcc c ; alternate, specifying flags + andcc #~6 ; $1C,2 + andcc z,v ; alternate + sex ; $1D,1 + exg a,b ; $1E,2 + tfr a,b ; $1F,2 + ifdef __6309__ + clrs ; using TFR to clear registers + clrv + clrx + clry + endif + +; ----------------------------------------------------------------------- + +BranchTarget bra BranchTarget ; $20,2 + brn BranchTarget ; $21,2 + bhi BranchTarget ; $22,2 + bls BranchTarget ; $23,2 + bhs BranchTarget ; $24,2 + bcc BranchTarget ; alternate + blo BranchTarget ; $25,2 + bcs BranchTarget ; alternate + bne BranchTarget ; $26,2 + beq BranchTarget ; $27,2 + bvc BranchTarget ; $28,2 + bvs BranchTarget ; $29,2 + bpl BranchTarget ; $2A,2 + bmi BranchTarget ; $2B,2 + bge BranchTarget ; $2C,2 + blt BranchTarget ; $2D,2 + bgt BranchTarget ; $2E,2 + ble BranchTarget ; $2F,2 + +; ----------------------------------------------------------------------- + + leax a,x ; 30,2+ + leay b,y ; 31,2+ + leas d,s ; 32,2+ + leau 1,u ; 33,2+ + pshs a,b ; $34,2 + pshs all ; alternate + pshs #123 ; alternate + puls x ; $35,2 + puls all ; alternate + puls #$ff ; alternate + pshu ccr ; $36,2 + pulu dpr ; $37,2 + rts ; $39,1 + abx ; $3A,1 + rti ; $3B,1 + cwai #127 ; $3C,2 + cwai e ; alternate + mul ; $3D,1 + swi ; $3F,1 + +; ----------------------------------------------------------------------- + + nega ; $40,1 + coma ; $43,1 + lsra ; $44,1 + rora ; $46,1 + asra ; $47,1 + asla ; $48,1 + lsla ; alternate + rola ; $49,1 + deca ; $4A,1 + inca ; $4C,1 + tsta ; $4D,1 + clra ; $4F,1 + +; ----------------------------------------------------------------------- + + negb ; $50,1 + comb ; $53,1 + lsrb ; $54,1 + rorb ; $56,1 + asrb ; $57,1 + aslb ; $58,1 + lslb ; alternate + rolb ; $59,1 + decb ; $5A,1 + incb ; $5C,1 + tstb ; $5D,1 + clrb ; $5F,1 + +; ----------------------------------------------------------------------- + + neg ,x ; $60,2+ + ifdef __6309__ + oim #4,,x ; $61,3+ + aim #8,,x ; $62,3+ + endif + com ,x ; $63,2+ + lsr ,x ; $64,2+ + ifdef __6309__ + eim #9,,x ; $65,3+ + endif + ror ,x ; $66,2+ + asr ,x ; $67,2+ + asl ,x ; $68,2+ + lsl ,x ; alternate + rol ,x ; $69,2+ + dec ,x ; $6A,2+ + ifdef __6309__ + tim #123,,x ; $6B,3+ + endif + inc ,x ; $6C,2+ + tst ,x ; $6D,2+ + jmp ,x ; $6E,2+ + clr ,x ; $6F,2+ + +; ----------------------------------------------------------------------- + + neg AddressFour ; $70,3 + ifdef __6309__ + oim #99,AddressFour ; $71,4 + aim #99,AddressFour ; $72,4 + endif + com AddressFour ; $73,3 + lsr AddressFour ; $74,3 + ifdef __6309__ + eim #-1,AddressFour ; $75,4 + endif + ror AddressFour ; $76,3 + asr AddressFour ; $77,3 + asl AddressFour ; $78,3 + lsl AddressFour ; alternate + rol AddressFour ; $79,3 + dec AddressFour ; $7A,3 + ifdef __6309__ + tim #-128,AddressFour ; $7B,4 + endif + inc AddressFour ; $7C,3 + tst AddressFour ; $7D,3 + jmp AddressFour ; $7E,3 + clr AddressFour ; $7F,3 + +; ----------------------------------------------------------------------- + +CallAddress suba #123 ; $80,2 + cmpa #123 ; $81,2 + sbca #123 ; $82,2 + subd #12345 ; $83,3 + anda #123 ; $84,2 + bita #123 ; $85,2 + lda #123 ; $86,2 + eora #123 ; $88,2 + adca #123 ; $89,2 + ora #123 ; $8A,2 + adda #123 ; $8B,2 + cmpx #12345 ; $8C,3 + bsr CallAddress ; $8D,2 + ldx #12345 ; $8E,3 + +; ----------------------------------------------------------------------- + + suba DirectByte ; $90,2 + cmpa DirectByte ; $91,2 + sbca DirectByte ; $92,2 + subd DirectWord ; $93,3 + anda DirectByte ; $94,2 + bita DirectByte ; $95,2 + lda DirectByte ; $96,2 + sta DirectByte ; $97,2 + eora DirectByte ; $98,2 + adca DirectByte ; $99,2 + ora DirectByte ; $9A,2 + adda DirectByte ; $9B,2 + cmpx DirectWord ; $9C,2 + jsr DirectCode ; $9D,2 + ldx DirectWord ; $9E,2 + stx DirectWord ; $9F,2 + +; ----------------------------------------------------------------------- + + suba [3,s] ; $A0,2+ + cmpa [3,s] ; $A1,2+ + sbca [3,s] ; $A2,2+ + subd [3,s] ; $A3,2+ + anda [3,s] ; $A4,2+ + bita [3,s] ; $A5,2+ + lda [3,s] ; $A6,2+ + sta [3,s] ; $A7,2+ + eora [3,s] ; $A8,2+ + adca [3,s] ; $A9,2+ + ora [3,s] ; $AA,2+ + adda [3,s] ; $AB,2+ + cmpx [3,s] ; $AC,2+ + jsr [3,s] ; $AD,2+ + ldx [3,s] ; $AE,2+ + stx [3,s] ; $AF,2+ + +; ----------------------------------------------------------------------- + + suba $ff00 ; $B0,3 + cmpa $ff00 ; $B1,3 + sbca $ff00 ; $B2,3 + subd $ff00 ; $B3,3 + anda $ff00 ; $B4,3 + bita $ff00 ; $B5,3 + lda $ff00 ; $B6,3 + sta $ff00 ; $B7,3 + eora $ff00 ; $B8,3 + adca $ff00 ; $B9,3 + ora $ff00 ; $BA,3 + adda $ff00 ; $BB,3 + cmpx $ff00 ; $BC,3 + jsr $ff00 ; $BD,3 + ldx $ff00 ; $BE,3 + stx $ff00 ; $BF,3 + +; ----------------------------------------------------------------------- + + subb #123 ; $C0,2 + cmpb #123 ; $C1,2 + sbcb #123 ; $C2,2 + addd #12345 ; $C3,3 + andb #123 ; $C4,2 + bitb #123 ; $C5,2 + ldb #123 ; $C6,2 + eorb #123 ; $C8,2 + adcb #123 ; $C9,2 + orb #123 ; $CA,2 + addb #123 ; $CB,2 + ldd #12345 ; $CC,3 + ifdef __6309__ + ldq #123456789 ; $CD,5 + endif + ldu #12345 ; $CE,3 + +; ----------------------------------------------------------------------- + + subb DirectByte ; $D0,2 + cmpb DirectByte ; $D1,2 + sbcb DirectByte ; $D2,2 + addd DirectWord ; $D3,3 + andb DirectByte ; $D4,2 + bitb DirectByte ; $D5,2 + ldb DirectByte ; $D6,2 + stb DirectByte ; $D7,2 + eorb DirectByte ; $D8,2 + adcb DirectByte ; $D9,2 + orb DirectByte ; $DA,2 + addb DirectByte ; $DB,2 + ldd DirectWord ; $DC,2 + std DirectWord ; $DD,2 + ldu DirectWord ; $DE,2 + stu DirectWord ; $DF,2 + +; ----------------------------------------------------------------------- + +; note effect of quasi-forward reference in the next line +LocalData subb LocalData,pc ; $E0,2+ +AnotherLocal cmpb <AnotherLocal,pc ; $E1,2+ + sbcb LocalData,pc ; $E2,2+ + addd LocalData,pc ; $E3,2+ + andb LocalData,pc ; $E4,2+ + bitb LocalData,pc ; $E5,2+ + ldb LocalData,pc ; $E6,2+ + stb LocalData,pc ; $E7,2+ + eorb LocalData,pc ; $E8,2+ + adcb LocalData,pc ; $E9,2+ + orb LocalData,pc ; $EA,2+ + addb LocalData,pc ; $EB,2+ + ldd LocalData,pc ; $EC,2+ + std LocalData,pc ; $ED,2+ + ldu LocalData,pc ; $EE,2+ + stu LocalData,pc ; $EF,2+ + +; ----------------------------------------------------------------------- + + subb LocalData ; $F0,3 + cmpb LocalData ; $F1,3 + sbcb LocalData ; $F2,3 + addd LocalData ; $F3,3 + andb LocalData ; $F4,3 + bitb LocalData ; $F5,3 + ldb LocalData ; $F6,3 + stb LocalData ; $F7,3 + eorb LocalData ; $F8,3 + adcb LocalData ; $F9,3 + orb LocalData ; $FA,3 + addb LocalData ; $FB,3 + ldd LocalData ; $FC,3 + std LocalData ; $FD,3 + ldu LocalData ; $FE,3 + stu LocalData ; $FF,3 + +; +---------------------------------------------------------------------+ +; | | +; | Instructions with prefix byte $10. | +; | | +; +---------------------------------------------------------------------+ + + lbrn BranchTarget ; $1021,4 + lbhi BranchTarget ; $1022,4 + lbls BranchTarget ; $1023,4 + lbhs BranchTarget ; $1024,4 + lbcc BranchTarget ; alternate + lblo BranchTarget ; $1025,4 + lbcs BranchTarget ; alternate + lbne BranchTarget ; $1026,4 + lbeq BranchTarget ; $1027,4 + lbvc BranchTarget ; $1028,4 + lbvs BranchTarget ; $1029,4 + lbpl BranchTarget ; $102A,4 + lbmi BranchTarget ; $102B,4 + lbge BranchTarget ; $102C,4 + lblt BranchTarget ; $102D,4 + lbgt BranchTarget ; $102E,4 + lble BranchTarget ; $102F,4 + +; ----------------------------------------------------------------------- + + ifdef __6309__ + addr a,b ; $1030,3 + add a,b ; alternate + adcr w,d ; $1031,3 + adc w,d ; alternate + subr d,x ; $1032,3 + sub d,x ; alternate + sbcr b,a ; $1033,3 + sbc b,a ; alternate + andr a,ccr ; $1034,3 + and a,ccr ; alternate + orr b,dpr ; $1035,3 + or b,dpr ; alternate + eorr w,d ; $1036,3 + eor w,d ; alternate + cmpr d,u ; $1037,3 + cmp d,u ; alternate + pshsw ; $1038,2 + pshs w ; alternate + pulsw ; $1039,2 + puls w ; alternate + pshuw ; $103A,2 + pshu w ; alternate + puluw ; $103B,2 + pulu w ; alternate + endif + swi2 ; $103F,2 + swi 2 ; alternate + +; ----------------------------------------------------------------------- + + ifdef __6309__ + negd ; $1040,2 + comd ; $1043,2 + lsrd ; $1044,2 + rord ; $1046,2 + asrd ; $1047,2 + asld ; $1048,2 + rold ; $1049,2 + decd ; $104A,2 + incd ; $104C,2 + tstd ; $104D,2 + clrd ; $104F,2 + +; ----------------------------------------------------------------------- + + comw ; $1053,2 + lsrw ; $1054,2 + rorw ; $1056,2 + rolw ; $1059,2 + decw ; $105A,2 + incw ; $105C,2 + tstw ; $105D,2 + clrw ; $105F,2 + +; ----------------------------------------------------------------------- + + subw #12345 ; $1080,4 + cmpw #12345 ; $1081,4 + sbcd #12345 ; $1082,4 + endif + cmpd #12345 ; $1083,4 + ifdef __6309__ + andd #12345 ; $1084,4 + bitd #12345 ; $1085,4 + ldw #12345 ; $1086,4 + eord #12345 ; $1088,4 + adcd #12345 ; $1089,4 + ord #12345 ; $108A,4 + addw #12345 ; $108B,4 + endif + cmpy #12345 ; $108C,4 + ldy #12345 ; $108E,4 + +; ----------------------------------------------------------------------- + + ifdef __6309__ + subw DirectWord ; $1090,3 + cmpw DirectWord ; $1091,3 + sbcd DirectWord ; $1092,3 + endif + cmpd DirectWord ; $1093,3 + ifdef __6309__ + andd DirectWord ; $1094,3 + bitd DirectWord ; $1095,3 + ldw DirectWord ; $1096,3 + stw DirectWord ; $1097,3 + eord DirectWord ; $1098,3 + adcd DirectWord ; $1099,3 + ord DirectWord ; $109A,3 + addw DirectWord ; $109B,3 + endif + cmpy DirectWord ; $109C,3 + ldy DirectWord ; $109E,3 + sty DirectWord ; $109F,3 + +; ----------------------------------------------------------------------- + + ifdef __6309__ + subw ,w++ ; $10A0,3+ + cmpw ,w++ ; $10A1,3+ + sbcd ,w++ ; $10A2,3+ + endif + cmpd ,--x ; $10A3,3+ + ifdef __6309__ + andd ,w++ ; $10A4,3+ + bitd ,w++ ; $10A5,3+ + ldw ,w++ ; $10A6,3+ + stw ,w++ ; $10A7,3+ + eord ,w++ ; $10A8,3+ + adcd ,w++ ; $10A9,3+ + ord ,w++ ; $10AA,3+ + addw ,w++ ; $10AB,3+ + endif + cmpy ,--x ; $10AC,3+ + ldy ,--x ; $10AE,3+ + sty ,--x ; $10AF,3+ + +; ----------------------------------------------------------------------- + + ifdef __6309__ + subw $7000 ; $10B0,4 + cmpw $7000 ; $10B1,4 + sbcd $7000 ; $10B2,4 + endif + cmpd $7000 ; $10B3,4 + ifdef __6309__ + andd $7000 ; $10B4,4 + bitd $7000 ; $10B5,4 + ldw $7000 ; $10B6,4 + stw $7000 ; $10B7,4 + eord $7000 ; $10B8,4 + adcd $7000 ; $10B9,4 + ord $7000 ; $10BA,4 + addw $7000 ; $10BB,4 + endif + cmpy $7000 ; $10BC,4 + ldy $7000 ; $10BE,4 + sty $7000 ; $10BF,4 + +; ----------------------------------------------------------------------- + + lds #12345 ; $10CE,4 + + ifdef __6309__ + ldq DirectLong ; $10DC,3 + stq DirectLong ; $10DD,3 + endif + lds DirectWord ; $10DE,3 + sts DirectWord ; $10DF,3 + + ifdef __6309__ + ldq ,x ; $10EC,3+ + stq ,x ; $10ED,3+ + endif + lds ,x ; $10EE,3+ + sts ,x ; $10EF,3+ + + ifdef __6309__ + ldq AddressFour ; $10FC,4 + stq AddressFour ; $10FD,4 + endif + lds AddressFour ; $10FE,4 + sts AddressFour ; $10FF,4 + +; +---------------------------------------------------------------------+ +; | | +; | Instructions with prefix byte $11. | +; | | +; +---------------------------------------------------------------------+ + + ifdef __6309__ + band a.7,DirectByte.0 ; $1130,4 + biand b.6,DirectByte.1 ; $1131,4 + bor cc.5,DirectByte.2 ; $1132,4 + bior a.4,DirectByte.3 ; $1133,4 + beor b.3,DirectByte.4 ; $1134,4 + bieor cc.2,DirectByte.5 ; $1135,4 + ldbt ccr.1,DirectByte.6 ; $1136,4 + stbt ccr.0,DirectByte.7 ; $1137,4 + + tfr x+,y+ ; $1138,3 + tfm x+,y+ ; alternate + tfr u-,x- ; $1139,3 + tfm u-,x- ; alternate + tfr s+,x ; $113A,3 + tfm s+,x ; alternate + tfr x,y+ ; $113B,3 + tfm x,y+ ; alternate + bitmd #128 ; $113C,3 + ldmd #1 ; $113D,3 + endif + swi3 ; $113F,2 + swi 3 ; alternate + +; ----------------------------------------------------------------------- + + ifdef __6309__ + come ; $1143,2 + dece ; $114A,2 + ince ; $114C,2 + tste ; $114D,2 + clre ; $114F,2 + + comf ; $1153,2 + decf ; $115A,2 + incf ; $115C,2 + tstf ; $115D,2 + clrf ; $115F,2 + endif + +; ----------------------------------------------------------------------- + + ifdef __6309__ + sube #123 ; $1180,3 + cmpe #123 ; $1181,3 + endif + cmpu #12345 ; $1183,4 + ifdef __6309__ + lde #123 ; $1186,3 + adde #123 ; $118B,3 + endif + cmps #12345 ; $118C,4 + ifdef __6309__ + divd #123 ; $118D,3 + divq #12345 ; $118E,4 + muld #12345 ; $118F,4 + endif + +; ----------------------------------------------------------------------- + + ifdef __6309__ + sube DirectByte ; $1190,3 + cmpe DirectByte ; $1191,3 + endif + cmpu DirectWord ; $1193,3 + ifdef __6309__ + lde DirectByte ; $1196,3 + ste DirectByte ; $1197,3 + adde DirectByte ; $119B,3 + endif + cmps DirectWord ; $119C,3 + ifdef __6309__ + divd DirectWord ; $119D,3 + divq DirectWord ; $119E,3 + muld DirectWord ; $119F,3 + endif + +; ----------------------------------------------------------------------- + + ifdef __6309__ + sube ,s+ ; $11A0,3+ + cmpe ,s+ ; $11A1,3+ + endif + cmpu ,s++ ; $11A3,3+ + ifdef __6309__ + lde ,s+ ; $11A6,3+ + ste ,s+ ; $11A7,3+ + adde ,s+ ; $11AB,3+ + endif + cmps ,s++ ; $11AC,3+ + ifdef __6309__ + divd ,s+ ; $11AD,3+ + divq ,s++ ; $11AE,3+ + muld ,s++ ; $11AF,3+ + endif + +; ----------------------------------------------------------------------- + + ifdef __6309__ + sube $9000 ; $11B0,4 + cmpe $9000 ; $11B1,4 + endif + cmpu $9000 ; $11B3,4 + ifdef __6309__ + lde $9000 ; $11B6,4 + ste $9000 ; $11B7,4 + adde $9000 ; $11BB,4 + endif + cmps $9000 ; $11BC,4 + ifdef __6309__ + divd $9000 ; $11BD,4 + divq $9000 ; $11BE,4 + muld $9000 ; $11BF,4 + endif + +; ----------------------------------------------------------------------- + + ifdef __6309__ + subf #123 ; $11C0,3 + cmpf #123 ; $11C1,3 + ldf #123 ; $11C6,3 + addf #123 ; $11CB,3 + endif + +; ----------------------------------------------------------------------- + + ifdef __6309__ + subf DirectByte ; $11D0,3 + cmpf DirectByte ; $11D1,3 + ldf DirectByte ; $11D6,3 + stf DirectByte ; $11D7,3 + addf DirectByte ; $11DB,3 + + subf ,s+ ; $11E0,3+ + cmpf ,s+ ; $11E1,3+ + ldf ,s+ ; $11E6,3+ + stf ,s+ ; $11E7,3+ + addf ,s+ ; $11EB,3+ + + subf $9000 ; $11F0,4 + cmpf $9000 ; $11F1,4 + ldf $9000 ; $11F6,4 + stf $9000 ; $11F7,4 + addf $9000 ; $11FB,4 + endif + + + end Start +; ----- EOF ------------------------------------------------------------- + |