mirror of
https://github.com/cc65/cc65.git
synced 2024-11-19 21:32:19 +00:00
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,13 +1,16 @@
|
|||||||
;
|
;
|
||||||
; get a kbd char.
|
; Christian Groessler, November-2002
|
||||||
;
|
;
|
||||||
|
; get a char from the keyboard
|
||||||
; char cgetc(void)
|
; char cgetc(void)
|
||||||
;
|
;
|
||||||
|
|
||||||
.include "atari.inc"
|
.include "atari.inc"
|
||||||
.export _cgetc
|
.export _cgetc
|
||||||
|
.import cursor
|
||||||
|
|
||||||
_cgetc:
|
_cgetc:
|
||||||
|
jsr setcursor
|
||||||
jsr @1
|
jsr @1
|
||||||
ldx #0
|
ldx #0
|
||||||
rts
|
rts
|
||||||
@ -19,3 +22,27 @@ _cgetc:
|
|||||||
lda #12
|
lda #12
|
||||||
sta ICAX1Z ; fix problems with direct call to KEYBDV
|
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…
Reference in New Issue
Block a user