mirror of
https://github.com/fadden/6502bench.git
synced 2025-07-16 03:24:08 +00:00
Initial file commit
This commit is contained in:
62
SourceGen/Examples/Tutorial/Tutorial1.S
Normal file
62
SourceGen/Examples/Tutorial/Tutorial1.S
Normal file
@@ -0,0 +1,62 @@
|
||||
; 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
|
||||
|
Reference in New Issue
Block a user