Blog:Prevod obrazov diskiet PMD 32 na fyzickú disketu a naopak

Z PMD 85 Infoserver

Prevod obrazov diskiet PMD 32 na fyzickú disketu a naopak

V súčasnosti sa s reálnym PMD 85 obvykle používajú súbory obrazov diskiet P32 s PMD 32-SD. Keď ale máte originálnu PMD 32, tak by bolo dobré vedieť dostať obrazy diskiet s novými hrami na fyzické diskety. Pred časom mi Jozef Kardoš opravil kedysi dávno získanú DPS originálnej PMD 32 a tak som sa pustil do vytvorenia fyzických diskiet, aby som si mohol vyskúšať PMD 85-3 s originálnou PMD 32 (v mojom prípade teda iba DPS PMD 32 s pripojenými mechanikami).

Budeme potrebovať 4 utility:

  • Raw2Dsk - konverzia "čistého" (RAW) obrazu disku na DSK obraz disku (utility DSK <-> RAW)
  • Dsk2Raw - konverzia DSK obrazu disku na "čistý" obraz disku
  • CPDWrite - zápis DSK súboru na fyzickú disketu (utilita CPDWrite)
  • CPDRead - vytvorenie DSK súboru z fyzickej diskety (utilita CPDRead)

Obraz diskety P32 --> fyzická disketa

Diskety používané na PMD 32 sú 5,25", DS (double sided / obojstranné), DD (double density / dvojitá hustota), 48 TPI (tracks per inch / stôp na palec). Diskety sú formátované na 40 stôp na stranu, 9 sektorov na stopu a 1 sektor má veľkosť 512 bytov, čo dáva celkom 2 x 40 x 9 x 512 = 368640 bytov a to je aj veľkosť súboru obrazu disku P32.

Jednou z dôležitých vecí je, že originálna PMD 32 formátuje diskety tak, že sektory na jednej stope nie sú uložené vo vzostupnom poradí od 1 do 9, ale sú "poprehadzované" a to na každej strane diskety inak (tzv. skew factor je tu 3). Na strane 0 sú sektory v poradí 3, 6, 9, 1, 4, 7, 2, 5, 8 a na strane 1 sú sektory v poradí 2, 5, 8, 3, 6, 9, 1, 4, 7. Naopak, súbor obrazu disku P32 musí byť vytvorený tak, aby boli sektory na stope lineárne za sebou, teda od 1 do 9.

To znamená, že súbor obrazu disku P32 potrebujeme skonvertovať do súboru obrazu disku DSK s tým, že v DSK súbore už budú sektory v požadovanom poradí. To urobíme nasledovne:

raw2dsk -t40 -s9 -l2 -q3,6,9,1,4,7,2,5,8 -w2,5,8,3,6,9,1,4,7 rawdisk.p32 dskdisk.dsk

Teraz, keď už máme vytvorený DSK súbor, môžeme ho zapísať na fyzickú disketu pomocou DOSovskej utility CPDWrite. Potrebujeme teda počítač, kde máme 5,25" (ideálne) DD mechaniku a MS DOS. Keďže utilita pristupuje priamo na radič disku, utilita nebeží v operačných systémoch s NT jadrom (od WinXP vyššie, ak sa nemýlim). Ja sám mám ale starší počítač iba s WinXP a tak to robím tak, že si pripravím DSK súbory na disk, ktorého partícia je vidieť "pod DOSom" a naBOOTujem zo "záchrannej diskety" Win98. Takto som prakticky v DOSe a môžem spustiť utilitu CPDWrite.

K CPDWrite patrí aj konfiguračný súbor CPDWrite.CFG, v ktorom sa definujú parametre použitej mechaniky. Parameter tracks nastavíme na hodnotu 0, aby sa tento parameter vzal z obrazu disku. Parameter drive je jasný, určuje písmeno mechaniky, na ktorú sa bude zapisovať. Parameter step sa nastavuje na hodnotu 2 v prípade, ak sa zapisuje na 360 kB disketu (DD) v 1.2 MB mechanike (HD), inak je 1. Parametrom media&type sa určuje typ diskety vs. mechaniky.

#tracks     = 0     ; valid range is 1 - 85, 0 = use tracks value from image
#drive      = A     ; A or B
#step       = 1     ; number of tracks to advance for each stepping pulse
#media&type = 2     ; drive media and type used..
                    ; 0 for  1.2MB 5.25" floppy in  1.2MB drive
                    ; 0 for 1.44MB  3.5" floppy in 1.44MB drive
                    ; 1 for  360KB 5.25" floppy in  1.2MB drive
                    ; 1 for  720KB  3.5" floppy in  720KB drive
                    ; 2 for  360KB 5.25" floppy in  360KB drive
                    ; 2 for  720KB  3.5" floppy in 1.44MB drive

Samotný zípis na fyzický disk prevedieme nasledovne:

cpdwrite dskdisk.dsk

Fyzická disketa --> obraz diskety P32

Pre vytvorenie DSK obrazu disku použijeme utilitu CPDRead. Je to opäť DOSovská utilita a tak pre ňu platí to isté, ako pre CPDWrite. Aj CPDRead má svoj konfiguračný súbor CPDRead.CFG. Parameter tracks určuje počet čítaných stôp na jednej strane, u nás 40. Parameter sides určuje počet čítaných strán, u nás 2. Parametre drive, step a media&type majú rovnaký význam, ako pri CPDWrite.

#tracks     = 40    ; valid range is 1 - 80
#drive      = A     ; A or B
#sides      = 2     ; 1 or 2 (both)
#step       = 1     ; number of tracks to advance for each stepping pulse
#media&type = 2     ; drive media and type used..
                    ; 0 for  1.2MB 5.25" floppy in  1.2MB drive
                    ; 0 for 1.44MB  3.5" floppy in 1.44MB drive
                    ; 1 for  360KB 5.25" floppy in  1.2MB drive
                    ; 1 for  720KB  3.5" floppy in  720KB drive
                    ; 2 for  360KB 5.25" floppy in  360KB drive
                    ; 2 for  720KB  3.5" floppy in 1.44MB drive
                    ; 2 for  720KB  3.5" floppy in  720KB drive

Obraz disku sa teda vytvorí nasledovne (prípona sa nezadáva, bude automaticky DSK):

cpdread dskdisk

Následne potrebujeme vytvoriť P32 súbor z DSK súboru. Použijeme na to utilitu Dsk2Raw. Ako bolo spomenuté vyššie, obraz disku P32 musí mať sektory lineárne za sebou od 1 do 9, čo zabezpečíme príslušným parametrom utility.

dsk2raw -q1,2,3,4,5,6,7,8,9 dskdisk.dsk rawdisk.p32

Prevedené obrazy diskov

Niektoré prevedené obrazy diskov P32 na DSK možno stiahnuť tu. V tomto archíve sa tie obrazy nebudú aktualizovať, skôr asi doplníme samostatné archívy hier jednotlivých softvérových skupín a podobne.