Conectando el Atari 8-bits a Internet

Esta página describe el procedimiento utilizado en Noviembre de 2005 para conectar mi Atari 800XL directamente a la red, y sin emular un terminal VT-100 ni abrir una consola remota.

Materiales

Hardware:

Software:

Descripción

El software utilizado para este experimento es el port para Atari 800 de Contiki. Sólo se necesita el ATR original de 130K (también puedes usar mi versión del ATR en Densidad Simple para diskettera 810) traspasado a un diskette de 5 1/4" usando SIO2PC/APE, módem u otro mecanismo, incluyendo una conexión a un servidor usando la misma 850 y TELNET. El traspaso a diskette es opcional, ver más adelante.

Contiki provee un stack TCP (por lo que puede tener su propia dirección IP) y un browser que lo usa, y que nos permite navegar por la red.

Contiki 1.0 sólo soporta SLIP (no PPP) a través de la interfase 850, por lo que esta "cajita" es necesaria. No sirve la emulación que provee APE, ya que no soporta SLIP, sino que simula una conexión telnet a través de un modem fantasma.

La 850 hay que conectarla a un PC con soporte SLIP directamente de la COM, acceso a la red, y que pueda hacer el enrutamiento de paquetes.

El diagrama de conexión es el siguiente:

Decidí usar Linux porque no encontré ningún programa en la red que anduviera en WinXP y que permitiera enrutar paquetes entre la COM con SLIP y la tarjeta de red. A pesar que WinXP tiene soporte SLIP nativo, no logré hacer que la conexión tuviera una velocidad de 9600 baud, lo máximo soportado por la 850, y eso no me permitió llegar a hacer pruebas de enrutamiento.

Lamentablemente el Linux que tengo en casa no tiene soporte SLIP en el Kernel (fue removido de Fedora desde el Core 2), lo que me obligó a elegir entre lo siguiente:

La primera opción no era práctica, porque no es fácilmente replicable a modo de demostración en el ámbito de los fanáticos de los Atari 8-bits, y la segunda no es tan impresionante porque el Atari no tendría dirección IP propia, sino que la compartiría con el Linux (aunque sigue siendo opción válida para quienes ya tengan un Linux sin soporte de SLIP... ver al final), por lo que decidí optar por la tercera.

Tuve que agregar una condición adicional al LiveCD: debía detectar y correr en una tarjeta gráfica PCI antigua. Después de bajar y probar algunas, elegí PCLinuxOS Preview .91, cuyo ISO ya no está disponible para bajar. La vesión vigente al 28 Abril 2006 es la .92 y se puede bajar usando HTTP ó BitTorrent (ojo que hay versiones optimizadas para tarjetas de video específicas). Espero que siga siendo compatible con este experimento... no lo he probado.

Conexiones

Los cables SIO son los que trae el Atari para conectar sus dispositivos, y éstos los puse en ese orden en caso que se quiera usar SIO2PC/APE en vez de la diskettera.

El acceso a Internet en mi caso es a través de un modem ADSL que se comporta como un pequeño firewall y capaz de hacer NAT. Tiene una dirección IP externa provista por el ISP, y otra interna para la red local (de la forma 192.168.1.XXX), y es capaz de ofrecer DHCP para esta última. Por lo tanto, estoy usando un cable de Red para conectar el modem al PC. No tengo idea cómo configurar un modem USB en Linux...

La conexión entre la 850 y el PC con Linux se hace utilizando un cable especialmente preparado para esto.

Cable Modem Nulo RS-232

Como los pines de la 850 no son estándares (de hecho tiene 3 distribuciones distintas en sus 4 puertos), es necesario construir un cable especial. El que yo utilicé es el siguiente (en su variante DB9 para el PC):

      Atari 850 R1:             PC COM: 
          DB9                DB25     DB9 
         macho              hembra   hembra 
      
                          +--- 6  DSR  6 
        RCV  4 -----------+--- 2  XMT  3 
        
        XMT  3 --------------- 3  RCV  2 
      
        GND  5 --------------- 7  GND  5 
      
        DTR  1 ---+  
        RLSD 2 ---+----------- 8  RLSD 1 
        DSR  6 ---+ 
      
        RTS  7 -+           +- 4  RTS  7 
        CTS  8 -+           +- 5  CTS  8
    

Para este cable, yo usé un cable telefónico de 4 hilos y dos conectores DB9 estándates (9 pines), uno macho y uno hembra con su correspondiente carcaza.

Configuración

Una vez conectado todo, procedemos a encender los equipos en orden:

PC con Linux

Si se usa un Linux con soporte SLIP como el del LiveCD recomendado (no voy a indicar cómo hacer que el PC bootee de CD ni las opciones que hay que tomar para configurar la dirección IP, el manejo de tarjetas gráficas, asumo que todo eso es etapa superada), se deben indicar los siguientes comandos en una shell o consola de comandos, usando la cuenta "root":

    slattach -s 9600 -p slip /dev/ttyS0 &
    ifconfig sl0 192.168.1.31 pointopoint 192.138.1.30
    route add -host 192.168.1.30 dev sl0
    echo 1 > /proc/sys/net/ipv4/ip_forward
  

ttyS0 asume que se ha conectado el cable a la COM1 del PC. Las direcciones IP corresponden a una red local, siendo la terminada en 30 la que se le asigna al Atari y la 31 al puerto serial del Linux (distinta de su propia IP en la red local).

Si el comando slattach arroja un error, es probable que SLIP esté deshabilitado en el Kernel, por lo que aún queda la posibilidad de usar un emulador...

850 y diskettera (real ó emulada)

Con la 850 no hay que hacer nada especial al encenderla, pero si ya estaba encendida, recomiendo apagarla y volver a encenderla después de unos segundos.

Una vez encendida la diskettera hay que poner el diskette con Contiki. Si se opta por el PC con APE, hay que montar el ATR de la forma habitual en D1:

Atari 8-bits

Es importante que el Atari vaya al final, ya que debe reconocer al resto de los dispositivos durante el booteo. Debe encenderse sin BASIC, es decir, con la tecla OPTION presionada en los XL/XE.

Una vez que carga el DOS, aparece un pequeño menú. Con las flechas hay que moverse a CONTIKI.COM y seleccionarlo para cargar el escritorio de Contiki.

En el escritorio hay que configurar TCP/IP seleccionado el respectivo ícono. Se abre una ventana que pide la dirección IP del Atari (en este caso es 192.168.1.30) y el servidor DNS (poner la IP provista por el ISP). No tengo imagen de este menú, porque Contiki se pega en el emulador :-(

Para moverse ente los botones de las ventanas hay que usar las flechas... en un principio no es simple, pero uno se acostumbra. Para editar los campos, hay que parase sobre uno y presionar la tecla ENTER. Después de escribir el texto, hay que presionar ENTER otra vez. No sirve la tecla TAB, ya que pone el caracter ATASCII asociado!!! Para cerrar la ventana hay que presionar el botón Ok.

Después de cerrar la ventana de configuración, hay que pasar al ícono del Web browser.

Navegando con el Atari

Se abre otra ventana con el navegador, la cual tiene los botones Back, Down, Stop, Go y el espacio para poner la URL.

Para poner la URL hay que moverse hasta la barra de direccines y presionar la tecla ENTER para editar. Terminar presionando ENTER otra vez... después hay que moverse hasta el botón Go y seleccionarlo. Aparecerán mensajes al pie de la ventana que indicarán el estado de la conexión.

Algunos comentarios al respecto del navegador:

Configuraciones Alternativas

Usando SIO2PC/APE

Es posible reemplazar la diskettera en la configuración por otro PC con Windows, conectado al Atari con uno de los cables SIO2PC ó APE, y de forma no es necesario traspasar el ATR de Contiki a diskette.

Debe ser otro PC ya que los programas SIO2PC y APE corren en ambiente Windows y el PC de este experimento estará corriendo Linux.

Sé que existe al menos una versión de SIO2PC para Linux: femul, que escapa de lo que yo he probado, pero si es posible de implementar, el PC con Linux deberá contar con al menos 2 puertos de serie COM (ttySX), uno para el SIO2PC y otro para la 850.

Usando un emulador SLIP

Si ya se tiene un PC con Linux que no tiene soporte SLIP en el kernel, se puede usar un emulador como Slirp.

El problema es que no hay disponible un ejecutable de Slirp para llegar y bajar, por lo que hay que compilarlo localmente en el PC. Afortunadamente no se necesitan permisos de root para hacerlo y está correctamente documentado (in inglich).

En caso que se haya compilado exitosamente o que ya estuviera disponible en el Linux a usar, hay que levantar el servicio por consola, usando el comando:

   slirp -b 9600 "tty /dev/ttyS0"

Por el lado del Atari, hay que pasar la misma IP del Linux (aunque me parece que da lo mismo el valor que ahí se escriba).


¿Comentarios?

Me he tomado la libertad de abrir un tópico en atarichile.com para recibir los comentarios y consultas... ;-)


© 2005, 2006 por Víctor Parada - Actualizado el 2006-04-28