HEADER
HEADER | |
Syntax: | HEADER <Diskettenname> [,I<Kennung>] [,D<Laufwerk>] [<ON | ,> <Geräteadresse>] |
Parameter | |
<Diskettenname> : Zeichenkettenausdruck | |
<Kennung>: 2 Zeichen | |
<Laufwerk> : numerischer Ausdruck mit Wert 0 oder 1 | |
<Geräteadresse>: numerischer Ausdruck im Wertebereich von 3 bis 31 bei BASIC 3.5 und BASIC 4 bzw. von 4 bis 30 bei BASIC 7.0 | |
Einordnung | |
Typ: | Anweisung |
Kontext: | Diskettenbefehl |
Aufgabe: | Diskette formatieren |
Abkürzung: | heA |
Token: | $f1 (241) |
Verwandte Befehle | |
COLLECT |
Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl HEADER ab Commodore BASIC 3.5 oder höher.
Der Befehl HEADER formatiert eine Diskette im angegebenen Diskettenlaufwerk. Der Datenträger ist dann leer und in einem organisatorisch "sauberen" Zustand, wobei letzteres bei einer belegten Diskette auch mittels COLLECT erreicht werden kann. Bevor jedoch der Formatiervorgang tatsächlich gestartet wird, erscheint die Sicherheitsabfrage:
ARE YOU SURE? |
Formatiert wird erst, wenn der Buchstabe "Y" oder irgendeine Eingabe, die mit "Y" beginnt, z.B. "YES" erfolgt und mit RETURN abgeschlossen wird. Bei allen anderen Angaben, bricht der Befehl kommentarlos ab. Wird dieser Befehl in BASIC-Programmen benutzt, entfällt die Sicherheitsabfrage!
Der Parameter Diskettenname kann bis zu 16 Zeichen lang und muss in Anführungszeichen "" stehen. Alternativ kann auch eine Zeichenkettenvariable in runden Klammern genutzt werden. Sollte die Zeichenkette leer sein, bricht der Befehl bei BASIC 3.5 und BASIC 4 mit der Fehlermeldung ?ILLEGAL QUANTITY ERROR und ab BASIC 7.0 mit ?MISSING FILENAME ERROR ab. Wenn der Name länger als 16 Zeichen ist, wird dies mit Fehler ?STRING TOO LONG ERROR quittiert.
Die zweistellige Diskettenkennung bzw. -identität wird über den Parameter Kennung vergeben. Fehlt die Angabe, wird nur eine Schnellformatierung vorgenommen, was voraussetzt, dass das Medium vorher bereits einmal vollständig formatiert wurde. Dabei wird nur das Verzeichnis gelöscht und die Diskettenbelegung als frei gekennzeichnet. Die Kennung der vorherigen Formatierung bleibt dabei erhalten.
Ein vorhandener Parameter bewirkt eine vollständige Formatierung (auch für bisher nicht formatierte Medien). Ist die Angabe vorhanden aber nicht 2-stellig, kommt es zur Fehlermeldung ?SYNTAX ERROR
Wurde mit dem HEADER-Befehl ein Diskettenlaufwerk angesprochen, zu dem die Geräteadresse falsch eingestellt ist oder nicht existiert, erscheint die Fehlermeldung ?DEVICE NOT PRESENT ERROR (im Direktmodus allerdings erst nach der Sicherheitsabfrage).
Zulässige Werte (stets als Ganzzahl aufgefasst) für Parameter
- Geräteadresse (Angabe erforderlich bei BASIC 3.5 und BASIC 4, optional bei BASIC 7.0, als Gerät 8, falls nicht vorhanden) sind von 3 bis 31 bei BASIC 3.5 und BASIC 4 bzw. von 4 bis 30 bei BASIC 7.0,
- Laufwerk sind 0 oder 1, wobei bei BASIC 3.5 und BASIC 4 (und Varianten) der Parameter zwingend vorhanden sein muss, während ab BASIC 7.0 die Angabe optional ist und falls nicht vorhanden mit 0 vorgegeben ist.
Sind die Parameter außerhalb des zulässigen Wertebereichs, erscheint die Fehlermeldung ?ILLEGAL QUANTITY ERROR, mit Ausnahme bei der Geräteadresse, wo ab BASIC 7.0 die Fehlermeldung ?ILLEGAL DEVICE NUMBER ERROR ausgegeben wird, falls der Wert nicht kleiner 0 oder größer 255 ist.
BASIC 2.0 Entsprechung
Allgemeine Syntax:
HEADER "NAME",D<Laufwerk>,I<ID> ON U<Gerät>
Entsprechung in BASIC V2-Syntax:
OPEN 15,<Gerät>,15,"N<Laufwerk>:<NAME>,<ID>":CLOSE 15
Besonderheiten bei Diskbefehlen[Quelltext bearbeiten]
- Bei einem Dateinamen ist optional ein führendes @ möglich (nur bei einer Dateinamenangabe von mehreren erlaubt), um eine bestehende Datei zu überschreiben (REPLACE-Funktion). Das Zeichen wirkt sich dann nicht auf das Längenlimit von 16 Zeichen aus. Intern wird damit immer der für den Save-Bug sichere Dateiname "@0:<Dateiname>" verwendet (in diesem Fall für Laufwerksnummer 0).
- Die Parameter mit einem führenden Buchstaben, die logische Dateinummer beginnend mit # und Dateinamensangaben sind positionsunabhängige Parameter und dürfen beliebig gereiht sein. Abweichend davon sind jene Befehle, die einen Quell- und Zielteil aufweisen, wie etwa COPY, wo dies nur für den jeweiligen Bereich vor bzw. nach dem trennenden TO gilt.
- Der Buchstabe eines positionsunabhängigen Parameters steht für:
- B: bank (Banknummer)
- D: drive (Laufwerksnummer)
- I: identification (ID-Kennung eines Mediums)
- L: record length
- P: position in memory (Start-/Endadresse)
- R: read (lesende Operation)
- W: write (schreibende Operation)
- U: unit (Gerätenummer)
- Variablen oder allgemeine Ausdrücke bei positionsunabhängigen Parametern sind möglich, müssen aber in Klammern gesetzt werden (außer bei "I<Id>", wo immer nur eine 2-Zeichen-Konstante erwartet wird).
- Die Angabe der Geräteadresse oder Bank (bei BASIC 7.0) kann entweder mit "," oder mit "ON" oder kombiniert mit ",ON" eingeleitet werden, wobei im Falle eines Kommas bereits ein anderer Parameter voran gegangen sein muss.
- Der optionale Parameter "I<Kennung>" für die Angabe der Identifikation wird immer akzeptiert. Dem "I" müssen 2 Zeichen folgen, wobei beliebige Leerzeichen dazwischen vorkommen dürfen. Der Wert kann nicht durch einen geklammerten Ausdruck ersetzt werden. Gewisse Werte, die BASIC-Befehle wie IF, ON, FN, TO oder BASIC-Abkürzungen wie jO, hE enthalten, werden fälschlicherweise als das entsprechende Schlüsselwort und nicht als der beabsichtigte Text interpretiert. Alle nichtkonformen Fälle führen dann zur Fehlermeldung ?SYNTAX ERROR.
- Ein Parameter "R" (ohne weitere Wertangabe, bei DOPEN zur expliziten Angabe des vorgegebenen Read-only-Modus gedacht) wird bei allen Diskbefehlen immer akzeptiert, hat aber keinerlei zusätzliche Bedeutung. Im Falle von BASIC 3.5 wird hingegen ?SYNTAX ERROR gemeldet.
Beispiele[Bearbeiten | Quelltext bearbeiten]
HEADER "DEMODISK 2008"
Schnellformatierung der Diskette, die sich im Laufwerk 0 mit der Geräteadresse 8, mit dem Diskettenname "DEMODISK 2008" befindet.
HEADER "ALTESPIELE",I9F,D1,U11
Formatiert die Diskette, die sich im Laufwerk 1 (eines Doppellaufwerks) mit der Geräteadresse 11 befindet, mit dem Diskettennamen "ALTESPIELE" und der Disketten-ID "9F".
10 PRINT CHR$(147)"WILLKOMMEN BEIM DISKETTENFORMATIEREN" 20 INPUT "BITTE DISKETTENNAME EINGEBEN";NAME$ 30 GA = 0 : INPUT "BITTE LAUFWERKSADRESSE ANGEBEN (4 BIS 30)"; GA 40 IF GA = 0 THEN GA = 8 50 LW = 0 : HEADER(NAME$),IXX,D(LW),U(GA)
Formatiert die Diskette innerhalb eines BASIC-Programms, wobei die Parameterübergabe mit Hilfe von Variablen passiert, mit Ausnahme bei Parameter I, wo dies nicht möglich ist (hier wird eine ID von "XX" festgelegt).
AUTO | BACKUP | BOX | CHAR | CIRCLE | COLLECT | COLOR | COPY | DEC | DELETE | DIRECTORY | DLOAD | DO | DRAW | DS | DS$ | DSAVE | EL | ELSE | ER | ERR$ | EXIT | GETKEY | GRAPHIC | GSHAPE | HEADER | HELP | HEX$ | INSTR | JOY | KEY | LOCATE | LOOP | MONITOR | PAINT | PRINT USING | PUDEF | RCLR | RDOT | RENAME | RENUMBER | RESUME | RGR | RLUM | SCALE | SCNCLR | SCRATCH | SOUND | SSHAPE | TRAP | TROFF | TRON | UNTIL | VOL | WHILE