Hello Chaps, I wonder if anyone out there could possibly help me to clarify the operation of AN578. I am totally new to microcontrollers and hence the programming 'gibberish' which accompanies them. My project requirements are to initially write up to 104 bytes of data into a 24C01 EEPROM in successive memory locations, and later on in the program retrieve all 104 bytes and sequentially assign the data from each EEPROM memory location to ram files in the PIC. I have chosen the PIC 16C65 since I also require an RS232 serial link to a remote p.c. Up until now I have studied AN 578 which I was hoping to modify, but I am totally confused as to the following points: 1). What does 'Multi-Master' mean ? - There is only one microcontroller, (the Master ) ?? 2). In the source code, I cannot see any program calls to the RDBYTE routine ? - Is this because the PIC is configured for interrupt reception, i.e. RDBYTE is not used since upon detection of an interrupt a byte has been received from the I2C bus ?? - If so then what is the point in including this routine ?? 3). Why is there so many BCF STATUS,RP0 in succession ? (i.e. line 159, line 164 line 167 etc.) page has already been set ?? 4). The SLAVE device address is the same in both the WRBYTE and RDBYTE routines ?? (i.e. in the commented out section above the code SLAVE = device address (1010xxx0) is the same in both routines ??) 5). There is no source code reference to ADDR in the WRBYTE routine although ADDR is specified as an input in the commented out section above the routine ?? Where then is the data stored ?? in which memory location in the EEPROM. 6). Is only one memory location inside the EEPROM used for data storage ?? since there is no INCF ADDR etc. to select the next memory location in succession. ?? 7). Where in the code is the R/W bit in the slave address set for each operation ?? 8). An I correct in assuming that since the 24C01 comprises only 128 bytes of data storage, then only one 8-bit address word is required in order to address all the memory locations ? (i.e. in comparison with the 24LC64 etc. which requires address high byte and address low byte in order to address each memory location ??) And finally, can anyone possibly help me, (point me in the right direction etc.) regarding how to modify the source code of AN578 in order to allow my 104 bytes of data to be initially wrote into successive memory locations in the EEPROM, starting at location 00 say, and later successively read out and assigned to ram files ?? Thank you all very much for your time: Lee Hewitt (Manchester ENGLAND) e-mail: LHewitt104@aol.com