hide cursor when drawing, minor other fixes
This commit is contained in:
1 parent
c46a4aa1dd
commit
415d5a94bb
3 files changed
+58
-3
No files matched your search
@@ -0,0 +1,51 @@
|
||||
;; We have the following variables:
|
||||
;; cursor_blink_disable
|
||||
;; cursor_blink_countdown
|
||||
;; cursor_saved_character
|
||||
;; cursor_is_visible
|
||||
;; colour_under_cursor
|
||||
|
||||
blink_cursor:
|
||||
;; Is the cursor enabled?
|
||||
bit cursor_blink_disable
|
||||
bne no_blink_cursor
|
||||
|
||||
;; Do we need to redraw things?
|
||||
dec cursor_blink_countdown
|
||||
bpl no_blink_cursor
|
||||
|
||||
;; XXX - Save character colour also!
|
||||
|
||||
;; Check if cursor was visible or not, and toggle
|
||||
lda cursor_is_visible
|
||||
bne undraw_cursor
|
||||
draw_cursor:
|
||||
ldy current_screen_x
|
||||
lda (current_screen_line_ptr),y
|
||||
sta cursor_saved_character
|
||||
eor #$80
|
||||
sta (current_screen_line_ptr),y
|
||||
lda #1
|
||||
sta cursor_is_visible
|
||||
jmp reset_blink_timer
|
||||
|
||||
undraw_cursor:
|
||||
lda cursor_saved_character
|
||||
ldy current_screen_x
|
||||
sta (current_screen_line_ptr),y
|
||||
lda #0
|
||||
sta cursor_is_visible
|
||||
;; Fall through
|
||||
reset_blink_timer:
|
||||
;; Rest blink counter
|
||||
;; (Compute's Mapping the 64, p39-40)
|
||||
lda #20
|
||||
sta cursor_blink_countdown
|
||||
no_blink_cursor:
|
||||
|
||||
rts
|
||||
|
||||
hide_cursor_if_visible:
|
||||
bit cursor_is_visible
|
||||
bne undraw_cursor
|
||||
rts
|
||||
Reference in new issue
Block a user