# ld65 Linker-configuration for LUnix, Next Generation. MEMORY { ZP: start = $80, size = $40; # userzp buffer RAM: start = %S, size = $7600; } SEGMENTS { ZEROPAGE: load = ZP, type = zp, define = yes; # Pseudo-registers STARTUP: load = RAM, type = wp; # First initiation code LOWCODE: load = RAM, type = rw; # Legacy from other platforms CODE: load = RAM, type = ro; # Program RODATA: load = RAM, type = ro; # Literals, constants DATA: load = RAM, type = rw; # Initiated variables BSS: load = RAM, type = bss, define = yes; # Un-initiated variables } FEATURES { CONDES: segment = RODATA, type = constructor, label = __CONSTRUCTOR_TABLE__, count = __CONSTRUCTOR_COUNT__; CONDES: segment = RODATA, type = destructor, label = __DESTRUCTOR_TABLE__, count = __DESTRUCTOR_COUNT__; } FILES { %O: format = o65; } FORMATS { o65: os = lunix, type = small, export = main, # Program entry-point # import = LIB6502, # Shared-library entry-points import = LUNIXKERNEL; # Kernel entry-points } SYMBOLS { __HEAPSIZE__ = $2000; # 8k heap [temporary, until LUnix malloc() exists] __STACKSIZE__ = $0400; # 1k stack (do typical LUnix apps. need 2k?) }