1 # linker config to produce simple Gamate cartridge (.bin)
4 __STARTUP__: type = import;
5 __STACKSIZE__: type = weak, value = $0080; # 1 page stack
10 # FIXME: what zp range can we actually use?
11 ZP: start = $0080, size = $80;
12 CPUSTACK: start = $0100, size =$100;
13 RAM: start = $0200, size = $180, define = yes;
15 # 6000-e000 can be (Cartridge) ROM
16 # WARNING: fill value must be $00 else it will no more work
17 #ROM: start = $6000, size = $1000, fill = yes, fillval = $00, file = %O, define = yes;
18 #ROMFILL: start = $7000, size = $7000, fill = yes, fillval = $00, file = %O, define = yes;
19 # for images that have code >$6fff we must calculate the checksum!
20 ROM: start = $6000, size = $8000, fill = yes, fillval = $00, file = %O, define = yes;
24 ZEROPAGE: load = ZP, type = zp, define = yes;
25 EXTZP: load = ZP, type = zp, define = yes, optional = yes;
26 APPZP: load = ZP, type = zp, define = yes, optional = yes;
27 STARTUP: load = ROM, type = ro, define=yes;
28 INIT: load = ROM, type = ro, define = yes, optional = yes;
29 CODE: load = ROM, type = ro, define=yes;
30 RODATA: load = ROM, type = ro, define=yes;
31 DATA: load = ROM, run=RAM, type = rw, define = yes;
32 BSS: load = RAM, type = bss, define = yes;
36 CONDES: segment = RODATA, type = constructor, label = __CONSTRUCTOR_TABLE__, count = __CONSTRUCTOR_COUNT__;
37 CONDES: segment = RODATA, type = destructor, label = __DESTRUCTOR_TABLE__, count = __DESTRUCTOR_COUNT__;
38 CONDES: segment = RODATA, type = interruptor, label = __INTERRUPTOR_TABLE__, count = __INTERRUPTOR_COUNT__, import = __CALLIRQ__;