reserve memory for mouse PM if RESERVE_MOUSE_MEMORY is defined (normally
yes) git-svn-id: svn://svn.cc65.org/cc65/trunk@449 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -9,6 +9,11 @@
|
|||||||
; This must be the *first* file on the linker command line
|
; This must be the *first* file on the linker command line
|
||||||
;
|
;
|
||||||
|
|
||||||
|
RESERVE_MOUSE_MEMORY = 1 ; for P/M
|
||||||
|
|
||||||
|
.ifdef RESERVE_MOUSE_MEMORY
|
||||||
|
.export mouse_pm0
|
||||||
|
.endif
|
||||||
.export _exit
|
.export _exit
|
||||||
.import getargs, argc, argv
|
.import getargs, argc, argv
|
||||||
.import __hinit, initconio, zerobss, pushax, doatexit
|
.import __hinit, initconio, zerobss, pushax, doatexit
|
||||||
@@ -208,11 +213,27 @@ L2: lda zpsave,x
|
|||||||
sbc grmemusage+1,y
|
sbc grmemusage+1,y
|
||||||
tax
|
tax
|
||||||
pla
|
pla
|
||||||
|
.ifdef RESERVE_MOUSE_MEMORY
|
||||||
|
|
||||||
|
adj_mouse:
|
||||||
|
txa ; get upper byte of address
|
||||||
|
and #%11111000 ; make 2k aligned
|
||||||
|
sec
|
||||||
|
sbc #%00001000 ; reserve 2k
|
||||||
|
tax
|
||||||
|
adc #3 ; add 4 (C = 1)
|
||||||
|
sta mouse_pm0
|
||||||
|
lda #0
|
||||||
|
.endif
|
||||||
rts
|
rts
|
||||||
|
|
||||||
ignore: lda MEMTOP
|
ignore: lda MEMTOP
|
||||||
ldx MEMTOP+1
|
ldx MEMTOP+1
|
||||||
|
.ifdef RESERVE_MOUSE_MEMORY
|
||||||
|
bne adj_mouse
|
||||||
|
.else
|
||||||
rts
|
rts
|
||||||
|
.endif
|
||||||
|
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
@@ -278,6 +299,9 @@ spsave: .res 1
|
|||||||
appmsav: .res 1
|
appmsav: .res 1
|
||||||
old_shflok: .res 1
|
old_shflok: .res 1
|
||||||
old_lmargin: .res 1
|
old_lmargin: .res 1
|
||||||
|
.ifdef RESERVE_MOUSE_MEMORY
|
||||||
|
mouse_pm0: .res 1
|
||||||
|
.endif
|
||||||
|
|
||||||
.segment "AUTOSTRT"
|
.segment "AUTOSTRT"
|
||||||
.word $02E0
|
.word $02E0
|
||||||
|
|||||||
Reference in New Issue
Block a user