DISK

Aus C64-Wiki
Zur Navigation springenZur Suche springen
DISK
Syntax: DISK <string>
Parameter
string: Floppy-Kommando
Einordnung
Typ: Kommando
Kontext: Peripheriekontrolle
Aufgabe: Steuerung eines Diskettenlaufwerks
Abkürzung: keine
Token: $64 $72 (100 114)
Verwandte Befehle
DIR - COPY - HRDCPY - ERROR


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

Typ: Kommando
Syntax: DISK <string>

DISK sendet einen Floppy-Befehl an eine Diskettenlaufwerk, um Datei- und Laufwerksaktionen auszulösen. Man erspart sich dabei die sonst umständliche Formulierung OPEN 1,8,15,"command...": CLOSE 1, wobei "DISK command..." jede erlaubte Syntax für einen Floppy-Befehl des Floppy-DOS enthalten darf (siehe Beispiele).

Fehlt eine Parameterangabe oder ist mehr als ein Parameter angegeben, mündet das in eine Fehlermeldung ?SYNTAX ERROR. Ist der Parameter nicht vom Typ einer Zeichenkette meldet der Interpreter ?TYPE MISMATCH ERROR.

Leider erhält man speziell im Direktmodus keine Floppy-Rückmeldung aus dem Fehlerkanal. Da auch kein anderer Befehl in Simons' Basic vorgesehen ist, den Floppy-Fehlerkanal abzufragen, muss im Fehlerfall immer noch zur alten Form der Floppy-Ansprache gewechselt werden (siehe Beispiele). Allerdings enthält im Falle des Dateilöschens mittels SCRATCH-Kommando der Fehlerkanal nicht den wirklichen Status des Kommandos (würde "01,FILES SCRATCHED,N,00" lauten, wobei N die Anzahl der tatsächlich gelöschten Dateien wäre), sondern es wird immer "00,OK,00,00" gemeldet.
Weiters kann Simons' Basic mittels DISK ausschließlich auf das Laufwerk mit Geräteadresse 8 zugreifen.

In TSB sind alle diese Mängel behoben. Auch der Fehlerkanal kann mit einem eigenen Befehl ausgelesen und angezeigt werden.

Beispiele[Bearbeiten | Quelltext bearbeiten]

Interaktive typische Anwendung[Bearbeiten | Quelltext bearbeiten]

DISK "V0"

Validiert die im Drive 0 eines Laufwerks mit Geräteadresse 8 eingelegte Diskette (und gibt verloren gegangene Blöcke frei) - die Ausführung kann etwas Zeit beanspruchen ...

DISK "I"

Das Floppy-Laufwerk initialisieren.

DISK "N:DISKNAME,ID"

Eingelegte Diskette auf Namen "DISKNAME" mit Disk-ID "ID" formatieren.

DISK "S:A*"

Alle Dateien, die mit "A" beginnen löschen.

DISK "R:NEU=ALT"

Die Datei "ALT" auf den Namen "NEU" umbenennen.

DISK "C:DAT-COPY=DAT"

Dupliziert die Datei "DAT", die dann den Namen "DAT-COPY" trägt.

Verwendung innerhalb eines Programms[Bearbeiten | Quelltext bearbeiten]

100 DIR "$" : PRINT
110 D$="" : INPUT "ZU LOESCHENDE DATEI";D$
120 IF D$="" THEN END
130 DISK "S:"+D$
140 GOSUB 800: REM FEHLERKANAL AUSLESEN UND ANZEIGEN ...
150 PRINT "FLOPPY-STATUS: " DE$ " - " DM$ " (" DT$ "," DS$ ")" : PRINT
160 GOTO 100
799 REM FEHLERKANAL AUSLESEN
800 OPEN 15,8,15:INPUT#15, DE$, DM$, DT$, DS$
810 CLOSE 15
820 RETURN

Laut dem angezeigten Inhaltsverzeichnis der Floppy interaktiv Dateien (auch mit Joker-Angabe) löschen.
Beenden mit Leereingabe.
Wegen des INPUT-Befehls ist u.a. die Verwendung der Zeichen ":" und "," nicht möglich (Meldung ?EXTRA IGNORED wird angezeigt).