movlw 07h
movwf dir
movlw 'K'
movwf dato
call escribir
bsf STATUS, RP0 ;Bank 1
movlw 00h
movwf EEADR;cargo direccion a escribir
movlw 'A'
movwf EEDATA; cargo dato a escribir
bcf STATUS, RP0 ; Bank 0
call WhiteEEPROM
call RETARDO4MS
goto fin
escribir
bsf STATUS, RP0 ;Bank 1
movf dir,w
movwf EEADR;cargo direccion a escribir
movf dato,w
movwf EEDATA; cargo dato a escribir
bcf STATUS, RP0 ; Bank 0
call WhiteEEPROM
call RETARDO4MS
return
fin
nop
goto fin
end¿Pero las variables dir y dato en que banco están?Los registros dir y dato estan en direcciones del banco 0, del 21H en adelante. La rutina whiteEEPROM escribe bien pero me equivoque el nombre, la segunda parte en donde escribe una 'A' la hace bien pero la primera no la hace.
Porque cuando vas a "escribir" estás cambiando de banco y si dir y dato están en otro banco no vas a poder acceder al valor adecuado.
Tampoco veo que llames a alguna rutina para escribir. Sí veo que llamás a WhiteEEPROM pero por su nombre yo diría que dicha rutina borra la eeprom.
Gracias a tu ayuda pude solucionar el problema, cambiando de banco los registros. Ya tengo hecha mi rutina para escribir la memoria en una direccion aleatoria. :-/ Gracias.