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

Mi primer Amstrad CPC 6128: Puesta a punto y cómo sacarle provecho en la actualidad

El Amstrad CPC era el ordenador que siempre quise tener de niño. Recuerdo que, por el año 1986, en el centro comercial Alcampo de mi barrio tenían una especie de "corner" donde se exhibían los ordenadores de Amstrad que se podían tocar y hacer cosas con ellos, una idea muy brillante para aquella época, ya que no era un método muy habitual para captar compradores, y sin embargo, hoy en día se sigue aplicando y funcionando. Al pillarme cerca del instituto nos acercábamos a la hora del recreo y nos poníamos a hacer nuestros pinitos en Basic, de esta forma surgió mi gusto y admiración por este potente ordenador. Sin embargo, al final, en mi casa optamos por comprar el ZX Spectrum +2A, por varias razones, el precio era casi la mitad, eso sí, sin incluir monitor, en el instituto aprendíamos Basic en ordenadores Sinclair, como el de 48K o el QL, y lo más importante, casi todos mis amigos tenían ordenadores Spectrum. Todo esto influyó en la decisión final, viendo como se alejaba la o

Cargar juegos con la App PlayZX (ZX81, ZX Spectrum, +2A/B y +3)

Existen varias alternativas para cargar juegos de forma casi instantánea en formatos .TAP y .TZX, como DivIDE, Dandanator, etc... A los más nostálgicos que nos sigue gustando cargar desde cinta y esperar esos minutos mientras contemplamos el screen de turno, tenemos que buscar otras alternativas que sean parecidas para así dar descanso a las cintas de casete que tan buenos momentos nos dieron, y de esta forma proporcionarles ese merecido retiro en una estantería junto a sus viejas compañeras donde podamos contemplarlas y admirar sus carátulas. La alternativa más popular es TZXduino, que junto a una tarjeta de memoria sd podemos reproducir los juegos como si los cargásemos desde un casete. Esta opción nos obliga a tener otro dispositivo, y dada la situación, por un poco más de lo que puede valer casi sería mejor opción comprarse un Divide, aunque en concepto son dispositivos muy distintos.  Otra opción sería utilizar la aplicación para teléfonos móviles Android PlayZX . En la web del de