home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C!T ROM 5
/
ctrom5b.zip
/
ctrom5b
/
PROGRAM
/
ASM
/
AS05_107
/
TESTCASE.A05
< prev
next >
Wrap
Text File
|
1994-11-02
|
23KB
|
803 lines
; <:t17,25,41,45:>
; ╔═════════════════════════════════════════════════════════════════════╗
; ║ ║
; ║ TESTCASE.A05 ║
; ║ ║
; ║ Test case for 6805 assembler. ║
; ║ ║
; ║ Copyright 1994, Frank A. Vorstenbosch ║
; ║ ║
; ╚═════════════════════════════════════════════════════════════════════╝
;
; File created 18-may-94
org $f000
; ┌─────────────────────────────────────────────────────────────────────┐
; │ │
; │ 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
AddrHigh equ $0203
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 $60
ds 14
DirectByte db 123
AddrLow db "X"
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
lda 10
lda 100
lda 1000
lda 10000
if ERRORS
lda 100000
lda 1000000
lda 10000000
lda 100000000
lda 1000000000
endif
page 10 ; keep 10 lines togethre
; ───── align ───────────────────────────────────────────────────────────
align 16
align 32
; ───── code, data, org ─────────────────────────────────────────────────
code
org $300
data
org $180
code
ldx #1
data
Table db 1,2,3
code
lda Table,x
; ───── 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. ║
; ║ ║
; ╚═════════════════════════════════════════════════════════════════════╝
; ┌─────────────────────────────────────────────────────────────────────┐
; │ │
; │ Implied-operand instructions. │
; │ │
; └─────────────────────────────────────────────────────────────────────┘
Start clc
cli
mul
nop
rsp
rti
rts
sec
sei
stop
swi
tax
txa
wait
; ┌─────────────────────────────────────────────────────────────────────┐
; │ │
; │ One-operand instructions. │
; │ │
; └─────────────────────────────────────────────────────────────────────┘
asl AddrLow ; lsl is alternate mnemonic
asl 10,x
asl ,x
asla
aslx
asr AddrLow
asr 10,x
asr ,x
asra
asrx
clr AddrLow
clr 10,x
clr ,x
clra
clrx
com AddrLow
com 10,x
com ,x
coma
comx
dec AddrLow
dec 10,x
dec ,x
deca
decx
inc AddrLow
inc 10,x
inc ,x
inca
incx
lsr AddrLow
lsr 10,x
lsr ,x
lsra
lsrx
neg AddrLow
neg 10,x
neg ,x
nega
negx
rol AddrLow
rol 10,x
rol ,x
rola
rolx
ror AddrLow
ror 10,x
ror ,x
rora
rorx
tst AddrLow
tst 10,x
tst ,x
tsta
tstx
; ┌─────────────────────────────────────────────────────────────────────┐
; │ │
; │ Two-operand instructions. │
; │ │
; └─────────────────────────────────────────────────────────────────────┘
adc #123
adc AddrLow
adc AddrHigh
adc -10,x
adc 10,x
adc ,x
add #123
add AddrLow
add AddrHigh
add -10,x
add 10,x
add ,x
and #123
and AddrLow
and AddrHigh
and -10,x
and 10,x
and ,x
bit #123
bit AddrLow
bit AddrHigh
bit -10,x
bit 10,x
bit ,x
cmp #123
cmp AddrLow
cmp AddrHigh
cmp -10,x
cmp 10,x
cmp ,x
cmpx #123 ; cpx is alternate spelling for cmpx
cmpx AddrLow
cmpx AddrHigh
cmpx -10,x
cmpx 10,x
cmpx ,x
eor #123
eor AddrLow
eor AddrHigh
eor -10,x
eor 10,x
eor ,x
lda #123
lda AddrLow
lda AddrHigh
lda -10,x
lda 10,x
lda ,x
ldx #123
ldx AddrLow
ldx AddrHigh
ldx -10,x
ldx 10,x
ldx ,x
ora #123
ora AddrLow
ora AddrHigh
ora -10,x
ora 10,x
ora ,x
sbc #123
sbc AddrLow
sbc AddrHigh
sbc -10,x
sbc 10,x
sbc ,x
* sta #123
sta AddrLow
sta AddrHigh
sta -10,x
sta 10,x
sta ,x
* stx #123
stx AddrLow
stx AddrHigh
stx -10,x
stx 10,x
stx ,x
sub #123
sub AddrLow
sub AddrHigh
sub -10,x
sub 10,x
sub ,x
; ┌─────────────────────────────────────────────────────────────────────┐
; │ │
; │ Branch and jump instructions. │
; │ │
; └─────────────────────────────────────────────────────────────────────┘
NearBranch bcc NearBranch
bcs NearBranch
beq NearBranch
bhcc NearBranch
bhcs NearBranch
bhi NearBranch
bhs NearBranch
bih NearBranch
bil NearBranch
blo NearBranch
bls NearBranch
bmc NearBranch
bmi NearBranch
bms NearBranch
bne NearBranch
bpl NearBranch
bra NearBranch
brn NearBranch
bsr NearBranch
* jmp #123
jmp AddrLow
jmp AddrHigh
jmp -10,x
jmp 10,x
jmp ,x
* jsr #123
jsr AddrLow
jsr AddrHigh
jsr -10,x
jsr 10,x
jsr ,x
; ┌─────────────────────────────────────────────────────────────────────┐
; │ │
; │ Bit manipulation instructions. │
; │ │
; └─────────────────────────────────────────────────────────────────────┘
bclr #0,AddrLow
bclr 0,AddrLow
bclr #1,AddrLow
bclr 1,AddrLow
bclr #2,AddrLow
bclr 2,AddrLow
bclr #3,AddrLow
bclr 3,AddrLow
bclr #4,AddrLow
bclr 4,AddrLow
bclr #5,AddrLow
bclr #6,AddrLow
bclr #7,AddrLow
bset #0,AddrLow
bset 0,AddrLow
bset #1,AddrLow
bset #2,AddrLow
bset #3,AddrLow
bset #4,AddrLow
bset #5,AddrLow
bset #6,AddrLow
bset #7,AddrLow
NearBrClr brclr #0,AddrLow,NearBrClr
brclr #1,AddrLow,NearBrClr
brclr #2,AddrLow,NearBrClr
brclr 2,AddrLow,NearBrClr
brclr #3,AddrLow,NearBrClr
brclr #4,AddrLow,NearBrClr
brclr #5,AddrLow,NearBrClr
brclr #6,AddrLow,NearBrClr
brclr #7,AddrLow,NearBrClr
NearBrSet brset #0,AddrLow,NearBrSet
brset #1,AddrLow,NearBrSet
brset #2,AddrLow,NearBrSet
brset #3,AddrLow,NearBrSet
brset #4,AddrLow,NearBrSet
brset #5,AddrLow,NearBrSet
brset #6,AddrLow,NearBrSet
brset #7,AddrLow,NearBrSet
brset 7,AddrLow,NearBrSet
end Start
; ───── EOF ─────────────────────────────────────────────────────────────