1# Configuration for programs including a hires screen (with 6KB LOWCODE) 2 3FEATURES { 4 STARTADDRESS: default = $0803; 5} 6SYMBOLS { 7 __EXEHDR__: type = import; 8 __FILETYPE__: type = weak, value = $0006; # ProDOS file type 9 __STACKSIZE__: type = weak, value = $0800; # 2k stack 10 __HIMEM__: type = weak, value = $9600; # Presumed RAM end 11 __LCADDR__: type = weak, value = $D400; # Behind quit code 12 __LCSIZE__: type = weak, value = $0C00; # Rest of bank two 13} 14MEMORY { 15 ZP: file = "", define = yes, start = $0080, size = $001A; 16 HEADER: file = %O, start = %S - $003A, size = $003A; 17 MAIN: file = %O, define = yes, start = %S, size = __HIMEM__ - %S; 18 BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__; 19 LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__; 20} 21SEGMENTS { 22 ZEROPAGE: load = ZP, type = zp; 23 EXEHDR: load = HEADER, type = ro, optional = yes; 24 STARTUP: load = MAIN, type = ro; 25 LOWCODE: load = MAIN, type = ro, optional = yes; 26 HGR: load = MAIN, type = rw, optional = yes, start = $2000; 27 CODE: load = MAIN, type = ro start = $4000; 28 RODATA: load = MAIN, type = ro; 29 DATA: load = MAIN, type = rw; 30 INIT: load = MAIN, type = rw; 31 ONCE: load = MAIN, type = ro, define = yes; 32 LC: load = MAIN, run = LC, type = ro, optional = yes; 33 BSS: load = BSS, type = bss, define = yes; 34} 35FEATURES { 36 CONDES: type = constructor, 37 label = __CONSTRUCTOR_TABLE__, 38 count = __CONSTRUCTOR_COUNT__, 39 segment = ONCE; 40 CONDES: type = destructor, 41 label = __DESTRUCTOR_TABLE__, 42 count = __DESTRUCTOR_COUNT__, 43 segment = RODATA; 44 CONDES: type = interruptor, 45 label = __INTERRUPTOR_TABLE__, 46 count = __INTERRUPTOR_COUNT__, 47 segment = RODATA, 48 import = __CALLIRQ__; 49} 50