Der Maus den Rcken gekehrt Man mag zu grafischen Benutzeroberfl„chen und mausorientierte Betriebssysteme stehen wie man m”chte, manchmal sind Command- Line-Interpreter besser. So sind auch nicht alle Argumente gegen Benutzeroberfl„chen wie GEM von der Hand zu weisen. Es gibt leider) noch sehr viele Hilfsprogramme, haupts„chlich Compiler und Assembler, die ihre Meldungen als einfachen Text auf den Bildschirm bringen. Statt nach einer Meldung dem Benutzer die Chane zu geben, diese in Ruhe zu lesen, bringt GEM sofort den gewohnten Anblick des Desktops. Ein weiteres Manko ist es, daá man GEM-Applikationen nicht ohne weiteres Parameter mit auf den Weg geben kann --Wie w„re es mit einen Menpunkt >>GEM TAKES PARAMETER<>COMMAND ST<< modular aufgebaut, so daá eigene Funktionen und Befehle installierbar sind, ohne erst das Listing in-und auswendig zu kennen. Voraussetzung ist ein GFA-BASIC-Interpreter Version 2.0, empfehlenswert der Compiler (mindestens Version 1.3). Wer einen eigenen Befehl installieren m”chte, muá folgendermaáen vorgehen: Prozedurenamen des Befehls schreiben. Dabei k”nnen in dem Array PARA$() die Parameter aus der Commandozeile bernommen werden. In PARA$(0) steht nach der šbernahme der Befehlsname, in PARA$(1) bis PARA$(19) die brigen Parameter. PARA% beinhaltet die Anzahl der bergebenen Parameter. Anschlieáend inkrementiert man die Variable MAXCMD% Den Namen des Befehls in Groábuchstaben tr„gt man an vorletzter Stelle in den Datazeilen am Anfang des Programms ein. Der letzte Eintrag muá ein Leerstring sein. Den Namen der zugeh”rigen Procedure setzt man an vorletzter Stelle in die >>ON GOSUB<<-Statements in der Procedure >>EXE<< eintragen. Der letzte Eintrag muá >>NOCMD<< lauten. Doch nun zu den vorhandenen Leistungsmerkmalen: In COMMAND ST sind bereits 18 Befehle implementiert, die die meisten Bedrfnisse abdecken. Es wurde darauf geachtet, daá die meisten Befehle eine gewisse Kompatibilit„t zu bekannten Shells, wie zum Beispiel Unix, MS-DOS, CP\M erhalten. Darber hinaus sind einige Befehle hinzugekommen. Batchdateien werden verarbeitet und drfen dasselbe Format haben wie die, die dem Entwicklungspaket von Atari beiliegen. Ein >>%<<-Zeichen gefolgt von einer Ziffer zwischen 1 und 9 bedeutet, das hier der entsprechende Parameter der Commandozeile eingesetzt werden soll. Nach dem Start sucht das Programm nach der Batchdatei >>AUTOEXEC.BAT<< und startet sie. M”chte man ein Programm aufrufen, kann man die Extension weglassen. Es gengt der Name. COMMAND ST prft nach der Eingabe, ob dieser als Batchdatei exestiert. Die Kennung dafr lautet >>.BAT<<. Ist dies der Fall, wird sie geladen und ausgefhrt, ansonsten testet es ob die Endungen >>.PRG<<, >>.TOS<< oder >>.TTP<< vorliegen. Sollte keine dieser Endungen gefunden werden, wird geprft ob das letzte Zeichen ein >>:<< ist, und es sich somit um ein Label handelt. Ist dies nicht der Fall erfolgt eine Fehlermeldung. Im Folgenden werden alle Befehle mit Syntax und Kurzbeschreibung aufgelistet. ?CHDIR,CD Syntax: C[H]D[IR] [PFADNAME] Wechselt das aktuelle Inhaltsverzeichnis. Wird kein Pfadname angegeben erscheint der aktuelle Pfadname. Um von einem Unterverzeichnis in das Hauptverzeichnis zurckzukehren muá als Pfadname >>..<< eingegeben werden. ?CLS L”scht den Bildschirm. ?COPY Syntax: COPY [SCRMASK] [MASK] Kopiert Dateien, die der >>SCRMASK<< entsprechen nach >>MASK<<. >>MASK<< kann beliebig die Platzhalter >>?<< und >>*<< enthalten. >>MASK<< sollte eine Laufwerksangabe und/oder einen Pfadnamen enthalten. Beispiel: COPY *.BAS B:\BASIC.DIR\ kopiert alle Basicdateien in dem aktuellen Inhaltsverzeichnis nach Laufwerk B in den Ordner >>BASIC.DIR<<. ?DATE Syntax: DATE [DATUM] Zeigt oder setzt das aktuelle Datum. >>DATUM<< muá im Format >>TT.MM.JJJJ<< angegeben werden, wobei fhrende Nullen und Jahrhundertangaben weggelassen werden k”nnen, zum Beispiel entspricht 01.01.1987 auch der Eingabe 1.1.87. ?DIR Syntax: DIR [MASK] Gibt ein Inhaltsverzeichnis der Dateien aus die >>MASK<< entsprechen. Fr >>MASK<< gelten dieselben Regeln wie fr >>SRCMASK<< beim Kommando COPY. Wird keine Maske angegeben nimmt das Programm bleibt der ursprngliche Name erhalten. ?DUMP Syntax: DUMP NAME [AUSGABE] Gibt ein Hexadezimaldump einer Datei aus. Es werden 16 Bytes in einer Zeile ausgegeben. Optional kann ein Ausgabefile oder Kanal angegeben werden (zum Beispiel >>LST:<< fr Drucker. N„here Hinweise findet man im GFA-Basic-Handbuch unter >>OPEN<<. ?ECHO Syntax: ECHO STRING Ausgabe einer Zeichenkette auf den Bildschirm. Es drfen auf Steuercodes verwendet werden. ?ERASE,ERA Syntax: ERA[SE] MASK L”schen von Dateien. MASK kann genau wie bei DIR verwendet werden. ?EXIT Syntax: EXITVerlassen von COMMAND ST. ?GOTO Syntax: GOTO MARKE Direkter Sprung innerhalb einer Batchdatei. MARKE muá eine eigene Zeile in dem Batchprogramm sein und mit einem Doppelpunkt versehen werden, der wiederum im GOTO-Befehl fehlen muá. Beispiel: LABEL: GOTO LABEL ?HELP Listet alle vorhandenen Befehle auf dem Bildschirm. ?MKDIR,MD Syntax: M[K]D[IR] ORDNERNAME Generiert einen Ordner auf Diskette/Festplatte. ?PRINT ? Syntax: PRINT MASK [PLEN] Gibt ein formatiertes Listing von allen Dateien, die MASK entsprechen, auf den Drucker aus. Fr MASK gilt dasselbe wie bei COPY. Es kann die Anzahl der Zeilen pro Seite angegeben werden, die der Drucker verarbeiten kann. Die Voreinstellung ist 66. ?REN Syntax: REN OLDNAME NEWNAME Benennt Datei OLDNAME in NEWNAME um. ?RMDIR,RD Syntax: R[M]D[IR] ORDNERNAME L”scht einen leeren Ordner. ?TIME Syntax: TIME [TIMESTRING] Zeigt oder setzt die aktuelle Zeit. TIMESTRING muá das Format HH:MM:SS haben. ?TYPE Syntax: TYPE DATEINAME [>AUSGABE] Listet ASCII-Datei auf dem Bildschirm oder auf ein anderes Ausgabeger„t aus. Fr AUSGABE gilt diesselbe Erl„uterung wie DUMP. ?VERSION Gibt die CLI-Einschaltmeldung aus. Zum Schluá noch ein Worte zu dem GFA-BASIC-Compiler. Die mir vorliegende Version 1.7 wies leider noch einige gravierende M„ngel auf. So funktionierte der >>FORM INPUT<< nicht richtig, und in der DUMP-Procedure gab es nur Bomben, obwohl der Interpreter ordentlich arbeitete. Ich hoffe das GFA Systemtechnik bald einen Compiler bringt der diese und vielleicht auch andere Fehler nicht mehr hat und ernsthafte Anwendungen zul„át. Um eine 95 Prozent lauff„hige Version zu erhalten muá in der >>DO..LOOP<<-Schleife am Anfang des Listings der >>FORM INPUT<<- Befehl folgendermaáen ge„ndert werden: >>INPUT LIN$<<. Jetzt erscheint der Prompt zwar immer mit einem h„álichen Fragezeichen, aber der Command-Interpreter arbeitet einwandfrei.