Manejo de GEOS con geos.h

Programación retro del Commodore 64

  • Programación retro del Commodore 64
  • “Programación Retro del Commodore 64” es un blog sobre el hardware, el sistema operativo, y la programación del Commodore 64. Y más específicamente sobre programación en ensamblador. Pretende ser un blog con información de calidad, y referencia en español de la programación retro de esta maravillosa máquina.
    • Mi blog
« Publicado el: 06/10/2022 »

Es increíble, pero el C64 tuvo un sistema operativo con interfaz de usuario gráfica (GUI) ya en el año 1986. Se llamaba GEOS y podéis ver una descripción aquí:

https://es.wikipedia.org/wiki/GEOS

El GEOS se distribuyó sobre todo con el modelo C64C, y como mi modelo era la “panera” original, he de reconocer que en los 80 no caté mucho GEOS. Pero sí lo vi en funcionamiento en alguna ocasión.

Algunos aspectos increíbles de GEOS son:

  • Residía en disco. Había que cargarlo desde ahí.
  • Tenía interfaz de usuario gráfica.
  • Permitía el uso de ratón.
  • Incluía aplicaciones de edición de textos, hojas de cálculo, para pintar, etc. También había aplicaciones hechas por terceros.
  • Tenía un cargador turbo para disco.
  • Permitía el uso de múltiples impresoras.
  • Etc.

Un sitio interesante para aprender mucho sobre GEOS y descargarlo es éste:

https://cbmfiles.com/geos/

Concretamente, la descarga de GEOS para C64 en formato D64 se puede realizar desde aquí:

https://cbmfiles.com/geos/geosfiles/GEOS64.ZIP

En realidad, lo que te descargas es un fichero ZIP de unos 380 KB con varios discos en formato D64:

El disco / fichero que más nos interesa es el “GEOS64.D64”. Si lo arrastras a VICE…

Ahora sólo queda configurar un ratón o un joystick en VICE (puerto de control 1) y empezar a jugar con GEOS. ¿No es increíble?

En particular, con el menú de VICE File > Attach disk image > Drive 8 se puede conectar cualquiera de los otros discos, por ejemplo, el “APPS64.D64”, y explorar su contenido:

En cualquier caso, aquí estamos para hablar de cc65. Y ocurre que cc65 también soporta la programación en C para un C64 con GEOS mediante el header file geos.h. De hecho, si nos vamos a cc65\include veremos que no sólo tenemos el fichero geos.h, sino toda una carpeta geos con este contenido:

Es decir, que la programación en C para GEOS tiene su miga, hasta el punto de que no hay un único header file, sino 13, cada uno de ellos especializado en funciones concretas de este sistema operativo (constantes, disco, memoria, procesos, sprites, etc.).

La programación para GEOS, incluso en C que será más fácil que en ensamblador, queda fuera del objetivo de este blog, al menos de momento. Pero el que tenga interés puede profundizar en esta página de cc65:

https://cc65.github.io/doc/geos.html