domingo, 6 de mayo de 2018

Preservar diskettes con SD2IEC

Hace un tiempo os expliqué por aquí cómo logré reparar mi vieja unidad de discos 1541. Una de las finalidades de esta reparación era la de poder preservar los cerca de 80 diskettes de 5" 1/4 que conservo desde que mi padre compró la unidad. Me he puesto manos a la obra con ello y he comenzado una larga tarea de preservación, y quiero compartir con vosotros los pasos que estoy siguiendo para copiar diskettes físicos de 5" 1/4 a ficheros .d64 empleando un SD2IEC y el programa DraCopy.
DraCopy.

Imagino que todos conoceréis ya el SD2IEC. Para los que no, deciros que básicamente es un reemplazo relativamente económico de la unidad de discos del C64 que no emula al 100% el funcionamiento de, por ejemplo, una 1541, pero sirve para cargar desde una tarjeta SD gran parte del software lanzado para nuestro ordenador. Las unidades de disco del C64 son unos complejos y caros aparatos que cuentan con su propia CPU (todo un 6502) y una ROM con un sistema operativo de disco, y esta complejidad hace que sea difícil y caro reproducirlas. Aparatos como el Ultimate-II+ son capaces de ejecutar juegos de C64 en modo real (con turbos para acelerar la carga), pero SD2IEC no, de ahí la diferencia de precio de más de 100€.
SD2IEC de 2 botones (foto de sd2iec.co.uk).

Preparando el SD2IEC

Lo primero que tenéis que hacer para poder copiar ficheros entre vuestra unidad real y el SD2IEC es cambiarle el número de unidad al 9, por ejemplo. Esto se debe a que la unidad 1541 utiliza el número 8 por defecto, a no ser que esté modificada para poder cambiarle el número, que no es mi caso. El SD2IEC viene configurado como unidad 8, y en función del modelo, se puede cambiar o bien abriéndola y cambiando la disposición de unos dipswitches (como aquí), o bien con un par de comandos de BASIC del C64 con la SD dentro del SD2IEC (se explica aquí). Mi caso es el segundo, y los comandos son estos dos:
OPEN1,8,15,"U0>"+CHR$(9):CLOSE1

OPEN1,9,15,"XW":CLOSE1
La primera línea cambia el número de dispositivo de 8 a 9. La segunda graba el cambio en la EEPROM del aparato, ya que si no lo hacemos, al reiniciarlo se perderá el cambio y volverá a ser el 8. Para revertir el cambio simplemente deberéis ejecutar estos comandos:
OPEN1,9,15,"U0>"+CHR$(8):CLOSE1

OPEN1,8,15,"XW":CLOSE1
A continuación deberemos copiar desde un PC el programa DraCopy en el SD2IEC. En mi caso lo he extraído del fichero D64 con DirMaster (un potente gestor de ficheros de disco para C64) y lo he copiado en la raíz de la SD como DC64 (sin la extensión .PRG) para que funcione correctamente.
Desde DirMaster abrimos el D64, pulsamos con el botón derecho del ratón el fichero DC64 y seleccionamos Export.

Lo último que necesitaremos en el SD2IEC es un montón de ficheros D64 vacíos, es decir, diskettes formateados en los que realizaremos las copias de nuestros diskettes físicos. Los ficheros vacíos se pueden crear de varias formas, una de ellas es usando nuevamente DirMaster, que ha sido mi opción. Para ello, en el programa iremos a Disk->New->D64 (o pulsaremos 6) y aparecerá un nuevo disco que guardaremos en la tarjeta SD desde Disk->Save As...
DirMaster con un nuevo disco creado.

Mis ficheros D64 están nombrados como disco001a.d64, disco001b.d64, etc. y están dentro de una carpeta llamada PRESERVA.

Conectando las unidades

Si habéis tenido dos o más unidades de disco conectadas simultáneamente al C64 recordaréis que se pueden conectar de forma "encadenada", es decir, haciendo "daisy chaining" que dirían los anglosajones, gracias a los dos conectores que llevan estas unidades en su panel trasero. Para hacer lo mismo con el SD2IEC tenemos que conectar el SD2IEC a la unidad de discos con su propio cable, y con el cable de la unidad conectar ésta al C64. De esta manera será la 1541 la que de acceso al C64 hasta el SD2IEC.
Conexión de las unidades: la 1541 conectada al C64 y el SD2IEC conectado a la 1541.

Realizando la copia del diskette

Encendemos nuestro C64 con las unidades conectadas como se ha descrito en el paso anterior y ejecutamos DraCopy (DC64) con los comandos:
LOAD"DC64",9
...
RUN
El programa tiene un manejo muy sencillo, con las dos ventanas con el contenido de cada unidad en la parte izquierda y la lista de las acciones disponibles en la columna de la derecha.

Las teclas básicas que vamos a emplear para hacer las copias de diskettes son éstas:
Cambiar entre las ventanas de las unidades 8 (1541) y 9 (SD2IEC).
CRSR ⇅ Movernos por las carpetas/ficheros del disco.
CRSR ← Ir a la carpeta padre (SD2IEC) o recargar el directorio (1541).
F1 Recargar el directorio del disco.
F8 Copia de disco.
DraCopy: arriba tenemos el disco origen (ud.8) y abajo el disco destino, un fichero .d64 (ud.9).

Para hacer la copia del disco deberemos tener abierto el disco origen en la ventana de la unidad 8 (arriba) y el disco destino en la unidad 9 (abajo), y tener seleccionada la ventana de la unidad 8 (←). Al pulsar F8 nos pedirá confirmar la copia, contestaremos Y, y entonces deberemos esperar alrededor de 14 largos minutos hasta que se realice la copia, que se hace sector a sector. Si el proceso se detiene en algún sector (se queda clavado en una R o W y no avanza), tendremos que reiniciar el ordenador y volver a comenzar el proceso, ya que no se puede cancelar (al menos yo no he encontrado la forma de hacerlo).
Después de seleccionar los discos y pulsar F8, deberemos confirmar la copia.

Una vez terminada, si cambiamos de ventana a la unidad 9 y actualizamos el directorio, podremos comprobar que los ficheros del disco físico se encuentran en el fichero D64 de la SD.
Proceso de copiado terminado.

Realizando el proceso inverso

Si queréis copiar el contenido de un fichero D64 en un disco físico, teóricamente el proceso es similar pero seleccionando la ventana de la unidad 9 antes de pulsar F8 (digo teóricamente porque aún no lo he probado, no voy muy sobrado de diskettes).


Salu2, Paco.

1 comentario:

  1. Que buen aporte, yo aun tengo operativa mi disketera 1541 me falta el SD2IEC para preservar mis diskettes que aun mantengo. Muchas gracias por el Artículo, muy bueno.

    ResponderEliminar