mirror of
https://github.com/makarcz/vm6502.git
synced 2024-06-08 05:29:35 +00:00
50 lines
630 B
Plaintext
50 lines
630 B
Plaintext
|
; Basic test of char I/O emulation
|
||
|
|
||
|
.ORG $0200
|
||
|
|
||
|
CHRGET = $E000
|
||
|
PUTCH = $E000
|
||
|
TXTBUF = $0400
|
||
|
CR = $0D
|
||
|
NL = $0A
|
||
|
|
||
|
START: LDX #$00
|
||
|
PR1: LDA PROMPT,X ;print prompt
|
||
|
BEQ L0
|
||
|
STA PUTCH
|
||
|
INX
|
||
|
BNE PR1
|
||
|
L0: LDX #$00
|
||
|
GETTXT: LDA CHRGET ;get text from input
|
||
|
BEQ GETTXT
|
||
|
CMP #CR
|
||
|
BEQ L1
|
||
|
CMP #NL
|
||
|
BEQ L1
|
||
|
STA PUTCH ;echo char
|
||
|
STA TXTBUF,X ;store char
|
||
|
INX
|
||
|
BNE GETTXT
|
||
|
L1: LDA #NL ; add line break
|
||
|
STA TXTBUF,X
|
||
|
STA PUTCH
|
||
|
INX
|
||
|
LDA #CR
|
||
|
STA TXTBUF,X
|
||
|
STA PUTCH
|
||
|
INX
|
||
|
LDA #$00 ; add null
|
||
|
STA TXTBUF,X
|
||
|
TAX
|
||
|
PRINT: LDA TXTBUF,X ; print to output
|
||
|
BEQ L2
|
||
|
STA PUTCH
|
||
|
INX
|
||
|
BNE PRINT
|
||
|
L2: BRK
|
||
|
NOP
|
||
|
JMP START
|
||
|
PROMPT: .DB "Enter text:",0
|
||
|
|
||
|
|
||
|
|