# sym1-4k.cfg   (4k)
#
# for Sym-1 with 4kb RAM
#
# ld65 --config sym1-4k.cfg -o <prog>.bin <prog>.o

FEATURES {
    STARTADDRESS: default = $0200;
    CONDES: segment = STARTUP,
            type    = constructor,
            label   = __CONSTRUCTOR_TABLE__,
            count   = __CONSTRUCTOR_COUNT__;
    CONDES: segment = STARTUP,
            type    = destructor,
            label   = __DESTRUCTOR_TABLE__,
            count   = __DESTRUCTOR_COUNT__;
}

SYMBOLS {
    __STACKSIZE__:    type = weak, value = $0080;   # 128 byte program stack
    __STARTADDRESS__: type = export, value = %S;
}

MEMORY {
    ZP:       file = %O, define = yes, start = $0000, size = $00F7;
    CPUSTACK: file = "", define = yes, start = $0100, size = $0100;
    RAM:      file = %O, define = yes, start = %S, size = $1000 - %S - __STACKSIZE__;
    MONROM:   file = "", define = yes, start = $8000, size = $1000;
    EXT:      file = "", define = yes, start = $9000, size = $1000;
    IO:       file = "", define = yes, start = $A000, size = $1000;
    RAE1:     file = "", define = yes, start = $B000, size = $1000;
    BASROM:   file = "", define = yes, start = $C000, size = $2000;
    RAE2:     file = "", define = yes, start = $E000, size = $1000;
    TOP:      file = "", define = yes, start = $F000, size = $1000;
}

SEGMENTS {
    ZEROPAGE: load = ZP,  type = zp,  define = yes;
    STARTUP:  load = RAM, type = ro,  define = yes;
    CODE:     load = RAM, type = ro,  define = yes;
    RODATA:   load = RAM, type = ro,  define = yes;
    ONCE:     load = RAM, type = ro,  define = yes;
    DATA:     load = RAM, type = rw,  define = yes;
    BSS:      load = RAM, type = bss, define = yes;
}