]> git.sur5r.net Git - cc65/blob - src/ld65/cfg/apple2enh-system.cfg
Added classification macros for file types from struct dirent.
[cc65] / src / ld65 / cfg / apple2enh-system.cfg
1 # Configuration for ProDOS 8 system programs (without the header)
2
3 SYMBOLS {
4     __LCADDR__:    type = weak, value = $D400; # Behind quit code
5     __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
6     __STACKSIZE__: type = weak, value = $0800; # 2k stack
7     __LOADADDR__:  type = weak, value = __STARTUP_RUN__;
8     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __STARTUP_RUN__ +
9                                         __MOVE_LAST__  - __MOVE_START__;
10 }
11 MEMORY {
12     ZP:              define = yes, start = $0080,      size = $001A;
13     RAM:  file = %O,               start = $2000,      size = $9F00 - __STACKSIZE__;
14     MOVE: file = %O, define = yes, start = $0000,      size = $FFFF;
15     LC:              define = yes, start = __LCADDR__, size = __LCSIZE__;
16 }
17 SEGMENTS {
18     ZEROPAGE: load = ZP,              type = zp;
19     STARTUP:  load = RAM,             type = ro,  define   = yes;
20     LOWCODE:  load = RAM,             type = ro;
21     CODE:     load = RAM,             type = ro;
22     RODATA:   load = RAM,             type = ro;
23     DATA:     load = RAM,             type = rw;
24     ZPSAVE:   load = RAM,             type = bss, define   = yes;
25     BSS:      load = RAM,             type = bss, define   = yes;
26     INIT:     load = MOVE, run = RAM, type = ro,  define   = yes;
27     LC:       load = MOVE, run = LC,  type = ro,  optional = yes;
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: segment = RODATA,
39             type    = interruptor,
40             label   = __INTERRUPTOR_TABLE__,
41             count   = __INTERRUPTOR_COUNT__;
42 }