miércoles, 16 de enero de 2013

Un recorrido por la historia del Spectrum: ZX Interface 1


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


Tres fueron los periféricos lanzados por Sinclair para el  ZX Spectrum, cuyo manejo estaba ya configurado en la ROM del aparato inicialmente, adaptó la ZX Printer del ZX81 y lanzó los denominados "ZX Interface 1" junto a la unidad de microdrive, y el "ZX Interface 2". A estos se añadieron posteriormente multitud de periféricos, principal mente en el Reino Unido y en España, pero se conocen en más países como en Italia. Los periféricos no oficiales son tantos que es difícil hacer aunque solo sea una lista, lo que demuestra que fue la máquina más popular de la historia, solo para los PC se han desarrollado más periféricos que para el Spectrum.


ZX Interface 1


Lanzado en 1983, estaba concebido para potenciar su presencia en los colegios, inicialmente servía para montar una red y disponer de un puerto serie, pero fue ampliado para incorporar el manejo de las unidades de almacenamiento de Sinclair, los microdriver, lo que se convirtió en su principal uso.

El ZX Interface 1 (fuente: nvg.ntnu.no)


Se enchufaba en el conector del bus del Spectrum, dejando una salida de expansión del bus, por lo que se podían instalar otros periféricos junto a él. Quedaba ubicado debajo del ordenador, lo que hacía al ordenador un poco más ergonómico, sujetándose con dos tornillos para evitar que se moviera (esos mismos agujeros se mantuvieron por compatibilidad en los Spectrum Plus).

La unidad debajo del Spectrum (fuente: Planet Sinclair)
En el dibujo vemos en 1 el conector de expansión, en 2 los conectores de red, en 3 el puerto serie y en 4 la conexión de los microdriver.

Aunque la ROM del Spectrum disponía de funciones para su manejo, no estaba todas implementadas, por lo que aunque en el teclado estaban las llamadas a esas funciones, se producía un error si se intentaba su uso. Al enchufar el interface se inhibía la ROM del Spectrum y se activaba la incluida en el Interface 1, lo que hacía que los comandos estuvieran ya operativos. El mecanismo de habilitación fue muy simple, si la rutina de control de los comandos daba un error, y se interceptaba en ese momento para buscar los nuevos comandos. Esto fue usado por otros fabricantes para incluir sus propios comandos en el Basic del Spectrum.

Se lanzaron dos revisiones de la ROM para corregir errores y aumentar la velocidad de los microdrivers, pero ocasionaban incompatibilidad con otros programas que manejaran la interface 1, al reubicarse las llamadas a la ROM en otro lugar de la memoria (otro ejemplo más del poco cuidado con el control de calidad de Sinclair con sus máquinas).

La ZX NET permitía conectar hasta 64 máquinas a la red, la red se montaba en anillo, por lo que cada interface disponía de dos puertos de red y un cable de 3 metros. Usaba un protocolo propio de Sinclair, basado en el CMSA. Se asignaba un número a cada estación, y los datos se podían enviar o recibir  desde cualquier estación de la red a cualquier otra, o en modo de difusión de una estación a todas usando el número de estación 0 como origen. Cada paquete era de 255 bytes como máximo, al que se une una cabecera de paquete, ambos con un check-sum. Funcionaba a una velocidad de hasta a 100 Kbps usando 10 bits por byte en formato 8N1.

Los comandos necesarios para manejar la red eran FORMAT, LOAD y SAVE, en donde nro indica el número de la estación, y entre corchetes indico el rango permitido:
  • FORMAT "n";nro[1..64]         establecía el número de la estación propia
  • SAVE *"n";nro[0..64]             enviaba el programa en memoria a la estación indicada
  • LOAD *"n";nro[0..64]            recibía el programa desde la estación indicada

Posteriormente se trasladó la ZX NET a los QL para formar la QLAN, pero por cambios en las velocidades entre ambas maquinas no era 100% compatibles entre sí, por lo que conectar un Spectrum y un QL en la misma red da problemas.

El interface serie RS-232 estándar soportaba hasta 19200bps, y usaba un conectar estándar DB-9, lo que no era habitual en Sinclair. Estaba pensado para usar una impresora serie o un modem, pero la implementación hardware estaba poco optimizada, trabajaba cortando la línea en lugar de cambiando la señal, por lo que daba problemas en la recepción, aunque no en el envío.

El interface podía manejar entre 1 y 8 unidades de microdriver, que eran pequeñas cintas de casete de 5 metros de longitud por 1'9 mm de ancho, pero se guardaba en su caja protectora formando un bucle sin fin, uniendo los dos extremos de la cinta entre sí. La cinta se desplazaba a 76 cm/s, tardando 8 segundos en recorrer la cinta completa.

Unidad y cinta (no a la misma escala) (fuente: Wikipedia)

Los cartuchos podían almacenar hasta 85 Kb en un Spectrum y algo menos en un QL, aunque la posibilidad de encontrar sectores defectuosos podía disminuirlo. La  velocidad de transferencia era de 15 KB/s. Como la unidad tenía que hacer correr la cinta hasta encontrar el comienzo del dato a leer, y la velocidad no era demasiado alta, las unidades eran bastante lentas en tiempo de acceso comparado con una disquetera, pero mucho más rápido que un casete convencional.

El principal problema provenía del continuo roce entre la cinta y el cabezal, lo que provocaba el aumento de las zonas defectuosas disminuyendo la capacidad, y podía hasta partir la cinta, inutilizándola.

Para su manejo se usaban los comandos FORMAT, CAT, LOAD y SAVE con esta sintaxis, en donde nro es el número de la unidad, y entre corchetes indico el rango permitido (siempre entre 1 y 8):
  • Formatear la cinta......................: FORMAT "m";nro[1..8];"nombre"
  • Ver el contenido.........................: CAT nro[1..8]
  • Leer un programa......................: LOAD *"m";nro[1..8];"nombre"
  • Guardar el programa en memoria: SAVE *"m";nro[1..8];"nombre"

No hay comentarios:

Publicar un comentario