From 35c963e9dcb4274c078436e13d708adc33b71604 Mon Sep 17 00:00:00 2001
From: Oliver Schmidt
Date: Thu, 2 Jan 2020 13:16:03 +0100
Subject: [PATCH] Adjusted linker configuration.
Unfortunately cc65 linker configurations tend to need adjustments when upgrading to later cc65 versions. With this change the linker config works with cc65 V2.18.
---
src/c64/chess.cfg | 50 ++++++++++++++++++++++++-----------------------
1 file changed, 26 insertions(+), 24 deletions(-)
diff --git a/src/c64/chess.cfg b/src/c64/chess.cfg
index 7556eb1..359ba2f 100644
--- a/src/c64/chess.cfg
+++ b/src/c64/chess.cfg
@@ -1,39 +1,41 @@
SYMBOLS {
__LOADADDR__: type = import;
__EXEHDR__: type = import;
- __STACKSIZE__: type = weak, value = $0800; # 2k stack
+ __STACKSIZE__: type = weak, value = $0800; # 2k stack
+ __HIMEM__: type = weak, value = $D000;
}
MEMORY {
ZP: file = "", define = yes, start = $0002, size = $001A;
LOADADDR: file = %O, start = $07FF, size = $0002;
HEADER: file = %O, start = $0801, size = $000C;
- RAM1: file = %O, define = yes, start = $080D, size = $7BF3;
- RAM: file = %O, define = yes, start = $9000, size = $3C00 - __STACKSIZE__;
+ MAIN: file = %O, define = yes, start = $080D, size = $7BF3;
+ BSS: file = "", start = $9000, size = $3C00 - __STACKSIZE__;
}
SEGMENTS {
+ ZEROPAGE: load = ZP, type = zp;
LOADADDR: load = LOADADDR, type = ro;
EXEHDR: load = HEADER, type = ro;
- STARTUP: load = RAM1, type = ro;
- LOWCODE: load = RAM1, type = ro, optional = yes;
- INIT: load = RAM1, type = ro, define = yes, optional = yes;
- CODE: load = RAM1, type = ro;
- RODATA: load = RAM1, type = ro;
- DATA: load = RAM1, type = rw;
- ZPSAVE: load = RAM, type = bss, define = yes;
- BSS: load = RAM, type = bss, define = yes;
- ZEROPAGE: load = ZP, type = zp;
+ STARTUP: load = MAIN, type = ro;
+ LOWCODE: load = MAIN, type = ro, optional = yes;
+ CODE: load = MAIN, type = ro;
+ RODATA: load = MAIN, type = ro;
+ DATA: load = MAIN, type = rw;
+ INIT: load = MAIN, type = ro;
+ ONCE: load = MAIN, type = ro, define = yes;
+ BSS: load = BSS, type = bss, define = 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: segment = RODATA,
- type = interruptor,
- label = __INTERRUPTOR_TABLE__,
- count = __INTERRUPTOR_COUNT__;
+ 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__;
}