mirror of
https://github.com/jonthomasson/retro1.git
synced 2024-06-17 06:29:28 +00:00
36 lines
1.1 KiB
ArmAsm
36 lines
1.1 KiB
ArmAsm
|
;
|
||
|
; "Good Listener" Example program from OSI OS65V manual.
|
||
|
;
|
||
|
; Echoes keys pressed on a line of the screen with single line
|
||
|
; scrollng.
|
||
|
;
|
||
|
; Build using:
|
||
|
; ca65 -g -l example1.s
|
||
|
; ld65 -t none -vm -o example1.bin example1.o
|
||
|
; ./bintolod -s 0000 -l 0000 example1.bin >example1.lod
|
||
|
;
|
||
|
; Then upload and run using:
|
||
|
; ascii-xfr -s example1.lod >/dev/ttyUSB0
|
||
|
|
||
|
GETKEY := $FEED
|
||
|
|
||
|
.org 0
|
||
|
|
||
|
ldx #0 ; Clear index
|
||
|
fill: jsr GETKEY ; Next pressed into A
|
||
|
sta $D146,x ; Into next line cell
|
||
|
inx ; Increment index by 1
|
||
|
cpx #20 ; End of the line?
|
||
|
bne fill ; Back until equal
|
||
|
repeat: jsr GETKEY ; Next pressed to A
|
||
|
tay ; Save key in Y
|
||
|
ldx #0 ; Clear index
|
||
|
move: lda $D147,x ; Load line(i+1)
|
||
|
sta $D146,x ; Store into line(i)
|
||
|
inx ; Increment index
|
||
|
cpx #19 ; End of the line?
|
||
|
bne move ; Back until equal
|
||
|
tya ; Restore key-in
|
||
|
sta $D159 ; Store new key
|
||
|
jmp repeat ; Back for more
|