From: ol.sc Date: Sat, 16 Jun 2012 20:36:34 +0000 (+0000) Subject: The Apple2 linker configs basically cover two dimension of settings: X-Git-Tag: V2.14~346 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=c9555b328a5ea37c947a0ca4a7fcaeba65bb8384;p=cc65 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 --- 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;