Versuch mal. Der Bascom hat bei SRAM-LCD die Register vernudelt.
Das erste Zeichen hätte er aber eigentlich noch zeigen müssen, dann aber Schrott

Code:
copyright = Guenter Gerold 
www       = www.gerold-online.de/cms 
email     = tv@gerold-online.de 
comment   = I2C LCD Treiber 
libversion   = 1.00 
date         = 07.07.2008 
statement    = Wer was zu verbessern hat kann sich bei mir melden... 
statement    = 
history      = Final. 

[_Init_LCD] 
_Init_LCD: 
	*BASIC: waitms 20 
	*BASIC: i2cstart 
	*BASIC: i2cwbyte    gg_Displayport 
	*BASIC: i2cwbyte    &H06 
	*BASIC: i2cwbyte    &H00  
	*BASIC: i2cwbyte    &HE8    
	*BASIC: i2cstop 
	 Ldi _temp2, &H3c 
	rCall _gg_i2c_config                                    
 	Ldi _temp2, &H0f 
	rCall _gg_i2c_config 
                                    
_gg_i2c_config: 
	*BASIC: I2cstart 
	*BASIC: I2cwbyte gg_Displayport 
	*BASIC: I2cwbyte &H02 
	*BASIC: I2cwbyte _temp2 
	*BASIC: I2cwbyte &H01 
	*BASIC: I2cstop 
	*BASIC: Waitms 2 
	*BASIC: I2cstart 
	*BASIC: I2cwbyte gg_Displayport 
	*BASIC: I2cwbyte &H03 
	*BASIC: I2cwbyte &H00 
	*BASIC: I2cstop 
	ret 
[end] 


[_CLS] 
_CLS: 
	*BASIC: I2cstart 
	*BASIC: I2cwbyte gg_Displayport 
	*BASIC: I2cwbyte &H02 
	*BASIC: I2cwbyte &H01 
	*BASIC: I2cwbyte &H01 
	*BASIC: I2cstop 
	*BASIC: Waitms 2 
	*BASIC: I2cstart 
	*BASIC: I2cwbyte gg_Displayport 
	*BASIC: I2cwbyte &H03 
	*BASIC: I2cwbyte &H00 
	*BASIC: I2cstop 
	ret
[end] 

[_Write_lcd] 
_Write_lcd: 
  	Ldi _temp2, &H05          
  	rjmp  _Write_lcd_Byte    
_Lcd_control: 
  	Ldi _temp2, &H01          
_Write_lcd_Byte: 
  	*BASIC: I2cstart 
  	*BASIC: I2cwbyte gg_Displayport 
  	*BASIC: I2cwbyte &H02         
	MOV	r17, _temp1
	RCALL	_i2c_write
	MOV	r17, _temp2
	RCALL	_i2c_write
  	*BASIC: I2cstop 
  	rcall LCD_Write_Enable 
  	ret 
  
LCD_Write_Enable: 
  	*BASIC: I2cstart 
  	*BASIC: I2cwbyte gg_Displayport 
  	*BASIC: I2cwbyte &H03 
  	*BASIC: I2cwbyte &H04 
  	*BASIC: I2cstop 
  	ret                    
[end]