]> git.sur5r.net Git - cc65/commitdiff
Always print the mouse cursor, even if coordinates haven't changed.
authorChristian Groessler <chris@groessler.org>
Tue, 14 Jan 2014 12:59:42 +0000 (13:59 +0100)
committerChristian Groessler <chris@groessler.org>
Mon, 20 Jan 2014 10:40:13 +0000 (11:40 +0100)
This makes sure that the cursor is always visible, even if the program
has written text to the screen (only valid for non-P/M mouse callbacks).

libsrc/atari/mou/atrtt.s

index 9d2dac1c971f201f9ca911acb71859deb7f28719..f58838720202651aa40e39408cb475557bd3b6a9 100644 (file)
@@ -118,12 +118,8 @@ INSTALL:
         dex
         bpl     @L1
 
-; Be sure the mouse cursor is invisible and at the default location. We
-; need to do that here, because our mouse interrupt handler doesn't set the
-; mouse position if it hasn't changed.
+; Be sure the mouse cursor is invisible and at the default location.
 
-        php
-        sei
         jsr     CHIDE
         lda     XPos
         ldx     XPos+1
@@ -131,7 +127,6 @@ INSTALL:
         lda     YPos
         ldx     YPos+1
         jsr     CMOVEY
-        plp
 
 ; Done, return zero (= MOUSE_ERR_OK)
 
@@ -352,15 +347,18 @@ IRQ:
 
 @L02:   lda     PADDL0
         cmp     #228
-        beq     @Dont
+        beq     @Cont                   ; CF set if equal
         lda     PADDL1
-        cmp     #228
-        bne     @Do
-@Dont:  jmp     @Done
+        cmp     #228                    ; CF set if equal
 
-@Do:    lda     visible
-        beq     @L03
+@Cont:  lda     visible
+        beq     @Go
+        php                             ; remember CF
         jsr     CHIDE
+        plp                             ; restore CF
+
+@Go:    bcc     @L03
+        jmp     @Show
 
 @L03:   ldx     #0
         stx     XPos+1
@@ -484,7 +482,7 @@ IRQ:
         tya
         jsr     CMOVEY
 
-        lda     visible
+@Show:  lda     visible
         beq     @Done
         jsr     CSHOW