From the monthly archives:

July 2009

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 :P . 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!

wireless
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):

[renato@fedora ~]$ hcitool scan
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:

l2ping 00:0C:84:00:87:9D ---> Cambiar la MAC de la Color Computer a la que se quiere uno conectar

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:

Baud rate: 9600
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:

exec &HC000

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 release all
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):

cu -l /dev/rfcomm0

o bien el emulador de terminal VT100/ANSI screen:

screen /dev/rfcomm0

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:

sdptool add --channel=3 SP

2. Nos ponemos a escuchar en ese puerto:

rfcomm listen rfcomm0 3

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 }

En este post iré poniendo unos peeks, pokes and exec's muy útiles cuando se trabaja con la Color Computer.

Poke de alta velocidad

Para la color computer 2:

poke 65495,0

para regresar a la normalidad:

poke 65496,0

Para la color computer 3:

poke 65497,0

para regresar a la normalidad:

poke 65498,0

Cold Reset

A veces es necesario reiniciar la computadora desde el teclado o un programa. La forma de hacerlo es:

poke 113,0:exec 40999

Convertir a minúsculas verdaderas

Para las Cocos 2 nuevas y para la Coco 3:

poke 359,57
poke &hff22,&h50

Grabaciones de cassettes en lenguaje de maquina

Inicio:

peek(487)*256+peek(488)

Final:

peek(126)*256+peek(127)

Ejecución

peek(157)*256+peek(158)

{ 1 comment }

¿Con qué búsquedas llegan a mi sitio?

by Jorge Machin on July 5, 2009 · 1 comment

in Humor, Personal

A todo buen blogero, siempre le da curiosidad saber como conocieron su sitio. En mi caso, estas son las diez búsquedas con la que los cibernautas llegan a mi blog en los tres últimos meses:

1. Receta del picadillo.
2. Receta de la sopa de champiñones.
3. Jorge Machín.
4. Receta de la salsa ranchera.
5. Formulario de Cinemática/Vectores.
6. Tiro parabólico en tres dimensiones.
7. Películas de gastronomía.
8. Receta del pollo a la mostaza.
9. Hilos C++ en Windows.
10. Proyección Geométrica.

Por lo que se puede apreciar, mis visitantes llegan con algo de hambre o buscando como resolver una tarea o un problema gráfico. Creo que no es de sorprenderse y ya sé en que posts debo ser más cuidadoso :p

{ 1 comment }