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 = $001A + $0020;
    HEAD: file = %O,               start = $0000, size = $00B6;
    MAIN: file = %O, define = yes, start = %S, size = __HIMEM__ - __STACKSIZE__ - %S;
}
SEGMENTS {
    ZEROPAGE: load = ZP,   type = zp;
    EXTZP:    load = ZP,   type = zp,  define = yes, optional = yes;
    BOOT:     load = HEAD, type = ro,                optional = yes;
    STARTUP:  load = MAIN, type = ro;
    LOWCODE:  load = MAIN, type = ro,                optional = yes;
    ONCE:     load = MAIN, type = ro,                optional = yes;
    CODE:     load = MAIN, type = rw;
    RODATA:   load = MAIN, type = rw;
    DATA:     load = MAIN, type = rw;
    BSS:      load = MAIN, type = bss, define = yes;
}
FEATURES {
    CONDES: type    = constructor,
            label   = __CONSTRUCTOR_TABLE__,
            count   = __CONSTRUCTOR_COUNT__,
            segment = ONCE;
    CONDES: type    = destructor,
            label   = __DESTRUCTOR_TABLE__,
            count   = __DESTRUCTOR_COUNT__,
            segment = RODATA;
}
