¿Cómo emulo una PDP-8i con TSS/8 en Ubuntu?
¡Trabajadores!
Para volvernos peritos en la Conducción de los hombres se requiere de un
estudio concienzudo de la historia del Arte, que es el sentido práctico
de toda esta biblioteca que me acompaña en el despacho.
Es que de lo antiguo hemos de aprender para proyectarnos en el futuro
pues lo que funcionó en el pasado lo hará en el futuro si las
condiciones son emuladas. Decía Napoleón que un ejemplo suele aclararlo
todo.
Vean señores, el TSS/8 fue un sistema operativo de tiempo compartido
para la minicomputadora DEC PDP-8 diseñado originalmente por Adrian van
de Goor, estudiante (graduado de la Universidad de Cornell Mellon) y
luego mejorado y comercializado como sistema completo por la Digital
Equipment Corporation a partir de 1968.
Originalmente requería una PDP-8, 8I u 8E con una interfaz paralela RP08
o DF32 asociada al menos a una unidad de cinta RS08 o de disco DS32 para
tareas de intercambio y para almacenamiento.
Si bien el panel de control de esta máquina podía tener un tamaño
reducido al de una actual computadora de escritorio, lo cierto es que el
avío completo dejaba en comparación chica y económica a una heladera
Siam.
Pero la distancia del tiempo puede suplir estos aspectos con creces y
permitirnos el estudio del Arte. Nuestro sistema GNU con Linux puede ser
adaptado - por genialidad maquinal - a emular todo tipo de piezas,
incluyendo la inefable DEC PDP-8/I. Para tal menester ha sido concebido
el emulador SimH, capaz de dar rienda a todo este tipo de mainframes del
ayer.
A esto me he aficionado, y os indicaré como hacerlo.
Instalación de TSS/8
En primer lugar habremos de preparar una estructura de directorios para
mayor comodidad, la cual nos oficiará de banco de pruebas y laboratorio.
En ella descargaremos una imagen ya realizada con el TSS/8, la cual
antiguamente se comerecializaba por un par de docenas de miles de
dólares, pero gracias al Justicialismo y a Miguel Miranda - que es un
buen negociante - hoy la sacamos por cero chirolas.
A tal fin abrimos una terminal con Ctrl+Alt+T e ingresamos el siguiente
bloque de Comandos de Organización:
mkdir ~/.simh/ ;
mkdir ~/.simh/panelsim/ ;
mkdir ~/.simh/panelsim/pdp8i/ ;
cd ~/.simh/panelsim/pdp8i/ ;
wget
https://raymii.org/s/inc/downloads/pdp/tss8_init.bin ;
wget
https://raymii.org/s/inc/downloads/pdp/tss8_rf.dsk ;
touch tss8.simh_pdp8i ;
echo 'load tss8_init.bin' >> tss8.simh_pdp8i ;
echo 'set rf enabled' >> tss8.simh_pdp8i ;
echo 'set df disabled' >> tss8.simh_pdp8i ;
echo 'attach rf tss8_rf.dsk' >> tss8.simh_pdp8i ;
echo 'attach ttix 4000' >> tss8.simh_pdp8i ;
echo 'run 24200' >> tss8.simh_pdp8i ;
chmod +x ~/.simh/panelsim/pdp8i/tss8.simh_pdp8i
Ahora bien, todo Movimiento ha de tener opciones, ya que los caminos no
suelen ser únicos para lograr la Felicidad que todos anhelamos. Por tal
motivo podremos contar con dos opciones para emular TSS/8. La más simple
que recomiendo sin dudar es utilizar el emulador directamente "a pelo"
en Ubuntu, Y otra es emplear el simulador de panel de PDP8 Panelsim (el
cual requiere instalarse aparte).
En el caso de apostar por la simplicidad, el accionar es veloz.
Ingresamos el comando:
sudo apt install simh
..y tras introducir nuestra contraseña, se descargará el paquete de
emulación genérico. Una vez instalado, podremos ejecutar TSS/8 en él
mediante:
cd ~/.simh/panelsim/pdp8i/
pdp8 tss8.simh_pdp8i
Y ya está.
Sin embargo, podríamos querer hacer alarde del panel de PDP-8/i con sus
lucecitas de status simuladas que nos dan un aspecto navideño. En tal
caso realizamos el proceso de instalación siguiendo esto y luego
adaptaríamos TSS/8 para funcionar en el mismo mediante este bloque de
comandos de organización:
cd ~/.simh/panelsim/
touch ~/.simh/panelsim/pdp8i_tss8.sh
echo '# Inicia una PDP-8/I corriendo TSS8' >> ~/.simh/panelsim/pdp8i_tss8.sh
echo './_launch.sh "blinkenbone.panelsim.panelsimPDP8I.PanelsimPDP8I_app" "--width 1000 --power 1" pdp8i pdp8_realcons tss8.simh_pdp8i 248-blinkenbone-simulated-pdp8i-panel' >> ~/.simh/panelsim/pdp8i_tss8.sh
chmod +x ~/.simh/panelsim/pdp8i_tss8.sh
..tras lo cual lo ejecutaríamos con:
cd ~/.simh/panelsim/
/pdp8i_tss8.sh
Cualquiera de los dos casos que hubiésemos decidido utiliar, nuestra
terminal teletipo comenzará a percutir, imprimiendo los mensajes de
status del emulador.
Si todo va bien, al final del prompt de inicio se nos interrogará la
opción de arranque:
LOAD, DUMP, START, ETC?
Tipeamos START para darle arranque al sistema TSS/8. Este nos solicitará
indicar fecha y hora para el oscilador de control emulado.
Los valores son numéricos en formato MM-DD-AA y HH:MM (de 24 horas). Es
importante conocer que TSS/8 no preveía año 2000, de modo que conviene
restar cuarenta años a la fecha real. Por ejemplo:
MONTH-DAY-YEAR: 11-09-81
HR:MIN: 14:23
A continuación debemos presionar la tecla Intro dos veces y se nos
presentará el prompt de inicio de sesión o login. Esta se representa por
un muy poco expresivo punto.