]> git.sur5r.net Git - cc65/commitdiff
Move zp space out of crt0.s
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 26 May 2002 09:09:10 +0000 (09:09 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 26 May 2002 09:09:10 +0000 (09:09 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@1291 b7a2c559-68d2-44c3-8de9-860c34a00d81

libsrc/apple2/crt0.s
libsrc/atari/crt0.s
libsrc/c128/crt0.s
libsrc/c64/crt0.s
libsrc/dbg/dbgsupp.s
libsrc/pet/crt0.s
libsrc/plus4/crt0.s

index f7ef6f39eed5836c3f22486d734473cf8eacb6e7..d51c282a2968468dde5278020d7d9709f0d0f252 100644 (file)
@@ -9,43 +9,14 @@
        .import         zerobss, push0
        .import         _main
 
-       .include         "apple2.inc"
+        .include        "zeropage.inc"
+       .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
+; Actual code
 
 .code
 
-; ------------------------------------------------------------------------
-; Actual 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
index 3c5091f4a466d8ca257331d336eabf9baed31661..95e5cac0e82d5dfb09341e5b3527a1605e8dfb14 100644 (file)
        .import         _main,__filetab,getfd
        .import         __CODE_LOAD__, __BSS_LOAD__
 
+        .include        "zeropage.inc"
        .include        "atari.inc"
         .include        "_file.inc"
 
-; ------------------------------------------------------------------------
-; Define and export the ZP variables for the runtime
-
-       .exportzp       sp, sreg, regsave
-       .exportzp       ptr1, ptr2, ptr3, ptr4
-       .exportzp       tmp1, tmp2, tmp3, tmp4
-       .exportzp       fntemp, regbank, zpspace
-
-
-.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
-fntemp:                .res    2       ; Pointer to file name
-regbank:       .res    6       ; 6 byte register bank
-
-zpspace        = * - zpstart           ; Zero page space allocated
-
-.code
-
 ; ------------------------------------------------------------------------
 ; EXE header
 
@@ -58,12 +29,12 @@ zpspace     = * - zpstart           ; Zero page space allocated
        .word   $FFFF
        .word   __CODE_LOAD__
        .word   __BSS_LOAD__ - 1
-       .code
-       .reloc
 
 ; ------------------------------------------------------------------------
 ; Actual code
 
+.code
+
        rts     ; fix for SpartaDOS / OS/A+
                ; they first call the entry point from AUTOSTRT and
                ; then the load addess (this rts here).
index 4db5e618c288b4bcd74b4e355cf2f47b3a19201e..b58550e4509d49947ef84a81622b150074e317ce 100644 (file)
@@ -12,6 +12,7 @@
        .import         __IRQFUNC_TABLE__, __IRQFUNC_COUNT__
        .import         __RAM_START__, __RAM_SIZE__
 
+        .include        "zeropage.inc"
        .include        "c128.inc"
        .include        "../cbm/cbm.inc"
 
 IRQInd         = $2FD  ; JMP $0000 - used as indirect IRQ vector
 
 ; ------------------------------------------------------------------------
-; 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
-
-.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
-
 ; Place the startup code in a special segment to cope with the quirks of
 ; c128 banking. Do also create an empty segment named "NMI" to avoid
 ; warnings if the rs232 routines are not used.
index 397e51bcfb76b36e20b3b624df473f38ade997df..7702973723536afbec8e651bdfb074c45cf3da36 100644 (file)
        .import         _main
        .import         __RAM_START__, __RAM_SIZE__     ; Linker generated
 
+        .include        "zeropage.inc"
        .include        "c64.inc"
        .include        "../cbm/cbm.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
-
-.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
 
 ; ------------------------------------------------------------------------
index 64ec3c86140b9be31858c910c4e62db3f26c052b..5ab0f5863fa2b967e2593835fc08a7c6aa426482 100644 (file)
@@ -9,7 +9,10 @@
        .import         popax, return0, _DbgEntry, _set_brk, _end_brk
        .import         _DbgBreaks
        .import         _brk_pc
-       .importzp       sp, sreg, ptr1, tmp1, zpspace
+        .import         __ZP_START__            ; Linker generated
+
+        .include        "zeropage.inc"
+
 
 ; C callable function, will install the debugger
 
@@ -60,7 +63,7 @@ DbgStack:
 CTemp:
 _DbgCS:        .res    2               ; sp
 _DbgHI:        .res    2               ; sreg
-       .res    22              ; Other stuff
+       .res    (zpspace-4)     ; Other stuff
 _DbgSP:        .res    1
 retsav:        .res    2               ; Save buffer for return address
 
@@ -71,7 +74,7 @@ retsav:       .res    2               ; Save buffer for return address
 DbgSwapZP:
        ldy     #zpspace-1
 Swap1:         ldx     CTemp,y
-               lda     sp,y            ; ######
+               lda     <__ZP_START__,y
                sta     CTemp,y
                txa
                sta     sp,y
index 5d4ac73329e2aafc86ac84a4719b859ddabbb9c0..fb1babc388dea5f49ce63587f8ac819baaaebb8a 100644 (file)
@@ -9,40 +9,15 @@
                .import         zerobss, push0
        .import         _main
 
+        .include        "zeropage.inc"
        .include        "pet.inc"
        .include        "../cbm/cbm.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
-
-.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
+; BASIC header with a SYS call
 
 .code
 
-; ------------------------------------------------------------------------
-; BASIC header with a SYS call
-
        .org    $3FF
         .word   Head            ; Load address
 Head:   .word   @Next
index 84ffe3aae45bd1897663d4dd700c01a63b3f187b..701b172587627b4135a2393af06f6e2a7608b2ea 100644 (file)
@@ -8,40 +8,15 @@
        .import         initlib, donelib
        .import         push0, _main, zerobss
 
+        .include        "zeropage.inc"
        .include        "plus4.inc"
        .include        "../cbm/cbm.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
-
-.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
+; BASIC header with a SYS call
 
 .code
 
-; ------------------------------------------------------------------------
-; BASIC header with a SYS call
-
        .org    $0FFF
         .word   Head            ; Load address
 Head:   .word   @Next