No es adecuado publicar el código de la librería cuando en la misma en su cabecera dice:
///////////////////////////////////////////////////////////////////////////
//// (C) Copyright 1996,2003 Custom Computer Services ////
//// This source code may only be used by licensed users of the CCS C ////
//// compiler. This source code may only be distributed to other ////
//// licensed users of the CCS C compiler. No other use, reproduction ////
//// or distribution is permitted without written permission. ////
//// Derivative programs created using this software in object code ////
//// form are not restricted in any way. ////
///////////////////////////////////////////////////////////////////////////
Por favor solo menciona la parte de código que es de interés.
Ahora, veo una modificación con respecto al tratamiento de la dirección, se rota 15 veces a la derecha cuando debería ser 8:
i2c_write(address>>8);
i2c_write(address);
Saludos!