MEMORY { ZP: start = $0000, size = $0100, type = rw, define = yes; OAM: start = $0200, size = $0100, type = rw, define = yes; RAM: start = $0300, size = $0500, type = rw, define = yes; HEADER: start = $0000, size = $0010, type = ro, file = %O, fill = yes, fillval = $00; PRG: start = $8000, size = $8000, type = ro, file = %O, fill = yes, fillval = $00, define = yes; CHR: start = $0000, size = $2000, type = ro, file = %O, fill = yes, fillval = $00; } SEGMENTS { HEADER: load = HEADER, type = ro; STARTUP: load = PRG, type = ro, define = yes; LOWCODE: load = PRG, type = ro, optional = yes; INIT: load = PRG, type = ro, define = yes, optional = yes; CODE: load = PRG, type = ro, define = yes; RODATA: load = PRG, type = ro, define = yes; DATA: load = PRG, run = RAM, type = rw, define = yes; ONCE: load = PRG, type = ro, define = yes, optional = yes; VECTORS: load = PRG, type = ro, start = $FFFA; OAM: load = OAM, type = rw; BSS: load = RAM, type = bss, define = yes; HEAP: load = RAM, type = bss, optional = yes; ZEROPAGE: load = ZP, type = zp; CHARS: load = CHR, type = ro; }