Del emulador a la máquina auténtica

Rafael Molina
Mayo 2003

Introducción

Siempre quise saber qué era un microdrive y para qué se usaba una máquina que tenía la etiqueta de 'profesional' en aquella época.

Los que saltamos desde el Spectrum de 48K al PC directamente, nos quedaron un montón de máquinas por conocer.

Ya hace un par de años, cuando me metí en el mundo de la emulación, me di cuenta que había una agujero en mis conocimientos. ¿Cómo era posible que supiera cómo funcionaban por dentro los discos en el mundo PC y no supiera nada de los accesorios de estas otras máquinas que fueron las que me llevaron al mundo digital?

Sigo intentando recuperar el tiempo perdido...

Pasando ficheros del PC al QL

Desgraciadamente, el QL que conseguí en e-bay no tenía de nada: ni microdrives ni discos. Conseguí unos microdrives vacíos y utilicé el comando format.

Escribí mi primer programa, un pequeño bucle y a grabarlo con un SAVE.

Lo que más me llamó la atención fue que el QL se parece a una máquina Unix en el estilo de manejar los dispositivos. Sólo hay que ponerle el nombre del dispositivo delante del nombre que le quieres dar a tú programa; un microdrive (mdv1_, mdv2_), un floppy (flp1_, flp2_) ...

QL venía en su tiempo con un paquete ofimático, que está en Internet. Tenía que verlo funcionar en la máquina real.

El QL trae dos puertos serie del tipo conector telefónico inglés (BT631), el mismo que tiene una pistola óptica de Sinclair. El ser2_ es el que tiene comportamiento normal DTE. Me hice un cable cruzado. Es fácil hacértelo sin soldar cortando con un cuchillo un adaptador modular RJ-45 a DB9 (le quitas la parte fija del RJ-45 y metes el cablecito cortado que trae con el que viene del BT631.

Como he dicho antes se parece al UNIX; el comando para copiar se puede usar con dispositivos.

p.e. del QL al PC: COPY_N mdv1_fich1 to ser2

Al revés no es tan fácil, pero se puede hacer abriendo los canales asociados y utilizando INKEY$ para leer un carácter del puerto serie y PRINT para ponerlo en el otro.

Con el Telix me encontré un problema; en modo ASCII da la transmisión por terminada si el fichero binario a transmitir tiene un ASCII 27.

Jugueteando un poco y haciendo eco a pantalla de lo que recibía por el puerto serie del QL, se pueden aprender muchas cosas.

La primera es que hay que bajar la transmisión del PC al QL a 4800 para que vaya razonablemente, mientras que en sentido contrario puedes hasta 19200.

Además, del PC al QL se puede ver que manda a veces relleno con una sucesión de ceros.

Después de ver que no era muy fiable y como ya lo había conseguido con mi Plus3, ¿porqué no usar esa disquetera de 3,5" en el QL?

El QL que yo compré venía con una tarjeta MEDIC DISK UPGRADE v1.18 que sobresale por el lateral izquierdo. Cuando arranca el QL, te sale en pantalla la tarjeta detectada. Esa tarjeta viene con 2 salidas de bus, y la segunda es la que tiene la conexión para un bus de floppy.

Emocionado, probé un cable normal de disquetera y el que tenía del Plus3, y los dos sentidos. Al final descubrí que el cable era el mismo que el del Plus3 y que la unidad era el flp2_ y que tenía que tener un disco dentro.

Para entonces, ya había aprendido a ponerle formato QL a un disco de 3,5" en el PC con la utilidad QLTOOLS a: -fdd.

Ahora, la parte en la que me volví loco: Cuando grababa en el QL y lo quería leer en el PC con el QLTOOLS a: -d a veces se volvía loco y salía basura... y en sentido contrario aveces también. Pensé que era algún hilo que tenía que estar abierto e hice algunas pruebas...

Leí que el QL maneja los clusters de 3 en 3 sectores. Yo estaba utilizando un disco de 3'5" tapado y formateado a 720K. Mi disquetera en el PC es de 1,44 y la del QL es externa de 720K. Configuré la BIOS a 720K en el PC y desaparecieron las corrupciones. Todo estable. Ya creía que lo tenía todo, ingenuo de mí.

A por el QUILL, me dije. Usando la utilidad que trae el QLAY llamado QLAYT se pueden extraer los ficheros de un fichero imagen de microdrive .mdv

Te crea también un fichero qlay.dir que necesita QLAY para leer el contenido del directorio. Se puede leer lo que tiene con QLAYT -l.

En mi caso aparecía un número llamado datasize que viene a ser como el tamaño que tiene asignado para los datos, sólo en el ejecutable QUILL, el resto normales.

Ahora, a copiarlos al disco. Los fichero se copian (QLTOOLS a: -w /path/* ), pero no restauraba ese valor al fichero QUILL y al ejecutarlo con EXEC nos dice ' bad parameter'.

Se me ocurrió hacer las pruebas con el emulador, cambiando el fichero qlay.dir (que se puede generar con el QLAYT y me aparecía sin el datasize). No me funcionaba.

Al final descubría que después de copiar al disco, hay que volver a ejecutar el QLTOOLS a: -x datasize para que le ponga el número al fichero. Lo ejecuté en la máquina real y ... funcionaba!.


Sinclair QL Recursos en Castellano Alojado en / Hosted at:
Sinclair QL Recursos en Castellano
Sinclair QL Spanish Resources