mirror of
https://github.com/fadden/6502bench.git
synced 2024-09-11 20:54:37 +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
|
||
|
|