DEV Community

Mi propio procesador de textos en ZX Sinclair BASIC (y II)

Cuando escribía la historia anterior a este post, me preguntaba... ¿pero realmente me tenía que apañar, como adolescente, con mi propio procesador de textos para mi ZX Spectrum?

Como ya mencioné en el anterior post, el ZX Spectrum 128k español tenía su propio procesador de textos en ROM. El problema era que el número de columnas estaba limitado al número estándar del Speccy, es decir, 32. Siendo optimista y positivo, el texto así impreso exhibía un gran margen derecho.

Otra posibilidad era haber adquirido un procesador de textos, como Tasword 128k, publicado en 1986. La versión anterior de Tasword no servía, pues tenía el mismo problema que el residente en la ROM: solo soportaba 32 columnas. La versión 128k inauguraba un soporte de columnas de 64 columnas, es decir, el doble. Con unos márgenes de 8 caracteres por cada lado, era factible utilizar un software como este.

Carátula del cassette de Tasword 128k

El problema era que yo desconocía la existencia de este software. Al contrario que ahora, que vivimos el auténtico bombardeo de anuncios de aplicaciones de todo tipo, por aquel entonces solo podías mantenerte actualizado con revistas como Microhobby. Pero es que este software era inglés... ¿se publicaría en España? No tengo ni idea. Yo no me enteré. Si que recuerdo haber visto Tasword para el Spectrum +3 (con unidad de disco), cuando ya conocía su existencia para el Amstrad 6128, es decir, varios años después.

El soporte de 64 columnas en el Speccy era algo complicado, y muy interesante. No se trataba de un modo especial de vídeo, sino que, hasta donde yo sé, se trataba de utilizar los UDG (gráficos definidos por el usuario) para crear parejas de letras. Si el Speccy soportaba 32 columnas con caracteres de 8 puntos de ancho y 8 de largo, la idea era utilizar "medio"-letras de 4 puntos, y colocar así dos en cada carácter real.

El ZX Spectrum 128k venía con un puñado de nuevos comandos para BASIC. Así, podríamos hacer lo siguiente.

Comando Significado
spectrum Reinica en modo 48k.
play Tocaba música para el nuevo chip de sonido.
renum Renumerado de líneas del programa.
cat! Catálogo de la unidad m:.
load!... Operaciones de archivos en m:.
erase! Borra archivos en m:.
width* Cambia el número de columnas

¡Un momento! ¿Qué es ese comando WIDTH? Lo he puesto como WIDTH, con un asterisco, porque realmente este comando no llegó a existir. Se había planeado, pero tenía muchos errores y se decidió eliminarlo. Modificaba el número de columnas en la información enviada por el puerto RS-232. ¿Podría haberlo utilizado para poder utilizar el editor de textos en ROM? Nunca lo sabremos.

La unidad m: era un disco en memoria, aunque solo se la llamó así con la llegada del Sinclair +3. Era así como se podían utilizar los 128k sin cambiar Sinclair BASIC, que al fin y al cabo, contaba con ciertas variables en ciertas posiciones en memoria, y contaba con ciertos límites. Cambiarlo hubiera roto la compatibilidad con programas creados para 48k.

Lo cierto es que, en cualquier caso, yo me lancé como un poseso a crear mi propio "procesador de textos", pues estaba entusiasmado con arreglar un problema del que, además, podía imaginar una solución.

He reescrito lo que recuerdo de aquel antiguo procesador de textos, ¡no sé si será útil!

Top comments (0)