La computación avanza contínuamente y evidentemente lo que en 1985, por ejemplo, era lo más avanzado en tecnología de computadoras caseras, hoy lo vemos como casi la prehistoria. Por ejemplo, una Apple //e tenía 128 Kilobytes de memoria RAM, no más. Los discos de 5.25 pulgadas que usaba podían guardar la cantidad de 77 Kilobytes (casi cualquier imagen actual puede fácilmente duplicar la capacidad de almacenamiento de esos discos) y corría a 1 MegaHertz. Considerando esto, parece casi de ficción que la gente trabajase con estas maquinitas.

Han pasado muchos años -bueno, no tantos- y ahora hablamos de terabytes de almacenamiento, de gigabytes de memoria RAM y de tarjetas gráficas con millones de colores e incluso, decenas de núcleos para hacer procesamiento en paralelo. El mundo de las computadoras como la Apple //e, Commodore y Radio Shack son cosas del pasado, pero de un pasado muy interesante, en donde los programadoresde ese entonces hallaron cómo exprimir hasta la última gota las posibilidades de estos sistemas, que nos parecen rupestres.

Tan ha avanzado la programación que más de uno ha decidido escribir un emulador de una Apple //e usando algún lenguaje moderno. Uno de los más usados ha sido javascript y he aquí un emulador completo de una maquinita Apple //e a través de este lenguaje, el cual puede correr en un navegador. Así pues, no necesitamos la máquina físicamente, ahora con software podemos tener una “réplica” virtual de la popular Apple //e de 1984.

Apple ][js es pues un emulador de Apple //e escrito en Javascript y HTML5. Para correrlo se requiere un navegador de Internet que dé soporte a HTML5, por ejemplo, Google Chrome, el cual parece ser el mejor. Le sigue Safari. Opera 10 parece tener el runtime de Javascript más rápido, pero se comporta mal cuando hay mucha interacción con el canvas y el audio.

Las limitaciones del proyecto incluyen:

  • no hay audio de las aplicaciones de la Apple //e.
  • soporte casi nulo a impresoras (actualmente se soporta sólo el envío de caracteres a una ventana de texto)

Se utilizan las siguientes bibliotecas:

  • jQuery y jQuery UI
  • JSON 2
  • Base64 Utilities via KvZ
  • LED graphics de Modern Life

Para poder implementar el emulador, se ha trabajado extensamente sobre la documentación siguiente:

  • Beneath Apple DOS por Don Worth y Pieter Lechner
  • Inside the Apple //e por Gary B. Little
  • DOS 3.3 Anatomy
  • Apple II Disk Drive (artículo de Neil Parker)
  • 6502.org
  • The comp.sys.apple2.programmer FAQ

Ser puede contactar al autor enesta dirección:  apple2js@scullinsteel.com, y el emulador corre de esta página.

Referencias:

Emuladores Apple //e