En este momento estás viendo Convertir archivos .IMG generados con Kryoflux a otros formatos

Convertir archivos .IMG generados con Kryoflux a otros formatos

Recientemente hemos restaurado un ordenador Sanco de la serie 7000, el modelo 7202, que se diferencia del resto de la serie en que tiene una doble disquetera de 8″, y nos ha surgido la necesidad de salvaguardar los datos de los disquetes, para el día que fallen poder restaurarlos, o para montarlos en una gotek. Hace ya unos años utilizamos el programa Imagedisk para realizar copias de los disquetes, pero como quiera que no hace mucho hemos adquirido un Kryoflux vamos a aprovechar para testearlo. Una vez generados los archivos raw con Kryoflux utilizaremos el programa HxC Floppy Emulator Software para convertirlos a otros formatos.

Equipo que voy a utilizar:

  • Portátil con Windows 7
  • Disquetera YE-DATA YD-174D de 8″
  • FDADAP Floppy Disk Adapter si bien lo podría hacer con mi adaptador ya que para leer los discos no se necesita la señal TG43 (Low current), incluso me podría ahorrar el adaptador conectando directamente el kryoflux a la disquetera con los cables. Esto lo mostraré en otro post
  • Kryoflux

Lo primero de todo hay que generar las imágenes de los disco con Kryoflux. El disco del que voy a crear la imagen es un disco CP/M 2.2 del Sanco 7202. Tiene la particularidad de que la cara 0 del track 0 está formateada con FM 128bits (SD – Single Density) , y el resto de tracks y caras con MFM 256bits (DD – Double Density).

Un aspecto muy importante, a la hora de generar las imágenes de los discos, es conocer los parámetros básicos con los que éstos han sido formateados. Por suerte dispongo del manual de la unidad YD-174D que indica las siguientes especificaciones:

  • 77 tracks
  • 2 sides
  • FM / MFM
  • 360 rpm
  • 500Kbps
  • 48Tpi

Pero también necesitamos saber el número de sectores por track y el tamaño de los mismos, y como son parámetros que dependen del SO tenemos que echar mano de otras herramientas, como Anadisk e Imagedisk, optando por esta última.

  • 26 sectores por track
  • Track 0 cara 0 formateada con 128 Bytes/Sector SD – FM
  • Resto tracks y caras formateadas con 256 Bytes/Sector DD – MFM

Con estos datos, nos encontramos con el inconveniente de que el disco tiene distintos formatos, teniendo que generar la imagen con tres comandos, o uno combinado, para indicarle a kryoflux las particularidades del track 0 cara 0, y lo voy a hacer con la CLI (línea de comandos)

Lo primero de todo calibramos la unidad
dtc -c2

Track0 side0 FM 128bits
dtc -fC:\SANCO\track0.img -v360 -z0 -oe0 -g0 -i3 -e0 >t0s0.log

Velocidad de rotación 360rpm (-v360), tamaño del sector 128bytes (-z0), volcar solo la cara 0 (-g0) del track 0 (-oe0), formato FM (-i3), último track a leer el 0 (-e0), genera un fichero con el log >t0s0.log

Track0 side1 MFM 256bits
dtc -fC:\SANCO\track0.img -v360 -z1 -oe0 -g1 -i4 -e0 >t0s1.log

Velocidad de rotación 360rpm (-v360), tamaño del sector 256bytes (-z1), volcar solo la cara 1 (-g1) del track 0 (-oe0), formato MFM (-i4), último track a leer el 0 (-e0), genera un fichero con el log >t0s1.log

Resto de tracks ambas caras MFM 256bits
dtc -fC:\SANCO\track.img -v360 -z1 -os1 -oe76 -i4 -e76 >resto.log

Velocidad de rotación 360rpm (-v360), tamaño del sector 256bytes (-z1), volcar desde el track 1 (-os1) al track 76 (-oe76), formato MFM (-i4), último track a leer el 76 (-e76), genera un fichero con el log >resto.log. Si se especifica el parámetro -g2 generará un fichero para la cara 1 y otro para la cara 2.

Parámetros:
-i<tipo> tipo de imagen
-f<nombre> nombre del archivo y ruta
-v<rpm> velocidad de rotación en RPM
-z<tamaño> tamaño del sector
                    0=128, 1=256, 2=512, 3=1024 (Por defecto 2)
-os<trk> track en el que comienza el volcado a la imagen
-oe<trk> track en el que finaliza el volcado a la imagen
-g<cara> cara
               0=cara 0, 1=cara 1, 2=dos caras
-e<trk> último track a leer (Por defecto 83)

Tipos de imágenes:
3 FM sector image, 40/80+ tracks, SS/DS, SD/DD, 300, FM
4 MFM sector image, 40/80+ tracks, SS/DS, DD/HD, 300, MFM

Para ver el resto de tipos soportados leer el manual.

Ahora tenemos que juntar los 3 archivos generados en uno solo, y para ello voy a emplear el comando del DOS <copy>:
copy /B track0_s0.img+track0_s1.img+track.img <nombre>.img

Llegados a este punto podemos comprobar si los ficheros img se han generado correctamente. Para ello vamos a analizarlos con HxCFloppyEmulator.

Empezamos con el fichero track0_s0.img (track0 cara0)

Establecemos los parámetros: Track type, bitrate, rpm, number of track, number of side, sector per track y sector size
Pulsamos sobre Load RAW file y seleccionamos el fichero a analizar.

Pulsamos sobre Track Analyzer, y si hemos puesto bien todos los parámetros podremos ver si contiene datos.

Track 0, Side 0, Sector 2 seleccionado
Datos mostrados por HxC

Como previamente habíamos realizado el análisis del disco con Anadisk v2.07 podemos comparar los datos que muestra cada una de los programas para verificar que coinciden.

Datos mostrados por Anadisk

Ahora procedemos a comprobar el directorio (index). El Sanco 7202 formatea los discos de forma que el inicio del directorio se encuentra siempre en el track 2, cara 0, sector 1. Para ello cargo el fichero track.img y selecciono el track 1, cara 0, sector 1.

Track 1, Side 0, Sector 1 seleccionado

Comparamos con los datos de Anadisk.

Y por último comprobamos que ejecutando el comando dir en el Sanco nos muestra los mismos ficheros, teniendo en cuenta que tanto HxC como Anadisk solo están mostrando el sector 1.

Si queremos comprobar que el resto del directorio coincide solo tenemos que seguir el orden en el que se graban los sectores en el disco. En este caso se graban en este orden: 1,7,13,19,25,5,11,17,23,3,9,15,21,2,8,14,20,26,6,12,18,24,4,10,16,22

Hasta el momento hemos comprobado los ficheros por separado, pero ¿que pasa si comprobamos el fichero que hemos creado con el comando copy?. En HxC cuando seleccionamos «Load Raw Image» podemos indicar, entre otros, si es FM o MFM y el tamaño del sector, pero nuestro fichero tiene mezclados tracks FM y MFM y distintos tamaños de sectores. Para solucionar este pequeño inconveniente vamos a aprovechar la posibilidad que ofrece HxC de crear tipos de discos personalizados mediante ficheros xml.

<!--  HxC Floppy Emulator Disk Layout  -->
<!--  OldComputers ES  -->
<disk_layout>
<disk_layout_name>SANCO7202</disk_layout_name>
<disk_layout_description>Disco Sanco 7202 8"</disk_layout_description>
<prefered_file_extension>img</prefered_file_extension>
<interface_mode>GENERIC_SHUGART_DD_FLOPPYMODE</interface_mode>
<file_size>0</file_size>
<layout>
<number_of_track>77</number_of_track>
<number_of_side>2</number_of_side>
<format>IBM_MFM</format>
<start_sector_id>1</start_sector_id>
<sector_per_track>26</sector_per_track>
<sector_size>256</sector_size>
<formatvalue>0</formatvalue>
<gap3>255</gap3>
<bitrate>500000</bitrate>
<pregap>0</pregap>
<rpm>360</rpm>
<track_list>
<track track_number="00" side_number="0">
<data_offset>0x000000</data_offset>
<format>IBM_FM</format>
<sector_list>
<sector sector_id="1" sector_size="128">
<data_fill>0xE5</data_fill>
<datamark>0xFB</datamark>
<data_offset>0x000000</data_offset>
</sector>
.
.
.
<sector sector_id="26" sector_size="128">
<data_fill>0xE5</data_fill>
<datamark>0xFB</datamark>
<data_offset>0x000C80</data_offset>
</sector>
</sector_list>
</track>
</track_list>
</layout>
</disk_layout>

Fichero xml completo Sanco7202.xml

Abrimos HxC y seleccionamos «Load Raw image», pulsamos sobre el desplegable «Predefined Disk Layout», escogemos la primera opción «XML file Disk Layout» y seleccionamos el fichero xml que hemos creado, y sin salir de la pantalla RAW File pulsamos sobre «Load RAW file», seleccionamos el fichero .IMG unido y por último analizamos el track con la opción «Track Analyzer» para comprobar que la cara 0 del track 0 está codificada con FM y resto del disco con MFM. En track analysis format dejamos seleccionada únicamente la opción ISO FM y en Status nos muestra los datos; Size 00128 y Track format ISOIBM_FM_ENCODING. Si seleccionamos ISO MFM en vez de FM la zona de la pantalla donde se muetran los sectores debe aparecer en blanco. Para el resto de caras y tracks debemos seleccionar ISO MFM y si seleccionamos ISO FM la zona de los sectores debe aparecer en blanco.

Codificación FM, Track 0 Side 0, 128bytes / sector
Selección incorrecta de Codificación

Salimos del analizador de tracks y ya podemos exportar a cualquiera de los formatos que nos permite HxC seleccionando la opción»Export». Voy a exportarlo al formato IMD de Imagedisk, y haciendo uso de la utilidad IMDU.COM verificaré que la exportación es correcta.

Selección formato de exportación
Ánálisis con la utilidad IMDU de Imagedisk

Deja un comentario / Post a comment