]> git.sur5r.net Git - cc65/blobdiff - cfg/apple2-hgr.cfg
Added Apple II linker configs for programs including a hires screen.
[cc65] / cfg / apple2-hgr.cfg
diff --git a/cfg/apple2-hgr.cfg b/cfg/apple2-hgr.cfg
new file mode 100644 (file)
index 0000000..540578b
--- /dev/null
@@ -0,0 +1,52 @@
+# Configuration for programs including a hires screen (with 6KB LOWCODE)
+
+FEATURES {
+    STARTADDRESS: default = $0803;
+}
+SYMBOLS {
+    __EXEHDR__:     type = import;
+    __STACKSIZE__:  type = weak,   value = $0800; # 2k stack
+    __HIMEM__:      type = weak,   value = $9600; # Presumed RAM end
+    __LCADDR__:     type = weak,   value = $D400; # Behind quit code
+    __LCSIZE__:     type = weak,   value = $0C00; # Rest of bank two
+    __MAIN_START__: type = export, value = %S;
+    __MAIN_LAST__:  type = export, value = __HIGH_LAST__;
+}
+MEMORY {
+    ZP:     file = "", define = yes, start = $0080,        size = $001A;
+    HEADER: file = %O,               start = %S - 4,       size = $0004;
+    LOW:    file = %O, fill   = yes, start = %S,           size = $2000 - %S;
+    HGR:    file = %O, fill   = yes, start = $2000,        size = $2000;
+    HIGH:   file = %O, define = yes, start = $4000,        size = __HIMEM__ - $4000;
+    BSS:    file = "",               start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
+    LC:     file = "", define = yes, start = __LCADDR__,   size = __LCSIZE__;
+}
+SEGMENTS {
+    ZEROPAGE: load = ZP,             type = zp;
+    EXEHDR:   load = HEADER,         type = ro;
+    STARTUP:  load = LOW,            type = ro;
+    LOWCODE:  load = LOW,            type = ro,  optional = yes;
+    HGR:      load = HGR,            type = rw,  optional = yes;
+    CODE:     load = HIGH,           type = ro;
+    RODATA:   load = HIGH,           type = ro;
+    DATA:     load = HIGH,           type = rw;
+    INIT:     load = HIGH,           type = rw;
+    ONCE:     load = HIGH,           type = ro,  define   = yes;
+    LC:       load = HIGH, run = LC, type = ro,  optional = yes;
+    BSS:      load = BSS,            type = bss, define   = yes;
+}
+FEATURES {
+    CONDES: type    = constructor,
+            label   = __CONSTRUCTOR_TABLE__,
+            count   = __CONSTRUCTOR_COUNT__,
+            segment = ONCE;
+    CONDES: type    = destructor,
+            label   = __DESTRUCTOR_TABLE__,
+            count   = __DESTRUCTOR_COUNT__,
+            segment = RODATA;
+    CONDES: type    = interruptor,
+            label   = __INTERRUPTOR_TABLE__,
+            count   = __INTERRUPTOR_COUNT__,
+            segment = RODATA,
+            import  = __CALLIRQ__;
+}