]> git.sur5r.net Git - cc65/blob - cfg/atmos.cfg
Consider the segment attributes 'define' and 'optional' mutually exclusive.
[cc65] / cfg / atmos.cfg
1 SYMBOLS {
2     __TAPEHDR__:   type = import;
3     __BASHDR__:    type = import;
4     __PROGFLAG__:  type = weak, value = $00; # $00=BASIC, $80=machine code
5     __AUTORUN__:   type = weak, value = $00; # $00=only load, $C7=run
6     __STACKSIZE__: type = weak, value = $0800; # 2K stack
7     __GRAB__:      type = weak, value = 0; # 0=don't grab graphics RAM, 1=grab graphics RAM
8     __RAMEND__:    type = weak, value = $9800 + $1C00 * __GRAB__;
9 }
10 MEMORY {
11     ZP:      file = "", define = yes, start = $00E2,            size = $001A;
12     TAPEHDR: file = %O, type   = ro,  start = $0000,            size = $001F;
13     BASHEAD: file = %O, define = yes, start = $0501,            size = $000D;
14     MAIN:    file = %O, define = yes, start = __BASHEAD_LAST__, size = __RAMEND__ - __MAIN_START__ - __STACKSIZE__;
15 }
16 SEGMENTS {
17     ZEROPAGE: load = ZP,      type = zp;
18     TAPEHDR:  load = TAPEHDR, type = ro;
19     BASHDR:   load = BASHEAD, type = ro,  define = yes, optional = yes;
20     STARTUP:  load = MAIN,    type = ro;
21     LOWCODE:  load = MAIN,    type = ro,                optional = yes;
22     CODE:     load = MAIN,    type = ro;
23     RODATA:   load = MAIN,    type = ro;
24     ONCE:     load = MAIN,    type = ro,                optional = yes;
25     DATA:     load = MAIN,    type = rw;
26     INIT:     load = MAIN,    type = rw,                optional = yes;
27     ZPSAVE1:  load = MAIN,    type = rw,  define = yes; # ZPSAVE1, ZPSAVE2 must be together
28     ZPSAVE2:  load = MAIN,    type = bss;               # see "libsrc/atmos/crt0.s"
29     BSS:      load = MAIN,    type = bss, define = yes;
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 }