]> git.sur5r.net Git - cc65/commitdiff
PM base isn't hardcoded anymore, we now get it from the startup code
authorcpg <cpg@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 19 Nov 2000 22:59:05 +0000 (22:59 +0000)
committercpg <cpg@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 19 Nov 2000 22:59:05 +0000 (22:59 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@450 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/atari/mouse.s

index 466ad7230a126b2697ecc8ed459ebc1494228c37..1592b411acb563f3d993e4d8e68b82f99341e66f 100644 (file)
@@ -15,7 +15,7 @@
        .export _mouse_show, _mouse_hide, _mouse_move
        .export _mouse_buttons
 
-       .import popa,popax
+       .import popa,popax,mouse_pm0
 
        .include "atari.inc"
 
@@ -25,18 +25,15 @@ AMIGA_MOUSE = 2     ; device Amiga mouse
 MAX_TYPE       = 3     ; first illegal device type
 
 ; the default values force the mouse cursor inside the test screen (no access to border)
-defxmin = 48            ; default x minimum
-defymin = 32            ; default y minimum
-defxmax = 204           ; default x maximum
-defymax = 211           ; default y maximum
+defxmin = 48           ; default x minimum
+defymin = 32           ; default y minimum
+defxmax = 204          ; default x maximum
+defymax = 211          ; default y maximum
 
-pmsize  = 16            ; y size pm shape
+pmsize = 16            ; y size pm shape
 
-xinit   = 100            ; init. x pos.
-yinit   = 100            ; init. y pos.
-
-pmb    = $2800         ; pm base memory
-pm0    = pmb+$400      ; pm 0 memory
+xinit  = defxmin       ; init. x pos.
+yinit  = defymin       ; init. y pos.
 
 ;--------------------------------------------------------------------
 ; Initialize mouse routines
@@ -52,13 +49,11 @@ _mouse_init:
        cmp     #MAX_TYPE+1
        bcc     setup
 
-ifail:
-       lda     #0              ; init. failed
+ifail: lda     #0              ; init. failed
        tax
        rts
 
-setup:
-       tax
+setup: tax
        lda     lvectab,x
        sta     mouse_vec+1
        lda     hvectab,x
@@ -108,7 +103,7 @@ setup:
 
        ldx     #0
        lda     #1
-       sta     mouse_on
+       stx     mouse_on
        rts
 
 ;--------------------------------------------------------------------
@@ -404,13 +399,21 @@ vbi_jmp:
 ;--------------------------------------------------------------------
 ; initialize mouse pm
 
-pminit: ldx    #0
+pminit:        lda     mouse_pm0
+       sta     mpatch1+2
+       sta     mpatch2+2
+       sta     mpatch3+2
+       
+       ldx     #0
        txa
-clpm:  sta     pm0,x
+mpatch1:
+clpm:  sta     $1000,x         ; will be patched
        inx
        bne     clpm
 
-       lda     #>pmb
+       lda     mouse_pm0
+       sec
+       sbc     #4
        sta     PMBASE
 
        lda     #62
@@ -435,7 +438,8 @@ drwpm:      lda     mousex
 
        ldy     #0
 fmp2:  lda     mskpm,y
-       sta     pm0,x
+mpatch2:
+       sta     $1000,x         ; will be patched
        inx
        iny
        cpy     #pmsize
@@ -450,7 +454,8 @@ clrpm:      lda     omy
 
        ldy     #0
        tya
-fmp1:  sta     pm0,x
+mpatch3:
+fmp1:  sta     $1000,x         ; will be patched
        inx
        iny
        cpy     #pmsize