Re: [cc65] Bank Switching

Date view Thread view Subject view

From: Shawn Jefferson (sjefferson_at_sd62.bc.ca)
Date: 2002-09-20 01:02:33


>
>You will have to use a customized linker config file, segments, and some
>manual work. Please have a look at the linker docs, which discuss these
>issues. If you have some specific questions, don't hesitate to ask.

Ok, I took a look at the linker config file.  Would setting up the memory areas like this work?

MEMORY {
    ZP: start = $82, size = $7E, type = rw;
    HEADER: start = $0000, size = $6, file = %O;
    RAM1: start = $2000, size = $2000, file = %O;
    BANK: start = $4000, size = $3FFF, type = empty;
    RAM2: start = $8000, size = $3C1F, file = %0;
}
SEGMENTS {
    EXEHDR: load = HEADER, type = wprot;
    CODE: load = RAM1, type = wprot, define = yes;
    RODATA: load = RAM2, type = wprot;
    DATA: load = RAM2, type = rw;
    BSS: load = RAM2, type = bss, define = yes;
    ZEROPAGE: load = ZP, type = zp;
    AUTOSTRT: load = RAM1, type = wprot;
}

This might be a stupid question but since I know little about how compilers work I'll ask anyway: Is there a way to allow the code to go into both RAM1 and RAM2 if it overflows one area?  I didn't see anything in the ld65.html doc that shows that type of setup.

Using the bank section on the atari from cc65 seems like it will be a bear.  Only 15k in RAM2, and 8k in RAM1! Maybe it would be better to use RAM2 for code, and RAM1 for rodata, data, bss.



----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.


Date view Thread view Subject view

This archive was generated by hypermail 2.1.3 : 2002-09-20 01:05:20 CEST