En 1987, cuando jugaba con mi computadora Color Computer de 8 bits, uno de mis tantos sueños era poder conectar dos computadoras y hacer un juego multiusuario. Cuando pude tener dos computadoras en mis manos, mi primer intento fue cruzando dos cables de la grabadora de cassettes. Y ... ¡Funcionó! Desafortunadamente, la comunicación como era de suponerse era muy lenta y no se podía hacer nada práctico
. Por supuesto había otras maneras de hacerlo; como usando un modem o alguna interfaz en serie. Ambas inaccesibles para mí en esa época por presupuesto o falta de experiencia. Después cambié esas computadoras por una compatible con PC y ya no pude experimentar más.
Fue hasta 1990 que trabajando en la constructora tuve como tarea hacer una red ethernet, donde finalmente pude dar los primeros pasos para hacer mi sueño realidad. En 1994 jugué el juego de cartas del Windows for Worksgroups y por su puesto el fabuloso Doom en red. Aunque me frustré un poco con los ingenieros civiles que no querían jugar en serio y sólo me disparaban a mí en vez de atacar a los monstruos
. En el año 2001, pude hacer mi primer juego multiusario usando Java.
Me pregunto si realmente hubiera podido hacerlo con mi querida Coco, si el tiempo y mi presupuesto hubiera estado de mi lado. En este y en varios de los siguientes posts voy a tratar de contestarme esta pregunta realizando un juego de fútbol soccer de dos jugadores. De antemano es posible porque ya otras personas vendían un juego de aviones en esos tiempos, pero no esta de más comprobarlo.
Con presupuesto y tecnología de mi lado
Ahora en el año de 2009, en el sitio www.coco3.com , Roger Taylor vende un cartucho que emula a la interfaz RS-232 que la Radio Shack vendía... ¡pero esta es inalámbrica por medio de la tecnología Bluetooth! ¡Nada de fabricar cables odiosos!

RS-232 Wireless de Roger Taylor
Para el proyecto, voy a necesitar dos de esos cartuchos y por su puesto dos Color Computers 2. Afortunadamente las computadoras las pude conseguir sin problemas en e-bay.
Probando la interfaz en serie
Antes de ponerse a programar, es necesario comprobar que el hardware está funcionando perfectamente y que se entiende como funciona. La documentación que proporciona Roger Taylor es muy completa y tiene especificado todo lo que se necesita para este proyecto.
Al ser bluetooth, lo primero que hice fue checar desde Linux si podía ver las dos interfases RS-232 (Una en cada Color Computer):
Scanning ...
XX:XX:XX:XX:XX:XX C510a
00:0C:84:00:85:19 eb101
00:0C:84:00:87:9D eb101
Con el nombre eb101 se puede ver claramente las dos interfaces y es de agradecerse que las direcciones MAC sean distintas por lo que no va haber ningún problema en identificar a cada dispositivo. Incluso podemos hacer pings a cada una de las interfaces:
Leyendo las especificaciones técnicas nos damos cuenta que el RS-232 utiliza un chip que está específicamente diseñado para servir a través de interfaces en serie, por lo que al utilizar además un chip 6551 como puente, se garantiza la compatibilidad con las aplicaciones existentes para el pak RS-232 de la Radio Shack. Solamente hay que tener en cuenta en las configuraciones que los parámetros por default son los siguientes:
Parity: none
Security: off
passkey: 0000
Se pueden mejores configuraciones, como velocidades de 115200 bps, pero creo que los valores por defectos son adecuados para el proyecto y así se simplifica las configuraciones.
El cartucho cuenta con una memoria con un programa desde donde se puede configurar la interface RS-232, además de un programa terminal con utilidades para transferir entre computadoras programas en BASIC y en lenguaje de máquina. Para acceder a ese programa se ejecuta:
Probando la conexión con otra Color Computer
Desde ahi, se puede probar la comunicación entre las computadoras con tan sólo ajustar la velocidad a 9600 baudios y entrando al programa de terminal. Para hacer la conexión se utiliza el comando con con la dirección MAC de la interfaz de la otra Color Computer. A partir de ahí todo lo que se escriba en cualquiera de las dos computadoras, aparecerá en las dos terminales.
A continuación pongo un video de como fue la prueba con mis dos computadoras:
Antes de que me lo pregunten, la voz que utilizo en el video es sintética, como se acostumbra en YouTube
.
Probando la conexión de una máquina Linux a una Color Computer
De igual manera se configura la interfaz en serie a 9600 baudios en la Color Computer y se coloca uno en la terminal. En la máquina Linux se corren los siguientes comandos:
rfcomm bind /dev/rfcomm0 00:0C:84:00:87:9D <--- Cambiar la dirección por la de la Color Computer
Ahorra corremos algún programa terminal en la linux como cu (instalar antes el paquete uucp):
o bien el emulador de terminal VT100/ANSI screen:
En ninguno de los dos es necesario configurar la interfaz en serie porque el protocolo spp lo negocia automáticamente.
Es probable que con comandos AT, nos podríamos conectar a un celular y utilizarlo como modem.
Probando la conexión de una Color Computer a una máquina Linux
1. Creamos un puerto en serie:
2. Nos ponemos a escuchar en ese puerto:
3. Nos vamos a la Color Computer y establecemos la conexión.
4. Si nos pide la llave en la máquina linux, le damos 0000, que es la llave por defecto.
5. Nos conectamos a la trerminal en la máquina usando cu o screen.
{ 4 comments }