# 32K iNES ROM with optional 8K CHR

MEMORY
{
	ZP:     start =   $10, size =  $E0; # leave $10 free at each end
	RAM:    start =  $200, size =  $500;
	
	HEADER: start =     0, size =   $10, fill=yes;
	
	ROM:    start = $8000, size = $7E00, fill=yes, fillval=$FF;
	LOADER: start = $FE00, size =  $100, fill=yes, fillval=$FF;
	FF00:   start = $FF00, size =   $F4, fill=yes, fillval=$FF;
	VECTORS:start = $FFF4, size =    $C, fill=yes;
	
	CHARS:  start =     0, size = $3000, fill=yes, fillval=$FF;
}

SEGMENTS
{
	ZEROPAGE:   load = ZP,      type = zp;
	BSS:        load = RAM,     type = bss,align=$100;
	NVRAM:      load = RAM,     type = bss,define=yes, optional=yes;
	
	HEADER:     load = HEADER,  type = ro;
	CODE:       load = ROM,     type = ro, align=$100;
	CODE2:      load = ROM,     type = ro, align=$100, optional=yes;
	RODATA:     load = ROM,     type = ro, align=$100;
	CHARS_PRG:  load = ROM,     type = ro, align=$200, optional=yes;
	CHARS_PRG_ASCII:load = ROM, type = ro, align=$200, optional=yes;
	LOADER:     load = LOADER,  type = ro,             optional=yes;
	FF00:       load = FF00,    type = ro, align=$100, optional=yes;
	VECTORS:    load = VECTORS, type = ro;
	
	CHARS:      load = CHARS,   type = ro, align=$100, optional=yes;
	CHARS_ASCII:load = CHARS,   type = ro, align=$200, optional=yes;
}
