]> git.sur5r.net Git - cc65/blobdiff - src/ld65/cfg/apple2-system.cfg
Just some beautification.
[cc65] / src / ld65 / cfg / apple2-system.cfg
index 297fd3422df52256dd8e37dde2b1c6727a53565a..d3df44d052999a4eb30d79a73fc58c701ce3bea7 100644 (file)
@@ -1,16 +1,22 @@
 # Configuration for ProDOS 8 system programs (without the header)
 
+SYMBOLS {
+    __LCADDR__:    type = weak, value = $D400; # Behind quit code
+    __LCSIZE__:    type = weak, value = $0C00; # Rest of bank two
+    __STACKSIZE__: type = weak, value = $0800; # 2k stack
+    __LOADADDR__:  type = weak, value = __STARTUP_RUN__;
+    __LOADSIZE__:  type = weak, value = __ZPSAVE_RUN__ - __STARTUP_RUN__ +
+                                        __MOVE_LAST__  - __MOVE_START__;
+}
 MEMORY {
-    ZP:     start = $0080, size = $001A,            define = yes;
-    HEADER: start = $0000, size = $0004, file = "";
-    RAM:    start = $2000, size = $9F00, file = %O, define = yes;
-    MOVE:   start = $0000, size = $FFFF, file = %O, define = yes;
-    LC:     start = $D400, size = $0C00,            define = yes;
+    ZP:              define = yes, start = $0080,      size = $001A;
+    RAM:  file = %O,               start = $2000,      size = $9F00 - __STACKSIZE__;
+    MOVE: file = %O, define = yes, start = $0000,      size = $FFFF;
+    LC:              define = yes, start = __LCADDR__, size = __LCSIZE__;
 }
 SEGMENTS {
     ZEROPAGE: load = ZP,              type = zp;
-    EXEHDR:   load = HEADER,          type = ro;
-    STARTUP:  load = RAM,             type = ro;
+    STARTUP:  load = RAM,             type = ro,  define   = yes;
     LOWCODE:  load = RAM,             type = ro;
     CODE:     load = RAM,             type = ro;
     RODATA:   load = RAM,             type = ro;
@@ -18,22 +24,20 @@ SEGMENTS {
     ZPSAVE:   load = RAM,             type = bss, define   = yes;
     BSS:      load = RAM,             type = bss, define   = yes;
     INIT:     load = MOVE, run = RAM, type = ro,  define   = yes;
-    HIGHCODE: load = MOVE, run = LC,  type = ro,  optional = yes;
+    LC:       load = MOVE, run = LC,  type = ro,  optional = yes;
 }
 FEATURES {
-    CONDES: segment = INIT,
-            type    = constructor,
+    CONDES: type    = constructor,
             label   = __CONSTRUCTOR_TABLE__,
-            count   = __CONSTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type    = destructor,
+            count   = __CONSTRUCTOR_COUNT__,
+            segment = INIT;
+    CONDES: type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
-            count   = __DESTRUCTOR_COUNT__;
+            count   = __DESTRUCTOR_COUNT__,
+            segment = RODATA;
     CONDES: type    = interruptor,
-            segment = RODATA,
             label   = __INTERRUPTOR_TABLE__,
-            count   = __INTERRUPTOR_COUNT__;
-}
-SYMBOLS {
-    __STACKSIZE__ = $0800; # 2k stack
+            count   = __INTERRUPTOR_COUNT__,
+            segment = RODATA,
+            import  = __CALLIRQ__;
 }