--- /dev/null
+# Configuration for programs including a hires screen (with 6KB LOWCODE)
+
+FEATURES {
+ STARTADDRESS: default = $0803;
+}
+SYMBOLS {
+ __EXEHDR__: type = import;
+ __STACKSIZE__: type = weak, value = $0800; # 2k stack
+ __HIMEM__: type = weak, value = $9600; # Presumed RAM end
+ __LCADDR__: type = weak, value = $D400; # Behind quit code
+ __LCSIZE__: type = weak, value = $0C00; # Rest of bank two
+ __MAIN_START__: type = export, value = %S;
+ __MAIN_LAST__: type = export, value = __HIGH_LAST__;
+}
+MEMORY {
+ ZP: file = "", define = yes, start = $0080, size = $001A;
+ HEADER: file = %O, start = %S - 4, size = $0004;
+ LOW: file = %O, fill = yes, start = %S, size = $2000 - %S;
+ HGR: file = %O, fill = yes, start = $2000, size = $2000;
+ HIGH: file = %O, define = yes, start = $4000, size = __HIMEM__ - $4000;
+ BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
+ LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
+}
+SEGMENTS {
+ ZEROPAGE: load = ZP, type = zp;
+ EXEHDR: load = HEADER, type = ro;
+ STARTUP: load = LOW, type = ro;
+ LOWCODE: load = LOW, type = ro, optional = yes;
+ HGR: load = HGR, type = rw, optional = yes;
+ CODE: load = HIGH, type = ro;
+ RODATA: load = HIGH, type = ro;
+ DATA: load = HIGH, type = rw;
+ INIT: load = HIGH, type = rw;
+ ONCE: load = HIGH, type = ro, define = yes;
+ LC: load = HIGH, run = LC, type = ro, optional = yes;
+ BSS: load = BSS, type = bss, define = yes;
+}
+FEATURES {
+ CONDES: type = constructor,
+ label = __CONSTRUCTOR_TABLE__,
+ count = __CONSTRUCTOR_COUNT__,
+ segment = ONCE;
+ CONDES: type = destructor,
+ label = __DESTRUCTOR_TABLE__,
+ count = __DESTRUCTOR_COUNT__,
+ segment = RODATA;
+ CONDES: type = interruptor,
+ label = __INTERRUPTOR_TABLE__,
+ count = __INTERRUPTOR_COUNT__,
+ segment = RODATA,
+ import = __CALLIRQ__;
+}