Re: [cc65] Bank Switching

Date view Thread view Subject view

From: Shawn Jefferson (
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?

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