Move zp space out of crt0.s

git-svn-id: svn://svn.cc65.org/cc65/trunk@1291 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz
2002-05-26 09:09:10 +00:00
parent 3aadd7f62b
commit 33c1e82bda
7 changed files with 20 additions and 174 deletions

View File

@@ -9,43 +9,14 @@
.import zerobss, push0
.import _main
.include "apple2.inc"
; ------------------------------------------------------------------------
; Define and export the ZP variables for the C64 runtime
.exportzp sp, sreg, regsave
.exportzp ptr1, ptr2, ptr3, ptr4
.exportzp tmp1, tmp2, tmp3, tmp4
.exportzp regbank, zpspace
; These zero page entries overlap with the sweet-16 registers in
; the standard apple2 linker config. They must be changed if sweet-16
; is to be supported
.zeropage
zpstart = *
sp: .res 2 ; Stack pointer
sreg: .res 2 ; Secondary register/high 16 bit for longs
regsave: .res 2 ; slot to save/restore (E)AX into
ptr1: .res 2
ptr2: .res 2
ptr3: .res 2
ptr4: .res 2
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
.include "zeropage.inc"
.include "apple2.inc"
; ------------------------------------------------------------------------
; Actual code
.code
ldx #zpspace-1
L1: lda sp,x
sta zpsave,x ; Save the zero page locations we need
@@ -90,7 +61,7 @@ L1: lda sp,x
; Call module destructors. This is also the _exit entry.
_exit: jsr donelib
; Restore system stuff
lda #$ff ; Reset text mode