]> git.sur5r.net Git - cc65/blobdiff - cfg/gamate.cfg
conio and most other stuff working now
[cc65] / cfg / gamate.cfg
index c6f2eed7d1d4ca0a6ffcc10aab078292a8d50e3f..577dfeb1d8fb9319dfa89cb7ada26e169038da81 100644 (file)
@@ -1,41 +1,39 @@
-# c version of 32kbyte config file
-# .data located in rom
-
-# ld65 config file
-# ld65 --config gamate.cfg -o <prog>.bin <prog>.o
+# linker config to produce simple Gamate cartridge (.bin)
 
 SYMBOLS {
-    __STARTUP__:    type = import;
-    __STACKSIZE__: type = weak, value = $0300; # 3 pages stack
+        __STARTUP__:   type = import;
+        __STACKSIZE__: type = weak, value = $0080; # 1 page stack
 }
 
 MEMORY {
-    ZP: start = $0000, size = $100;
-    CPUSTACK: start = $0100, size =$100;
-    RAM: start = $0200, size = $200, define = yes;
-#    ROM: start = $6000, size = $8000, fill = yes, fillval = $ff, file = %O, define = yes;
-#    STARTUP:   file = %O, define = yes, start = $6000, size = $29, fill = yes;
-#    ROM: start = $6000 + __STARTUP_SIZE__, size = $8000 - __STARTUP_SIZE__, fill = yes, fillval = $ff, file = %O, define = yes;
-# WARNING: fill value must be $00 else it will no more work
-    ROM: start = $6000, size = $8000, fill = yes, fillval = $00, file = %O, define = yes;
+        # 0000-03ff is RAM
+        # FIXME: what zp range can we actually use?
+        ZP: start = $0080, size = $80;
+        CPUSTACK: start = $0100, size =$100;
+        RAM: start = $0200, size = $180, define = yes;
+
+        # 6000-e000 can be (Cartridge) ROM
+        # WARNING: fill value must be $00 else it will no more work
+        #ROM: start = $6000, size = $1000, fill = yes, fillval = $00, file = %O, define = yes;
+        #ROMFILL: start = $7000, size = $7000, fill = yes, fillval = $00, file = %O, define = yes;
+        # for images that have code >$6fff we must calculate the checksum!
+        ROM: start = $6000, size = $8000, fill = yes, fillval = $00, file = %O, define = yes;
 }
 
 SEGMENTS {
-    ZEROPAGE: load = ZP, type = zp, define = yes;
-    STARTUP:   load = ROM,           type = ro, define=yes;
-    CODE: load = ROM, type = ro, define=yes;
-    RODATA: load = ROM, type = ro, define=yes;
-    DATA: load = ROM, run=RAM, type = rw, define = yes;
-    BSS: load = RAM, type = bss, 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 = ROM,           type = ro, define=yes;
+        INIT:    load = ROM, type = ro, define = yes, optional = yes;
+        CODE: load = ROM, type = ro, define=yes;
+        RODATA: load = ROM, type = ro, define=yes;
+        DATA: load = ROM, run=RAM, type = rw, define = yes;
+        BSS: load = RAM, type = bss, define = yes;
 }
 
 FEATURES {
-    CONDES: segment = RODATA,
-            type = constructor,
-            label = __CONSTRUCTOR_TABLE__,
-            count = __CONSTRUCTOR_COUNT__;
-    CONDES: segment = RODATA,
-            type = destructor,
-            label = __DESTRUCTOR_TABLE__,
-            count = __DESTRUCTOR_COUNT__;
+        CONDES: segment = RODATA, type = constructor, label = __CONSTRUCTOR_TABLE__, count = __CONSTRUCTOR_COUNT__;
+        CONDES: segment = RODATA, type = destructor,  label = __DESTRUCTOR_TABLE__,  count = __DESTRUCTOR_COUNT__;
+        CONDES: segment = RODATA, type = interruptor, label = __INTERRUPTOR_TABLE__, count = __INTERRUPTOR_COUNT__, import  = __CALLIRQ__;
 }