Bueno, señores, tengo buenas y malas noticias que daros

Llevo varias horas dándome cabezazos contra un par de códigos FAT16, el uno descargado del CCS Forum y el otro "prestado" por el amigo
Raus de este foro.
Ambos tienen para mí un gravísimo inconveniente: ambos utilizan el módulo SPI del PIC en cuestión. Yo no puedo hacerlo por este método.
Como dije antes tengo los pines SPI de mi 18F2550 destinados a otro uso y me es fundamental mantenerlos en ello, no puedo usar el SPI por hard.
Sin embargo el driver "mmc_spi.c" de CCS C implementa toda la comunicación SPI por software en una serie de funciones perfectamente operativas.
El dilema que se me plantea ahora es:
1.- ¿Sigo trabajando con los códigos FAT16 ya implementados e intento sustituir solo la parte de comunicación SPI reescribiendo las funciones SPI_READ() y SPI_WRITE() del CCS?
2.- ¿Utilizo la base quasi-hardware del "mmc_spi.c" e implemento mi propio driver FAT16 basándome en la documentación técnica de Microsoft de la que os hable haces unos posts?
A mi el cuerpo me pide la segunda opción ... sobre todo porque significaría entender de verdad cómo funciona lo de la FAT16, el problema como siempre sería de tiempo. Pasar de una lectura / escritura hardware de bloques de 512 bytes por dirección absoluta a un sistema lógico creado por la gente de Microsoft, que ya sabeís que su máximo lema es "Haga díficil lo sencillo para que lo dificil sea imposible", creando capa a capa lo que vaya desentrañando de la cebolla microsoftiana.
No sé que hacer. Dudo, dudo mucho, Sufro, sufro mucho.
