Directory

Aus C64-Wiki

Wechseln zu: Navigation, Suche

Das englische Wort Directory bezeichnet das Inhaltsverzeichnis einer Diskette. Im Directory befinden sich alle abgespeicherten Daten wie Programme, sequentielle oder relative Dateien. Diese können z.B. mit der BASIC-Eingabe LOAD"$",8 in den Speicher des C64/116/128 oder VC20 hineingeladen werden und mit einem anschließenden LIST angezeigt werden. Das Directory einer Diskette beginnt (bei einer Floppy 1541) auf Spur 18 im Sektor 1 und ist Bestandteil der BAM und kann maximal 144 Einträge aufnehmen.

[Bearbeiten] Aufbau des Directorys

"DATENDISK 1"       99 2A  (Diskettenbezeichnung: Name, Identifikationsnummer)
0   "----------------" DEL (Directoryeinträge: Genutzte Blöcke, Dateiname, Dateityp)
0   "- EIGENES SPIEL-" DEL
0   "----------------" DEL
100 "GEISTERJAGD",8:   PRG< (Manipulierter Directoryeintrag)
64  "DATEN1"           SEQ<
44  "DATEN2"           REL<
56  "DATEN3"           USR<
100 "DATEN"           *SEQ 
350 BLOCKS FREE            (Anzahl freier Blöcke bzw. freier Diskettenspeicher)

Anmerkung: Das Directory einer 5,25"-Diskette, die in einer VC-1541 formatiert und per Disketteneditor manipuliert wurde (insbesondere die ersten vier Directory-Einträge).

Bedeutung des Dateityps:

  • PRG Programmdateien
  • SEQ Sequentielle Datei (typischerweise Daten, nicht ausführbarer Code)
  • USR User-Dateien (Sonderform der sequentiellen Dateien, per OPEN lassen sich diese Dateien ggf. direkt in der Floppy ausführen)
  • REL relative Dateien (enthalten mehrere gleichgroße Datensätze und besondere Verwaltungsblöcke)
  • DEL gelöschte Datei (normalerweise nicht sichtbar)
  • CBM Subdirectory bei einer 1581-Disk
  • DIR Subdirectory auf CMD-Speichermedien

Zusätze zur Dateitypangabe:

  • < Datei besitzt softwareseitigen Überschreibschutz.
  • * Nicht richtig geschlossene Datei. Das Entfernen einer solchen Datei funktioniert nicht mit dem Floppy-Befehl SCRATCH, sondern nur mittels VALIDATE!

[Bearbeiten] Joker

Die Auswahl der Directory-Einträge lässt sich mit einer Maske beeinflussen bzw. filtern, wobei die DOS-üblichen Joker-Symbole * und ? Verwendung finden.
Beispiele:

LOAD "$0:*=P",8   zeigt im Directory nur Programm-Dateien (P für PRG,
LIST              entsprechend mit S, U, R für SEQ, USR, REL).
LOAD "$:WA?R*",8  Alle Dateien, deren Name mit WA beginnt und an der 4. Stelle ein R besitzt,
LIST              werden gelistet.
LOAD"$$",8        Nur die Disketteninformation und die Anzahl freier Blöcke
LIST              wird ausgegeben.

[Bearbeiten] Directory verlustfrei anzeigen

Die Anzeige des Directory mit LOAD"$",8 und LIST zerstört ein gerade im Speicher befindliches BASIC-Programm. Dies kann man vermeiden mit Hilfe eines Maschinensprache-Programms. Ein Beispiel dazu gibt es bei der Beschreibung des Assembler-Befehls STX.

Einen eigenen Befehl für die Directory-Anzeige bieten neuere BASIC-Dialekte und BASIC-Erweiterungen. Einige Beispiele:

Name Typ Befehl
BASIC V3.5+ Basic-Dialekt DIRECTORY
Simons Basic Basic-Erweiterung DIR
Commodore DOS Wedge 5.1 Basic-Erweiterung @$:*
Final Cartridge 3 Steckmodul CATALOG
Action Replay Steckmodul $
Turbo Trans Schnelllader CTRL  D 
Speed-DOS Schnelllader @$
JiffyDOS Schnelllader @$:*
V-DOS Schnelllader CTRL  D 
Persönliche Werkzeuge