Ya entrando en terreno es hora de hacer algunas definiciones para el computador de 8-bits. Una de las decisiones más difíciles es el procesador, ya que cualquier elección deja inmediatamente fuera al 50% de la población. La mayoría de los programadores dominan sólo uno de los dos, el 6502 o el Z-80 dependiendo de la región en donde vivieron o con qué máquina comenzaron.
Pero si no hay costos de producción involucrados, por qué no incluir ambos procesadores? Si! La idea no es tan descabellada, de hecho fue lo que hicieron en el Commodore 128 que tenía un procesador 6502 para quien quisiera compatibilidad con el C64, y un Z80 para quien quisiera usar el nuevo chip de video y aplicaciones productivas basadas en CP/M. Al momento de iniciar el equipo se decide cuál de los dos chips será utilizado.
En este caso, la arquitectura de audio y video se mantendría para ambos, por lo que se podrá programar con el assembler que más te acomode, y siempre usando el mismo hardware de audio, video, mapeo de memoria e I/O.
Esto abre las puertas a que independiente del computador con el que hayas aprendido a programar puedas rápidamente programar en este nuevo computador, y usando el assembler que más te acomode. Y más interesante aún, se podrían hacer ports de juegos existentes con la misma facilidad que en el pasado se hacían ports entre Atari y C64 (6502), y entre MSX, Spectrum y Amstrad (Z80).
Kernel / Basic
Como el sistema está pensado principalmente para juegos y no hay necesidad de compatibilidad con impresoras o sistemas de I/O diversos, al menos en un principio el sistema operativo sería bastante minimalista.
El sistema operativo básicamente se encargaría de hacer el sistema booteable. Sus tareas principales serían:
- Inicializar el audio
- Inicializar un modo de video
- Atender las interrupciones por linea, vertical blank, NMI y alguna otra que se requiera
- Operaciones de Input / Output con el medio de almacenamiento (SD Card)
Con un sistema minimalista de este tipo se dejaría disponible casi toda la RAM principal y no costaría tanto hacer las dos versiones que se necesitarían para 6502 y Z80.
En una segunda fase, se podrían añadir funciones orientadas a la programación como despliegue de texto, cursor, operaciones matemáticas (división, multiplicación, trigonométricas), dibujo de lineas y otras. En una tercera fase estas funciones podrían ser llamadas desde un interprete de basic implementado para ambos procesadores.
Modos de Video
Un criterio similar es aplicable a lo modos de video. Para qué inventar todo un nuevo sistema si se puede recuperar lo mejor de cada chip y de paso nuevamente hacer que sea muy fácil portar un juego de un sistema existente. Algo así se hizo en el MSX en donde existía un modo de video similar al del Spectrum, entonces cuando no habían recursos para un port con todas las de la ley, se hacía un port de Spectrum casi calcado. No era lo mejor, pero ahora sin restricciones de presupuesto a partir de ese port inicial ya funcionando se podría modificar el código para aprovechar el nuevo hardware.
Acá juega un papel importante el uso de las Display Lists que existían en Atari. Se trata de un conjunto de instrucciones que sigue el chip de video para generar la pantalla linea por linea. Éstas instrucciones permiten mezclar distintos modos de video, distintas paletas de colores, distintos niveles de scroll y distintos sprites por cada linea. Por ejemplo si queremos tener un juego tiled con scroll suave y abajo un marcador en modo bitmap pero usando otra paleta de colores, el display list lo permite perfectamente.
En este nuevo computador existirían modos de video compatibles con los computadores ya mencionados además de nuevos modos de video más poderosos, todos combinables en una sola pantalla gracias al Display List.
Nombre tentativo: CLC-88
Con el título ya sabrán que este micro de 8 bits ya tiene nombre: CLC-88. No es que bruto que original el nombre pero creo que representa muy bien la idea de que primero, es un computador de 8 bits y segundo, es un computador que perfectamente podría haber sido diseñado el año 1988. El prefijo CLC corresponde a Catrin Labs Computers, y al mismo tiempo es una famosa instrucción del 6502 que usabas cada vez que querías sumar.
Para el equipo de 16 bits si es que llega a concretarse, se seguirá una lógica similar con CLC-92. En este caso si bien no dice nada de 16 bits, sí es un computador que podría haber sido diseñado en 1992. Además que estrictamente estos equipos eran híbridos de 16 y 32 bits por lo que «16» no le haría tanta justicia… Esto último se me ocurrió recién, la verdad es que quería usar el número 92, pero suena creíble!
Mas info:
Parte I: Catrin Computer Labs
Parte II: Chip de video