1
0
mirror of https://github.com/cc65/cc65.git synced 2025-02-06 12:31:12 +00:00

move ZPSAVE into area already saved by 2nd load chunk

This commit is contained in:
Christian Groessler 2013-05-31 01:35:19 +02:00
parent 79d150b626
commit 164fb56580

View File

@ -10,58 +10,58 @@ SYMBOLS {
} }
MEMORY { MEMORY {
ZP: file = "", define = yes, start = $0082, size = $007E; ZP: file = "", define = yes, start = $0082, size = $007E;
# just $FFFF # just $FFFF
HEADER: file = %O, start = $0000, size = $0002; HEADER: file = %O, start = $0000, size = $0002;
# "system check" load chunk # "system check" load chunk
SYSCHKHDR: file = %O, start = $0000, size = $0004; SYSCHKHDR: file = %O, start = $0000, size = $0004;
SYSCHK: file = %O, start = $2E00, size = $0E00; SYSCHK: file = %O, start = $2E00, size = $0E00;
# "shadow RAM preparation" load chunk # "shadow RAM preparation" load chunk
SRPREPHDR: file = %O, start = $0000, size = $0004; SRPREPHDR: file = %O, start = $0000, size = $0004;
SRPREP: file = %O, start = %S, size = $7C20 - %S - $04FF; # $04FF: space for temp. chargen buffer, page aligned SRPREP: file = %O, start = %S, size = $7C20 - %S - $04FF; # $04FF: space for temp. chargen buffer, page aligned
SRPREPTRL: file = %O, start = $0000, size = $0006; SRPREPTRL: file = %O, start = $0000, size = $0006;
# "main program" load chunk # "main program" load chunk
MAINHDR: file = %O, start = $0000, size = $0004; MAINHDR: file = %O, start = $0000, size = $0004;
RAM: file = %O, start = %S + __SAVEAREA_SIZE__, size = $D000 - __STACKSIZE__ - %S - __SAVEAREA_SIZE__; RAM: file = %O, define = yes, start = %S + __SAVEAREA_SIZE__ + __ZPSAVE_SIZE__, size = $D000 - __STACKSIZE__ - %S - __SAVEAREA_SIZE__ - __ZPSAVE_SIZE__;
# address of relocated character generator # address of relocated character generator
CHARGEN: file = "", define = yes, start = $D800, size = $0400; CHARGEN: file = "", define = yes, start = $D800, size = $0400;
# memory beneath the ROM # memory beneath the ROM
SHADOW_RAM: file = "", define = yes, start = $DC00, size = $FFF0 - $DC00; RAM_BELOW_ROM: file = "", start = $DC00, size = $FFF0 - $DC00;
# defines entry point into program # defines entry point into program
TRAILER: file = %O, start = $0000, size = $0006; TRAILER: file = %O, start = $0000, size = $0006;
} }
SEGMENTS { SEGMENTS {
EXEHDR: load = HEADER, type = ro; EXEHDR: load = HEADER, type = ro;
SYSCHKHDR: load = SYSCHKHDR, type = ro, optional = yes; SYSCHKHDR: load = SYSCHKHDR, type = ro, optional = yes;
SYSCHK: load = SYSCHK, type = rw, define = yes, optional = yes; SYSCHK: load = SYSCHK, type = rw, define = yes, optional = yes;
SRPREPHDR: load = SRPREPHDR, type = ro; SRPREPHDR: load = SRPREPHDR, type = ro;
SAVEAREA: load = SRPREP, type = bss, define = yes; # shared btw. SRPREP and RAM SAVEAREA: load = SRPREP, type = bss, define = yes; # shared btw. SRPREP and RAM
SRPREP: load = SRPREP, type = rw, define = yes; ZPSAVE: load = SRPREP, type = bss, define = yes;
SHADOW_RAM: load = SRPREP, run = SHADOW_RAM, type = rw, define = yes, optional = yes; SRPREP: load = SRPREP, type = rw, define = yes;
SRPREPTRL: load = SRPREPTRL, type = ro; SHADOW_RAM: load = SRPREP, run = RAM_BELOW_ROM, type = rw, define = yes, optional = yes;
SRPREPTRL: load = SRPREPTRL, type = ro;
MAINHDR: load = MAINHDR, type = ro; MAINHDR: load = MAINHDR, type = ro;
STARTUP: load = RAM, type = ro, define = yes; STARTUP: load = RAM, type = ro, define = yes;
LOWCODE: load = RAM, type = ro, define = yes, optional = yes; LOWCODE: load = RAM, type = ro, define = yes, optional = yes;
INIT: load = RAM, type = ro, optional = yes; INIT: load = RAM, type = ro, optional = yes;
CODE: load = RAM, type = ro, define = yes; CODE: load = RAM, type = ro, define = yes;
RODATA: load = RAM, type = ro; RODATA: load = RAM, type = ro;
DATA: load = RAM, type = rw; DATA: load = RAM, type = rw;
ZPSAVE: load = RAM, type = bss, define = yes; BSS: load = RAM, type = bss, define = yes;
BSS: load = RAM, type = bss, define = yes; ZEROPAGE: load = ZP, type = zp;
ZEROPAGE: load = ZP, type = zp; EXTZP: load = ZP, type = zp, optional = yes;
EXTZP: load = ZP, type = zp, optional = yes; AUTOSTRT: load = TRAILER, type = ro;
AUTOSTRT: load = TRAILER, type = ro;
} }
FEATURES { FEATURES {
CONDES: type = constructor, CONDES: type = constructor,