]> git.sur5r.net Git - cc65/blob - cfg/atari-cart.cfg
Atari: fix interrupt handling if extended memory is banked in
[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     DISCARD: file = "",               start = $0100,                size = $FF00;
18 }
19 SEGMENTS {
20     ZEROPAGE: load = ZP,                  type = zp,                optional = yes;
21     EXTZP:    load = ZP,                  type = zp,                optional = yes;
22     STARTUP:  load = ROM,                 type = ro,  define = yes, optional = yes;
23     LOWBSS:   load = DISCARD, run = MAIN, type = rw,                optional = yes;  # not zero-initialized
24     LOWCODE:  load = ROM,                 type = ro,  define = yes, optional = yes;
25     ONCE:     load = ROM,                 type = ro,                optional = yes;
26     CODE:     load = ROM,                 type = ro,  define = yes;
27     RODATA:   load = ROM,                 type = ro,                optional = yes;
28     DATA:     load = ROM, run = MAIN,     type = rw,  define = yes, optional = yes;
29     INIT:     load = MAIN,                type = bss,               optional = yes;
30     BSS:      load = MAIN,                type = bss, define = yes, optional = yes;
31     CARTHDR:  load = CARTID,              type = ro;
32 }
33 FEATURES {
34     CONDES: type    = constructor,
35             label   = __CONSTRUCTOR_TABLE__,
36             count   = __CONSTRUCTOR_COUNT__,
37             segment = ONCE;
38     CONDES: type    = destructor,
39             label   = __DESTRUCTOR_TABLE__,
40             count   = __DESTRUCTOR_COUNT__,
41             segment = RODATA;
42     CONDES: type    = interruptor,
43             label   = __INTERRUPTOR_TABLE__,
44             count   = __INTERRUPTOR_COUNT__,
45             segment = RODATA,
46             import  = __CALLIRQ__;
47 }