DLOAD
DLOAD | |
Syntax: | DLOAD <Dateiname> [,D<Laufwerk>] [,U<Geräteadresse>] |
Parameter | |
<Dateiname> : Zeichenkettenausdruck | |
<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: | Programm von einer Diskette laden |
Abkürzung: | dL |
Token: | $f0 (240) |
Verwandte Befehle | |
BLOAD, BOOT, DSAVE, LOAD, RUN |
Anmerkung: Dieser Artikel beschreibt den BASIC-Befehl DLOAD ab Commodore BASIC 3.5 oder höher.
Der Befehl DLOAD lädt das in Dateiname eingegebene Programm von einem Diskettenlaufwerk in den Speicher des Computers.
Innerhalb von BASIC-Programme können mit DLOAD weitere Programme nachgeladen oder überlagert werden. Dabei bleiben alle Variablen des aufzurufenden Programms erhalten.
Wenn der Dateiname des Programms nicht existiert, wird die BASIC-Fehlermeldung ?FILE NOT FOUND ERROR ausgegeben.
Nach der Ausführung sind die Systemvariablen STATUS, sowie DS$ und DS entsprechend dem Status aus dem Fehlerkanal gesetzt.
Zulässige Werte (stets als Ganzzahl aufgefasst) für Parameter
- Geräteadresse (Gerät 8, falls nicht angegeben) 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 (Laufwerk 0, falls nicht gegeben).
Andere Werte ergeben eine ?ILLEGAL QUANTITY ERROR-Fehlermeldung, außer im Falle der Geräteadresse, wo bei Werten im Bereich 0 bis 255 außerhalb des zuvor genannten Bereichs ab BASIC 7.0 der Fehler ?ILLEGAL DEVICE NUMBER ERROR gemeldet wird.
Ist ein Gerät zu einer angegebenen Geräteadresse nicht vorhanden meldet Basic ?DEVICE NOT PRESENT ERROR.
Mit dem Zeichenketten-Parameter Dateiname kann die zu ladende Datei auch unter Verwendung von Jokerzeichen angegeben werden. Der Dateiname kann entweder als Zeichenkettenkonstante (in Anführungszeichen) oder als Ausdruck, z.B. eine Zeichenkettenvariable, (dann in runden Klammern) angegeben sein. Eine leere Zeichenkette führt zur Fehlermeldung ?MISSING FILENAME ERROR (erst ab BASIC 7.0), sonst zu ?ILLEGAL QUANTITY ERROR. Die Zeichenkette darf allerdings nicht mehr als 16 Zeichen enthalten, da dies sonst zur Fehlermeldung ?STRING TOO LONG ERROR führt.
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]
DLOAD "SPIEL1"
lädt das Programm SPIEL1 von der Diskette, die sich im Diskettenlaufwerk 0 mit der Geräteadresse 8 befindet.
DLOAD "*",U9
lädt das erste Programm von der Diskette im Diskettenlaufwerk 0 mit der Geräteadresse 9.
DLOAD "TOOL?",D1
lädt das erste Programm, deren Dateinamen 5 Zeichen lang ist und die Zeichenkette TOOL enthält vom Laufwerk 1 eines Doppellaufwerks mit der Geräteadresse 8.
10 PRINT CHR$(147) "LADE HAUPTPROGRAMM," 20 PRINT "BITTE WARTEN SIE EINEN MOMENT ..." 30 A$ = "LOTTOSIM": GA=8: DR=0 40 DLOAD (A$),D(DR),U(GA)
Aufruf parametrisiert über Variablen.
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