Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Emulación de sistemas DOS, Windows, DR-DOS, OS/2, Linux y sus sabores. Desde 8088 hasta Pentium 3.
anormal
Dragon 32
Dragon 32
Mensajes: 26
Registrado: 11 Ene 2016, 13:03
Gracias recibidas: 8 veces

Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor anormal » 25 Ene 2016, 14:07

Buenas,

Dejo por aquí algunas notas sobre que es la Kryoflux, la Supercard Pro, y un poco sobre preservación de disquetes/floppys.

Quiero dejar claro que el texto está pensando para tener una información por encima del tema, no he entrado en detalles técnicos, y quizás algunos detalles no sean exactos al 100%. Por supuesto cualquier corrección o sugerencia será bienvenida.

Así mismo, solo expondré la máquina que conozco bien, un PC, el resto de máquinas y sus disqueteras son bastante distintas, desde la codificación a nivel magnético hasta el sistema de archivos. Pero los conceptos son fácilmente trasladables.

Los nombres de los niveles me los saco un poco de la manga, tampoco es que tenga una referencia que establezca un glosario completo o exacto. Así que mezclo un poco de aquí y allá. Al final del documento dejo referencias mucho más exhaustivas para el que quiera leer más.

Disquete/floppy/disco son para mi sinónimos, así que los usaré intercambiablemente según plutón esté en conjunción o no con la tierra :D

Antes de empezar... bueno es obvio que un disquete tiene 2 caras, en general transparente para el usuario, la información se graba alternando entre una y otra, y en otros casos las caras son independientes y el usuario tiene que girar el disquete para acceder a la otra (nunca en PC pero sí en máquinas como el C64, y creo que el Atari ST, desconozco en CPC). Así mismo, cada cara está compuesta de cilindros/pistas, y cada cilindro a su vez por sectores. Por tanto, es común escuchar cosas como el sector 9, de la pista 4 de la cara 0 tiene un error.

A veces he visto numerar las caras como 0 y 1, o como 1 y 2, así que cuidado. Sectores siempre empiezan en 0 (que yo sepa)

Ahora voy a exponer los distintos niveles en los que funciona un floppy.

- Medio magnético -
====================

La superficie del disco (sea de 5 1/4 o 3 1/2) es una lámina de mylar (seguramente más modernamente de otro material) recubierta del medio magnético. Cuando se graba información en este sustrato, lo que hace el cabezal/es es mandar impulsos eléctricos a una bobina muy pequeña que básicamente cambia la polaridad en la superficie.

Por tanto, cuando el cabezal lee la superficie lo que lee son cambios de polaridad, ahora hay, ahora no hay, etc... Es por tanto una información "analógica".

El cabezal traslada esto a impulsos eléctricos, estos son amplificados (son muy débiles en la superficie) y eso pasa a una circuitería que los convierte a digital, esto es, los famosos 1s y 0s de la información binaria.

- Codificación digital -
==============
La conversión analógica/digital al final termina en una ristra larga de 0s y 1. Otra circuitería dentro de la unidad convierte esta ristra de 1s y 0s en datos binarios. Primero se acumulan en un buffer interno y desde allí se van descodificando.

La información en el disco no está grabada exactamente como es. Por ejemplo una letra A, normalmente en el código ASCII es representada por el número 65, esto es, un byte con valor 65, en binario 1000001. Esta información en el disco no está grabada como creemos (imaginemos de manera sencilla lo siguiente), si + es 1 y - es 0, en la superficie del disco no está +------+. Porqué?, pues porque las tolerancias con las que se graba la información, las variaciones de velocidad del giro del motor, la imprecisión de la cabeza lectora, etc... hacen que sea preciso grabar de otra manera.

La información por tanto se "codifica". Más exactamente para PC, las primeras unidades usaron codificación FM, para posteriormente pasarse a MFM, C64 usa GCR, Atari ST MFM (sino me equivoco), etc. Estas codificaciones digamos que son más robustas y permiten leer mejor los datos. MFM convierte un byte en una ristra de bits, 2 bits por bit real de información, y modifica los datos de manera que no haya largas ristras de 1s (mientras más 1 lee el cabezal va "ganando" corriente y pierde sensibilidad, por decirlo sencillamente).

Es más complejo que todo eso por supuesto, al final del documento están los obvios enlaces a la wikipedia y demás.

Bien, entendemos ahora que el paso analógico a digital nos devuelve una ristra de datos codificados de cierta manera, que cambia según la plataforma.

- Caras/pistas/sectores -
=========================

Ahora bien, ya aquí hay diferencias en cuanto a plataformas, porque por ejemplo la disquetera del Amiga era muy potente en hardware (se podían hacer auténticas virguerías), la de C64 tenía su propio procesador que ejecutaba el código que nosotros le dábamos, mientras que la de PC era más sencilla y podía hacer menos cosas.

Recuerden que hablo solo de la disquetera físicamente. Ésta estaba unida por el cable de datos a una controladora (microchip con circuitería, firmware, etc) que la manejaba, en el caso del C64 se puede decir que la controladora estaba dentro de la misma unidad. Mientras que en PC, la controladora de disco de la placa base estaba conectada a la disquetera (recuerden que el hardware de esta era más sencillo)

De lo que hable de aquí en adelante será todo para PC solamente.

La controladora le dice a la disquetera cosas como, vete a esta pista, lee este sector, escribe este sector aquí, formatea esa pista, etc...

Dentro de la disquetera es el chip principal el que convierte la información de digital a la representación que luego será grabada en disco. El sistema operativo se encarga de ordenar a la controladora en qué sectores debe guardar la información y de igual manera mantener una estructura de datos (en el mismo disco) de manera que esta sea después recuperable (el sistema de archivos del que hablaremos después).

Yo entiendo la codificación digital como el paso de un archivo a la estructura del disco. La información es archivada sector a sector, y es la controladora de discos la que codifica cada sector al ser grabado al disco.

Esto es importante así que explicaré de qué está formada una pista exactamente en el disco, los distinto campos que contiene:

Código: Seleccionar todo

- Physical index mark: es el agujero famoso que veíamos en el disco de 5 1/4, y es donde la controladora sabe que empieza la pista
(usa un sensor de luz), posteriormente los de 3 1/2 cambiarían esto pero el significado es el mismo.
- Preindex gap* (GAP 5)
- Index address mark (IAM)
- Post index gap (GAP 1)
Para cada sector excepto el último
- Sector ID**
- Post ID gap (GAP 2)
- Sector data (512 bytes por defecto)
- Post data gap (GAP 3)
Para el último sector
- Sector ID
- Post ID gap (GAP 2)
- Sector data (512 bytes por defecto)
- Final gap (GAP 4)

*GAP son pequeños espacios rellenos de una marca especial para separar las zonas, y que la controladora le diera tiempo de procesar y separar bien los datos entre sectores.

**ID son pequeñas marcas que identifican las zonas, así como el número del sector, etc.

Cada uno de estos campos tiene cierta longitud y ciertos datos, pero no entraremos en tanto detalle aquí.

El tamaño de un sector puede variar, desde 128 bytes hasta lo que quepa en la pista (hubieron formatos con 1 sector de 8192bytes si mi memoria no falla). El estandar inicial de msdos tenía sectores de 128 bytes, pero luego se estandarizo el tamaño a 512bytes (sigue siendo así hoy en día sino me equivoco)

Vemos que lo que es la información en sí que se almacena en el sector está en el campo Sector Data, el resto de campos está para
poder llevar la estructura del disco.

Ahora viene lo importante...

El formato de un disco a este nivel es el MÍNIMO NIVEL al que puede llegar un programa ejecutándose. Esto es, un programa no puede decirle a la controladora/chipset que grabe la información en un formato que no sea MFM, pero sí puede cambiar el formato de una pista y de un sector.

Para acceder a un nivel tan bajo el programador tiene que acceder directamente al hardware, y "hablarle" directamente al chipset de la controladora.

Formatear un disco consiste básicamente en eso, en crear estas pistas, con sus sectores, delimitadores de sectores, códigos de marca, etc (más el sistema de archivos que hablaré al final).

Los formatos más importantes por defecto son (msdos):

Código: Seleccionar todo

Tamaño  Pistas   Sectores/pista    Tipo disco   Caras
360kB   40          9                5.25" DD     2
1440kB   80         18               3.5" HD      2
720kB   80          9                3.5" DD      2


Hay más por supuesto, algunos especiales como el famoso 2M de Ciriaco García de Celis.

Pero qué pasa si usamos un formato distinto? PUES QUE MSDOS NO PODRÁ ACCEDER A LA INFORMACIÓN Y POR TANTO EL disquete NO PODRÁ SER COPIADO NORMALMENTE.

Entendemos ahora dónde está el truco de los discos protegidos contra copia. Usan formatos no estándar para grabar la información.

Estas variaciones en el formato eran los trucos que usaban los programadores para evitar que copiarais el disquete por "la cara".

Desde pistas con sectores con identificadores extraños, sectores donde se guardaba información dentro del GAP (no estaban diseñados para contener información), pistas grabadas a distinta velocidad, sectores que al leerlos daba un error de lectura (por ejemplo la famosa marca láser) y un largo etcétera de técnicas que se usaron para evitar que duplicáramos ese disco.

Pasamos ahora al siguiente nivel

- Sistema de archivos -
=======================
Básicamente el sistema de archivos es una estructura creada por el sistema operativo para mantener los ficheros y carpetas accesibles de manera sencilla.

El sistema operativo crea una capa de abstracción para el programador, de manera que este no tenga que acceder a pistas, sectores y caras sino que simplemente este programador le pueda decir al sistema operativo: "abre este archivo", "carga 1000bytes", "cierra el archivo".

También el sistema operativo permite que el usuario acceda a sectores individuales, pero raramente se usa (excepto para temas relacionados con protecciones contra copia).

Para abstraer esta complejidad el SO crea el concepto de clúster, qué es básicamente un conjunto de sectores. Por tanto un fichero se graba por clústeres y no por sector. Esto se hace así por simplificar el SO, mientras más grande es el disco (y aquí hablo de discos duros básicamente) más clústeres habrá por sector. De manera que no es no lo mismo decir que un fichero ocupa 100 clústeres, que 500 sectores.

Pero no es importante para lo que nos interesa (a no ser que hablemos de diseños de sistemas operativos) así que simplificaré bastante.

Más claramente veamos un disquete (un disco duro es ligeramente diferente al empezar con el MBR, la partición) con un formato normal de MSDOS:

- Sector 0, pista 0, cilindro 0: Sector de arranque: es el primer sector que accede el sistema operativo cuando accedemos al disquete, ya sea si el sistema operativo arranca de este disquete o si accedemos a él para ver los ficheros. Por tanto un disquete con el primer sector estropeado (errores de escritura, error físico), no puede usarse. Hay alguna utilidad vieja que era un programa residente que permitía usarlos
engañando al SO dicíendole que ese sector estaba en otro lado, pero obviemos esas excepciones.

- A continuación sectores de la FAT (tabla de acceso a ficheros). Es un conjunto de sectores que usa el sistema operativo para saber dónde están un archivo, y le indica a este si el sector (clústeres realmente) están ocupados o no. Por tema de seguridad hay 2 FATS, la segunda duplicada de la primera por si acaso falla esta se usa la segunda.

- Sectores del directorio raíz: guardan la información de los archivos y carpetas de este.

- A continuación ya la información de los archivos o de otros directorios.

Vemos que mientras más arriba sean los niveles de acceso al disco, más sencillo es para el programador pero por otro lado menos puede salirse del "estándar".

Ejemplo:
- acceder a un fichero -> nivel del sistema operativo->este accede a clústeres/sectores y devuelve la información "completa"
- acceder a sectores físicos -> nivel del sistema operativo o mediante la BIOS->acceso a sectores del disco y devuelve sólo esa información
- acceso a bajo nivel de los sectores (cambios de formato, lectura de IDs de sectores, gaps, formateos no estándares) -> nivel de la controladora de disco mediante puertos -> devuelve esta información

Finalmente, después de todo este rollo. ¿Con qué nos quedamos?

Los disquetes contienen múltiples niveles de datos. Las protecciones contra copia de los disquetes está en el 99% de los casos en el nivel más bajo posible, y estas consisten en formatos no estándar del disco, el cual el SO no puede entender, y por tanto se evita que el usuario pueda copiar el disquete con un simple diskcopy o con una copia de los archivos.

Hay formatos y trucos que eran imposible reproducirlos con una disquetera/controladora estándar de PC (básicamente violando el estándar MFM de codificación o creando tipos de sectores con errores y demás). Por lo que efectivamente hay protecciones en PC que son incopiables en un PC normal, le demos las vueltas que le demos.

En el siguiente capítulo :D escribiré sobre la preservación de los disquetes, el porqué es TAN importante y para qué sirven y qué hacen las controladoras avanzadas Kryoflux, Supercard por y la ya antediluviana Transcopy de Central Point.

Referencias:

Sistema de archivo dos, sector boot, fat, etc:
http://averstak.tripod.com/fatdox/bootsec.htm
https://www.win.tue.nl/~aeb/linux/fs/fat/fat-1.html
https://en.wikipedia.org/wiki/Design_of ... ile_system
https://en.wikipedia.org/wiki/Modified_ ... Modulation
Lista oficial de formatos permitidos por MSDOS: https://support.microsoft.com/en-us/kb/75131

Controladora de discos, bajo nivel, bios:
https://es.wikipedia.org/wiki/Formato_de_disco
http://www.classiccmp.org/dunfield/r/765.pdf
https://es.wikipedia.org/wiki/Controlador_de_disquete
http://www.isdaman.com/alsos/hardware/fdc/floppy.htm
https://en.wikipedia.org/wiki/INT_13H
Última edición por anormal el 26 Ene 2016, 12:42, editado 1 vez en total.

Avatar de Usuario
Wintermute
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 157
Registrado: 07 Dic 2015, 12:05
Sistema Favorito: MSX
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo GameBoy
Primera consola: Vectrex
Gracias dadas: 7 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor Wintermute » 25 Ene 2016, 23:38

Vaya currada =D>

Pues si que después de décadas acabo de entender, al menos de forma básica, el tema de los discos protegidos contra copia. Una pasada, salvo que haya correcciones o apuntes por parte de otra persona me espero por la segunda parte. Si no fuera porque mi lista de compras es más grande que mi cuenta bancaria me pillaría una Kryoflux solo por trastear con ella.

Sin entrar en detalles que ya es mucho, esto se puede trasladar a las cintas magnéticas de datos ? En esencia la forma de grabado de datos en ella es igual/similar ¿?
The President has been kidnapped by ninjas

anormal
Dragon 32
Dragon 32
Mensajes: 26
Registrado: 11 Ene 2016, 13:03
Gracias recibidas: 8 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor anormal » 26 Ene 2016, 09:42

Buenas, el texto podría ser mucho más exacto y detallado en muchos aspectos, pero he querido hacerlo una mera introducción.

Respecto a las cintas magnéticas, entiendo que es bastante diferente. Las cintas son medios secuenciales, se accede a la información de manera continua, por tanto entiendo que no hay sectores, ni pistas ni nada parecido. La codificación que yo sepa no es FM o MFM, tendrá su propia codificación, y con sus variaciones claro, de ahí las cintas turbo, etc...

La semana que viene escribiré otro tocho sobre preservación y demás :D

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor Quest » 26 Ene 2016, 09:52

Interesante... Lástima que la parte más interesante (la que promociona el título del hilo precisamente) no esté aún :roll:

Por cierto, una pequeña corrección:

, y en otros casos las caras son independientes y el usuario tiene que girar el disquete para acceder a la otra (nunca en PC pero sí en máquinas como el C64, y creo que el Atari ST, desconozco en CPC).


El C64, usa disquetes de 5,25" a los cuales evidentemente no se les puede dar la vuelta. A no ser que hubiera otras disqueteras que desconozco...

El atari ST, usaba disquetes de 3,5", así que tres cuartos de lo mismo ;)

Los que sí usan disquetes "reversibles" son el Amstrad CPC y el Spectrum +3, que son de 3" propietarios de Amstrad. Si me equivoco que alguien me corrija :)

Y como curiosidad, la Famicom japonesa (lo que aqui era la NES) disponía de una unidad de disquetes opcional cuyos disquetes también eran reversibles y había que darles la vuelta para acceder al juego de la otra cara.
Además estaba la Twin Famicom de Sharp (si, no solo las fabricaba Nintendo) que tenía la disquetera incorporada.
Última edición por Quest el 26 Ene 2016, 10:25, editado 1 vez en total.

Avatar de Usuario
robcfg
Amiga 1200
Amiga 1200
Mensajes: 1833
Registrado: 07 May 2009, 15:34
Sistema Favorito: Amstrad CPC
primer_sistema: Atari 800XL/600XL
Ubicación: Madrid
Gracias dadas: 168 veces
Gracias recibidas: 67 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor robcfg » 26 Ene 2016, 10:07

Los discos de commodore llevaban boquetes de protección a ambos lados y se podían leer por ambas caras, por lo que había que darles la vuelta.

En cuanto a la pregunta de anormal sobre las cintas magnéticas, pues cada sistema es diferente, lo único en común es grabar las cintas como wav, a partir de ahi te tienes que currar la decodificación de los datos y corrección de errores, pero todo muy artesanal.

Avatar de Usuario
alt
Amiga 2500
Amiga 2500
Mensajes: 3086
Registrado: 07 Sep 2004, 21:52
Ubicación: madrid
Gracias dadas: 215 veces
Gracias recibidas: 295 veces
Contactar:

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor alt » 26 Ene 2016, 10:15

Quest escribió:El C64, usa disquetes de 5,25" a los cuales evidentemente no se les puede dar la vuelta. A no ser que hubiera otras disqueteras que desconozco...


Que sí, que sí, que se les puede dar la vuelta en cualquier disquetera de Commodore: de hecho, hay hasta perforadoras para hacer las muescas de protección contra copia en la otra cara:

Imagen

Y lo mismo vale para los disquetes de PET, C16/+4, Atari 8 bits, etc. De hecho, sería más fácil descartar los sistemas que utilizaban disqueteras de 5.25" con doble cabezal: los últimos modelos para CoCo, la del CoCo3 por ejemplo, lleva dos cabezas si no recuerdo mal.

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor Quest » 26 Ene 2016, 10:21

Gracias por el zasca, alt y robcfg :mrgreen: :boxeo:

No sabía que se hacía eso para aprovechar la otra cara... si seré gañán :D

Gracias tío. No te acostarás sin saber una cosa más :)

Ahora que hablamos de troquelar disquetes, me pasé buena parte de mi juventud pecera (recién llegados 286 y 386) taladrando agujeros en los disketes de 3,5" baja densidad (los de 720k) para formatearlos a alta \:D/ . No es que fueran 100% finos (ya que el compuesto magnético no era el mismo), pero te hacían el apaño. Y encima yo que era muy burro, a esos aún les pasaba el 2M a máxima capacidad :mrgreen: De hecho aun los conservo por ahí por una caja... Me da miedo siquiera a probarlos... mira, igual lo hago este finde :mrgreen:

Avatar de Usuario
Wintermute
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 157
Registrado: 07 Dic 2015, 12:05
Sistema Favorito: MSX
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo GameBoy
Primera consola: Vectrex
Gracias dadas: 7 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor Wintermute » 26 Ene 2016, 10:28

Que ironia, yo recuerdo hacer también lo de taladra los discos "para que cupiera más datos" pero desconocía el porque pasaba. Ahora estoy justo en el lado contrario, tengo algunas cajas de discos nuevos 2HD y según leo para usarlos en el MSX voy a tener que tapar el -bujero-

Lo dela cinta lo preguntaba porque cuando era peque iba visitaba un CPD en el que tenían una maquina que hacia registro de datos en unas cintas grandes. La unidad avanzaba y rebobinaba a la velocidad del trueno (o más) y en su día entendí que era lo mismo que uno de mis discos pero con mucha más superficie pero enrollado para que almacenará más información en menos espacio físico. Nunca es tarde para desvelar estos misterios.
The President has been kidnapped by ninjas

Avatar de Usuario
alt
Amiga 2500
Amiga 2500
Mensajes: 3086
Registrado: 07 Sep 2004, 21:52
Ubicación: madrid
Gracias dadas: 215 veces
Gracias recibidas: 295 veces
Contactar:

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor alt » 26 Ene 2016, 10:49

Wintermute escribió:Lo dela cinta lo preguntaba porque cuando era peque iba visitaba un CPD en el que tenían una maquina que hacia registro de datos en unas cintas grandes. La unidad avanzaba y rebobinaba a la velocidad del trueno (o más) y en su día entendí que era lo mismo que uno de mis discos pero con mucha más superficie pero enrollado para que almacenará más información en menos espacio físico. Nunca es tarde para desvelar estos misterios.


En esas cintas, como en los microdrives, el almacenamiento es aleatorio, no secuencial; así que tendrán que tener un "sector 0" en el que se especifique el formato y el catálogo (digo yo). El almacenamiento es secuencial en las cassettes de toda la vida.

Avatar de Usuario
marcos64
Amiga 1200
Amiga 1200
Mensajes: 1202
Registrado: 03 Sep 2011, 07:53
Gracias dadas: 5 veces
Gracias recibidas: 14 veces

Re: Preservacion de discos, Kryoflux, protecciones de copia etc... Parte 1

Mensajepor marcos64 » 26 Ene 2016, 11:51

alt escribió:
Quest escribió:El C64, usa disquetes de 5,25" a los cuales evidentemente no se les puede dar la vuelta. A no ser que hubiera otras disqueteras que desconozco...


Que sí, que sí, que se les puede dar la vuelta en cualquier disquetera de Commodore: de hecho, hay hasta perforadoras para hacer las muescas de protección contra copia en la otra cara:


Para ser exactos el C64 no usa disquetes de simple cara, es la 1541 la que los usa. El C64 puede funcionar con una 1571, 1581, SFD1001 (con el interface IEEE)... que son de doble cara.
http://marcos64.orgfree.com/
Actualizacion 11/6/2015: Añadida Load'N'Run numero 3.


Volver a “PC Clásico”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados