MEMORY {
# 0000-03ff is RAM
# FIXME: what zp range can we actually use?
- ZP: start = $0080, size = $80;
+ ZP: start = $0020, size = $e0;
CPUSTACK: start = $0100, size =$100;
- RAM: start = $0200, size = $180, define = yes;
+ RAM: start = $0200, size = $200 - __STACKSIZE__, define = yes;
+ CARTHEADER: file = %O, define = yes, start = %S, size = $0029;
# 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;
+ ROM: start = $6000 + $29, size = $8000 - $29, fill = yes, fillval = $00, file = %O, 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 = ROM, type = ro, define=yes;
+ STARTUP: load = CARTHEADER, 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;