mirror of
https://github.com/cc65/cc65.git
synced 2024-12-23 04:30:10 +00:00
38049d22ba
The RAM memory area symbols are referred by the startup code. The 64k and 128k variant say "for assembler" so it may be not necessary to do that there. However given the "limited" state of documentation for the target I don't assign too much value to those statements. Additionally it's unclear to me why two variants provide symbols for the ROM memory.
31 lines
1.3 KiB
INI
31 lines
1.3 KiB
INI
# supervision 64kbyte cartridge with bankswitching
|
|
# for assembler
|
|
|
|
# ld65 config file
|
|
# ld65 --config supervision-64k.cfg -o <prog>.bin <prog>.o
|
|
|
|
SYMBOLS {
|
|
__STACKSIZE__: type = weak, value = $0100; # 1 page stack
|
|
}
|
|
MEMORY {
|
|
RAM: file = "", start = $0000, size = $2000 - __STACKSIZE__, define = yes;
|
|
VRAM: file = "", start = $4000, size = $2000;
|
|
BANKROM1: file = %O, start = $8000, size = $4000, fill = yes, fillval = $FF;
|
|
BANKROM2: file = %O, start = $8000, size = $4000, fill = yes, fillval = $FF;
|
|
BANKROM3: file = %O, start = $8000, size = $4000, fill = yes, fillval = $FF;
|
|
ROM: file = %O, start = $C000, size = $4000, fill = yes, fillval = $FF;
|
|
}
|
|
SEGMENTS {
|
|
LOWCODE: load = ROM, type = ro, optional = yes;
|
|
ONCE: load = ROM, type = ro, optional = yes;
|
|
CODE: load = ROM, type = ro;
|
|
RODATA: load = ROM, type = ro;
|
|
BANK1: load = BANKROM1, type = ro;
|
|
BANK2: load = BANKROM2, type = ro;
|
|
BANK3: load = BANKROM3, type = ro;
|
|
ZEROPAGE: load = RAM, type = bss, define = yes;
|
|
DATA: load = RAM, type = bss, define = yes, offset = $0200;
|
|
BSS: load = RAM, type = bss, define = yes;
|
|
VECTOR: load = ROM, type = ro, offset = $3FFA;
|
|
}
|