2014-11-09 00:58:32 +01:00
|
|
|
;
|
|
|
|
; char cgetc (void);
|
|
|
|
;
|
|
|
|
.export _cgetc
|
2014-11-29 20:07:30 +01:00
|
|
|
.import cursor
|
|
|
|
|
2015-02-03 22:42:35 +01:00
|
|
|
.include "osic1p.inc"
|
2014-11-29 20:07:30 +01:00
|
|
|
.include "extzp.inc"
|
2014-11-09 00:58:32 +01:00
|
|
|
|
2014-11-29 20:07:30 +01:00
|
|
|
; Input routine from 65V PROM MONITOR, show cursor if enabled
|
|
|
|
_cgetc:
|
|
|
|
lda cursor ; show cursor?
|
|
|
|
beq nocursor
|
|
|
|
ldy CURS_X
|
|
|
|
lda (SCREEN_PTR),y ; fetch current character
|
|
|
|
sta CURS_SAV ; save it
|
|
|
|
lda #$A1 ; full white square
|
|
|
|
sta (SCREEN_PTR),y ; store at cursor position
|
|
|
|
nocursor:
|
|
|
|
jsr INPUTC
|
|
|
|
pha ; save retrieved character
|
|
|
|
lda cursor ; was cursor on?
|
|
|
|
beq nocursor2
|
|
|
|
lda CURS_SAV ; fetch saved character
|
|
|
|
ldy CURS_X
|
|
|
|
sta (SCREEN_PTR),y ; store at cursor position
|
|
|
|
nocursor2:
|
|
|
|
pla ; restore retrieved character
|
|
|
|
rts
|