FEATURES {
    STARTADDRESS: default = $2E00;
}
SYMBOLS {
    __EXEHDR__:       type = import;
    __AUTOSTART__:    type = import; # force inclusion of autostart "trailer"
    __STARTADDRESS__: type = export, value = %S;
}
MEMORY {
    ZP:      file = "", define = yes, start = $0082, size = $007E;

# file header, just $FFFF
    HEADER:  file = %O,               start = $0000, size = $0002;

# "main program" load chunk
    MAINHDR: file = %O,               start = $0000, size = $0004;
    MAIN:    file = %O, define = yes, start = %S,    size = $BC20 - %S;
    TRAILER: file = %O,               start = $0000, size = $0006;
}
SEGMENTS {
    ZEROPAGE: load = ZP,      type = zp,  optional = yes;
    EXTZP:    load = ZP,      type = zp,  optional = yes; # to enable modules to be able to link to C and assembler programs
    EXEHDR:   load = HEADER,  type = ro,  optional = yes;
    MAINHDR:  load = MAINHDR, type = ro,  optional = yes;
    CODE:     load = MAIN,    type = rw,                  define = yes;
    RODATA:   load = MAIN,    type = ro   optional = yes;
    DATA:     load = MAIN,    type = rw   optional = yes;
    BSS:      load = MAIN,    type = bss, optional = yes, define = yes;
    AUTOSTRT: load = TRAILER, type = ro,  optional = yes;
}