¿Qué pasa con la geometría?

Zup
Mensajes: 112
Registrado: 16 Sep 2016, 20:22

¿Qué pasa con la geometría?

Mensaje por Zup » 18 Sep 2016, 22:51

La situación es la siguiente. Quiero usar una tarjeta mixta (IDEDOS+FAT) en mi ZX-UNO. La idea es usar CAT TAB para conseguir la geometría y luego usar FORMAT TO para que el +2e no se me coma la partición FAT. Tengo cargada una ROM +3e para DIVMMC que arranca con el DIVMMC deshabilitado (pero con los puertos habilitados para poder leer/escribir a la tarjeta).

El problema lo tengo con la geometría. Cuando he pedido al +3e la geometría me ha dado valores muy diferentes de los esperados, así que he hecho pruebas con dos tarjetas. He mirado la geometría en Linux, el ZX-UNO y un +3e con DivIDE (versión de ROM 1.38).


Tarjeta SD de 512 megas:

Código: Seleccionar todo

         Cyls:   Heads:   Sectors:   Bloques:
         -----   ------   --------   --------
Linux:    1008       16         62     999936
                                      1000448 (en fdisk)
ZX-UNO:   3907        2        128    1000192
DivIDE:    992       16         63     999936
Nótese cómo Linux y el DivIDE se han puesto de acuerdo en el número de bloques, aunque no cuadre la geometría. También he puesto el número de bloques que indica fdisk que tiene la tarjeta (el otro número es el resultado de multiplicar C*H*S).

Tarjeta micro SD de 32 gigas:

Código: Seleccionar todo

         Cyls:   Heads:   Sectors:   Bloques:
         -----   ------   --------   --------
Linux:    3380*     255         63   62332200
                                     62333952 (en fdisk)
ZX-UNO:  65535        2        128   16776960
DivIDE:    ---      ---        ---   ---
En este caso he tropezado con tres problemas.
- A fdisk se le ha ido la hoya y ha reportado más de 33000 cilindros. Curiosamente gparted sí que ha reportado el número correcto de cilindros.
- Evidentemente el ZX-UNO ha tropezado con el límite máximo de cilindros. Aún así, no ha intentado aumentar el número de cabezas.
- El adaptador SD a IDE que tengo en el DivIDE no parece soportar la tarjeta de 32 gigas (o es incapaz de adivinar su geometría). Me ha dicho que no tenía ningún disco enchufado.

Ahora viene la batería de preguntas...
- ¿Estas discrepancias con la geometría (sobre todo esa manía por usar solo dos cabezas) son cosa del DivMMC virtual, del ZX-UNO o de la versión de las ROMs del +3e. No he podido probar a meterle las ROMs 1.43 a mi +3 porque no tengo EPROMs limpias para comprobarlo.
- ¿Existe alguna manera de "sincronizar" la geometría o tengo que tirar de calculadora para averiguar en qué cilindro tengo que parar con el FORMAT TO?.
- ¿Puedo compartir la tarjeta entre mi +3e y mi ZX-UNO? Usando la tarjeta de 512 megas y para tener una partición de 48 megas, en el +3e tendría que usar FORMAT TO 0,15,98 pero en el ZX-UNO debería ser FORMAT TO 0,15,384. ¿Significa eso que si formateo la tarjeta en el +3e, el ZX-UNO no podrá ver todos los datos? ¿Y si la formateo en el ZX-UNO, el +3e se me comerá parte de la partición FAT? ¿O una vez ya creadas las particiones el límite no importa?

ACTUALIZO: Por probar, he hecho una imagen .hdf de la tarjeta. ZX Spin (con un DivIDE y la ROM 1.43) coincide con lo que da el Spectrum +3 real. Desarto que el problema sea la versión de las ROMs del +3e.

También he probado con ZEsarUX 4.1, DivMMC y versión 1.43. La geometría detectada es 3906/2/128. Parece que es el DivMMC el que tiene tendencia a detectar la geometría con 128 sectores.

Responder