DISK
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).
$ | % | @ | ANGL | ARC | AT | AUTO | BCKGNDS | BFLASH | BLOCK | CALL | CENTRE | CGOTO | CHAR | CHECK | CIRCLE | CMOB | COLD | COLOUR | COPY | CSET | DELAY | DESIGN | DETECT | DIR | DISABLE | DISAPA | DISK | DISPLAY | DIV | DOWN | DRAW | DUMP | DUP | ELSE | END LOOP | END PROC | ENVELOPE | ERRLN | ERRN | EXEC | EXIT | EXOR | FCHR | FCOL | FETCH | FILL | FIND | FLASH | FRAC | GLOBAL | GRAPHICS | HI COL | HIRES | HRDCPY | INKEY | INSERT | INST | INV | JOY | KEY | LEFT | LIN | LINE | LOCAL | LOOP | LOW COL | MEM | MERGE | MMOB | MOB OFF | MOB SET | MOD | MOVE | MULTI | MUSIC | NO ERROR | NRM | OFF | OLD | ON ERROR | ON KEY | OPTION | OUT | PAGE | PAINT | PAUSE | PENX | PENY | PLACE | PLAY | PLOT | POT | PROC | RCOMP | REC | RENUMBER | REPEAT | RESET | RESUME | RETRACE | RIGHT | RLOCMOB | ROT | SCRLD | SCRSV | SECURE | SOUND | TEST | TEXT | TRACE | UNTIL | UP | USE | VOL | WAVE