PROGRAM NA INSPEKCI A EDITACI

sektorů S nebo D na disketě

(V. Liška, Pardubice, XI.1994)

Protože ani polský program TurboWatson, ani nejnovější Hejkal (Flop č.30) nedovedou pracovat se sektory o velikosti 256 bajtů, byl sestaven tento soubor DDR.COM. Spouští se z běžné diskety (formátované na 1009 jednoduchých sektorů) známým způsobem (D1:DDR a ), a můžeme s programem pracovat. Budeme-li chtít číst disketu, která má dvounásobně veliké sektory (formát D nebo Q), pak nastanou potíže při čtení knihovny, než se disketová jednotka přeorientuje na tento formát. Je proto lepší překopírovat soubor DDR.COM na takto formátovanou disketu (kupř.s TurboDosem XE). Soubor DDR.COM má startovací adresu $5555, končí na $6ABE a využívá ještě operační paměť $7000..$7FFF.

Po uvodním obrázku si volíme číslo drivu (1,2,8) s předvolbou 1 (stačí stisk klávesy ). Ramdisk je samozřejmě volitelný číslem 8.

Dále si vybereme hustotu sektorů na disketě, S nebo D (předvolba S).

A teď se nám vypisuje knihovna po 8-16 souborech (včetně zrušených souborů). Všechna čísla jsou v celém programu v hexadecimálním tvaru. Stiskneme libovolné tlačítko a vypíše se další porce souborů. Po skončeném výpisu direktoráře se dostáváme k volbě tisku celé knihovny, a to s možností tisku vlevo-vpravo na papír. Program pracuje s tiskárnou EPSON (kondensovaným typem písma). V případě jiného typu tiskárny by bylo nutné program upravit.

Když už nepotřebujeme tisknout direktorář, přechází program - po stisku libovolné klávesy - do své druhé části a automaticky zobrazí 4.sektor (004) diskety. Má-li sektor hustotu S, pak v hlavičce tabulky je uvedena jeho užitná délka, $7D, t.j. 125 bajtů. Poslední tři bajty každého takového sektoru - jak jistě všichni programátoři vědí - vypovídají o pořadovém čísle souboru, o adrese následujícího sektoru a o naplnění tohoto sektoru.

Pracujeme-li s hustotou D, tak do oken na obrazovce se vypíše jen polovička sektoru, druhou půlku tam dostaneme stiskem klávesy mezerník . A můžeme si přečíst teď již 4 poslední bajty, které určují sektorový kontext. V hlavičce je uvedena délka sektoru, t.j. 252 bajtů ($FC) a podle toho s kterou půlkou sektoru pracujeme je inversně zobrazena první (F) nebo druhá cifra (C).

V levém okně jsou skutečná kódová čísla, v pravém okně jejich znaky. (Poznámka: Kod $9B je pro jednoduchost zobrazen znakem příslušejícím kódu $1B.)

Nápovědu (HELP) si zobrazíme v okně, které vyvoláme stiskem a taktéž takto zrušíme.

Další sektor (Sec + 1) si zvolíme tlačítkem <+> bez CTRL, a u hustoty S lze použít též . Zpět o jeden sektor se dostaneme po stisku <->.

Výpis znaků v pravém okně, odpovídající kódům v levém okně je automaticky proveden v soustavě ASCII. Chceme-li tam mít znaky příslušející internímu kódu ATARI, pak stiskneme kombinaci kláves a , v zahlaví se změní A v I. Navrátit znaky ASCII do pravého okna můžeme po stlačení klávesy .

Skokem se můžeme dostat na libovolný sektor, když vyťukáme jeho číslo - jako 3 znaky (hexadecimální cifry) - a stiskneme . Pokud zvolíme neexistující soubor nic se nestane, jenom se nezmění obsah obrazovky v oknech.

Nedoporučuji při práci s D-sektory volat BOOT-sektory č.001 až 003!

U formátu Single máme max.720 sektorů (t.j.$2D0), u formátu Enhanced je 1040 ($410), u formátu Double je 720 dvojitých sektoru a konečně u Quad máme 1440 ($5A0) D-sektorů k dispozici (samozřejmě z tohoto počtu musíme odečíst BOOT sektory, sektor s mapou diskety a VTOC sektory $169..$170).

Chceme-li ukončit práci s danou disketou stiskneme a <2> a vracíme se na začátek programu. Odejít od celého programu je možné zvolímw-li při výběru driveru možnost 0, nebo samozřejmě vypnutím počítače.

Kromě uvedené inspekce diskety lze ještě:

Zejména poslední možnost - editaci sektorů - lze výhodně využít k modifikaci nebo opravě souborů-dat přímo na disketách. Musíme ovšem postupovat opatrně, abychom si soubory nezničili.

Zajímavé výsledky dostaneme, když budeme inspicírovat svůj RamDisk (pokud ho vůbec máme), ale to už si zjistíte sami.

Vladimír Liška, Pardubice


Poznámka redakce:
Tento program považujeme za velice zdařilý a jsme rádi, že jej můžeme uveřejnit.
Musíme ale upozornit! Program netestuje STATUS I/O operace, takže pokud nemůže splnit, co se od něj žádá (např. zápis neexistujícího sektoru, disketa chráněna proti zápisu či cokoliv jiného), vůbec to nezjistí a tváří se jako by to provedl.