MEMORY { # $ED-$F7 seems to be an unused area in the zero page according to the BASIC 2.0/4.0 memory map ZP: file = "", define = yes, start = $00ED, size = $000A; # let's create a PRG file - note that you must define this segment in your code LOADADDR: file = %O, start = $6FFE, size = $0002; # we're loading at $7000, max code size $800 bytes RAM: file = %O, start = $7000, size = $0800; # if we reside in ROM instead, we should have more space available ROM: file = %O, start = $9000, size = $2000; # usable memory from the "tape #1 input buffer" SCRATCH: file = "", start = $027A, size = 191; } SEGMENTS { ZEROPAGE: load = ZP, type = zp; LOADADDR: load = LOADADDR, type = ro; # change these two to "ROM" if you want to put them on a ROM chip CODE: load = RAM, type = ro; RODATA: load = RAM, type = ro; # data and bss should come after the code if they all reside in RAM DATA: load = RAM, type = rw; BSS: load = SCRATCH, type = bss, define = yes; }