MEMORY { ZEROPAGE: start = $0006, size = $00FA; STACK: start = $0100, size = $0100, define = yes; RAM: start = $0500, size = $FAFF, define = yes; } SEGMENTS { ZEROPAGE: load = ZEROPAGE, type = zp, define = yes; STARTUP: load = RAM, type = ro; CODE: load = RAM, type = ro; INIT: load = RAM, type = ro; DATA: load = RAM, type = rw, define = yes, run = RAM; RODATA: load = RAM, type = ro; BSS: load = RAM, type = bss, define = yes; HEAP: load = RAM, type = bss, optional = yes; # VECTOR: load = RAM, type = ro, start = $C000; } FEATURES { CONDES: segment = STARTUP, type = constructor, label = __CONSTRUCTOR_TABLE__, count = __CONSTRUCTOR_COUNT__; CONDES: segment = STARTUP, type = destructor, label = __DESTRUCTOR_TABLE__, count = __DESTRUCTOR_COUNT__; } SYMBOLS { # Define the stack size for the application __STACKSIZE__: value = $0200, weak = yes; } # 0x0000 Zero page # 0x0100 P-stack # 0x0200 R-stack # 0x0300 bus output # 0x0400 bus input (also Bootloader space) # 0x0500 Ram (the bootloader loads the disk image here)