FEATURES { STARTADDRESS: default = $4000; } SYMBOLS { __BACKBUFSIZE__: type = weak, value = $2000; __HIMEM__: type = weak, value = $C000 - __BACKBUFSIZE__; __OVERLAYSIZE__: type = weak, value = $0000; __OVERLAYADDR__: type = weak, value = __HIMEM__ - __OVERLAYSIZE__; __STACKSIZE__: type = weak, value = $0400; # 1k stack __STACKADDR__: type = weak, value = $2000 - __STACKSIZE__; } MEMORY { CVT: file = %O, start = $0, size = $20000; ZP: define = yes, start = $80, size = $1A + $06; EXT: define = yes, start = $0C00, size = __STACKADDR__ - __EXT_START__; VLIR0: define = yes, start = %S, size = __OVERLAYADDR__ - %S; VLIR1: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR2: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR3: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR4: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR5: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR6: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR7: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR8: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR9: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR10: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR11: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR12: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR13: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR14: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR15: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR16: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR17: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR18: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; VLIR19: define = yes, start = __OVERLAYADDR__, size = __OVERLAYSIZE__; } SEGMENTS { ZEROPAGE: type = zp, load = ZP; EXTZP: type = zp, load = ZP, optional = yes; EXTBSS: type = bss, load = EXT, define = yes, optional = yes; FILEINFO: type = ro, load = CVT, offset = $002; RECORDS: type = ro, load = CVT, offset = $100, optional = yes; DIRENTRY: type = ro, load = CVT, offset = $180; VLIRIDX0: type = ro, load = CVT, align = $200, optional = yes; STARTUP: type = ro, run = VLIR0, load = CVT, align_load = $200, define = yes; LOWCODE: type = ro, run = VLIR0, load = CVT, optional = yes; ONCE: type = ro, run = VLIR0, load = CVT, optional = yes; CODE: type = ro, run = VLIR0, load = CVT; RODATA: type = ro, run = VLIR0, load = CVT; DATA: type = rw, run = VLIR0, load = CVT; INIT: type = bss, load = VLIR0, optional = yes; BSS: type = bss, load = VLIR0, define = yes; VLIRIDX1: type = ro, load = CVT, align = $200, optional = yes; OVERLAY1: type = ro, run = VLIR1, load = CVT, align_load = $200, optional = yes; VLIRIDX2: type = ro, load = CVT, align = $200, optional = yes; OVERLAY2: type = ro, run = VLIR2, load = CVT, align_load = $200, optional = yes; VLIRIDX3: type = ro, load = CVT, align = $200, optional = yes; OVERLAY3: type = ro, run = VLIR3, load = CVT, align_load = $200, optional = yes; VLIRIDX4: type = ro, load = CVT, align = $200, optional = yes; OVERLAY4: type = ro, run = VLIR4, load = CVT, align_load = $200, optional = yes; VLIRIDX5: type = ro, load = CVT, align = $200, optional = yes; OVERLAY5: type = ro, run = VLIR5, load = CVT, align_load = $200, optional = yes; VLIRIDX6: type = ro, load = CVT, align = $200, optional = yes; OVERLAY6: type = ro, run = VLIR6, load = CVT, align_load = $200, optional = yes; VLIRIDX7: type = ro, load = CVT, align = $200, optional = yes; OVERLAY7: type = ro, run = VLIR7, load = CVT, align_load = $200, optional = yes; VLIRIDX8: type = ro, load = CVT, align = $200, optional = yes; OVERLAY8: type = ro, run = VLIR8, load = CVT, align_load = $200, optional = yes; VLIRIDX9: type = ro, load = CVT, align = $200, optional = yes; OVERLAY9: type = ro, run = VLIR9, load = CVT, align_load = $200, optional = yes; VLIRIDX10: type = ro, load = CVT, align = $200, optional = yes; OVERLAY10: type = ro, run = VLIR10, load = CVT, align_load = $200, optional = yes; VLIRIDX11: type = ro, load = CVT, align = $200, optional = yes; OVERLAY11: type = ro, run = VLIR11, load = CVT, align_load = $200, optional = yes; VLIRIDX12: type = ro, load = CVT, align = $200, optional = yes; OVERLAY12: type = ro, run = VLIR12, load = CVT, align_load = $200, optional = yes; VLIRIDX13: type = ro, load = CVT, align = $200, optional = yes; OVERLAY13: type = ro, run = VLIR13, load = CVT, align_load = $200, optional = yes; VLIRIDX14: type = ro, load = CVT, align = $200, optional = yes; OVERLAY14: type = ro, run = VLIR14, load = CVT, align_load = $200, optional = yes; VLIRIDX15: type = ro, load = CVT, align = $200, optional = yes; OVERLAY15: type = ro, run = VLIR15, load = CVT, align_load = $200, optional = yes; VLIRIDX16: type = ro, load = CVT, align = $200, optional = yes; OVERLAY16: type = ro, run = VLIR16, load = CVT, align_load = $200, optional = yes; VLIRIDX17: type = ro, load = CVT, align = $200, optional = yes; OVERLAY17: type = ro, run = VLIR17, load = CVT, align_load = $200, optional = yes; VLIRIDX18: type = ro, load = CVT, align = $200, optional = yes; OVERLAY18: type = ro, run = VLIR18, load = CVT, align_load = $200, optional = yes; VLIRIDX19: type = ro, load = CVT, align = $200, optional = yes; OVERLAY19: type = ro, run = VLIR19, load = CVT, align_load = $200, optional = yes; } FEATURES { CONDES: type = constructor, label = __CONSTRUCTOR_TABLE__, count = __CONSTRUCTOR_COUNT__, segment = ONCE; CONDES: type = destructor, label = __DESTRUCTOR_TABLE__, count = __DESTRUCTOR_COUNT__, segment = RODATA; CONDES: type = interruptor, label = __INTERRUPTOR_TABLE__, count = __INTERRUPTOR_COUNT__, segment = RODATA, import = __CALLIRQ__; }