Hola cerebro...
Pues SDCC es un proyecto de código abierto que corre bajo LInux, Windows y Mac, pero no es un compilador específico para PIC, se desarrolló en principio para Z80, 8051 y alguno más, aunque se puede adaptar a casi cualquier uc, ultimamente se está publicando soporte para PIC, ya está bastante completo para PIC18F con librerías y demás, pero para PIC de 14 bits todavía está en camino, tiene soporte básico para muchos PIC16F y algunos PIC12, pero hay muy pocas librerías oficiales publicadas, por eso trato de escribir las rutinas básicas para manejar un LCD.
La función "lprintf" es lo que trato de crear, no existe previamente en este compilador y es posible que cualquiera de las que he probado funcione y que el fallo esté en no incluir alguna librería de manejo de cadenas o algo así, porque puedo escribir cualquier caracter de la cadena mandando el vector a la posición que sea, pero si hago un bucle y voy aumentando la posición del vector entonces solo me devuelve una letra la primera vez, sea cual sea la posición de inicio... si empiezo por la tercera letra, me la imprime bién, pero si aumento la posición dentro de la cadena ya no me devuelve nada más sino un caracter vacio.
Saludos.