From c9555b328a5ea37c947a0ca4a7fcaeba65bb8384 Mon Sep 17 00:00:00 2001 From: "ol.sc" Date: Sat, 16 Jun 2012 20:36:34 +0000 Subject: [PATCH] The Apple2 linker configs basically cover two dimension of settings: 1. BIN vs. SYS vs. Loader 2. With Quit code vs. w/o Quit code vs. full LC Up two now these two dimensions were sort of folded into a number of useful combinations. However with the new asm config and the upcominger overlay config we end up with just to many configs. Therefore now the second dimension isn't expressed anymore as distinct config. Rather the user has to override __LCADDR__ and __LCSIZE__ in order use the Quite code area or the full LC. git-svn-id: svn://svn.cc65.org/cc65/trunk@5722 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/ld65/cfg/apple2-dos33.cfg | 46 ------------------------------ src/ld65/cfg/apple2-loader.cfg | 12 ++++---- src/ld65/cfg/apple2-reboot.cfg | 47 ------------------------------- src/ld65/cfg/apple2-system.cfg | 12 ++++---- src/ld65/cfg/apple2.cfg | 12 ++++---- src/ld65/cfg/apple2enh-dos33.cfg | 46 ------------------------------ src/ld65/cfg/apple2enh-loader.cfg | 12 ++++---- src/ld65/cfg/apple2enh-reboot.cfg | 47 ------------------------------- src/ld65/cfg/apple2enh-system.cfg | 12 ++++---- src/ld65/cfg/apple2enh.cfg | 12 ++++---- 10 files changed, 42 insertions(+), 216 deletions(-) delete mode 100644 src/ld65/cfg/apple2-dos33.cfg delete mode 100644 src/ld65/cfg/apple2-reboot.cfg delete mode 100644 src/ld65/cfg/apple2enh-dos33.cfg delete mode 100644 src/ld65/cfg/apple2enh-reboot.cfg diff --git a/src/ld65/cfg/apple2-dos33.cfg b/src/ld65/cfg/apple2-dos33.cfg deleted file mode 100644 index 644b0cc41..000000000 --- a/src/ld65/cfg/apple2-dos33.cfg +++ /dev/null @@ -1,46 +0,0 @@ -# Configuration optimized for DOS 3.3 by allowing for 12KB of HIGHCODE - -FEATURES { - STARTADDRESS: default = $0803; -} -SYMBOLS { - __EXEHDR__: type = import; - __STACKSIZE__: type = weak, value = $0800; # 2k stack - __LOADADDR__: type = weak, value = __RAM_START__; - __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + - __MOVE_LAST__ - __MOVE_START__; -} -MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D000, size = $3000; -} -SEGMENTS { - ZEROPAGE: load = ZP, type = zp; - EXEHDR: load = HEADER, type = ro; - STARTUP: load = RAM, type = ro; - LOWCODE: load = RAM, type = ro; - 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; -} -FEATURES { - CONDES: segment = INIT, - type = constructor, - label = __CONSTRUCTOR_TABLE__, - count = __CONSTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = destructor, - label = __DESTRUCTOR_TABLE__, - count = __DESTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = interruptor, - label = __INTERRUPTOR_TABLE__, - count = __INTERRUPTOR_COUNT__; -} diff --git a/src/ld65/cfg/apple2-loader.cfg b/src/ld65/cfg/apple2-loader.cfg index 8cf2b43f5..4547f59d4 100644 --- a/src/ld65/cfg/apple2-loader.cfg +++ b/src/ld65/cfg/apple2-loader.cfg @@ -5,17 +5,19 @@ FEATURES { } SYMBOLS { __EXEHDR__: type = import; + __LCADDR__: type = weak, value = $D400; # Behind quit code + __LCSIZE__: type = weak, value = $0C00; # Rest of bank two __STACKSIZE__: type = weak, value = $0800; # 2k stack __LOADADDR__: type = weak, value = __RAM_START__; __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + __MOVE_LAST__ - __MOVE_START__; } MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D400, size = $0C00; + ZP: file = "", define = yes, start = $0080, size = $001A; + HEADER: file = %O, start = $0000, size = $0004; + RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S; + MOVE: file = %O, define = yes, start = $0000, size = $FFFF; + LC: define = yes, start = __LCADDR__, size = __LCSIZE__; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; diff --git a/src/ld65/cfg/apple2-reboot.cfg b/src/ld65/cfg/apple2-reboot.cfg deleted file mode 100644 index e10b0debb..000000000 --- a/src/ld65/cfg/apple2-reboot.cfg +++ /dev/null @@ -1,47 +0,0 @@ -# Configuration allowing for 4KB of HIGHCODE optimized for programs -# loaded with LOADER.SYSTEM and calling rebootafterexit() - -FEATURES { - STARTADDRESS: default = $0800; -} -SYMBOLS { - __EXEHDR__: type = import; - __STACKSIZE__: type = weak, value = $0800; # 2k stack - __LOADADDR__: type = weak, value = __RAM_START__; - __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + - __MOVE_LAST__ - __MOVE_START__; -} -MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D000, size = $1000; -} -SEGMENTS { - ZEROPAGE: load = ZP, type = zp; - EXEHDR: load = HEADER, type = ro; - STARTUP: load = RAM, type = ro; - LOWCODE: load = RAM, type = ro; - 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; -} -FEATURES { - CONDES: segment = INIT, - type = constructor, - label = __CONSTRUCTOR_TABLE__, - count = __CONSTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = destructor, - label = __DESTRUCTOR_TABLE__, - count = __DESTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = interruptor, - label = __INTERRUPTOR_TABLE__, - count = __INTERRUPTOR_COUNT__; -} diff --git a/src/ld65/cfg/apple2-system.cfg b/src/ld65/cfg/apple2-system.cfg index 51397f096..35a7cfa21 100644 --- a/src/ld65/cfg/apple2-system.cfg +++ b/src/ld65/cfg/apple2-system.cfg @@ -2,17 +2,19 @@ SYMBOLS { __EXEHDR__: type = import; + __LCADDR__: type = weak, value = $D400; # Behind quit code + __LCSIZE__: type = weak, value = $0C00; # Rest of bank two __STACKSIZE__: type = weak, value = $0800; # 2k stack __LOADADDR__: type = weak, value = __RAM_START__; __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + __MOVE_LAST__ - __MOVE_START__; } MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = "", start = $0000, size = $0004; - RAM: file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D400, size = $0C00; + ZP: file = "", define = yes, start = $0080, size = $001A; + HEADER: file = "", start = $0000, size = $0004; + RAM: file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__; + MOVE: file = %O, define = yes, start = $0000, size = $FFFF; + LC: define = yes, start = __LCADDR__, size = __LCSIZE__; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; diff --git a/src/ld65/cfg/apple2.cfg b/src/ld65/cfg/apple2.cfg index 16f6428ce..cef8c3b60 100644 --- a/src/ld65/cfg/apple2.cfg +++ b/src/ld65/cfg/apple2.cfg @@ -5,17 +5,19 @@ FEATURES { } SYMBOLS { __EXEHDR__: type = import; + __LCADDR__: type = weak, value = $D400; # Behind quit code + __LCSIZE__: type = weak, value = $0C00; # Rest of bank two __STACKSIZE__: type = weak, value = $0800; # 2k stack __LOADADDR__: type = weak, value = __RAM_START__; __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + __MOVE_LAST__ - __MOVE_START__; } MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D400, size = $0C00; + ZP: file = "", define = yes, start = $0080, size = $001A; + HEADER: file = %O, start = $0000, size = $0004; + RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S; + MOVE: file = %O, define = yes, start = $0000, size = $FFFF; + LC: define = yes, start = __LCADDR__, size = __LCSIZE__; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; diff --git a/src/ld65/cfg/apple2enh-dos33.cfg b/src/ld65/cfg/apple2enh-dos33.cfg deleted file mode 100644 index 644b0cc41..000000000 --- a/src/ld65/cfg/apple2enh-dos33.cfg +++ /dev/null @@ -1,46 +0,0 @@ -# Configuration optimized for DOS 3.3 by allowing for 12KB of HIGHCODE - -FEATURES { - STARTADDRESS: default = $0803; -} -SYMBOLS { - __EXEHDR__: type = import; - __STACKSIZE__: type = weak, value = $0800; # 2k stack - __LOADADDR__: type = weak, value = __RAM_START__; - __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + - __MOVE_LAST__ - __MOVE_START__; -} -MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D000, size = $3000; -} -SEGMENTS { - ZEROPAGE: load = ZP, type = zp; - EXEHDR: load = HEADER, type = ro; - STARTUP: load = RAM, type = ro; - LOWCODE: load = RAM, type = ro; - 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; -} -FEATURES { - CONDES: segment = INIT, - type = constructor, - label = __CONSTRUCTOR_TABLE__, - count = __CONSTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = destructor, - label = __DESTRUCTOR_TABLE__, - count = __DESTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = interruptor, - label = __INTERRUPTOR_TABLE__, - count = __INTERRUPTOR_COUNT__; -} diff --git a/src/ld65/cfg/apple2enh-loader.cfg b/src/ld65/cfg/apple2enh-loader.cfg index 8cf2b43f5..4547f59d4 100644 --- a/src/ld65/cfg/apple2enh-loader.cfg +++ b/src/ld65/cfg/apple2enh-loader.cfg @@ -5,17 +5,19 @@ FEATURES { } SYMBOLS { __EXEHDR__: type = import; + __LCADDR__: type = weak, value = $D400; # Behind quit code + __LCSIZE__: type = weak, value = $0C00; # Rest of bank two __STACKSIZE__: type = weak, value = $0800; # 2k stack __LOADADDR__: type = weak, value = __RAM_START__; __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + __MOVE_LAST__ - __MOVE_START__; } MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D400, size = $0C00; + ZP: file = "", define = yes, start = $0080, size = $001A; + HEADER: file = %O, start = $0000, size = $0004; + RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S; + MOVE: file = %O, define = yes, start = $0000, size = $FFFF; + LC: define = yes, start = __LCADDR__, size = __LCSIZE__; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; diff --git a/src/ld65/cfg/apple2enh-reboot.cfg b/src/ld65/cfg/apple2enh-reboot.cfg deleted file mode 100644 index e10b0debb..000000000 --- a/src/ld65/cfg/apple2enh-reboot.cfg +++ /dev/null @@ -1,47 +0,0 @@ -# Configuration allowing for 4KB of HIGHCODE optimized for programs -# loaded with LOADER.SYSTEM and calling rebootafterexit() - -FEATURES { - STARTADDRESS: default = $0800; -} -SYMBOLS { - __EXEHDR__: type = import; - __STACKSIZE__: type = weak, value = $0800; # 2k stack - __LOADADDR__: type = weak, value = __RAM_START__; - __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + - __MOVE_LAST__ - __MOVE_START__; -} -MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $BF00 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D000, size = $1000; -} -SEGMENTS { - ZEROPAGE: load = ZP, type = zp; - EXEHDR: load = HEADER, type = ro; - STARTUP: load = RAM, type = ro; - LOWCODE: load = RAM, type = ro; - 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; -} -FEATURES { - CONDES: segment = INIT, - type = constructor, - label = __CONSTRUCTOR_TABLE__, - count = __CONSTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = destructor, - label = __DESTRUCTOR_TABLE__, - count = __DESTRUCTOR_COUNT__; - CONDES: segment = RODATA, - type = interruptor, - label = __INTERRUPTOR_TABLE__, - count = __INTERRUPTOR_COUNT__; -} diff --git a/src/ld65/cfg/apple2enh-system.cfg b/src/ld65/cfg/apple2enh-system.cfg index 51397f096..35a7cfa21 100644 --- a/src/ld65/cfg/apple2enh-system.cfg +++ b/src/ld65/cfg/apple2enh-system.cfg @@ -2,17 +2,19 @@ SYMBOLS { __EXEHDR__: type = import; + __LCADDR__: type = weak, value = $D400; # Behind quit code + __LCSIZE__: type = weak, value = $0C00; # Rest of bank two __STACKSIZE__: type = weak, value = $0800; # 2k stack __LOADADDR__: type = weak, value = __RAM_START__; __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + __MOVE_LAST__ - __MOVE_START__; } MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = "", start = $0000, size = $0004; - RAM: file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D400, size = $0C00; + ZP: file = "", define = yes, start = $0080, size = $001A; + HEADER: file = "", start = $0000, size = $0004; + RAM: file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__; + MOVE: file = %O, define = yes, start = $0000, size = $FFFF; + LC: define = yes, start = __LCADDR__, size = __LCSIZE__; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; diff --git a/src/ld65/cfg/apple2enh.cfg b/src/ld65/cfg/apple2enh.cfg index 16f6428ce..cef8c3b60 100644 --- a/src/ld65/cfg/apple2enh.cfg +++ b/src/ld65/cfg/apple2enh.cfg @@ -5,17 +5,19 @@ FEATURES { } SYMBOLS { __EXEHDR__: type = import; + __LCADDR__: type = weak, value = $D400; # Behind quit code + __LCSIZE__: type = weak, value = $0C00; # Rest of bank two __STACKSIZE__: type = weak, value = $0800; # 2k stack __LOADADDR__: type = weak, value = __RAM_START__; __LOADSIZE__: type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ + __MOVE_LAST__ - __MOVE_START__; } MEMORY { - ZP: file = "", define = yes, start = $0080, size = $001A; - HEADER: file = %O, start = $0000, size = $0004; - RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S; - MOVE: file = %O, define = yes, start = $0000, size = $FFFF; - LC: define = yes, start = $D400, size = $0C00; + ZP: file = "", define = yes, start = $0080, size = $001A; + HEADER: file = %O, start = $0000, size = $0004; + RAM: file = %O, define = yes, start = %S, size = $9600 - __STACKSIZE__ - %S; + MOVE: file = %O, define = yes, start = $0000, size = $FFFF; + LC: define = yes, start = __LCADDR__, size = __LCSIZE__; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; -- 2.39.5