From 258a8e7d4c1f43dbc2918af5a15dda24113dc626 Mon Sep 17 00:00:00 2001 From: cuz Date: Tue, 15 Jul 2008 18:34:20 +0000 Subject: [PATCH] Move zpsave into its own segment to decrease the executable size. git-svn-id: svn://svn.cc65.org/cc65/trunk@3852 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- libsrc/apple2/crt0.s | 30 +++++++++++++++++------------- src/ld65/cfg/apple2.cfg | 1 + 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/libsrc/apple2/crt0.s b/libsrc/apple2/crt0.s index bc3771832..ec61770bc 100644 --- a/libsrc/apple2/crt0.s +++ b/libsrc/apple2/crt0.s @@ -11,7 +11,7 @@ .import __RAM_START__ , __RAM_LAST__ ; Linker generated .import __MOVE_START__, __MOVE_LAST__ ; Linker generated .import __LC_START__ , __LC_LAST__ ; Linker generated - .import __BSS_RUN__ , __INIT_SIZE__ ; Linker generated + .import __ZPSAVE_RUN__, __INIT_SIZE__ ; Linker generated .import __INTERRUPTOR_COUNT__ ; Linker generated .include "zeropage.inc" @@ -24,8 +24,8 @@ .segment "EXEHDR" .addr __RAM_START__ ; Start address - .word __BSS_RUN__ - __RAM_START__ + \ - __MOVE_LAST__ - __MOVE_START__ ; Size + .word __ZPSAVE_RUN__ - __RAM_START__ + \ + __MOVE_LAST__ - __MOVE_START__ ; Size ; ------------------------------------------------------------------------ @@ -42,14 +42,14 @@ bit $C081 ; Set source start address - lda #<(__BSS_RUN__ + __INIT_SIZE__) - ldy #>(__BSS_RUN__ + __INIT_SIZE__) + lda #<(__ZPSAVE_RUN__ + __INIT_SIZE__) + ldy #>(__ZPSAVE_RUN__ + __INIT_SIZE__) sta $9B sty $9C ; Set source last address - lda #<(__BSS_RUN__ + __INIT_SIZE__ + __LC_LAST__ - __LC_START__) - ldy #>(__BSS_RUN__ + __INIT_SIZE__ + __LC_LAST__ - __LC_START__) + lda #<(__ZPSAVE_RUN__ + __INIT_SIZE__ + __LC_LAST__ - __LC_START__) + ldy #>(__ZPSAVE_RUN__ + __INIT_SIZE__ + __LC_LAST__ - __LC_START__) sta $96 sty $97 @@ -64,14 +64,14 @@ jsr $D396 ; BLTU + 3 ; Set source start address - lda #<__BSS_RUN__ - ldy #>__BSS_RUN__ + lda #<__ZPSAVE_RUN__ + ldy #>__ZPSAVE_RUN__ sta $9B sty $9C ; Set source last address - lda #<(__BSS_RUN__ + __INIT_SIZE__) - ldy #>(__BSS_RUN__ + __INIT_SIZE__) + lda #<(__ZPSAVE_RUN__ + __INIT_SIZE__) + ldy #>(__ZPSAVE_RUN__ + __INIT_SIZE__) sta $96 sty $97 @@ -253,12 +253,16 @@ reset: stx SOFTEV .data -zpsave: .res zpspace - params: .byte $02 ; Parameter count intnum: .byte $00 ; Interrupt number .addr intrpt ; Interrupt handler +; ------------------------------------------------------------------------ + + .segment "ZPSAVE" + +zpsave: .res zpspace + ; ------------------------------------------------------------------------ .bss diff --git a/src/ld65/cfg/apple2.cfg b/src/ld65/cfg/apple2.cfg index 9ef6f3271..c4168cb95 100644 --- a/src/ld65/cfg/apple2.cfg +++ b/src/ld65/cfg/apple2.cfg @@ -16,6 +16,7 @@ SEGMENTS { CODE: load = RAM, type = ro; RODATA: load = RAM, type = ro; DATA: load = RAM, type = rw; + ZPSAVE: load = RAM, type = bss, define = yes; BSS: load = RAM, type = bss, define = yes; INIT: load = MOVE, run = RAM, type = ro, define = yes; HIGHCODE: load = MOVE, run = LC, type = ro, optional = yes; -- 2.39.5