mirror of
https://github.com/fadden/6502bench.git
synced 2024-12-11 13:50:13 +00:00
63 lines
1.2 KiB
ArmAsm
63 lines
1.2 KiB
ArmAsm
; Copyright 2018 faddenSoft. All Rights Reserved.
|
|
; See the LICENSE.txt file for distribution terms (Apache 2.0).
|
|
;
|
|
; Assembler: Merlin 32
|
|
|
|
INPUT equ $3000
|
|
OUTPUT equ $0400
|
|
|
|
org $1000
|
|
|
|
ldy #END-AFTER
|
|
copy lda BEFORE,y
|
|
sta AFTER,y
|
|
dey
|
|
bmi done
|
|
bpl copy
|
|
|
|
dfb $00
|
|
stuff asc 'hello!'
|
|
|
|
done jmp AFTER
|
|
|
|
BEFORE
|
|
org $2000
|
|
AFTER
|
|
|
|
lda INPUT ;expecting 0-3
|
|
cmp #4
|
|
blt :valid
|
|
lda #4 ;error message
|
|
:valid asl A
|
|
tax
|
|
lda stringtab,x ;set load to address
|
|
sta _load+1
|
|
lda stringtab+1,x
|
|
sta _load+2
|
|
|
|
ldy #12 ;fixed-width strings
|
|
_load lda $0000,y ;self-modifying code
|
|
ora #$80
|
|
sta OUTPUT,y
|
|
dey
|
|
bpl _load
|
|
|
|
rts
|
|
|
|
stringtab
|
|
dw string0
|
|
dw string1
|
|
dw string2
|
|
dw string3
|
|
dw stringX
|
|
dfb $00
|
|
|
|
string0 asc 'string zero '
|
|
string1 asc 'string one '
|
|
string2 asc 'string two '
|
|
string3 asc 'string three '
|
|
stringX asc 'invalid index'
|
|
|
|
END
|
|
|