DIR

Aus C64-Wiki
Zur Navigation springenZur Suche springen
DIR
Syntax: DIR <string>
Parameter
string: Directory-Kommando
Einordnung
Typ: Kommando
Kontext: Peripheriekontrolle
Aufgabe: Anzeige des Inhaltsverzeichnisses eines Diskettenlaufwerks
Abkürzung: keine
Token: $64 $4a (100 74)
Verwandte Befehle
DISK - COPY - HRDCPY - ERROR


Dieser Artikel beschreibt das Simons'-Basic-Schlüsselwort DIR.

Typ: Kommando
Syntax: DIR <string>
TSB-Syntax: DIR [<string>]

Mit DIR "$" gibt der Interpreter das Inhaltsverzeichnis der Floppy in Laufwerk mit Geräteadresse 8 aus, ohne dass das aktuelle BASIC-Programm dabei gelöscht wird. Statt der üblichen Angabe "$" als <string>-Parameter können auch alle weiteren Syntaxformen des Directory-Floppy-Befehls angewendet werden. Die optionale (Doppellaufwerk-Drive-Angabe 0 oder 1) nach dem "$" ist erlaubt, allerdings erzeugt bei einem Einfachlaufwerk die Anwahl des Drives 1 die Ausgabe der Zahl 3341 (das ist die Dezimalzahleninterpretation des hexadezimalen Wertes $0d0d, was zwei Carriage Returns entspricht) und im Fehlerkanal findet sich die Meldung 74,DRIVE NOT READY,18,00.

DIR kann auch innerhalb eines Programms aufgerufen werden. Der Status der Ausführung des Befehls muss bei Bedarf durch Abfrage des Floppy-Fehlerkanals explizit ermittelt werden.

Leider kann Simons' Basic mittels DIR ausschließlich auf das Laufwerk mit Geräteadresse 8 zugreifen. Die Bildschirmausgabe lässt sich dabei nicht via Tastatur anhalten oder abbrechen, lediglich mit Hilfe der Taste CTRL  verzögern.

Ein fehlender Parameter oder zu viel angegebene Parameter führen zu einem ?SYNTAX ERROR (wobei der DIR-Befehl zunächst entsprechend abgearbeitet wird, bevor es zu Abbruch und Fehlerausgabe kommt). Beginnt der Parameter nicht mit dem "$"-Zeichen, bricht die Ausführung mit ?BAD MODE ab. Handelt es sich beim Parameter nicht um einen Ausdruck, der eine Zeichenkette ergibt, kommt es zur Fehlerausgabe von ?TYPE MISMATCH ERROR.

TSB bietet nicht nur eine erweiterte Tastatursteuerung (ein beliebiger Tastendruck hält die Ausgabe an und RUN/STOP  bricht sie ab), sondern es findet sich bei der Ausgabe zusätzlich ein Doppelpunkt hinter allen angezeigten Dateinamen, damit das einfache Eintippen von LOAD vor dem angezeigten Namen und ein darauffolgendes RETURN  zum Laden einer Datei bereits genügen (TSB braucht keine Laufwerksangabe bei Diskettenbefehlen). Außerdem kann unter TSB der Parameterstring komplett weggelassen werden, sodass ein DIR als Eingabe für die Ausgabe des Standardinhaltsverzeichnisses (erstes Beispiel unten) ausreicht, ähnlich wie bei DIRECTORY in BASIC 3.5. Außerdem kann TSB mit USE auch auf andere Laufwerke als 8 zugreifen.

In TSB wird beim Öffnen des Directorys statt der Dateinummer 1 (wie bisher) die weniger fehleranfällige Nummer 101 verwendet.

Beispiele[Bearbeiten | Quelltext bearbeiten]

DIR "$"

oder

DIR "$

gibt das Directory von Laufwerk mit Geräteadresse 8 aus, letztere Variante mit Tippersparnis durch Weglassen des abschließenden Anführungszeichens.

DIR "$0:*"
DIR "$:*"
DIR "$*"

sind alles Varianten, die das Gleiche bewirken, nämlich alle Dateien auf Laufwerk 0 (Doppellaufwerk-Drive-Angabe) anzeigen.

DIR "$:*=P"

gibt mit Hilfe des Typselektors "=P" nur PRG-Dateien aus.

DIR "$:???.*"

gibt alle Dateien aus, die an Position 4 im Namen einen Punkt haben.

DIR "$:?B*=S"

zeigt alle sequentiellen Dateien, deren Dateiname als 2. Zeichen "B" ist.

DIR "$?B,H*=P"

zeigt alle PRG-Dateien, deren Dateiname

  • 2. Zeichen lang ist und auf "B" endet oder
  • mit "H" beginnt.

Der Doppelpunkt als Bestandteil der Drive-Angabe ist dabei optional.