]> git.sur5r.net Git - cc65/blob - src/ld65/cfg/atari.cfg
introduce STARTUP segment to Atari platform
[cc65] / src / ld65 / cfg / atari.cfg
1 FEATURES {
2     STARTADDRESS: default = $2E00;
3 }
4 SYMBOLS {
5     __STACKSIZE__       = $800;         # 2K stack
6     __RESERVED_MEMORY__: value = $0, weak = yes;
7 }
8 MEMORY {
9     ZP:      start = $0082, size = $007E, type = rw, define = yes;
10     HEADER:  start = $0000, size = $0006, file = %O;
11     RAM:     start = %S,    size = $BC20 - __STACKSIZE__ - %S, file = %O;
12     TRAILER: start = $0000, size = $0006, file = %O;
13 }
14 SEGMENTS {
15     EXEHDR:   load = HEADER,  type = ro;
16     STARTUP:  load = RAM,     type = ro,  define = yes;
17     LOWCODE:  load = RAM,     type = ro,  define = yes, optional = yes;
18     INIT:     load = RAM,     type = ro,                optional = yes;
19     CODE:     load = RAM,     type = ro,  define = yes;
20     RODATA:   load = RAM,     type = ro;
21     DATA:     load = RAM,     type = rw;
22     ZPSAVE:   load = RAM,     type = bss, define = yes;
23     BSS:      load = RAM,     type = bss, define = yes;
24     HEAP:     load = RAM,     type = bss,               optional = yes; # must sit just below stack
25     ZEROPAGE: load = ZP,      type = zp;
26     EXTZP:    load = ZP,      type = zp,                optional = yes;
27     AUTOSTRT: load = TRAILER, type = ro;
28 }
29 FEATURES {
30     CONDES: segment = INIT,
31             type = constructor,
32             label = __CONSTRUCTOR_TABLE__,
33             count = __CONSTRUCTOR_COUNT__;
34     CONDES: segment = RODATA,
35             type = destructor,
36             label = __DESTRUCTOR_TABLE__,
37             count = __DESTRUCTOR_COUNT__;
38     CONDES: type = interruptor,
39             segment = RODATA,
40             label = __INTERRUPTOR_TABLE__,
41             count = __INTERRUPTOR_COUNT__;
42 }