From 9e155eb096412bc38e3bb71fbcf292743eb7c149 Mon Sep 17 00:00:00 2001 From: Christian Groessler Date: Tue, 14 Jan 2014 13:59:42 +0100 Subject: [PATCH] Always print the mouse cursor, even if coordinates haven't changed. 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 | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/libsrc/atari/mou/atrtt.s b/libsrc/atari/mou/atrtt.s index 9d2dac1c9..f58838720 100644 --- a/libsrc/atari/mou/atrtt.s +++ b/libsrc/atari/mou/atrtt.s @@ -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