1
0
mirror of https://github.com/cc65/cc65.git synced 2024-10-31 20:06:11 +00:00
cc65/cfg/geos-apple.cfg
Oliver Schmidt d5092d2d3f Consider the segment attributes 'define' and 'optional' mutually exclusive.
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.
2016-03-17 21:31:43 +01:00

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__;
}