segments and aren't written to the output file. Before that, the "not going to output file" was implicit because of the bss type of the segments contained. The new attribute makes this explicit. git-svn-id: svn://svn.cc65.org/cc65/trunk@4853 b7a2c559-68d2-44c3-8de9-860c34a00d81
44 lines
1.7 KiB
INI
44 lines
1.7 KiB
INI
# Configuration allowing for 4KB of HIGHCODE optimized for programs
|
|
# loaded with LOADER.SYSTEM and calling rebootafterexit()
|
|
|
|
FEATURES {
|
|
STARTADDRESS: default = $0800;
|
|
}
|
|
SYMBOLS {
|
|
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
|
}
|
|
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__;
|
|
}
|