MEMORY {
    COMBINED: start = $0000, size = $FFFF, file = %O;
    ZEROPAGE: start = $0000, size = $0100, file = %O;
}
SEGMENTS {
    LOWCODE:  load = COMBINED, type = ro,                optional = yes;
    INIT:     load = COMBINED, type = ro,  define = yes, optional = yes;
    CODE:     load = COMBINED, type = ro;
    RODATA:   load = COMBINED, type = ro;
    DATA:     load = COMBINED, type = rw,  define = yes;
    BSS:      load = COMBINED, type = bss, define = yes;
    HEAP:     load = COMBINED, type = bss,               optional = yes;
    ZEROPAGE: load = ZEROPAGE, type = zp;
}
FEATURES {
    CONDES: segment = INIT,
	    type = constructor,
	    label = __CONSTRUCTOR_TABLE__,
	    count = __CONSTRUCTOR_COUNT__;
    CONDES: segment = RODATA,
	    type = destructor,
	    label = __DESTRUCTOR_TABLE__,
	    count = __DESTRUCTOR_COUNT__;
    CONDES: type = interruptor,
	    segment = RODATA,
	    label = __INTERRUPTOR_TABLE__,
	    count = __INTERRUPTOR_COUNT__;
}
FILES {
    %O: format = o65;
}
FORMATS {
    o65: os = osa65, type = small,
	 import = OSA2KERNAL,
	 import = LIB6502;
}
SYMBOLS {
    __STACKSIZE__ = $800;	# 2K stack
}
