]> git.sur5r.net Git - cc65/blobdiff - src/ld65/cfg/apple2-system.cfg
Additional linker configs for the Apple by Oliver Schmidt.
[cc65] / src / ld65 / cfg / apple2-system.cfg
diff --git a/src/ld65/cfg/apple2-system.cfg b/src/ld65/cfg/apple2-system.cfg
new file mode 100644 (file)
index 0000000..297fd34
--- /dev/null
@@ -0,0 +1,39 @@
+# Configuration for ProDOS 8 system programs (without the header)
+
+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;
+}
+SEGMENTS {
+    ZEROPAGE: load = ZP,              type = zp;
+    EXEHDR:   load = HEADER,          type = ro;
+    STARTUP:  load = RAM,             type = ro;
+    LOWCODE:  load = RAM,             type = ro;
+    CODE:     load = RAM,             type = ro;
+    RODATA:   load = RAM,             type = ro;
+    DATA:     load = RAM,             type = rw;
+    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;
+}
+FEATURES {
+    CONDES: segment = INIT,
+            type    = constructor,
+            label   = __CONSTRUCTOR_TABLE__,
+            count   = __CONSTRUCTOR_COUNT__;
+    CONDES: segment = RODATA,
+            type    = destructor,
+            label   = __DESTRUCTOR_TABLE__,
+            count   = __DESTRUCTOR_COUNT__;
+    CONDES: type    = interruptor,
+            segment = RODATA,
+            label   = __INTERRUPTOR_TABLE__,
+            count   = __INTERRUPTOR_COUNT__;
+}
+SYMBOLS {
+    __STACKSIZE__ = $0800; # 2k stack
+}