]> git.sur5r.net Git - cc65/blob - src/ld65/cfg/supervision.cfg
Interruptor support for all systems.
[cc65] / src / ld65 / cfg / supervision.cfg
1 # if you want to combine the 2 16 kbyte roms
2 # make sure the halves are mirrored in the 64kbyte cartridge image
3 # or reset from code >0xc000 and switch bank to the 3rd bank
4
5 MEMORY {
6     ZP:       start = $0000, size = $0100;
7     CPUSTACK: start = $0100, size = $0100;
8     RAM:      start = $0200, size = $1E00, define = yes;
9     VRAM:     start = $4000, size = $2000;
10     ROM:      start = $8000, size = $8000, fill = yes, fillval = $ff, file = %O, define = yes;
11 }
12
13 SEGMENTS {
14     LOWCODE:  load = ROM,            type = ro,                optional = yes;
15     INIT:     load = ROM,            type = ro,  define = yes, optional = yes;
16     CODE:     load = ROM,            type = ro,  define = yes;
17     RODATA:   load = ROM,            type = ro,  define = yes;
18     DATA:     load = ROM, run = RAM, type = rw,  define = yes;
19     FFF0:     load = ROM,            type = ro,  offset = $7FF0;
20     VECTOR:   load = ROM,            type = ro,  offset = $7FFA;
21     BSS:      load = RAM,            type = bss, define = yes;
22     HEAP:     load = RAM,            type = bss, optional = yes; # must sit just below stack
23     ZEROPAGE: load = ZP,             type = zp,  define = yes;
24 }
25
26 FEATURES {
27     CONDES: segment = INIT,
28             type = constructor,
29             label = __CONSTRUCTOR_TABLE__,
30             count = __CONSTRUCTOR_COUNT__;
31     CONDES: segment = RODATA,
32             type = destructor,
33             label = __DESTRUCTOR_TABLE__,
34             count = __DESTRUCTOR_COUNT__;
35     CONDES: type = interruptor,
36             segment = RODATA,
37             label = __INTERRUPTOR_TABLE__,
38             count = __INTERRUPTOR_COUNT__;
39 }