martes, 22 de febrero de 2022

¿Cómo puedo ensayar online con mi banda en Ubuntu?

Juan Perón era un adepto a la música. A pesar de contar con buenas dotes de ejecución, se distinguió por ensayar con los compañeros por internet con Jamulus, el software libre para tocar online en Ubuntu.

(...)
¡Trabajadores!

Siempre es bueno unirse a la peña de la música como natural consecuencia de la coordinación que ha de tener todo Movimiento Humano. Esto nos ha permitido - por demás - insuflar el Justicialismo al ritmo que más nos interesa: el de sumar voluntades. Las realización de esta dicha es una gran adición en pos de alcanzar el objetivo que nos impulsa: ¡la propia felicidad y la de todos quienes nos rodean!

Nuestra doctrina gira en torno a la Justicia Social, de la cual el Software Libre no es sino una versión remozada. Mejorarlo y compartirlo responde al mismo principio rector y es hermanado con la música. 

Vean señores, he explicado cómo instalar el excelente servidor de videollamadas del pueblo GNU Jami, y disfrutar de su enorme capacidad para dictar clases virtuales y conferencias seguras sin caer en opciones tecno-esclavizantes de una oligarquía sin patria ni bandera. Sin embargo, organizar una banda para tocar a través de las redes de datos libres supone un desarrollo aún mayor de la perfección. Un software de tal característica ha de contar no sólo con estas funcionalidades de avanzada, sino también disponer de la condición de una bajísima latencia sonora, capaz de hacer posible coordinar a l@s compañer@s en una misma métrica. Sólo esto podría permitir el ansiado sueño de tocar acompañado a través de la Internet

En vistas de esta montaña de requerimientos, nuestro Movimiento se ha puesto en marcha, y ha logrado su cometido. Se trata del Proyecto Jamulus, una implementación liberada bajo licencia GNU GPLv2 destinada al ensayo musical en vivo a través de las redes.

Para instalar Jamulus podremos utilizar la terminar del sistema. Simplemente desplegamos una con Ctrl+Alt+T e ingresamos los siguientes Comandos de Organización:

sudo apt update ;
cd /tmp/ ;
wget https://sourceforge.net/projects/llcon/files/Jamulus/3.9.0/jamulus_3.9.0_ubuntu_amd64.deb ;
sudo dpkg -i jamulus_3.9.0_ubuntu_amd64.deb

Tras ingresar nuestra contraseña de conductor, se habrá descargado e instalado el paquete del cliente de Jamulus en nuestra computadora. Naturalmente, el programa también existe para otras plataformas de la ignominia, pero yo os lo enseñaré en Ubuntu, el sistema que he legado al Pueblo.

Es primordial saber que Jamulus da uso al servidor de audio JACK con el claro fin de obtener sonido de calidad y baja latencia. Esto nos permitirá coordinar la música a través de la red de redes.

Nuestro Movimiento Justicialista propugna la cercana unión de los trabajadores, y se eleva como un vínculo de unión de sus voluntades intrínsecas. Esto se replica en Jamulus, ya que para lograr los mejores resultados es muy preferible contar con conexiones cableadas de todo tipo. Eviten en todo lo posible el problemático Wifi, y empleen conexiones Ethernet por cable en el trabajo y en el hogar. Además, evitar el uso de oligárquicos auriculares y micrófonos Bluetooth en pos de los populares equivalentes cableados redundará en facilitar enormemente la inclusión de todos y el goce en las redes, ya que lo simple es doblemente fácil. Quien así no opere comprenderá que la latencia del audio se elevará a niveles estratosféricos. Sigan este consejo, que lo doy con el corazón tan abierto como sólo puede ofrecerse a quien tanto amo: ¡el Pueblo!

1. Preparar tu audio con JACK

Enfocarse en lo simple es el objetivo de todo trabajador que sigue la filosofía UNIX. Como paso previo, cerraremos todas las aplicaciones que usen sonido, y - en caso de querer utilizar una placa de audio USB externa - la conectamos a la computadora.

Preveemos entonces iniciar el servidor JACK (desde Aplicaciones / Sonido / QjackCtl). Normalmente ya debería estar configurado (si no lo estuviese, podrán encontrarlo al final del artículo).

2. Arrancar Jamulus

Con el servidor JACK en pleno funcionamiento, daremos arranque al cliente Jamulus. Podrán hacerlo desde el menú Aplicaciones / Sonido / Jamulus de Ubuntu.

Conforme arranque, la ventana principal de Jamulus cobrará el aspecto siguiente:

Será natural no oír nada aún. No se preocuparán, ya que esta es una regla de oro en Jamulus: normalmente sólo habremos de escuchar el sonido de retorno desde un servidor remoto (que conoceremos como sala de ensayos).

Pues bien, será imprescindible configurar propio perfil de músico. A tal efecto, presionamos el botón Configuración y veremos desplegarse una ventana Configuración. Seleccionemos en ella la solapa Mi Perfil.

El subsiguiente campo Filas Mezclador - en tanto - indica cuantos deslizadores se harán presentes en la ventana de la mezcladora. Si bien la mayoría de los instrumentistas se bastan con 1, podríamos indicar más si fuese el caso que se hayen presentes - de manera local - varios músic@s, o bien si somos un baterista que ha microfoneado, digamos, 8 cuerpos percusivos... en tal caso se indicaría.

3. Conectar a un servidor de sala de ensayos

Antes de mandarnos a tocar con l@s compañer@s "a tontas y a locas", os recomiendo enlazar a un servidor vacío para probar la configuración, y asegurar oír el retorno que envíamos al servidor.

Presionarán el botón de “Conectar” en la ventana principal de Jamulus, y se enfrentarán con la ventana Conectar, la cual permitite unirte a un servidor de audio: la ventana se irá refrescando con salas de ensayos públicas:

En la lista aparecerá el número de usuarios conectados y el número máximo soportado. Lo más importante de los servidores es su “tiempo de ping” indicado en colores. Cuanto mayor la cifra, más difícil será tocar en sincronización. Normalmente, se selecciona un servidor con un tiempo ping de 50 miliosegundos  o menos, si es posible. Depende de la velocidad de conexión y la distancia mutua.

Los servidores permanentes (con disponibilidad las 24h) se muestran en negrita. Los compañer@s compendian estas listas por género, aunque también por ubicación. Puedes filtrar la lista por nombre de servidor o ubicación. Para solo mostrar los servidores ocupados, escribe el caracter “#”. Utiliza el menú desplegable de Lista para elegir un género, y haz clic sobre la peña a la que quieres arrimarte telemáticamente. Para loguearte, haz clic sobre el botón Conectar, lo cual establecerá el enlace.

Si conoces la dirección IP o URL de una sala de ensayos privada, ingrésala en el campo Nombre/Dirección del Servidor. Podrás añadir un número de puerto opcional (ej: jamulus.ejemplo.org:22124) Si anhelas utilizar direccionamiento IPv6, ingrésalo entre corchetes). El campo también mostrará una lista de los servidores utilizados recientemente ("favoritos").

Una vez establecida la conexión con un servidor, asegúrate de que te escuchas bien y arregla cualquier problema de volumen de entrada, etc.

Naturalmente, podrán ejecutar un servidor público el tiempo suficiente para que la banda se conecte, y luego hacerlo privado simplemente desactivando ‘Mi Servidor es Público’ el la ventana del servidor. De esta forma los miembros podrán disfrutar entre sí de la más maravillosa música.

4. ¡A tocar!

Con el sonido configurado, ya puedes empezar a tocar la más maravillosa música. El programa no se anda con vueltas: una vez logrado enlace, te presentarán deslizadores (faders) para cada músico presente en el servidor de la sala de ensayo. En este ejemplo me he juntado a tocar con el bajista Manco, la tecladista Bicha, y el Pomelo, baterista electrónico en la Sala Canus Argentina. Los controles afectan sólo tu retorno de escucha personal.


En el caso de disponer de músic@s configurados en estéreo, también se mostrará encima de todo un pote PAN para paneal@ (Mayúsculas+clic izquierdo del mouse lo resetea al medio). 

En caso de bajar un delizador, disminuirás el retorno de tal músic@, y si lo subes, aumentarás el retorno que oyes de ella. De esta forma, cada un@ puede escoger cómo escucha a l@s demás.

Si no deseas que otros escuchen tu emisión, presiona el botón "Silenciarme Yo", que cortará tu emisión de audio hacia la sala (además, es anónimo).

Las luces LED del vúmetro representan los niveles de los canales estéreo o mono de tu entrada de audio. Asegúrate de regular el volumen para jamas alcanzar el tope de señal. Este efecto indeseado de recorte daría lugar a un sonido distorsionado de audio de la señal de audio (los LEDs indicarían el recorte en rojo si esto sucede). Normalmente aturdirías al resto, ¡no lo hagas!

El deslizador de Reverb te permite agregar un efecto de reverberación mono o estéreo, pero sólo local. 

Debajo de cada instrumentista encontrarás tres botónes de actividad local. El botón GRP te permite agrupar deslizadores para moverlos proporcionalmente y al unísono (hasta 8 grupos). Si mueves el deslizador de cualquier miembro agrupado, los demás deslizadores del grupo también se moverán en la misma proporción. Podrás desagrupar temporalmente un canal mediante Mayúsculas+clic+arrastrar.

El botón MUTE enmudece a uno de los músicos. Si te enmudeces tu mismo, tal acción aparecerá reflejada en las mezcladoras de los demás (no es anónimo). Si muteas tu propio canal simplemente significa que no escucharás tu propio retorno desde el servidor (no significa que los demás dejen de oírte). No se aconseja ya que es altamente probable que tu audio quede a destiempo con los demás miembros de la banda ¡y emularías a El Duki!). Si deseas dejar de emitir presiona el consabido botón "Silenciarme Yo".

El botón SOLO permite escuchar uno o más musiquer@s aislados de l@s demás. Quienes no lo tengan oprimido, quedarán así enmudecidos en tu mezcladora local. Ten en cuenta que aquellas personas que no lo tienen aplicado les aparecerá el icono de “silenciado” sobre tu deslizador (no es anónimo).

Los usuarios se presentarán de izquierda a derecha "en el orden en el que vayan llegando". Podrás alterar dicho orden desde el Menú Editar.

Si el operador de la sala de ensayo habilita la grabación en el servidor, verás un mensaje sobre el mezclador indicando si estás siendo grabado.

Ten en cuenta que puedes utilizar el botón Chat para desplegar la ventana de chat a otras personas de la sala. El mensaje de bienvenida en el chat puede también establecer alguna directriz de utilización de la sala de ensayos.

Normalmente no hay más que hacer; ¡ya podrás tocar con los demás, escuchando la más maravillosa música!


Indudablemente, os recomiendo consultar el excelente manual en castellano en línea de Jamulus, el cual disipará las dudas más extendidas de este excelente programa.

Opciones Avanzadas

Tocar de más suele ser al ñudo, y esto se replica tanto en la música como en la configuración de Jamulus. Sin embargo, para quienes deseen arriesgarse en pos de la Liberación (y tal vez, menor retraso en el sonido), podrán arriesgar revisar las configuraciones avanzadas dentro de Jamulus. A tal fin presionamos el botón Configurar y elegimos la solapa Configuración Audio/Red.

El selector Dispositivo de Audio nos permitirá escoger el controlador y el hardware específico que diseáramos usar (si contamos con varios). El mapeador nos permitirá escoger los canales (ya sea mono o estéreo). Si nuestra/s placa/s de sonido o dispositivos ofrecen más de un canal de entrada o salida, quedarán visibles y podremos mapearlos según nuestras necesidades.

La opción Canales Audio permite escoger entre tres Modos de Salida de audio que utilizará Jamulus. Cada uno de ellos representa un mayor consumo de ancho de banda. Los modos Mono y Estéreo utilizan uno y dos canales de audio respectivamente.

Nota: Activar el modo estéreo duplicará el envío de datos, debes asegurarte que esto no exceda el ancho de banda de tu conexión a Internet. Es preferible ejecutar instancias separadas del cliente para cada voz/instrumento, en lugar de utilizar este mezclador interno de dos canales mono a estéreo.

El modo Entrada mono/Salida estéreo envía audio en mono pero recibe el audio desdoblado en estéreo (para el caso que una placa de audio externa conste de un conector de entrada estéreo para instrumento y otro conector de micrófono independiente. En este caso, las dos señales de entrada se combinarán en un solo canal mono a la vez que la mezcla del servidor se escuchará en estéreo.

Podremos escoger la Calidad de Audio, definiendo así la tasa de de envío de datos a la red. Hemos de asegurarnos que la tasa de subida no exceda el ancho de banda de la conexión a Internet, de lo contrario se producirían cortes. El valor por defecto es calidad Normal.

Configuración de JACK

Normalmente ya debería estar configurada la entrada de audio. Sin embargo, indicaré aquí este paso por si no lo estuviese.

Desde el punto de vista del hardware de audio, podremos configurar la entrada de audio de Ubuntu desde el panel Sonido. Para ello podremos ir a Sistema / Preferencias / Hardware / Sonido. En la solapa Entrada podremos configurar qué conector y dispositivo queremos utilizar.


En este caso utilizo el conector Línea de Entrada (entrada estéreo Line In, conector azul), ya que produce un sonido límpio, y puedo regular el volúmen de captura del instrumento con el deslizador Nivel de Entrada. También podría utilizar Micrófono Frontal o Micrófono Trasero (entradas monoaurales pre-amplificadas,  de conector rosa).

Finalmente, en nuestro sistema GNU con Linux se utiliza la herramienta de configuración QJackCtl para cambiar el tamaño del buffer. JACK suele venir configurado, pero si nunca se ha configurado, podrá hacerse esto presionando el botón Setup y configura la interfaz de audio que quieras utilizar. 

Podrás configurar los aspectos técnicos del audio. Como referencia en este aspecto, considera que en la solapa Configuraciones de JACK podrías establecer una Frecuencia de Muestreo de 48000, cuadros/período en 128 y períodos/buffer en 2.


Reinicia JACK para que los posibles cambios de configuración surtan efecto.

Ten en cuenta que algunas placas de audio disponen de la posibilidad de alterar el retardo de buffer por hardware. La opción de 128 debería funcionar para la mayoría del hardware de sonido, pero podrás utilizar 256 o 512 para conexiones muy lentas, lo cual podría dar mejores resultados.

viernes, 11 de febrero de 2022

¿Cómo puedo emular RSTS/E en Ubuntu?

Señores oficiales,

Uno de los principios nodales que ha de comprender todo aquel que en el campo de batalla ha de conducir una unidad, es la de no dormirse en laureles victoriosos. Es natural que el soldado busque prolongar la paz que tanto anheló, pero debe comprender que el esfuerzo del pasado no sirve nunca de ejemplo. Ha de continuarse la preparación y la previsión para nuevas luchas que habrán de venir indefectiblemente.

Esto es así porque el hombre vencido - si ha valido la pena como enemigo - jamás quedará vencido si no obtiene justicia, y esta es la base de la paz.

Desde los antiguos griegos se sabe que el soldado dispone de una preparación: el deporte. Las arte del cultismo físico, junto con las marciales fueron - y son - la justa vara con la que puede medirse al soldado. El Oficial ha de contar - además - con la preparación que da el gabinete: el estudio de la historia y de la pericia logística obrarán de maravillas en la formación de un Conductor.

La esgrima es, por antonomasia, la percepción del arte marcial del caballero. Algunos piensan que en el cruce de aceros, los únicos metales son los del florín o del florete. Sin duda se equivocan, ya que el verdadero temple está en el Espíritu del duelista. No importa tanto el músculo de su mano, sino la decisión y empeño que impone a su arte de lucha.

Como tal me he formado y especializado en la Institución a la que nos toca pertencer. Un dato no menor es que entre 1918 y 1928 obtuve en varias oportunidades el título de Campeón Militar de Esgrima. En 1927 conquisté la Copa de Honor de Esgrima en el Círculo Militar. La pedana no tuvo secretos para mí. Pero esto no salió de un repollo, mi tío segundo Conrado Perón, fue maestro de armas y una de las primeras espadas del ejército. Fue él quien me inculcó los pormenores del choque de aceros.

En la informática sucede más o menos lo que en la esgrima. Hay varios filos de distinto peso que elegir - los sistemas operativos - pero lo importante es conocer su técnica a fondo.

Esto lo comprendí cuando empleé RSTS/E, veterano "Sistema de Tiempo Compartido para Compartir Recursos" de la Digital Equipment Corporation. Lo necesario para instalar tan enjundio no podía más que significar la necesidad de templar un alma en la hombría de bien que es necesaria para entregarlo todo en pos de la Felicidad de nuestro Pueblo.

Sin embargo, por aquél entonces, sólo podía correrse en una máquina que contara con la arquitectura de 16 bits que ostentaban las máquinas tipo PDP-11. Eran minicomputadoras portentosas y sólo al alcance del oligarca.

Providencialmente gracias al Justicialismo podremos contar con válidos émulos de ellas para utilizarlas en nuestro sistema GNU con Linux, todo gracias a las bondades del emulador SIMH, del cual profeso como uno de los grandes logros para privilegiar a todos en el arte de la Conducción de los Sistemas Operativos del Ayer.

Vean señores, RSTS/E es un sistema operativo multiusuario a tiempo compartido privativo, desarrollado por terceros en 1970 para la minicomputadora PDP-11 de Digital Equipment Corporation. Podemos trazar su origen al TSS/8 de la DEC PDP-8, aunque actualizado para las mayores posibilidades y potencias que ofrecían los 16 bits de la PDP-11. Su larga vida operativa lo pueden calificar como un verdadero Matusalén, ya que su desarrollo cesó recién en 1992, con la versión 10.2.

La manera más simple es contar con un paquete de RSTS/E ya compilado. En este caso simplemente habremos de descargar el paquete y correrlo en nuestro sisxtema GNU con Linux. 

Instalar RSTS/E v9.3

Se trata de la versión de enero de 1987. Para dar con una versión mínima pero precompilada, abrimos una terminal en nuestro sistema con Ctrl+Alt+t e ingresamos los siguientes Comandos de Organización:

mkdir ~/.simh/ ~/.simh/rsts/ ~/.simh/rsts/v9
cd ~/.simh/rsts/v9/
wget http://www.rsts.org/distros/RSTS_kits/RSTS_V9.3_Kit.zip

unzip RSTS_V9.3_Kit.zip

Ahora podremos ejecutar el RSTS/E v9.3 precompilado. Para ello lo haremos con:

cd ~/.simh/rsts/v9/
./pdp11

El sistema nos solicitará la fecha y hora. Tras ingresarlas cuidando de evitar el bug Y2K (podríamos indicar un año de la década de 1990), nos solicitará si deseamos activar el sistema de tiempo compartido ("Start Timesharing?"), a lo cual debemos responder yes.

Acto seguido se nos solicitará ingresar un usuario ya elaborado. Podremos dar con los accesos de usuario. Los usuarios de este sistema virtualizado serán:

Usuario de sistema
Usuario: [1,5]
Contraseña: SYSUSR

Usuario administrador
Usuario: [1,2]
Contraseña: SYSLIB

Usuario "Invitado"
Usuario: [100,100]
Contraseña: DEMODEMO

Utilizar RSTS/E 9.3

Podremos utilizarlo siguiendo la Guía de Usuario de RSTS/E, o bien la Guía del Administrador de sistema RSTS/E.

Podremos correr la ayuda del intérprete de comandos DCL incorporada al RSTS/E, ingresando el comando HELP.

Para salir de RSTS/E ingresamos el comando LOGOUT. Una vez vueltos a la instancia de login, presionamos Ctrl+e para retornar al emulador SIMH, y salimos del mismo mediante el comando bye.

Instalar RSTS/E v7 en Ubuntu

La versión prototípica de RSTS sin embargo fue la v7 de agosto de 1978. Es indudable que versiones posteriores incorporaron ya elementos más avanzados, pero fue "la siete" la que podríamos considerar su pico operativo y por cierto la versión más duradera. Es que por entonces la arquitectura PDP-11 ya habían sido reformuladas desde el punto de vista del hardware gracias a las nuevas tecnologías de integrados de muy alta escala, y sus LSI-11 se encontraban - comparativamente - "por moneditas".

RSTS/E v7 fue entonces el ámbito con el cual se contó con software de 16 bits de oficina, en un intento por elaborar entornos de cómputo en el lugar de trabajo.

Primero descargamos la distribución de RTST/E v7. No es la última, pero ha sido una versión importante publicada en 1987. A tal fin abrimos una terminal con Ctrl+Alt+t e ingresamos los siguientes comandos de organización:

mkdir ~/.simh/ ~/.simh/rsts/ ~/.simh/rsts/v7
cd ~/.simh/rsts/v7/
wget http://www.rsts.org/distros/RSTS_disks/V70/rsts7.0-07.tar
tar xvf rsts7.0-07.tar

Preparar RSTS/E v7 desde cero

He aquí las indicaciones sobre cómo instalar RSTS desde cero y agregarle paquetes a este sistema pre-compilado.

En primer instancia procedemos a instalamos el paquete del emulador SIMH en nuestro sistema GNU con Linux, y le damos ejecución en el modo DEC PDP-11. Todo lo podremos hacer desde nuestra temrinal presionando Ctrl+Alt+t e ingresando los siguientes Comandos de Organización:

sudo apt update
sudo apt install simh


cd ~/.simh/rsts/v7/Disks
echo ';Inicializador de instalador de RSTSv7' >
~/.simh/rsts/v7/Disks/rsts.ini
echo 'att rl0 disk0' > ~/.simh/rsts/v7/Disks/rsts.ini
echo '
att rl1 rsts_sysgng.dsk' > ~/.simh/rsts/v7/Disks/rsts.ini
echo '
set rl1 lock' > ~/.simh/rsts/v7/Disks/rsts.ini
echo 'set cpu 1m' > ~/.simh/rsts/v7/Disks/rsts.ini
echo 'b11' > ~/.simh/rsts/v7/Disks/rsts.ini

Podremos iniciar ahora el procedimiento de preparación de RSTS/E según el frondoso manual naranja de instalación. Para dar inicio al instalador ingresamos:

cd ~/.simh/rsts/v7/Disks/
pdp11 rsts.ini

Se presentará la siguiente devolución. Al crear el fichero disk0 para la unidad virtual RL02, se nos indicará si queremos sobreescribir la última pista del mismo. Indicamos que introduciendo "y".

PDP-11 simulator V3.8-1
RL: creating new file
Overwrite last track? [N] y

Ahora arrancará el sistema disco de preparación de RSTS v7-0: Deberíamos recibir el prompt "Option:"

Disabling CR
Disabling RK
Disabling HK
Disabling TM

Enabling only console, disks, and tapes.

RSTS v7-0 (DL1)

Option:

3) Formateamos el disco de cero. Habremos de responder la pregunta "por defecto" presionando Ctrl+J (en caso de contar con una videoterminal, presionaremos la tecla LineFeed).

Option: DSK
 <Ingresar fecha>
 <Ingresar hora>


Disk? RL0
Pack ID? DISK0
Pack cluster size? 2
SATT.SYS base?               <Ctrl+J>
MFD password? SYSTEM
MFD cluster size? 16
Pre-extend directories <no>? <Ctrl+J>
PUB, PRI, or SYS? SYS
Library password? SYSTEM
Library UFD cluster size? 16
Date last modified <yes>?    <Ctrl+J>
New files first <no>?         <Ctrl+J>
Patterns? 1
Proceed (Y or N)? Y
 <se muestra ciertos errores>
Continue with DSKINT? Y
Patterns? 1
Proceed (Y or N)? Y

4) Copiamos el sistema al disco de cero solicitando la rutina COP:

Option: COP
    <fecha y hora nuevamente, podemos oprimir Ctrl+J para aceptarlas>
To which disk? RL0

SIMH reiniciará desde el DL0.

Agregamos un fichero de intercambio / volcado de núcleo al disco de cero (esto tenia funcionalidad de salvataje de memoria RAM ante un cuelgue de la PDP-11), solicitando la rutina REF.

Option: REF
    <fecha y hora, de nuevo podemos usar Ctrl+j>
Disk? RL0
Clean? N
 REFRESH suboption? CHA
 SWAP.SYS changes? Y
  Size? 256
  Base?             <Ctrl+J>
 SWAP0.SYS changes? <Ctrl+J>
 SWAP1.SYS changes? <Ctrl+J>
 SWAP3.SYS changes? <Ctrl+J>
 OVR.SYS changes?   <Ctrl+J>
 ERR.SYS changes?   <Ctrl+J>
 BUFF.SYS changes?  <Ctrl+J>
 CRASH.SYS changes? Y
  Size? 35
  Base?             <Ctrl+J>
Other files?         <Ctrl+J>
REFRESH suboption?  <Ctrl+J>

Instalaremos ahora SYSGEN SIL, solicitando la rutina INS.

    Option: INS
    Sil? SYSGEN

El sistema reiniciará indicando "Rebooting...". y reiniciarça, ahora desde ña unidad DL1:

RSTS v7-0 (DL1)
Option:

Configuramos las opciones por defecto del SYSGEN SIL, solicitando la rutina DEF.   

    Option: DEF
    JOB MAX or SWAP MAX changes? Y
     New JOB MAX?                 <Ctrl+J>
     JOB MAX or SWAP MAX changes? 28
    JOB MAX or SWAP MAX changes? <Ctrl+J>
    Run Time System? RT11
    Error message file? ERR
    Installation name?  <Elegir un nombre de sistema>
     Table suboption?            <Ctrl+J>
    Crash dump? y
    Magtape labelling default <none>? ANSI
    Preferred clock <L>?         <Ctrl+J>
    Date format <ALPHABETIC>?    <Ctrl+J>
    Time format <AM/PM>?         <Ctrl+J>
    Power fail delay <1>?        <Ctrl+J>



Ahora iniciamos ya el generador de sistema SYSGEN en nuestro emulador.

Option: <Ctrl+J>
    <ingresamos fecha, hora>
   

El sistema devolverá "?Can't find file or account" y ofrecerá un prompt con un "." (el prompt del sistema operativo DEC RT-11 que se usaba como base de configuración para RSTS/E).

Debemos hacernos peritos en montar el disco de distribución (SYSGNG) como solo-lectura, y utilizarlo para copiar los archivos desde el mismo.

. MOUNT DL1:SYSGNG/RO
. R DL1:CREATE.SAV


Luego de copiar los ficheros, el programa CREATE correrá automáticamente el programa SYSGEN.

Habremos de responder todas las interrogantes que nos solicite SYSGEN, la primera sección principal es importante porque le informa a SYSGEN desde dónde obtener los ficheros y parches:

    Form ?                 #S #    L
    Same system ?          #Y #                   <Ctrl+J>
    Distribution medium ?  #DL#                   <Ctrl+J>
    Output medium ?        #DL#    SY
    Delete files ?          #Y #                   <Ctrl+J>
    LP for SYSGEN ?        *Y *    N
    Generate monitor ?     #Y #                   <Ctrl+J>
    Monitor name ?         #RSTS#                 <Ctrl+J>
    Monitor patching ?     #??#    YES
    Patch file medium ?     #DL#                   <Ctrl+J>
    Pack ID ?              #??#    PATCHG
    Patch file name ?       #$MONITR.CMD#          <Ctrl+j>
    Generate BASIC-PLUS ?  #Y #                   <Ctrl+J>
    BASIC-PLUS RTS name ?  #BASIC#                <Ctrl+J>
    BASIC-PLUS patching ?  #??#    YES
    Patch file medium ?     #Identical to monitor# <Ctrl+J>
    Patch file name ?       #$BASIC.CMD#           <Ctrl+J>
    RSX as default RTS ?   #NO#                   <Ctrl+J>


...el resto de las preguntas simplemente podremos responder ingresando Ctrl+j para aceptar la opción por defecto. Eventualmente, se nos devolverá al prompt de RT-11: un simple ".".

Desde este RT11 muleto, compilamos el sistema corriendo el programa SYSBAT con:

.R SYSBAT

...y se nos presentará salida y luego nos solicitará la unidad para almacenar, inidicamos DL1:

MOUNT AX-D527G-BC ON A DISK DRIVE

READY AND WRITE PROTECT THE DRIVE

Mount DL:"SYSGNG"-write locked
Unit ? DL1


...con esta orden se compilará PIP, LINK, MACRO, LIBR, y SILUS, indicando en el terminal:

MOUNT THE MONITOR PATCH FILE DISK "PATCHG" ON A DISK DRIVE

READY AND WRITE PROTECT THE DRIVE

Mount DL:"PATCHG"-write locked
Unit ? 
 

Nuevamente interrumpiremos el emulador presionando Ctrl+e y cargaremos el disco con los parches del sistema operativo RSTS/E (solucionaban ciertos bugs), Para ello ingresamos los siguientes comandos al prompt SIM> de SIMH:

 sim> att rl1 rsts_patchg.dsk
 sim> c
 DL1

Con este accionar, se emparchará el intérprete de comandos Monitor y el intérprete de BASIC-Plus, presentando todo lo relativo a dicho procedimiento. Finalmente, deberá indicar "Batch job completed."

Sin duda podremos ya apagar el sistema emulado de generación SYSGEN, y correr el programa UTILTY.SAV

. R UTILTY.SAV
*NO LOGINS
*SHUTUP

 

Esto cargará ya el RSTS/E v7 que hemos creado desde el disco DL0. Solicitaremos nuevamente la rutina INS con el instalador creado, y pediremos entonces instalar nuestro propio RSTS/E peronista.

Options: INS
Sil <SYSGEN>? RSTS

Configuraremos las opciones por defecto del RSTS SIL peronista emparchado:

Options: DEF
JOB MAX or SWAP MAX changes? Y
 New JOB MAX?                 <Ctrl+J>
 New SWAP MAX? 31
JOB MAX or SWAP MAX changes? <Ctrl+J>
Run Time System? BASIC
Error message file? ERR
Installation name?  <elegir un nombre>
Table suboption?             <Ctrl+J>
Crash dump? y
Magtape labelling default <none>? ANSI
Preferred clock <L>?         <Ctrl+J>
Date format <ALPHABETIC>?    <Ctrl+J>
Time format <AM/PM>?         <Ctrl+J>
Power fail delay <1>?        <Ctrl+J>

Acto seguido montamos SYSL1G a la unidad RL2 (PATCHG aún permanecerá en DL1), y luego reiniciamos. Para ello ingresamos lo indicado en negrita:

    <presionamos Ctrl+e para detener SIMH>
Simulation stopped, PC: 034534 (WAIT)
 sim> att rl2 rsts_sysl1g.dsk
 sim> set rl2 lock
 sim> b rl0

Tras un instante arrancará nuevamente el sistema desde DL0. Ahora arrancamos el sistema de tiempo compartido.

Options: <Ctrl+J>
    <fecha,hora>

El sistema aparecerá en BASIC con el prompt "Ready":

    ?Can't find file or account
    ?Program lost-Sorry
    
    Ready

Ahora Montaremos los discos SYSL1G y PATCHG en la unidad RL02:

MOUNT DL1:PATCHG/RO
MOUNT DL2:SYSL1G/RO

De ahora en adelante instalamos el sistema BASIC corriendo la aplicación BUILD.BAS desde el disco DL2:

RUN DL2:$BUILD
BUILD   V7.0-07 RSTS V7.0-07 Peron
System Build <No> ? YES
Source Input Device <DL2:>   
<Ctrl+J>
Library Output Device <SY:>  
<Ctrl+J>
Target System Device <SY0:>  
<Ctrl+J>
Library Account <[1,2]> ?    
<Ctrl+J>

 *** Copying file DL2:[1,2]BUILD.CTL to BLD01.TMP ***

Locate logical 'LB:' on <SY:[1,1]>  
<Ctrl+J>
Function (Build/Patch, Patch, Build) <Build/Patch>
<Ctrl+J>
Patch file input location <SY:[200,200]> ? DL1:[1,2]
Save patched sources <No>    
<Ctrl+J>
Run-Time System <BASIC >     
<Ctrl+J>
Locate ERROR Package on <SY:[1,2]>  
<Ctrl+J>
Additional Control File is <None>   
<Ctrl+J>

En este instante, BUILD comenzará a cargar, emparchar e instalar DEC BASIC-PLUS CUSPS. Luego de un tiempo terminará con el mensaje:

!*** BUILD Complete ***"

Finalizada todo este burocrático accionar, podremos apagar el sistema. Lo haremos corriendo la aplicación SHUTUP.

RUN $SHUTUP
Minutes until system shutdown (0-99) <5>?  0

¡Enhorabuena! Encomio lo actuado pues a partir de ahora podrán contar con un un RSTS V7.0 mínimo instalado (ej. como rl0.minsys).

Para ejecutar RSTS v7 ingresa la Option: BOOT. Cuando te solicite Boot Device, indica RL0. Indicará ahora algo como:

RSTS V7.0-07 rsts_peronista (DL0)

Option:

Indica la Option START.

Introduce fecha y hora, y presiona Ctrl+j para responder con la opción por defecto a todas las preguntas de inicialización, hasta que presente el mensaje de prompt:

PLEASE SAY HELLO

E introduce en mayúsculas:

HELLO

Y te presentará finalmente el ingreso al sistema:

RSTS V7.0-07 rsts_peronista  Job 2  KB0  01-Jan-77  04:07 PM
#


Para ejecutar más de dos trabajos necesitaremos agregar algo de espacio de intercambio al sistema. Para hacerlo debemos escoger dónde queremos poner el almacén de intercambios (ya sea en el disco de sistema que acabamos de crear, o en otra unidad).
 
Para poner un intercambio extra al disco de sistema:

  1. Option: REF
  2. <fecha, hora>
  3. Disk? DL0
  4. No usamos clean, elegimos la subopción "CHA"
  5. Seguimos las preguntas con Ctrl+j y cambiamos el tamaño de "SWAP0.SYS" a un valor (ej. 1024 bloques)
  6. arrancamos el sistema
  7. editamos "$RTS.CMD" usando el editor TECO
  8. agregamos la línea "FORCE KB0: ADD SWAPFILE 0 DL0:SWAP0" a la línea posterior a "RUN $UTILTY"

Para colocar una unidad de intercambio extra en otra unidad virtual, primero debemos contar con un fichero de archivo válido (use la opción "DSK" para formatear una). Luego hemos de seguir el procedimiento indicado (con el nombre de disco correcto, para agregar un fichero SWAP0.SYS a la unidad y configurarla en el sistema. Además, habremos de editar $START.CTL para montar el disco nuevo antes que corra RTS.CMD. Por ejemplo, si agregamos un disco DL1 con la etiqueta "PRIVAD" podríamos ingresar la siguiente línea en la parte superior de $START.CTL:


MOUNT DL1:PRIVAT

------------------------------------------------------------------------------

En la medida que tengamos el sistema mínimo, podremos compilar e instalar otros paquetes que anhelemos. Para compilar un paquete habremos de correr el programa $BUILD.

Por ejemplo, si SYSL1G está montado en DL2: y PATCHG se haya montado en DL3:, por lo tanto instalar el paquete HELP , tras el prompt Ready podríamos ingresar SY/D para listar y luego RUN $BUILD para iniciar el programa de compilación, de esta manera:

Ready

SY/D

Disk Structure:
Disk    Open    Free    Cluster Errors  Name    Comments
DL0       2     3480       2      0     SYSTEM  Pub, DLW
DL1       1     4332       2      0     PRIVAT  Pri, DLW
DL2       0     1422       1      0     SYSL1G  Pri, R-O
DL3       0     3800       1      0     PATCHG  Pri, R-O, DLW

Ready

RUN $BUILD
BUILD   V7.0-07B        RSTS V7.0-07 Peron
System Build <No> ?
Source Input Device <SY:> ? DL2:
Library Output Device <SY:> ?
Target System Device <SY0:> ?
Library Account <[1,2]> ?
Control File is ? HELP

*** Copying file DL2:[1,2]HELP.CTL to BLD02.TMP ***

Function (Build/Patch, Patch, Build) <Build/Patch> ?
Patch file input location <SY:[200,200]> ? DL3:[1,2]
Run-Time System <BASIC > ?
Locate HELP Package on <SY:[1,2]> ? SY:[1,8]

%Can't find file or account - SY:[1,8]
Attempt to create account SY:[1,8] <No>? YES
Account SY:[1,8] created with your password
Additional Control File is <None> ?


El programa de compilación correrá y compilará el paquete HELP. Podremos repetir lo mismo con los siguientes programas:

Los siguientes paquetes están disponibles en aras de la justicia social:

En la imagen SYSGNG:
MAINT.CTL = usado para recompilar RSX (no tan útil)
RSX.CTL = el sistema ejecutable de RSX
SORT.CTL = SORT (patches fail since we don't have RMS distribution)
TECO.CTL = el editor TECO (SQU, TYPE, TECKBM...)

En la imagen SYSL1G:
BUILD.CTL = el sistema básico de compilación (debería ya estar instalado)
SPLER.CTL = programas de spooling (QUE, OPSER, BATCH, etc.)
UNSUPP.CTL = programas no soportados (DSKDMP, STATUS, DEMO55)
BIGPRG.CTL = programas "grandes"(RUNOFF, FIT, FLINT, PMDUMP, BPCREF, MAKSIL).
BACKUP.CTL = Paquete de respaldo
DEVTST.CTL = Prueba de dispositivos
HELP.CTL = los ficheros de ayuda

Recordemos corriendolos con RUN. Podremos salir del sistema con RUN $SHUTUP y finalmente Ctrl+e para volver al emulador. Saldremos del emulador SIMH con el comando introduciendo en el prompt sim> el comando BYE.

jueves, 3 de febrero de 2022

¿Como juego en red con DOSBox en Ubuntu?

¡Trabajadores!
 
El escudo del Partido Justicilista de Argentina consta de una apariencia modernista. Diseñado privadamente en la década del 1940, ha sido utilizado desde 1945. Reboza de simbolismo. Sobre los colores celeste y blanco nacionales, dos manos hermanadas en saludo de unidad, representando la unión de clases para dar sostén a un gorro frigio encarnado, símbolo de la tradición libertaria republicana argentina.
Sólo reconocemos una clase de hombres: los que trabajan. Sin duda nuestra unión ha de producir lo que Nuestra Patria necesita para realizar su Grandeza. 

En las redes de datos sucede más o menos lo mismo. La mancomunión de dos pares bajo el símbolo de la libertad puede ofrecernos la Felicidad que anhelamos como Justo Derecho, y esto puede replicarse a todos los tiempos.
 
Vean señores, ya he explicado cómo instalar DOSBox en Ubuntu. Se trata de un portentoso emulador para el Sistema Operativo de Disco, capaz de ofrecer una experiencia similar a la ofrecida por los equipos clones del cómputo personal de IBM, pero en cualquier arquitectura, incluyendo nuestro GNU justicialista.

Este paquete nos permitirá entonces emular métodos de conexión del ayer pero sin gastar una chirola.

Indudablemente existían varios métodos para establecer comunicación computarizada a través de enlaces de datos, pero todos ellos eran oligárquicos y ninguno destacaba por su facilidad. Las redes de datos se encontraban amorfas y deseosas de integrar en sí no sólo un tráfico electrónico pasivo, sino una activa comunidad regida por la Doctrina Peronista.

Null-Modem

Sin duda el primer método en abarcarse con Justicia Social fue el de enlazar eléctricamente los puertos COM de tipo Centronics RS232 a través de un humilde cable con fichas DB9 o DB25 cuyas líneas de transmisión y recepción estuviesen cruzadas. A este método - carente de todo tipo de modulación - se lo denominaba precisamente null-modem.

En null-modem sólo permitía conexiones locales a unos pocos pasos de distancia, con una velocidad que raramente excedía los 9,6 KB/s. Sin embargo, ya el hecho de poder jugar con otro solventaba la felicidad de dos argentinos.

Null-modem emulado

Para crear una conexión por null-lmodem emulada a través de una red local tipo Ethernet necesitamos dos sistemas que corran el DOSBox: uno de los DOSBox operará como servidor, y el otro como cliente.

En tal sentido debemos editar el fichero de configuración en ambos, haciéndolo con los siguientes comandos:

nano ~/.dosbox/dosbox-0.74-3.conf

Tanto en el servidor como en el cliente debemos buscar la sección [serial]... sin embargo, modificaremos el contenido según sea el servidor o el cliente.

  • En el servidor modificaremos la opción serial1 para asignarle el parámetro nullmodem y un puerto TCP por encima de 1024. Por ejemplo,

serial1=nullmodem port:5000

 

  • En el cliente debemos asignar el parámetro server:<ip_del_server> y un puerto TCP. Por ejemplo, si la otra máquina tiene la IP 192.168.0.108 y usa el puerto 5000, deberíamos indicar:

serial1=nullmodem server:192.168.0.108 port:5000 rxdelay:1000

Null-modem con puerto COM real

También podríamos utilizar un veterano puerto COM verdadero si nuestro sistema aún dispone del mismo, en lugar de tener que emularlo. Esto podremos usarlo si contamos con un cable serial y puertos COM en el equipo (activados en la BIOS también). Por ejemplo, para configurar el COM1 (que suele presentar el nombre de dispositivo de terminal serial /dev/ttyS0, modificaríamos el fichero ~/.dosbox/dosbox-0.74-3.conf de forma de agregar lo siguiente en la sección [serial]:

serial1=directserial realport:ttyS0 rxdelay 1000


En cambio, si utilizamos un adaptador USB a puerto serial (en caso que nuestro equipo carezca de puerto COM), deberíamos utilizar el dispositivo de terminal serial /dev/ttyUSB0. Para ello en nuestra terminal ingresamos:
 
sudo chmod 666 /dev/ttyUSB0
 
...mientras que en la sección [serial] del fichero de configuración de DOSBox ~/.dosbox/dosbox-0.74-3.conf indicaríamos ahora:

serial1=directserial realport:ttyUSB0 rxdelay 1000

Es un requisito ideal agregar los usuarios que hagan uso de DOSBox a los grupos de sistema plugdev y dialout, de manera que estos sean capaces de utilizar puertos COM reales del equipo sin tener que utilizar un superusuario y contraseñas. Para ello cada usuario de DOSBox que quisiera usar puerto serial debería ingresar en su terminal el siguiente Comando de Organización:
 
sudo adduser $(whoami) plugdev ;
sudo adduser $(whoami) dialout
 
Pues bien, finalmente en este debe realizarse el enlace físico, que involucra - en cualquiera de los casos - conectar conectar un cable serial a los conectores COM de los equipos, o bien usar dos cables seriales y vincularlos mediante un cruzador null-modem físico. En mi caso utilizaría un hembra de 9 pines, pero también existían de 25 pines y sus respectivos machos de empalme. También estaban disponibles en forma de cable.




Configurar el Null-modem

Cualesquiera que haya sido la estrategia de null-modem empleada, habremos ahora de lanzar el juego en ambas máquinas y activamos la opción de Null-modem serial. Por ejemplo, las versiones 4, 5 y 5.1 de Micro$oft Flight $imulator se caracterizaban por disponer de conexión de null-módem a través de puerto serial, compatibles entre ellas, lo que permitía volar en formación en los alrededores de Meigs Field en Chicago.

Podremos observar un avión muleto en tiempo real.

Por ejemplo, en Flight Simulator 5.1 podríamos ir al menú Options/Entertainment/Dual-Player. ¡Incluso podíamos volar sobre Buenos Aires con el Escenario Río de la Plata 2.4 de Di Veroli Consultores!


Con el correr el tiempo, las conexiones de datos cobraron más interés, y las redes de tipo Novelñ se popularizaron en ciertos entornos del trabajo organizado. El envío de paquetes de datos que avalaban ofrecía posibilidades interesantes, siempre que lidiásemos con sus incómodos cables coaxiles y conectores BNC. A pesar de su difícil ruteo, podían lograrse velocidades de unos 3 MB/s reales. Sobre esta infraestructura no tardó en difundirse el protocolo IPX, un pequeño engendro derivado de los viejos pero capaces terminales Xerox.

El protocolo IPX cobró cierta relevancia entonces para los juegos en red en un estadío previo a la masificación completa de la Internet, a mediados de los 90s. Gracias al mismo podían lograrse enlaces estables y duraderos para varios jugadores y con una cierta facilidad de configuración. Sin embargo, en el caso de la versión emulada sobre GNU, habremos de contar al menos con el conocimiento de las direcciones IP de las máquinas (ya sea en el área local, o bien en la internet si abrimos el puerto de conexión TCP demandado en nuestro router).

Emulación de red IPX

Una vez instalado DOSBox, debemos activar la emulación del protocolo de red de datos IPX para MS-DOS. A tal fin debemos ingresar al directorio de DOSBox y editar el fichero de configuración a fin de activar el módulo de red IPX del emulador.

En el caso de Ubuntu podríamos hacerlo con:

nano ~/.dosbox/dosbox-0.74-3.conf

En el archivo de configuración buscamos la sección [ipx] y cambiamos la declaración ipx=false a ipx=true.

Finalmente guardamos la configuración con Ctrl+o y salimos del editor Nano con Ctrl+x.

Inicializar el servidor IPX

A continuación, en todas los equipos donde queramos participar debemos activar el emulador DOSBox desde Aplicaciones / Juegos / Emulador de DOSBox.

Una de estas computadoras deberá oficiar de servidor. El resto serán sus clientes. En el equipo servidor, habrán de correr el siguiente comando ipxnet startserver pierto_UDP. Normalmente el puerto UDP utilizado era el 213, pero en el caso de Linux debemos utilizar cualquiera libre por encima del puerto UDP 1024. En este caso, usaré por ejemplo el 8844:

ipxnet startserver 8844

La utilidad de tunelado dentro del sistema emulado debería indicarnos con el mensaje IPX Tunneling Server Started.

Ahora podremos iniciar los clientes emulados en las otras máquinas de la red. En cada una de ellas podríamos utilizar el siguiente comando que las dirija a la dirección IP del servidor.

En mi caso podría ser:

ipxnet connect 192.168.0.112 8844

Ya tenemos la red operativa, al menos a nivel local.

Nota: si quisiéramos activar esta red con salida a internet, deberíamos abrir el puerto UDP 8844 en el router y dirigirlo a la IP de la máquina, en este caso 192,168.0.112.

Iniciar los Juegos

Como campo de pruebas para nuestra red local podremos utilizar un juego de disparos en primera persona clásico de M$-DO$: el sanguinario Doom II de Id Softwar€. Se trataba de una violenta propuesta de super-acción tridimensional, con precursoras capacidades de entretenimiento en línea, amén de sonido digitalizado y sintetizado. Para tal necesitamos correr su utilidad de configuración, mediante c:/doom2/setup.exe.DOSBox multiplayer Doom 2 setup

Luego de activar los parámetros relevantes de red eligiendo, lo iniciamos eligiendo Run Network/Modem/Serial Game, para iniciar el juego en modalidad multijugador.

Warcraft

Otro clásico que podremos disfrutar en nuestro centro de datos local o bien puenteado a través de Internet es el Warcraft 2: Tides of Darkness, un juego de estrategia en tiempo real. En el menú principal del mismo tendremos que elegir Juego Multijugador ("Multiplayer Game").

La primera opción nos indica establecer el nombre del serivodr a utilizar

Acto seguido, indicamos el protocolo IPX Network.

Luego de establecer la conexión, el servidor será el primero en escoger bando. Acto seguido, el otro jugador debe confirmar la elección.

Conforme ambos jugadores acuerden las reglas del juego telemático, podrán iniciar su enfrentamiento, enfrentando unidades de humanos y orcos en las tierras del fantasioso Tolkien. Normalmente, cada jugador sólo puede ver su sector en el mapa gracias a la clásica "niebla de guerra".

Por ello cada jugador apreciará diferencias (una de las características de este tipo de juegos).

Esto se aplica a muchos otros juegos de MS-DOS, entre ellos Warcraft 2, Doom, Heretic, Hexen, Duke Nukem 3D, y otros.

Emulación de Módem

Los jugadores más privilegiados podían darse el lujo de enlazar desde su hogar utilizando modulación a través de las redes telefónicas de EnTel. Los pares debían contar por supuesto con copias del mismo juego instaladas en sus sistemas. Por demás, previo a la difusión de internet esto era costoso porque no sólo había que pagar un módem y el lógico abono al servicio telefónico cableado, sino que era necesario abonar al mes cada minuto de conexión en base a la distancia de la llamada. Por demás, si no se utilizaba una línea dedicada, quienquiera que levantase el tubo en cualquiera de los hogares podría crear una disrupción tal que cortara la conexión mutua.

Afortunadamente DOSBox puede salvarnos del incordio y los gastos mediante la emulación de dicho servicio para software dependiente del sistema telefónico para enlazar.

En este caso editamos el fichero de configuración de DOSBox para poder jugar entre dos equipos:

nano ~/.dosbox/dosbox-0.74-3.conf

Usamos la combinación Ctrl+w para buscar ahora la sección [serial] y indicamos el puerto serial donde deseamos conectar nuestro "módem emulado". 

Normalmente los módems de puerto serial podían conectarse en COM1 (que recibe la nomenclatura serial1 en DOSBox) o bien en COM2 (serial2). Es notable el hecho que no existía realmente un estándar muy definido, por práctica se solía utilizar COM2 para el ratón y COM1 para el módem. También debemos indicar un puerto TCP moderno superior a 1024 a través del cual DOSBox transmitirá los datos. 

Siguiendo tal temperamento indicaremos entonces:

serial1=modem listenport:1710

Una vez configurado DOSBox, guardamos los cambios con Ctrl+o y salimos con Ctrl+x.

Nota: Cualquiera sea el puerto TCP elegido (incluyendo aquél por defecto, el 5000), debemos reenviarlo y abrirlo a la red exterior si tenemos nuestro servidor tras un router (NAT).

Opciones de módem en el juego

Debido a que los juegos plausibles de utilizar módem requerían toda una puesta, habremos de replicarla en DOSBox. En este caso debemos configurar las opciones del módem para el juego (ya sea a través de un programa incluído con ellos denominado setup.exe o install.exe, o bien en el mismo juego). En apretado resúmen, debemos asegurarnos de:

  • Definir el mismo número de puerto COM que configuraron en DOSBox. Si el juego contaba con cierto puerto COM definido específicamente, será necesario estipular dicho COM en las opciones de DOSBox, natural.
  • Escoger la velocidad de baudios más alta que acepte el juego.
  • Salir de las opciones, ingresen al juego en sí, y utilicen a la opción de módem del juego, dependiendo si somos servidor o cliente.

 Emular responder una llamada

El uso de un módem telefónico era algo relativamente engorroso. ya que se controlaban de manera críptica mediante el uso de comandos Hayes AT.

Algunos juegos podrían solicitarnos estos comando Hayes AT de autorespuesta de módem, mientras que otros podrían solicitarnos contestar manualmente al producirse una llamada. Algunos programas son capaces de contar con ambos modos.

En el primer modo, en el equipo servidor deberíamos escoger la opción "Aguardar llamada" ("Wait for calls" / "Wait for Ring").

Si el juego nos pide ingresar un comando manual que represente este modo, utilizaremos el Comando ATS0=1 (esto hacía al módem responder al primer timbrazo). Este modo se encuentra para viejos acopladores telefónicos.

En el segundo modo semiautomático, el servidor debería escoger la opción "responder llamada" ("answer call") cuando el juego anuncie una llamada entrante. Si el juego requerirá que ingresemos un comando manual de respuesta, usarán el consabido comando Hayes AT: ATA.

Veamos el caso de Micropro$e F-15 $trike €agle III, software de finales de 1992 que da cuenta de dicho sistema. Al iniciar f15.exe hacemos clic sobre el teléfono del hangar para cargar el módulo de multijugador.

Acto seguido nos avisará que ha detectado el "módem" (virtual) y nos preguntará si queremos establecer una llamada o aguardar. 


En el lado del servidor indicamos Receiver, y quedará a la escucha:

Emular realizar una llamada

El cliente debe escoger la opción "Realizar una llamada" ("Make a Call", o "Caller") en el menú del juego. Y en lugar del número telefónico, indicar la dirección IP del servidor en la red local, o bien la IP de internet. Si el juego nos solicita tipear un comando manual de discado, utilizarían "ATDT<IP>". Por ejemplo, si el servidor se llama "cgt" y su IP es 1.2.3.4, podríamos tipear ATDT1.2.3.4 o bien ATDTcgt.local

En el lado del cliente en tanto, ingresamos al juego f15.exe y en el módulo de módem escogemos Caller para llamar.

Se nos preguntará si ya hemos establecido una conexión por voz (como si se tratara de un viejo módem). Indicamos que si ("yes").

Ahora "discaremos" hacia la IP del servidor que había quedando en escucha. Para ello debemos indicar los números presionando incluyendo el punto (por ejemplo 192.168.0.112). En este caso el juego no muestra los puntos, sino que hace un espacio. Para discar persionamos el botón # del teléfono virtualizado).

En el servidor responderá la llamada:

Ahora podremos dar rienda suelta a nuestros instintos de piloto de combate volando un F-15 de la McDonnell Douglas. No lo haremos en solitario; el simulador de vuelo también hará uso del simulador de módem de DOSBox, con lo cual el par de jugadores podrá repartir las tareas. El suboficial piloto podía usar su joystick para volar, disparar el cañón y gestionar el combustible y los motores, tanto de día como de noche...

También podrá navegar y solicitar ayuda al AWACS.

...mientras que el Oficial Operador de Radar y Armas, sentado en el asiento trasero podría controlar el potente radar embarcado, y operar los medios de adquisición de blancos, a la vez que autorizar el lanzamiento de misiles y bombas teledirigidas, o accionar interferidores o señuelos antimisilísticos.


 Ambos jugadores podrán observar el vuelo en tercera persona.

Conclusión

Naturalemnte, jugar en red era limitado y engorroso. Sin embargo hoy ya no es un privilegio: cuaquier descamisado puede depender de estas facilidades que he otorgado a la Masa y proceder a la emulación de M$-DO$. Por demás, la existencia de juegos de DOS remanentes de la era dorada de la piratería informática física, hace posible hoy establecer en los Centros de Datos de la Libertad divertidas partidas múltiples a través de protocolos de red obsoletos pero nunca abandonados, con el fin de revivir momentos de gloria incluso en las más lentas redes y desprovistas computadoras del mundo actual.