]> git.sur5r.net Git - cc65/commitdiff
Fixed INIT properties.
authorOliver Schmidt <ol.sc@web.de>
Sun, 13 Mar 2016 21:18:51 +0000 (22:18 +0100)
committerOliver Schmidt <ol.sc@web.de>
Sun, 13 Mar 2016 21:18:51 +0000 (22:18 +0100)
The main chunk load header references __BSS_LOAD__ so BSS must be the first bss type segment. Subsequent changes will move ONCE to share its address with the BSS. Then it'll be necessary to load INIT from disk. Therefore we do it right now.

cfg/atari-overlay.cfg
cfg/atari.cfg
cfg/atarixl-largehimem.cfg
cfg/atarixl-overlay.cfg
cfg/atarixl.cfg

index 1dec49b7d01f111ec7445dd94dd083062bc69c71..87e62d7648936db308695de14d71e4f41f4426d4 100644 (file)
@@ -11,31 +11,31 @@ SYMBOLS {
     __RESERVED_MEMORY__: type = weak, value = $0000;
 }
 MEMORY {
-    ZP:         file = "", define = yes, start = $0082, size = $007E;
+    ZP:         file = "", define = yes, start = $0082,                size = $007E;
 
 # file header, just $FFFF
-    HEADER:     file = %O,               start = $0000, size = $0002;
+    HEADER:     file = %O,               start = $0000,                size = $0002;
 
 # "system check" load chunk
-    SYSCHKHDR:  file = %O,               start = $0000, size = $0004;
-    SYSCHKCHNK: file = %O,               start = $2E00, size = $0300;
-    SYSCHKTRL:  file = %O,               start = $0000, size = $0006;
+    SYSCHKHDR:  file = %O,               start = $0000,                size = $0004;
+    SYSCHKCHNK: file = %O,               start = $2E00,                size = $0300;
+    SYSCHKTRL:  file = %O,               start = $0000,                size = $0006;
 
 # "main program" load chunk
-    MAINHDR:    file = %O,               start = $0000, size = $0004;
-    MAIN:       file = %O, define = yes, start = %S + __OVERLAYSIZE__,
-                                                           size = $BC20 - __OVERLAYSIZE__ - __STACKSIZE__ - __RESERVED_MEMORY__ - %S;
-    TRAILER:    file = %O,               start = $0000, size = $0006;
+    MAINHDR:    file = %O,               start = $0000,                size = $0004;
+    MAIN:       file = %O, define = yes, start = %S + __OVERLAYSIZE__, size = $BC20 - __OVERLAYSIZE__ - __STACKSIZE__ - __RESERVED_MEMORY__ - %S;
+    TRAILER:    file = %O,               start = $0000,                size = $0006;
 
-    OVL1:       file = "%O.1",           start = %S,    size = __OVERLAYSIZE__;
-    OVL2:       file = "%O.2",           start = %S,    size = __OVERLAYSIZE__;
-    OVL3:       file = "%O.3",           start = %S,    size = __OVERLAYSIZE__;
-    OVL4:       file = "%O.4",           start = %S,    size = __OVERLAYSIZE__;
-    OVL5:       file = "%O.5",           start = %S,    size = __OVERLAYSIZE__;
-    OVL6:       file = "%O.6",           start = %S,    size = __OVERLAYSIZE__;
-    OVL7:       file = "%O.7",           start = %S,    size = __OVERLAYSIZE__;
-    OVL8:       file = "%O.8",           start = %S,    size = __OVERLAYSIZE__;
-    OVL9:       file = "%O.9",           start = %S,    size = __OVERLAYSIZE__;
+# overlays
+    OVL1:       file = "%O.1",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL2:       file = "%O.2",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL3:       file = "%O.3",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL4:       file = "%O.4",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL5:       file = "%O.5",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL6:       file = "%O.6",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL7:       file = "%O.7",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL8:       file = "%O.8",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL9:       file = "%O.9",           start = %S,                   size = __OVERLAYSIZE__;
 }
 SEGMENTS {
     ZEROPAGE:  load = ZP,         type = zp;
@@ -51,7 +51,7 @@ SEGMENTS {
     CODE:      load = MAIN,       type = ro,  define = yes;
     RODATA:    load = MAIN,       type = ro;
     DATA:      load = MAIN,       type = rw;
-    INIT:      load = MAIN,       type = bss,               optional = yes;
+    INIT:      load = MAIN,       type = rw,                optional = yes;
     BSS:       load = MAIN,       type = bss, define = yes;
     AUTOSTRT:  load = TRAILER,    type = ro;
     OVERLAY1:  load = OVL1,       type = ro,  define = yes, optional = yes;
index 959a07e4c8e24d1643cd9b2ef05b80c5a4b8798f..4680a89edb0537cefb773d053171f75a1d43ae5e 100644 (file)
@@ -39,7 +39,7 @@ SEGMENTS {
     CODE:      load = MAIN,       type = ro,  define = yes;
     RODATA:    load = MAIN,       type = ro;
     DATA:      load = MAIN,       type = rw;
-    INIT:      load = MAIN,       type = bss,               optional = yes;
+    INIT:      load = MAIN,       type = rw,                optional = yes;
     BSS:       load = MAIN,       type = bss, define = yes;
     AUTOSTRT:  load = TRAILER,    type = ro;
 }
index 94405fce2459e5e95286005c47342d22b29df6d8..56d2af15bbbdcf6d3e57ec195f1087e87039e275 100644 (file)
@@ -6,7 +6,6 @@
 FEATURES {
     STARTADDRESS: default = $2400;
 }
-
 SYMBOLS {
     __EXEHDR__:       type = import;
     __SYSTEM_CHECK__: type = import;  # force inclusion of "system check" load chunk
@@ -14,41 +13,35 @@ SYMBOLS {
     __STACKSIZE__:    type = weak, value = $0800; # 2k stack
     __STARTADDRESS__: type = export, value = %S;
 }
-
 MEMORY {
-    ZP:         file = "", define = yes, start = $0082,                  size = $007E;
+    ZP:         file = "", define = yes, start = $0082,                size = $007E;
 
 # just $FFFF
-    HEADER:     file = %O,               start = $0000,                  size = $0002;
+    HEADER:     file = %O,               start = $0000,                size = $0002;
 
 # "system check" load chunk
-    SYSCHKHDR:  file = %O,               start = $0000,                  size = $0004;
-    SYSCHKCHNK: file = %O,               start = $2E00,                  size = $0300;
-    SYSCHKTRL:  file = %O,               start = $0000,                  size = $0006;
+    SYSCHKHDR:  file = %O,               start = $0000,                size = $0004;
+    SYSCHKCHNK: file = %O,               start = $2E00,                size = $0300;
+    SYSCHKTRL:  file = %O,               start = $0000,                size = $0006;
 
 # "shadow RAM preparation" load chunk
-    SRPREPHDR:  file = %O,               start = $0000,                  size = $0004;
-    SRPREPCHNK: file = %O, define = yes, start = %S,                     size = $7C20 - %S - $07FF;  # $07FF: space for temp. chargen buffer, 1K aligned
-    SRPREPTRL:  file = %O,               start = $0000,                  size = $0006;
+    SRPREPHDR:  file = %O,               start = $0000,                size = $0004;
+    SRPREPCHNK: file = %O, define = yes, start = %S,                   size = $7C20 - %S - $07FF;  # $07FF: space for temp. chargen buffer, 1K aligned
+    SRPREPTRL:  file = %O,               start = $0000,                size = $0006;
 
 # "main program" load chunk
-    MAINHDR:    file = %O,               start = $0000,                  size = $0004;
-    MAIN:       file = %O, define = yes, start = %S +
-                                                 __LOWBSS_SIZE__,        size = $D000 -
-                                                                                __STACKSIZE__ -
-                                                                                %S -
-                                                                                __LOWBSS_SIZE__;
+    MAINHDR:    file = %O,               start = $0000,                size = $0004;
+    MAIN:       file = %O, define = yes, start = %S + __LOWBSS_SIZE__, size = $D000 - __STACKSIZE__ - %S - __LOWBSS_SIZE__;
 
 # defines entry point into program
-    TRAILER:    file = %O,               start = $0000, size = $0006;
+    TRAILER:    file = %O,               start = $0000,                size = $0006;
 
 # address of relocated character generator
-    CHARGEN:    file = "", define = yes, start = $D800, size = $0400;
+    CHARGEN:    file = "", define = yes, start = $D800,                size = $0400;
 
 # memory beneath the ROM
-    HIDDEN_RAM: file = "", define = yes, start = $DC00, size = $FFFA - $DC00;
+    HIDDEN_RAM: file = "", define = yes, start = $DC00,                size = $FFFA - $DC00;
 }
-
 SEGMENTS {
     ZEROPAGE:    load = ZP,                           type = zp;
     EXTZP:       load = ZP,                           type = zp,                optional = yes;
@@ -73,7 +66,7 @@ SEGMENTS {
     CODE:        load = MAIN,                         type = ro,  define = yes;
     RODATA:      load = MAIN,                         type = ro;
     DATA:        load = MAIN,                         type = rw;
-    INIT:        load = MAIN,                         type = bss,               optional = yes;
+    INIT:        load = MAIN,                         type = rw,                optional = yes;
     BSS:         load = MAIN,                         type = bss, define = yes;
     AUTOSTRT:    load = TRAILER,                      type = ro;
 }
index 89240170b25948c2d0575d1f0a5e60ab0a66f075..923436497558b77768bae748419c37b8d78291b9 100644 (file)
@@ -1,7 +1,6 @@
 FEATURES {
     STARTADDRESS: default = $2400;
 }
-
 SYMBOLS {
     __EXEHDR__:       type = import;
     __SYSTEM_CHECK__: type = import;  # force inclusion of "system check" load chunk
@@ -10,57 +9,50 @@ SYMBOLS {
     __OVERLAYSIZE__:  type = weak, value = $1000; # 4k overlay
     __STARTADDRESS__: type = export, value = %S;
 }
-
 MEMORY {
-    ZP:          file = "", define = yes, start = $0082,                  size = $007E;
+    ZP:          file = "", define = yes, start = $0082,                size = $007E;
 
 # just $FFFF
-    HEADER:      file = %O,               start = $0000,                  size = $0002;
+    HEADER:      file = %O,               start = $0000,                size = $0002;
 
 # "system check" load chunk
-    SYSCHKHDR:   file = %O,               start = $0000,                  size = $0004;
-    SYSCHKCHNK:  file = %O,               start = $2E00,                  size = $0300;
-    SYSCHKTRL:   file = %O,               start = $0000,                  size = $0006;
+    SYSCHKHDR:   file = %O,               start = $0000,                size = $0004;
+    SYSCHKCHNK:  file = %O,               start = $2E00,                size = $0300;
+    SYSCHKTRL:   file = %O,               start = $0000,                size = $0006;
 
 # "shadow RAM preparation" load chunk
-    SRPREPHDR:   file = %O,               start = $0000,                  size = $0004;
-    SRPREPCHNK:  file = %O, define = yes, start = %S + __OVERLAYSIZE__,   size = $7C20 - %S - __OVERLAYSIZE__ - $07FF;  # $07FF: space for temp. chargen buffer, 1K aligned
-    SRPREPTRL:   file = %O,               start = $0000,                  size = $0006;
+    SRPREPHDR:   file = %O,               start = $0000,                size = $0004;
+    SRPREPCHNK:  file = %O, define = yes, start = %S + __OVERLAYSIZE__, size = $7C20 - %S - __OVERLAYSIZE__ - $07FF;  # $07FF: space for temp. chargen buffer, 1K aligned
+    SRPREPTRL:   file = %O,               start = $0000,                size = $0006;
 
 # "main program" load chunk
-    MAINHDR:     file = %O,               start = $0000,                  size = $0004;
-    MAIN:        file = %O, define = yes, start = %S +
-                                                  __OVERLAYSIZE__ +
-                                                  __LOWBSS_SIZE__,        size = $D000 -
-                                                                                 __STACKSIZE__ -
-                                                                                 %S -
-                                                                                 __OVERLAYSIZE__ -
-                                                                                 __LOWBSS_SIZE__;
+    MAINHDR:     file = %O,               start = $0000,                size = $0004;
+    MAIN:        file = %O, define = yes, start = %S + __OVERLAYSIZE__ +
+                                                       __LOWBSS_SIZE__, size = $D000 - __STACKSIZE__ - %S - __OVERLAYSIZE__ - __LOWBSS_SIZE__;
 
 # defines entry point into program
-    TRAILER:     file = %O,               start = $0000, size = $0006;
+    TRAILER:     file = %O,               start = $0000,                size = $0006;
 
 # memory beneath the ROM preceeding the character generator
-    HIDDEN_RAM2: file = "", define = yes, start = $D800, size = $0800;
+    HIDDEN_RAM2: file = "", define = yes, start = $D800,                size = $0800;
 
 # address of relocated character generator (same addess as ROM version)
-    CHARGEN:     file = "", define = yes, start = $E000, size = $0400;
+    CHARGEN:     file = "", define = yes, start = $E000,                size = $0400;
 
 # memory beneath the ROM
-    HIDDEN_RAM:  file = "", define = yes, start = $E400, size = $FFFA - $E400;
+    HIDDEN_RAM:  file = "", define = yes, start = $E400,                size = $FFFA - $E400;
 
 # overlays
-    OVL1:        file = "%O.1",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL2:        file = "%O.2",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL3:        file = "%O.3",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL4:        file = "%O.4",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL5:        file = "%O.5",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL6:        file = "%O.6",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL7:        file = "%O.7",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL8:        file = "%O.8",           start = %S,                     size = __OVERLAYSIZE__;
-    OVL9:        file = "%O.9",           start = %S,                     size = __OVERLAYSIZE__;
+    OVL1:        file = "%O.1",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL2:        file = "%O.2",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL3:        file = "%O.3",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL4:        file = "%O.4",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL5:        file = "%O.5",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL6:        file = "%O.6",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL7:        file = "%O.7",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL8:        file = "%O.8",           start = %S,                   size = __OVERLAYSIZE__;
+    OVL9:        file = "%O.9",           start = %S,                   size = __OVERLAYSIZE__;
 }
-
 SEGMENTS {
     ZEROPAGE:    load = ZP,                            type = zp;
     EXTZP:       load = ZP,                            type = zp,                optional = yes;
@@ -85,7 +77,7 @@ SEGMENTS {
     CODE:        load = MAIN,                          type = ro,  define = yes;
     RODATA:      load = MAIN,                          type = ro;
     DATA:        load = MAIN,                          type = rw;
-    INIT:        load = MAIN,                          type = bss,               optional = yes;
+    INIT:        load = MAIN,                          type = rw,                optional = yes;
     BSS:         load = MAIN,                          type = bss, define = yes;
     AUTOSTRT:    load = TRAILER,                       type = ro;
 
index 9573fc78cbdc8920aa40cbc3e7ff073ac5722b62..197daace6a67b18fc9a4b4b38c32b72e8edf1b36 100644 (file)
@@ -1,7 +1,6 @@
 FEATURES {
     STARTADDRESS: default = $2400;
 }
-
 SYMBOLS {
     __EXEHDR__:       type = import;
     __SYSTEM_CHECK__: type = import;  # force inclusion of "system check" load chunk
@@ -9,44 +8,38 @@ SYMBOLS {
     __STACKSIZE__:    type = weak, value = $0800; # 2k stack
     __STARTADDRESS__: type = export, value = %S;
 }
-
 MEMORY {
-    ZP:          file = "", define = yes, start = $0082,                  size = $007E;
+    ZP:          file = "", define = yes, start = $0082,                size = $007E;
 
 # just $FFFF
-    HEADER:      file = %O,               start = $0000,                  size = $0002;
+    HEADER:      file = %O,               start = $0000,                size = $0002;
 
 # "system check" load chunk
-    SYSCHKHDR:   file = %O,               start = $0000,                  size = $0004;
-    SYSCHKCHNK:  file = %O,               start = $2E00,                  size = $0300;
-    SYSCHKTRL:   file = %O,               start = $0000,                  size = $0006;
+    SYSCHKHDR:   file = %O,               start = $0000,                size = $0004;
+    SYSCHKCHNK:  file = %O,               start = $2E00,                size = $0300;
+    SYSCHKTRL:   file = %O,               start = $0000,                size = $0006;
 
 # "shadow RAM preparation" load chunk
-    SRPREPHDR:   file = %O,               start = $0000,                  size = $0004;
-    SRPREPCHNK:  file = %O, define = yes, start = %S,                     size = $7C20 - %S - $07FF;  # $07FF: space for temp. chargen buffer, 1K aligned
-    SRPREPTRL:   file = %O,               start = $0000,                  size = $0006;
+    SRPREPHDR:   file = %O,               start = $0000,                size = $0004;
+    SRPREPCHNK:  file = %O, define = yes, start = %S,                   size = $7C20 - %S - $07FF;  # $07FF: space for temp. chargen buffer, 1K aligned
+    SRPREPTRL:   file = %O,               start = $0000,                size = $0006;
 
 # "main program" load chunk
-    MAINHDR:     file = %O,               start = $0000,                  size = $0004;
-    MAIN:        file = %O, define = yes, start = %S +
-                                                  __LOWBSS_SIZE__,        size = $D000 -
-                                                                                 __STACKSIZE__ -
-                                                                                 %S -
-                                                                                 __LOWBSS_SIZE__;
+    MAINHDR:     file = %O,               start = $0000,                size = $0004;
+    MAIN:        file = %O, define = yes, start = %S + __LOWBSS_SIZE__, size = $D000 - __STACKSIZE__ - %S - __LOWBSS_SIZE__;
 
 # defines entry point into program
-    TRAILER:     file = %O,               start = $0000, size = $0006;
+    TRAILER:     file = %O,               start = $0000,                size = $0006;
 
 # memory beneath the ROM preceeding the character generator
-    HIDDEN_RAM2: file = "", define = yes, start = $D800, size = $0800;
+    HIDDEN_RAM2: file = "", define = yes, start = $D800,                size = $0800;
 
 # address of relocated character generator (same addess as ROM version)
-    CHARGEN:     file = "", define = yes, start = $E000, size = $0400;
+    CHARGEN:     file = "", define = yes, start = $E000,                size = $0400;
 
 # memory beneath the ROM
-    HIDDEN_RAM:  file = "", define = yes, start = $E400, size = $FFFA - $E400;
+    HIDDEN_RAM:  file = "", define = yes, start = $E400,                size = $FFFA - $E400;
 }
-
 SEGMENTS {
     ZEROPAGE:    load = ZP,                            type = zp;
     EXTZP:       load = ZP,                            type = zp,                optional = yes;
@@ -71,7 +64,7 @@ SEGMENTS {
     CODE:        load = MAIN,                          type = ro,  define = yes;
     RODATA:      load = MAIN,                          type = ro;
     DATA:        load = MAIN,                          type = rw;
-    INIT:        load = MAIN,                          type = bss,               optional = yes;
+    INIT:        load = MAIN,                          type = rw,                optional = yes;
     BSS:         load = MAIN,                          type = bss, define = yes;
     AUTOSTRT:    load = TRAILER,                       type = ro;
 }