martes, 15 de enero de 2013

Un recorrido por la historia del Spectrum: ZX Spectrum


Índices: Máquinas Sinclair       Historia de la Informática


Tras el éxito del ZX81, Sinclair aborda su sucesor, para competir mejor con los ordenadores del momento. El proyecto inicial se llamó ZX81 Color, luego fue el ZX82, pero definitivamente fue el ZX Spectrum, para reforzar el que manejara color, y ocasionó una revolución en Europa.

El precio de salida, aunque superior al del ZX81, es 4 veces menor al de sus competidores, como el Commodore 64, lo que obliga a todos los fabricantes a replantearse sus precios, pero cuando el C64 baja su precio a la mitad, también Sinclair baja sus precios, por lo que se mantiene con gran ventaja.

Enseguida es un éxito de ventas, potenciado por la aparición de mucha información sobre la máquina, revistas, libros y asociaciones de usuarios, por lo que rápidamente hay muchos programas, juegos y utilidades para el aparato (hay registrados mas de 20.000 juegos), se potencia enormemente la programación, se hacen concursos, y muchos adolescentes ingleses aprenden a programar con esa máquina, por lo que todos querían tener uno.

En España el fenómeno es similar, aunque se decanta mas por el juego que por el desarrollo, pero aun así se crean algunas compañías de videojuegos, que llegan a ser líderes europeas, en lo que se llamó "la edad de oro del software español".


Sinclair ZX Spectrum (fuente: wouter.bbcmicro.net)

Partiendo de la base de un ZX81, se le hicieron una serie de modificaciones que lo hacían mas funcional y operativo, la principal el color y la posibilidad de generar sonido, para lo que tuvieron que modificar el aparato en varios aspectos, y al final perdió la compatibilidad con las versiones anteriores del aparato, solo era bastante compatible a nivel de fuentes en Basic. Estudiando el mapa de memoria podemos ver los principales cambios de la máquina.

  • La ROM pasa de 4Kb a 16Kb. Este aumento le permite manejar los nuevos cambios en el equipo, como el manejo de la pantalla y del sonido, además de incluir el manejo de los nuevos periféricos que diseñaron para la máquina, principalmente el Interface-1. El Basic es una ampliación de la versión anterior, añadiendo nuevos comandos gráficos, comandos para el manejo de color y sonido, acceso a las nuevas funciones, pero se hace un cambio perjudicial para el rendimiento, todas las variables numéricas se usan como reales, lo que hace que se ralentice la ejecución en Basic del aparato, por eso pierde en todas las comparativas de velocidad en Basic. Donde mas se nota es en el manejo de lo bucles.
  • La memoria de vídeo dispone como sus antecesores de 24 líneas de 32 caracteres en modo texto, pero en lugar de usar la memoria de forma dinámica para optimizarla, en esta máquina se pasa a usar un bloque fijo de 12Kb de memoria para la pantalla, pasando esta a ser de 256x192 pixels en modo gráfico en modo monocromo, usando  6Kb de memoria para ello. Luego usa una segunda zona para la información del color, al poder manejar 16 colores, hubiesen sido necesario multiplicar por 4 esa cantidad de memoria, pero en lugar de ello redujo su tamaño haciendo que solo se pudiese asignar un color a cada carácter y no a cada punto, por tanto usa un byte para guardar el color de la tinta, el color del fondo, el modificar de intensidad y el de parpadeo, para una zona de 8x8 pixels, por tanto solo necesita 768 bytes para su manejo. El usar una zona fija de memoria para la pantalla, el procesador ya no debe ocuparse en generar las pantallas, procesando solo en los tiempos de retorno vertical como sus antecesores, ahora la memoria de vídeo se comparte entre el procesador y la ULA, que se encarga de presentar las pantallas, por lo que el ordenador puede trabajar mas rápido.
  • La RAM mínima pasa de 1Kb a 16Kb, ampliables a 48Kb, sin posibilidad de usar valores intermedios, ni el uso de memoria extendida. Dentro de esa memoria RAM está ubicada la memoria de vídeo, usando el sistema una zona para las variables del sistema y las pilas para el manejo del programa, por tanto disponía de unos 9Kb o de 41Kb libres para el programa. En caso de programar directamente en código máquina, era posible usar toda la memoria salvo la zona de pantalla como memoria disponible.
  • Se añade un altavoz interno, que es manejado por la ULA a partir de las instrucciones del procesador (por tanto es otro pequeño cuello de botella su uso), y está muy limitado al no usar un procesador de audio propio mas potente.
  • Mantiene la entrada y salida de casete, aunque ahora la salida de audio también está disponible en el conector de salida, por lo que por unos auriculares o un altavoz amplificado se puede escuchar el sonido.
  • Se cambia el teclado, ahora las teclas son mas grandes, y sobre la membrana se colocan teclas de goma, para mejorar el tacto. Se mantiene el disponer de varias funciones en cada tecla, ampliándolas a 4 en cada una, por lo que se añade una nueva tecla de "modo extendido" para poder manejar todas las funciones. Mantiene los token en el Basic, por lo que se añaden comandos para manejar los periféricos, aunque no estén presentes en la máquina.
  • El conector de expansión trasero tiene mas pines que en los anteriores, por lo que los periféricos anteriores del ZX80 y ZX81 no son compatibles directamente.



En la imagen presento las principales partes del aparato, las placas tuvieron variaciones a lo largo del tiempo, por lo que a lo mejor tu máquina no es exactamente igual, aunque los componentes principales si estarán en el mismo lugar:

  1. Procesador principal Z80A a 3'5Mhz. En algunas unidades (como en la foto) se usó un NEC D780C, fabricado bajo licencia por NEC y mas económicos que los de Zilog.
  2. La ROM de 16Kb
  3. La ULA, dependiendo de la versión de la placa hay ligeras variaciones, las últimas no fueron fabricadas por Ferranti. Es una versión muy mejorada de la usada en el ZX81.
  4. Memoria principal de 16Kb, todos los modelos la montaban ya que en esa zona estaba la memoria de vídeo. Son 8 chips de memoria 4116 (16Kb x 1bit), hace falta leer los 8 simultáneamente para formar un byte.
  5. Memoria extendida de 32Kb, solo los modelos de 48Kb la llevan. Ocho chips 4132 (32Kb x 1bit), hace falta leer los 8 simultáneamente para formar un byte.
  6. Chips auxilaires para el manejo de la memoria. En los modelos de 16Kb no se usan todos los chips, y en las últimas unidades se reemplazaron por un solo chip, similar a la ULA.
  7. Generador PAL. A partir de la información de la ULA general la señal PAL, que es enviada al modulador que está justo encima para sacarlo por la televisión.
  8. Conectores del teclado, uno de 5 hilos y otro de 8, de esta forma el teclado se divide en 8 secciones de 5 teclas, por lo que si falla el teclado se puede saber cual es la línea que falla.
  9. Alimentación, en esa zona se reciben los +9 voltios externos, se regulan a +5 voltios, y se convierten luego en -5 y +12 voltios, necesarios para el manejo de la memoria.
  10. Altavoz interno, el sonido, generado por el Z80 y controlado por la ULA se enviaba al altavoz y al conector de salida trasero.

No hay comentarios:

Publicar un comentario