1 # This config file provides a single big upper memory block (HIDDEN_RAM).
2 # To achieve this, it relocates the character generator from $E000 to CHARGEN.
3 # The runtime library must be compiled with CHARGEN_RELOC for this config
4 # file to work. See libsrc/atari/Makefile.inc.
7 STARTADDRESS: default = $2400;
11 __EXEHDR__: type = import;
12 __SYSTEM_CHECK__: type = import; # force inclusion of "system check" load chunk
13 __AUTOSTART__: type = import; # force inclusion of autostart "trailer"
14 __STACKSIZE__: type = weak, value = $0800; # 2k stack
15 __STARTADDRESS__: type = export, value = %S;
19 ZP: file = "", define = yes, start = $0082, size = $007E;
22 HEADER: file = %O, start = $0000, size = $0002;
24 # "system check" load chunk
25 SYSCHKHDR: file = %O, start = $0000, size = $0004;
26 SYSCHKCHNK: file = %O, start = $2E00, size = $0300;
27 SYSCHKTRL: file = %O, start = $0000, size = $0006;
29 # "shadow RAM preparation" load chunk
30 SRPREPHDR: file = %O, start = $0000, size = $0004;
31 SRPREPCHNK: file = %O, define = yes, start = %S, size = $7C20 - %S - $07FF; # $07FF: space for temp. chargen buffer, 1K aligned
32 SRPREPTRL: file = %O, start = $0000, size = $0006;
34 # "main program" load chunk
35 MAINHDR: file = %O, start = $0000, size = $0004;
36 RAM: file = %O, define = yes, start = %S +
37 __LOWBSS_SIZE__, size = $D000 -
42 # defines entry point into program
43 TRAILER: file = %O, start = $0000, size = $0006;
45 # address of relocated character generator
46 CHARGEN: file = "", define = yes, start = $D800, size = $0400;
48 # memory beneath the ROM
49 HIDDEN_RAM: file = "", define = yes, start = $DC00, size = $FFFA - $DC00;
53 EXEHDR: load = HEADER, type = ro;
55 SYSCHKHDR: load = SYSCHKHDR, type = ro, optional = yes;
56 SYSCHK: load = SYSCHKCHNK, type = rw, define = yes, optional = yes;
57 SYSCHKTRL: load = SYSCHKTRL, type = ro, optional = yes;
59 SRPREPHDR: load = SRPREPHDR, type = ro;
60 LOWBSS: load = SRPREPCHNK, type = bss, define = yes; # shared btw. SRPREPCHNK and RAM, not zero initialized
61 SRPREP: load = SRPREPCHNK, type = rw, define = yes;
62 SHADOW_RAM: load = SRPREPCHNK, run = HIDDEN_RAM, type = rw, define = yes, optional = yes;
63 SHADOW_RAM2: load = SRPREPCHNK, run = HIDDEN_RAM, type = rw, define = yes, optional = yes;
64 SRPREPTRL: load = SRPREPTRL, type = ro;
66 MAINHDR: load = MAINHDR, type = ro;
67 STARTUP: load = RAM, type = ro, define = yes;
68 LOWCODE: load = RAM, type = ro, define = yes, optional = yes;
69 INIT: load = RAM, type = ro, optional = yes;
70 CODE: load = RAM, type = ro, define = yes;
71 RODATA: load = RAM, type = ro;
72 DATA: load = RAM, type = rw;
73 BSS: load = RAM, type = bss, define = yes;
74 ZEROPAGE: load = ZP, type = zp;
75 EXTZP: load = ZP, type = zp, optional = yes;
76 AUTOSTRT: load = TRAILER, type = ro;
79 CONDES: type = constructor,
80 label = __CONSTRUCTOR_TABLE__,
81 count = __CONSTRUCTOR_COUNT__,
83 CONDES: type = destructor,
84 label = __DESTRUCTOR_TABLE__,
85 count = __DESTRUCTOR_COUNT__,
87 CONDES: type = interruptor,
88 label = __INTERRUPTOR_TABLE__,
89 count = __INTERRUPTOR_COUNT__,