Continuando con Recuperando programas antiguos: El proceso, vamos a proceder a analizar los programas que he encontrado, y que son parte de mi historia.

Veréis que es muy fragmentario, en unos casos, no todo son las últimas versiones de lo que programé. En otros, son tan últimas, que ni siquiera funcionaban. Cuando ha sido posible, y habían desaparecido los ejecutables, he intentado compilarlos con las herramientas de la época. A saber: Turbo Basic, Quick Basic, Turbo Pascal y Turbo C.

Muchos de ellos, estaban escritos en BASICA y GW-BASIC, por lo que los he guardado en formato ASCII, al menos para que resulten legibles.

1989-1991

El material recuperado comienza en 1989, son muchos experimentos, la mayoría incompletos. Suelen ser programas gráficos, que es lo que con esa edad, me llamaba la atención.

En aquella época, nos dedicábamos entre otras cosas a recopilar programas, a veces parchearlos, y a veces venderlos. No sin demasiado éxito. Todo hay que decirlo. Lo hacíamos bajo el sello de The Copying Crackers (TCC), y fruto de ello, es TCC de 1990, que tiene la gracia de ser sencillamente un archivo BAT compilado.



En 1991, la cosa sigue, y seguiría durante algunos años, con CRACK y COPYING, escrito en GW-BASIC, y compilado en Turbo Basic, y que sería mi primer contacto con este compilador. Versiones de lo mismo, intentando imitar las intros de la escena.





Sobre la base de hacer una intro más o menos aparente, tenemos TCC, ya con modo gráfico EGA, y que iría evolucionando, hasta un increíble año 1995.



Gráficos Empresariales, firmado bajo mi genuino Guti Soft. Ltd., con casi 300 lineas de código, era un programa con pretensiones serias. Su propósito era graficar hasta 6 valores distintos, tanto en formato de barras, como en formato de lineas. Estaba escrito en BASICA, y usaba el módo gráfico CGA de 320×200 píxels y una paleta de 4 colores.









High Cars (HC), un juego de coches tipo Super Sprint, desarrollado en Turbo Basic. Con 400 lineas de código, era aún más ambicioso que el anterior. Incluía una protección anticopia basada en códigos a introducir por el usuario, un menú principal bastante trabajado, y la posibilidad de redefinir teclas. Dibujamos la mayoría de gráficos, incluyendo el escenario, y programamos las rutinas de colisión, pero poco más. Tuvimos muchos problemas con el manejo de sprites, y nos vimos obligados a programar una utilidad adicional para crearlos.









Aparecen vestigios de BARNA92, un proyecto de programación que íbamos a presentar, con motivo de las olimpiadas de Barcelona, en el colegio a un concurso nacional, y que al final quedó en nada. DELETE, de ese mismo año, es quizás el más relevante de esa época. Firmado por Rainbow Software Limited. Barcelona, pretendía ser una versión del algo que sería recurrente en el futuro, WIPE, un borrador de archivos por sobreescritura.



1992

1992, fue a tenor de todo lo encontrado, un gran año.

Empiezo con MHZ, un programa que me publicaron en la revista PC-Actual, y que se encargaba de dar el valor de rendimiento relativo del ordenador en el que se ejecutaba. Mucho antes de que conociera Landmark Speed Test, simplemente imitaba la evaluación de rendimiento de PC-Tools. La gracia era que todas las versiones de DOS, incluían un intérprete de BASIC, así que cualquier podía ejecutarlo.



CP o Custom Prompt, es el primer programa destinado a ser distribuido que recuerdo. Cuando descubrí las secuencias de escape ANSI, me di cuenta que gracias a ellas, se podía personalizar el PROMPT de DOS con colores. Por supuesto, fue mucho antes de conocer 4DOS.



RSL-TEST, tiene como novedad el uso de las rapidísimas TBWINDOW de Turbo Basic, y un entorno de usuario, del que me sentí orgulloso. Fueron los inicios de acceder directamente a la
memoria de video, algo que me permitiría casi igualar el rendimiento de admiradas aplicaciones comerciales. Simplemente era un benchmark, creado a raíz de MHZ, pero bastante más completo. Evaluaba el rendimiento de diferentes tipos de operaciones, y hasta donde yo se, antes de haber conocido Landmark o Norton System Information. Su único problema, que los valores no eran dinámicos, así que en equipos potentes, se podía salir todo de rango.



VIEWER era un visualizador, y también editor de archivos de texto escrito en GW-BASIC y posteriormente compilado con Turbo BASIC. Como operaba directamente en memoria, no era capaz de manejar archivos más largos de 14 Kb. Se ofrecía en 4 compilaciones diferentes, pero sólo he conseguido rescatar el código fuente del menú, aunque estoy seguro que funcionó.



SIMON, era una réplica (inacabada) del por aquel entonces moderno juego electrónico, que ya usaba el modo gráfico EGA a 320×200 con 16 colores, mucho antes que compañías comerciales hubieran apostado por él.







Continuando con el apasionante mundo de la compresión, le tocaba el turno a una nueva implementación de RLE, y así surgió ENPAK. Ya conocía LZEXE y PKLite, que comprimían ejecutables que eran descomprimidos on-the-fly. Por contra, otros archivadores como PKZIP o ARJ. Se me ocurrió que como la mayoría de archivos, eran por entonces de texto, podía crear un compresor de archivos, donde los ficheros pudieran verse descomprimidos, como si fuera un TYPE, sin necesidad de extraerlos. Esa idea, jamás la llegué a ver implementada por otros.



RSL-UTL, eran unas herramientas de gestión de archivos con protección anticopia (BORRAR, COPIAR, VISUALIZAR, VERIFICAR), que partía de una premisa equivocada. Pensaba que si leía byte a byte con un programa propio, en vez de con los comandos de DOS, se copiaría el contenido de manera idéntica. Era falso, pero me sirvió para crear LICENCIA, que ejecutaba un checksum sobre los ejecutables, o LEEME, que se basaba en ENPAK. Cada módulo estaba separado, tal vez para resultar más profesional, imitando los comandos DOS. Otra novedad, es que permitía tanto argumentos por la linea de comandos, como de forma interactiva si éstos no se especificaban. Algo que me debió gustar en BASCOM o MASM, y que decidí imitar.



1993

Había estado aprendiendo Turbo Pascal, era un lenguaje que ya por aquellos años no me gustaba, pero del que me encantó lo compactos que eran sus ejecutables, y la cantidad de funciones que tenía. Así salió DOS UTL 1.0 y 1.l en ese año, que mostraban información del sistema.



SUPER-PC fue mi primer programa serio en ensamblador, antes habían sido rutinas pequeñas. Lo firmaba W&G Software Incorporated, y creo recordar que partía de un artículo en alguna revista extrajera que explicaba como cambiar la frecuencia de refresco de la memoria RAM, para así mejorar el rendimiento.



ICE-DISK no tenía mucho misterio aparente. Un juego tipo PONG en Turbo Basic, con gráficos EGA más bien malos. Lo cierto es que lo que más me sorprendió era lo bien que jugaba la máquina, y que luego sería la base para programar ICE-FURY en 1997, como ejemplo de la GLIB.







ENPAK siguió avanzando, con la 1.07 lo reescribí para operar totalmente en memoria, así que era el doble de rápido, pese a que entonces los archivos estaban limitados a 32 Kb. Nunca se me ocurrió procesarlo por bloques. Ya había oído hablar de los duplicadores de disco duro, así que potencié esa faceta creando WRITE, para visualizar archivos directamente. La barra de progreso, estaba claramente inspirada en la de LHARC.



Me gustaban las cartas del tarot, algo a lo que jugábamos a menudo. Decidí crear un programa que fuera capaz de hacer tiradas con los arcanos mayores, y así salió TAROT. Pese a que el algoritmo de tirada estaba listo, sus resultados solamente te ofrecerían resultados a nivel de carta. No una interpretación en conjunto. Implementaba un sistema con datos externos (Data Driven), que me encantaba, y que poco a poco iría mejorando.



Finalmente, durante mi paso por el Esplai La Sagrera, hice ESPLAI, una aventura conversacional/gráfica que esencialmente aprovechaba los gráficos creados en BASIC años atrás, junto a muchas de sus rutinas y efectos. El reto es que intentaba modelar el flujo en datos externos, y que pretendía que las rutinas gráficas fueran lo más eficiente posibles.





Se renueva RSL-TEST con la versión 4.20, que ofrece más información del sistema, entre ellas, el estado de los bloque numéricos, mayúsculas y de desplazamiento. Y es que obtener el estado del hardware, vía software, es algo que siempre me gustó.



FOCOS es el resultado de intentar controlar y programar las luces en las fiestas, usando un ordenador. Nunca se llegó a probar en su entorno real, pero aparentemente estaba muy conseguido, incluyendo el acceso a los puertos de entrada/salida en ensamblador.



También aparece MTV, un homenaje al incipiente canal de televisión, y un experimento que mezclaba rendimiento gráfico, con contenido subliminal.

1994

En 1994, hubo intentos de portar ENPAK a ensamblador, siguiendo el enfoque de SUPER-PC, y a Turbo Pascal, siguiendo el de DOS-UTL. Como obras terminadas, sólo está CRACKER2, la siguiente evolución de TCC, con animación, y optimizado para usar aritmética entera.



Figuran algunos escritos de Rog: Máscaras y Mar, señal de que estábamos más enfrascados en asuntos metafísicos que en la informática.

1995

Empiezo a especializarme en C y ensamblador. Algo que se mantendría hasta la actualidad. Encuentro la primera versión de BIN2PRO, parece ser que uno de los gérmenes de De Trans Software (D.T.S.), y algunos experimentos gráficos, que serían el germen de la GLIB en modo VGA/MCGA: Campo de estrellas (SPACE), o la simulación de nieve (NIEVE).

Sin embargo, no abandono Turbo Basic, y así aparece CRACKER3, la última versión donde optimiza el código usando divisiones enteras, y además, suprime el sonido. El motivo es que al conocer la implementación de SOUND/NOSOUND en Turbo Pascal y Turbo C, me di cuenta que en Turbo Basic eran síncronos. Es decir, mientras se reproducía el sonido, la ejecución se paraba. El resultado final, fue un movimiento, con casi la suavidad y calidad que deseaba en 1990.



INFOEXE obtiene información de un ejecutable MZ DOS, en base a su cabecera, y sería el origen del mucho más potente EXEINFO.



PING-PONG fue un juego que empecé a escribir, y que como en Outlaw, no hay ni rastro del código fuente. Estaban creados los gráficos de fondo y los sprites, y pretendía recrear la recreativa arcade del mismo nombre que me encantaba.









SSITEST, firmado por Swap Soft. Inc (SSI), era un nuevo benchmark, ahora explotando la potencia del lenguaje C, y combinando lo aprendido con RSL-TEST y RSL-UTL.



Salió también OPTI, que pretendía ser el máximo grado de data-driven, un lector de libros, con archivos comprimidos e indexados, y cuyo primer ejemplo era el título: “Optimizaci¢n de programas con Borland C++ 3.1”. Fiel a sus pretensiones, usaba DIDIO, para ofrecer un rendimiento de visualización en pantalla excepcional.

VIRUS, un troyano de cuando se pusieron de moda estos malwares creados en Visual BASIC, y que en mi opinión deberían ser, al menos en C.

Por último JACK, mi implementación destinada a superar a HERBIE, con una interfaz de ventanas en modo texto, y un diccionario. De nuevo data-driven. Volvía a estar programado en Turbo BASIC, imagino que para aprovechar código que ya tenía, pero basado en objetos (no orientado a objetos), como Visual BASIC.



1996

Es el año que empezamos a centrarnos en Outlaw, por lo que no hay demasiada actividad. Como ya expliqué, no sólo constaba del programa principal y sus librerías, sino de RESET como aquí encontramos, para borrar récords y configuración.



1997

Encontramos creaciones típicas, como DIRPCK para listar archivos, incluyendo comprimidos ZIP, pero también algunas virguerías en la máxima evolución, y al mismo tiempo declive de DOS.

WIPE 4, era la reescritura de WIPE, y a su vez de DELETE, pero esta vez, usando una librería en modo texto (CONXLIB), desarrollada a tal efecto, y que funcionaba sobre CONIO.H, implementaba ratón, e interfaces gráficas, mezcla de Turbo Vision y RAR. Nuevamente, su objetivo era vencer finalmente a WIPEINFO de Peter Norton.

Tenía dos modos de trabajo, por linea de comandos, es decir, como sus antecesores, o bien usando la interfaz de usuario, con un precioso selector de archivos como parte central, implementado desde cero, y conteniendo las funciones que había visto en Norton Commander, DOS Navigator, y otros gestores de archivos.







Patch Package o DIFF, un completísimo programa que pretendía superar a RTPatch, con optimizaciones en ensamblador a mano, específicas para diferentes procesadores, y un shell opcional para Windows. Permitía crear parches autoaplicables, tipo SFX, algo que luego me sería útil en BLINK. Era un mastodonte de más de 5.000 lineas de código, un acontecimiento, que sólo Outlaw superaría.



MIRIAM, un intento de virus, después de que el Virus Creation Laboratory se me quedara corto.

Sin duda la sorpresa del año, y yo diría del lote, es CARS. Tras haber jugado a diferentes MUD, tanto vía BBS como por internet, o incluso en local, descubrí VGA Planets, no me explicaba como habían optado por desarrollarlo en Quick BASIC, así que me propuse mezclar ambos mundos.







Partiendo de WIPE, se ambientaba en un escenario de 50×20 casillas. Tu papel era de “comerciante”, usando un potente vehículo. El objetivo principal era ir de almacén en almacén, comprando al mejor precio, y vendiendo al más caro. Ante tan duro trabajo, había casinos, que permitían jugar a dados, ruleta, tragaperras, y blackjack. Pensaba que CARS había quedado en un simple proyecto, pero a nivel individual, es completamente jugable.







Si durante la exploración de ese mundo, nos topábamos con otro usuario, podríamos luchar con él, y quedarnos su dinero. Por eso existían los bancos, que además nos daban préstamos, y podíamos intentar robar. Naturalmente, tenías tu inventario de objetos.

Quedó pendiente la parte del master, es decir, la rutina para leer los turnos de los jugadores, y resolver combates en caso de haberlos.

Estaba estructurado de manera modular, porque con 130 Kb. de código fuente, era aún más largo que FileOptimizer.

1998

Entre el trabajo, la universidad y otros desarrollos a medida, pocas cosas se hicieron por cuenta propia. Así que lo más destacable que he encontrado, son las prácticas de Geometría Computacional (GEOC), Gráficos por Computador (GRCO), Introducción a las Bases de Datos (IBDA) y Redes de Computadores (XACO).

1999

Windows ha conquistado el mercado, también el de los desarrolladores, así que aprovechando mi experiencia profesional, creamos Primi, un programita en Visual Basic, que leía los datos históricos de la Lotería Primitiva, para hacer sus pronósticos… No nos hicimos ricos.

2000

Lo más interesante es BLINK. Llevaba un par de años con C++ Builder y Delphi, y quedaba la espinita de implementar BLINK sobre Windows.



Como curiosidad de la época, tal vez recordéis programas como Cash Fiesta o Dollar Web, que te pagaban dinero por ver anuncios mientras usabas el ordenador. Bien, pues ya podéis imaginaros el propósito de FakeDollarWeb.

Nunca apareció VIEWER, mi visor de archivos de texto al completo, ni TANK, que pretendía controlar un tanque teledirigido con el ordenador, BASCMP un compresor de archivos BASIC escrito en C, ni un libro de ciencia-ficción que comencé a escribir sobre Framework III.

Seguramente hasta haya olvidado muchos más que no he reencontrado. No ha aparecido Outlaw, ni muchos otros códigos fuentes de la época dorada de D.T.S., donde al menos si están disponibles los ejecutables.

El proceso ha sido divertido, pero algo desilusionante. Tal vez salvo la agradable sorpresa con el Cars de 1997, y del que he podido volver a disfrutar, me esperaba más material antiguo, que ahora sí, puedo decirlo, se ha perdido para siempre.

De cara al futuro, está todo disponible aquí (4,3 Mb. en formato ZIP).