Für diejenigen, die wie ich Probleme mit dem Umgang mit I2C EEPROM haben hab ich mal mein Ergebniss hier rein gestellt, auf dass es anderen helfen möge.

Bausteine: 24c128 , 24c256

Code:

Declare Sub Write_eeprom(byval Adresh As Byte , Byval Adresl As Byte , Byval Value As Byte)
Declare Sub Read_eeprom(byval Adresh As Byte , Byval Adresl As Byte , Value As Byte)

' Adresse erzeugen:
' Pin A0 und A1 sind intern mit Pulldowns versehen, sind also
' wenn extern nicht beschaltet 0
' Die Der Baustein halt serienmäßig die Adresse Binär:
' 1 0 1 0 0 A1 A0 R/W
' also, angenommen man möcht bei A0 = 0 und A1=0 schreiben:
' Adresse: 10100000 = 160
' Lesen Adresse: 10100001 = 161
'
' der 24c128 und 24c256 brauchen für die Adressierung 2 Byte
' Den High-Byte der Adresse und den Lowbyte der Adresse.
' Einfach, da die soviel Speicher habn :o)

Const Addressw = 160                                        'slave write address
Const Addressr = 161                                        'slave read address

Dim B1 As Byte
Dim Value As Byte                                           'dim byte
dim Adresse as word at &HA0 ' Der Speicherbereich ist dem jeweiligen Baustein anzupassen, muß aber den overlayvariablen gleich sein
Dim Adresh As Byte at &HA1 overlay                                          'Highbyte der Adresse 
Dim Adresl As Byte at &HA0 overlay                                         'Lowbyte der Adresse
Dim A As Byte                                               'allgemeine Variable für Berechnungen

For Adresse = 1 To 5    ' die ersten 5 Byte schreiben
   Value = Adresse + 100     'Beginnend mit Zahlenwert 105 um Verwechslungen zu vermeiden
   Call Write_eeprom(1 , Adresse , Value)  'Daten schreiben
Next Adresse

For Adresse = 1 To 5    'die geschriebenen 5 Byte auslesen
   Call Read_eeprom(1 , Adresse , Value)    'auslesen
   Print Value     'Ausgabe an UART
Next Adresse

Sub Write_eeprom(byval Adresh As Byte , Adresl As Byte , Value As Byte)
    I2cstart        'start condition
    I2cwbyte Addressw   'slave address
    I2cwbyte Adresh    'asdress H of EEPROM
    I2cwbyte Adresl     'asdress L of EEPROM
    I2cwbyte Value      'value to write
    I2cstop         'stop condition
    Waitms 10       'wait for 10 milliseconds
End Sub

Sub Read_eeprom(byval Adresh As Byte , Adresl As Byte , Value As Byte)
   I2cstart       'generate start
   I2cwbyte Addressw   'slave adsress
   I2cwbyte Adresh     'asdress H of EEPROM
   I2cwbyte Adresl    'asdress L of EEPROM
   I2cstart              'repeated start
   I2cwbyte Addressr        'slave address (read)
   I2crbyte Value , Nack    'read byte
   I2cstop        'generate stop
End Sub

' Wires from the I2C address that are not connected will default to 0 in most cases!

'   I2cstart      'start condition
'   I2cwbyte &B1010_0000      'slave address
'   I2cwbyte H      'high address
'   I2cwbyte L      'low address
'   I2cwbyte Value     'value to write
'   I2cstop     'stop condition
'   Waitms 10