]> git.sur5r.net Git - cc65/blobdiff - cfg/atarixl.cfg
Merge remote-tracking branch 'upstream/master'
[cc65] / cfg / atarixl.cfg
index ce7d98280e01df0157d8391560fe6b74c71d4d52..ceb4141af935c9fb4b687db6dbb6c205e6a54f6d 100644 (file)
@@ -1,10 +1,10 @@
 FEATURES {
-    STARTADDRESS: default = $2E00;
+    STARTADDRESS: default = $2400;
 }
 
 SYMBOLS {
     __STACKSIZE__:       type = weak, value = $0800; # 2k stack
-    __RESERVED_MEMORY__: type = weak, value = $0000;
+    __STARTADDRESS__:    type = export, value = %S;
     syschk:              type = import;  # force inclusion of SYSCHK
     sramprep:            type = import;  # force inclusion of SRPREP
 }
@@ -17,38 +17,47 @@ MEMORY {
 
 # "system check" load chunk
     SYSCHKHDR:     file = %O,               start = $0000,                  size = $0004;
-    SYSCHK:        file = %O,               start = $2E00,                  size = $0E00;
+    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;
-    SRPREP:        file = %O,               start = %S,                     size = $7C20 - %S - $04FF;  # $04FF: space for temp. chargen buffer, page aligned
+    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;
-    RAM:           file = %O, define = yes, start = %S + __SAVEAREA_SIZE__ + __ZPSAVE_SIZE__, size = $D000 - __STACKSIZE__ - %S - __SAVEAREA_SIZE__ - __ZPSAVE_SIZE__;
-
-# address of relocated character generator
-    CHARGEN:       file = "", define = yes, start = $D800, size = $0400;
-
-# memory beneath the ROM
-    RAM_BELOW_ROM: file = "",               start = $DC00, size = $FFF0 - $DC00;
+    RAM:           file = %O, define = yes, start = %S +
+                                                   __LOWDATA_SIZE__,       size = $D000 -
+                                                                                  __STACKSIZE__ -
+                                                                                  %S -
+                                                                                  __LOWDATA_SIZE__;
 
 # defines entry point into program
     TRAILER:       file = %O,               start = $0000, size = $0006;
+
+# memory beneath the ROM preceeding the character generator
+    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;
+
+# memory beneath the ROM
+    HIDDEN_RAM:    file = "", define = yes, start = $E400, size = $FFF0 - $E400;
 }
 
 SEGMENTS {
     EXEHDR:     load = HEADER,                      type = ro;
 
     SYSCHKHDR:  load = SYSCHKHDR,                   type = ro,                optional = yes;
-    SYSCHK:     load = SYSCHK,                      type = rw,  define = yes, optional = yes;
+    SYSCHK:     load = SYSCHKCHNK,                  type = rw,  define = yes, optional = yes;
+    SYSCHKTRL:  load = SYSCHKTRL,                   type = ro,                optional = yes;
 
     SRPREPHDR:  load = SRPREPHDR,                   type = ro;
-    SAVEAREA:   load = SRPREP,                      type = bss, define = yes;  # shared btw. SRPREP and RAM
-    ZPSAVE:     load = SRPREP,                      type = bss, define = yes;
-    SRPREP:     load = SRPREP,                      type = rw,  define = yes;
-    SHADOW_RAM: load = SRPREP, run = RAM_BELOW_ROM, type = rw,  define = yes, optional = yes;
+    LOWDATA:    load = SRPREPCHNK,                  type = bss, define = yes;  # shared btw. SRPREP and RAM
+    SRPREP:     load = SRPREPCHNK,                  type = rw,  define = yes;
+    SHADOW_RAM:  load = SRPREPCHNK, run = HIDDEN_RAM,  type = rw,  define = yes, optional = yes;
+    SHADOW_RAM2: load = SRPREPCHNK, run = HIDDEN_RAM2, type = rw,  define = yes, optional = yes;
     SRPREPTRL:  load = SRPREPTRL,                   type = ro;
 
     MAINHDR:    load = MAINHDR,                     type = ro;