Formát diskety (disku či jiného zařízení) je naprosto nezbytné znát při používání různých disk doktorů, nebo při psaní programů pro konverzi mezi systémy. Naštěstí formát diskety TRDOSu je velmi jednoduchý a pro všechny známé verze Betadisků (včetně ruských variant počítačů Pentagon a Scorpion) je stejný.
strany | stopy | kapacita v sektorech | volné místo v sektorech |
---|---|---|---|
1 | 40 | 640 | 624 |
2 | 40 | 1280 | 1264 |
1 | 80 | 1280 | 1264 |
2 | 80 | 2560 | 2544 |
Z tabulky je vidět, že na každé disketě je stejný adresář, který zabírá 16 sektorů (tj. 1. stopu označenou číslem 0). Mimochodem, většina emulátorů implicitně používá kapacitu největší.
sektory | stopy | použití |
---|---|---|
0-7 | 0 | adresář, každý sektor obsahuje 16 hlaviček, každá hlavička je 16 bytů dlouhá |
8 | 0 | systémový sektor s informacema o disketě, viz. dále |
9-15 | 0 | pomocné sektory používané během ukládání snapshotů |
- | 1-80 | zbytek sektorů na disketě je vyhrazen souborům, resp. datové části souborů |
V adresáři je celkem 128 položek, které mohou obsahovat jméno a parametry souboru. V každém z 8 sektorů adresáře je 16 položek 16 bytů dlouhých. Struktura jedné položky je v následující tabulce.
byte | popis významu |
---|---|
0-7 | Jméno souboru |
8 | Přípona B=basic, C=code (bytes), D=data (array), #=sequence pro kanálové operace |
9-10 | Startovní adresa bytesu (CODE), nebo délka BASICu |
11-12 | Délka bytesu (CODE), nebo délka BASIC bez proměnných |
13 | Počet sektorů, které zabírá na disketě tento soubor |
14 | První sektor na němž soubor začíná |
15 | První stopa na níž soubor začíná |
Kromě položek souborů musí být někde uloženy informace o počtu souborů, formátu diskety, jméno diskety a podobně. To vše je v sektoru devátém (číslo 8). Opět následuje tabulka.
byte | popis |
---|---|
0-224 | prázdné místo (možno využít třeba k identifikaci diskety programem, jednoduché ochraně proti kopírování a podobně) |
225 | číslo prvního volného sektoru na disketě |
226 | číslo stopy obsahující první volný sektor |
227 | 22=80tr, DS; 23=40trDS; 24=80tr, SS; 25=40tr, SS (DS=double sides, SS=single side) |
228 | počet souborů včetně smazaných (těch co mají jako 1. znak jména kód 1) |
229 a 230 | počet volných sektorů na disketě |
231 | 16 (TR-DOS identifikace, bez tohoto bytu bude TR-DOS hlásit DISK ERROR pro všechny diskové operace, krom čtení sektoru) |
232 a 233 | 0 - nevyužito |
234 až 242 | 0 (heslo ve starších verzích TR-DOSu 3.xx, 4.xx? - nepoužívá se) |
243 | 0 |
244 | počet smazaných souborů |
245 až 255 | jméno diskety (verze 5.03 a starší používaly jen 9 znaků) |
Při mazání souboru z diskety mohou nastat dvě situace. Buď je soubor na konci adresáře a za ním už jsou jen neobsazené položky, nebo na konci adresáře není. Když na konci je, tak je první znak jména souboru vynulován a dojde i k příslušným změnám v sektoru 8 (změní se byty 225, 226, 228, 229 a 230, byte 244 se nezmění), přičemž následující zapsaný soubor data právě smazaného přepíše. Pokud před takto smazaným souborem jsou jiné dříve smazané soubory s kódem 1 místo prvního znaku jména, budou všechny smazány jako by se nacházely na konci adresáře (v tom případě bude změněn i byte 244). Pokud mazaný soubor na konci nebyl, tak je první znak jména souboru nahrazen kódem 1 a v sektoru 8 se změní pouze počet smazaných souborů (tj. byte 244 a nic víc). Následně zapsaný soubor je uložen do prázdného místa za poslední soubor a sektory dříve obsazené smazaným souborem, který nebyl na konci adresáře, zůstávají netknuté, dokud není proveden příkaz MOVE.
Pro editaci diskety na ZX Spectru s Betadiskem doporučuju program B.D.E.. Pro formátování lze použít kromě příkazu TRDOSu i program Maxifor (příp. i jiné), ale taková disketa pak nemusí být čitelná všude, takže když použít, tak s rozvahou. Obojí najdete mezi programy ke stažení.
Použitá literatura: Mikrobáze z roku 1989 a k tomu vlastní zkušenosti s opravováním disket, které se mi podařilo poškodit většinou při programování.
Stránka byla už zobrazena: 436 ×
Aktualizováno: 23. 4. 2018, 16:59
Stránka načtena za 0.00143 sekund.