2 __STACKSIZE__: type = weak, value = $0800; # 2k stack
3 __STARTOFDIRECTORY__: type = weak, value = $00DF; # start just after loader
4 __BLOCKSIZE__: type = weak, value = 1024; # cart block size
5 __EXEHDR__: type = import;
6 __BOOTLDR__: type = import;
7 __DEFDIR__: type = import;
8 __UPLOADER__: type = import;
11 ZP: file = "", define = yes, start = $0000, size = $0100;
12 HEADER: file = %O, start = $0000, size = $0040;
13 BOOT: file = %O, start = $0200, size = __STARTOFDIRECTORY__;
14 DIR: file = %O, start = $0000, size = 8;
15 RAM: file = %O, define = yes, start = $0200, size = $BD38 - __STACKSIZE__;
16 UPLDR: file = %O, define = yes, start = $BFDC, size = $005C;
19 EXEHDR: load = HEADER, type = ro;
20 BOOTLDR: load = BOOT, type = ro;
21 DIRECTORY:load = DIR, type = ro;
22 STARTUP: load = RAM, type = ro, define = yes;
23 LOWCODE: load = RAM, type = ro, optional = yes;
24 INIT: load = RAM, type = ro, define = yes, optional = yes;
25 CODE: load = RAM, type = ro, define = yes;
26 RODATA: load = RAM, type = ro, define = yes;
27 DATA: load = RAM, type = rw, define = yes;
28 BSS: load = RAM, type = bss, define = yes;
29 UPCODE: load = UPLDR, type = ro, define = yes;
30 UPDATA: load = UPLDR, type = rw, define = yes;
31 ZEROPAGE: load = ZP, type = zp;
32 EXTZP: load = ZP, type = zp, optional = yes;
33 APPZP: load = ZP, type = zp, optional = yes;
36 CONDES: segment = INIT,
38 label = __CONSTRUCTOR_TABLE__,
39 count = __CONSTRUCTOR_COUNT__;
40 CONDES: segment = RODATA,
42 label = __DESTRUCTOR_TABLE__,
43 count = __DESTRUCTOR_COUNT__;
44 CONDES: segment = RODATA,
46 label = __INTERRUPTOR_TABLE__,
47 count = __INTERRUPTOR_COUNT__;