5 .constructor initcgetc
\r
9 .include "osic1p.inc"
\r
10 .include "extzp.inc"
\r
11 .include "zeropage.inc"
\r
13 ; Initialize one-character buffer that is filled by kbhit()
\r
17 sta CHARBUF ; No character in buffer initially
\r
20 ; Input routine from 65V PROM MONITOR, show cursor if enabled
\r
23 lda CHARBUF ; character in buffer available?
\r
25 tax ; save character in X
\r
27 sta CHARBUF ; empty buffer
\r
28 beq restorex ; restore X and return
\r
30 lda cursor ; show cursor?
\r
33 lda (SCREEN_PTR),y ; fetch current character
\r
35 lda #$A1 ; full white square
\r
36 sta (SCREEN_PTR),y ; store at cursor position
\r
38 jsr INPUTC ; get input character in A
\r
40 beq done ; was cursor on?
\r
42 lda tmp1 ; fetch saved character
\r
44 sta (SCREEN_PTR),y ; store at cursor position
\r
47 txa ; restore saved character from X
\r
49 ldx #$00 ; high byte of int return value
\r