Requiring the HGR segment makes the configs a little less flexible, but for the intended use case the HGR segment actually is necessary. And as we learned now, making the HGR segment obligatory helps users to not shoot themselves in the foot.
49 lines
2.1 KiB
INI
49 lines
2.1 KiB
INI
# Configuration for programs including a hires screen (with 6KB LOWCODE)
|
|
|
|
FEATURES {
|
|
STARTADDRESS: default = $0803;
|
|
}
|
|
SYMBOLS {
|
|
__EXEHDR__: type = import;
|
|
__FILETYPE__: type = weak, value = $0006; # ProDOS file type
|
|
__STACKSIZE__: type = weak, value = $0800; # 2k stack
|
|
__HIMEM__: type = weak, value = $9600; # Presumed RAM end
|
|
__LCADDR__: type = weak, value = $D400; # Behind quit code
|
|
__LCSIZE__: type = weak, value = $0C00; # Rest of bank two
|
|
}
|
|
MEMORY {
|
|
ZP: file = "", define = yes, start = $0080, size = $001A;
|
|
HEADER: file = %O, start = %S - $003A, size = $003A;
|
|
MAIN: file = %O, define = yes, start = %S, size = __HIMEM__ - %S;
|
|
BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
|
|
LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
|
|
}
|
|
SEGMENTS {
|
|
ZEROPAGE: load = ZP, type = zp;
|
|
EXEHDR: load = HEADER, type = ro, optional = yes;
|
|
STARTUP: load = MAIN, type = ro;
|
|
LOWCODE: load = MAIN, type = ro, optional = yes;
|
|
HGR: load = MAIN, type = rw, start = $2000;
|
|
CODE: load = MAIN, type = ro start = $4000;
|
|
RODATA: load = MAIN, type = ro;
|
|
DATA: load = MAIN, type = rw;
|
|
INIT: load = MAIN, type = rw;
|
|
ONCE: load = MAIN, type = ro, define = yes;
|
|
LC: load = MAIN, run = LC, type = ro, optional = yes;
|
|
BSS: load = BSS, type = bss, define = 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__;
|
|
}
|