Gracias. Estuve intentando lo que me dijiste y al principio, debuguie el resultado y se truncaba cuando pasaba los 255.
Ahora no se trunca, pero directo sigue haciendo lo mismo, intente tambien guardarlo en una variable pero tampoco resulta.
address = (((((int16)numPrograma-1))*5)+233);
write_eeprom((int16)address,b1);
Si se te ocurre otro cosa avisame.
Muchas gracias.