mirror of
https://github.com/cc65/cc65.git
synced 2024-09-22 11:07:39 +00:00
Place the zero page variables into the ZEROPAGE segment
git-svn-id: svn://svn.cc65.org/cc65/trunk@322 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
5446245eb4
commit
e0a619ff90
@ -15,25 +15,33 @@
|
|||||||
; Define and export the ZP variables for the C64 runtime
|
; Define and export the ZP variables for the C64 runtime
|
||||||
|
|
||||||
.exportzp sp, sreg, regsave
|
.exportzp sp, sreg, regsave
|
||||||
.exportzp ptr1, ptr2, ptr3, ptr4
|
.exportzp ptr1, ptr2, ptr3, ptr4
|
||||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||||
.exportzp regbank, zpspace
|
.exportzp regbank, zpspace
|
||||||
|
|
||||||
; These zero page entries overlap with the sweet-16 registers.
|
; These zero page entries overlap with the sweet-16 registers in
|
||||||
; must be changed if sweet-16 is to be supported
|
; the standard apple2 linker config. They must be changed if sweet-16
|
||||||
sp = $00 ; stack pointer
|
; is to be supported
|
||||||
sreg = $02 ; secondary register/high 16 bit for longs
|
|
||||||
regsave = $04 ; slot to save/restore (E)AX into
|
.zeropage
|
||||||
ptr1 = $08 ;
|
|
||||||
ptr2 = $0A
|
zpstart = *
|
||||||
ptr3 = $0C
|
sp: .res 2 ; Stack pointer
|
||||||
ptr4 = $0E
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
tmp1 = $10
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
tmp2 = $11
|
ptr1: .res 2
|
||||||
tmp3 = $12
|
ptr2: .res 2
|
||||||
tmp4 = $13
|
ptr3: .res 2
|
||||||
regbank = $14 ; 6 byte register bank
|
ptr4: .res 2
|
||||||
zpspace = $1A ; Zero page space allocated
|
tmp1: .res 1
|
||||||
|
tmp2: .res 1
|
||||||
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; Actual code
|
; Actual code
|
||||||
|
@ -26,20 +26,27 @@
|
|||||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||||
.exportzp fntemp, regbank, zpspace
|
.exportzp fntemp, regbank, zpspace
|
||||||
|
|
||||||
sp = $D2 ; (2bytes) stack pointer
|
|
||||||
sreg = $D4 ; (2bytes) secondary register/high 16 bit for longs
|
.zeropage
|
||||||
regsave = $D6 ; (4bytes) slot to save/restore (E)AX into
|
|
||||||
ptr1 = $DA ; (2bytes)
|
zpstart = *
|
||||||
ptr2 = $DC ; (2bytes)
|
sp: .res 2 ; Stack pointer
|
||||||
ptr3 = $DE ; (2bytes)
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
ptr4 = $E0 ; (2bytes)
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
tmp1 = $E2 ; (1byte)
|
ptr1: .res 2
|
||||||
tmp2 = $E3 ; (1byte)
|
ptr2: .res 2
|
||||||
tmp3 = $E4 ; (1byte)
|
ptr3: .res 2
|
||||||
tmp4 = $E5 ; (1byte)
|
ptr4: .res 2
|
||||||
fntemp = $E6 ; (2bytes) pointer to file name
|
tmp1: .res 1
|
||||||
regbank = $E8 ; (6bytes) 6 byte register bank
|
tmp2: .res 1
|
||||||
zpspace = $EE - sp ; Zero page space allocated
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
fntemp: .res 2 ; Pointer to file name
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; EXE header
|
; EXE header
|
||||||
@ -86,12 +93,12 @@ L1: lda sp,y
|
|||||||
sta appmsav+1
|
sta appmsav+1
|
||||||
|
|
||||||
jsr getmemtop ; adjust for graphics mode to use
|
jsr getmemtop ; adjust for graphics mode to use
|
||||||
|
|
||||||
sta sp
|
sta sp
|
||||||
sta APPMHI
|
sta APPMHI
|
||||||
stx sp+1 ; Set argument stack ptr
|
stx sp+1 ; Set argument stack ptr
|
||||||
stx APPMHI+1
|
stx APPMHI+1
|
||||||
|
|
||||||
; set left margin to 0
|
; set left margin to 0
|
||||||
|
|
||||||
lda LMARGN
|
lda LMARGN
|
||||||
@ -104,7 +111,7 @@ L1: lda sp,y
|
|||||||
ldx SHFLOK
|
ldx SHFLOK
|
||||||
stx old_shflok
|
stx old_shflok
|
||||||
sta SHFLOK
|
sta SHFLOK
|
||||||
|
|
||||||
; Initialize the heap
|
; Initialize the heap
|
||||||
|
|
||||||
jsr __hinit
|
jsr __hinit
|
||||||
@ -160,7 +167,7 @@ _exit: jsr doatexit ; call exit functions
|
|||||||
sta SHFLOK
|
sta SHFLOK
|
||||||
|
|
||||||
; restore APPMHI
|
; restore APPMHI
|
||||||
|
|
||||||
lda appmsav
|
lda appmsav
|
||||||
sta APPMHI
|
sta APPMHI
|
||||||
lda appmsav+1
|
lda appmsav+1
|
||||||
@ -259,9 +266,9 @@ grmemusage:
|
|||||||
; 220 GRAPHICS 0
|
; 220 GRAPHICS 0
|
||||||
; 230 FOR I=0 TO 31:PRINT #1;I;":",G(I);" - ";G(0)-G(I):NEXT I
|
; 230 FOR I=0 TO 31:PRINT #1;I;":",G(I);" - ";G(0)-G(I):NEXT I
|
||||||
; 240 CLOSE #1
|
; 240 CLOSE #1
|
||||||
; 999 END
|
; 999 END
|
||||||
; 1000 VAL=PEEK(741)+256*PEEK(742)
|
; 1000 VAL=PEEK(741)+256*PEEK(742)
|
||||||
; 1010 RETURN
|
; 1010 RETURN
|
||||||
|
|
||||||
.bss
|
.bss
|
||||||
|
|
||||||
|
@ -19,19 +19,25 @@
|
|||||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||||
.exportzp regbank, zpspace
|
.exportzp regbank, zpspace
|
||||||
|
|
||||||
sp = $02 ; stack pointer
|
.zeropage
|
||||||
sreg = $04 ; secondary register/high 16 bit for longs
|
|
||||||
regsave = $06 ; slot to save/restore (E)AX into
|
zpstart = *
|
||||||
ptr1 = $0A ;
|
sp: .res 2 ; Stack pointer
|
||||||
ptr2 = $0C
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
ptr3 = $0E
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
ptr4 = $10
|
ptr1: .res 2
|
||||||
tmp1 = $12
|
ptr2: .res 2
|
||||||
tmp2 = $13
|
ptr3: .res 2
|
||||||
tmp3 = $14
|
ptr4: .res 2
|
||||||
tmp4 = $15
|
tmp1: .res 1
|
||||||
regbank = $16 ; 6 byte register bank
|
tmp2: .res 1
|
||||||
zpspace = $1A ; Zero page space allocated
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; BASIC header with a SYS call
|
; BASIC header with a SYS call
|
||||||
|
@ -19,19 +19,25 @@
|
|||||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||||
.exportzp regbank, zpspace
|
.exportzp regbank, zpspace
|
||||||
|
|
||||||
sp = $02 ; stack pointer
|
.zeropage
|
||||||
sreg = $04 ; secondary register/high 16 bit for longs
|
|
||||||
regsave = $06 ; slot to save/restore (E)AX into
|
zpstart = *
|
||||||
ptr1 = $0A ;
|
sp: .res 2 ; Stack pointer
|
||||||
ptr2 = $0C
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
ptr3 = $0E
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
ptr4 = $10
|
ptr1: .res 2
|
||||||
tmp1 = $12
|
ptr2: .res 2
|
||||||
tmp2 = $13
|
ptr3: .res 2
|
||||||
tmp3 = $14
|
ptr4: .res 2
|
||||||
tmp4 = $15
|
tmp1: .res 1
|
||||||
regbank = $16 ; 6 byte register bank
|
tmp2: .res 1
|
||||||
zpspace = $1A ; Zero page space allocated
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; BASIC header with a SYS call
|
; BASIC header with a SYS call
|
||||||
|
@ -25,19 +25,25 @@
|
|||||||
.exportzp crtc, sid, IPCcia, cia, acia, tpi1, tpi2
|
.exportzp crtc, sid, IPCcia, cia, acia, tpi1, tpi2
|
||||||
.exportzp ktab1, ktab2, ktab3, ktab4, time, RecvBuf, SendBuf
|
.exportzp ktab1, ktab2, ktab3, ktab4, time, RecvBuf, SendBuf
|
||||||
|
|
||||||
sp = $02 ; stack pointer
|
.zeropage
|
||||||
sreg = $04 ; secondary register/high 16 bit for longs
|
|
||||||
regsave = $06 ; slot to save/restore (E)AX into
|
zpstart = *
|
||||||
ptr1 = $0A ;
|
sp: .res 2 ; Stack pointer
|
||||||
ptr2 = $0C
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
ptr3 = $0E
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
ptr4 = $10
|
ptr1: .res 2
|
||||||
tmp1 = $12
|
ptr2: .res 2
|
||||||
tmp2 = $13
|
ptr3: .res 2
|
||||||
tmp3 = $14
|
ptr4: .res 2
|
||||||
tmp4 = $15
|
tmp1: .res 1
|
||||||
regbank = $16 ; 6 byte register bank
|
tmp2: .res 1
|
||||||
zpspace = $1A ; Zero page space allocated
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; BASIC header and a small BASIC program. Since it is not possible to start
|
; BASIC header and a small BASIC program. Since it is not possible to start
|
||||||
|
@ -19,19 +19,25 @@
|
|||||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||||
.exportzp regbank, zpspace
|
.exportzp regbank, zpspace
|
||||||
|
|
||||||
sp = $02 ; stack pointer
|
.zeropage
|
||||||
sreg = $04 ; secondary register/high 16 bit for longs
|
|
||||||
regsave = $06 ; slot to save/restore (E)AX into
|
zpstart = *
|
||||||
ptr1 = $0A ;
|
sp: .res 2 ; Stack pointer
|
||||||
ptr2 = $0C
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
ptr3 = $0E
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
ptr4 = $10
|
ptr1: .res 2
|
||||||
tmp1 = $12
|
ptr2: .res 2
|
||||||
tmp2 = $13
|
ptr3: .res 2
|
||||||
tmp3 = $14
|
ptr4: .res 2
|
||||||
tmp4 = $15
|
tmp1: .res 1
|
||||||
regbank = $16 ; 6 byte register bank
|
tmp2: .res 1
|
||||||
zpspace = $1A ; Zero page space allocated
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; BASIC header with a SYS call
|
; BASIC header with a SYS call
|
||||||
|
@ -19,19 +19,25 @@
|
|||||||
.exportzp tmp1, tmp2, tmp3, tmp4
|
.exportzp tmp1, tmp2, tmp3, tmp4
|
||||||
.exportzp regbank, zpspace
|
.exportzp regbank, zpspace
|
||||||
|
|
||||||
sp = $02 ; stack pointer
|
.zeropage
|
||||||
sreg = $04 ; secondary register/high 16 bit for longs
|
|
||||||
regsave = $06 ; slot to save/restore (E)AX into
|
zpstart = *
|
||||||
ptr1 = $0A ;
|
sp: .res 2 ; Stack pointer
|
||||||
ptr2 = $0C
|
sreg: .res 2 ; Secondary register/high 16 bit for longs
|
||||||
ptr3 = $0E
|
regsave: .res 2 ; slot to save/restore (E)AX into
|
||||||
ptr4 = $10
|
ptr1: .res 2
|
||||||
tmp1 = $12
|
ptr2: .res 2
|
||||||
tmp2 = $13
|
ptr3: .res 2
|
||||||
tmp3 = $14
|
ptr4: .res 2
|
||||||
tmp4 = $15
|
tmp1: .res 1
|
||||||
regbank = $16 ; 6 byte register bank
|
tmp2: .res 1
|
||||||
zpspace = $1A ; Zero page space allocated
|
tmp3: .res 1
|
||||||
|
tmp4: .res 1
|
||||||
|
regbank: .res 6 ; 6 byte register bank
|
||||||
|
|
||||||
|
zpspace = * - zpstart ; Zero page space allocated
|
||||||
|
|
||||||
|
.code
|
||||||
|
|
||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; BASIC header with a SYS call
|
; BASIC header with a SYS call
|
||||||
|
Loading…
Reference in New Issue
Block a user