46.3 means that you've 46 bytes and 3 bits of the 256 bytes of memory on the 8051 built into the FX2. From the 8051's point of view, this is "internal RAM". The 16K for code/data RAM inside the FX2LP appears external to the 8051.
Some of the 256 bytes of internal memory is bit-addressable (by using the BOOL type in C, if you're using the Keil compiler).
hope this helps a little, Stuart
The xdata value being shown in the compilation statement is external memory being used. The 16k is internal memory and the register memory is internal to FX2LP but is addressed like external memory. If only this is used you won't need external RAM but if you declare variable and other code which resides in external memory you'll need a external RAM. We'll have to look at the code to understand the modifications required to make it run fully in internal memory.