home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
develop
/
as09
/
testcase.a09
< prev
Wrap
Text File
|
1995-02-27
|
56KB
|
1,392 lines
; <:t17,25,53,57:>
; ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
; º º
; º 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. ³
; ³ ³
; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ERRORS equ 0 ; set to 1 to check error handling
; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³ ³
; ³ Structure definition. ³
; ³ ³
; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
;struct ListNode,10
;dw Next
;dw Previous
;db Type
;db Priority
;end struct
; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³ ³
; ³ Expressions. ³
; ³ ³
; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
data
org 4
bss
org 1634
TEST equ 2+*/2
if ERRORS
TEST equ TEST+1
endif
ANOTHER set 3|24&8
ANOTHER set (3|24)&8
ANOTHER set 4*(3>5)
ANOTHER set 4*!3<5
ANOTHER set 15<<4
CHAR equ "a"
DOUBLECHAR equ "xy"
QUADCHAR equ "quad"
if 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
; ÄÄÄÄÄ 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
if 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
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 $100
page
; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³ ³
; ³ Range checking on immediate values ³
; ³ ³
; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
lda #10
lda #100
if ERRORS
lda #1000
lda #10000
lda #100000
lda #1000000
lda #10000000
lda #100000000
lda #1000000000
endif
ldd #10
ldd #100
ldd #1000
ldd #10000
if ERRORS
ldd #100000
ldd #1000000
ldd #10000000
ldd #100000000
ldd #1000000000
endif
if __6309__
ldq #10
ldq #100
ldq #1000
ldq #10000
ldq #100000
ldq #1000000
ldq #10000000
ldq #100000000
ldq #1000000000
endif
page
; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³ ³
; ³ Register to register operations. ³
; ³ ³
; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
tfr a,a
tfr a,b
tfr a,cc
tfr a,ccr
tfr a,dp
tfr a,dpr
tfr b,a
tfr b,b
tfr b,cc
tfr b,ccr
tfr b,dp
tfr b,dpr
tfr d,d
tfr d,x
tfr d,y
tfr d,u
tfr d,s
tfr d,sp
tfr x,d
tfr x,x
tfr x,y
tfr x,u
tfr x,s
tfr x,sp
tfr y,d
tfr y,x
tfr y,y
tfr y,u
tfr y,s
tfr y,sp
tfr u,d
tfr u,x
tfr u,y
tfr u,u
tfr u,s
tfr u,sp
tfr s,d
tfr s,x
tfr s,y
tfr s,u
tfr s,s
tfr s,sp
tfr pc,d
tfr pc,x
tfr pc,y
tfr pc,u
tfr pc,s
tfr pc,sp
if __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
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
tfr d,v
tfr d,w
tfr v,d
tfr v,v
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
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
if 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
if 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
if 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]
if ERRORS
lda [<AddressFour,pc]
endif
FORWARD5 equ 5
FORWARD99 equ 99
if __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
if __6309__
oim #123,DirectByte ; $01,3
aim #123,DirectByte ; $02,3
endif
com DirectByte ; $03,2
lsr DirectByte ; $04,2
if __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
if __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
if __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
if __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+
if __6309__
oim #4,,x ; $61,3+
aim #8,,x ; $62,3+
endif
com ,x ; $63,2+
lsr ,x ; $64,2+
if __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+
if __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
if __6309__
oim #99,AddressFour ; $71,4
aim #99,AddressFour ; $72,4
endif
com AddressFour ; $73,3
lsr AddressFour ; $74,3
if __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
if __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
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __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
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
subw DirectWord ; $1090,3
cmpw DirectWord ; $1091,3
sbcd DirectWord ; $1092,3
endif
cmpd DirectWord ; $1093,3
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
subw ,w++ ; $10A0,3+
cmpw ,w++ ; $10A1,3+
sbcd ,w++ ; $10A2,3+
endif
cmpd ,--x ; $10A3,3+
if __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+
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
subw $7000 ; $10B0,4
cmpw $7000 ; $10B1,4
sbcd $7000 ; $10B2,4
endif
cmpd $7000 ; $10B3,4
if __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
if __6309__
ldq DirectLong ; $10DC,3
stq DirectLong ; $10DD,3
endif
lds DirectWord ; $10DE,3
sts DirectWord ; $10DF,3
if __6309__
ldq ,x ; $10EC,3+
stq ,x ; $10ED,3+
endif
lds ,x ; $10EE,3+
sts ,x ; $10EF,3+
if __6309__
ldq AddressFour ; $10FC,4
stq AddressFour ; $10FD,4
endif
lds AddressFour ; $10FE,4
sts AddressFour ; $10FF,4
; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
; ³ ³
; ³ Instructions with prefix byte $11. ³
; ³ ³
; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
sube #123 ; $1180,3
cmpe #123 ; $1181,3
endif
cmpu #12345 ; $1183,4
if __6309__
lde #123 ; $1186,3
adde #123 ; $118B,3
endif
cmps #12345 ; $118C,4
if __6309__
divd #123 ; $118D,3
divq #12345 ; $118E,4
muld #12345 ; $118F,4
endif
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
sube DirectByte ; $1190,3
cmpe DirectByte ; $1191,3
endif
cmpu DirectWord ; $1193,3
if __6309__
lde DirectByte ; $1196,3
ste DirectByte ; $1197,3
adde DirectByte ; $119B,3
endif
cmps DirectWord ; $119C,3
if __6309__
divd DirectWord ; $119D,3
divq DirectWord ; $119E,3
muld DirectWord ; $119F,3
endif
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
sube ,s+ ; $11A0,3+
cmpe ,s+ ; $11A1,3+
endif
cmpu ,s++ ; $11A3,3+
if __6309__
lde ,s+ ; $11A6,3+
ste ,s+ ; $11A7,3+
adde ,s+ ; $11AB,3+
endif
cmps ,s++ ; $11AC,3+
if __6309__
divd ,s+ ; $11AD,3+
divq ,s++ ; $11AE,3+
muld ,s++ ; $11AF,3+
endif
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
sube $9000 ; $11B0,4
cmpe $9000 ; $11B1,4
endif
cmpu $9000 ; $11B3,4
if __6309__
lde $9000 ; $11B6,4
ste $9000 ; $11B7,4
adde $9000 ; $11BB,4
endif
cmps $9000 ; $11BC,4
if __6309__
divd $9000 ; $11BD,4
divq $9000 ; $11BE,4
muld $9000 ; $11BF,4
endif
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __6309__
subf #123 ; $11C0,3
cmpf #123 ; $11C1,3
ldf #123 ; $11C6,3
addf #123 ; $11CB,3
endif
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
if __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
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
page 10 ; keep 10 lines together
data
db "hello",13,10
fcc "hello"
fcb 13,10
if ERRORS
fcc 199
fcb "wrong"
endif
rmb 4
ds 4
fcw $ffff
if __6309__
db "6309 code generation enabled"
else
db "plain 6809 code"
endif
if 0
!"#$%&'()*+,-./
0123456789:;<=>?
@ABCDEFGHIJKLMNO
PQRSTUVWXYZ[\]^_
`abcdefghijklmno
pqrstuvwxyz{|}~
¡¢£¤¥¦§¨©ª«¬®¯
°±²³´µ¶·¸¹º»¼½¾¿
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ
ÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞß
àáâãäåæçèéêëìíîï
ðñòóôõö÷øùúûüýþÿ
endif