]> git.sur5r.net Git - cc65/blobdiff - cfg/pce.cfg
Significantly simplified recently added linker config files.
[cc65] / cfg / pce.cfg
index adb420f32bf70285f3ad12e8f7bcda21c11fe468..6332f8eff32e0c5da9a34a9430d6756497f7ce8f 100644 (file)
@@ -1,45 +1,46 @@
 # linker config to produce simple NEC PC-Engine cartridge (.pce)
 
 SYMBOLS {
-        __STACKSIZE__: type = weak, value = $0300; # 3 pages stack
+    __STACKSIZE__: type = weak, value = $0300; # 3 pages stack
 }
 
 MEMORY {
-        # FIXME: is this correct? the first 3? bytes cant be used?
-        ZP:  start = $03, size = $1A, type = rw, define = yes;
+    # FIXME: is this correct? the first 3? bytes cant be used?
+    ZP:   file = "", start = $0003, size = $00FD, type = rw,  define = yes;
 
-        # reset-bank and hardware vectors
-        ROM0: start = $e000, size = $1ff6, file = %O ,fill = yes, define = yes;
-        ROMV: start = $fff6, size = $a, file = %O,fill = yes;
+    # reset-bank and hardware vectors
+    ROM0: file = %O, start = $E000, size = $1FF6, fill = yes, define = yes;
+    ROMV: file = %O, start = $FFF6, size = $000A, fill = yes;
 
-        # first RAM page (also contains stack and zeropage)
-        RAM: start = $2200, size = $1e00, define = yes;
+    # first RAM page (also contains stack and zeropage)
+    RAM:  file = "", start = $2200, size = $1e00,             define = yes;
 }
 
 SEGMENTS {
-        STARTUP: load = ROM0, type = ro, define = yes;
-        INIT:    load = ROM0, type = ro, define = yes, optional = yes;
-        CODE:    load = ROM0, type = ro, define = yes;
-        RODATA:  load = ROM0, type = ro, define = yes;
-        DATA:    load = ROM0, run= RAM, type = rw, define = yes;
-        BSS:     load = RAM, type = bss, define = yes;
-        VECTORS: load = ROMV, type = rw, define = yes;
-        ZEROPAGE: load = ZP, type = zp, define = yes;
+    ZEROPAGE: load = ZP,              type = zp,  define = yes;
+    EXTZP:    load = ZP,              type = zp,  define = yes, optional = yes;
+    APPZP:    load = ZP,              type = zp,  define = yes, optional = yes;
+    STARTUP:  load = ROM0,            type = ro,  define = yes;
+    ONCE:     load = ROM0,            type = ro,                optional = yes;
+    CODE:     load = ROM0,            type = ro,  define = yes;
+    RODATA:   load = ROM0,            type = ro,  define = yes;
+    DATA:     load = ROM0, run = RAM, type = rw,  define = yes;
+    BSS:      load = RAM,             type = bss, define = yes;
+    VECTORS:  load = ROMV,            type = rw,  define = yes;
 }
 
 FEATURES {
     CONDES: type    = constructor,
             label   = __CONSTRUCTOR_TABLE__,
             count   = __CONSTRUCTOR_COUNT__,
-            segment = INIT;
+            segment = ONCE;
     CONDES: type    = destructor,
             label   = __DESTRUCTOR_TABLE__,
             count   = __DESTRUCTOR_COUNT__,
             segment = RODATA;
-# FIXME: interruptor support is missing
-#    CONDES: type    = interruptor,
-#            label   = __INTERRUPTOR_TABLE__,
-#            count   = __INTERRUPTOR_COUNT__,
-#            segment = RODATA,
-#            import  = __CALLIRQ__;
+    CONDES: type    = interruptor,
+            label   = __INTERRUPTOR_TABLE__,
+            count   = __INTERRUPTOR_COUNT__,
+            segment = RODATA,
+            import  = __CALLIRQ__;
 }