Otro paseo por otro bosque encantado; restauración cuántica
Por si no tenía suficientes proyectos en marcha, hace un par de semanas empecé uno más: El bosque encantado de Oupouèle, una aventura conversacional en OPL para la Psion 5mx, tanto por el placer del reto en sí como para idear y probar nuevos algoritmos que luego pueda aplicar a otros proyectos; y también para mantener fresca la práctica con OPL, un lenguaje cómodo, potente, agradecido... y prácticamente en desuso: su reencarnación como Open Programming Language para el sistema Symbian (descendiente de EPOC R5) no tiene ya muchas oportunidades, dadas las perspectivas de futuro de Symbian. Aunque siempre se podría portar el lenguaje a otros sistemas operativos...
La veterana Psion 5mx ofrece un entorno de desarrollo cómodo y completo en la palma de la mano; es una de las muchas características que me encantan de una máquina muy bien diseñada, tanto a nivel físico como logicial. El propio sistema operativo EPOC R5 incluye un editor y compilador de OPL con el que es posible crear tanto aplicaciones de consola como gráficas; y el programa nOPL+ de Neuon (comercialmente abandonado y descargable gratuitamente) nos añade un preprocesador que proporciona más potencia y flexibilidad al lenguaje, así como un entorno de desarrollo más sofisticado y cómodo.
Precisamente, revisando estos días, página a página, mi colección de la revista QL World, de la que conservo casi todos los ejemplares aparecidos entre 1987 y 1995, incluido el último número, encontré muchos pequeños y grandes tesoros, uno de ellos relacionado con OPL: en el número de junio de 1990, en el artículo Archive power de Robin Stevenson, hay recuadro titulado Archive and OPL que describe el origen común entre las primeras implementaciones del lenguaje OPL para el primer Psion Organiser y el lenguaje de programación Archive implementado en el programa de bases de datos homónimo, desarrollado también por Psion, que venía con la QL (junto con el resto de aplicaciones ofimáticas: el tratamiento de textos Quill, la hoja de cálculo Abacus y el programa de gráficos estadísticos Easel).
El objetivo de hojear los números de QL World era volver a empaparme de QL, de QDOS, de SuperBASIC... y actualizar los viejos marcadores de páginas que en su día había ido colocando en las revistas: Muchos asuntos que entonces me interesaban, difícilmente volverán a interesarme, como por ejemplo la programación en el citado Archive, Otros asuntos sí siguen interesándome o me interesarán de ahora en adelante, como las aventuras conversacionales para QL y ciertas extensiones para SuperBASIC escritas en ensamblador de 68000.
En 1987 trabajé por primera vez con una computadora QL (128 KiB) y el sistema operativo QDOS. Poco después la amplié con una tarjeta Trump Card de Miracle Systems (768 KiB adicionales, Toolkit 2 integrado y conector para disqueteras), lo que fue supuso un gran avance en la versatilidad y potencia del sistema. En 1994 adquirí, también de Miracle Systems, una tarjeta QXL. Con ella mi PC 486 (a 50 MHz) del año 1991 con Windows 95 adquirió una nueva personalidad alternativa mucho más interesante: se transformó en una súper QL, rapidísima, que usaba la tosca cacharrería de la PC sólo como entrada y salida, con el sistema operativo SMSQ y el nuevo lenguaje SBASIC (una versión mejorada y compatible de SuperBASIC). El sistema SMSQ incluso podía trabajar aparentemente como si se tratara de una «aplicación» más del rudimentario e ineficiente sistema operativo de Microsoft. La interesantísima historia del desarrollo de SMSQ y SBASIC para la QXL, escrita por su autor Tony Tebby, tiene muchas lecciones interesantes.
El caso es que últimamente estoy recuperando y volviendo a poner en marcha mi último entorno de trabajo QL de finales de los 1990, pero no con la tarjeta QXL sino con ayuda de varios emuladores y el sistema operativo Minerva. A finales de junio escribí que iba a compilar el emulador uQLx, pero al final no fue necesario: el paquete ya compilado disponible en sinclairQL.es Recursos en Castellano funcionó muy bien.
Una tarea accesoria de la «restauración cuántica» ha sido la preservación de los disquetes originales de las aplicaciones que en su día compré para la QL. Años atrás ya había pasado mis disquetes de datos y documentos al fichero QXL.WIN que la tarjeta QXL usa como imagen de disco duro, en el disco duro real del DOS anfitrión. Pero recordé que había olvidado preservar el resto de disquetes, los originales de los programas comerciales.
Pacientemente, fui creando una imagen de cada disquete (la mayoría son de doble densidad, de 720 KiB), desde Debian (en una máquina con disquetera, pues mi Asus Eee no tiene), con el habitual programa dd (dd if=/dev/fd0 of=nombre_de_imagen.flp
o bien comprimiendo la imagen en el mismo paso: dd if=/dev/fd0 | gzip > nombre_de_imagen.flp.gz
). A pesar de haber pasado tantos años, de 31 disquetes sólo 2 han fallado: los de PC Conqueror, de Digital Precision, y Keycode Translator, de Di-Ren, nada grave porque de ambos tenía copia. En todo caso todos esos tantísimos programas no los he usado en quince años y sin duda la mayoría de ellos no los volveré a necesitar jamás. El interés por preservarlos es principalmente histórico, para que algún día, cuando pasen a ser de código abierto, de dominio público o al menos de libre distribución, puedan ser colgados en la red.
Por suerte, el emulador uQLx no sólo puede leer y escribir disquetes de QDOS reales, sino también sus imágenes, gracias a lo cual en mi Asus Eee sin disquetera podré usar estas imágenes como usaba los disquetes originales en su día.
Además de uQLx y los otros emuladores que ya mencioné en una entrada anterior del diario, he estado probando la versión de demostración de QPC2 Tras muchas pruebas y comparativas me decidí por adquirir QPC2, a pesar de que algunas características de Q-emuLator son muy atractivas. La calidad de ambos es tan grande que funcionan sin problemas apreciables en Debian con Wine; el trabajo de Marcel Kilgus (autor de QPC2) y de Daniele Terdina (autor de Q-emuLator) es admirable. Los demás emuladores, gratuitos, aún no tienen todas las características que necesito para trabajar; y uQLx no está terminado ni suficientemente depurado.
En unos días, mi antiguo y entrañable entorno de trabajo QL se reencarnará, más potente y cómodo que nunca, en mi Asus Eee con ayuda de QPC2 y Wine; y seguro que algún proyecto nuevo toma forma. Lo cual, por supuesto, no impide en ningún caso dar paseos por los bosques encantados.