FEATURES {
    STARTADDRESS: default = $0200;
}
SYMBOLS {
# If you want ld65 to output a loadable-format file by default, then uncomment
# the next line. (Then, "-u __BOOT__" wouldn't be needed on the command line.)
#    __BOOT__:      type = import;
    __STACKSIZE__: type = weak, value = $0400; # 1 kB stack
    __HIMEM__:     type = weak, value = $8000; # 32 kB RAM
}
MEMORY {
    # for size of ZP, see runtime/zeropage.s and c1p/extzp.s
    ZP:   file = "", define = yes, start = $0002, size = $00FE;
    HEAD: file = %O,               start = $0000, size = $00B6;
    MAIN: file = %O, define = yes, start = %S,    size = __HIMEM__ - __STACKSIZE__ - %S;
}
SEGMENTS {
    ZEROPAGE: load = ZP,   type = zp,  optional = yes;
    BOOT:     load = HEAD, type = ro,  optional = yes;
    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;
}