Re: [cc65] overlapping segments, segment groups?

From: Ullrich von Bassewitz <uz1musoftware.de>
Date: 2006-04-21 19:35:04
Hi!

On Fri, Apr 21, 2006 at 02:24:30PM +0200, MagerValp wrote:
> Currently I have this set up with one memory area defined for the
> first half, and then multiple overlapping memory areas for the other
> half. The problem is that the first half varies in size depending on
> configuration options, and code changes while I'm still developing.
> What I would like to do is define a single memory area, and instead
> have multiple overlapping segments. I don't suppose there's a way to
> get ld65 to do this for me?

I'm not sure that I understand the problem in full, but how about using
constants for defining the areas? Or are there more problems than having to
change each of the memory areas? If not, use something like this:

SYMBOLS {
    ram1_start  = $1000;
    ram1_size   = $1000;
    ram2_start  = ram1_start + ram1_size;
    ram2_size   = $8000 - ram1_size;
}
MEMORY {
    RAM1: start = ram1_start, size = ram1_size, file = %O, define = yes;
    RAM2_A: start = ram2_start, size = ram2_size, file = %O, define = yes;
    RAM2_B: start = ram2_start, size = ram2_size, file = %O, define = yes;
    RAM2_C: start = ram2_start, size = ram2_size, file = %O, define = yes;
    RAM2_D: start = ram2_start, size = ram2_size, file = %O, define = yes;
}

This way, you do only have to adjust ram1_size, and anything else will adjust
accordingly.

If you're really keen, you could even determine the size of the segments that
go into RAM1 by parsing the output of "od65 --dump-segsize" and rewriting the
config file using some perl magic.

Regards


        Uz


-- 
Ullrich von Bassewitz                                  uz@musoftware.de
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo@musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
Received on Fri Apr 21 19:35:20 2006

This archive was generated by hypermail 2.1.8 : 2006-04-21 19:35:23 CEST