Code: Select all
MEMORY {
BANK00: start=$8000, size=$8000, fill=yes;
BANK01: start=$f000, size=$8000, fill=yes;
}
SEGMENTS {
CODE: load=BANK00, align=$8000; # bank 0 at $00:$8000
HEADER: load=BANK00, start=$ffc0;
ROMINFO: load=BANK00, start=$ffd5;
VECTOR: load=BANK00, start=$ffe4;
GRAPHICS: load=BANK01, align=$8000; # bank 1 at $01:$8000
}
Now, when I build my program the output file is as expected 64KB in size, so I except my code to start at $0000 of the output file, and the graphics data at $8000. Yet my graphics data starts at $9000. I also get this warning from ld65:
Code: Select all
ld65: Warning: lorom128.cfg(11): The first segment in memory area `BANK01' needs fill bytes for alignment.What am I getting wrong about align and why does it move my data to $9000 instead of $8000?