Otra película interesante: Micro Men

En este blog ya hemos presentado varias pelis relacionadas con los comienzos de la informática personal:

  • En esta entrada se presentan las pelis «From Bedrooms to Billions», «The Commodore Story» y «8-bit Generation».
  • En esta otra se presenta «Birth of BASIC».
  • Y en ésta última se presenta «El Triunfo de los Nerds».

Pues bien, recientemente he descubierto otra película relacionada que es interesante. Se titula «Micro Men», está producida por la BBC y es de 2009.

La película cuenta los inicios de la informática doméstica en el Reino Unido. En particular, describe la feroz rivalidad entre Sir Clive Sinclair, padre del ZX Spectrum, y Chris Curry, ex-empleado de Sinclair, y fundador de Acorn Computers.

El ZX Spectrum es sobradamente conocido por todos los aficionados al C64, ya que fue uno de sus principales competidores, técnicamente inferior al C64, pero más barato y con un legado cultural similar. De los Acorn Computers había oído hablar, pero tampoco los tenía muy presentes, al ser un fenómeno local al Reino Unido. Me ha sorprendido saber que inventaron la arquitectura RISC de los microprocesadores.

Pues nada, que os recomiendo verla. Os dejo dos versiones en YouTube:

¡¡A disfrutarla!!

VIC-20: Un par de juegos incrustados en la memoria

En este blog hablamos sobre todo del C64. Alguna vez hemos hablado de su sucesor, el C128, y también de un prototipo interesante, pero que no llegó a salir comercialmente, el C65.

El VIC-20 lo he citado pocas veces, aunque sí alguna. De hecho, toda esta historia comenzó hace 40 años con un VIC-20, como ya comenté en la Introducción de este blog.

Es curioso cómo funciona la memoria. Lo mismo no te acuerdas de qué has comido hoy, o de qué hiciste el fin de semana pasado, y, sin embargo, hay cosas que se te quedan incrustadas en la memoria. Especialmente algunas imágenes.

Una de esas imágenes incrustadas 40 años atrás era de un juego de tanques. Montañas, bosque, fondo anaranjado, … Y asociado a todo eso el rugido de un motor.

Este no me costó sacarlo. Para dar con él, me bastaron un par de búsquedas rápidas en Google (¿Google? ¿Qué era eso?) del tipo “juego tanques VIC20”: Tank Commander.

Me encantaba este juego. Sobre todo, porque no era frenético, como la mayoría de los shoot’em ups de aquella época, sino que requería su estrategia, meditar los siguientes pasos, tomártelo con calma agazapado detrás de una montaña.

Y luego hay otro que me ha costado la vida sacarlo. De verdad, como varios años. Sólo recordaba que había habitaciones, o pisos en un castillo, y bichos, muchos bichos. Este sí que era frenético. Había que ir recogiendo llaves u objetos, subiendo de nivel, cada vez más agobiante, etc. Anda que no habré buscado del derecho y del revés, y nada. Google, ChatGPT, … Nada, que no daba con él.

Pues este fin de semana he dado con él, ya no recuerdo buscando qué (¿no os decía que no me acuerdo del fin de semana? jajaja): The Tower of Evil.

Maravilloso juego de exploración y aventuras. Muy emocionante.

Ambos juegos son muy entretenidos. Os los recomiendo. No son los únicos que me gustan del VIC-20, pero sí de los que más.

Ya sabéis que VICE incorpora un emulador de VIC-20, así que es fácil descargarlos y disfrutar con ellos. Da igual que los gráficos no sea espectaculares; lo importante es lo divertidos que son.

Lo mismo un día me planteo portarlos al C64. ¿¿¿Alguien se anima???

¿Hackear un chip?

Estos días he recibido una consulta de un lector sobre el raster que me ha hecho recordar una historia curiosa y que está considerada uno de los primeros hackeos de la historia de la informática:

Como sabéis, la pantalla del C64 tiene un borde y un fondo. En el fondo es donde se pintan los caracteres y los gráficos bitmap. Su tamaño normal es de 25 filas por 40 columnas, aunque hay modos de 24 filas y 38 columnas que se usan para el scroll.

En el borde no se pinta nada, sólo un color. Por definición, tras el borde no puede haber caracteres ni gráficos bitmap, pero sí puede haber sprites. En principio, los sprites que están en el borde quedan ocultos.

El VIC está programado para, al llegar a la línea 50, dejar de pintar el borde superior y pasar a pintar el fondo. Igualmente, al llegar a la línea 250, dejar de pintar el fondo y pasar a pintar el borde inferior.

Lo curioso del asunto es que podemos engañar al VIC. Si al llegar a la línea 250 cambiamos el modo de la pantalla de 25 filas (el normal) a 24 filas (el que se usa con scroll vertical), el VIC entenderá que el cambio de fondo a borde ya lo ha pasado, y por tanto no lo realizará. ¿Resultado? Pues que dejamos de pintar el borde inferior y el borde superior.

Programar esto es fácil. Básicamente consiste en:

  • Esperar a que el raster llegue a la línea 250.
  • Justo en ese momento, cambiar de 25 a 24 líneas.
  • Poco más tarde, por ejemplo, en la línea 252, volver a modo 25 líneas.

El aspecto de la pantalla queda así:

En esos bordes que hemos retirado, tanto el superior como el inferior, no podremos pintar texto ni bitmaps, pero sí sprites. Y muchos juegos explotaron esto.

Tengo entendido que es posible hacer lo mismo con los bordes laterales, si bien es mucho más complejo de programar. El motivo radica en que esperar a que el raster llegue a la línea X es fácil, porque para eso están el registro $d012 y las interrupciones raster. Sin embargo, controlar cuando el VIC pasa del fondo al borde derecho o del borde izquierdo al fondo es mucho más complejo.

¿Nunca habíais hackeado un chip? Pues ya lo habéis hecho…


Código de ejemplo: Bordes.zip

Una joya: “Programming the Commodore 64”

Hace un par de posts os hablaba de lulu.com y de que tenía ganas de comprar y leer un par de libros. Uno de ellos era “Programming the Commodore 64” de Raeto Collin West:

Pues bien, dicho y hecho. Aunque son 600 páginas se lee bastante bien.

Creo que este libro es una joya. Desde luego, hace honor a su subtítulo: “The encyclopedic reference guide to the Commodore 64 computer”, ya que prácticamente cubre todo lo que se puede tratar. Es curioso, porque no es tan conocido como otros manuales de referencia del 64, seguramente por ser una publicación ya algo tardía (1985).

Desde el punto de vista de la impresión, el ejemplar está muy bien. La encuadernación parece buena y resistente, a pesar de que el volumen es grueso. Y la impresión es buena y clara, aunque, curiosamente, tiene alguna anotación a mano, seguramente porque lulu.com hace la impresión a partir de algún ejemplar escaneado.

Respecto al contenido, es algo así (lo simplifico un poco):

  • Introducción al libro.
  • Conociendo el C64 (conexiones, teclado, edición).
  • Referencia de BASIC (sintaxis, comandos, errores).
  • Programación efectiva en BASIC (diseño, depuración, rendimiento).
  • Arquitectura del C64 (hardware, memoria, puertos, CIAs, hardware y software comerciales).
  • BASIC avanzado (almacenamiento en memoria, ubicaciones especiales, extensiones de BASIC).
  • Código máquina del 6510 (chip 6510, monitores, ensambladores).
  • Técnicas de código máquina específicas del C64 (rutinas del Kernal, rutinas de BASIC, RAM bajo ROM, modificando BASIC, vectores e interrupciones).
  • Combinando BASIC y código máquina (RAM disponible para código máquina, combinando BASIC y código máquina, código máquina reubicable).
  • Conjunto de instrucciones del 6510.
  • Mapa de la ROM del C64.
  • Gráficos (gráficos en BASIC, gráficos en código máquina, el chip VIC-II, caracteres personalizados, gráficos bitmap, sprites).
  • Sonido (tipos de ondas, el chip SID, música).
  • Almacenamiento en cinta (cargar y grabar BASIC, ficheros de datos, cargar y grabar código máquina, programación avanzada de la cinta, protección contra escritura).
  • Almacenamiento en disco (comandos de disco en BASIC, manejar ficheros con BASIC, programas de utilidad, hardware, almacenamiento en disco, programar el disco en código máquina).
  • Puertos de control (joysticks, paddles, lápiz óptico).
  • Otros periféricos (impresoras, plotters, módems, RS-232, puerto serie).
  • Apéndices (Proofreader, RAM de pantalla, RAM de color, códigos de colores, tabla ASCII, tabla PETSCII, códigos de pantalla, el chip VIC-II, el chip SID, conversión dec-hex, opcodes del 6510, Supermon, etc.).

Como veis, difícilmente se pueden cubrir más cosas. ¿Alguien da más?

Además, el libro está bien explicado, con un estilo claro. Y tiene abundantes ejemplos.

Por buscarle alguna pega, algunos temas me parecen un poco desubicados o fuera de orden. Por ejemplo, yo hubiera empezado por la arquitectura del C64 (hardware, memoria, etc.), y luego le hubiera metido mano al BASIC, al código máquina, a los gráficos, al sonido y a los periféricos. El mapa de la ROM se queda un poco escaso, especialmente en comparación con otros libros más potentes en este sentido como “Mapping the Commodore 64” de Sheldon Leemon.

Luego una cosa un poco molesta es que, siendo un libro avanzado y que usa el código máquina, tiende a presentar casi todos los ejemplos en formato de programa BASIC que carga y ejecuta el código máquina desde instrucciones DATA. Esto es un poco absurdo porque así el código máquina no se ve y no te enteras de lo que hace, salvo que te piques y ejecutes el BASIC y luego desensambles. No entiendo el enfoque…

Por lo demás, tengo que decir con cierto orgullo que casi todo el contenido del libro está cubierto en este blog y los libros asociados (arquitectura del C64, mapas de memoria, código máquina / ensamblador, chips especiales, gráficos, sonido, joysticks, paddles, rutinas del Kernal, interrupciones, etc.), siendo la principal excepción el BASIC ya que, hasta la fecha, tampoco ha sido el foco de este blog.

Y luego el libro tiene una parte final que, por desconocer los detalles hasta ahora, me ha gustado especialmente: la descripción detallada del funcionamiento de las cintas, los discos y los distintos tipos de ficheros (PRG, SEQ, REL, …).

En definitiva, una lectura muy recomendable para unos días de puente.

DirMaster, un gestor de imágenes de disco C64 para Windows

Estos días estaba trabajando en un proyecto para el C64. Necesitaba abrir una imagen d64 y acceder al contenido de un fichero concreto. La solución obvia era abrir VICE, montar la imagen d64, listar el contenido del disco o imagen con LOAD “$”, 8 y LIST, y luego intentar cargar el fichero.

Aun así, el fichero en cuestión era un fichero ASM, así que necesitaba una aplicación específica dentro de VICE / el C64 para abrir ese tipo de ficheros y leer el contenido. Total, me resultaba mucho más cómodo hacerlo todo desde un PC con Windows porque, al fin y al cabo, suelo trabajar con herramientas de desarrollo cruzado y luego pruebo en VICE o un C64C, pero no desarrollo en entorno C64 directamente (aunque hay gente defensora de este enfoque).

Total, me dio por buscar en ChatGPT (ya casi no uso Google, jaja) por «herramientas de PC para trabajar con imágenes d64» y, entre otras (casi todo emuladores del C64), me propuso DirMaster. No la conocía, pero la he descargado e instalado en mi PC con Windows y he de decir que me ha parecido de lo más útil y cómodo:

Te permite abrir imágenes d64 (y en muchos otros formatos), ver el contenido del disco, ver y editar el BAM (Bit Allocation Map), seleccionar un fichero, ver su contenido, ver sus propiedades (nombre, tipo, tamaño, fecha, etc.), renombrar ficheros, borrar ficheros, crear ficheros nuevos, ver ficheros borrados, ejecutar programas en un emulador, etc. También permite grabar imágenes modificadas y, por supuesto, crear imágenes nuevas. Y todo ello desde Windows.

También permite lo que yo estaba buscando, que consistía en exportar un fichero de la imagen d64 a un fichero de Windows. Incluso permite lo contrario: importar un fichero de Windows como fichero de la imagen.

En definitiva, muy cómodo y muy recomendable. De hecho, en la misma web de Style64 hay otras herramientas interesantes para C64. Echadle un ojo.

Lou Lou – Oui C’est Moi

Había en los 80 un anuncio de perfume que rezaba «Lou Lou – Oui C’est Moi». No, no se me ha ido la olla, ni me dedico ahora a los perfumes 🙂 .

Simplemente he descubierto una librería online, o más bien un sitio de publicación e impresión, que se llama lulu.com. Y el nombre del sitio me ha recordado al anuncio, que por otro lado es ochentero por excelencia, como nuestro querido C64.

Pues bien, en lulu.com, además de autopublicar tus libros e imprimirlos a demanda, también se imprimen copias de libros antiguos, supongo que cuando ya no están protegidos por derechos de autor. Y usando su buscador con «commodore 64» podemos descubrir que imprimen más de 60 libros clásicos sobre el C64.

Algunos son viejos conocidos, y ya los he recomendado en otros posts de este blog:

En particular, hay un par de libros que no tengo y que me llaman la atención, así que lo mismo en unas semanas tenéis alguna reseña por aquí:

Los precios de venta son bastante asequibles (entre 10 y 20 euros), y normalmente se puede elegir el tipo de encuadernación (tipo libro o en espiral).

Una cosa mejorable es que podían publicar los índices o tablas de contenidos de los libros pero, como estamos hablando de clásicos, casi todos ellos se pueden consultar antes de comprar en archive.org.

Pues eso, una manera muy recomendable de revivir viejos clásicos.

Carcasas nuevas para equipos con solera

Con el paso del tiempo, las carcasas originales de los C64 tienden a amarillear y estropearse. Por tanto, una opción muy interesante para revivirlos es cambiarles las carcasas. Y si los recambios son modernos y “molones” tanto mejor.

Un buen ejemplo son las carcasas que adornan las portadas de los libros vinculados a este blog:

Pues bien, he estado investigando un poco dónde conseguir estar carcasas, y no penséis que hay muchas opciones, ni tampoco que sean baratas.

El primer sitio que he encontrado se llama Individual Computers, y es de Alemania. Tiene una tienda donde vende productos para el C64, Amiga, etc., y, en particular, carcasas para el C64C. Ojo, porque son carcasas para el C64C, no para el C64 original. Supongo que habrá pequeñas diferencias en las dimensiones:

https://icomp.de/shop-icomp/en/shop/product/c64c-case.html

Hay diferentes modelos de carcasa, que rondan los 60 – 75 euros.

Otro sitio similar al anterior es Ami64.com, aunque en este caso es del Reino Unido. Además de tienda, hacen reparaciones de equipos. En lo que se refiere a carcasas para el C64, tienen bastante variedad:

https://www.ami64.com/c64-cases

Tienen carcasas para el C64 y para el C64C, y los precios rondan las 75 – 110 libras, es decir, unos 85 – 125 euros. Como veis, no son productos baratos, porque además del precio hay que añadirle el envío.

Un tercer sitio es poly.play, también de Alemania. Tienen carcasas para el C64C a unos 40 – 50 euros, aunque no son tan molonas.

Por último, también se venden carcasas, en este caso nuevas y usadas, en la categoría “Vintage Computing” de eBay.

Por lo visto en 2015 hubo una campaña en Kickstarter, que es un sitio de crowd funding, para financiar la fabricación de carcasas nuevas, pero parece que la campaña no está vigente desde hace muchos años. Algunas de estas carcasas todavía se encuentran por eBay.

Y no penséis que he encontrado mucho más… Bueno, sí, hay gente que se las construye con Lego o las imprime en 3D:

¿No es increíble?

No sé vosotros, pero lo mismo yo me pido una para Reyes…

JiffyDOS

Hablando de sistemas operativas para el C64, resulta obligado hablar de JiffyDOS.

JiffyDOS fue (y es) una sustitución del Kernal del C64, que está en ROM, por otra ROM específica de JiffyDOS. Esta sustitución de ROM se podía hacer sólo en el C64 o, en el C64 y en la unidad de disco, que tiene su propia ROM y su propio procesador independientes del C64.

JiffyDOS lo que busca es optimizar y mejorar el uso de los discos. Por tanto, se puede decir que es un “sistema operativo de disco” (DOS) para el C64.

En esta pantalla puede verse cómo es el arranque de un C64 con JiffyDOS:

JiffyDOS ofrecía mejoras notables, como tiempos de carga más rápidos, acceso veloz a directorios, comandos adicionales para manejo de discos y ficheros, y eficiencia mejorada en la transferencia de datos.

La instalación de JiffyDOS se convirtió en una elección popular para usuarios que buscaban optimizar el rendimiento de sus sistemas Commodore, brindando una experiencia más ágil y eficiente en la gestión de datos y operaciones de disco.

Para quien tenga interés en profundizar en el tema, el manual de usuario de JiffyDOS 6.01 se encuentra aquí.

C64 OS, un sistema operativo moderno para el C64

El sistema operativo original del C64 se puede decir que constaba del intérprete de BASIC y del Kernal, entendido como el conjunto de rutinas del sistema.

Posteriormente, sabemos que vino GEOS, un sistema operativo con interfaz de usuario gráfica, ratón, utilidades, etc. Ya era bastante avanzado para su época.

Pues bien, curiosamente la cosa no ha quedado ahí. Recientemente he podido conocer otra iniciativa muy interesante: https://c64os.com/

C64 OS es un sistema operativo moderno para el C64. Tiene funcionalidades como:

  • Interfaz de usuario gráfica basada en escritorios y ventanas.
  • Manejo mediante menús y ratón.
  • Aplicaciones, que se pueden ejecutar concurrentemente.
  • Utilidades para visualizar texto, imágenes, etc.
  • Manejo simultáneo de diferentes dispositivos.
  • Gestor de ficheros.
  • Portapapeles para copiar y pegar.
  • Reloj y calendario.
  • Ficheros recientes.
  • Sitios favoritos para juegos, música, gráficos, etc.
  • Manuales.

En definitiva, algo muy muy espectacular.

Pero, vamos, que uno ya se pierde con la lista de iniciativas espectaculares que ha habido y sigue habiendo en torno al C64: VICE, SD2IEC, The C64, Ultimate 64, CBM prg Studio, cc65, Mega65, C64 OS, etc.

El triunfo de los nerds

Un documental que tiene ya sus años, porque es de 1996, pero que yo he descubierto recientemente es «El triunfo de los nerds», que podríamos traducir por algo así como «El triunfo de los raritos» o «El triunfo de los frikis».

Se trata de un documental muy interesante sobre el origen de la informática personal en los 70, 80 y 90. Son 2 horas y media de duración y en inglés, aunque hay versiones subtituladas en español disponibles en YouTube.

La ficha del documental la tenéis en Wikipedia:

Y el documental propiamente dicho, con subtítulos en español, está en YouTube:

En el primer capítulo nos cuenta el origen del Altair 8800, que era una caja medio tonta que no se podía usar para nada, del Apple I, del Apple II y del BASIC para todos estos ordenadores.

En el segundo capítulo describe cómo IBM rompe el mercado con sus PCs compatibles, cómo elige MS-DOS frente a CP/M como sistema operativo original, y como lo pierde todo en favor de los «clónicos». También la batalla entre OS/2 y Windows como evolución del sistema operativo.

Por último, en el tercer capítulo, narra el surgimiento de los ordenadores con interfaz de usuario gráfica, como el Lisa y el Macintosh de Apple, así como la extensión de Windows como sistema operativo más habitual. También el surgimiento de Internet.

Por supuesto, en mitad de todo este fregado también estaban los Atari, Spectrum, Amstrad, MSX y, por supuestísimo, nuestros queridos Commodore. Curiosamente, el documental apenas los cita, lo cual me parece muy injusto…

En todo caso, es un documental muy recomendable para todo aficionado a la informática retro. ¡¡A por las palomitas!!