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;