I got to wondering why I was getting nothing in the last build. So I trapped for failures to read and write. I did see that it was just not getting there, so tweaked the port assignments, etc. Here is what I get now:

** MCU started

** EEPROM write skipped

Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!
Reading:* Test EEPROM --> OK!

(I added "reading" to it)

The program is as follows:

------------------------------------------------------------------


'--------------------------------------------------------------------------------

'Tom,

'on my DataLoggers I have 16F876 or 18F252 and 2x 24LC512.
'The following code is tested.
'could you give it a try and let us know what the result was?


' -----[ Fuses ]------------------------------------------------
@ __CONFIG _CONFIG1H, _OSC_INTIO67_1H
@ __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H
@ __CONFIG _CONFIG3H, _PBADEN_OFF_3H & _MCLRE_OFF_3H
@ __CONFIG _CONFIG4L, _LVP_OFF_4L & 0bfh ;_XINST_OFF_4L
'
' -----[ Includes/Defines ]---------------------------------------------------------
include "modedefs.bas" 'include serout defines

OSCCON=%01111000
DEFINE OSC 8
While OSCCON.2=0:Wend

SCL var PortC.3 ' I2C Clock
SDA var PortC.4 ' I2C Data
ROM0 con %10100000 ' address of chip1
ADDR VAR word ' ROM Location
MonPort var PortC.6 ' Monitor Port
Mode con 16572 ' 4800 Baud 8N1 for Monitor Port
Test var byte[21] ' Test Array
I2Cdelay con 10 ' Delay after I2Cwrite

Temp var byte

CLEAR

SEROUT2 MonPort,Mode,[13,10,"** MCU started",13,10,13,10]

ADDR=100

I2CREAD SDA,SCL,ROM0,ADDR,[Temp]

IF Temp="*" THEN GOTO SkipWrite

I2CWRITE SDA,SCL,ROM0,ADDR,_
[$2A,$20,$54,$65,$73,$74,$20,$45,$45,$50,$52,$4F,_
$4D,$20,$2D,$2D,$3E,$20,$4F,$4B,$21],failw

PAUSE I2Cdelay

SEROUT2 MonPort,Mode,["** EEPROM written",13,10,13,10]

GOTO Loop

SkipWrite:

SEROUT2 MonPort,Mode,["** EEPROM write skipped",13,10,13,10]

Loop:
I2CREAD SDA,SCL,ROM0,addr,[str test\21],failr
SEROUT2 MonPort,Mode,["Reading:", STR Test\21,13,10]
PAUSE 1000
GOTO Loop

failr:
serout2 monport, mode,["failure to read",10,13]
return

failw:
serout2 monport, mode,["failure to write",10,13]
return


END