]> git.sur5r.net Git - cc65/commitdiff
Allow to override mouse sprite location data.
authorOliver Schmidt <ol.sc@web.de>
Mon, 12 Oct 2015 18:18:13 +0000 (20:18 +0200)
committerOliver Schmidt <ol.sc@web.de>
Mon, 12 Oct 2015 18:18:13 +0000 (20:18 +0200)
libsrc/c64/mcbdefault.s
libsrc/c64/mcbspritedata.s [new file with mode: 0644]

index c4feddfeaa682b2e4ecee499cd20d0586138e6ac..cd36d8515faaa578b312b708174171cc4eeb611e 100644 (file)
@@ -11,6 +11,8 @@
         .export         _mouse_def_callbacks
         .import         _mouse_def_pointershape
         .import         _mouse_def_pointercolor
+        .import         mcb_spritememory
+        .import         mcb_spritepointer
 
         .include        "mouse-kernel.inc"
         .include        "c64.inc"
@@ -20,7 +22,6 @@
 ; Sprite definitions. The first value can be changed to adjust the number
 ; of the sprite used for the mouse. All others depend on this value.
 MOUSE_SPR       = 0                             ; Sprite used for the mouse
-MOUSE_SPR_MEM   = $0340                         ; Memory location
 MOUSE_SPR_MASK  = $01 .shl MOUSE_SPR            ; Positive mask
 MOUSE_SPR_NMASK = .lobyte(.not MOUSE_SPR_MASK)  ; Negative mask
 VIC_SPR_X       = (VIC_SPR0_X + 2*MOUSE_SPR)    ; Sprite X register
@@ -33,18 +34,30 @@ VIC_SPR_Y       = (VIC_SPR0_Y + 2*MOUSE_SPR)    ; Sprite Y register
 
 initmcb:
 
+; Make all RAM accessible
+
+        lda     #$30
+        ldy     $01
+        sei
+        sta     $01
+
 ; Copy the mouse sprite data
 
         ldx     #64 - 1
 @L0:    lda     _mouse_def_pointershape,x
-        sta     MOUSE_SPR_MEM,x
+        sta     mcb_spritememory,x
         dex
         bpl     @L0
 
 ; Set the mouse sprite pointer
 
-        lda     #<(MOUSE_SPR_MEM / 64)
-        sta     $07F8 + MOUSE_SPR
+        lda     #<(mcb_spritememory / 64)
+        sta     mcb_spritepointer + MOUSE_SPR
+
+; Restore memory configuration
+
+        sty     $01
+        cli
 
 ; Set the mouse sprite color
 
diff --git a/libsrc/c64/mcbspritedata.s b/libsrc/c64/mcbspritedata.s
new file mode 100644 (file)
index 0000000..2c7aa14
--- /dev/null
@@ -0,0 +1,4 @@
+; VIC sprite data for the mouse pointer
+
+        .export         mcb_spritememory  := $0340
+        .export         mcb_spritepointer := $07F8