hi frieder --

frieder wrote:
 > Hi,
 > 
 > [EMAIL PROTECTED] schrieb:
 > > Internal RAM layout:
 > >       0 1 2 3 4 5 6 7 8 9 A B C D E F
 > > 0x00:|0|0|0|0|0|0|0|0|b|b|b|b|c|Q|Q|Q|
 > > 0x10:|Q|Q|Q|Q|Q|Q| | | | | | | | | | |
 > > 0x20:|B|T|a|a|a|a|a|a|a|a|a|a|a|a|a|a|
 > > 0x30:|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|
 > > 0x40:|a|a|a|a|a|a|S|S|S|S|S|S|S|S|S|S|
 > > 0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
 > > 0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
 > > 0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
 > > 0x80:| | | | | | | | | | | | | | | | |
 > > 0x90:| | | | | | | | | | | | | | | | |
 > > 0xa0:| | | | | | | | | | | | | | | | |
 > > 0xb0:| | | | | | | | | | | | | | | | |
 > > 0xc0:| | | | | | | | | | | | | | | | |
 > > 0xd0:| | | | | | | | | | | | | | | | |
 > > 0xe0:| | | | | | | | | | | | | | | | |
 > > 0xf0:| | | | | | | | | | | | | | | | |
 > > 0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, 
 > A:Absolute
 > > 
 > > Stack starts at: 0x46 (sp set to 0x45) with 58 bytes available.
 > > 
 > > Other memory:
 > >    Name             Start    End      Size     Max     
 > >    ---------------- -------- -------- -------- --------
 > >    PAGED EXT. RAM                         0      256   
 > >    EXTERNAL RAM     0xf400   0xf741     834     2048   
 > >    ROM/EPROM/FLASH  0x0000   0xf3ea   62443    62464   
 > 
 > another note, there is a gap within the (i)data memory
 > from 0x16 to 0x1f. If you can split the area marked as 'a'
 > f.e. into a region of 10 bytes and another region with the
 > rest of the bytes then the linker can allocate
 > the data consecutively. Would give you 10 bytes more
 > stack space.

i wish.  thanks for the tip on locating them.  those bytes are
all internally allocated "local" vars.  i can work on simplifying
the code, but unless i can move something like _getV85_sloc0_1_0
to xdata, i may be stuck with them.

the other thing that would help (i think) would be eliminating
the B byte.  that, too, would let those addresses be used, right?

but that byte seems to be an internal thing as well -- i find it
here, in a .asm that contains all my interrupt service routines (if
that matters):
    ;--------------------------------------------------------
    ; overlayable bit register bank
    ;--------------------------------------------------------
            .area BIT_BANK  (REL,OVR,DATA)
    bits:
            .ds 1
            b0 = bits[0]
            b1 = bits[1]
            b2 = bits[2]
            b3 = bits[3]
            b4 = bits[4]
            b5 = bits[5]
            b6 = bits[6]
            b7 = bits[7]

does that look familiar?

paul
=---------------------
 paul fox, [EMAIL PROTECTED]

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to