]> git.sur5r.net Git - cc65/commitdiff
Change MOVE routine calling conventions
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 29 Mar 2004 16:44:39 +0000 (16:44 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 29 Mar 2004 16:44:39 +0000 (16:44 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2965 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/c64/c64-1351.s
libsrc/mouse/mouse_move.s

index ab4732aaa6a2704c6adc6969caa4ad8f36e5831c..5fbc8122eefdea6ba13e42a3b73b7671c4c169d2 100644 (file)
@@ -175,8 +175,10 @@ BOX:    ldy     #5
                rts
 
 ;----------------------------------------------------------------------------
-; MOVE: Move the mouse to a new position which is passed in X=ptr1, Y=a/x.
-; No checks are done if the new position is valid (within the bounding box or
+; MOVE: Move the mouse to a new position. The position is passed as it comes
+; from the C program, that is: X on the stack and Y in a/x. The C wrapper will
+; remove the parameter from the stack on return.
+; No checks are done if the new position is valid (within the bounding box or 
 ; the screen). No return code required.
 ;
 
@@ -186,10 +188,13 @@ MOVE:   sei                             ; No interrupts
         stx     YPos+1                  ; New Y position
         jsr     CMOVEY                  ; Set it
 
-        lda     ptr1
-        ldx     ptr1+1
-        sta     XPos
-        stx     XPos+1                  ; New X position
+        ldy     #$01
+        lda     (sp),y
+        sta     XPos+1
+        tax
+        dey
+        lda     (sp),y
+        sta     XPos                    ; New X position
 
         jsr     CMOVEX                 ; Move the cursor
 
index f3052c1eee20532a0b98b3a5671c9f937a878dc9..2245221f6d50dab204177356512dc96948957a96 100644 (file)
@@ -9,16 +9,15 @@
 ;  */
 ;
 
-        .import         ptr1: zp
+        .import         incsp2
+        .import         ptr1: zp                            
 
         .include        "mouse-kernel.inc"
 
 .proc   _mouse_move
 
-        sta     ptr1
-        stx     ptr1+1                  ; Store x into ptr1
-        jsr     popax
-        jmp     mouse_move              ; Call the driver
+        jsr     mouse_move              ; Call the driver
+        jmp     incsp2                  ; Drop the parameter
 
 .endproc