mirror of
https://github.com/cc65/cc65.git
synced 2025-01-11 11:30:13 +00:00
Merge pull request #90 from greg-king5/c128-sprite
Added code that disables C128 BASIC's sprite-motion interrupt-handler.
This commit is contained in:
commit
4ea84c4843
@ -2,7 +2,8 @@
|
|||||||
; Driver for the 1351 proportional mouse. Parts of the code are from
|
; Driver for the 1351 proportional mouse. Parts of the code are from
|
||||||
; the Commodore 1351 mouse users guide.
|
; the Commodore 1351 mouse users guide.
|
||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 2003-12-29, 2009-09-26
|
; 2009-09-26, Ullrich von Bassewitz
|
||||||
|
; 2014-03-15, Greg King
|
||||||
;
|
;
|
||||||
|
|
||||||
.include "zeropage.inc"
|
.include "zeropage.inc"
|
||||||
@ -83,6 +84,8 @@ YMax: .res 2 ; Y2 value of bounding box
|
|||||||
OldValue: .res 1 ; Temp for MoveCheck routine
|
OldValue: .res 1 ; Temp for MoveCheck routine
|
||||||
NewValue: .res 1 ; Temp for MoveCheck routine
|
NewValue: .res 1 ; Temp for MoveCheck routine
|
||||||
|
|
||||||
|
INIT_save: .res 1
|
||||||
|
|
||||||
.rodata
|
.rodata
|
||||||
|
|
||||||
; Default values for above variables
|
; Default values for above variables
|
||||||
@ -107,6 +110,14 @@ NewValue: .res 1 ; Temp for MoveCheck routine
|
|||||||
|
|
||||||
INSTALL:
|
INSTALL:
|
||||||
|
|
||||||
|
; Disable the BASIC interpreter's interrupt-driven sprite-motion code.
|
||||||
|
; That allows direct access to the VIC-IIe's sprite registers.
|
||||||
|
|
||||||
|
lda INIT_STATUS
|
||||||
|
sta INIT_save
|
||||||
|
lda #%11000000
|
||||||
|
sta INIT_STATUS
|
||||||
|
|
||||||
; Initialize variables. Just copy the default stuff over
|
; Initialize variables. Just copy the default stuff over
|
||||||
|
|
||||||
ldx #.sizeof(DefVars)-1
|
ldx #.sizeof(DefVars)-1
|
||||||
@ -133,13 +144,17 @@ INSTALL:
|
|||||||
|
|
||||||
ldx #$00
|
ldx #$00
|
||||||
txa
|
txa
|
||||||
rts ; Run into UNINSTALL instead
|
rts
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
;----------------------------------------------------------------------------
|
||||||
; UNINSTALL routine. Is called before the driver is removed from memory.
|
; UNINSTALL routine. Is called before the driver is removed from memory.
|
||||||
; No return code required (the driver is removed from memory on return).
|
; No return code required (the driver is removed from memory on return).
|
||||||
|
|
||||||
UNINSTALL = HIDE ; Hide cursor on exit
|
UNINSTALL:
|
||||||
|
jsr HIDE ; Hide cursor on exit
|
||||||
|
lda INIT_save
|
||||||
|
sta INIT_STATUS
|
||||||
|
rts
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
;----------------------------------------------------------------------------
|
||||||
; HIDE routine. Is called to hide the mouse pointer. The mouse kernel manages
|
; HIDE routine. Is called to hide the mouse pointer. The mouse kernel manages
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
;
|
;
|
||||||
; Driver for a "joystick mouse".
|
; Driver for a "joystick mouse".
|
||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 2004-04-05, 2009-09-26
|
; 2009-09-26, Ullrich von Bassewitz
|
||||||
|
; 2014-03-15, Greg King
|
||||||
;
|
;
|
||||||
|
|
||||||
.include "zeropage.inc"
|
.include "zeropage.inc"
|
||||||
@ -85,6 +86,8 @@ XMax: .res 2 ; X2 value of bounding box
|
|||||||
YMax: .res 2 ; Y2 value of bounding box
|
YMax: .res 2 ; Y2 value of bounding box
|
||||||
Buttons: .res 1 ; Button mask
|
Buttons: .res 1 ; Button mask
|
||||||
|
|
||||||
|
INIT_save: .res 1
|
||||||
|
|
||||||
; Temporary value used in the int handler
|
; Temporary value used in the int handler
|
||||||
|
|
||||||
Temp: .res 1
|
Temp: .res 1
|
||||||
@ -113,6 +116,14 @@ Temp: .res 1
|
|||||||
|
|
||||||
INSTALL:
|
INSTALL:
|
||||||
|
|
||||||
|
; Disable the BASIC interpreter's interrupt-driven sprite-motion code.
|
||||||
|
; That allows direct access to the VIC-IIe's sprite registers.
|
||||||
|
|
||||||
|
lda INIT_STATUS
|
||||||
|
sta INIT_save
|
||||||
|
lda #%11000000
|
||||||
|
sta INIT_STATUS
|
||||||
|
|
||||||
; Initialize variables. Just copy the default stuff over
|
; Initialize variables. Just copy the default stuff over
|
||||||
|
|
||||||
ldx #.sizeof(DefVars)-1
|
ldx #.sizeof(DefVars)-1
|
||||||
@ -145,7 +156,11 @@ INSTALL:
|
|||||||
; UNINSTALL routine. Is called before the driver is removed from memory.
|
; UNINSTALL routine. Is called before the driver is removed from memory.
|
||||||
; No return code required (the driver is removed from memory on return).
|
; No return code required (the driver is removed from memory on return).
|
||||||
|
|
||||||
UNINSTALL = HIDE ; Hide cursor on exit
|
UNINSTALL:
|
||||||
|
jsr HIDE ; Hide cursor on exit
|
||||||
|
lda INIT_save
|
||||||
|
sta INIT_STATUS
|
||||||
|
rts
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
;----------------------------------------------------------------------------
|
||||||
; HIDE routine. Is called to hide the mouse pointer. The mouse kernel manages
|
; HIDE routine. Is called to hide the mouse pointer. The mouse kernel manages
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
;
|
;
|
||||||
; Driver for a potentiometer "mouse" e.g. Koala Pad
|
; Driver for a potentiometer "mouse", e.g. Koala Pad
|
||||||
;
|
;
|
||||||
; Ullrich von Bassewitz, 2004-03-29, 2009-09-26
|
; 2006-08-20, Stefan Haubenthal
|
||||||
; Stefan Haubenthal, 2006-08-20
|
; 2009-09-26, Ullrich von Bassewitz
|
||||||
|
; 2014-03-15, Greg King
|
||||||
;
|
;
|
||||||
|
|
||||||
.include "zeropage.inc"
|
.include "zeropage.inc"
|
||||||
@ -82,6 +83,8 @@ XMax: .res 2 ; X2 value of bounding box
|
|||||||
YMax: .res 2 ; Y2 value of bounding box
|
YMax: .res 2 ; Y2 value of bounding box
|
||||||
Buttons: .res 1 ; Button mask
|
Buttons: .res 1 ; Button mask
|
||||||
|
|
||||||
|
INIT_save: .res 1
|
||||||
|
|
||||||
; Temporary value used in the int handler
|
; Temporary value used in the int handler
|
||||||
|
|
||||||
Temp: .res 1
|
Temp: .res 1
|
||||||
@ -110,6 +113,14 @@ Temp: .res 1
|
|||||||
|
|
||||||
INSTALL:
|
INSTALL:
|
||||||
|
|
||||||
|
; Disable the BASIC interpreter's interrupt-driven sprite-motion code.
|
||||||
|
; That allows direct access to the VIC-IIe's sprite registers.
|
||||||
|
|
||||||
|
lda INIT_STATUS
|
||||||
|
sta INIT_save
|
||||||
|
lda #%11000000
|
||||||
|
sta INIT_STATUS
|
||||||
|
|
||||||
; Initialize variables. Just copy the default stuff over
|
; Initialize variables. Just copy the default stuff over
|
||||||
|
|
||||||
ldx #.sizeof(DefVars)-1
|
ldx #.sizeof(DefVars)-1
|
||||||
@ -142,7 +153,11 @@ INSTALL:
|
|||||||
; UNINSTALL routine. Is called before the driver is removed from memory.
|
; UNINSTALL routine. Is called before the driver is removed from memory.
|
||||||
; No return code required (the driver is removed from memory on return).
|
; No return code required (the driver is removed from memory on return).
|
||||||
|
|
||||||
UNINSTALL = HIDE ; Hide cursor on exit
|
UNINSTALL:
|
||||||
|
jsr HIDE ; Hide cursor on exit
|
||||||
|
lda INIT_save
|
||||||
|
sta INIT_STATUS
|
||||||
|
rts
|
||||||
|
|
||||||
;----------------------------------------------------------------------------
|
;----------------------------------------------------------------------------
|
||||||
; HIDE routine. Is called to hide the mouse pointer. The mouse kernel manages
|
; HIDE routine. Is called to hide the mouse pointer. The mouse kernel manages
|
||||||
|
Loading…
x
Reference in New Issue
Block a user