.import cursor
+ .include "cbm_kernal.inc"
.include "c128.inc"
;--------------------------------------------------------------------------
_cgetc: lda KEY_COUNT ; Get number of characters
bne L2 ; Jump if there are already chars waiting
-; Switch on the cursor if needed. We MUST always switch the cursor on,
-; before switching it off, because switching it off will restore the
+; Switch on the cursor if needed. We MUST always switch the cursor on,
+; before switching it off, because switching it off will restore the
; character attribute remembered when it was switched on. So just switching
; it off will restore the wrong character attribute.
;--------------------------------------------------------------------------
; Module constructor/destructor
-.bss
+.segment "INIT"
keyvec: .res 2
-.segment "INIT"
+.segment "ONCE"
initcgetc:
; Save the old vector
lda KeyStoreVec
+ ldx KeyStoreVec+1
sta keyvec
- lda KeyStoreVec+1
- sta keyvec+1
+ stx keyvec+1
; Set the new vector. I can only hope that this works for other C128
; versions...
stx KeyStoreVec+1
cli
rts
-
-