Deren Bedeutung ist folgendermaßen auf- geteilt:
Bits2-0 Wert Filetyp ----------------------------------------
000 0 DEL (deleted) 001 1 SEQ (sequentielle Datei) 010 2 PRG (Programmdatei) 011 3 USR (Userdatei) 100 4 REL (relative Datei)
Wie Sie sehen, können aber noch andere Werte eingetragen werden, die zwar kei- nen Filetyp spezifizieren, aber dennoch möglich sind. Dies hat zur Folge, daß die Files ganz merkwürdige Bezeichnungen erhalten. Wird zum Beispiel der Wert 15 (Bit 3 auch noch mitbenutzt) eingetra- gen, so hat ein File die Bezeichnung "? ". Alle anderen Bits des Filetyp-Bytes ei- nes Directoryeintrags sind unbenutzt. Ebenfalls interessant sind das 28. und das 29. Byte eines Fileeintrags. Damit können Sie nämlich ebenfalls einen klei- nen Effekt für den Directoryeintrag er- zielen. Da hier die Länge des Files in Blocks angegeben ist, kann diese auch verändert werden. Dies hat keinerlei Einfluß auf das Laden oder Speichern eines Files, da die Blockangabe vom DOS nur dazu verwendet wird, um beim Ausge- ben eines Directorys die Filelänge di- rekt greifbar zu haben. Wenn Sie nun jemanden verblüffen wollen, so kann hier z.B. der Wert 0 eingetragen werden. Laut Directory befindet sich in dem File dann nichts. Trotzdem kann sich dahinter ein Wahnsinns-Programm verstecken. Einen änhlichen Effekt können Sie auch durch Manipulation der BAM erzielen. Schreiben Sie hier nämlich andere Werte in die jeweils 0. Bytes der Trackbele- gungen, so erhalten Sie eine andere An- zahl an freien Blocks. Das DOS addiert nämlich diese 35 Bytes auf, um die ver- bleibende Speicherkapazität ("Free Blocks") einer Diskette zu ermitteln und im Directory anzeigen zu können. Achten Sie danach jedoch bitte darauf, daß Sie nichts mehr auf eine solche Diskette speichern, da nun nämlich vermeintliche freie Blöcke beschrieben werden könnten, was zu erheblichem Datenverlust führen kann. Am Besten ist es dann, einen Schreibzugriff durch Ändern des Format- kennzeichens zu verhindern. Öbrigens sollte ich erwähnen, daß Änderungen an der BAM jederzeit durch den Validate- Befehl der Floppy wieder rückgängig ge- macht werden können. Dieses Floppykom- mando geht nämlich nach und nach alle Files der Diskette durch und merkt sich die jeweils belegten Blocks. Hiernach kann die ursrüngliche BAM wieder rekons- truiert werden. Und noch etwas ist zu den Directory- einträgen zu sagen. Wenn Sie ein File löschen, so wird es keineswegs komplett von der Diskette entfernt. Das einzige, was der Scratch-Befehl bewirkt, ist das Freigeben der belegten Diskettenblocks. Desweiteren wird als Filetyp der Wert 0 eingetragen, was dem Filetyp "DEL" ent- spricht. Gleichzeitig ist das File als 'ungültig' markiert und nicht schreib- geschützt (wieso auch). Ein solcher Fi- leeintrag kann jederzeit wiederherge- stellt werden, indem man einen definer- ten, gültigen, Filetyp einträgt und an- schließend die Diskette validiert. Nun ist das File wieder so vorhanden, wie vor dem Löschen (inklusive des Vermeks, welche Blocks belegt sind). Wird jedoch zwischenzeitlich etwas auf der Diskette gespeichert, so sucht sich das DOS zunächst immer einen solchen 'leeren' Fileeintrag heraus, bevor es einen neuen Eintrag im letzten Direc- toryblock anlegt. Dadurch erklärt sich auch, warum neu geschriebene Files manchmal mitten im Directory zu finden sind und nicht am Ende. Hier wurde vor- her an dieser Stelle ein altes File gelöscht. Dies soll es dann wieder einmal gewesen sein für diesen Monat. Wenn Sie Ihre neu hinzugewonnenen Kenntnisse einmal aus- probieren möchten, so nehmen Sie sich einfach einen Diskmonitor zur Hand und versuchen Sie einmal einige Directory- einträge oder den Disk-Header-Block zu verändern. Weiterhin kann mit dem Pro- gramm "Disk-Manager" auf dieser MD das Directory noch weitaus komfortabler ma- nipuliert werden. Nun wissen Sie ja wahrscheinlich auch, was dabei ge- schieht. Im nächsten Teil des Floppykurses wollen wir uns mit der Floppybedienung in As- sembler beschäftigen. Dabei werden wir dann auch einige Programme erstellen, die sich die hier kennengelerntern In- formationen zunutze machen.
(ub)