Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 14 Jun 2017 09:36

Bueno, este hilo nace como spin-off del hilo de mis desventuras con la MiST y lo primero que tengo que decir es que no sé si este foro "Software ST" es el apropiado, porque aunque la utilidad trabaje con imágenes de disco de Atari ST, no está diseñada para ejecutarse en un Atari ST, como el resto de hilos que veo aquí. Si hay que moverlo a otro foro pues que se mueva.

Bien, la utilidad nace por mi necesidad de extraer o añadir ficheros a imágenes de Atari ST. Si bien ya hay una aplicación Drive image & ZX file transfer que permite trabajar de manera nativa con este tipo de imágenes, la tarea de añadir un árbol de directorios a una imagen con este programa se hace bastante tediosa al aumentar la cantidad de directorios, ya que por cada uno de ellos nos obliga a crearlo introduciendo manualmente su nombre y luego seleccionando los ficheros que debe contener. Esto directorio por directorio, ya que no tiene (o no he visto) una opción recursiva. En cualquier caso, aunque apareciese una nueva versión que lo haga, me empeñé en hacer un conversor, así que aquí está.

ST2PC.ZIP
(16.2 KiB) Descargado 4 veces


Se compone de 2 programas muy pequeños realizados en Java, en modo texto (sí, feo) con parámetros (sí, horrible). El primero, ST2PC, convierte imágenes de disco duro de Atari ST a PC. Y el segundo, PCBACK2ST, realiza la conversión de vuelta de la imagen de disco duro de PC a Atari ST.

PCBACK2ST no es un conversor general de cualquier imagen de disco duro de PC a Atari ST, principalmente porque la mayoría de discos duros de PC no se pueden convertir a Atari ST. Sólo es capaz de trabajar con imágenes de disco duro que hayan sido obtenidas con ST2PC. Entre medias pueden haberse añadido, modificado o eliminado ficheros, tantos como se quiera. Pero si la imagen de disco duro no ha tenido formato Atari ST en algún momento de su vida, PCBACK2ST no funcionará.

Resumiendo, lo que ahora se llama "el flujo de trabajo" sería el siguiente:
  1. Convertir una imagen de disco duro de Atari ST a formato PC con ST2PC.
  2. Editar la imagen desde otro S.O. para añadir, borrar o modificar ficheros y/o directorios.
  3. Opcionalmente, pero muy aconsejable, limpiar la imagen editada con MisterProper.
  4. Convertir la imagen de vuelta a formato Atari ST con PCBACK2ST.

ST2PC debería funcionar con cualquier imagen de disco duro de Atari ST creada con el software oficial de Atari (AHDI). No es intención que funcione con imágenes creadas con otros drivers comerciales como HDDRIVER, PPDRIVER o ICD, aunque podría estudiar el tema del ICD. Las imágenes creadas con HDDRIVER y PPDRIVER son, en teoría, compatibles con el formato PC, así que cualquier editor de imágenes podría trabajar con ellas sin tener que convertirlas.

¿Cómo funciona? (lo imprescindible): Supongamos que en el mismo directorio donde tenemos esta utilidad, hay un fichero llamado DISK60MB.HD que es una imagen de disco duro de Atari ST. Para convertirla a formato PC habría que teclear
java St2pc DISK60MB.HD DISK60MB.IMG
Esto crea 2 ficheros (en el mismo directorio) llamados DISK60MB.IMG (la imagen en formato PC) y DISK60MB.IMG.back2st (necesario para la futura conversión de vuelta a ST). Ahora se pueden añadir, borrar, modificar y extraer ficheros y directorios de DISK60MB.IMG con el editor de imágenes que a cada uno le guste. Una vez modificada la imagen, se puede volver a convertir a formato Atari ST. Serán necesarios los dos ficheros obtenidos en el primer paso: DISK60MB.IMG (aunque lo hayamos modificado) y DISK60MB.IMG.back2st
Supongamos que no queremos machacar el fichero original DISK60MB.HD, al nuevo queremos llamarlo NUEVO.HD, lo que habría que teclear es
java Pcback2st DISK60MB.IMG NUEVO.HD
Esto crea el fichero NUEVO.HD en formato Atari ST.

¿Cómo funciona? (más en detalle): La clase St2pc va leyendo el fichero que le pasamos como primer parámetro (imagen ST), y escribe en el fichero que le pasamos como segundo parámetro (imagen PC) y en el que tiene extensión .back2st (estos 2 los crea). Va leyendo por bloques de 512 bytes (lo que es un sector físico) y tal cual lo lee, lo escribe en el fichero para PC, a excepción de que el sector leído sea un RS, ERS o BR (root sector, extended root sector o boot record). En estos casos realiza una conversión del sector a MBR, EMBR o VBR (master boot record, extended master boot record o volume boot record) y la escribe en el fichero para PC, guardando el sector original en el fichero con extensión .back2st
La imagen PC generada tendrá el mismo tamaño que la imagen ST original, y el fichero .back2st tendrá aproximadamente 1Kb por cada partición encontrada.
La clase Pcback2st realiza el proceso inverso, leyendo el fichero que le pasamos como primer parámetro (imagen PC) y escribiendo en el fichero que le pasamos como segundo parámetro (imagen ST) exactamente lo que lee, excepto que el sector leído sea un MBR, EMBR y VBR. En estos casos, lo que hace es ignorar el sector leído de la imagen PC y lo que escribe en la imagen ST es un sector que lee del fichero .back2st

Si se nos ha perdido el fichero .back2st o no se ha generado (la primera versión que subí de ST2PC todavía no lo generaba) basta con volver a ejecutar St2pc sobre el fichero con la imagen de Atari ST usando la opción -nopc. En el fichero .back2st se guardan los sectores RS, ERS y BR originales de la imagen ST, y esos sectores no cambian mientras no se reparticione el disco, o se instale un nuevo driver o gestor de arranque.

Al estar realizado en Java, necesitamos tener instalado un runtime de Java 1.5 o posterior, requisito que creo que cumple cualquier máquina moderna.

Me gustaría recalcar que los únicos sectores modificados por PC2ST son los de tipo RS, ERS y BR (root sector, extended root sector y boot record). El resto de sectores (FAT, directorio raíz, datos de ficheros y resto de directorios) son copiados tal cual, sin modificaciones, de la imagen de disco de Atari ST a la de PC y vuelta a la de Atari ST.



Edito: Por lo visto, las imágenes de disco duro de Atari ST también pueden editarse directamente (sin conversión) con algunos emuladores como Hatari. Yo no me he molestado en probarlo, pero supongo que irá bien. Como he dicho, este conversor lo he hecho porque me empeñé en hacerlo.

Avatar de Usuario
minter
Mensajes: 1155
Registrado: 22 Jul 2014 18:51
Agradecido : 369 veces
Agradecimiento recibido: 210 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor minter » 14 Jun 2017 10:23

Jinks escribió:Como he dicho, este conversor lo he hecho porque me empeñé en hacerlo.

Y yo me empeño en agradecértelo! -thumbup

Si, la verdad es que el Drive image & ZX file transfer es un poco tostón para el tema de los directorios.
Hace poco estuve probando el spectre (emulador Mac) y para las pruebas con juegos y archivos, se me hizo muy pesado.
A mí, lo que me ocurre es el desconocimiento del mundo Atari. Seguramente hay aplicaciones para hacer de todo. Pero como no las conozco... los métodos que empleo son completamente absurdos.

He llegado a copar un archivo de PC a Atari, a través del CrossDos del Amiga, porque no conocía otro método de aquella.
Fíjate tu.

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 16 Jun 2017 12:53

A pesar del poco éxito (2 descargas en las primeras 48 horas) he subido una nueva versión que añade 2 parámetros a St2pc. Uno sirve para generar sólo el fichero .back2st, sin convertir la imagen (y así, sin peligro de machacarla). Y el otro sirve para mostrar la información de debug, que antes salía siempre y ahora por defecto no sale. Aunque con imágenes grandes, como se tardan en procesar, igual convendría mostrar esa información para ver que el programa está haciendo algo. Lo de la información de debug lo he hecho también en Pcback2st.

El tema de la conversión no ha cambiado, y los ficheros que se generen son exactamente iguales que con la anterior versión que puse.

En el primer mensaje he añadido lo nuevo con marcador amarillo y lo que sobra lo he tachado. Si vuelvo a actualizarlo, lo amarillo lo dejaré ya normal, y lo tachado lo borraré.

Avatar de Usuario
namuras
Mensajes: 28
Registrado: 14 Dic 2016 09:27
Agradecido : 6 veces
Agradecimiento recibido: 3 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor namuras » 16 Jun 2017 14:04

Buenas tardes,

He estado un poco liadillo en el trabajo y no he tenido mucho tiempo, así que espero hacer más pruebas el fin de semana.

En principio con lo poco que he podido testear, he visto que la herramienta va de lujo, ahora bien, una vez que la tengo en "versión pc" sigo teniendo los mismos problemas que ya había transmitido.

Con Winimage aunque me encuentra todas las particiones, no me muestra el contenido de algunas (aparece todo en blanco) aunque sí que me deja colocar nuevos contendos (a ciegas) que luego si que veo en la Mist. Curioso la verdad. Otras particiones sin embargo sí que me las muestra completas. No sé, no entiendo de estas cosas pero creo que las que me muestra el contenido y las que no, son ambas fat16, así que no sé que puede ser. Voy a montar otra imagen de disco desde cero por si acaso.

Con el Diskexplorer, también sigo con los errores de "invalid chain" y aunque sí que me muestra el contenido de todas las particiones y me deja crear y eliminar carpetas, me pasa también algo curioso, y es tan pronto me muestra todo el contenido de la partición como sólo parte de el.

Lo dicho, seguro que es un problema de mis imagenes de disco. Voy a hacer otras nuevas y seguir probando.

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 16 Jun 2017 14:12

Me interesaría reproducir el error que te ocurre con el DiskExplorer, que es el que me permite escoger particiones. Querría asegurarme de que la imagen de la que se parte (antes de convertirla) use FAT16 y que tenga las 2 copias de la FAT sin errores.

Mi WinImage 8.5 no me permite escoger, sólo me deja trabajar con la primera partición, porque es la que abre sin preguntar, y sólo me deja trabajar con ella. La opción de imágenes de discos duros sólo la tiene el WinImage registrado, y si me instalo la versión 9 dejo de tenerlo registrado.

Saber si una partición es FAT12 o FAT16 es muy fácil cuando está vacía (completamente vacía). Se mira el primer sector FAT y se busca el primer byte a 0. Si es el cuarto, es FAT12. Si es el quinto, es FAT16. Los primeros bytes deberían ser F8 FF FF en el caso de FAT12 y F8 FF FF FF en el caso de FAT16.

Avatar de Usuario
namuras
Mensajes: 28
Registrado: 14 Dic 2016 09:27
Agradecido : 6 veces
Agradecimiento recibido: 3 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor namuras » 16 Jun 2017 22:11

Buenas noches,

Después de pasar media tarde formateando y particionando un nuevo disco (que lento!!!!), estoy encantado.

Con DriveImage Pro V 9, nasti de plasti. Lo de siempre, detecta las particiones, me deja seleccionarlas pero no me muestra nada, ni me deja hacer nada. Un bluf.

Con el DiskExplorer, simplemente magnífico. Arrastro carpetas en bloques con todos sus contenidos, elimino, lo que sea. Perfecto!!!!

Eres un artista. Se acabo el Hatari!!!. De esta forma es superrápido y sencillo el trasvase de información.

Dejo un enlace que contiene dos archivos. Uno ("hd700m.hd") con el disco recién particionado y limpito, y otro ("hd700_2.hd") con algunos juegos al azar en cada partición a modo de ejemplo.

Contenido Oculto
Este foro requiere que este registrado e identificado para ver el contenido oculto.

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 16 Jun 2017 23:17

Pues nada, me alegro mucho de que mi único usuario esté satisfecho -thumbup

No sé cómo será el Hatari de cómodo o incómodo para hacer estas cosas, porque yo no he llegado a instalarlo. Sólo sé lo que cuesta meter ficheros con el Drive image & ZX file transfer cuando hay muchos directorios, que eso sí que lo intenté, y era desesperante.

Lo que me extraña es que nadie haya hecho antes algo parecido (o igual sí que lo hay y no nos hemos enterado) porque la tarea es bastante sencilla (si no, no me sale). Yo antes de ponerme a programar hice bastantes pruebas y todas ellas "a mano", cosa que normalmente no es factible o lleva mucho tiempo. Bueno, ya se ve el tamaño de las clases que han salido, y buena parte son cadenas de texto con los mensajes o los nombres de las clases que usa.

Oye, qué subidón, me va a dar por cambiar el número de versión de 0.92 a 1.00 -grin

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 19 Jun 2017 14:34

Actualización de St2pc a versión 0.93 (Pcback2st sigue en 0.92)

Añado lógica para ver si puedo detectar FAT12/FAT16 y así ahorrarme futuros problemas, aparece información de debug sobre esto, pero de momento no se hace nada con ella. Y a lo mejor no hay manera de hacerlo, porque con las pruebas que he hecho, veo que el software AHDI no sigue el estándar Microsoft a la hora de usar FAT12 o FAT16, y además suele reservar para cada FAT más sectores de los necesarios.

Lo que es más importante es que he corregido un bug en la conversión de sectores BR a VBR, al pasar de formato ST a PC. Al volver a formato ST se solucionaba, porque se recupera el BR original del fichero .back2st, pero igual a la aplicación para editar la imagen no le gustaba ese detalle.

Avatar de Usuario
namuras
Mensajes: 28
Registrado: 14 Dic 2016 09:27
Agradecido : 6 veces
Agradecimiento recibido: 3 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor namuras » 19 Jun 2017 18:12

-thumbup Fantástico!!!

Está claro que era ese bug el que le hacía daño a WinImage. Con esa corrección, el Winimage 9 Pro, ya abre y MUESTRA el contenido de cada partición.

Ya se puede trabajar en todas las particiones, añadiendo y eliminado carpetas.

A lo mejor ya con esto puede ser versión 1.00. -no

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 19 Jun 2017 19:01

Mi WinImage 8.5 Pro sigue pasando de todas las particiones, abre la primera sin preguntar y ya está. Me pregunto cuál es la diferencia entre las imágenes en las que pregunta y las que no, no lo veo.
Parece que le vas a sacar más utilidad al ST2PC que yo :-D

Avatar de Usuario
namuras
Mensajes: 28
Registrado: 14 Dic 2016 09:27
Agradecido : 6 veces
Agradecimiento recibido: 3 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor namuras » 20 Jun 2017 10:36

Aprovechando un ratillo libre en la oficina antes de una reunión me he instalado la versión de prueba de 30 días de WinImage 8.5 Pro y efectivamente con las mismas imágenes con las que la versión 9 detecta perfectamente todas las particiones en el momento de seleccionar el archivo .img, en esta versión 8.5 sólo detecta la primera partición.

Me he descargado en otro ordenador la de prueba de la versión 9 y como siempre todo perfecto.

https://drive.google.com/file/d/0Bx7umTQzZSSjWnBjUnBtY1hUbmc/view?usp=sharing

Parece claro que el selector de particiones es una nueva implementación de la versión 9.

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 20 Jun 2017 23:11

El WinImage 8.5 (y supongo que el 8.0) ya tenía selector de particiones. Pero no sale con todas las imágenes, que es lo que me mosquea. Por ejemplo, con las compilaciones de Estrayk y Sinclair sí que sale, con la imagen Predator para SatanDisk también sale, pero con la Batman no. Con las mías tampoco.

Las últimas 3 cosas que pienso que pueden ser (las demás ya las he descartado) son:
  1. Que al crear particiones de PC tipo LBA no relleno los campos CHS en la tabla de particiones.
  2. Que las particiones no comienzan en la cara 0 sector 1 de un cilindro.
  3. Que siempre (o casi siempre) que habría que usar FAT12, AHDI usa FAT16, y las FATs ocupan más sectores de los necesarios.
Si es lo primero, tiene fácil arreglo, probaré a convertir LBA a CHS y relleno los 2 campos.
Pero si es lo segundo, como no muevo sectores (dejo todo en la posición que se encuentra en la imagen original) no lo puedo solucionar.
Y si es lo tercero, como la FAT no la toco, tampoco.

En cualquier caso, serían validaciones demasiado estrictas por parte del WinImage 8. Un disco que no cumpla las condiciones 1 y 2 es perfectamente válido y acorde al estándar. De hecho, ya ves que que al WinImage 9 eso le da igual. Un disco que no cumpla la 3, sería más cuestionable, pero puesto que la imagen en formato PC indica claramente qué tipo de FAT utiliza (en formato ST esto no se indica), parece que todas las utilidades lo entienden.

Por cierto, ya estoy trabajando en la versión 0.94, de momento no he cambiado nada en la conversión, pero estoy añadiendo validaciones sobre la imagen de Atari ST (así, si intentan convertir una foto de las vacaciones detecto que no es lo que espero nada más empezar :-))


Edito: Añado el punto 3 de la lista y la aclaración correspondiente.

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 21 Jun 2017 12:52

Jinks escribió:Si es lo primero, tiene fácil arreglo, probaré a convertir LBA a CHS y relleno los 2 campos.

Retiro lo dicho, para convertir LBA a CHS, primero tengo que conocer la geometría CHS del disco, y no encuentro la manera de hacerlo.

Fórmulas hay para convertir un número de sector LBA a CHS (conociendo la geometría) y para convertir un número de sector CHS a LBA (de nuevo, conociendo la geometría). Pero no encuentro la fórmula para, dado el tamaño de un disco, conocer la geometría que más se aproxime a ese tamaño.

Avatar de Usuario
namuras
Mensajes: 28
Registrado: 14 Dic 2016 09:27
Agradecido : 6 veces
Agradecimiento recibido: 3 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor namuras » 21 Jun 2017 13:42

Hola Jinks,

Me gustaría ayudar pero mis conocimientos son prácticamente nulos así que sólo puedo colaborar de manera empírica jejeje. Es decir prueba que te prueba.
Así que probablemente diga una tontería más grande que un piano de cola, pero con el software "Drive image, ST & ZX file transfer" cuando abres una imagen de disco te da unos valores de CHS ¿es eso lo que necesitas?

Avatar de Usuario
Jinks
Mensajes: 901
Registrado: 09 Oct 2013 16:47
Agradecido : 24 veces
Agradecimiento recibido: 45 veces
Contactar:

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor Jinks » 21 Jun 2017 18:57

Sí, bueno, no los valores en sí, lo que necesito saber es cómo se calculan esos valores para un determinado tamaño de disco.

Avatar de Usuario
namuras
Mensajes: 28
Registrado: 14 Dic 2016 09:27
Agradecido : 6 veces
Agradecimiento recibido: 3 veces

Re: Conversor de imágenes de disco duro de ST a PC (y vuelta a ST)

Mensajepor namuras » 22 Jun 2017 12:28

Jinks, te he enviado un MP por si ayuda.


Volver a “Software ST”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado