Ako ste si mohli prečítať minule, z rôznych dôvodov som oprášil pôvodný Dronov HDD patch pre MB-02+ a trocha som ho upravil a doplnil. Dnes pridávam malý návod, ako ho rozbehať. DOPLNENÉ!
Najprv zopár detailov. Jadrom je stále pôvodný Dronov kód, takže vlastnosti sa zmenili len minimálne. HDD patch classic (HDPC) samotný podporuje CF karty (HDD) pripojené ako master i slave, svoje dáta ukladá na partíciu typu 47h priamo, tak ako by ich DOS uložil na disketu. Netreba žiaden filesystém, takže nehrozí žiadna fragmentácia ako pri EasyHDD a FAT. Funguje v režime LBA, ale zachoval som aj podporu CHS, kvôli starším harddiskom. Využíva DMA prenosy a DMA sekvenciu som opravil, takže by mal fungovať so všetkými DMAčkami. Čo sa zmenilo je to, že geometria virtuálnych diskiet je ľubovoľná, takže v praxi môžete použiť akúkoľvek kombináciu sec/trk. Určité obmedzenia samozrejme sú. Počet sektorov na stopu môže byť z rozsahu 2..16, stôp maximálne 255 a geometria nesmie prekročiť 2048 sektorov.
V praxi to znamená, že môžete používať nielen pôvodnú geometriu 127×8, ale napríklad aj 93×11, alebo 64×16, či 128×8. Prípadne kľudne aj disketovú 82×11, neobsadené miesto však zostane nevyužité. Podmienkou pre používanie plného 2048sec formátu (128×8, 64×16) je použitie nového ff17, ktorý s tým počíta a pridáva potrebnú značku do poslednej položky FAT. Bez nej BSDOS nezobrazí správne voľné miesto na takejto virtuálnej diskete. Napriek tomu, že 2048sec formát funguje dobre (keď použijete nový ff17), odporúčam používať skôr formát 93×11, a ak máte staršie virtuálne diskety v geometrii 127×8, nemusíte robiť nič. Z pohľadu CF karty je to fuk a s týmito formátmi si lepšie rozumejú konverzné utilitky na PC.
No ale poďme k veci. Ako prvé si zoberieme nejakú CFkartu a vytvoríme si na nej partíciu typu 47h. Môžete to spraviť v linuxe cez fdisk, prípadne cfdisk. Alebo priamo na ZXS môžete použiť zxfdisk. Windows je dodnes na serióznu prácu s partíciami nevybavený, takže tu asi nepochodíte. Keďže BSDOS podporuje maximálne 255 mechaník a v každej môže byť 2048*1024=2097152 bytes, nemá zmysel vytvárať partíciu väčšiu ako cca 535MB, pretože sa nevyužije celá. Ideálne je, ak máte jednu 512MB CF kartu. Ja osobne mám dokonca len 256MB kartu a ani tú sa mi nepodarilo nikdy zaplniť.
Pripravenú CF kartu môžete daľej použiť dvomi spôsobmi. Buď ju rovno strčíte do MBčka, a partíciu si naplníte až pomocou ZXS sformátovaním jednotlivých virtuálnych diskiet a otrockým kopírovaním z diskiet, alebo existuje oveľa menej tŕnistá cesta predprípravy na PC. Ak už máte nejaké obrazy virtuálnych diskiet z minula, máte to o čosi jednoduchšie. Ak nemáte, pripravíte si niekam tapky, ktoré tam chcete mať. Pomocou utiltitky mbdnew si povytvárate nové mbd súbory, napríklad takto:
mbdnew games01.mbd 93 11 Games01
...
...
mbdnew demos48.mbd 93 11 Demos48
A teraz pozor! HDPC pracuje interne s pevnou veľkosťou virtuálnych diskiet. Vždy je to 2097152 bajtov! Geometria virtuálnej diskety síce je ľubovoľná, ale ak nemá 2048 sektorov, výsledný image vytváraný pomocou mbdnew bude menší a preto ho treba do tejto veľkosti doplniť príslušne veľkým tailom! Utilitka mbdnew priamo nepodporuje formáty 128×8, alebo 64×16, preto si dajme príklad. Najbližšia najväčšia geometria je 93×11, čiže image vytvorený pomocou nej bude mať 2095104 bajtov, čo je o 2048 bajtov menej. No a tento 2kB tail treba ku každému takémuto image prilepiť. Ten tail si vytvoríte v Linuxe napríklad pomocou:dd bs=1024 seek=2048 count=0 if=/dev/zero of=games01.mbd
Platí to pre každú geometriu menšiu ako 2048 sektorov, len tail je vždy príslušne iný. Napríklad pre štandardne používanú geometriu 127×8 je výsledný image o 16384 bajtov menší, takže tail bude mať 16384 bajtov. Vyššie uvedený príkaz, vám ten tail doplní a nech je vstupný mbd súbor akýkoľvek, jeho výsledkom bude vždy mbd s veľkosťou 2097152 bajtov.
Vo Windowse je to komplikovanejšie, ak to chcete zarovnávať ručne. Obsah tailu je nepodstatný, môžete ho kľudne vyrobiť aj v textovom editore, kde vložíte napríklad 2048 medzier, alebo iných znakov a potom ho prilepíte na koniec mbd súborov príkazom type. Windowsáci to však majú o dosť ľahšie, lebo MBD plugin do Total Commandera umožňuje vytvárať priamo mbd súbory 2097152 bajtov veľké, ale interne môžu mať geometriu 127×8, 93×11 alebo 82×11. Aby sme predišli omylom – toto nie je problém len pri HDPC. Tento opruz vás čaká aj pri EasyHDD, ak si chcete ručne vytvárať vlastné mbd súbory.
Je dobré si potom tie vytvárané mbd súbory očíslovať tak, ako ich chcete mať na ZXS za sebou. Pomocou utilitky tap2mbd si do pripravených mbd súborov nasypete tie tapky. Toto nasypanie cez tap2mbd sa dá spraviť aj vo Windowse, alebo aj pomocou Total Commandera. No a keď máte takto pripravené mbd súbory, pekne vezmete príkaz cat (windowsáci príkaz type, alebo Total Commander) a zlepíte všetky tie virtuálne diskety dokopy:
cat *.mbd > moja_cfka.mbh
Zlepujte tak, aby výsledný mbh súbor bol rovnako veľký, alebo menší ako pripravená partícia. Väčší tam nedostanete a menší nevadí, pretože nevyužité miesto si potom sformátujete pomocou ff17. Opať pripomínam, že mbd súbory musia mať 2097152 bajtov, nech je ich interná geometria akákoľvek! Pred vypublikovaním na CF kartu si ešte prekontrolujte konzistenciu pomocou mbdcheck, pretože tap2mbd má nejaké muchy a sem tam sa mu podarí image rozbiť:
mbdcheck moja_cfka.mbh
Takto predpripravený obsah teraz vypublikujeme na partíciu. Linuxáci už vedia, že ich neminie príkaz dd, takže pomocou fdisk -l si preveríme či si dobre pamätáme, kde nám partícia sedí (napríklad /dev/sdb1) a potom to tam zapíšeme:
dd if=moja_cfka.mbh of=/dev/sdb1
Ani windowsáci neutrú nos, lebo môžu použiť Win32 Disk Imager. Týmto je CF karta pripravená a môžete si ju pripojiť do MBčka.
Môžete ešte postupovať aj tak, že prázdnu CFku s partíciou 47h strčíte do MBčka, ako v tom príklade na začiatku, a v novom ff17 nastavíte una=1, drv=i, trk=93, pridáte riadok 270 NEXT i a riadok 140 FOR i=3 TO XXX, kde XXX je posledná použiteľná virtuálna mechanika (VDTCreator vám vypíše, ktorá to je) a potom to celé spustíte a idete si pospať. ff17 vám medzitým všetky virtuálne mechaniky sformátuje. Alebo môžete použiť Shrekov FF20, ktorý tiež vie formátovať celé rozsahy virtuálnych mechaník, nielen po jednej. Následne si CFku pripojíte k PC, a postupujete podľa môjho starého návodu.
Povedzme, že všetko máte za sebou takže teraz prichádza druhý krok. Vytvoriť si Virtual Disk Table pre HDPC. V minulosti bol tento úkon utrpením, lebo na to neexistoval žiaden nástroj. To sa zmenilo, keďže dnes môžete použiť môj VDTCreator. Stačí ho spustiť, sám si nájde partíciu 47h, vygeneruje k nej VDT a uloží vám ju na disketu. Zatiaľ odporúčam použiť jednu CF kartu s jednou partíciou 47h, lebo HDPC síce podporuje VDT skombinované z viacerých paritícií na master aj slave zariadeniach, VDTCreator to však zatiaľ nevie. Plánujem to tam dorobiť, ale v reálnom použití som to nikdy nepotreboval. Mňa napadá jedine to, že by ste chceli priamo na ZXS kopírovať niečo z CFky, ktorú máte od niekoho iného. Takže to nemá prioritu. Každopádne ak to potrebujete, stále si môžete vygenerovať VDT aj ručne a bude vám to fungovať. Rovnako som sa nestretol s potrebou použitia Extended partícií, takže ani tie VDTCreator nepodporuje (a ani nebude).
No a už zostáva len posledný krok. Vložiť VDT do HDPC a spustiť ho. Môžete to spraviť ručne, alebo som pripravil kratučký BASIC programček, ktorý to spraví za vás. Samozrejme to môžete aj vložiť do autoexeku, a bude sa vám to samo spušťať vždy po boote.
Ak sa chcete úplne oprostiť od diskiet, pripravil som aj FlashBoot. To je náhrada obsahu boot ROM, kde je spravený čistý boot BSDOSu, nasledovaný inštaláciou HDPC. Podmienkou je, že máte namiesto pôvodnej 2k EPROMky osadenú aspoň 32k EEPROMku. FlashBoot sa však nedá predpripraviť, pretože VDT je pre každého iná, takže ho treba skompilovať s vašou konkrétnou VDT. Ak si s tým neviete rady, napíšte mi. Buď vám FlashBoot pripravím ja, alebo vás navediem ako ho spraviť svojpomocne. V repozitári síce je FlashBoot aj predpripravený, ale má v sebe EasyHDD 1.05, takže pre náš prípad je vám na nič.
No a tým sme sa dostali na koniec. Ak ste všetko spravili správne, mali by ste sa tešiť z funkčného systému. Ak nie, napíšte mi, určite spolu zistíme, kde je zádrheľ.
Vlastne to ešte nie je úplný koniec. Dáta treba občas aj prenášať. Či už zo ZXS do PC, alebo opačne. Ja na toto primárne používam Gotek, lebo CFku mám schovanú na pevno v MBčku, ale ide to aj tak, že úplne prvú virtuálnu disketu na začiatku partície používate ako workspace. Keď treba preniesť niečo zo ZXS, nahráte si to na tú prvú virtuálnu disketu, potom zoberiete CFku, pripojíte si ju k PC, a potom pomocou dd si vyseknete len túto virtuálnu disketu:dd bs=1024 count=2048 if=/dev/sdb1 of=workspace.mbd
Pri opačnom smere si do workspace.mbd naimportujete čo potrebujete a zapíšete to späť spôsobom, ktorý som popisoval vyššie:
dd if=workspace.mbd of=/dev/sdb1
Tým, že sa jedná o virtuálnu disketu na začiatku partície, nemusíte nič počítať a vždy máte istotu, že operácie robíte len nad touto oblasťou partície. Príkaz dd je však mocný nástroj a pomocou neho viete takto vysekávať i zapisovať ľubovoľnú z virtuálnych diskiet, stačí si len vypočítať príslušný offset. Samozrejme sa s ním dá aj všetko krásne rozdrbať, takže opatrne a počítajte vždy aspoň dvakrát.
Niečo málo o zálohovaní nájdete ešte aj v mojom starom článku, ktorý som ale v októbri trocha občerstvil, takže je relatívne aktuálny, aspoň čo sa týka postupu.
Určite ste si všimli, že prevádzkovanie HDPC je o niečo menej pohodlné ako EasyHDD, ale úpimne povedané, je to vec uhla pohľadu. Pre mňa je to jednoduchšie ako s EasyHDD, hlavne v prípade, že potrebujem zmeniť/opraviť obsah konkrétnej virtuálnej diskety, pretože pomocou dd manipulujem s disketou priamo a nemusím brať ohľady na fragmetáciu. Skúste si prepísať jeden konkrétny mbd súbor na CFke s FATkou. Nedá sa to bez fragmentácie, a nemáte istotu, že vám EasyHDD potom nerozbije filesystém. Vždy treba kopírovať celý set mbd súborov, na čistú CF, aby bolo zaistené, že nebudú fragmentované.
HDD patch classic je preto primárne určený pre ľudí, ktorí si raz naplnia obsah CFky a potom ho príliš nepotrebujú meniť a ak áno, neboja sa naštartovať dd, prípadne pre občasné prenosy medzi ZX a PC sa im neťaží vytiahnuť floppy mechaniku, alebo Gotek. No a to je všetko, čo by som k tomu mal. Ak vám niečo nie je jasné, neváhajte sa opýtať.
HDPC, VDTCreator aj nový ff17 si môžete stiahnuť v mojom repozitári.
Be First to Comment