ZONADEPRUEBAS RETROINFORMÁTICA
Por favor Iniciar sesión o Registrarse.
La fecha y hora actual es martes, 23 de abril 2024, 19:00
Inicio  Buscar  Ayuda  Iniciar sesión  Registrarse  Miembros  Sala de chat

ZONADEPRUEBAS RETROINFORMÁTICA :: SISTEMAS CLÁSICOS :: EMULADORES :: Emulando 'advent' tal y como fue creada  :: Página 1 De 1
colossus
Moderador
Imagen
Imagen

Mensajes: 315
Emulando 'advent' tal y como fue creada (martes, 19 de agosto 2003, 16:54) Citar  
Buenas:

Como tal vez ya sepáis la primera aventura conversacional de la historia fue 'advent' (también llamada "Adventure", "Colossal Cave", "La aventura original" en España...). Es un programa tan influyente que inspiró a los fundadores de compañías como Adventure International, Infocom o Sierra. Podéis encontrar más información sobre ella en www.rickadams.org/adventure/index.html

Hace tiempo que me apetecía ejecutar advent en un emulador de la máquina en la que fue programada, en una versión tan fiel al original como fuera posible. Finalmente decidí intentarlo en serio, y acabé consiguiéndolo, pero fue mucho más complicado de lo que pensaba. He decidido explicar aquí, paso a paso, todo el proceso, por si alguien siente curiosidad por reproducir un trocito de historia en su propia casa (espero vuestros comentarios al respecto). Vamos allá.


1. ¿La Aventura Original?

Lo primero era saber cómo fue realmente advent. Y esto no resultó tan fácil de averiguar como pudiera parecer.

Lo que todo el mundo sabe es que advent fue originalmente programada en FORTRAN por William Crowther, y ampliada posteriormente por Don Woods en los años 70. Pero... ¿cuándo y en qué ordenador hicieron Crowther y Woods sus respectivas versiones? ¿Se conserva en algún sitio el código fuente original de alguna de ellas? No es fácil seguirle la pista a advent porque ha habido literalmente cientos de versiones para todos los ordenadores imaginables (como muestra ver www.mipmip.demon.co.uk/adv/advfamily.html). Y la información que hay en Internet es imprecisa y contradictoria.

Para no alargarme demasiado diré que, tras mucho indagar, llegué a las siguientes conclusiones:

1) William Crother realizó su "advent preliminar" en 1975, en un ordenador DEC PDP-10.

2) Don Woods encontró una versión del programa de Crowther en un DEC PDP-10, y programó su versión (lo que hoy consideramos "La Aventura Original") en otro PDP-10 en 1976.

La primera afirmación es sólo la conjetura más probable. La fecha podría tener un error de un año arriba o abajo, y el ordenador tal vez fuera otro modelo de PDP o un CDC 6600. La segunda afirmación es totalmente fiable por que ¡el propio Don Woods me lo confirmó en un mail el 19-6-2003! Por desgracia Woods no sabe cuándo ni en qué ordenador hizo Crowthers su versión.

Aclarado esto quedaba decidir cuál de los códigos fuente que circulan por la red era el más parecido al original. Le pregunté de nuevo a Woods por el que me parecía el mejor candidato (www.ifarchive.org/if-archive/games/source/adv350-pdp10.tar.gz) y me contestó que "Esa parece ser mi versión de 1976. La única versión más antigua sería la de Crowther, y yo no conservo una copia." De hecho parece que nadie conserva una copia más antigua que esa, por lo que ya tenía lo que estaba buscando. Ahora faltaba compilarlo y hacerlo funcionar en el emulador adecuado.


2. El emulador.

Necesitaba un PDP-10 emulado. Escogí el SIMH (simh.trailing-edge.com/), capaz de emular decenas de ordenadores antiguos.

Para hacerlo funcionar en Linux, en mi caso un Red Hat 7.3, lo primero es descargarse los fuentes en la página del emulador (hay también ejecutables para Windows). Para compilar, crear en el directorio del SIMH un directorio llamado bin, y sustituir /BIN por ./bin/ en el makefile. Ejecutar 'make all'. Esto crea los ejecutables de los distintos emuladores, incluyendo el pdp10 que necesitamos. El emulador, sin embargo, resulta completamente inútil sin el software adecuado.


3. Dando vida un PDP-10.

Esto fue, con mucho, lo más difícil de todo el proceso. El DEC PDP-10 es un ordenador antiguo, muy diferente a lo que estamos acostumbrados a ver hoy en dia. Me llevó mucho tiempo saber qué necesitaba instalar en el ordenador emulado, y más todavía averiguar cómo se utilizaba lo instalado. Lo que precisamos es básicamente una imagen de un disco duro virtual para el simulador, con el sistema operativo TOPS10 y un compilador de FORTRAN instalados. Hay dos formas de conseguirlo:

1) Forma difícil (la que yo empleé): Consiste en bajarse las imágenes de cintas de backup del TOPS10 y el FORTRAN de pdp-10.trailing-edge.com/ e instalarlo todo desde cero. Es muy laborioso pero se aprende bastante. Yo lo conseguí siguiendo un par de logs que encontré en la red. Por si a alguien se anima los he puesto en zonadepruebas.org/backup/foro/imagenes/colossus/textos/tops10inst.txt y zonadepruebas.org/backup/foro/imagenes/colossus/textos/fortv11bas17inst.txt. Aunque no vayáis a usarlos resulta muy interesante echarles un vistazo para apreciar cómo eran los sistemas operativos de la época.

2) Forma fácil: Bajarse una imagen de disco con todo instalado. Tenéis una en www.shocking.com/~talon/pdp10/. Yo la he probado y funciona, pero el resto de este artículo se basa en una imagen obtenida mediante la "forma difícil". Usando la imagen precompilada el proceso será casi idéntico al aquí descrito, pero puede ser necesario algún pequeño cambio.


4. Metiendo los fuentes en el ordenador emulado.

Ahora que tenía un PDP-10 funcionando necesitaba una manera de pasar las fuentes al ordenador emulado, pues la idea de teclear los más de 600Ks de código y datos no me resultaba demasiado atractiva. Por suerte encontré un programa capaz de volcar ficheros a una imagen de cinta de backup utilizable por el emulador. Se llama backwr.

El procedimiento a seguir sería:

1) Bajarse las fuentes de advent de www.ifarchive.org/if-archive/games/source/adv350-pdp10.tar.gz.

2) Bajarse la utilidad backwr de ftp://ftp.stacken.kth.se/pub/pdp10/backwr/

3) Una vez descomprimido todo y compilado el backwr (con 'make') ejecutar './backwr cTf advent.tap adven.f4 advn2.f4 adven.dat'. Con esto volcamos los ficheros en un formato reconocible por la unidad de cinta emulada.

Para mayor comodidad, y para facilitar la vida a los usuarios de Windows, he colocado el fichero en zonadepruebas.org/backup/foro/imagenes/colossus/varios/advent.tap (pulsar con el botón derecho sobre el enlace para savarlo si el navegador os muestra el contenido del fichero en lugar de abrir una ventana de diálogo para la descarga).


5. Restaurar, compilar y ejecutar.

Ya casi estaba. El problema de la compilación pensaba haberlo resulto cuando encontré un hilo en GoogleGroups donde alguien explicaba el proceso con bastante detalle. Por desgracia dicha explicación era demasiado vaga en un punto: "Utilizar la utilidad BACKUP del TOPS10 para cargar los ficheros". Pues bien, tenía el emulador, el compilador de FORTRAN, instrucciones para la compilación, una cinta con los fuentes... ¡pero no sabía cómo utilizar la utilidad de BACKUP para traerme los ficheros al disco duro de trabajo!

Me leí un montón de fragmentos de manuales arcaicos, pero en todos daban demasiadas cosas por supuesto, y nada parecía funcionar. Decidí entonces pasar de la teoría a la práctica. Después de estudiarme varios documentos con sesiones de TOPS10 conseguí finalmente, a base de intuición-prueba-error, dar con la secuencia de comandos que necesitaba. Una vez cargados los fuentes la compilación no fue difícil. Y, tras cuatro dias de trabajo, pude disfrutar de advent tal y como fue concebida en 1976.

Aquí va lo que falta para completar el puzzle: un log de mi sesión de compilación en el PDP10, profusamente comentada: zonadepruebas.org/backup/foro/imagenes/colossus/textos/compilaradvent.txt.


6. WELCOME TO ADVENTURE!! WOULD YOU LIKE INSTRUCTIONS?




Un saludo: Colossus

IP conectada Estado: desconectado Perfil 
mainframe
Administrador
Imagen
Imagen

Mensajes: 378
RE: Emulando 'advent' tal y como fue creada (miércoles, 20 de agosto 2003, 10:06) Citar  
Una vez mas me quito el sobrero ante este interesante y completo artículo.

¡Felicidades!



IP conectada Estado: desconectado Perfil 

PBLang 4.59 © 2002-2003 by Martin Senftleben
Imagen