# linker config to produce simple NEC PC-Engine cartridge (.pce) SYMBOLS { __STACKSIZE__: type = weak, value = $0300; # 3 pages stack } MEMORY { # 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: 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: file = "", start = $2200, size = $1e00, define = yes; } SEGMENTS { 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 = 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__; }