From: Oliver Schmidt 
Date: Thu, 17 Mar 2016 20:51:20 +0000 (+0100)
Subject: Harmonized asm linker configs.
X-Git-Tag: V2.16~157
X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=78dcb61cb8d59efa93ac8d5cb4fa08598553121a;p=cc65
Harmonized asm linker configs.
- 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.
---
diff --git a/cfg/apple2-asm.cfg b/cfg/apple2-asm.cfg
index 151ba84c4..8e5abefc5 100644
--- a/cfg/apple2-asm.cfg
+++ b/cfg/apple2-asm.cfg
@@ -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;
diff --git a/cfg/apple2enh-asm.cfg b/cfg/apple2enh-asm.cfg
index 151ba84c4..8e5abefc5 100644
--- a/cfg/apple2enh-asm.cfg
+++ b/cfg/apple2enh-asm.cfg
@@ -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;
diff --git a/cfg/atari-asm.cfg b/cfg/atari-asm.cfg
index bea547765..6fc1c2caa 100644
--- a/cfg/atari-asm.cfg
+++ b/cfg/atari-asm.cfg
@@ -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;
 }
diff --git a/cfg/c64-asm.cfg b/cfg/c64-asm.cfg
index 25d12ee71..e2dda5362 100644
--- a/cfg/c64-asm.cfg
+++ b/cfg/c64-asm.cfg
@@ -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;
 }
diff --git a/cfg/osic1p-asm.cfg b/cfg/osic1p-asm.cfg
index 1cebe4449..a16f248ab 100644
--- a/cfg/osic1p-asm.cfg
+++ b/cfg/osic1p-asm.cfg
@@ -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;
 }