home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 5
/
ctrom5b.zip
/
ctrom5b
/
PROGRAM
/
ASM
/
AS09_107
/
TESTCASE.A09
< prev
next >
Wrap
Text File
|
1994-11-02
|
58KB
|
1,486 lines
; <: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
if 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 = ANOTHER+1 ; shorthand for SET
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
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
if ERRORS
1
equ 123
psscht
!
endif
; ───── 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
ldx #10
ldx #100
ldx #1000
ldx #10000
if ERRORS
ldx #100000
ldx #1000000
ldx #10000000
ldx #100000000
ldx #1000000000
endif
if __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
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
; ───── 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
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 ; 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
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
end Start
; ───── EOF ─────────────────────────────────────────────────────────────