;
; "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
