position, since the pen was probably lifted from the pad.
         ldx     #0
         stx     XPos+1
         stx     YPos+1
-        lda     TRIG0                   ; joystick #0 trigger
-        bne     @L00                    ; not pressed
-        ldx     #MOUSE_BTN_LEFT
-@L00:   stx     Buttons
+        stx     Buttons
 
         lda     PORTA                   ; get other buttons
         eor     #255
         tax
-        and     #4
+        and     #5                     ; pen button and left button are mapped to left mouse button
         beq     @L01
         lda     #MOUSE_BTN_LEFT
         ora     Buttons
         ora     Buttons
         sta     Buttons
 
-@L02:   lda     visible
+; If we read 228 for X or Y positions, we assume the user has lifted the pen
+; and don't change the cursor position.
+
+@L02:   lda    PADDL0
+       cmp     #228
+       beq     @Dont
+       lda     PADDL1
+       cmp     #228
+       bne     @Do
+@Dont:  jmp    @Done
+
+@Do:   lda     visible
         beq     @L03
         jsr     CHIDE
 
         jsr     CMOVEY
 
         lda     visible
-        beq     @L11
+        beq     @Done
         jsr     CSHOW
 
-@L11:   clc                             ; Interrupt not "handled"
+@Done:  clc                             ; Interrupt not "handled"
         rts