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
49 lines
2.0 KiB
INI
49 lines
2.0 KiB
INI
# Default configuration built into ld65 (allowing for 3KB of HIGHCODE)
|
|
|
|
FEATURES {
|
|
STARTADDRESS: default = $0803;
|
|
}
|
|
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 = __LCADDR__, size = __LCSIZE__;
|
|
}
|
|
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__;
|
|
}
|