2019-01-03 15:49:56 +00:00
|
|
|
FEATURES {
|
|
|
|
STARTADDRESS: default = $4000;
|
|
|
|
}
|
2011-12-27 23:36:05 +00:00
|
|
|
SYMBOLS {
|
2012-01-03 00:32:46 +00:00
|
|
|
__BACKBUFSIZE__: type = weak, value = $2000;
|
2019-01-03 15:49:56 +00:00
|
|
|
__HIMEM__: type = weak, value = $C000 - __BACKBUFSIZE__;
|
2012-06-08 21:46:51 +00:00
|
|
|
__OVERLAYSIZE__: type = weak, value = $0000;
|
2019-01-03 15:49:56 +00:00
|
|
|
__OVERLAYADDR__: type = weak, value = __HIMEM__ - __OVERLAYSIZE__;
|
|
|
|
__STACKSIZE__: type = weak, value = $0400; # 1k stack
|
2012-06-08 21:46:51 +00:00
|
|
|
__STACKADDR__: type = weak, value = $2000 - __STACKSIZE__;
|
2011-12-27 23:36:05 +00:00
|
|
|
}
|
|
|
|
MEMORY {
|
2012-01-03 21:14:33 +00:00
|
|
|
CVT: file = %O, start = $0, size = $20000;
|
2011-12-27 23:36:05 +00:00
|
|
|
ZP: define = yes, start = $80, size = $1A + $06;
|
2019-01-03 15:49:56 +00:00
|
|
|
EXT: define = yes, start = $0C00, size = __STACKADDR__ - __EXT_START__;
|
|
|
|
VLIR0: define = yes, start = %S, size = __OVERLAYADDR__ - %S;
|
2011-12-27 23:36:05 +00:00
|
|
|
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;
|
2016-03-17 20:31:43 +00:00
|
|
|
EXTZP: type = zp, load = ZP, optional = yes;
|
2012-06-10 12:37:32 +00:00
|
|
|
EXTBSS: type = bss, load = EXT, define = yes, optional = yes;
|
2011-12-27 23:36:05 +00:00
|
|
|
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;
|
2016-03-15 20:25:22 +00:00
|
|
|
ONCE: type = ro, run = VLIR0, load = CVT, optional = yes;
|
2011-12-27 23:36:05 +00:00
|
|
|
CODE: type = ro, run = VLIR0, load = CVT;
|
|
|
|
RODATA: type = ro, run = VLIR0, load = CVT;
|
|
|
|
DATA: type = rw, run = VLIR0, load = CVT;
|
2016-03-16 15:28:32 +00:00
|
|
|
INIT: type = bss, load = VLIR0, optional = yes;
|
2016-03-17 20:31:43 +00:00
|
|
|
BSS: type = bss, load = VLIR0, define = yes;
|
2011-12-27 23:36:05 +00:00
|
|
|
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 {
|
2013-02-12 20:55:19 +00:00
|
|
|
CONDES: type = constructor,
|
|
|
|
label = __CONSTRUCTOR_TABLE__,
|
|
|
|
count = __CONSTRUCTOR_COUNT__,
|
2016-03-06 20:26:22 +00:00
|
|
|
segment = ONCE;
|
2013-02-12 20:55:19 +00:00
|
|
|
CONDES: type = destructor,
|
|
|
|
label = __DESTRUCTOR_TABLE__,
|
|
|
|
count = __DESTRUCTOR_COUNT__,
|
|
|
|
segment = RODATA;
|
|
|
|
CONDES: type = interruptor,
|
|
|
|
label = __INTERRUPTOR_TABLE__,
|
|
|
|
count = __INTERRUPTOR_COUNT__,
|
|
|
|
segment = RODATA,
|
2012-11-03 21:59:15 +00:00
|
|
|
import = __CALLIRQ__;
|
2011-12-27 23:36:05 +00:00
|
|
|
}
|