Galaksija en el ZX-Uno

03.03.2018: Se actualiza a las funcionalidades de la versión 0.2 (22.02.2018) del core.

Este es un ordenador creado en 1983 por el inventor serbio Voja Antonić que se llamó  Galaksija (Galaxia en español). Este señor diseñó un ordenador DIY (‘do it yourself’, hazlo tú mismo), cuyos esquemas fueron publicados en la primera revista de ordenadores yugoslava, “Računari u vašoj kući” (Ordenadores en Casa), en su primer número de Enero de 1984. De este primer número se vendieron 100.000 ejemplares, y posteriormente se supo que al menos 8.000 personas habían construido su propio ordenador Galaksija ¡Alucinante!

Podéis conocer toda la historia en el artículo El inventor que ‘hackeó’ una dictadura fabricando ordenadores caseros.

La potencia de este ordenador era un poco mayor que la del Sinclair ZX81, pero claramente inferior al ZX Spectrum. Podéis ver más en detalle sus características técnicas en la wikipedia en inglés o conocer alguna cosa más aquí.

Más tarde, en 1985, apareció el Galaksija Plus, que fue una versión mejorada del Galaksija con un modo gráfico monocromo de alta resolución de 256×208 pixels, un chip de sonido AY-3-8910 de 3 canales y 48 KiB de RAM.

El ordenador Galaksija fue implementado hace unos años en FPGA por el proyecto μGalaksija, y recientemente ha sido portado al ZX-Uno por azesmbog , el cual ha mejorado la implementación original, al ser ahora compatible con el Galaksija Plus, además de haberle añadido la posibilidad de cargar programas desde una tarjeta SD. 

Aquí tenéis un video del ordenador funcionando

 

USANDO EL CORE

El core os lo podéis descargar de aquí, y es necesario que la tarjeta que uséis esté formateada en FAT16. Solo tiene salida por VGA.

Desde la versión 0.2 del core se ha añadido soporte para tarjetas SDHC de 4 GB formateadas en FAT16. Si se usan tarjetas SDHC con capacidad superior a los 4 GB para que funcione es necesario crear una partición de 2 a 4 GB en FAT16. Probado en la tarjeta SD de 8GB y 16GB.

En esta pagina podéis ver unas decenas de programas que se hicieron para este ordenador y bajároslos. Para hacerlo más fácil, he creado un archivo GAL.ZIP (actualizado el 03.03.2018) que contiene todos esos programas, y que os lo podéis descargar. Descomprimid el archivo ZIP en el directorio raíz de la SD y os creara una carpeta GAL donde estarán incluidos esos programas, los cuales tiene la extensión GTP.

Novedades versión 03.03.2018 del fichero GAL.ZIP:

  • Se añade la carpeta azesmbog. Contiene 2 programas que calculan el valor de PI con un gran número de decimales: PI80R.GTP, que una vez cargado se ejecuta con la instrucción RUN, y el PI80.GTP que para ejecutarlo es necesario ejecutar la instrucción A=USR(&3000).
  • Se añade el programa PACMNPP.GTP en la carpeta GalPlus. Es una versión del programa PACMAN PLUS que tiene autoarranque y que ya se pone el solo en modo Galaksija Plus.
  • Se añade la carpeta Basic con ficheros BASIC1.GTP a BASIC9.GTP para ser usados cuando creéis y grabéis vuestros programas BASIC. También incluye 2 programas que he tecleado y que visualizan un «Gumowski-Mira attractor», el ATTRACT.GTP en el modo de video original del Galaksija, y el ATTACTP.GTP en el modo gráfico expandido del Galaksija Plus.
  • Añadida la carpeta Music con programas que reproducen música para el chip de sonido AY del Galaksija. Si se quiere detener la reproducción de la canción hay que pulsar la tecla SPACE.

Una vez arrancado el ordenador os aparece en la línea superior un READY, y en la segunda linea ya tenéis el cursor para poder introducir vuestro programa en BASIC. Los comandos BASIC que entiende el ordenador los podéis consultar en esta pagina.

Podemos cargar programas ya realizados desde la tarjeta SD. Para ello en el BASIC hay que teclear la siguiente instrucción:

A=USR(&F000)

eso hará que entréis en una especie de DOS donde podéis hacer lo siguiente:

  • Comando CD: Sirve para cambiar de directorio
  • Comando DIR: Lista el contenido de un directorio. Si se pulsa SPACE se detiene la presentación del contenido, y cuando se suelta vuelve a reanudarse la presentación.
  • <nombre del programa sin la extensión>+ENTER: Carga el programa en la memoria del ordenador y regresa al BASIC. A continuación para poder ejecutar el programa ejecutad la sentencia RUN.
  • Comando I (i latina): Reinicializa la tarjeta cuando es remplazada.
  • Comando WB name_file.GTP: Escribimos el programa BASIC en el fichero name_file.GTP (realmente hace un volcado de memoria). Por ejemplo, WB BASIC1.GTP escribe el contenido del programa BASIC en el fichero BASIC1.GTP de la tarjeta SD. Existe la limitación que el fichero ya debe existir en la tarjeta antes de grabarlo, por lo que es conveniente tener en la tarjeta una colección de ficheros BASIC1.GTP, BASIC2.GTP, etc para su posterior uso.
  • Comando X o pulsando la tecla <FIN> / <END>: Se vuelve al BASIC

El core entra al principio en modo Galaksija Clásico (minus), pero es posible pasar al modo Galaksija Plus con la siguiente instrucción:

A=USR(&E000)

Ahora disponemos de nuevos comando BASIC como son:

  • GRAPH: Pasamos al modo gráfico.
  • TEXT: Pasmos al modo de texto.
  • PLOT x, y: Dibuja un punto.
  • UNPLOT x, y: Borra un punto.
  • DRAW x, y: Dibuja una línea.
  • UNDRAW x,y: Borra una línea.
  • FILL x,y: Relleno de tinta.

Aquí podéis ver todas las instrucciones BASIC que entendía el Galaksija Plus

Y más abajo el mapa de memoria del Galaksija Plus

FUNCIONES EXPERIMENTALES

Esta implementación μGalaksija del ordenador tiene una característica añadida que no existe en los Galaksija originales, y es la posibilidad de presentar hasta 8 colores de tinta. En lugar de solo permitir presentar los caracteres blanco sobre negro, permite color sobre negro, mediante la instrucción:

BYTE &FFFF,<foreground color number>

Con la siguiente correlación de colores

BYTE &FFFF,0 –> white
BYTE &FFFF,1 –> magenta
BYTE &FFFF,2 –> yellow
BYTE &FFFF,3 –> red
BYTE &FFFF,4 –> cyan
BYTE &FFFF,5 –> blue
BYTE &FFFF,6 –> green
BYTE &FFFF,7 –> black

TECLAS ESPECIALES

CONTROL + ALT + SUPRIMIR: Soft Reset
CONTROL + ALT + F12: Master reset
F1: Velocidad de ejecución a 1x.
F2: Velocidad de ejecución a 2x (modo turbo)
F3: Velocidad de ejecución a 4x (modo más turbo )
F9: Habilita / Deshabilita el sonido. Solo usar en programas que sacan sonido como el Sintesajzer, Demon o ChariotsOfFire. En el resto de programas pulsarla provocará un sonido desagradable que desaparecerá volviéndola a pulsar.
ESC: Congela la ejecución de un programa BASIC o Código Máquina. Volviendo a pulsar la ejecución continua.
SUPR o DEL: Si se mantiene pulsada durante la ejecución de un programa BASIC congela su ejecución, y si se suelta la ejecución continua.
Fin o End: Si se pulsa durante la ejecución de un programa BASIC realiza un BREAK.
SHIFT + M: Habilita el modo plus más avanzado en aquellos juegos que están preparados para ello, como por ejemplo el TETRIS.GTP. No vale para pasar al modo Plus desde el BASIC.
M: Vuelve al modo normal si estás en el modo plus dentro de estos juegos.

Modo Normal

Modo Plus

EMULADORES

Emuladores para Windows y MS-DOS: http://emulator.galaksija.org/
EMU – Emulador ruso de múltiples máquinas (incluye el Galaksija).  Para Windows

Emulado por el MESS: http://mess.redump.net/
Emulado en el Sinclair Spectrum +2A y +3, así como en el Sam Coupé: http://simonowen.com/sam/galemu/

ENLACES DE INTERÉS

Galaksija development tools
High resolution graphics on Galaksija

Esta entrada fue publicada en ZX-Uno y etiquetada , . Guarda el enlace permanente.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *