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