Hola poseidon,
No me ofende, al contrario, es de agradecer la ayuda que me están dando.
En cuanto al error, no se qué podía ser... la verdad es que he ido creando nuevos proyectos con el asistente y ahora sí me ha admitido el .asm, y claro está ha salido una retaíla de errores. He depurado los errores de sintaxis que me has comentado, la verdad es que creía que en el código de programación no se distinguía entre mayúsculas y minúsculas, sólo para declarar cadenas de caracteres. Aparte lo del cblock y lo de la configuración del puertoA con E/S digitales.
Ahora mismo el programa compila, con algunos mensajes de advertencia para que compruebe el banco cuando uso registros del banco 1 como los TRIS,etc., que ya he comprobado y creo que están bien configurados según el datasheet de microchip.
En cuanto a lo del _WRT_ENABLE_ON... es cierto, he mirado el archivo del pic y no aparece, pero sin embargo en el fichero "16F877atemp" (creo recordar) que usé siguiendo el manual para la estructura del programa sí aparece (en mi fichero todo lo que está en inglés es la parte que he copiado de ese fichero). La verdad es que no se para qué sirve, si crees que sólo me puede dar problemas, lo borro.
Sobre lo de usar un pic 16f877A, si son sólo ventajas y no supone ningún cambio importante en la configuración de patillas y en la programación, pues hombre es bienvenido. Voy a echarle un vistazo al datasheet a ver qué encuentro distinto.
De momento voy a continuar insertándole las rutinas para escanear el teclado.
Les dejo el último código modificado por si alguno puede echarle un vistazo por si, por experiencia, detecta algún fallo que, aunque no sea detectado para compilar, pueda salir funcionalmente una vez implementado en el chip.
Les iré posteando los avances que vaya haciendo durante estos días.
Un saludo y de nuevo gracias.