+++ /dev/null
-# Configuration optimized for DOS 3.3 by allowing for 12KB of HIGHCODE
-
-FEATURES {
-    STARTADDRESS: default = $0803;
-}
-SYMBOLS {
-    __EXEHDR__:    type = import;
-    __STACKSIZE__: type = weak, value = $0800; # 2k stack
-    __LOADADDR__:  type = weak, value = __RAM_START__;
-    __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
-                                        __MOVE_LAST__  - __MOVE_START__;
-}
-MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $9600 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D000, size = $3000;
-}
-SEGMENTS {
-    ZEROPAGE: load = ZP,              type = zp;
-    EXEHDR:   load = HEADER,          type = ro;
-    STARTUP:  load = RAM,             type = ro;
-    LOWCODE:  load = RAM,             type = ro;
-    CODE:     load = RAM,             type = ro;
-    RODATA:   load = RAM,             type = ro;
-    DATA:     load = RAM,             type = rw;
-    ZPSAVE:   load = RAM,             type = bss, define   = yes;
-    BSS:      load = RAM,             type = bss, define   = yes;
-    INIT:     load = MOVE, run = RAM, type = ro,  define   = yes;
-    HIGHCODE: load = MOVE, run = LC,  type = ro,  optional = yes;
-}
-FEATURES {
-    CONDES: segment = INIT,
-            type    = constructor,
-            label   = __CONSTRUCTOR_TABLE__,
-            count   = __CONSTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = destructor,
-            label   = __DESTRUCTOR_TABLE__,
-            count   = __DESTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = interruptor,
-            label   = __INTERRUPTOR_TABLE__,
-            count   = __INTERRUPTOR_COUNT__;
-}
 
 }
 SYMBOLS {
     __EXEHDR__:    type = import;
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
     __LOADADDR__:  type = weak, value = __RAM_START__;
     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
                                         __MOVE_LAST__  - __MOVE_START__;
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $BF00 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D400, size = $0C00;
+    ZP:     file = "", define = yes, start = $0080,      size = $001A;
+    HEADER: file = %O,               start = $0000,      size = $0004;
+    RAM:    file = %O, define = yes, start = %S,         size = $BF00 - __STACKSIZE__ - %S;
+    MOVE:   file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:                define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
 
+++ /dev/null
-# Configuration allowing for 4KB of HIGHCODE optimized for programs
-# loaded with LOADER.SYSTEM and calling rebootafterexit()
-
-FEATURES {
-    STARTADDRESS: default = $0800;
-}
-SYMBOLS {
-    __EXEHDR__:    type = import;
-    __STACKSIZE__: type = weak, value = $0800; # 2k stack
-    __LOADADDR__:  type = weak, value = __RAM_START__;
-    __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
-                                        __MOVE_LAST__  - __MOVE_START__;
-}
-MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $BF00 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D000, size = $1000;
-}
-SEGMENTS {
-    ZEROPAGE: load = ZP,              type = zp;
-    EXEHDR:   load = HEADER,          type = ro;
-    STARTUP:  load = RAM,             type = ro;
-    LOWCODE:  load = RAM,             type = ro;
-    CODE:     load = RAM,             type = ro;
-    RODATA:   load = RAM,             type = ro;
-    DATA:     load = RAM,             type = rw;
-    ZPSAVE:   load = RAM,             type = bss, define   = yes;
-    BSS:      load = RAM,             type = bss, define   = yes;
-    INIT:     load = MOVE, run = RAM, type = ro,  define   = yes;
-    HIGHCODE: load = MOVE, run = LC,  type = ro,  optional = yes;
-}
-FEATURES {
-    CONDES: segment = INIT,
-            type    = constructor,
-            label   = __CONSTRUCTOR_TABLE__,
-            count   = __CONSTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = destructor,
-            label   = __DESTRUCTOR_TABLE__,
-            count   = __DESTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = interruptor,
-            label   = __INTERRUPTOR_TABLE__,
-            count   = __INTERRUPTOR_COUNT__;
-}
 
 
 SYMBOLS {
     __EXEHDR__:    type = import;
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
     __LOADADDR__:  type = weak, value = __RAM_START__;
     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
                                         __MOVE_LAST__  - __MOVE_START__;
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = "",               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D400, size = $0C00;
+    ZP:     file = "", define = yes, start = $0080,      size = $001A;
+    HEADER: file = "",               start = $0000,      size = $0004;
+    RAM:    file = %O, define = yes, start = $2000,      size = $9F00 - __STACKSIZE__;
+    MOVE:   file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:                define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
 
 }
 SYMBOLS {
     __EXEHDR__:    type = import;
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
     __LOADADDR__:  type = weak, value = __RAM_START__;
     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
                                         __MOVE_LAST__  - __MOVE_START__;
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $9600 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D400, size = $0C00;
+    ZP:     file = "", define = yes, start = $0080,      size = $001A;
+    HEADER: file = %O,               start = $0000,      size = $0004;
+    RAM:    file = %O, define = yes, start = %S,         size = $9600 - __STACKSIZE__ - %S;
+    MOVE:   file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:                define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
 
+++ /dev/null
-# Configuration optimized for DOS 3.3 by allowing for 12KB of HIGHCODE
-
-FEATURES {
-    STARTADDRESS: default = $0803;
-}
-SYMBOLS {
-    __EXEHDR__:    type = import;
-    __STACKSIZE__: type = weak, value = $0800; # 2k stack
-    __LOADADDR__:  type = weak, value = __RAM_START__;
-    __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
-                                        __MOVE_LAST__  - __MOVE_START__;
-}
-MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $9600 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D000, size = $3000;
-}
-SEGMENTS {
-    ZEROPAGE: load = ZP,              type = zp;
-    EXEHDR:   load = HEADER,          type = ro;
-    STARTUP:  load = RAM,             type = ro;
-    LOWCODE:  load = RAM,             type = ro;
-    CODE:     load = RAM,             type = ro;
-    RODATA:   load = RAM,             type = ro;
-    DATA:     load = RAM,             type = rw;
-    ZPSAVE:   load = RAM,             type = bss, define   = yes;
-    BSS:      load = RAM,             type = bss, define   = yes;
-    INIT:     load = MOVE, run = RAM, type = ro,  define   = yes;
-    HIGHCODE: load = MOVE, run = LC,  type = ro,  optional = yes;
-}
-FEATURES {
-    CONDES: segment = INIT,
-            type    = constructor,
-            label   = __CONSTRUCTOR_TABLE__,
-            count   = __CONSTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = destructor,
-            label   = __DESTRUCTOR_TABLE__,
-            count   = __DESTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = interruptor,
-            label   = __INTERRUPTOR_TABLE__,
-            count   = __INTERRUPTOR_COUNT__;
-}
 
 }
 SYMBOLS {
     __EXEHDR__:    type = import;
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
     __LOADADDR__:  type = weak, value = __RAM_START__;
     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
                                         __MOVE_LAST__  - __MOVE_START__;
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $BF00 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D400, size = $0C00;
+    ZP:     file = "", define = yes, start = $0080,      size = $001A;
+    HEADER: file = %O,               start = $0000,      size = $0004;
+    RAM:    file = %O, define = yes, start = %S,         size = $BF00 - __STACKSIZE__ - %S;
+    MOVE:   file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:                define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
 
+++ /dev/null
-# Configuration allowing for 4KB of HIGHCODE optimized for programs
-# loaded with LOADER.SYSTEM and calling rebootafterexit()
-
-FEATURES {
-    STARTADDRESS: default = $0800;
-}
-SYMBOLS {
-    __EXEHDR__:    type = import;
-    __STACKSIZE__: type = weak, value = $0800; # 2k stack
-    __LOADADDR__:  type = weak, value = __RAM_START__;
-    __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
-                                        __MOVE_LAST__  - __MOVE_START__;
-}
-MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $BF00 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D000, size = $1000;
-}
-SEGMENTS {
-    ZEROPAGE: load = ZP,              type = zp;
-    EXEHDR:   load = HEADER,          type = ro;
-    STARTUP:  load = RAM,             type = ro;
-    LOWCODE:  load = RAM,             type = ro;
-    CODE:     load = RAM,             type = ro;
-    RODATA:   load = RAM,             type = ro;
-    DATA:     load = RAM,             type = rw;
-    ZPSAVE:   load = RAM,             type = bss, define   = yes;
-    BSS:      load = RAM,             type = bss, define   = yes;
-    INIT:     load = MOVE, run = RAM, type = ro,  define   = yes;
-    HIGHCODE: load = MOVE, run = LC,  type = ro,  optional = yes;
-}
-FEATURES {
-    CONDES: segment = INIT,
-            type    = constructor,
-            label   = __CONSTRUCTOR_TABLE__,
-            count   = __CONSTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = destructor,
-            label   = __DESTRUCTOR_TABLE__,
-            count   = __DESTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = interruptor,
-            label   = __INTERRUPTOR_TABLE__,
-            count   = __INTERRUPTOR_COUNT__;
-}
 
 
 SYMBOLS {
     __EXEHDR__:    type = import;
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
     __LOADADDR__:  type = weak, value = __RAM_START__;
     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
                                         __MOVE_LAST__  - __MOVE_START__;
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = "",               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = $2000, size = $9F00 - __STACKSIZE__;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D400, size = $0C00;
+    ZP:     file = "", define = yes, start = $0080,      size = $001A;
+    HEADER: file = "",               start = $0000,      size = $0004;
+    RAM:    file = %O, define = yes, start = $2000,      size = $9F00 - __STACKSIZE__;
+    MOVE:   file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:                define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
 
 }
 SYMBOLS {
     __EXEHDR__:    type = import;
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
     __LOADADDR__:  type = weak, value = __RAM_START__;
     __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __RAM_START__ +
                                         __MOVE_LAST__  - __MOVE_START__;
 }
 MEMORY {
-    ZP:     file = "", define = yes, start = $0080, size = $001A;
-    HEADER: file = %O,               start = $0000, size = $0004;
-    RAM:    file = %O, define = yes, start = %S,    size = $9600 - __STACKSIZE__ - %S;
-    MOVE:   file = %O, define = yes, start = $0000, size = $FFFF;
-    LC:                define = yes, start = $D400, size = $0C00;
+    ZP:     file = "", define = yes, start = $0080,      size = $001A;
+    HEADER: file = %O,               start = $0000,      size = $0004;
+    RAM:    file = %O, define = yes, start = %S,         size = $9600 - __STACKSIZE__ - %S;
+    MOVE:   file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:                define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;