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;
    # Second memory segment in file, load over COLOR registers:
    COLOR:   file = %O, start = $2C4, size = 5;
    # Third memory segment, load at page 6:
    PAGE6:   file = %O, start = $600, size = 128;
    # Fourth memory segment in file, load over SDLST register:
    SDLST:   file = %O, start = $230, size = 2;
    # Fifth/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;
}
