mirror of
https://github.com/cc65/cc65.git
synced 2024-10-31 20:06:11 +00:00
d5092d2d3f
In normal situations it isn't too useful to define symbols for optional segments as those symbols can't be presumed to be always present. I in fact suspect that most currently present combinations of 'define' and 'optional' aren't useful - apart form the overlay configurations of course.
103 lines
6.9 KiB
INI
103 lines
6.9 KiB
INI
SYMBOLS {
|
|
__BACKBUFSIZE__: type = weak, value = $2000;
|
|
__OVERLAYSIZE__: type = weak, value = $0000;
|
|
__OVERLAYADDR__: type = weak, value = $C000 - __BACKBUFSIZE__ - __OVERLAYSIZE__;
|
|
__STACKSIZE__: type = weak, value = $0400;
|
|
__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__ - $0C00;
|
|
VLIR0: define = yes, start = $4000, size = __OVERLAYADDR__ - $4000;
|
|
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__;
|
|
}
|