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__;
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 RAM: file = %O, define = yes, start = __BASHEAD_LAST__, size = __RAMEND__ - __RAM_START__ - __STACKSIZE__;
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 = RAM, type = ro;
21 LOWCODE: load = RAM, type = ro, optional = yes;
22 CODE: load = RAM, type = ro;
23 RODATA: load = RAM, type = ro;
24 INIT: load = RAM, type = ro, define = yes, optional = yes;
25 DATA: load = RAM, type = rw;
26 ZPSAVE1: load = RAM, type = rw, define = yes; # ZPSAVE1, ZPSAVE2 must be together
27 ZPSAVE2: load = RAM, type = bss; # see "libsrc/atmos/crt0.s"
28 BSS: load = RAM, type = bss, define = yes;
31 CONDES: type = constructor,
32 label = __CONSTRUCTOR_TABLE__,
33 count = __CONSTRUCTOR_COUNT__,
35 CONDES: type = destructor,
36 label = __DESTRUCTOR_TABLE__,
37 count = __DESTRUCTOR_COUNT__,
39 CONDES: type = interruptor,
40 label = __INTERRUPTOR_TABLE__,
41 count = __INTERRUPTOR_COUNT__,