honour cursor setting
git-svn-id: svn://svn.cc65.org/cc65/trunk@1481 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
dadd136ae1
commit
6078dea817
1 changed files with 36 additions and 9 deletions
|
@ -1,21 +1,48 @@
|
|||
;
|
||||
; get a kbd char.
|
||||
; Christian Groessler, November-2002
|
||||
;
|
||||
; get a char from the keyboard
|
||||
; char cgetc(void)
|
||||
;
|
||||
|
||||
.include "atari.inc"
|
||||
.export _cgetc
|
||||
|
||||
.include "atari.inc"
|
||||
.export _cgetc
|
||||
.import cursor
|
||||
|
||||
_cgetc:
|
||||
jsr setcursor
|
||||
jsr @1
|
||||
ldx #0
|
||||
rts
|
||||
|
||||
@1: lda KEYBDV+5
|
||||
pha
|
||||
lda KEYBDV+4
|
||||
pha
|
||||
@1: lda KEYBDV+5
|
||||
pha
|
||||
lda KEYBDV+4
|
||||
pha
|
||||
lda #12
|
||||
sta ICAX1Z ; fix problems with direct call to KEYBDV
|
||||
rts
|
||||
rts
|
||||
|
||||
|
||||
.proc setcursor
|
||||
|
||||
lda OLDCHR ; get char at current cursor position
|
||||
ldy #0 ; needed later
|
||||
|
||||
ldx cursor ; current cursor setting as requested by the user
|
||||
beq off
|
||||
ldx #0
|
||||
beq cont
|
||||
|
||||
off: inx
|
||||
cont: stx CRSINH ; update system variable
|
||||
|
||||
beq turnon
|
||||
and #$7f ; clear high bit / inverse flag
|
||||
finish: sta (OLDADR),y ; update on-screen display
|
||||
rts
|
||||
|
||||
turnon: ora #$80 ; set high bit / inverse flag
|
||||
bne finish
|
||||
|
||||
.endproc
|
||||
|
|
Loading…
Add table
Reference in a new issue