1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-25 02:29:52 +00:00
cc65/libsrc/cx16/cpeekcolor.s

35 lines
983 B
ArmAsm

;
; 2020-04-30, Greg King
;
; unsigned char cpeekcolor (void);
; /* Return the colors from the current cursor position. */
;
.export _cpeekcolor
.include "cx16.inc"
_cpeekcolor:
php
lda CURS_FLAG ; is the cursor currently off?
bne @L1
sei ; don't let cursor blinking interfere
ldx CURS_STATE ; is cursor currently displayed?
beq @L1 ; jump if not
lda CURS_COLOR ; get color under cursor
bra @L2
@L1: stz VERA::CTRL ; use port 0
lda CURS_Y
sta VERA::ADDR+1 ; set row number
stz VERA::ADDR+2
lda CURS_X ; get character column
sec ; color attribute is second byte
rol a
sta VERA::ADDR
lda VERA::DATA0 ; get color of character
@L2: plp
ldx #>$0000
rts