Hello skimask and thanks for your help

Yes...i have the 4k7 pull ups ( also tryed other resistor values with no success.

here is the code :

Code:
*****

SSPCON.5 = 0                ; Disable SSP Module
TXSTA.5 = 0                 ; Disable AUSART Tx
RCSTA.7 = 0                 ; Disable Serial Port
 

OSCCON          = %01111110 'Internal RC w/ I/Os

INTCON=0

PIE1     = 0
'PIE2    = 0

PIR1                 = 0                   'off

CMCON= 7                
CVRCON= 0                   'Vref Off
CCP1CON= 0

T1CON= 0
'T2CON = %00000100

'*****************************************************************************
'DEFINEs
'*****************************************************************************

@ DEVICE INTRC_OSC
@ DEVICE MCLR_OFF
@ DEVICE PROTECT_OFF

DEFINE osc 4

@ DEVICE CPD_OFF
@ DEVICE LVP_OFF
@ DEVICE BOD_OFF
@ DEVICE PWRT_OFF
@ DEVICE WDT_OFF
 
'*****************************************************************************
'ADC

DEFINE ADC_BITS 10 ' Set number of bits in result ( 8 or 10 bits )
DEFINE ADC_CLOCK 3 ' Set clock source (3=rc)
DEFINE ADC_SAMPLEUS 50 ' Set sampling time in uS
 

'*****************************************************************************
'ADC parameters

ADCON1  =%10000000      'right justify
ANSEL   =%00000101 
ADCON0  =%11000001     

'*****************************************************************************
 
INCLUDE "modedefs.bas" 

'settings for serial comm

DEFINE debug_reg PORTA  
DEFINE debug_bit 1
DEFINE debug_baud 9600
DEFINE debug_mode 1

'*****************************************************************************
'I/O's
 
PORTA=0
PORTB=0

TRISA=%00100101
TRISB=%00000011
 
'*****************************************************************************
'PINS
 
temp    var PORTA.0 
out     var PORTA.1 
volt    var PORTA.2 
a3      var PORTA.3 
A4      var PORTA.4 
but1    var PORTA.5 
led2    var PORTA.6 
led1    var PORTA.7 

but2    var PORTB.0   
but3    var PORTB.1   
SCL     var PORTB.2  
SDA     var PORTB.3

green    var PORTB.4  
red       var PORTB.5  
led4      var PORTB.6  
led3      var PORTB.7

*****************************************************************************
' variables

va       var word
va2      var word
tempe    var word
volte    var word
mem      var byte
p1a      var word
p1b      var word
p2a      var word
p2b      var word
p3a      var word
p3b      var word
p4a      var word
p4b      var word
state   var byte
st      var word
ed      var word
ADDR    var word
m1      var  byte
m2      var byte
m3      var byte
m4      var byte
slot    var bit
w       var byte
CTW     VAR BYTE
km      var byte
ra      var word
set1    VAR BYTE
set2    VAR BYTE
rm      var byte
x       var byte

CLEAR

'*****************************************************************************

mem=1       
state=1     
p1a=$10     
p1b=$1070    
p2a=$1080
p2b=$2140
p3a=$2160
p3b=$3220
p4a=$3230
p4b=$4290

'*****************************************************************************
start:

high out
debug $0D, $0A
PAUSE 50

CTW=$A0

'*****************************************************************************

debug "start menu",13,10

startmenu:
 
I2CREAD SDA,SCL,CTW,1,[m1]
I2CREAD SDA,SCL,CTW,2,[m2]
I2CREAD SDA,SCL,CTW,3,[m3]
I2CREAD SDA,SCL,CTW,4,[m4]
 

if (mem=1) and (m1=0) then
led1=1
led2=0
led3=0
led4=0
slot=0
endif
 

if (mem=1) and (m1<>0) then
pause 300
toggle led1
led2=0
led3=0
led4=0
slot=1
endif
 

if (mem=2) and (m2=0) then
led1=0
led2=1
led3=0
led4=0
slot=0
endif
 

if (mem=2) and (m2<>0) then
led1=0
pause 300
toggle led2
led3=0
led4=0
slot=1
endif
 

if (mem=3) and (m3=0) then
led1=0
led2=0
led3=1
led4=0
slot=0
endif
 

if (mem=3) and (m3<>0) then
led1=0
pause 300
led2=0
toggle led3
led4=0
slot=1
endif
 

if (mem=4) and (m4=0) then
led1=0
led2=0
led3=0
led4=1
slot=0
endif
 

if (mem=4) and (m4<>0) then
led1=0
pause 300
led2=0
led3=0
toggle led4
slot=1
endif
 

if state=1 then
green=0
red=1
endif

if state=2 then
green=1
red=0
endif
if state=3 then
green=1
red=1
endif

 

if (but1=1) and (state=1) then
gosub readmenu
endif

if (but1=1) and (state=2) then
gosub recordmenu
endif

if (but1=1) and (state=3) then
gosub erasemenu
endif

 
if but3=1 then
gosub memorymenu
endif

 
if but2=1 then
gosub statemenu
endif


goto startmenu
 

'*****************
recordmenu:

debug "Record Menu",13,10

if slot=1 then 
goto warningmenu
endif

if mem=1 then
st=p1a
ed=p1b
endif
if mem=2 then
st=p2a
ed=p2b
endif
if mem=3 then
st=p3a
ed=p3b
endif
if mem=4 then
st=p4a
ed=p4b
endif

'****************** 

recordmem:
 
debug "2s pause before start recording",13,10
PAUSE 2000


        FOR ADDR= st TO ed

 	for w = 0 to 15
        ADCIN temp, va
        va2=va + (temp>>4)
        NEXT
 
va = (va2 */ 5000 ) >> 2
va=va/10
        
        toggle red
        pause  824           
        debug " Saved value:  ", dec va2," - ", dec va," In position  ", dec ADDR, 13,10 
        debug " VA2 = ", dec va2,13,10
        I2CWRITE SDA,SCL,CTW,ADDR,[VA.highbyte]
        pause 10
        ADDR=ADDR+1
        I2CWRITE SDA,SCL,CTW,ADDR,[VA.lowbyte]
        pause 10    
        ADDR=ADDR+1
        I2CWRITE SDA,SCL,CTW,mem,[addr]
        if but1=1 then      'stop recording
        pause 600
        goto startmenu
        endif
        toggle led1
        toggle led4
        NEXT
        red=1
        return
 
'******************
 
erasemenu:

'*****************

eraseblock:

debug "erasing block",dec mem,13,10
red=0
I2Cread SDA,SCL,CTW,mem,[x]
debug "before in position ",dec mem," - ",dec x,13,10
I2CWRITE SDA,SCL,CTW,mem,[0]
pause 500
red=1
return

'******************

memorymenu:
if mem < 4 then
mem=mem+1
else
mem=1
endif
debug DEC mem,13,10
pause 300
return

'******************

statemenu:

if state < 3 then
state=state+1
else
state=1
endif
debug "state change - ", DEC state,13,10
pause 300
return
 
'******************

end