¿Cómo emulo el panel de una mainframe DEC PDP-10 en Ubuntu de 64 bits?
¡Trabajadores!

En Movimientos como el nuestro, no serán pocas las ocasiones en las que habremos de cubrir con chimichurri al sapo. Y esto, que tan cierto 
es en la política, también lo es en los sistemas informáticos.

Vean señores, los mejores sistemas informáticos de antaño en realidad sólo disponían de una fracción de la potencia que cada uno de 
nosotros tiene en su más lelo de los dispositivos informáticos, pero sin duda contaban con algo que luego se hizo caro: la libertad.

Esto significa que - en aras del estudio y la lúdica - podamos emularlos hoy con muy poco costo computacional. Pero emplear un sistema 
moderno para las tareas de ayer deja de tener gracia, en tanto que no contamos con los enormes y costosos sistemas que otrora pululaban 
los centros de cómputo.

Uno de ellos era la mainframe DEC PDP-10, de 36 bitios. Disponible en diferentes modelos, inicialmente transistorizada y con su memoria 
núcleo, pasó luego a emplear unidades de de cinta magnética o disco como medio de almacenamiento de masa. Se hizo popular entre 1968 y 
1983 como equipo primigenio de estudio para las tecnologías que actualmente empleamos.Este equipo fue el lugar de nacimiento de la 
Internet y el movimiento de Software Libre, así como muchas aplicaciones de software, como Emacs, TeX, numerosos dialectos de LISP, el 
correo electrónico, y Kermit. La configuración típica de PDP-10 incluia múltiples gabinetes de tamaño completo para la CPU, memoria, 
controladores, cinta magnética, infraestructura de redes, junto con discos rígidos de tamaño de un lavarropas, impresoras de línea, y 
demás, requiriendo habitaciones con aire acondicionado e instalación trifásica.
Las versiones más deseadas por la Masa estaban munidas de una consola de entrada/salida (lo que hoy denominaríamos unidad central de 
proceso) del modelo KI10, corriendo el sistema operativo TOPS-10.
La consola KI10 oficiaba de unidad de mando para inicializar el sistema y también se la podía emplear para consultar a través de sus 
indicadores luminosos el contenido de las direcciones individuales de la memoria (que se conectaba por separado). Por medio de las teclas 
retroiluminadas se podían manipular los acumuladores de memoria núcleo, cargando diferentes instrucciones de operación a través de su 
código binario, y llamando a las mismas para realizar programas en el macro-ensamblador nativo de la máquina, el Macro-10.

Estos dispositivos no estaban al alcance de la Masa Popular hecha partido, pero hoy, gracias al Justicialismo, os diré cómo cargar un 
emulador de dicho equipo en nuestro sistema GNU con Linux.

En primer lugar hemos de instalar los paquetes necesarios para poder emular todo en nuestro sistema Ubuntu de 64 bits. Para ello abrimos 
una terminal Linux con Ctrl+Alt+T e ingresamos los siguientes comandos de organización:


sudo dpkg --add-architecture i386 ;
sudo apt-get update ;
sudo apt-get install libx11-dev libpth-dev xorg-dev gcc libjpeg-dev libpthread-workqueue-dev x11proto-core-dev x11proto-bigreqs-dev 
freeglut3 freeglut3-dev ;
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 ;
sudo apt-get install libpcap0.8:i386 ;
sudo apt-get install libxext6:i386 libxtst6:i386 libxi6:i386 ;

Luego creamos un directorio para los paneles y nos dirigimos a el:

mkdir ~/.simh/ ~/.simh/panelsim/
cd ~/.simh/panelsim/

El siguiente paso variará de acuerdo a si tenemos un sistema de 32 o de 64 bitios:

    Si tengo Ubuntu de 64 bits debo ingresar estos comandos:

wget https://github.com/j-hoppe/BlinkenBone/releases/download/1.3/panelsim_ubuntu-x64.tgz ;
tar -xvf panelsim_ubuntu-x64.tgz -z ;

    Si tengo Ubuntu de 32 bits - en tanto - debo ingresar estos comandos:

wget https://github.com/j-hoppe/BlinkenBone/releases/download/1.3/panelsim_ubuntu-x86.tgz ;
tar -xvf panelsim_ubuntu-x64.tgz -z ;

Luego debo preparar el resto del sistema, lo podré hacer con el comando:

sudo ./prepare.sh

Tras introducir nuestra contraseña, el programa revisará si tenemos instalados todos los componentes necesarios (rpcbind, Java, y otros). 
Si faltase alguno nos propondrá instalarlo mediante el siguiente mensaje.

'rpcbind' not found, I'm going to install it.

OK? Enter = yes, ^C = no.

Para instalarlo presionamos Enter.

Ahora podremos ejecutar el emulador con los siguientes comandos:


cd ~/.simh/panelsim/

sudo ./pdp10ki10_tops10.sh

Esta orden nos pedirá que introduzcamos nuestra contraseña de Conductor, y tras ello, debería presentarnos una ventana con una 
reproducción fotográfica de la consola DEC KI10, en estado "Apagado".
Casi instantáneamente, el procedimiento automatizado dará arranque al emulador y lo conectará con la consola de luces KI10. En la ventana 
de la consola KI10 se deberá encender la luz roja Active indicando que tenemos vinculadas ambas máquinas virtuales, y en su panel 
retroiluminado debería encenderse automáticamente en blanco el pulsador Power, así como su indicador rojo en la consola KI10. Para poder 
iniciar un sistema operativo cualquiera, revisamos que en el panel nomenclado STOP de la consola esté en la opción MAN, tanto como el 
indicador de Datos en Memoria ("Data Memory") debería presentarse encendido:

...a su vez, la pantalla de la terminal de video debería informarnos siguiente:

Se nos presentará entonces el prompt del emulador:

BOOT V3(47)

...y nos mostrará:

BOOT>

(Presionamos Enter una vez debería mostrar:.
[Loading from DSKB:BOOT.EXE[1,4]

Why Reload? opr
Date: 10-14-99 (o similar)

Time: 19:54  (o similar)

Startup Option: quick
Esto indicará que el operador de sistema ("opr") desea reiniciar la secuencia de arranque del sistema operativo (en otras palabras 
reencender la PDP-10 y dar inicio al sistema operativo), y hacerlo de manera veloz. Mientras tanto, podremos comprobar como se parpadean 
las luces de los bancos de memoria de la consola KI10:
Al terminar, podría presentarnos el prompt del sistema operativo TOPS-10 (un simple punto).
Normalmente no responderá a ningún comando hasta que nos demos de alta (logueemos al sistema multiusuario). Ello nos será indicado de la 
siguiente manera:

?LOGIN please
    .
*


Pues bien, podremos loguearnos como usuario invitado (public) o como superusuario. Para loguearnos como usuario simple podemos poner:

*login public

(Para loguearnos como superusuario se usa login 1,2 (y la contraseña, eventualmente, será mcp)
Podríamos pedir un listado de programas con el comando

dir

Podremos ver una pequeña guía de uso a través del programa help, y para ver una ayuda de todos los comandos utilizables, podremos indicar 
la opción *:

help *

Para cerrar la sesión podremos usar:

kjob

Para poder programar en Basic se podía usar el comando ejecutar (r), de la siguiente manera:

r basic

Entonces el prompt cambiará para indicarnos que estamos en modo BASIC.

Simplemente podremos escribir los comandos en dicho lenguaje. Para volver al sistema podemos usar ... o el comando system.

Para eliminar todos los procesos activos, podremos usar:

:kill all

El sistema TOPS-10 es muy completo a pesar de su obsolescencia, y fue piedra basal para nuevos sistemas que lo seguirían, entre ellos UNIX 
e incluso implementaciones para microodenadores, como el CP/M de la Int€rgalactic Digital Re$earch. Podremos encontrar un conjunto de 
manuales aquí. instrucciones completas en el Manual del operador de TOPS-10.

Para encontrarnos con una pequeña guía del panel KI10, podremos encontrarla en la web oficial aquí. Utilizando el panel, podremos 
programar en ensamblador de la máquina, el obtuso lenguaje DEC MACRO10.

Jugar el juego Adventure:
Adventure fue el primerísimo de los juegos del género de aventuras de texto computadas, y nos presentaba una serie de opciones para seguir 
en un relato en primera persona, de viaje y descubrimiento. Para poder utilizarlo en la PDP10 emulada nos logueamos como usuario público, 
e ingresamos el comando:

r dsk:adv

Jugar DECWAR en la PDP-10:
DECWAR 2.3 es un juego de guerra espacial multiusuario del género StarTrek, que opera en tiempo real. Fue diseñado en 1979 para ser 
utilizado por hasta una decena de operadores en el mainframe DEC-10 dotado del sistema operativo TOPS-10. Para instrucciones sobre cómo 
jugar, podremos consultar este archivo.

cd ~/.simh/panelsim/pdp10ki10/ ;
wget http://repositories.lib.utexas.edu/bitstream/handle/2152/13510/decwar_drforbin_cis2_tops10_port-2.3.tap ;

En el simh:

sim>att rp2 decwar_drforbin_cis2_tops10_port-2.3.tap

Y lo inicializamos como de costumbre:

sim>boot rp
boot>boot