martes, 20 de septiembre de 2016

Hints & Tips for Videogame Pioneers: The birth of a new era, a new medium, a new industry

En esta entrada ya hacia una breve mención a este libro publicado por Andrew Hewson en 2016. Tras la lectura, tengo que decir que es un buen libro que hará las delicias de los que vivieron (vivimos) aquella época.



Comienza con los años previos a la creación de Hewson Consultants, compatibilizando su incipiente interés por la programación de micro-ordenadores y su trabajo principal en aquel entonces, hasta la desaparición de la última compañía que mantenía el legado de Hewson. Desde sus comienzos con un ZX80, para cuya adquisición tuvo que pedir un crédito de 500 GBP, hasta el cierre de su compañía 21st Century Entertaiment especializada en juegos Pinball, ya en la segunda mitad de los años 90.

Andrew Hewson reconoce que fue arrastrado, como el resto de la industria del videojuego en el Reino Unido, por un cambio en la forma de gestionar empresas de software. Una época en la que pequeñas empresas fundadas en garajes o en dormitorios, no podían competir con una industria boyante en la que los equipos de trabajo eran cada vez más grandes y complejos. Situación que está muy bien descrita en la película-documental From Bedrooms to Billions (Anthony y Nicola Caufield, 2014), en la que el propio Hewson aparece.

Volviendo otra vez al libro, lo que más me gusta son los primeros capítulos referentes al nacimiento de un hobby, posterior desarrollo de esa pasión y la época del Spectrum. Cabe destacar la evolución de la compañía, centrada al principio en publicaciones escritas, aunque no publicó muchos libros, y su movimiento hacia la publicación de software producido por otros. Todos los programadores que publicaron con Hewson son entrevistados en el libro.

Y para terminar, una frase extraída del libro cuando estaba a punto de publicar "Hits & Tips for the ZX80" y que muestra el espíritu de esos pioneros a los que se refiere el libro: "I never attempted to seek out a publisher for the book because the idea of placing a person or organisation between me and what I wanted to do, was too awful to contemplate. Only my wife knew anything about what I was up to. I found myself a printer in Wallingford who had a new-fangled photocopying machine"

domingo, 18 de septiembre de 2016

ZX81 en Versión Kit se vende en eBay

Después de más de 40 pujas, hoy se ha vendido en eBay un kit sin montar del ZX81. Rara vez sale a la venta un kit de estos, de hecho es difícil entender como puede ver alguno aún. 

Estos kits fueron vendidos por Sinclair nada más sacar a la venta el ZX81 en marzo de 1981, y en su mayoría se vendieron por correo y por lo tanto la caja es la de cartón marrón, como es el caso de esta venta. Son placas issue 1.

Este kit incluía todos los componentes y el manual "Assembly Instructions", que aunque se puede encontrar escaneado, no es fácil encontrarlo original. Sin calificar cuánto de original son los componentes que incluye, hay que decir que el estado de conservación es excelente, incluido los manuales y la caja.

El precio de cierre de la venta ha sido de 185 GBP (217€), y 18,2 GBP (21,3€) de gastos de envío.

miércoles, 7 de septiembre de 2016

El ZX81 en RetroGamer (nº 158)

En el número 158 de la revista RetroGamer (edición inglesa) aparece un artículo de Marlyn Carroll sobre el ZX81 con motivo del 35 aniversario del lanzamiento de este micro.

Un repaso por la historia de este ordenador a partir de la evolución del ZX80, sus especificaciones técnicas, su software y con aportes de figuras importantes como John Grant, Steve Vickers, Charles Cecil y Rick Dickinson. Incluye una entrevista con Bob Smith, programador actual del Spectrum y ZX81.

Muchos de los que luego fueron programadores reconocidos con el ZX Spectrum comenzaron su andadura con el ZX81. Hay un consenso en reconocer la importancia de este ordenador en el desarrollo de la industria del software y de acercar la informática a los domicilios, algo en lo que, sin duda, mucho tiene que ver Sir Clive Sinclair.

Rick Dickinson reconoce que es su favorito e incluso llega a afirmar que Clive Sinclair coloca a este micro también como su favorito por encima de otros ordenadores de su propia marca.

domingo, 4 de septiembre de 2016

Resolución de Pantalla en el ZX Spectrum (y III)

Video Compuesto
Una señal de video compuesto combina las 3 componentes del video; brillo, color y sincronización en una sola, de manera de que sea más fácil su transmisión.

Una señal de video compuesto en blanco y negro consiste solamente en la combinación del brillo y la sincronización, en una señal denominada luminancia y representada mediante el símbolo Y. La información del color se añade a la luminancia para formar la señal de video compuesto. Hay dos señales diferentes referidas al color, señales U y Y, denominadas conjuntamente como crominancia.

En el estándar PAL, la señal de video compuesto está basada en la luminancia en blanco y negro Y, y en la crominancia U y V, en lo que se denomina como señal YUV. El valor de Y (luminancia) se calcula en una fórmula que asigna pesos a los colores principales RGB:

Y = 0,299R + 0,587G + 0,114B

Y los valores de U y V (crominancia) se definen de la siguiente manera:

U = 0,493 (B – Y)
V = 0,877 (R – Y)

El ZX Spectrum utiliza el chip LM1889 para modular la señal de color -crominancia- (U y V) a una sub-portadora de color compatible con PAL usando el cristal de 4,43336 MHz. Después, esta señal se combina con la luminancia (Y) en los transistores TR1 y TR2 para obtener la señal de video compuesto que se envía al modulador de UHF. Es decir, el propio ZX Spectrum ya genera una señal de video compuesto.


Posteriormente, esta señal es de nuevo modulada en el circuito UM1223 para generar la señal portadora RF compatible con la señal UHF de los TV de la época.



Modo FLASH

Cuando el bit correspondiente al FLASH está activado, la ULA intercambia los colores de la fuente y el fondo a razón de 3 veces por cada 2 segundos, o lo que es lo mismo a una frecuencia de 1,56 Hz.


Modo BRIGHT

El modo BRIGHT de cada uno de los colores lo genera la ULA a través de su circuito interno de generación de la señal de luminancia (Y), mediante la variación de las intensidades de corriente, en miliamperios, de los 3 colores fundamentales RGB (Rojo – Verde – Azul). Se aplica a todos los colores excepto al negro que no tiene brillo.


Borde de la Pantalla (BORDER)

El display de la pantalla se genera a través de dos fuentes de información; la primera, es la memoria de video alojada en la RAM, y la segunda, el color del borde que se especifica a través de un registro.

El registro del color del borde no está implementado en una ubicación de la RAM, sino a través de 3 bits en el puerto I/O 254 (FEh). La utilización de 3 bits permite la generación de 8 combinaciones de colores RGB.


El puerto FEh es gestionado por la ULA y constituye un puerto de entrada y salida utilizado por varios dispositivos: teclado, altavoz y las conexiones MIC/EAR.


viernes, 2 de septiembre de 2016

Resolución de Pantalla en el ZX Spectrum (II)

Sincronismo de Línea u Horizontal

La señal PAL estándar está compuesta por un período de sincronismo de línea u horizontal (12us) y un período activo o de información de la señal (52us), sumando en total 64us. El período de sincronismo horizontal, también denominado “blanking”, consta de un pórtico anterior o “front porch” (1,5us), una señal de sincronismo horizontal HSync (4,7us) y un pórtico posterior o “back porch” (5,6us); sumando en total 12us.

En el ZX Spectrum las señales de “front porch” (2,29us) y “blanking” (13,7us) son ligeramente más largas que el estándar. Incluso, la señal de “front porch” presenta ligeras diferencias entre las diferentes versiones de la ULA. Esta diferencia con el estándar tiene el efecto de desplazar la pantalla ligeramente hacia la izquierda.

PAL Timing Estándar = Blanking (12us) + Señal Activa (52us) = Timing Horizontal (64us)
PAL Timing ZX Spectrum = Blanking (13,7us) + Señal Activa (50,3us) = Timing Horizontal (64us)




La señal de pórtico anterior o “front porch” no es utilizada por los TVs por lo que podría omitirse, pero su presencia y diferente timing en las diferentes versiones de ULA, provoca un sincronismo horizontal más tardío con el efecto de desplazamiento explicado anteriormente. La señal de pórtico posterior o “back porch” incluye dos componentes; la señal de “burst” que proporciona información para modular el color y el valor de referencia para el negro. Este valor de referencia se establece en términos de voltaje.

Igualmente, existe el período de sincronismo de campo o vertical (VSync), del cual no se dan detalles en este texto, pero el no reconocimiento del pulso VSync generado por el ZX Spectrum es la causa por la que algunos modelos de TV digitales y LCD no muestren imagen.

Atributos

Recordando de una sección anterior, la resolución del ZX Spectrum es de 256 x 196 píxeles. Si cada píxel ocupa 1 bit, la resolución del ZX Spectrum es de 256 x 192 = 49152 bits o 6144 bytes (1 byte = 8 bits). Para presentar los 8 colores del Spectrum se hubiera necesitado 3 bits por pixel, por lo que las necesidades de memoria hubieran sido 256 x 192 x 3 / 8 = 18432 bytes, es decir 18 kB de los 48 kB disponibles, y no asumible por el modelo de 16 kB.

Para resolver este problema, los ingenieros de Sinclair plantearon la matriz de colores siguiendo la matriz de 32 x 24 caracteres de texto que vamos a denominar “celdas de color”. Este problema no se había planteado anteriormente ya que su predecesor ZX81 no tiene color. Cada una de estas celdas ocupa 1 byte, por lo que la memoria de atributos ocuparía 32 x 24 = 768 bytes. Uno de los efectos más conocidos de este diseño es el “colour clash” o choque de atributos, debido a que los colores se presentan a nivel de carácter y no de pixel.

El ZX Spectrum usa una paleta de color RGB (Red – Green – Blue) de 3 bits, por lo que cada celda de color presenta los atributos de color del texto (3 bits) y el fondo (3 bits). Adicionalmente, tiene dos modos que se presentan o activos o pasivos; estos son el brillo (1 bit) y el flash (1 bit). En total se obtienen los 8 bits o 1 byte que ocupa cada celda de color, con el significado que se muestra en la siguiente figura:



Memoria de Pantalla

En resumen, el espacio necesario para almacenar la pantalla completa en el ZX Spectrum será: 6144 bytes (pixeles) + 768 bytes (atributos) = 6912 bytes
  • Direcciones del mapa de la pantalla: 16384 (4000h) a 22527 (57FFh)
  • Direcciones del mapa de atributos: 22528 (5800h) a 23295 (5AFFh)