Format disc Ipca

Antecedents

Com que cada cop és més dificil aconseguir unitats de disquet de 3.5, Mayer ha optat per oferir als seus clients una actualització a memòria USB. Per aconseguir això han usat un emulador de unitat de disquet: Ipca USB Floppy Emulator v3. El client substitueix la unitat de 3.5 per aquest emulador i ja pot treballar amb USB.

Emulador USB de disc de 3.5

Aquest emulador intenta simular exactament el HW d'una unitat de 3.5, i sembla que per motius de compatibilitat i/o simplificar el codi del firmware, el format de la imatge de disc l'han fet el màxim de similar possible al format físic d'un disc....

Format de la imatge

Tots els fitxers d'imatge de disc són de exactament 4250000 bytes independentment del disc que es simuli (180K,360K,720K,1440K,1220K,2880K). El fitxer internament està dividit en 170 blocs de 25000 bytes cada un. Cada bloc representa una de les possibles pista del disc de la següent manera:

Offset Bloc
0 Cara 0 Pista 0
25000 Cara 0 Pista 1
.
.
.
.
.
.
2100000 Cara 0 Pista 84
2125000 Cara 1 Pista 0
2150000 Cara 1 Pista 1
.
.
.
.
.
.
4225000 Cara 1 Pista 84

Dins de cada bloc hi han guardades les dades de la pista en forma d'un vector de bits. Cada bit representa si hi ha hagut un canvi de flux magnètic en el disc (1=canvi de flux, 0=no canvi).

La imatge, no conté enlloc informació sobre quin tipus de disc i/o format les dades representen. Per sort Mayer sempre utilitza discs de 3.5 de 1440K.

Codificació dels blocs/pistes

Per limitacions físiques i tecnològiques, no és pràctic guardar llargues seqüències de només 1 o només 0 en un medi magnètic. Per evitar aquest problema, el FDC (Floppy Disk Controller) codifica les dades abans d'enviar-les a l'unitat de disc, garantint un mínim de transcisions de 0->1 i de 1->0.

La codificació utilitzada és la [[1]]. Que funciona de la següent manera:

Bit Dades Codificaició MFM
0 00 si BitDades anterior==1
01 Si BitDades anterior==0
1 10

Per exemple si codifiquem :

0xaf 0xf0
1 1 1 1 0 1 0 1 0 0 0 0 1 1 1 1



El primer pas, és buscar la seqüència d'inici de bloc, un cop detectada, es pot decodificar el bloc. Existeixen 2 tipus de blocs en el disc:

  • Sector Identifier
  • Data Block


Cada pista té el següent aspecte:

Pista
Start Gap Sector Identifier Identifier Gap Data Block Data Block Gap Sector Identifier .... Data Block Track Gap

Per més informació sobre com estan les dades, es pot consultar l'estandard Ecma-125.