Re: [cc65] overlapping segments, segment groups?

From: Karri Kaksonen <karri1sipo.fi>
Date: 2006-04-28 08:04:29
Ullrich von Bassewitz wrote:

>On Sat, Apr 22, 2006 at 02:20:52PM +0200, MagerValp wrote:
>  
>
>>Thanks, that's a lot cleaner than linking, parsing the .map file, and
>>relinking, which was the best I could come up with. It should be
>>possible to solve with the standard unix tools (grep, awk, cat), so
>>that you don't need perl to build it. Windows users will have to
>>adjust it manually though.
>>    
>>
>
>I have to admit that I don't have a good idea how to add overlaid segments, or
>a simliar feature in a clean manner. If anybody has suggestions, I would like
>to hear them.
>
>Regards
>
>
>        Uz
>  
>
I have a very similar need in Lynx cart builds. It would be nice to be 
able to use math in the config file that could solve some dependencies 
by itself. Now I do these by hand every time I need to move segments around.

    SCREEN: start = $BE40, size = $3FC0;

    # Solve 1
    # The RAM segment is resident and contains the C-stack an heap
    # the size is code size + __STACKSIZE__ and it should be
    # just below the SCREEN area
    RAM: start = $A043, size = $1DFD, define = yes, file = %O;

    # Solve 2
    # Put just before RAM start
    ABCMUSIC_B: start = $8E4E, size = $11F5, define = yes, file = %O;

    # Solve 3
    # Put just before ABCMUSIC start
    BGPICS: start = $7D3D, size = $1111, define = yes, file = %O;

    # Solve 4
    # Put just before BGPICS start
    BLUEMOON_B: start = $5635, size = $2708, define = yes, file = %O;
    MOZ_B: start = $5635, size = $2708, define = yes, file = %O;
    FEVER_B: start = $5635, size = $2708, define = yes, file = %O;
    TUXEDO_B: start = $5635, size = $2708, define = yes, file = %O;
    MUSIC: start = $5635, size = $2708, define = yes, file = %O;
    # Put 164 bytes before MUSIC
    FORTUNE: start = $5591, size = $FFF0, define = yes, file = %O;

It would help to be able to use math in the definitions.

    RAM: start = __SCREEN_START__ - __RAM_SIZE__ - __STACK_SIZE__
    ABCMUSIC_B: start = __RAM_START__ - __ABCMUSIC_B_SIZE__
    BGPICS: start = __ABCMUSIC_B_START__ - __BGPICS_SIZE__
    BLUEMOON_B: start = __BGPICS_START__ - __BLUEMOON_B_SIZE__
    MOZ_B: start = __BLUEMOON_START__
    FEVER_B: start = __BLUEMOON_START__
    TUXEDO_B: start = __BLUEMOON_START__
    MUSIC: start = __BLUEMOON_START__
    FORTUNE: start = __MUSIC_START__ - 164

But I can easily live with the way it is now. My Atari Lynx Multicart 
2006 has its feature freeze on Sunday and these fantastic linker 
segments make all the difference. In case you are interested, have a 
look at my Multicart 2006 blog at 
http://www.atariage.com/forums/index.php?automodule=blog&blogid=156&

--
Karri

----------------------------------------------------------------------
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 28 07:42:32 2006

This archive was generated by hypermail 2.1.8 : 2006-04-28 07:42:35 CEST