]> git.sur5r.net Git - cc65/commitdiff
- No more HEAP segment
authorol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 21 Mar 2010 17:10:17 +0000 (17:10 +0000)
committerol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 21 Mar 2010 17:10:17 +0000 (17:10 +0000)
- RAM reduced by __STACKSIZE__
- Unified formatting

git-svn-id: svn://svn.cc65.org/cc65/trunk@4633 b7a2c559-68d2-44c3-8de9-860c34a00d81

32 files changed:
src/ld65/cfg/apple2-dos33.cfg
src/ld65/cfg/apple2-loader.cfg
src/ld65/cfg/apple2-reboot.cfg
src/ld65/cfg/apple2-system.cfg
src/ld65/cfg/apple2.cfg
src/ld65/cfg/apple2enh-dos33.cfg
src/ld65/cfg/apple2enh-loader.cfg
src/ld65/cfg/apple2enh-reboot.cfg
src/ld65/cfg/apple2enh-system.cfg
src/ld65/cfg/apple2enh.cfg
src/ld65/cfg/atari.cfg
src/ld65/cfg/atmos.cfg
src/ld65/cfg/bbc.cfg
src/ld65/cfg/c128.cfg
src/ld65/cfg/c16.cfg
src/ld65/cfg/c64.cfg
src/ld65/cfg/cbm510.cfg
src/ld65/cfg/cbm610.cfg
src/ld65/cfg/geos.cfg
src/ld65/cfg/lunix.cfg
src/ld65/cfg/lynx.cfg
src/ld65/cfg/module.cfg
src/ld65/cfg/nes.cfg
src/ld65/cfg/none.cfg
src/ld65/cfg/pet.cfg
src/ld65/cfg/plus4.cfg
src/ld65/cfg/supervision-128k.cfg
src/ld65/cfg/supervision-16k.cfg
src/ld65/cfg/supervision-64k.cfg
src/ld65/cfg/supervision.cfg
src/ld65/cfg/vic20-32k.cfg
src/ld65/cfg/vic20.cfg

index 22168e4b244cfd50b1af4e3a249493ed01d35aeb..8e532b2b75f549d42a49be9bd0aa91f0560b587a 100644 (file)
@@ -3,12 +3,15 @@
 FEATURES {
     STARTADDRESS: default = $0803;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $9600 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D000, size = $3000,                 define = yes;
+    ZP:                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;
@@ -32,11 +35,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index f79e0a8c0d6835b76103be8e31f1fdb0b4389dfc..51db3f7ad5b53070ca7d34841bb5b521e50532a9 100644 (file)
@@ -3,12 +3,15 @@
 FEATURES {
     STARTADDRESS: default = $0800;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $BF00 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,                 define = yes;
+    ZP:                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;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
@@ -32,11 +35,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index f49c74ec27e822b9c8e61324833415d64a93116d..824ef264b08b406f041dc0c61b166ae9f0805be8 100644 (file)
@@ -4,12 +4,15 @@
 FEATURES {
     STARTADDRESS: default = $0800;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $BF00 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D000, size = $1000,                 define = yes;
+    ZP:                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;
@@ -33,11 +36,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index 9a59946a0477bfede550e3d4d7187d1cf30a6c4f..7bf2f39b6ab7c9e41430f6318043bd18fb981101 100644 (file)
@@ -1,11 +1,14 @@
 # Configuration for ProDOS 8 system programs (without the header)
 
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,            define = yes;
-    HEADER: start = $0000, size = $0004, file = "";
-    RAM:    start = $2000, size = $9F00, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF, file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,            define = yes;
+    ZP:                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;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
@@ -29,11 +32,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index 577caab1bbbef42546fe9eb95aa11f00ab8e6d91..68c76502e80f9356cdd2c64c437e238c857ab574 100644 (file)
@@ -3,12 +3,15 @@
 FEATURES {
     STARTADDRESS: default = $0803;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $9600 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,                 define = yes;
+    ZP:                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;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
@@ -32,11 +35,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index 22168e4b244cfd50b1af4e3a249493ed01d35aeb..8e532b2b75f549d42a49be9bd0aa91f0560b587a 100644 (file)
@@ -3,12 +3,15 @@
 FEATURES {
     STARTADDRESS: default = $0803;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $9600 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D000, size = $3000,                 define = yes;
+    ZP:                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;
@@ -32,11 +35,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index f79e0a8c0d6835b76103be8e31f1fdb0b4389dfc..51db3f7ad5b53070ca7d34841bb5b521e50532a9 100644 (file)
@@ -3,12 +3,15 @@
 FEATURES {
     STARTADDRESS: default = $0800;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $BF00 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,                 define = yes;
+    ZP:                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;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
@@ -32,11 +35,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index f49c74ec27e822b9c8e61324833415d64a93116d..824ef264b08b406f041dc0c61b166ae9f0805be8 100644 (file)
@@ -4,12 +4,15 @@
 FEATURES {
     STARTADDRESS: default = $0800;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $BF00 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D000, size = $1000,                 define = yes;
+    ZP:                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;
@@ -33,11 +36,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index 9a59946a0477bfede550e3d4d7187d1cf30a6c4f..7bf2f39b6ab7c9e41430f6318043bd18fb981101 100644 (file)
@@ -1,11 +1,14 @@
 # Configuration for ProDOS 8 system programs (without the header)
 
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,            define = yes;
-    HEADER: start = $0000, size = $0004, file = "";
-    RAM:    start = $2000, size = $9F00, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF, file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,            define = yes;
+    ZP:                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;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
@@ -29,11 +32,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index 577caab1bbbef42546fe9eb95aa11f00ab8e6d91..68c76502e80f9356cdd2c64c437e238c857ab574 100644 (file)
@@ -3,12 +3,15 @@
 FEATURES {
     STARTADDRESS: default = $0803;
 }
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,                 define = yes;
-    HEADER: start = $0000, size = $0004,      file = %O;
-    RAM:    start = %S,    size = $9600 - %S, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF,      file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,                 define = yes;
+    ZP:                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;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
@@ -32,11 +35,8 @@ FEATURES {
             type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__;
-    CONDES: type    = interruptor,
-            segment = RODATA,
+    CONDES: segment = RODATA,
+            type    = interruptor,
             label   = __INTERRUPTOR_TABLE__,
             count   = __INTERRUPTOR_COUNT__;
 }
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
-}
index 1b8ee8b2a1fd8cf0594d853c6e6529d846d5a284..88757512c16db3555a35f9b3f3653cd23313bd8a 100644 (file)
@@ -6,10 +6,10 @@ SYMBOLS {
     __RESERVED_MEMORY__: value = $0000, weak = yes;
 }
 MEMORY {
-    ZP:      start = $0082, size = $007E, type = rw, define = yes;
-    HEADER:  start = $0000, size = $0006, file = %O;
-    RAM:     start = %S,    size = $BC20 - __STACKSIZE__ - %S, file = %O;
-    TRAILER: start = $0000, size = $0006, file = %O;
+    ZP:      define = yes, start = $0082, size = $007E;
+    HEADER:  file = %O,    start = $0000, size = $0006;
+    RAM:     file = %O,    start = %S,    size = $BC20 - __STACKSIZE__ - %S;
+    TRAILER: file = %O,    start = $0000, size = $0006;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER,  type = ro;
@@ -21,22 +21,21 @@ SEGMENTS {
     DATA:     load = RAM,     type = rw;
     ZPSAVE:   load = RAM,     type = bss, define = yes;
     BSS:      load = RAM,     type = bss, define = yes;
-    HEAP:     load = RAM,     type = bss,               optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,      type = zp;
     EXTZP:    load = ZP,      type = zp,                optional = yes;
     AUTOSTRT: load = TRAILER, type = ro;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index b6a3704d557dd5cda81099b64dc34260d054f6e6..a71fca5a2294248f0768ccd459049e3f28a857e0 100644 (file)
@@ -1,38 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:      start = $00E2, size = $001A, type = rw, define = yes;
-    TAPEHDR: start = $0000, size = $000E, type = ro, file = %O;
-    RAM:     start = $0500, size = $9300, file = %O, define = yes;
+    ZP:                 define = yes, start = $00E2, size = $001A;
+    TAPEHDR: file = %O, type   = ro,  start = $0000, size = $000E;
+    RAM:     file = %O, define = yes, start = $0500, size = $9300 - __STACKSIZE__;
 }
 SEGMENTS {
     TAPEHDR:  load = TAPEHDR, type = ro;
     STARTUP:  load = RAM,     type = ro;
-    LOWCODE:  load = RAM,     type = ro,               optional = yes;
-    INIT:     load = RAM,     type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,     type = ro,                optional = yes;
+    INIT:     load = RAM,     type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,     type = ro;
     RODATA:   load = RAM,     type = ro;
     DATA:     load = RAM,     type = rw;
     ZPSAVE:   load = RAM,     type = bss;
     BSS:      load = RAM,     type = bss, define = yes;
-    HEAP:     load = RAM,     type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,      type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
-
-
-
index fa3069e65c6abf03c596461d2a416e772e671b80..f0d608f24a8da08fd13300d3f81012b113095429 100644 (file)
@@ -1,34 +1,31 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:  start = $0070, size = $0020, type = rw, define = yes;
-    RAM: start = $0E00, size = $7200, file = %O;
+    ZP:  define = yes, start = $0070, size = $0020;
+    RAM: file = %O,    start = $0E00, size = $7200 - __STACKSIZE__;
 }
 SEGMENTS {
-    STARTUP:  load = RAM, type = ro, define = yes;
-    LOWCODE:  load = RAM, type = ro,               optional = yes;
-    INIT:     load = RAM, type = ro, define = yes, optional = yes;
+    STARTUP:  load = RAM, type = ro,  define = yes;
+    LOWCODE:  load = RAM, type = ro,                optional = yes;
+    INIT:     load = RAM, type = ro,  define = yes, optional = yes;
     CODE:     load = RAM, type = ro;
     RODATA:   load = RAM, type = ro;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
-    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
-
-
index 71c11cffd9bf40de9d70e7d136877c9c0d2de028..9b0e7c7541d26b6052cb1d70b059248e04e87f17 100644 (file)
@@ -1,35 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0002, size = $001A, type = rw, define = yes;
-    HEADER: start = $1BFF, size = $000E, file = %O;
-    RAM:    start = $1C0D, size = $A3F3, file = %O, define = yes;
+    ZP:                define = yes, start = $0002, size = $001A;
+    HEADER: file = %O,               start = $1BFF, size = $000E;
+    RAM:    file = %O, define = yes, start = $1C0D, size = $A3F3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index d2700fa3771ebcb41ce5bfc46d79dcead1eb659e..7386b34cc4d57ef0eb801e6c696523339df79e82 100644 (file)
@@ -1,35 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0002, size = $001A, type = rw, define = yes;
-    HEADER: start = $0FFF, size = $000E, file = %O;
-    RAM:    start = $100D, size = $6FF3, file = %O;
+    ZP:     define = yes, start = $0002, size = $001A;
+    HEADER: file = %O,    start = $0FFF, size = $000E;
+    RAM:    file = %O,    start = $100D, size = $6FF3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 2ce94b6fe52824237e3172643279acde309059b1..f7a126e08bdcddc900300cc0ed27728eda6f4094 100644 (file)
@@ -1,37 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0002, size = $001A, type = rw, define = yes;
-    HEADER: start = $07FF, size = $000E, file = %O;
-    RAM:    start = $080D, size = $C7F3, file = %O, define = yes;
+    ZP:                define = yes, start = $0002, size = $001A;
+    HEADER: file = %O,               start = $07FF, size = $000E;
+    RAM:    file = %O, define = yes, start = $080D, size = $C7F3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
-
-
index 9c9d373f2ae7e8e51b2e16edc77ec2385623b0fa..7a77930bfecaccb2e021710c1ec56f5cf394ebed 100644 (file)
@@ -1,42 +1,41 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0781, weak = yes; # ~2k stack
+}
 MEMORY {
-    HEADER:   start = $0001, size = $0050, fill = yes, fillval = 0, type = rw, file = %O;
-    ZP:       start = $0051, size = $00AD, fill = yes, fillval = 0, type = rw, file = %O, define = yes;
-    STARTUP:  start = $00FE, size = $0102, fill = yes, fillval = 0, file = %O;
-    PAGE2:    start = $0200, size = $0100, fill = yes, fillval = 0, file = %O;
-    PAGE3:    start = $0300, size = $0100, fill = yes, fillval = 0, file = %O;
-    RAM:      start = $0400, size = $DC00, file = %O;
-    CHARRAM:  start = $E000, size = $1000, define = yes, file = "";
-    VIDRAM:   start = $F000, size = $0400, define = yes, file = "";
+    HEADER:   file = %O,               start = $0001, size = $0050, fill = yes;
+    ZP:       file = %O, define = yes, start = $0051, size = $00AD, fill = yes;
+    STARTUP:  file = %O,               start = $00FE, size = $0102, fill = yes;
+    PAGE2:    file = %O,               start = $0200, size = $0100, fill = yes;
+    PAGE3:    file = %O,               start = $0300, size = $0100, fill = yes;
+    RAM:      file = %O,               start = $0400, size = $DC00 - __STACKSIZE__;
+    CHARRAM:  file = "", define = yes, start = $E000, size = $1000;
+    VIDRAM:   file = "", define = yes, start = $F000, size = $0400;
 }
 SEGMENTS {
-    EXEHDR:   load = HEADER,   type = rw;
-    STARTUP:  load = STARTUP,  type = rw;
-    PAGE2:    load = PAGE2,    type = rw;
-    PAGE3:    load = PAGE3,    type = rw;
-    LOWCODE:  load = RAM,      type = ro,               optional = yes;
-    INIT:     load = RAM,      type = ro, define = yes, optional = yes;
-    CODE:     load = RAM,      type = ro;
-    RODATA:   load = RAM,      type = ro;
-    DATA:     load = RAM,      type = rw;
-    BSS:      load = RAM,      type = bss, define = yes;
-    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
-    ZEROPAGE: load = ZP,       type = zp;
-    EXTZP:    load = ZP,       type = rw,  define = yes;
+    EXEHDR:   load = HEADER,  type = rw;
+    STARTUP:  load = STARTUP, type = rw;
+    PAGE2:    load = PAGE2,   type = rw;
+    PAGE3:    load = PAGE3,   type = rw;
+    LOWCODE:  load = RAM,     type = ro,                optional = yes;
+    INIT:     load = RAM,     type = ro,  define = yes, optional = yes;
+    CODE:     load = RAM,     type = ro;
+    RODATA:   load = RAM,     type = ro;
+    DATA:     load = RAM,     type = rw;
+    BSS:      load = RAM,     type = bss, define = yes;
+    ZEROPAGE: load = ZP,      type = zp;
+    EXTZP:    load = ZP,      type = rw,  define = yes;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0781, weak = yes; # ~2k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 79dd77580ca62d304c61a589897e9d652988ea1b..7df52e8456dd3553d5a2fd074dce7e49ef39daa0 100644 (file)
@@ -1,40 +1,39 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    HEADER:   start = $0001, size = $0050, type = rw, fill = yes, fillval = 0, file = %O;
-    ZP:       start = $0051, size = $00AD, type = rw, define = yes, fill = yes, fillval = 0, file = %O;
-    STARTUP:  start = $00FE, size = $0102, fill = yes, fillval = 0, file = %O;
-    PAGE2:    start = $0200, size = $0100, fill = yes, fillval = 0, file = %O;
-    PAGE3:    start = $0300, size = $0100, fill = yes, fillval = 0, file = %O;
-    RAM:      start = $0400, size = $FAAE, file = %O;
+    HEADER:   file = %O,               start = $0001, size = $0050, fill = yes;
+    ZP:       file = %O, define = yes, start = $0051, size = $00AD, fill = yes;
+    STARTUP:  file = %O,               start = $00FE, size = $0102, fill = yes;
+    PAGE2:    file = %O,               start = $0200, size = $0100, fill = yes;
+    PAGE3:    file = %O,               start = $0300, size = $0100, fill = yes;
+    RAM:      file = %O,               start = $0400, size = $FAAE - __STACKSIZE__;
 }                              
 SEGMENTS {
-    EXEHDR:   load = HEADER,   type = rw;
-    STARTUP:  load = STARTUP,  type = rw;
-    PAGE2:    load = PAGE2,    type = rw;
-    PAGE3:    load = PAGE3,    type = rw;
-    LOWCODE:  load = RAM,      type = ro,               optional = yes;
-    INIT:     load = RAM,      type = ro, define = yes, optional = yes;
-    CODE:     load = RAM,      type = ro;
-    RODATA:   load = RAM,      type = ro;
-    DATA:     load = RAM,      type = rw;
-    BSS:      load = RAM,      type = bss, define = yes;
-    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
-    ZEROPAGE: load = ZP,       type = zp;
-    EXTZP:    load = ZP,       type = rw,  define = yes;
+    EXEHDR:   load = HEADER,  type = rw;
+    STARTUP:  load = STARTUP, type = rw;
+    PAGE2:    load = PAGE2,   type = rw;
+    PAGE3:    load = PAGE3,   type = rw;
+    LOWCODE:  load = RAM,     type = ro,                optional = yes;
+    INIT:     load = RAM,     type = ro,  define = yes, optional = yes;
+    CODE:     load = RAM,     type = ro;
+    RODATA:   load = RAM,     type = ro;
+    DATA:     load = RAM,     type = rw;
+    BSS:      load = RAM,     type = bss, define = yes;
+    ZEROPAGE: load = ZP,      type = zp;
+    EXTZP:    load = ZP,      type = rw,  define = yes;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 05673385dabbc9cf05d986d004446e6ff568e0b2..d38153b8fb221c98d0a4764d40ff0c16bf7e3dd1 100644 (file)
@@ -1,35 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0400, weak = yes; # 1k stack
+}
 MEMORY {
-    ZP:     start = $0058, size = $0028, type = rw, define = yes;
-    HEADER: start = $0204, size = $01FC, file = %O;
-    RAM:    start = $0400, size = $5C00, define = yes, file = %O;
+    ZP:                define = yes, start = $0058, size = $0028;
+    HEADER: file = %O,               start = $0204, size = $01FC;
+    RAM:    file = %O, define = yes, start = $0400, size = $5C00 - __STACKSIZE__;
 }
 SEGMENTS {
     HEADER:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
     EXTZP:    load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0400, weak = yes; # 1k stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 946e405f6e7d65b92c90d4448be96bab1db2c87c..8e29d634d01320ff093e4a34b6aea0bd3ba53a0f 100644 (file)
@@ -1,41 +1,43 @@
 # ld65 Linker-configuration for LUnix, Next Generation.
+
+SYMBOLS {
+    __HEAPSIZE__:  value = $2000, weak = yes; # 8k heap [temporary, until LUnix malloc() exists]
+    __STACKSIZE__: value = $0400, weak = yes; # 1k stack (do typical LUnix apps. need 2k?)
+}
 MEMORY {
-    ZP:         start = $0080, size = $0040;        # userzp buffer
-    RAM: start = %S,  size = $7600;
+    ZP:         start = $0080, size = $0040;
+    RAM: start = %S,    size = $7600 - __STACKSIZE__;
 }
 SEGMENTS {
-    ZEROPAGE: load = ZP,  type = zp,  define = yes; # Pseudo-registers
-    STARTUP:  load = RAM, type = ro;   # First initiation code
-    LOWCODE:  load = RAM, type = ro, optional = yes; # Legacy from other platforms
-    INIT:     load = RAM, type = ro, define = yes, optional = yes;
-    CODE:     load = RAM, type = ro;   # Program
-    RODATA:   load = RAM, type = ro;   # Literals, constants
-    DATA:     load = RAM, type = rw;   # Initialized variables
-    BSS:      load = RAM, type = bss, define = yes; # Uninitialized variables
+    ZEROPAGE: load = ZP,  type = zp,  define = yes;                 # Pseudo-registers
+    STARTUP:  load = RAM, type = ro;                               # First initialization code
+    LOWCODE:  load = RAM, type = ro,                optional = yes; # Legacy from other platforms
+    INIT:     load = RAM, type = ro,  define = yes, optional = yes; # Library initialization code
+    CODE:     load = RAM, type = ro;                               # Program
+    RODATA:   load = RAM, type = ro;                               # Literals, constants
+    DATA:     load = RAM, type = rw;                               # Initialized variables
+    BSS:      load = RAM, type = bss, define = yes;                 # Uninitialized variables
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
+            type    = interruptor,         
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
 FILES {
     %O: format = o65;
 }
 FORMATS {
-    o65: os = lunix, type = small,
+    o65: os     = lunix,
+         type   = small,
          export = main,                # Program entry-point
          import = LUNIXKERNEL; # Kernel entry-points
 }
-SYMBOLS {
-    __HEAPSIZE__:  value = $2000, weak = yes; # 8k heap [temporary, until LUnix malloc() exists]
-    __STACKSIZE__: value = $0400, weak = yes; # 1k stack (do typical LUnix apps. need 2k?)
-}
index 8aee49f2c8212fb7a05d6a3571c5cdebc7e5a5c1..c6048247292818a50680c0b0ab38807910025341 100644 (file)
@@ -1,36 +1,35 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0000, size = $0100, type = rw, define = yes;
-    HEADER: start = $0000, size = $000A, file = %O;
-    RAM:    start = $0400, size = $BC38, define = yes, file = %O;
+    ZP:                define = yes, start = $0000, size = $0100;
+    HEADER: file = %O,               start = $0000, size = $000A;
+    RAM:    file = %O, define = yes, start = $0400, size = $BC38 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss,              optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
-    EXTZP:    load = ZP,     type = zp,               optional = yes;
-    APPZP:    load = ZP,     type = zp,               optional = yes;
+    EXTZP:    load = ZP,     type = zp,                optional = yes;
+    APPZP:    load = ZP,     type = zp,                optional = yes;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index e36bc5f96ca6aa523fb59988a2fd0cc210735fb6..72db8c79b2397162cb6ec4bb0e1ecd3e38d7a477 100644 (file)
@@ -16,7 +16,6 @@ FILES {
     %O: format = o65;
 }
 FORMATS {
-    o65: os = cc65, type = small;
+    o65: os   = cc65,
+         type = small;
 }
-
-
index 2e2bb108e0b105d7f7ba0d0189f34a19fd44abdc..be9ee94b52b97e1776bb0fc51975329447f49cdd 100644 (file)
@@ -1,37 +1,37 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0300, weak = yes; # 3 pages stack
+}
 MEMORY {
-
-    ZP:  start = $02, size = $1A, type = rw, define = yes;
+    ZP:     start = $0002, size = $001A, type = rw, define = yes;
 
     # INES Cartridge Header
-    HEADER: start = $0, size = $10, file = %O ,fill = yes;
+    HEADER: start = $0000, size = $0010, file = %O, fill = yes;
 
     # 2 16K ROM Banks
     # - startup
     # - code
     # - rodata
     # - data (load)
-    ROM0: start = $8000, size = $7ff4, file = %O ,fill = yes, define = yes;
+    ROM0:   start = $8000, size = $7FF4, file = %O, fill = yes, define = yes;
 
     # Hardware Vectors at End of 2nd 8K ROM
-    ROMV: start = $fff6, size = $c, file = %O, fill = yes;
+    ROMV:   start = $FFF6, size = $000C, file = %O, fill = yes;
 
     # 1 8k CHR Bank
-    ROM2: start = $0000, size = $2000, file = %O, fill = yes;
+    ROM2:   start = $0000, size = $2000, file = %O, fill = yes;
 
     # standard 2k SRAM (-zeropage)
     # $0100-$0200 cpu stack
     # $0200-$0500 3 pages for ppu memory write buffer
     # $0500-$0800 3 pages for cc65 parameter stack
-    SRAM: start = $0500, size = $0300, define = yes;
+    SRAM:   start = $0500, size = __STACKSIZE__, define = yes;
 
     # additional 8K SRAM Bank
     # - data (run)
     # - bss
     # - heap
     RAM: start = $6000, size = $2000, define = yes;
-
 }
-
 SEGMENTS {
     HEADER:   load = HEADER,          type = ro;
     STARTUP:  load = ROM0,            type = ro,  define = yes;
@@ -43,25 +43,19 @@ SEGMENTS {
     VECTORS:  load = ROMV,            type = rw;
     CHARS:    load = ROM2,            type = rw;
     BSS:      load = RAM,             type = bss, define = yes;
-    HEAP:     load = RAM,             type = bss, optional = yes;
     ZEROPAGE: load = ZP,              type = zp;
 }
-
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-
-SYMBOLS {
-    __STACKSIZE__: value = $0300, weak = yes; # 3 pages stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 7d89bcf6cd3d8fc26ba6130514bb9f4002dda6d3..3cbc2d700e96c20c61b6fdbbf980c3501bf74b7f 100644 (file)
@@ -1,31 +1,30 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:  start = $0000, size = $0001F, type = rw, define = yes;
-    RAM: start = %S,    size = $10000, file = %O;
+    ZP:  define = yes, start = $0000, size = $0001F;
+    RAM: file = %O,    start = %S,    size = $10000 - __STACKSIZE__;
 }
 SEGMENTS {
-    LOWCODE:  load = RAM, type = ro,               optional = yes;
-    INIT:     load = RAM, type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM, type = ro,                optional = yes;
+    INIT:     load = RAM, type = ro,  define = yes, optional = yes;
     CODE:     load = RAM, type = rw;
     RODATA:   load = RAM, type = rw;
     DATA:     load = RAM, type = rw;
     BSS:      load = RAM, type = bss, define = yes;
-    HEAP:     load = RAM, type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,  type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 33990c4f4c5f373bd7ff2c1be78c8a97b1b30309..6d224604e754ee8048c5d0be0cb3acfa9ef34497 100644 (file)
@@ -1,36 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0055, size = $001A, type = rw, define = yes;
-    HEADER: start = $03FF, size = $000E, file = %O;
-    RAM:    start = $040D, size = $7BF3, file = %O;
+    ZP:     define = yes, start = $0055, size = $001A;
+    HEADER: file = %O,    start = $03FF, size = $000E;
+    RAM:    file = %O,    start = $040D, size = $7BF3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
-
index 4b098cc79d4e78ad5d4611ce83b2c9039efcf35f..903a9debbd149188aee762995bb1eac0e08a5bed 100644 (file)
@@ -1,35 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+}
 MEMORY {
-    ZP:     start = $0002, size = $001A, type = rw, define = yes;
-    HEADER: start = $0FFF, size = $000E, file = %O;
-    RAM:    start = $100D, size = $ECF3, file = %O;
+    ZP:     define = yes, start = $0002, size = $001A;
+    HEADER: file = %O,    start = $0FFF, size = $000E;
+    RAM:    file = %O,    start = $100D, size = $ECF3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0800, weak = yes; # 2k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index fe0b4e39c390270cffe4e6546d0ad3a7dd49b4d2..7f3ee51ccb489a46c5f69218f747467c698a15b9 100644 (file)
@@ -16,7 +16,6 @@ MEMORY {
     BANKROM7: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
     ROM:      start = $c000, size = $4000, fill = yes, fillval = $FF, file = %O;
 }
-
 SEGMENTS {
     LOWCODE:  load = ROM,      type = ro,                optional = yes;
     INIT:     load = ROM,      type = ro,  define = yes, optional = yes;
@@ -29,8 +28,7 @@ SEGMENTS {
     BANK6:    load = BANKROM6, type = ro;
     BANK7:    load = BANKROM7, type = ro;
     ZEROPAGE: load = RAM,      type = bss, define = yes;
-    DATA:     load = RAM,      type = bss, offset = $0200, define = yes;
+    DATA:     load = RAM,      type = bss, define = yes, offset = $0200;
     BSS:      load = RAM,      type = bss, define = yes;
-    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
-    VECTOR:   load = ROM,      type = ro,  offset = $3FFA;
+    VECTOR:   load = ROM,      type = ro,                offset = $3FFA;
 }
index 1dbb8b5201fc0cf3c6a3f6f51ebd50f8bdbeb92b..5ec5db54e54d22e3b69bdcf7e3361f8cad85b2f0 100644 (file)
@@ -19,21 +19,19 @@ SEGMENTS {
     FFF0:     load = ROM,            type = ro,  offset = $3FF0;
     VECTOR:   load = ROM,            type = ro,  offset = $3FFA;
     BSS:      load = RAM,            type = bss, define = yes;
-    HEAP:     load = RAM,            type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,             type = zp,  define = yes;
 }
 FEATURES {
     CONDES: segment = INIT,
-            type = constructor,
-            label = __CONSTRUCTOR_TABLE__,
-            count = __CONSTRUCTOR_COUNT__;
+            type    = constructor,
+            label   = __CONSTRUCTOR_TABLE__,
+            count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-            type = destructor,
-            label = __DESTRUCTOR_TABLE__,
-            count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
+            type    = destructor,
+            label   = __DESTRUCTOR_TABLE__,
+            count   = __DESTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
-
index d8eadb693047ac66dd55d0e04bbc2d5992525fcf..4cafdecae986acdc257eb1ffefd2ab5ebd427fdd 100644 (file)
@@ -12,7 +12,6 @@ MEMORY {
     BANKROM3: start = $8000, size = $4000, fill = yes, fillval = $FF, file = %O;
     ROM:      start = $C000, size = $4000, fill = yes, fillval = $FF, file = %O;
 }
-
 SEGMENTS {
     LOWCODE:  load = ROM,      type = ro,                optional = yes;
     INIT:     load = ROM,      type = ro,  define = yes, optional = yes;
@@ -22,8 +21,7 @@ SEGMENTS {
     BANK2:    load = BANKROM2, type = ro;
     BANK3:    load = BANKROM3, type = ro;
     ZEROPAGE: load = RAM,      type = bss, define = yes;
-    DATA:     load = RAM,      type = bss, offset = $0200, define = yes;
+    DATA:     load = RAM,      type = bss, define = yes, offset = $0200;
     BSS:      load = RAM,      type = bss, define = yes;
-    HEAP:     load = RAM,      type = bss, optional = yes; # must sit just below stack
-    VECTOR:   load = ROM,      type = ro,  offset = $3FFA;
+    VECTOR:   load = ROM,      type = ro,                offset = $3FFA;
 }
index 19c5572ff4eddd5ea3e0b552548a95901121370a..22bfa446ed3d1f98dd9467ce70980989afc43296 100644 (file)
@@ -7,9 +7,8 @@ MEMORY {
     CPUSTACK: start = $0100, size = $0100;
     RAM:      start = $0200, size = $1E00, define = yes;
     VRAM:     start = $4000, size = $2000;
-    ROM:      start = $8000, size = $8000, fill = yes, fillval = $ff, file = %O, define = yes;
+    ROM:      start = $8000, size = $8000, fill = yes, fillval = $FF, file = %O, define = yes;
 }
-
 SEGMENTS {
     LOWCODE:  load = ROM,            type = ro,                optional = yes;
     INIT:     load = ROM,            type = ro,  define = yes, optional = yes;
@@ -19,21 +18,19 @@ SEGMENTS {
     FFF0:     load = ROM,            type = ro,  offset = $7FF0;
     VECTOR:   load = ROM,            type = ro,  offset = $7FFA;
     BSS:      load = RAM,            type = bss, define = yes;
-    HEAP:     load = RAM,            type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,             type = zp,  define = yes;
 }
-
 FEATURES {
     CONDES: segment = INIT,
-            type = constructor,
-            label = __CONSTRUCTOR_TABLE__,
-            count = __CONSTRUCTOR_COUNT__;
+            type    = constructor,
+            label   = __CONSTRUCTOR_TABLE__,
+            count   = __CONSTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+            type    = destructor,
+            label   = __DESTRUCTOR_TABLE__,
+            count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-            type = destructor,
-            label = __DESTRUCTOR_TABLE__,
-            count = __DESTRUCTOR_COUNT__;
-    CONDES: type = interruptor,
-           segment = RODATA,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 666cd15ea3f2db020cce4015409e6e9a142434d1..1aeffcc88ef1137d3a99d381e1b9f6fbb100fd91 100644 (file)
@@ -1,37 +1,37 @@
 # Memory configuration for the VIC-20 with 32K RAM Cartridge
 # Contributed by Stefan Haubenthal
+
+SYMBOLS {
+    __STACKSIZE__: value = $0400, weak = yes; # 1k stack
+}
 MEMORY {
-    ZP:     start = $0002, size = $001A, type = rw, define = yes;
-    HEADER: start = $11FF, size = $000E, file = %O;
-    RAM:    start = $120D, size = $6DF3, file = %O, define = yes;
+    ZP:                define = yes, start = $0002, size = $001A;
+    HEADER: file = %O,               start = $11FF, size = $000E;
+    RAM:    file = %O, define = yes, start = $120D, size = $6DF3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0400, weak = yes; # 1k stack
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
index 03eba699d628aa1a084fcc9beeecf0cabe0bc56e..e4afc6fab6a09cd7fea8075e929d4174b5afec89 100644 (file)
@@ -1,39 +1,34 @@
+SYMBOLS {
+    __STACKSIZE__: value = $0400, weak = yes; # 1k stack
+}
 MEMORY {
-    ZP:     start = $0002, size = $001A, type = rw, define = yes;
-    HEADER: start = $0FFF, size = $000E, file = %O;
-    RAM:    start = $100D, size = $0DF3, file = %O, define = yes;
+    ZP:                define = yes, start = $0002, size = $001A;
+    HEADER: file = %O,               start = $0FFF, size = $000E;
+    RAM:    file = %O, define = yes, start = $100D, size = $0DF3 - __STACKSIZE__;
 }
 SEGMENTS {
     EXEHDR:   load = HEADER, type = ro;
     STARTUP:  load = RAM,    type = ro;
-    LOWCODE:  load = RAM,    type = ro,               optional = yes;
-    INIT:     load = RAM,    type = ro, define = yes, optional = yes;
+    LOWCODE:  load = RAM,    type = ro,                optional = yes;
+    INIT:     load = RAM,    type = ro,  define = yes, optional = yes;
     CODE:     load = RAM,    type = ro;
     RODATA:   load = RAM,    type = ro;
     DATA:     load = RAM,    type = rw;
     ZPSAVE:   load = RAM,    type = bss;
     BSS:      load = RAM,    type = bss, define = yes;
-    HEAP:     load = RAM,    type = bss, optional = yes; # must sit just below stack
     ZEROPAGE: load = ZP,     type = zp;
 }
 FEATURES {
     CONDES: segment = INIT,
-           type = constructor,
-           label = __CONSTRUCTOR_TABLE__,
-           count = __CONSTRUCTOR_COUNT__;
+           type    = constructor,
+           label   = __CONSTRUCTOR_TABLE__,
+           count   = __CONSTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = destructor,
-           label = __DESTRUCTOR_TABLE__,
-           count = __DESTRUCTOR_COUNT__;
+           type    = destructor,
+           label   = __DESTRUCTOR_TABLE__,
+           count   = __DESTRUCTOR_COUNT__;
     CONDES: segment = RODATA,
-           type = interruptor,
-           label = __INTERRUPTOR_TABLE__,
-           count = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__: value = $0400, weak = yes; # 1k stack
-
+           type    = interruptor,
+           label   = __INTERRUPTOR_TABLE__,
+           count   = __INTERRUPTOR_COUNT__;
 }
-
-
-