# Sinclair ZX Spectrum

El Sinclair ZX Spectrum es un ordenador de 8 bits basado en el microprocesador Zilog Z80A, fabricado por la compañía británica Sinclair Research y lanzado al mercado el 23 de abril de 1982.
En Europa, el Sinclair ZX Spectrum fue uno de los microordenadores domésticos más populares de los años 1980. Aún hoy perduran miles de aficionados del Spectrum que siguen jugando a sus juegos (con emuladores que cargan sus ficheros volcados de cintas). Además hay un mercado de coleccionismo tanto de cintas de juegos originales como de los propios Spectrum.

## Sinclair ZX Spectrum
### Características

Las características del ZX Spectrum original incluían:
* Microprocesador Zilog Z80A a 3,5 MHz (bus de datos de 8 bits y bus de direcciones de 16 bits). Acompañando al procesador principal estaba la ULA (Uncommitted Logic Array), encargada de realizar funciones auxiliares.
* Dos configuraciones de RAM con 16 kB o 48 kB. El límite del direccionamiento de 16 bits es de 64 kB.
* Estos 16 kB de ROM incluían un intérprete del lenguaje BASIC SINCLAIR desarrollado por la compañía Nine Tiles Ltd. para Sinclair y que era una evolución del que ya desarrollaran para dos anteriores máquinas comerciales de la marca, el ZX80 y el ZX81, y de las que el Spectrum es continuador. En la misma zona de memoria también estaba el juego de caracteres ASCII que utilizaba la máquina por defecto (aunque se podía apuntar a otras zonas de memoria y definir caracteres alternativos) y una zona reservada justo antes de la memoria de pantalla, ideal para EPROMs que se podían conectar en el slot trasero.
* Teclado de caucho integrado en el ordenador en el modelo de 16 kB y en la primera versión de 48 kB. El teclado de caucho original oprimía dos membranas con pistas conductoras que servían para detectar la presión. La membrana del ZX Spectrum Plus tenía 3, esta tercera capa amplia las teclas utilizando la presión de 2 contactos al mismo tiempo, para generar por ejemplo las comillas, estas en el Spectrum 48K se realiza pulsando SYMBOL SHIFT y P (en el Plus también se podía realizar de la misma forma). Dicha membrana solía ser la parte más frágil del ordenador y era habitual que a lo largo de los años fuera necesario cambiarla hasta varias veces.
* Sistema de almacenamiento en cinta casete de audio común. Se accedía a los datos a una velocidad de 1500 bit/s de media. Un juego de 48 kB tardaba como media algo menos de 4 minutos en cargar. Había juegos que usaban su propio sistema de carga, denominado "turbo", a mayor velocidad que la estándar del sistema operativo en ROM, aunque ligeramente más propensos a producir errores de carga. Como periférico adicional, a partir del año 1983 Sinclair puso a la venta el ZX Interface 1 al que se le podían conectar hasta ocho unidades de cinta rápida llamadas microdrive de uso frecuente entre desarrolladores de software, que accedía a los datos a una velocidad de 120.000 bit/s (15 kB/s).
Posteriormente se desarrolló una nueva carcasa, que consistía en un teclado mejorado con teclas duras y 4 capas de membrana, para permitir la pulsación de dos teclas de función en una sola, y la carcasa más profesional, con bordes cuadrados en lugar de redondeados, que llevó el nombre de ZX Spectrum + (ZX Spectrum Plus). Este desarrollo también se vendió como actualización y solía incluirse junto con una ampliación de memoria para los Spectrum de 16 kB, que añadía un botón de reset y una mejor ventilación.
En definitiva, el diseño del ordenador estaba increíblemente optimizado y exprimía sus aparentemente pequeñas posibilidades al máximo. Todas estas características convertían al ZX Spectrum en un equipo muy asequible y versátil, consiguiendo acercar la microinformática a un elevado número de personas.

### Sistema gráfico

Una de las peculiaridades del ZX Spectrum es su sistema de vídeo, al ser capaz de mostrar una matriz de 256x192 pixeles, pero la resolución de color era únicamente de 32x24, por lo que grupos de 8x8 píxeles compartían información de color.
Dicha información de color o atributos consistían en: Color de fondo o paper, color de tinta o ink, atributo de brillo, y un atributo flash.
El color de fondo se aplica a los pixels 0, y el color de tinta que se aplica a los pixels 1, pudiendo seleccionarse cada uno entre siete colores.
El atributo brillo aumentaba el brillo de los colores (excepto el negro, que no variaba), por lo que en pantalla podían mostrarse en total hasta 15 colores (siete por dos niveles de brillo, más el negro)
El atributo flash hacía que los dos atributos de color fondo/tinta se intercambiasen varias veces por segundo, dando un efecto de parpadeo.
Así, tenemos 256x192 = 49152 bits = 6144 bytes destinados al bitmap (2048 bytes para cada tercio de pantalla) y 32x24 = 768 bytes dedicados al color, brillo, y flash, totalizando un total de 6912 bytes.
El problema de tener distintas resoluciones para el bitmap y el color obligaba a los programadores de juegos, especialmente durante las últimas etapas de vigencia del ordenador, a adoptar soluciones ingeniosas para minimizar las colisiones entre colores, fenómeno conocido como "attribute clash" en el mundo anglosajón. Esto era debido a que el ZX-Spectrum no fue concebido en origen como una máquina de videojuegos. Si bien el "attribute clash" permitía reducir el tamaño necesario para vídeo a 6,75 kB, esto hacía que algunos de los gráficos mostrados tuvieran una apariencia de poca calidad si el diseño no era minucioso.

### Historia y evolución

El hardware fue diseñado por Richard Altwasser y la carcasa y apariencia es un diseño de Rick Dickinson. El software (firmware de la ROM), así como el profuso manual de instrucciones fue obra de Steve Vickers. Todos ellos habían participado en el diseño de los modelos anteriores de Sinclair, el ZX80 y el ZX81.
En abril de 1982 aparecieron dos modelos: uno con 16 Kb a un precio de 125 libras (ampliable a 48 Kb por 60 libras) y otro con 48 Kb de fábrica por 175 libras. Con la salida de imagen en color y con un sonido muy aceptable, destacaba su pequeño tamaño y su teclado con teclas de goma dura que mantenía la tradicional forma de los modelos anteriores de presentar palabras completas con pulsaciones.
Con un precio tan ajustado, sobre todo comparado con los modelos de la competencia en el momento, los pedidos se dispararon y Sinclair y la empresa ensambladora de la máquina, Timex, no daban abasto. En julio de 1982 ya había 30.000 pedidos pendientes de atender y a finales de agosto (debido a las vacaciones de verano de la plantilla que fueron escrupulosamente respetadas) ya eran 40.000 pedidos retrasados con la consiguiente molestia de muchos compradores. El propio Clive Sinclair hizo una disculpa pública en los medios de comunicación y se comprometió a tener los pedidos entregados en septiembre de ese mismo año, cosa que cumplió.
En marzo de 1983 ya se habían vendido más de 200.000 unidades del ZX-Spectrum, y el mercado de los videojuegos domésticos se había convertido en un rentable fenómeno a nivel mundial. Sinclair Research Ltd. se convirtió en apenas unos meses en una de las compañías del sector más sólidas y con más valor del momento. El precio de sus máquinas descendió hasta 99,95 libras para el ZX-Spectrum de 16 Kb, 129,95 libras para el ZX-Spectrum 48 Kb y 39,95 libras para el anterior modelo, el ZX81.
En 1981, Altwasser y Vickers se desvincularon de Sinclair para formar su propia compañía, a la cual llamarían Jupiter Cantab (una abreviatura de Cantabridgian). Allí lanzaron al mercado una máquina de idéntica arquitectura a la empleada en la compañía de la que salían, el Jupiter Ace, que sin embargo no tuvo prácticamente repercusión (apenas se comercializaron unas 5000 unidades).

### Periféricos

Con el paso de los años fueron apareciendo diversos periféricos, como por ejemplo dispositivos de almacenamiento propios (ZX Microdrive), interfaces de disco (OPUS Discovery, DISCiPLE, Beta Disk), lápices ópticos, ratones (AMX Mouse, Kempston Mouse, Star Mouse), impresoras (la ZX Printer apareció durante 1983 a un precio inicial de 39,95 libras), o mandos de juego (joysticks) que podían ser conectados directamente, por medio de la ZX Interface 2 o a través de otras interfaces que salieron posteriormente al mercado, como las de Kempston Micro Electronics.

### Software

El software del ZX Spectrum se compone actualmente de más de 20 000 títulos. A pesar de que el hardware del ZX Spectrum imponía unos límites y restricciones notables, su software era muy diverso, incluyendo implementaciones de muchos lenguajes de programación, entre ellos C, Pascal, Prolog (ej: micro-PROLOG), Modula-2, LISP, o Forth, diversos ensambladores/desensambladores de Z80 (ej: OCP Editor/Assembler, HiSoft Devpac, ZEUS Assembler, Artic Assembler), compiladores de Sinclair BASIC (ej: MCoder, COLT, HiSoft BASIC), extensiones del Sinclair BASIC (ej: Beta BASIC, Mega Basic), programas de bases de datos (ej: VU-File), procesadores de texto (ej: Tasword II), hojas de cálculo (ej: VU-Calc), programas de diseño gráfico (ej: OCP Art Studio, The Artist, Paintbox, Melbourne Draw), y de modelado 3D (VU-3D), aparte de, principalmente, videojuegos.

## Otros modelos
### Sinclair ZX Spectrum +128

El Spectrum +128 fue fabricado en España por Investrónica, la filial de El Corte Inglés de distribución y fabricación de ordenadores, y distribuidora oficial de Sinclair Research. Investrónica también había distribuido bajo marca propia (InvesDisk) una interfaz de disco junto con el sistema TOS para el ZX Spectrum, desarrollado y comercializado por Timex Computer, la filial de Timex en Portugal. El desarrollo conjunto se realiza en la sede española y es por ello que en 1985 aparece primero en España.
El modelo de 128K podía funcionar en modo 48 KB o 128 KB. La mayoría de los programas comerciales se ejecutaban en el modo 48K, pero en los últimos tiempos aparecieron programas comerciales que eran compatibles con las dos versiones. Incorporaba un chip de sonido AY-3-8912 (el mismo que Timex incluiría en sus modelos de Spectrum unos años antes), además de un pequeño teclado numérico anexo pero independiente, y un editor de textos integrado en el sistema operativo firmware. Sin embargo, en la versión inglesa fueron eliminados dicho teclado numérico y el editor de texto, introduciendo en el manejo del sistema operativo un conjunto de menús que mantendrían posteriormente los modelos de Amstrad. Otra característica exclusiva para el mercado español fue el soporte de caracteres españoles, pudiendo mostrar tanto la letra eñe como la apertura de interrogación y exclamación. El principal motivo para este cambio fue una ley que obligaba a que todos los ordenadores que se comercializasen en España pudiesen mostrar dichos caracteres.
Internamente, los 128 KB se dividían en ocho páginas de 16 KB cada una, numeradas de 0 a 7. Los 64 KB de espacio de direccionamiento del procesador Z80 también se dividían en cuatro bloques de 16 KB cada uno. Finalmente, los 32 KB de ROM se dividían en dos páginas de 16 KB cada una, numeradas de 0 a 1. En el primer bloque del espacio de direcciones (direcciones 0 a 16383) podía seleccionarse cualquiera de las dos páginas de la ROM; en el segundo bloque (direcciones 16384 a 32767) estaba la página 5 de RAM; en el tercer bloque (direcciones 32768 a 49151) la página 2 de RAM; por último, en el cuarto bloque (direcciones 49152 a 65535) podía estar cualquiera de las ocho páginas. Cuando se ejecutaba un programa en BASIC y en el modo 48K, la página activa era la 0, y la 7 se utilizaba como memoria temporal para el editor de textos y de BASIC. La única manera de acceder a la memoria RAM por encima de los 64 KB era mediante un "Disco RAM": un disco simulado sobre la memoria RAM extra que permitía grabar y cargar datos instantáneamente.
A mayores, las versiones +2A/B y +3 incorporaban modos extra que permitían mapear páginas de RAM en los 64 kB direccionables, pudiendo así sustituir la memoria ROM por RAM y disponer de la totalidad del espacio de direcciones. Cuatro modos estaban disponibles: páginas 0, 1, 2 y 3, páginas 4, 5, 6 y 7, páginas 4, 5, 6 y 3, y páginas 4, 7, 6 y 3. Además, estos modelos tenían 64 KB de ROM para poder incluir el sistema de disco (+3DOS).
Pese a los cambios, mantenía bastante compatibilidad con los hardware periféricos desarrollados para los modelos de 48 KB.
En los juegos, especialmente cuando se ejecutaban en el modo 128, se podía disponer de las mejoras del modelo, como la carga de varias fases en RAM. En el modo de 48 kB únicamente, el mapeado de memoria estaba inhabilitado, por lo que el chip AY-3-8912 se podía seguir utilizando, no así la memoria adicional.
El sistema de gráficos incluía un sistema de doble buffer que permitía seleccionar la memoria de representación entre la página 5 y la 7, lo que posibilitaba cambiar instantáneamente de pantalla permitiendo algunos trucos gráficos, como poder dibujar en la pantalla shadow y mostrarla justo al terminar de dibujarse, sin que se apreciara como se dibujaba progresivamente. Esta característica se podía utilizar para mostrar gráficos con mayor riqueza visual (aumentando la resolución vertical o emulando una mayor paleta gráfica). El empleo de esta característica requería el uso de 13,5 kB de memoria.

### Amstrad Sinclair ZX Spectrum

En 1986, la compañía Sinclair Research vendió a Amstrad, por 5 millones de libras, la marca comercial Sinclair y su línea de productos informáticos. A partir de ese momento Amstrad procedió a sacar al mercado los siguientes modelos:
* ZX Spectrum 128 +2 (1986), que incorporaba en la misma carcasa del ordenador la unidad de casete. Era de color gris oscuro y las ROM eran las mismas que las del modelo Sinclair ZX Spectrum 128, con algunos retoques. Fue más compatible con el software previo que los modelos posteriores.
* ZX Spectrum 128 +3 (1987) con unidad de disco de 3" incorporada en la misma carcasa del ordenador. Este modelo recuperaba el tradicional color negro. Incorporaba en 64Kb de ROM un sistema operativo de disco, el +3DOS. Incluía también una mejora del Sinclair BASIC, el +3BASIC. La compañía Locomotive Software desarrolló y comercializó una versión del sistema operativo CP/M para el +3.
* ZX Spectrum 128 +2A/B que incorporaban la carcasa del +2 y características del +3; aunque no llevaban la interfaz de disco, sí incluían el +3DOS y el +3BASIC.
En 1992 Amstrad decidió retirar los modelos de Spectrum del mercado, ante la popularización de las máquinas de 16 y 32 bits.

### Serie Timex Sinclair

A mediados de 1982, Timex obtuvo la licencia para vender todos los productos Sinclair en Estados Unidos cediéndoles el derecho de usar su nombre por una comisión del 5% sobre las ventas y comenzando a vender productos bajo la marca Timex Sinclair que finalmente llegarían a comercializarse a través de varias filiales también en Argentina, Polonia y Portugal. La filial estadounidense lanzó el Timex Sinclair 1000 y el Timex Sinclair 1500 (ambos basados en el Sinclair ZX81) y el Timex Sinclair 2068 (basado en el ZX Spectrum). Por su parte la filial portuguesa lanzó el Timex Computer 2048 (basado también en el ZX Spectrum) y el Timex Computer 2068 (basado en el Timex Sinclair 2068). A partir de esta última máquina, y producto de un acuerdo entre Polish Unimor y Timex Computer fue desarrollado solo para el mercado polaco también el Unipolbrit Komputer 2086.
A modo de ejemplo de las diferencias entre los modelos Sinclair y Timex, el TS2068 fue lanzado a fines de 1983 (antes del cierre de la filial estadounidense, a mediados de 1984), está dotada de un puerto para poner cartuchos con software, dos entradas para joysticks, un chip de sonido AY-3-8912 (el mismo que posteriormente se adoptaría para los modelos de 128Kb de Sinclair y Amstrad), una extensión de ROM de 8 KB que incluía nuevos comandos para el Sinclair BASIC y dos modos de vídeo: un modo extendido en color de 32x192 (contra los 32x24 originales del Spectrum) y un modo monocromático de 512x192 píxeles. Dentro de esta línea de mejoras al modelo original de Sinclair, se llegó en 1987 a desarrollar prototipos de una versión mejorada, el Timex Computer 3256, que finalmente no llegaría a ser lanzado al mercado.
La comercialización de los ordenadores de la serie Timex Sinclair se prologaría hasta 1989, cuando Timex Computer de Portugal decidió salir del mercado informático.

### Clónicos y derivados

En Europa, Asia y también América se fabricaron diversos clones basados en la exitosa máquina de Sinclair Research, como la serie TK (el TK 90X fue su principal representante) fabricado por la empresa brasileña Microdigital o el Inves Spectrum de la española Investrónica. En Argentina lo fabricó y comercializó la empresa Czerweny bajo el nombre de CZ Spectrum.
Algunos ordenadores lanzados por otras compañías y basados también en el microprocesador Z80 (como el Enterprise 128 o Tatung Einstein) dispusieron también de periféricos que permitían ejecutar el software del Spectrum en ellos.
Adicionalmente, Amstrad trabajó en el sucesor del ZX Spectrum +3, denominado proyecto "Loki". Se trataba de un ordenador de 8 bits llevado al límite, con soporte de modos de vídeo más avanzados y memoria comparable a la de un ordenador de 16 bits. Dicho proyecto nunca llegó a finalizarse, debido al declive de los ordenadores de 8 bits. Paralelamente la compañía Miles Gordon Technology desarrolló su propia propuesta como sucesor, el SAM Coupé. Con un procesador Z80 a 6 MHz y 256 KB de RAM, incluía una disquetera de 3,5" como dispositivo de almacenamiento.
En los países occidentales, tras su retirada del mercado en 1992, la plataforma Spectrum persistirá principalmente a través de programas emuladores, aunque surgirán iniciativas menores, como interfaces para disco duro IDE, soporte para CompactFlash, sistemas operativos alternativos o expansiones gráficas. A finales de 2014 se anunció la aparición del Sinclair ZX Spectrum Vega, una videoconsola basada en el Spectrum.
En los países del este europeo se desarrollarán en la década de 1990 varios ordenadores clónicos del Spectrum, muchas veces con ampliaciones diversas (Scorpion ZS 256, Pentagon 1024-SL, Kay 1024, Sprinter, ATM Turbo, Dubna 48K, Hobbit, Didaktik M, etc).
En abril de 2017 se lanzó mediante una campaña de Kickstarter el ZX Spectrum Next. Se trata de una versión actualizada y expandida del ZX Spectrum original, desarrollada mediante tecnología FPGA. El proyecto produjo dos versiones: La primera consistía únicamente en la placa base, basada en el proyecto TBBlue, que podía integrarse en carcasas y teclados originales del ZX Spectrum. La segunda versión incluía una nueva carcasa con teclado incorporado, diseñada expresamente por Rick Dickinson. A finales de 2017 se cumplió con éxito la primera parte del proyecto, cuando las placas base se enviaron a los usuarios. Después de varios retrasos y complicaciones en la producción industrial, la entrega definitiva de la versión con teclado se produjo en febrero de 2020.