Galería de Software Antiguo
Por Ginés García Mateos

Presentación | Aviso | Ejecución | Programas

Presentación

Bienvenido a la Galería de Software Antiguo. Esta página contiene algunos programas creados por el autor de la misma durante el pasado Siglo XX. No pretende ser, por tanto, un museo de los inicios de la programación, sino un recopilatorio personal de mis primeros programas --algunos de ellos con más de 21 años de antigüedad--, seleccionados de entre aquellos que considero que aún pueden tener cierto interés. El objetivo es mostrar, reflejada en la experiencia personal e intrasferible del que susbcribe, siquiera una pequeña parte de la evolución de la programación desde aquellas épocas pretéritas de la informática.

La mayoría de los programas aquí expuestos fueron desarrollados en un ZX Spectrum, una plataforma muy popular en España durante la década de los 1980. Esta máquina estaba dotada del procesador de 8 bits Z80, trabajando a unos 4 Mhz, con 64Kbytes de memoria, 48K de ellas de RAM y 16K de ROM que contenían el sistema operativo y el primitivo BASIC. Para el almacenamiento de datos y programas se utilizaban cintas de casete convencionales. Después de permanecer guardadas en el baúl de los recuerdos durante largos años, ahora vuelven a poder ejecutarse gracias a la magia de los emuladores. Los programas disponibles, en formato .Z80, han sido probados en el emulador ZX32. El código fuente de los programas ha sido extraído con el programa ZXRainbow.

Aviso importante

El autor de esta página no se responsabiliza del correcto funcionamiento de los programas aquí contenidos, NI SE RESPONSABILIZA, en ningún caso y bajo ningún concepto, de los posibles daños causados por su uso. Se autoriza la posesión, uso y distribución de los programas y el código aquí contenidos.

Ejecución

- Instalar el emulador ZX32, o cualquier otro que reconozca el formato .Z80 y .ZXS.
- Ejecutar el emulador y abrir el archivo correspondiente.

Programas

FUTBOLIN

Descargar futbolin.z80 (16 Kbytes)


Año (aprox.): 1987

Ordenador: ZX Spectrum 48K
Listado del código (328 líneas)
Lenguaje: BASIC
Descripción: Se trata de un juego de tablero muy simple inspirado en el fútbol. Es la implementación de un juego de dados, con tablero metálico y fichas magnéticas, como otros muchos que existían por aquel entonces.
Los 11 jugadores de cada equipo están situados a lo largo de un camino desde una a otra portería. Según la tirada del dado avanzamos tantas posiciones en la dirección del equipo que mueve. Se consigue un gol superando la posición del portero en una unidad. El jugador controla el momento en que se para el dado, lo que da cierto grado de control.
A pesar de la sencillez del juego, el acabado estaba muy trabajado: aspecto gráfico y sonoro, efectos especiales varios, posibilidad de definir los nombres de los equipos y la duración del partido, inclusión de comentarios, etc. Por ejemplo, en caso de acabar el partido en empate hay una tanda de penaltis.
Notas y curiosidades: Al inicio, el juego pregunta los nombres de los equipos. Poniendo en el nombre "ordena" conseguimos que ese jugador (es decir, el movimiento del dado) sea controlado por el ordenador.

SUPERCESTO

Descargar supercesto.z80 (30 Kbytes)


Año (aprox.): 1988

Ordenador: ZX Spectrum 48K
Listado del código (707 líneas)
Lenguaje: BASIC
Descripción: Este programa es también la implementación de un viejo juego de dados, esta vez inspirado en el baloncesto. Cada equipo tiene 5 jugadores que se pueden mover por el tablero o lanzar cuando están en línea o en diagonal con la canasta. La estrategia del equipo es muy importante para conseguir un buen resultado, lo que hace de éste un interesante juego de inteligencia.
Posiblemente, este fue el proyecto más largo y complejo que llevé a cabo en un Spectrum. La mayor parte del código se dedica a la parte gráfica y al control de las reglas del juego. Se incluía la posibilidad de jugar competiciones de liga (de hasta 20 equipos), y de ver las estadísticas del partido (individuales y por equipos).
Todo lo anterior hacía que un proyecto de este tipo se alargara durante varios meses o incluso años. Al estar todas las líneas numeradas por orden, las novedades debían ser introducidas normalmente por el final. De esta manera, el número de saltos (GOTO) aumentaba considerablemente y con ello el desorden del código.
Notas y curiosidades: La primera versión no incluía líneas de triples, ya que todavía no se habían inventado. Fueron añadidas después, al poco de su introducción en el baloncesto europeo. El proyecto de este juego sería retomado unos 8 años más tarde en el desarrollo de una versión para PC, como se comenta más adelante.

EL DRAGO

Descargar drago.z80 (9 Kbytes)


Año (aprox.): 1989

Ordenador: ZX Spectrum 48K
Listado del código (168 líneas)
Lenguaje: BASIC
Descripción: Este juego es más una curiosidad matemática que un verdadero juego de inteligencia. Se dibujan inicialmente n puntos. Cada jugador debe trazar una línea entre dos puntos, respetando dos restricciones: las líneas no se pueden cortar, y en cada punto pueden confluir como máximo 3 líneas. Por cada línea trazada se dibuja un nuevo punto en el centro de la misma. Pierde el primer jugador que no pueda mover.
Viendo el código del programa se puede apreciar que la mayor parte está dedicada al control de la entrada (READ, INKEY$, IN) y la salida (PRINT, PLOT, DRAW, etc.). Los algoritmos subyacentes son siempre muy sencillos.
Notas y curiosidades: El problema tiene una fuerte inspiración en la teoría de grafos. De hecho, la idea está sacada de un juego descrito en el libro "Carnaval Matemático" (de Martin Gardner, Alianza Editorial, 1987), denominado el juego del drago o las coles de Bruselas.

COMIC DOBLE

Descargar comicdoble.z80 (8 Kbytes)


Año (aprox.): 1990

Ordenador: ZX Spectrum 48K
Listado del código (226 líneas)
Lenguaje: BASIC
Descripción: Es un sencillo juego de parejas, aunque bastante adictivo. Partimos de un tablero con 22 casillas numeradas; el objetivo es ir destapándolas para encontrar todas las posibles parejas en el menor número de movimientos. El juego está basado en el, por aquel entonces, popular programa de televisión "No te rías que es peor", y más particularmente en su sección "Tebeo Doble".
Igual que antes, se puede apreciar en el código una predominancia de las operaciones de salida por pantalla. Aparecen también muchas instrucciones GOSUB, que indican saltos a subrutinas. Estas subrutinas son implícitas: el lenguaje sólo ofrece una instrucción de salto y otra de retorno, pero no hay ningún mecanismo de paso de parámetros, ni se puede dar un nombre a la rutina; su código está mezclado con el resto del programa. De esta forma, la subrutina era poco más que un simple par de GOTOs.
Notas y curiosidades: El programa fue publicado en la revista "Micro Hobby" en enero de 1992 (ver la página 45). Por desgracia, ese fue el último número de esta revista dedicada al mundo del Spectrum. Otros programas fueron enviados también a la misma revista (entre ellos algunos de los aquí contenidos), aunque ninguno vería la luz.

FUNCIONES

Descargar funciones.zxs (24 Kbytes)


Año (aprox.): 1990

Ordenador: ZX Spectrum +2
Listado del código (621 líneas)
Lenguaje: BASIC
Descripción: Aunque era algo lento, el Spectrum no sólo servía para jugar, y este programa es una demostración de ello. Es una aplicación bastante completa, que permite realizar representaciones gráficas en 2D y 3D de funciones matemáticas en una o dos variables, respectivamente, definidas por el usuario. Cuidando un poco los rangos de visualización es posible obtener resultados muy interesantes.
Indudablemente, lo más complejo de este programa era la representación en 3D. Y, dentro de esto, el algoritmo para decidir las partes ocultas y las partes visibles. En general funciona bastante bastante bien, aunque se puede ver que lejos de ser perfecto. Nuevamente, los algoritmos son sencillos pero la parte matemática es algo más complicada.
Notas y curiosidades: En algunos aspectos el BASIC del Spectrum era muy potente. Por ejemplo, permitía de manera sencilla evaluar una expresión matemática contenida en una cadena. Esto facilitaba enormemente los cálculos, aunque resultando en un proceso muy lento. Por ello, el programa aplica la función en unos pocos puntos e interpola (traza una línea) entre cada par.

CIFRAS

Descargar cifras.exe (646 Kbytes)


Año (aprox.): 1994

Ordenador: PC (Windows)
Listado del código no disponible (446 líneas)
Lenguaje: Turbo Pascal y Delphi
Descripción: Como su nombre indica, este programa resuelve el conocido problema de las cifras, célebre gracias al popular concurso televisivo "Cifras y Letras". Disponemos de 6 números enteros, que se pueden combinar con la suma, resta, multiplicación y división entera. El objetivo es obtener otro número dado usando los números de entrada como máximo una vez.
Hay que hacer notar que se ha generalizado el problema, para que en lugar de 6 números de entrada puedan haber entre 3 y 10, con lo cual aumenta el tamaño del problema.
Este es el primer programa de cierta entidad que realicé en entorno Windows, aunque el motor fue creado en Turbo Pascal y la parte visual, bastante elemental, algo después. Los algoritmos están muy elaborados, resolviendo el problema con una alta eficiencia. En un ordenador actual, el programa no debería tardar normalmente más de unos 10 milisegundos en resolver un caso con 6 números de entrada.
Notas y curiosidades: Desde hace unos cuantos años existe un reto para los alumnos de la asignatura "Algoritmos y Estructuras de Datos", consistente en superar en eficiencia este programa, razón por la cual no se ofrece acceso al código fuente. Han habido ya varios intentos, por lo menos dos de ellos con buenas perspectivas. Sin embargo, ambos fallaban en un aspecto clave: no se puede perder ningún resultado.

EL ULTIMO ALIHUP

Descargar alihup.zip (4.170 Mbytes)


Año (aprox.): 1995

Ordenador: PC (Windows)
Lenguaje: C y ensamblador
Listado del código no disponible (más de 8.000 líneas)
Descripción: Casi 8 años después de haber empezado la versión para Spectrum (titulada Supercesto), con la colaboración de mi hermano Juan Francisco, retomamos el proyecto de este juego de tablero.
Respecto a la primera versión, se incluían numerosas características adicionales: base de datos con equipos y estadísticas acumuladas, posibilidad de jugar competiciones de liga y copa, concurso de triples, capacidad de jugar del ordenador (para lo que se desarrolló una inteligencia artifical muy básica), efectos sonoros, etc. Se modificaron ligeramente las reglas del juego, principalmente en lo que se refiere a la posibilidad de hacer cambios y a las faltas personales, con el fin de mejorar la estrategia del juego.
Este proyecto supuso un buen banco de prueba de los métodos y técnicas aprendidos en los primeros años de la carrera: programación estructurada, abstracciones, refinamientos sucesivos, etc. Desafortunadamente la ingeniería del software no se incluía entre ellos, por lo que el proyecto se desarrolló sin un buen análisis y diseño previo. Al alargarse el proyecto durante varios años, el programa se llegó a convertir en un amasijo de código incomprensible. Cualquier problema resultaba difícil de aislar, y difícil saber si los cambios necesarios afectarían a otras partes de código.
Notas y curiosidades: Se puede encontrar más información del juego en esta página. El programa fue enviado al concurso de programación de videojuegos de PC Manía de 1996, y después al concurso de PC Actual de 1998, donde fue premiado con el tercer puesto.
 

 

 

  Esta animación también la hice en un Spectrum, hará ahora más de 20 años...

Ultima modificación: 12/4/2009
Autor: Ginés García Mateos
E-mail: ginesgm@um.es