# Gigatron TTL

El Gigatron TTL es un microcomputador de 8 bits de estilo retro, en el que la CPU está compuesta por un conjunto de chips TTL serie 7400 en lugar de estar integrado en un solo microprocesador, imitando al hardware de los primeros arcades. Está destinado a entusiastas de los computadores retro, con motivos de estudio o pasatiempo.

## Arquitectura

La CPU está implementada a través de un conjunto de chips TTL serie 7400, corriendo a una frecuencia de reloj base de 6,25 MHz, la que se puede overclocklear utilizando chips de mayor capacidad. La memoria RAM también se puede ampliar de la misma forma.
Se han implementado tres modos de CPU:
* Ensamblador de 8-bit, el cual implementa una arquitectura Harvard. Ofrece un conjunto de 17 instrucciones, y soporta hasta 256 instrucciones: 8 operaciones ALU, 8 modos de direccionamiento y 4 modos de bus. El sistema operativo está escrito en ensamblador de 8-bit.
* Intérprete de vCPU de 16-bit, el cual implementa una arquitectura von Neumann. Contiene un conjunto de 34 instrucciones. Este modo carga y ejecuta programas desde la RAM. Los programas integrados están escritos para esta vCPU.
* Emulador de MOS 6502 experimental, capaz de correr código máquina para esa CPU.
El vídeo es generado por la vCPU, y soporta una resolución de 160x120 px con 64 colores. Dado que la ejecución de programas y dibujado en pantalla se lleva a cabo por la vCPU, se puede configurar el número de scanlines en pantalla, para sacrificar las líneas visibles en pantalla (líneas negras) en favor de un mayor tiempo de CPU disponible para procesamiento, y viceversa.
El audio también es generado por la vCPU, proveyendo 4 canales de 6 bits.

## Software

El software se incluye en un chip EPROM, y los programas están escritos en GCL (Gigatron Control Language), un lenguaje similar al lenguaje Ensamblador para la vCPU de 34 instrucciones.
Los siguientes programas están incluidos:
* BASIC, un intérprete de Tiny BASIC
* Loader: una característica para cargar programas GCL precompilados o BASIC
* Tetronis, un clon de Tetris
* Racer, un juego de carreras con curvas
* Snake
* Mandelbrot
* Pictures, un visor de imágenes precargadas
* Bricks: un clon de Breakout
* TicTacToe: una versión en modo texto Tres en línea (o Gato) escrito en BASIC
* WozMon: una implementación del Monitor de Woz usado en el Apple I
* Credits: muestra los créditos en texto que cambia de color
El intérprete de Tiny BASIC permite crear y cargar programas desde y hacia el controlador de teclado, así como también cambiar parámetros del sistema (como los colores de la pantalla, o los ledes personalizables).
El software está disponible en GitHub bajo la licencia BSD de dos cláusulas. El usuario puede compilar su propia ROM con el código disponible.

## Ensamblaje

El microcomputador se vende como kit de ensamblaje, el cual incluye:
* Una placa PCB
* Un conjunto de chips TTL
* Un chip EPROM intercambiable junto con un socket (para las actualizaciones de firmware)
* Un chip de memoria SRAM de 32 KB (actualizable por un chip de 64 KB)
* Puertos de joystick y VGA (D-SUB)
* Puerto USB para energía
* Transistores, condensadores y diodos
* Un conjunto de 4 ledes con programación personalizable
* Un mando similar al del NES (conectable al puerto de joystick)
* Un controlador de teclado PS/2 con memoria no volátil incorporada (conectable al puerto de joystick)
* Cable USB para energía
* Manual de instrucciones
* Una caja de madera para ensamblaje y presentación
El ensamblaje solo requiere de un soldador eléctrico, soldadura de estaño, alicate de corte, multímetro y "mucha paciencia".
En sus primeras versiones, el conjunto no incluía controlador de teclado ni memoria no volátil, y la entrada se realizaba exclusivamente a través del joystick incluido. A partir de la versión 3 se incluye un controlador de teclado PS/2 conectable al puerto de joystick, con una pequeña memoria no volátil para almacenar programas en BASIC. Una placa Arduino debidamente programada puede usarse como puente entre un PC y el microcomputador, ya sea para programar, o como almacenamiento adicional, así como también para utilizar un teclado USB.
El usuario también puede construir un sistema mejorado usando chips compatibles con los que se incluyen en el kit, así como también programar su propio firmware, utilizando su propio chip EPROM o EEPROM.

## Disponibilidad

El kit está disponible a la venta por un precio de €149.50. Las actualizaciones se proveen a través de un nuevo chip ROM, el cual se debe reemplazar manualmente.
También está disponible un emulador en línea, el cual permite cargar aplicaciones a través de Loader.