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
This commit is contained in:
ol.sc
2012-06-16 20:36:34 +00:00
parent ec1f955a6e
commit c9555b328a
10 changed files with 42 additions and 216 deletions

View File

@@ -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;