Ellenőrzése TR-DOS meghajtó fájl szerkezetét helyességét

Különböző okok miatt (megszakítás disk kapcsolódó műveletek lemezre, programok, együttműködve a rossz lemez, a hibás intézkedések, melyek a felhasználó kézi szerkesztésével katalógus stb), a fájl szerkezete a lemez TR-DOS hibás lehet.

Ha a program működik a lemez nem érvényesíti a fájl szerkezetét (általában, és ő TR-DOS nem # 151; ellenőrizni csak speciális bájt a szolgáltatási szektorban, jelezve a tagsági meghajtó TR-DOS), majd a munka a „rossz” disk vezethet, általában beláthatatlan következményei. Lehetséges és megsemmisítése a programban memóriát, valamint az adatvesztést a lemezen. És ha, mondjuk, a katalógusban néhány fájlt hibásan megadott méretét vagy számát a kezdeti sáv / szektor, akkor a kísérlet, hogy működjön együtt a fájl elméletileg még károsodásához vezethet, ha a meghajtót próbálja pozícionálni egy nem létező pályán.

Egyértelmű, hogy a korai felismerés a hibák a fájl szerkezetét lenne nagyon praktikus. Tehát szükség van egy eljárás, amely ellenőrzi a helyességét a katalógusban lemezen. Ezt az eljárást lehet használni egy speciális meghajtót tesztprogram, és általában minden olyan program, amely együttműködik a lemez: ha elolvasod a katalógusban, és ellenőrizze annak érvényességét, mielőtt a lemez műveletek, ez segít elkerülni semmilyen kellemetlen következményekkel, de ha a program elvégzi kapcsolódó műveletek felvétel lemezre, akik közvetlenül a könyvtár, a hívás ennek az eljárásnak hasznos lesz írás előtt a módosított könyvtárba a meghajtó: ha a rögzített katalógus nem helyes hiba miatt a programban, ez lesz a CPA zu látható. A programban, hogy ellenőrizni fogja magát!

Röviden beszélni a méret lemezek TR-DOS # 151; Ez az információ hasznos megértéséhez a logikája a programot.

Mindegyik pályán (ezek számozása 0) 16 szektorral (szintén számozása 0). A hossza az egyes szektorok # 151; 256 (# 100) bájt.

Rendszerhasználati kiosztott nulla pályán, és a régió az első pályán, hogy a végén a lemez tárolására használják a fájl tartalmát.

A szektorok 0 # 151; 7 nulla pályán vannak címtárbejegyzéseket információt tartalmaznak a rögzített fájlok a lemezen. Mindegyik könyvtár bejegyzés 16 bájt, a szerkezet táblázatban leírt. 1.

Offset elejétől

A meghajtó neve (általában vehet minden 11 bájt vége előtt a szektor).

Eleinte írtam egy függvényt, amely ellenőrzi a helyességét a katalógus, a nyelv a C (a Turbo C 2.0 compiler), majd elhalasztották azt a szerelő Z80. Egyrészt, ez megkönnyítette számomra, hogy teszteljék és a hibakeresés, és másrészről # 151; jelenlétében a C függvény segít azoknak, akik szeretnének egy könyvtárat helyességét a program dolgozni lemezek TR-DOS (vagy képfájlokat ilyen lemez) nem ZX Spectrum, és például, Amiga vagy PC.

Elvileg lehetne vizsgálni a második paraméter a 40, 80 vagy 160 pálya, attól függően, hogy a lemez típusát (lásd. Táblázat. 2.), és meghatározza azt a funkciót. A döntés, hogy ezt a paramétert a funkció hívás történt, tekintettel arra a tényre, hogy lehetséges volt, hogy ellenőrizze a lemezeket formázni egy nagyobb sávok számát, mint sugallta a lemez típusától értékek, valamint a RAM-lemezek, a sávok száma, amelyeken határozza meg a kötet számára elkülönített memóriában.

A függvény egy kétbájtos érték, ahol a legkevésbé fontos bájt # 151; vagy 0, ha nincs hiba észlelésekor vagy hibakód (lásd. táblázat. 3.), és a magas byte # 151; címtárbejegyzésre szám (számozása 0), ha figyelembe vesszük, hogy a felismert hiba (azok számára hibakódot jelzett „*” a táblázat első oszlopában. 3). Ha a könyvtár a hibák száma, a visszatérési érték megfelel az első észlelt hibát.