MEMORY {
     ZP:         file = "", define = yes, start = $0082, size = $007E;
     RAM:        file = "", define = yes, start = %S,    size = $2000;
-    ROM:        file = %O, define = yes, start = $A000, size = $1FFA, fill = yes, fillval = $ff;
+    ROM:        file = %O, define = yes, start = $A000, size = $1FFA, fill = yes, fillval = $FF;
     CARTID:     file = %O,               start = $BFFA, size = $0006;
 }
 SEGMENTS {
-    STARTUP:   load = ROM,            type = ro,  define = yes;
+    STARTUP:   load = ROM,            type = ro,  define = yes, optional = yes;
     LOWCODE:   load = ROM,            type = ro,  define = yes, optional = yes;
     INIT:      load = ROM,            type = ro,                optional = yes;
     CODE:      load = ROM,            type = ro,  define = yes;
-    RODATA:    load = ROM,            type = ro;
-    DATA:      load = ROM, run = RAM, type = rw,  define = yes;
-    BSS:       load = RAM,            type = bss, define = yes;
+    RODATA:    load = ROM,            type = ro;                optional = yes;
+    DATA:      load = ROM, run = RAM, type = rw,  define = yes; optional = yes;
+    BSS:       load = RAM,            type = bss, define = yes; optional = yes;
     CARTHDR:   load = CARTID,         type = ro;
     ZEROPAGE:  load = ZP,             type = zp;
     EXTZP:     load = ZP,             type = zp,                optional = yes;