(Téměř) každý věrnější uživatel počítače Didaktik rozšířeného o disketovou jednotku dříve nebo později zatouží si připomenout (nejen) svou vlastní tvorbu z 90. let. Jedna z přímočarých možností je donést starý počítač z půdy, zapnout ho a nahrát diskety, které v čitelném stavu přečkaly až do současnosti. Při troše štěstí (a dobrých skladovacích podmínkách) počítač stále funguje a diskety ještě nějaký ten pátek také vydrží. Ale věci se v průběhu času rozbíjí a případně i ztrácí – a konkrétně diskety jsou známy svou nespolehlivostí. Možná byste si chtěli své programy zálohovat v PC než bude pozdě.
Pokud se tak rozhodnete, dříve nebo později (že se opakuji) narazíte na problém – přestože jste si sehnali potřebný software (např. volný FDIO pro všechny verze Windows, popř. komerční WinHex s GUI pro řadu WinNT, nebo obecně jakýkoliv software pro nízkoúrovňový přístup k datům, resp. jejich záchraně) a vaše PC disponuje potřebným hardwarem (předpokládejme 3.5" mechaniku), tak přesto se vám v drtivé většině nedaří přečíst vaše stará média. Situace se stane o to obtížnější, jsou-li data uložena na 5.25" disketách – z jejich podstaty se vám je na současných PC nikdy nepodaří zprovoznit.
Tento článek jsem napsal jako podrobný (a ve srovnání s podobnými články na internetu snad i nejúplnější) tutoriál pro všechny, kteří buď nikdy předtím netušili, že mohou svá data vidět i jinde než na obrazovce od didaktiku, popř. se o to už pokoušeli, ale bez valnějšího úspěchu. Zkušení spectristé (resp. didaktikáři) tu zřejmě nic nového neobjeví – tento článek také není primárně určen pro ně (minimálně proto, že svá data už mají dávno zálohována a pravděpodobně je do PC dostali i sofistikovanějším způsobem než jaký tu budu popisovat).
Jak už jsem o pár řádků výš naznačil, 5.25" diskety budou o něco náročnější na převod do PC, proto si je necháme "na potom" a pustíme se nejprve do 3.5" médií.
3.5" diskety (a mechaniky D80)
Přestože se vývojáři v Didaktiku zabývali návrhem a tvorbou počítačů už nějakou dobu, svou první disketovou jednotku vyrobili teprve v roce 1991 – externí 5.25", abychom byli přesní (proto jsem zcela oprávněně a logicky začal 3.5" mechanikami – abych vás trochu napnul). Tyto jednotky byly ovládány systémem (dnes bychom s ohledem k rozsahu a schopnostem řekli spíše "ovladačem") nazvaným MDOS, tj. M Disk Operating System, kde ono osamocené M pravděpodobně vyjadřuje cílenou souvislost s počítačem Didaktik M vydaným o rok dříve. Systém MDOS byl vydán ve třech oficiálních verzích: 1.0 z roku 1991, 1.0 z roku 1992 (v čísle verze není překlep) a 2.0 z roku 1993. Abych vás ušetřil zbytečných detailů, řeknu jen, že původní verze z roku 1991 obsahovala (a stále obsahuje) spoustu chyb, z nichž ale žádná není vzásadě "až tak kritická" co se běžné práce s mechanikou týče, i když v některých případech jen shodou šťastných okolností. Pro ilustraci jedna chyba za všechny (narazil jsem na ni při odlaďování utilit, o kterých si povíme dále): na adrese #226B je instrukce, která při inicializaci mechaniky nastavuje správný výchozí počet sektorů na jedné stopě diskety, ovšem na špatné místo o jeden bajt; naštěstí ale pokud jako běžný uživatel pracujete s mechanikou z Basicu příkazy Load *"...", Save *"..." atd., je tato špatná (a potenciálně devastující) informace nahrazena tou správnou z parametrů vložené diskety. Verze MDOSu z roku 1992 proto obsahuje "záplaty" v té době objevených chyb (uvedená chyba však "přežila"). Každopádně co nás na obou verzích MDOSu1 zajímá je formátovací rutina – ta totiž obsahuje dvě drobné a hlavně zbytečné chyby, konkrétně kratší než správně dlouhou prodlevu před prvním sektorem a špatné číslování stran diskety (místo běžného číslování stran 0 a 1 je MDOS čísluje jako 1 a 2). Ať ta či ona chyba, ovladače PC mechanik jsou z MDOS-ových disket zmateny a v drtivé většině případů je nedokážou správně přečíst (díky krátké prodlevě nezachytí první sektor a navíc marně hledají stranu diskety s číslem 0).
MDOS1 byl bohužel použit nejen u 5.25" mechanik, ale také u raných 3.5" jednotek. Takže pokud nemůžete přečíst 3.5" disketu v PC, ale didaktiku nedělá problémy, byla zcela bezpečně naformátovaná pod MDOSem1. Naštěstí ale existuje cesta: MDOS2. Verze z roku 1993 totiž obsahuje optimalizované a bezchybné rutiny, takže diskety formátované pod MDOSem2 jsou sektorově kompatibilní s PC. Každopádně ale tato updatovaná verze byla použita pouze u pozdějších 3.5" jednotek.
Abychom tedy konečně odhalili kouzlo, jakým je možno data z diskety formátované pod MDOSem1 dostat do PC – data je nutno překopírovat na disketu odpovídající formátu MDOSu2. Takovou je možno si připravit v pohodlí PC ve dvou jednoduchých krocích. Nejprve z případné HD diskety (High Density) udělejte DD disketu (Double Density). K provedení této proměny postačí, když si ji otočíte štítkem k sobě (aby otvor ochrany proti zápisu byl v levém dolním rohu) a přelepíte průřez určující hustotu záznamu v pravém dolním rohu (zajímal vás vždy účel tohoto otvoru?). Zadruhé, zformátujte tuto disketu na 720kB. Používáte-li Windows, univerzálním způsobem formátování (bez ohledu na verzi Windows jakou momentálně používáte) je zadání příkazu: format a: /c /t:80 /n:9. Formátování na 720kB pod Linuxem se zdá být vyřešeno zde.
Po zformátování se ujistěte, že je disketa zcela zdravá. Jsou-li hlášeny chybné sektory, použijte jinou (popř. ji zkuste zachránit utilitou Flobo Floppy Bad Sector Repair). Pro úplnost připomeňme, že naším cílem bylo pouze vytvořit disketu se správným rozložením sektorů, aniž by nás zajímalo, jestli výchozí data dávají didaktiku smysl (pokusíte-li se zobrazit obsah diskety, didaktik si postěžuje hlášením "Bad device type" – samozřejmě, boot sektor a FAT tabulka odpovídají formátu MS-DOSu). Každopádně takto naformátovanou disketu je možno použít k výše zmíněnému přenosu dat.
Ještě než však k přenosu přistoupíme, rád bych se zmínil o "nestandardních" (konkrétně vyšších) kapacitách disket, jež někteří výrobci s oblibou používali – např. diskety firmy Ultrasoft na každé stopě nesou deset místo devíti sektorů, tj. řečí čísel jsou formátovány na 80x10 místo standardních 80x9. Zcela pochopitelně se jejich obsah (800kB v případe Ultrasoftu) na námi připravenou disketu nevejde a k naší smůle nelze windowsovskou utilitou Format na jedné stopě vytvořit více než devět sektorů. Musím přiznat, že jakkoliv jsem se snažil najít nějakou freewarovou alternativu, která by dokázala pod současnými Windows naformátovat disketu "jinak než normálně" (a navíc pracovala s disketami DD), nepodařilo se mi takovou najít. Narazíte-li tedy na nestandardní disketu, která by byla skutečně obsahově zaplněna až po samotný okraj, doporučuji k naformátování pracovní diskety použít freewarový MDOS File Commander, kde formátování kompatibilní s MDOSem2 je ukryto pod zkratkou CapsShift+F (z čehož tedy plyne, že je tato utilita je určena pouze pro didaktik a nikoliv PC).
Převod na sestavách se dvěma 3.5" mechanikami
Začněme tím méně pravděpodobným případem, že váš didaktik disponuje dvěma 3.5" mechanikami (nedisponuje-li, klidně tuto sekci přeskočte). Máte-li zatím jen jedinou z potřebných dvou, ať už interní nebo externí, a chcete-li svou sestavu dále rošířit, budete si muset pořídit ještě jednu buď plnohodnotnou D80, nebo D80B. Abych byl ale zcela upřímný, externí 3.5" mechaniky jsou v dnešní době jen velmi těžko k sehnání a jsou celkem hardwarovou vzácností – možná mimo jiné i proto, že jejich 5.25" kolegyně byly na trhu vždy o něco levnější. Svůj vliv určitě také mělo, že Didaktik začal montovat interní mechaniky do svých pozdějších počítačů (počínaje modelem Kompakt uvedeným v roce 1992), takže odpadla potřeba vyrábět externí jednotky. Pokud tedy nemůžete sehnat externí 3.5" mechaniku, můžete svou stávající sestavu rozšířit jedním z následujících způsobů:
- Najděte (relativně snadno) dostupnou externí 5.25" jednotku a vyměňte její mechaniku za 3.5" protějšek. Díky zpětné kompatibilitě můžete použít součástky ze současných PC. Nezapomeňte však předtím mechaniku přepnout do režimu Drive Select 0 jumperem DS0 – kde ho najít na vybraných mechanikách se dočtete např. tady. Pozor ale, že novější jednotky už oprávněně nedisponují jumpery – abyste docílili stejného efektu, bude nutno takovou jednotku otevřít a ručně přiletovat drátek propojující dvě "magická místa" na jejím obvodu. Poslední překážkou může být konektor 3.5" jednotky – není-li vybavena starším plochým konektorem, budete potřebovat redukci. Místo tradičně bezradného Aukra hledejte rovnou na anglickém eBayi "card edge connector", "floppy slot adapter", popř. na německém "Diskettenlaufwerkflachstecker" nebo "Pfostenbuchse". Pro ukázku "updatu" 5.25 palcové mechaniky si dovolím použít upravené obrázky anonymního autora z internetu (pokoušel jsem se jeho dílo za rozumné náklady zrekonstruovat pro účely tohoto článku, ale podařilo se mi sehnat pouze konektorovou redukci, nikoliv starší mechaniku s jumpery – pájení jsem vzdal předem).
- Druhou možností je propojení dvou didaktiků se zabudovanými 3.5" mechanikami. Jak na to v případě dvou Kompaktů najdete v Proxima magazínu 6/1993 na straně 10.
Máte-li vše připraveno, můžete přistoupit k samotnému kopírování využitím této malé utility, kterou jsem si napsal právě k účelu sektorového přenosu mezi dvěma mechanikami. Její využití je maximálně přímočaré – jednoduše ji (opětovně) spusťte zadáním RANDOMIZE USR 16384 a řiďte se zobrazenými instrukcemi. Dobrou zprávou je, že utilita umí zacházet se zdrojovými disketami jakéhokoliv formátu, který je pod MDOSem přípustný (např. DD 80x9, DD 37x8, SD 17x7, atd.), a formálně tento formát uchovává i na cílové disketě (neformálně k ní ve výchozím nastavení samozřejmě přistupuje jako k oboustranné 80x9). Vedlejším efektem této nekonzistence formátů může být zdánlivá nečitelnost cílové diskety v mechanice didaktiku – netřeba se však obávat, data jsou na ní uložena. Zde bych ještě rád uvedl jedno malé varování – zdrojová disketa musí být vždy (na první pohled poněkud nelogicky) vložena do mechaniky B, zatímco cílová do mechaniky A – takže si dávejte dobrý pozor na to kam vkládáte své cenné originály. Každopádně si ale před použitím určitě přečtěte připojený minimanuál týkající se aktuálního ovládání, dodatečných nastavení a známých omezení použití.
Převod na sestavách s jedinou 3.5" mechanikou
V případě, že nechcete investovat do nového hardwaru, který byste beztak využili jen jednou (čímž si zavíráte cestu k bleskurychlému převodu prostřednictvím dvou mechanik), první co vás může napadnout je využít některý z dobře známých programů, např. Tools 80 (Proxima) nebo MDOS File Commander (MTs). Přestože se bez pochyby jedná o skvělé programy, pro naše účely trpí nedostatkem plynoucím paradoxně z jejich univerzálnosti – kvanta jejich funkcí totiž zabírají spoustu místa, což během kopírování vede k celkem slušnému "cvičení" se zdrojovou a cílovou disketou (což je jen krok od relativně spolehlivého poškození si mechaniky, obzvlášť je-li ještě původní). Kromě toho si někteří, především slovenští, producenti chránili své programy proti nelegálnímu kopírování zápisem specifických informací na běžnému uživateli nepřímo přístupná místa na disku (např. diskety Ultrasoftu mají modifikované boot sektory). Přenos tímto "běžným" způsobem by tedy nevedl k bezchybné kopii dat a programy by tak v některých případech nemusely fungovat správně.
Vědom si výše uvedených překážek jsem se rozhodl napsat si vlastní jednoúčelovou utilitu pro přenos dat na úrovni sektorů prostřednictvím jediné mechaniky. A protože mám rád svůj (stále ještě původní) hardware, chová se tato utilita k mechanice i disketě co nejšetrněji tím, že minimalizuje počet nutných výměn disket v mechanice ukládáním sektoru do paměti v komprimované podobě (LZW).
Po nahrání utilita pípne a okraj (border) zezelená. Pípání a změny okraje jsou jediné dva prostředky, jakými utilita může reálně komunikovat, protože celá obrazovka je obsazena jejími daty (i když to tak bezprostředně po nahrání nevypadá). Každopádně je ale hlavní informace vždy signalizována změnou barvy okraje, zatímco pípnutí slouží momentálně jen jako malý doprovod. Významy jednotlivých barev jsou následující:
- Bílý okraj – vše je vpořádku a není třeba uživatelova zásahu
- Zelený okraj – signalizuje "Vložte zdrojovou disketu a stiskněte klávesu"
- Azurový okraj – signalizuje "Potvrďte detekovaný formát zdrojové diskety stiskem P"
- Žlutý okraj – signalizuje "Vložte cílovou disketu a stiskněte klávesu"
- Černý okraj – došlo k chybě čtení/zápisu sektoru (každá taková chyba je signalizována samostatným pípnutím)
Kromě barev a pípání utilita také ukazuje množství obsazené (versus dostupné) paměti a počet zpracovaných (versus všech) sektorů ve formě dvou zeleno-černých pruhů ("progress-barů"). S postupným zelenáním prvního ukazatele se pamět plní komprimovanými sektory (zaplnění paměti proběhne zhruba do jedné minuty a na jednu výměnu je přeneseno v průměru 90kB). U druhého pruhu, týkajícího se množství zpracovaných sektorů, se může zdát, že se prakticky nehýbe, z čehož by na první pohled mohlo plynout, že přenos bude trvat (velmi (velmi)) dlouho. Každopádně ale vězte, že na konci každé diskety mohou být (a prakticky vždy jsou) prázdné sektory – ty budou zkomprimovány mnohem rychleji (takže v této souvislosti nepanikařte uslyšíte-li, že se utilita začala k disketě znenadání chovat odlišně – zvuky jako při formátování jsou slyšet proto, že utilita rychle zpracovává prázdné sektory). Jinými slovy (ne)rychlost tohoto ukazatele by měla být interpretována s ohledem na původ zdrojové diskety – jedná-li se o originál s obvykle jen hrstkou programů, např. od Proximy, je zde vysoká šance, že na disketě je spousta prázdných sektorů a přenos nebude trvat zdaleka tak dlouho, jak odhaduje ukazatel (jakákoliv podoba s ukazateli ve Windows je však čistě náhodná a neúmyslná).
Tak jako platilo pro výše zmíněnou utilitu k přenosu mezi dvěma mechanikami, platí i zde, že si poradí s jakýmkoliv validním formátem zdrojové diskety (např. DD 80x9, DD 37x8, SD 17x7, atd.), který je opět formálně dodržen i na cílové disketě. A jako u předchozí utility si i zde přečtěte připojený minimanuál týkající se aktuálního ovládání, dodatečných nastavení a známých omezení použití. Opětovné spuštění utility lze vyvolat příkazem RANDOMIZE USR 16384.
5.25" diskety (a mechaniky D40)
Přestože bych na tomto místě mohl potenciálně navrhnout stejný postup jako u 3.5" disket (tj. "naformátujte 5.25" disketu v PC"), neudělám to hned ze tří důvodů: 1) netestoval jsem to, 2) měli byste velké štěstí, narazili-li byste v dnešní době na 5.25" IDE mechaniku, navíc formátu Double Density (HD mechaniky nejsou zpětně kompatibilní), a 3) jediný mě známý emulátor podporující mechaniky Didaktiku (Real Spectrum) si poradí vpodstatě jen s 3.5" obrazy (image) disket.
Takže pokud jste byli nadšeni, že můžete přeskočit předchozí odstavce o 3.5" mechanikách, musím vás zklamat – budete si muset také připravit 3.5" DD disketu jakožto prostředníka pro přenos do PC. A nejen to, váš didaktik bude muset disponovat nejen 5.25", ale také 3.5" mechanikou. A opět za předpokladu, že už máte potřebnou 5.25" jednotku, jediné co potřebujete získat je její 3.5" protějšek. Podobně jako v předchozím případě můžete buď z externí 5.25" jednotky udělat 3.5" výměnou její mechaniky, nebo si můžete (celkem snadno) najít ve své době velmi populární Didaktik Kompakt, který je touto mechanikou interně vybaven.
Převod na sestavách s 5.25" mechanikou
Pro sektorový přenos dat mezi 5.25" a 3.5" disketou můžete opět využít výše zmíněnou utilitu, která nám posloužila už při přenosu mezi dvěma 3.5" jednotkami. (A protože 5.25" mechaniky byly na didakticích většinou mapované jako B, mělo by být v tuto chvíli jasné, proč je zdrojová disketa vždy očekávána právě v mechanice B.)
Závěr... (první části)
S informací o 5.25" mechanikách bych dnešní povídání považoval za úplné. V této první části (z předpokládaných dvou) jsem se chtěl podělit o své zkušenosti s "dolováním" dat z disket, jejichž rozložení sektorů je o něco málo jiné než jaké očekávají disketové driv(er)y na PC. Při této příležítosti jsem ukázal dvě utility, které by vám mohly usnadnit život během přenosu dat na "správně" formátovanou disketu, pro jejíž přípravu není potřeba nic než obyčejné PC. V příštím díle tyto diskety načteme a "reinkarnujeme" vaše data v PC!
Na závěr bych rád poděkoval RomBorovi a Oldsoftovi za informace, které mi při psaní tohoto článku posloužily jako odrazový můstek, a které pro mě byly i motivací, abych se o tuto problematiku začal zabývat o něco víc.
Další použitá literatura:
- Komentovaný výpis ROM D40 (Kvaksoft)
- Rutiny ROM D40 (George K.)
- Konečně pořádně o D40 (Petr Žabenský), ZX Magazíny 1, 2, 3+4/1999
- A co takhle dát si Format? (Petr Žabenský), ZX Magazín 3+4/1999
- Manuál k jednotce D40 (Didaktik)
Publikováno: 30. 4. 2014 | Doplněno: 29. 6. 2015 | Autor: Tomáš Nestorovič
|