Does the Cx51 compiler support I2C operations such as addressing external RAM for XDATA fetches? Or, do you still have to have the standard RAM (address lines) if you require excess XDATA space (more than 2K in the case of the 89C669)?
"are you asking 'can I address serial memory the same way as parallel?' If so, the naswer is No." Actually, the answer is "Yes!" You use the compiler's XDATA Banking faclities and write a "driver" so that variables can be defined and used in serial EEPROM just as if they were in "normal" RAM! eg, see http://www.keil.com/forum/docs/thread1754.asp I think there's an example included with the tools somewhere...
Note that the PK51 (Professional) Kit is required. The examples are in: Keil\C51\examples\FarMemory\3 XData Areas on T89C51RD2 and Keil\C51\examples\FarMemory\E2PROM on T89C51RD2 (note the spaces in the folder names!) See the ABSTRACT.TXT file in each folder for further details.
one issue: If you willy-nilly use serial RAM as XDATA your process speed will comre to a crawl. I guess the reason for your question is the old issue "I need more port pins" A much better alternative is to use parallel RAM and memory map some I/O. -OR- if you do not need more than 64k of code space, switch to the 668 which has 8k of internal RAM even more dramatic use a SILabs F12x, you get 8 ports, 128k of internal code memory and 8k of internal RAM. Erik