FEATURES { STARTADDRESS: default = $2E00; } MEMORY { ZP: file = "", define = yes, start = $0082, size = $007E; # First memory segment in file, show message LOADER: file = %O, start = $680, size = 128; # First memory segment in file, load over COLOR registers: COLOR: file = %O, start = $2C4, size = 5; # Second memory segment, load at page 6: PAGE6: file = %O, start = $600, size = 128; # Third memory segment in file, load over SDLST register: SDLST: file = %O, start = $230, size = 2; # Main segment, load at "STARTADDRESS" MAIN: file = %O, start = %S, size = $BC20 - %S; } FILES { %O: format = atari; } FORMATS { atari: runad = start, initad = LOADER: show_load; } SEGMENTS { ZEROPAGE: load = ZP, type = zp, optional = yes; # Place segments in memory areas: LOADER: load = LOADER, type = rw; COLOR: load = COLOR, type = rw; PAGE6: load = PAGE6, type = rw; SDLST: load = SDLST, type = rw; CODE: load = MAIN, type = rw; RODATA: load = MAIN, type = ro optional = yes; DATA: load = MAIN, type = rw optional = yes; BSS: load = MAIN, type = bss, optional = yes, define = yes; }