]> git.sur5r.net Git - cc65/commitdiff
Added, to Plus4 and GEOS linker configure files, the ability to set the start and...
authorGreg King <gregdk@users.sf.net>
Thu, 3 Jan 2019 15:49:56 +0000 (10:49 -0500)
committerGreg King <gregdk@users.sf.net>
Thu, 3 Jan 2019 15:49:56 +0000 (10:49 -0500)
cfg/geos-apple.cfg
cfg/geos-cbm.cfg
cfg/plus4.cfg

index 2c9f6c5897c1313dcdd6fdb90d6a235855666fa2..98dcfb5aa6fd1b803d05ce51cf50e09a89bee21b 100644 (file)
@@ -1,15 +1,19 @@
+FEATURES {
+    STARTADDRESS: default = $4000;
+}
 SYMBOLS {
     __BACKBUFSIZE__: type = weak, value = $2000;
+    __HIMEM__:       type = weak, value = $C000 - __BACKBUFSIZE__;
     __OVERLAYSIZE__: type = weak, value = $0000;
-    __OVERLAYADDR__: type = weak, value = $C000 - __BACKBUFSIZE__ - __OVERLAYSIZE__;
-    __STACKSIZE__:   type = weak, value = $0400;
+    __OVERLAYADDR__: type = weak, value = __HIMEM__ - __OVERLAYSIZE__;
+    __STACKSIZE__:   type = weak, value = $0400; # 1k stack
     __STACKADDR__:   type = weak, value = $2000 - __STACKSIZE__;
 }
 MEMORY {
     CVT:    file   = %O,  start = $0,              size = $20000;
     ZP:     define = yes, start = $80,             size = $1A + $06;
-    EXT:    define = yes, start = $0C00,           size = __STACKADDR__ - $0C00;
-    VLIR0:  define = yes, start = $4000,           size = __OVERLAYADDR__ - $4000;
+    EXT:    define = yes, start = $0C00,           size = __STACKADDR__ - __EXT_START__;
+    VLIR0:  define = yes, start = %S,              size = __OVERLAYADDR__ - %S;
     VLIR1:  define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__;
     VLIR2:  define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__;
     VLIR3:  define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__;
index d2e896fa5e50eefbf27e8d872c0d35ea9d701784..4bf33fdf566045c08ddd3dfe0fb5ae57b75f5b5a 100644 (file)
@@ -1,14 +1,18 @@
+FEATURES {
+    STARTADDRESS: default = $0400;
+}
 SYMBOLS {
     __BACKBUFSIZE__: type = weak, value = $2000;
+    __HIMEM__:       type = weak, value = $8000 - __BACKBUFSIZE__;
     __OVERLAYSIZE__: type = weak, value = $0000;
-    __OVERLAYADDR__: type = weak, value = $8000 - __BACKBUFSIZE__ - __OVERLAYSIZE__;
-    __STACKSIZE__:   type = weak, value = $0400;
+    __OVERLAYADDR__: type = weak, value = __HIMEM__ - __OVERLAYSIZE__;
+    __STACKSIZE__:   type = weak, value = $0400; # 1k stack
     __STACKADDR__:   type = weak, value = __OVERLAYADDR__ - __STACKSIZE__;
 }
 MEMORY {
     CVT:    file   = %O,  start = $0,              size = $40000;
     ZP:     define = yes, start = $58,             size = $1A + $06;
-    VLIR0:  define = yes, start = $0400,           size = __STACKADDR__ - $0400;
+    VLIR0:  define = yes, start = %S,              size = __STACKADDR__ - %S;
     VLIR1:  define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__;
     VLIR2:  define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__;
     VLIR3:  define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__;
index 802f1076eecea872fc3890a5fce1264d90a0dc20..b7199e00885cbc5ca0e200424d86cc716ac1afb1 100644 (file)
@@ -1,13 +1,17 @@
+FEATURES {
+    STARTADDRESS: default = $1001;
+}
 SYMBOLS {
     __LOADADDR__:  type = import;
     __EXEHDR__:    type = import;
     __STACKSIZE__: type = weak, value = $0800; # 2k stack
+    __HIMEM__:     type = weak, value = $FD00;
 }
 MEMORY {
-    ZP:       file = "", define = yes, start = $0002, size = $001A;
-    LOADADDR: file = %O,               start = $0FFF, size = $0002;
-    HEADER:   file = %O,               start = $1001, size = $000C;
-    MAIN:     file = %O, define = yes, start = $100D, size = $ECF3 - __STACKSIZE__;
+    ZP:       file = "", define = yes, start = $0002,           size = $001A;
+    LOADADDR: file = %O,               start = %S - 2,          size = $0002;
+    HEADER:   file = %O, define = yes, start = %S,              size = $000D;
+    MAIN:     file = %O, define = yes, start = __HEADER_LAST__, size = __HIMEM__ - __MAIN_START__ - __STACKSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,       type = zp;
@@ -15,8 +19,8 @@ SEGMENTS {
     EXEHDR:   load = HEADER,   type = ro;
     STARTUP:  load = MAIN,     type = ro;
     LOWCODE:  load = MAIN,     type = ro,  optional = yes;
-    ONCE:     load = MAIN,     type = ro,  optional = yes;
     CODE:     load = MAIN,     type = ro;
+    ONCE:     load = MAIN,     type = ro,  optional = yes;
     RODATA:   load = MAIN,     type = ro;
     DATA:     load = MAIN,     type = rw;
     INIT:     load = MAIN,     type = bss;