ZX Spectrum, así fue el modesto y popular ordenador de Sinclair

Lanzado en 1982 y con unas especificaciones técnicas muy humildes en comparación con otros sistemas de su tiempo. El microordenador más popular de Sinclair, el ZX Spectrum, fue un enorme éxito no solo en su país de origen, el Reino Unido, sino también en España, donde pese a su modesto hardware, incluso a día de hoy una generación entera lo recuerda con cariño al ser su primer ordenador.

Arquitectura general del ZX Spectrum

Una de las características más conocidas del ZX Spectrum es su GPU, el cual es un Zilog Z80A funcionando a 3.58 MHz. En cuanto a la memoria RAM, hasta 48 KB podían venir de serie en el sistema. Curiosamente, Sinclair empezó vendiendo su ordenador con solo 16 KB de memoria, pero dicha memoria pronto se vio insuficiente y el modelo con los 48 KB de serie se convirtió en el único a la venta. En cuanto al resto del direccionamiento de 16 bits, los otros 16 KB hasta llegar a los 64 KB se encontraban direccionados a la ROM del sistema.

Circuiteria ZX Spectrum

La preferencia por el modelo de 48 KB del ZX Spectrum no era casual, ya que los primeros 16 KB eran accesibles tanto para la CPU como por la ULA, mientras que los otros 32 KB eran de uso exclusivo de la CPU. Lo que hizo que por rendimiento el modelo de 48 KB se volviese en el más popular, dejando al de 16 KB rápidamente desfasado. En especial por el hecho que usar para todo el pozo de memoria compartido ralentizaba enormemente los juegos, por no hablar de que no dejaba crear títulos complejos, lo cual era el punto fuerte de los ordenadores respecto a las consolas y arcade por aquellos tiempos.

La ULA en el ZX Spectrum

La ULA (Uncommmited Logic Array) es un chip creado por Sinclair para el ZX Spectrum que unifica en un solo chip varias tareas importantes para su funcionamiento. Todo ello en medio de la política del Sinclair de ahorrar costes y hacer los ordenadores más accesibles económicamente. No obstante, no se trata de un chip al uso, sino que su lógica es programable.

ZX80 vs ZX81

A principios de los 80 muchos diseñadores de hardware decidieron dejar de usar chips TTL para usar chips PLA e incluso las más complejas ULA, un ejemplo de ello fue la propia Sinclair, que unifico toda la circuitería de generación de vídeo hecha con chips TTL en el ZX80 en una sola ULA en el ZX81, idea que llevo más allá en el ZX Spectrum.

No obstante, la gran diferencia entre una ULA y un chip PLA, es que la primera solo es configurable en la etapa de fabricación e integran tanto lógica combinacional como secuencial en una misma pieza. En cambio, el segundo solo usa lógica combinacional o secuencial, pero no ambas al mismo tiempo.

Keep it simple

Así pues, mientras que otros sistemas tenían complejos chips a medida para la generación de gráficos y audio, el ZX Spectrum, aparte de la CPU y la memoria, usaba un chip para todo. Y es que la ULA no solo se encarga de generar los gráficos, sino que literalmente asiste al Z80A en todas las tareas necesarias del ordenador de Sinclair.

¿Y cuáles son esos trabajos que realiza la ULA?

  • Hace de controlador de memoria para la CPU, de tal manera que accede a la RAM a través del ZX Spectrum, lo que evita sobre todo problemas a la hora de acceder a la parte de la RAM que la ULA utiliza para gestionar los gráficos.
  • Se encarga de gestionar los periféricos conectados al sistema. Es decir, gestiona tanto las interfaces de los joystick, así como el teclado y la unidad de cinta.
    • El sistema de almacenamiento de cinta se controla en gran parte a través de la ULA, que modula y demodula la señal de datos que se lee y escribe en las cintas.
  • También genera el sonido, el cual es extremadamente simple, un altavoz interno que solo tiene un canal de onda cuadrada a muy baja resolución.

No obstante, el más importante es la generación de los gráficos y del control de la señal de vídeo. Y es que este es el punto en que el ordenador de Sinclair se diferenció de sus antecesores de la misma marca, como habían sido el ZX80 y el ZX81

Gráficos modestos

Al contrario que muchos de sus rivales como es el caso del Atari 800, el Commodore 64, los ordenadores bajo el estándar MSX o incluso algunas consolas como la Colecovision. Pues en 1982, las capacidades gráficas del Sinclair ZX Spectrum se encontraban muy por debajo. Esto se explica por el hecho que no se creó para videojuegos, por lo que carecía de gestión de scroll, sprites por hardware. Más bien su subsistema gráfico era equivalente a aquellas máquinas de la década de los 70 que usaban hardware de terminal de texto para generar los gráficos. Es decir, se trataba de un ordenador muy modesto en este aspecto.

¿La forma de generar los gráficos? Simple, pero efectiva, usando las instrucciones de movimiento de bloques de datos del Z80A, lo que se hacía era mover los bloques que componían la pantalla desde la dirección de memoria $4000 a la $57FF. En total 768 bytes de información

Y luego en otros 768 bytes que es donde van los atributos a color de cada uno de los 768 patrones de bits que compondrán la escena, siendo cada uno de ellos de 8 x 8 píxeles. Por lo que la resolución final es de 256 x 192 píxeles, la misma que la del TMS9918A con el que también compartía una paleta de 16 colores. Los 4 primeros bits del atributo de color indicaba el valor de color de los píxeles con valor 1 (INK) y los otros 4 bits el color de los píxeles del patrón con valor 0 (Paper).

El ZX Spectrum con 128K

El Spectrum tuvo una versión con 128 KB de memoria RAM llamado ZX Spectrum 128K, que curiosamente se creó y diseño en España para Amstrad, pese a llevar la marca Sinclair. Su novedad más destacada es el hecho de implementar un chip de sonido, un AY-8910 que reemplazaba el horrendo altavoz de los modelos originales, pero que requería que los juegos fueran adaptados para usarlo.

ZX Spectrum 128 K

Para poder llegar a los 128 KB, la nueva ULA diseñada para este sistema, aunque totalmente compatible hacia atrás con la original, usaba la dirección de memoria 7FFD donde los 3 primeros bits escogían el banco de memoria que se utilizaría, por lo que el sistema tenía disponibles 8 bancos de memoria de 16 KB cada uno. Eso sí, los bancos 5 y 7 se reservaban para la ULA. Dicha RAM adicional tenía que servir para permitir videojuegos más complejos. En todo caso, si el último bit de dicha dirección sí se activaba, hacía que el ordenador revirtiese su comportamiento al de un ZX Spectrum de 48 KB.

Por desgracia, a nivel técnico la ULA no recibió mejoras técnicas y los juegos se veían visualmente idénticos. Esto se debe a que salió cuando Amstrad ya había comprado a Sinclair y decidió vender el ZX Spectrum como una alternativa barata al Amstrad CPC. De ahí su diseño que integra el Datasette y el teclado, en una sola pieza. Claro está que lo bueno era que su teclado no era el de teclas de goma.

Deja un comentario

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

Scroll al inicio