Significantly simplified recently added linker config files.
I just forgot about the 'start' segment attribute - which makes the scenario at hand dead easy.
This commit is contained in:
@@ -9,30 +9,26 @@ SYMBOLS {
|
|||||||
__HIMEM__: type = weak, value = $9600; # Presumed RAM end
|
__HIMEM__: type = weak, value = $9600; # Presumed RAM end
|
||||||
__LCADDR__: type = weak, value = $D400; # Behind quit code
|
__LCADDR__: type = weak, value = $D400; # Behind quit code
|
||||||
__LCSIZE__: type = weak, value = $0C00; # Rest of bank two
|
__LCSIZE__: type = weak, value = $0C00; # Rest of bank two
|
||||||
__MAIN_START__: type = export, value = %S;
|
|
||||||
__MAIN_LAST__: type = export, value = __HIGH_LAST__;
|
|
||||||
}
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: file = "", define = yes, start = $0080, size = $001A;
|
ZP: file = "", define = yes, start = $0080, size = $001A;
|
||||||
HEADER: file = %O, start = %S - 4, size = $0004;
|
HEADER: file = %O, start = %S - 4, size = $0004;
|
||||||
LOW: file = %O, fill = yes, start = %S, size = $2000 - %S;
|
MAIN: file = %O, define = yes, start = %S, size = __HIMEM__ - %S;
|
||||||
HGR: file = %O, fill = yes, start = $2000, size = $2000;
|
|
||||||
HIGH: file = %O, define = yes, start = $4000, size = __HIMEM__ - $4000;
|
|
||||||
BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
|
BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
|
||||||
LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
|
LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
STARTUP: load = LOW, type = ro;
|
STARTUP: load = MAIN, type = ro;
|
||||||
LOWCODE: load = LOW, type = ro, optional = yes;
|
LOWCODE: load = MAIN, type = ro, optional = yes;
|
||||||
HGR: load = HGR, type = rw, optional = yes;
|
HGR: load = MAIN, type = rw, optional = yes, start = $2000;
|
||||||
CODE: load = HIGH, type = ro;
|
CODE: load = MAIN, type = ro start = $4000;
|
||||||
RODATA: load = HIGH, type = ro;
|
RODATA: load = MAIN, type = ro;
|
||||||
DATA: load = HIGH, type = rw;
|
DATA: load = MAIN, type = rw;
|
||||||
INIT: load = HIGH, type = rw;
|
INIT: load = MAIN, type = rw;
|
||||||
ONCE: load = HIGH, type = ro, define = yes;
|
ONCE: load = MAIN, type = ro, define = yes;
|
||||||
LC: load = HIGH, run = LC, type = ro, optional = yes;
|
LC: load = MAIN, run = LC, type = ro, optional = yes;
|
||||||
BSS: load = BSS, type = bss, define = yes;
|
BSS: load = BSS, type = bss, define = yes;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
|
|||||||
@@ -9,30 +9,26 @@ SYMBOLS {
|
|||||||
__HIMEM__: type = weak, value = $9600; # Presumed RAM end
|
__HIMEM__: type = weak, value = $9600; # Presumed RAM end
|
||||||
__LCADDR__: type = weak, value = $D400; # Behind quit code
|
__LCADDR__: type = weak, value = $D400; # Behind quit code
|
||||||
__LCSIZE__: type = weak, value = $0C00; # Rest of bank two
|
__LCSIZE__: type = weak, value = $0C00; # Rest of bank two
|
||||||
__MAIN_START__: type = export, value = %S;
|
|
||||||
__MAIN_LAST__: type = export, value = __HIGH_LAST__;
|
|
||||||
}
|
}
|
||||||
MEMORY {
|
MEMORY {
|
||||||
ZP: file = "", define = yes, start = $0080, size = $001A;
|
ZP: file = "", define = yes, start = $0080, size = $001A;
|
||||||
HEADER: file = %O, start = %S - 4, size = $0004;
|
HEADER: file = %O, start = %S - 4, size = $0004;
|
||||||
LOW: file = %O, fill = yes, start = %S, size = $2000 - %S;
|
MAIN: file = %O, define = yes, start = %S, size = __HIMEM__ - %S;
|
||||||
HGR: file = %O, fill = yes, start = $2000, size = $2000;
|
|
||||||
HIGH: file = %O, define = yes, start = $4000, size = __HIMEM__ - $4000;
|
|
||||||
BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
|
BSS: file = "", start = __ONCE_RUN__, size = __HIMEM__ - __STACKSIZE__ - __ONCE_RUN__;
|
||||||
LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
|
LC: file = "", define = yes, start = __LCADDR__, size = __LCSIZE__;
|
||||||
}
|
}
|
||||||
SEGMENTS {
|
SEGMENTS {
|
||||||
ZEROPAGE: load = ZP, type = zp;
|
ZEROPAGE: load = ZP, type = zp;
|
||||||
EXEHDR: load = HEADER, type = ro;
|
EXEHDR: load = HEADER, type = ro;
|
||||||
STARTUP: load = LOW, type = ro;
|
STARTUP: load = MAIN, type = ro;
|
||||||
LOWCODE: load = LOW, type = ro, optional = yes;
|
LOWCODE: load = MAIN, type = ro, optional = yes;
|
||||||
HGR: load = HGR, type = rw, optional = yes;
|
HGR: load = MAIN, type = rw, optional = yes, start = $2000;
|
||||||
CODE: load = HIGH, type = ro;
|
CODE: load = MAIN, type = ro start = $4000;
|
||||||
RODATA: load = HIGH, type = ro;
|
RODATA: load = MAIN, type = ro;
|
||||||
DATA: load = HIGH, type = rw;
|
DATA: load = MAIN, type = rw;
|
||||||
INIT: load = HIGH, type = rw;
|
INIT: load = MAIN, type = rw;
|
||||||
ONCE: load = HIGH, type = ro, define = yes;
|
ONCE: load = MAIN, type = ro, define = yes;
|
||||||
LC: load = HIGH, run = LC, type = ro, optional = yes;
|
LC: load = MAIN, run = LC, type = ro, optional = yes;
|
||||||
BSS: load = BSS, type = bss, define = yes;
|
BSS: load = BSS, type = bss, define = yes;
|
||||||
}
|
}
|
||||||
FEATURES {
|
FEATURES {
|
||||||
|
|||||||
Reference in New Issue
Block a user