Ir al contenido principal

Arqueología Informática: Copiar juegos de cinta a Microdrive

En los 80 era un lujo tener un ZX Spectrum con el Interface 1 y una unidad de Microdrive. La verdad es que no conocí a nadie que diera el paso de ir más allá del cassette. Pero, si disponías de este dispositivo que te facilitaba la carga de programas a mucha más velocidad que la típica cinta de cassette, lo que te interesaba era sacarle el mayor provecho posible a esta rapidez de carga, grabación y organización de los ficheros.

Si tenías un juego que te tardaba de 4 a 6 minutos en cargar, y con el Microdrive en cuestión de menos de un minuto lo tenías en tu pantalla corriendo, obviamente te interesaba tener esa copia en un cartucho de Microdrive. Pero ¿cómo copiamos un programa en cinta a un cartucho de microdrive?

Existían dos formas de hacerlo, una más manual o artesanal, que es copiando el cargador y los distintos bloques del programa (pantalla y código maquina), esta opción requiere de tiempo y conocimientos porque se utilizan distintos métodos de grabación dependiendo de múltiples factores, como por ejemplo, que el programa empezara o no en las posiciones de memoria que utiliza el Microdrive, o si la carga es por turbo. Pero la más sencilla que había era utilizando el Multiface One, que te permitía grabar los programas que estaban cargados en memoria y no había que tener ningún conocimiento sobre el Spectrum. 

Si en la actualidad eres poseedor del emulador de Microdrive VDrive, hay una tercera opción mucho más rápida utilizando un programa de Windows o Linux que nos podemos descargar de Internet. Veamos estas tres opciones.

Grabación por bloques de memoria

En los números de la revista Microhobby del 50 al 55 explica los distintos métodos para grabar los programas a Microdrive. Estos métodos se apoyan en la extracción de las posiciones de memoria de la pantalla de carga y del programa, así como, el cargador en BASIC que se utiliza para indicar la posición de inicio del programa con la instrucción RANDOMIZE USR.

Para hacernos una idea de la manualidad que supone esta forma de grabar en Microdrive, voy a describir el método más sencillo que es que el programa empiece por encima de la dirección 24440, de esta forma no invade el mapa de memoria del Microdrive, y que la carga de cinta no sea turbo. 

Para ver si estamos ante un programa con estas características podemos utilizar el programa Listador publicado en el número 2 de la revista Microhobby y que podéis descargar desde http://kyenter.speccy.org/principl.php?accion=listar&revista=2.

Para mostrar el proceso, voy a tomar como ejemplo la primera parte del Navy Moves. Al ejecutar el programa listador, nos muestra estos bloques de programa: 


Nos salen dos bloques de programa, el primero army$ con la pantalla de carga, y el segundo nvycode1 que corresponde al juego. 

En la primera columna se indica la dirección de inicio del bloque del programa y la segunda la longitud del programa. 
 
Para grabar en el Microdrive, primero tenemos que cargar el programa indicando la dirección de inicio y luego grabarlo indicando la dirección y la longitud. El CLEAR es necesario hacerlo para borrar la posición de memoria anterior a donde vamos a cargar el programa. De los dos bloques de programa, empezamos primero con el screen de carga: 
 


Nota: el "1" indica la primera unidad de Microdrive, si se quiere grabar en la séptima, se indicaría un 7. 

Si queremos probar que la pantalla de carga se ha grabado correctamente, ejecutamos: 

y nos saldrá la pantalla de carga que guardamos en la unidad de microdrive. 


Ahora, nos guardamos el juego. En el listador, la dirección de inicio del programa que aparece con el nombre nvycode1 es la 25730 y la longitud del programa es de 39805. Como con la pantalla de carga, para guardar el programa en el cartucho de microdrive ejecutamos: 


Si queremos cargar el programa, tenemos que sacar el código del cargador del juego. Para esto, cargamos la cinta y antes de que empiece a mostrar la pantalla de carga del juego paramos la cinta. Pulsamos break, y nos saldrá una pantalla en negro. Para ver el código ejecutamos PAPER 7:BORDER 7 y nos saldrá la siguiente pantalla: 

En el cargador se puede ver en el RANDOMIZE USR que la dirección de inicio es la 47075. Por lo que si ejecutamos el siguiente código nos saldrá el inicio del juego:

 
Grabación con Multiface One
 

El Multiface One es un dispositivo que se conecta al Spectrum por su slot de expansión y sirve para capturar el contenido de la memoria y guardarlo en un dispositivo externo, en este caso un Microdrive.

Una cosa a tener en cuenta es que el Multiface One solo graba los programas en la unidad 1 de Microdrive, y luego si queremos cargar el programa, también hay que insertar el cartucho en la unidad 1, por lo que para este dispositivo no existen más unidades.

Había programas que eran capaces de detectar la presencia del Multiface One, por este motivo tuvieron que ponerle en versiones posteriores una interruptor para activarlo en el momento de la grabación. 


Primero, hay que cargar el programa desde cinta con el interruptor en posición desactivada, una forma de comprobar que el Multiface One está desactivado es que al pulsar el botón rojo no tiene que aparecer nada por pantalla.
Una vez que tengamos el juego cargado, activamos el Multiface One y pulsamos el botón rojo apareciendo el siguiente menú:

 

Para grabar en un cartucho de Microdrive pulsamos la opción del menú save-->introducimos un nombre-->cartridge (con program seleccionado)-->save y al terminar pulsamo la "e" de exit. 
 
Al terminar la grabación, listamos el contenido del cartucho con el comando CAT 1
 

En el proceso de grabación le puse de nombre navy, por lo que para cargar el programa ejecutamos el comando LOAD *"m";1;"navy". Al principio nos saldrá una pantalla azul para indicarnos que está cargando y al finalizar nos saldrá la pantalla del juego.


Grabación con Z80onMDR para VDrive
 
Sin duda, si se tiene una unidad emuladora de Microdrive(VDrive), ésta es la mejor opción. El programa z80onMDR está para Windows y Linux y lo podemos descargar del sitio web https://www.tomdalby.com/other/z80onmdr.html.
 
Para grabar un juego en formato .mdr, ejecutamos el programa z80onMDR pasándole como parámetro el nombre del juego en formato .z80, si tenemos el juego en formato .tap, con cualquier emulador podemos hacer un snapshot y grabarlo en formato .z80.

Este programa tiene opciones interesantes, como poder grabar más de un programa en un cartucho emulado de Microdrive (.mdr) y mostrar un menú para seleccionar el programa que queremos ejecutar:


En este caso, tengo las dos partes del juego After The War en el mismo cartucho de Microdrive, que al ejecutarlo, me sale este menú para elegir la parte que quiero jugar.

Una vez generado el fichero .mdr con el programa Z80onMDR, lo copiamos a la tarjeta SD para luego cargarlo como imagen en una unidad virtual de VDrive. 

Si listo el contenido del cartucho (imagen de VDrive) con CAT 3 (en este caso el cartucho está en la unidad 3 de Microdrive) me sale lo siguiente:
 
Para abrir el juego, si el cartucho lo tuviéramos en la unidad 1 de Microdrive al ejecutar el comando RUN nos cargaría el juego, pero al estar en la unidad 3 hay que ejecutar LOAD *"m";3;"run".

Conclusión
 
Las dos mejores opciones para copiar a Microdrive son la de Multiface One y el programa Z80onMDR. Si se tiene un VDrive, la elección sería el Z80onMDR, pero si tenemos un Microdrive y cartuchos "vivos" necesitaremos tener un Multiface One. 
 
Como es muy difícil tener cartuchos de Microdrive que funcionen, no merece la pena conseguir un Multiface One, tanto la versión original o la de fabricarse uno, ya que el código de la ROM se puede descargar fácilmente de Internet. El coste de ambas opciones será prácticamente el mismo que el de un VDrive que es mucho mejor dispositivo y que permite emular hasta 8 unidades de Microdrive (para más info visita https://www.retromaquinas.com/2021/06/arqueologia-informatica-vdrive.html.


D.R Spectrum

Comentarios

Entradas populares de este blog

El botiquín del Spectrum: Componentes de repuesto

Debido a la avanzada edad de nuestros Spectrum, hay que estar prevenidos ante cualquier imprevisto que pueda surgir en forma de avería. Como hemos podido ver en alguna de las reparaciones que he publicado en este blog, me ha hecho falta una serie de componentes electrónicos, que en algún caso no los tenía, y he tenido que esperar a conseguirlos yendo a una tienda de electrónica o comprándolos por internet.  Para no encontrarnos en esta situación, he identificado cuales son las averías más frecuentes y qué componentes harían falta para poner de nuevo en marcha a nuestro Spectrum.  CPU La CPU que nos podemos encontrar en el ZX Spectrum puede ser Zilog Z80A de 4MHz o NEC D780-C, ambas totalmente compatibles. Aunque el cristal de cuarzo para generar una señal de reloj estable es de 14MHz, realmente la señal de reloj que utiliza la CPU es la marcada por el pin 32 (CLK) de la ULA. Esta señal tiene una frecuenca de 3,5MHZ, que es el resultado de dividir por 4 la señal de reloj produci

Reparación ZX Spectrum: Cambio de la membrana del teclado

Una vez bien entrado el siglo XXI, muchos de nosotros nos hemos dispuesto a desempolvar o adquirir un Spectrum de segunda mano, y al encenderlo nos hemos encontrado que algunas o todas las teclas no funcionan. Este es uno de los principales síntomas que indica que la membrana del teclado puede que esté rota, y además es una de las reparaciones más habituales a nivel de mantenimiento.  Si hemos recuperado o comprado un Spectrum de 16K, 48K, 128K (toastrack) o un Sinclair QL, lo más probable es que haya que cambiar la membrana del teclado, por lo que el coste de estas hay que tenerlo en cuenta a la hora de pujar o pactar un precio de compra, ya que esto puede aumentar considerablemente lo que estábamos dispuestos a gastarnos. Las membranas que venían en los +2 en adelante, el plástico es más resistente, y si las teclas no funcionan bien, lo más probable que con una limpieza de la membrana y del teclado sea más que suficiente para que las teclas vuelvan a funcionar de nuevo. 

ZX Spectrum: Consejos para comprar un Spectrum

Nos hemos llenado de nostalgia y queremos revivir la sensación de disfrutar de ese Spectrum que tuvimos cuando eramos niños. Hasta aquí todo suena muy bien, pero no es algo que nos lo tengamos que tomar muy a la ligera, debido a que si optamos por comprarnos uno de segunda mano, muy posiblemente éste requiera de una restauración y reparación, con todo lo que supone, es decir, tener conocimientos de electrónica, aunque sean básicos, saber identificar averías, realizar modificaciones, cambiar piezas dañadas, y un largo etcétera, que nos quitará tiempo y supondrá gastarnos más pasta para conseguir que el cacharro funcione finalmente. Si no hemos sido capaces de encontrar nuestro Spectrum en casa de nuestros padres, antes de decidirnos a comprar uno, lo mejor es probar primero con un emulador, para ver si esto consigue paliar ese ataque de nostalgia. Existen emuladores para plataformas como Windows, Linux, Android, etc... A mí personalmente no me atraen demasiado, pero lo mejor