]> git.sur5r.net Git - cc65/blob - cfg/atari-cart.cfg
Merge pull request #281 from polluks/sp65
[cc65] / cfg / atari-cart.cfg
1 FEATURES {
2     STARTADDRESS: default = $2000;
3 }
4 SYMBOLS {
5     __CARTSIZE__:        type = weak,   value = $2000; # possible values: $2000 and $4000
6     __CART_HEADER__:     type = import;
7     __STACKSIZE__:       type = weak,   value = $0800; # 2k stack
8     __STARTADDRESS__:    type = export, value = %S;
9     __RESERVED_MEMORY__: type = export, value = $0000;
10     __CARTFLAGS__:       type = weak,   value = $01;   # see documentation for other possible values
11 }
12 MEMORY {
13     ZP:     file = "", define = yes, start = $0082,                size = $007E;
14     MAIN:   file = "", define = yes, start = %S,                   size = __CARTSIZE__;
15     ROM:    file = %O, define = yes, start = $C000 - __CARTSIZE__, size = __CARTSIZE__ - 6, fill = yes, fillval = $FF;
16     CARTID: file = %O,               start = $BFFA,                size = $0006;
17 }
18 SEGMENTS {
19     ZEROPAGE: load = ZP,              type = zp,                optional = yes;
20     EXTZP:    load = ZP,              type = zp,                optional = yes;
21     STARTUP:  load = ROM,             type = ro,  define = yes, optional = yes;
22     LOWCODE:  load = ROM,             type = ro,  define = yes, optional = yes;
23     ONCE:     load = ROM,             type = ro,                optional = yes;
24     CODE:     load = ROM,             type = ro,  define = yes;
25     RODATA:   load = ROM,             type = ro,                optional = yes;
26     DATA:     load = ROM, run = MAIN, type = rw,  define = yes, optional = yes;
27     INIT:     load = MAIN,            type = bss,               optional = yes;
28     BSS:      load = MAIN,            type = bss, define = yes, optional = yes;
29     CARTHDR:  load = CARTID,          type = ro;
30 }
31 FEATURES {
32     CONDES: type    = constructor,
33             label   = __CONSTRUCTOR_TABLE__,
34             count   = __CONSTRUCTOR_COUNT__,
35             segment = ONCE;
36     CONDES: type    = destructor,
37             label   = __DESTRUCTOR_TABLE__,
38             count   = __DESTRUCTOR_COUNT__,
39             segment = RODATA;
40     CONDES: type    = interruptor,
41             label   = __INTERRUPTOR_TABLE__,
42             count   = __INTERRUPTOR_COUNT__,
43             segment = RODATA,
44             import  = __CALLIRQ__;
45 }