Magic Disk 64

home to index to text: MD9209-KURSE-FLOPPY-KURS_4-2.txt

Deren Bedeutung ist folgendermaßen aufgeteilt:

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 keinen 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) eingetragen, so hat ein File die Bezeichnung " ?" .
Alle anderen Bits des Filetyp-Bytes eines Directoryeintrags sind unbenutzt.
Ebenfalls interessant sind das 28 . und das 29 . Byte eines Fileeintrags. Damit können Sie nämlich ebenfalls einen kleinen Effekt für den Directoryeintrag erzielen. 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 Ausgeben eines Directorys die Filelänge direkt 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 Trackbelegungen, so erhalten Sie eine andere Anzahl an freien Blocks. Das DOS addiert nämlich diese 35 Bytes auf, um die verbleibende 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 Formatkennzeichens zu verhindern. Öbrigens sollte ich erwähnen, daß Änderungen an der BAM jederzeit durch den Validate-Befehl der Floppy wieder rückgängig gemacht werden können. Dieses Floppykommando 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 rekonstruiert werden.
Und noch etwas ist zu den Directoryeinträ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" entspricht. Gleichzeitig ist das File als ' ungültig' markiert und nicht schreibgeschützt ( wieso auch) . Ein solcher Fileeintrag kann jederzeit wiederhergestellt werden, indem man einen definerten, gültigen, Filetyp einträgt und anschließ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 Directoryblock anlegt. Dadurch erklärt sich auch, warum neu geschriebene Files manchmal mitten im Directory zu finden sind und nicht am Ende. Hier wurde vorher 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 ausprobieren möchten, so nehmen Sie sich einfach einen Diskmonitor zur Hand und versuchen Sie einmal einige Directoryeinträge oder den Disk-Header- Block zu verändern. Weiterhin kann mit dem Programm " Disk-Manager" auf dieser MD das Directory noch weitaus komfortabler manipuliert werden. Nun wissen Sie ja wahrscheinlich auch, was dabei geschieht.
Im nächsten Teil des Floppykurses wollen wir uns mit der Floppybedienung in Assembler beschäftigen. Dabei werden wir dann auch einige Programme erstellen, die sich die hier kennengelerntern In- formationen zunutze machen.

                                    (ub)

Valid HTML 4.0 Transitional Valid CSS!