]> git.sur5r.net Git - cc65/commitdiff
Harmonized asm linker configs.
authorOliver Schmidt <ol.sc@web.de>
Thu, 17 Mar 2016 20:51:20 +0000 (21:51 +0100)
committerOliver Schmidt <ol.sc@web.de>
Thu, 17 Mar 2016 20:51:20 +0000 (21:51 +0100)
- All segments but CODE are optional and CODE is R/W. Both together allow to "just" write code/data without ever explicitly using a segment.

- Symbols are defined for the BSS. This allows to use/implement zerobss.

- The ZP memory area isn't artificially limited.

cfg/apple2-asm.cfg
cfg/apple2enh-asm.cfg
cfg/atari-asm.cfg
cfg/c64-asm.cfg
cfg/osic1p-asm.cfg

index 151ba84c45b86f503bebc34f723d9939f695971f..8e5abefc5466f25d067d0759c9913cb053692480 100644 (file)
@@ -12,7 +12,7 @@ MEMORY {
 SEGMENTS {
     ZEROPAGE: load = ZP,     type = zp,  optional = yes;
     EXEHDR:   load = HEADER, type = ro,  optional = yes;
-    CODE:     load = MAIN,   type = rw,  optional = yes;
+    CODE:     load = MAIN,   type = rw;
     RODATA:   load = MAIN,   type = ro,  optional = yes;
     DATA:     load = MAIN,   type = rw,  optional = yes;
     BSS:      load = BSS,    type = bss, optional = yes, define = yes;
index 151ba84c45b86f503bebc34f723d9939f695971f..8e5abefc5466f25d067d0759c9913cb053692480 100644 (file)
@@ -12,7 +12,7 @@ MEMORY {
 SEGMENTS {
     ZEROPAGE: load = ZP,     type = zp,  optional = yes;
     EXEHDR:   load = HEADER, type = ro,  optional = yes;
-    CODE:     load = MAIN,   type = rw,  optional = yes;
+    CODE:     load = MAIN,   type = rw;
     RODATA:   load = MAIN,   type = ro,  optional = yes;
     DATA:     load = MAIN,   type = rw,  optional = yes;
     BSS:      load = BSS,    type = bss, optional = yes, define = yes;
index bea5477659bb6a07df5827ed4bb1c324bf2a117c..6fc1c2caaa56712d586b75c5f555f2da3e8f0f6d 100644 (file)
@@ -3,7 +3,7 @@ FEATURES {
 }
 SYMBOLS {
     __EXEHDR__:       type = import;
-    __AUTOSTART__:    type = import;  # force inclusion of autostart "trailer"
+    __AUTOSTART__:    type = import; # force inclusion of autostart "trailer"
     __STARTADDRESS__: type = export, value = %S;
 }
 MEMORY {
@@ -18,13 +18,13 @@ MEMORY {
     TRAILER: file = %O,               start = $0000, size = $0006;
 }
 SEGMENTS {
-    ZEROPAGE: load = ZP,      type = zp,                optional = yes;
-    EXTZP:    load = ZP,      type = zp,                optional = yes; # to enable modules to be able to link to C and assembler programs
-    EXEHDR:   load = HEADER,  type = ro,                optional = yes;
-    MAINHDR:  load = MAINHDR, type = ro,                optional = yes;
-    CODE:     load = MAIN,    type = ro,  define = yes, optional = yes;
-    RODATA:   load = MAIN,    type = ro                 optional = yes;
-    DATA:     load = MAIN,    type = rw                 optional = yes;
-    BSS:      load = MAIN,    type = bss, define = yes, optional = yes;
-    AUTOSTRT: load = TRAILER, type = ro,                optional = yes;
+    ZEROPAGE: load = ZP,      type = zp,  optional = yes;
+    EXTZP:    load = ZP,      type = zp,  optional = yes; # to enable modules to be able to link to C and assembler programs
+    EXEHDR:   load = HEADER,  type = ro,  optional = yes;
+    MAINHDR:  load = MAINHDR, type = ro,  optional = yes;
+    CODE:     load = MAIN,    type = rw,                  define = yes;
+    RODATA:   load = MAIN,    type = ro   optional = yes;
+    DATA:     load = MAIN,    type = rw   optional = yes;
+    BSS:      load = MAIN,    type = bss, optional = yes, define = yes;
+    AUTOSTRT: load = TRAILER, type = ro,  optional = yes;
 }
index 25d12ee71f233435e369f936b2fa998464386be5..e2dda5362a8506cdfc13ae8e586d8908bb86935b 100644 (file)
@@ -5,7 +5,7 @@ SYMBOLS {
     __LOADADDR__: type = import;
 }
 MEMORY {
-    ZP:       file = "", start = $0002,  size = $001A,      define = yes;
+    ZP:       file = "", start = $0002,  size = $00FE,      define = yes;
     LOADADDR: file = %O, start = %S - 2, size = $0002;
     MAIN:     file = %O, start = %S,     size = $D000 - %S;
 }
@@ -13,8 +13,8 @@ SEGMENTS {
     ZEROPAGE: load = ZP,       type = zp,  optional = yes;
     LOADADDR: load = LOADADDR, type = ro;
     EXEHDR:   load = MAIN,     type = ro,  optional = yes;
-    CODE:     load = MAIN,     type = rw,  optional = yes;
+    CODE:     load = MAIN,     type = rw;
     RODATA:   load = MAIN,     type = ro,  optional = yes;
     DATA:     load = MAIN,     type = rw,  optional = yes;
-    BSS:      load = MAIN,     type = bss, optional = yes;
+    BSS:      load = MAIN,     type = bss, optional = yes, define = yes;
 }
index 1cebe444991c3b67c7842dcfe1eb58a22df7b86a..a16f248abccebd75e45ec9e14b1518364875b379 100644 (file)
@@ -10,15 +10,15 @@ SYMBOLS {
 }
 MEMORY {
     # for size of ZP, see runtime/zeropage.s and c1p/extzp.s
-    ZP:   file = "", define = yes, start = $0002, size = $001A + $0006;
+    ZP:   file = "", define = yes, start = $0002, size = $00FE;
     HEAD: file = %O,               start = $0000, size = $00B6;
-    MAIN: file = %O, define = yes, start = %S, size = __HIMEM__ - __STACKSIZE__ - %S;
+    MAIN: file = %O, define = yes, start = %S,    size = __HIMEM__ - __STACKSIZE__ - %S;
 }
 SEGMENTS {
-    ZEROPAGE: load = ZP,   type = zp;
+    ZEROPAGE: load = ZP,   type = zp,  optional = yes;
     BOOT:     load = HEAD, type = ro,  optional = yes;
     CODE:     load = MAIN, type = rw;
-    RODATA:   load = MAIN, type = rw;
-    DATA:     load = MAIN, type = rw;
-    BSS:      load = MAIN, type = bss, define   = yes;
+    RODATA:   load = MAIN, type = ro,  optional = yes;
+    DATA:     load = MAIN, type = rw,  optional = yes;
+    BSS:      load = MAIN, type = bss, optional = yes, define   = yes;
 }