home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
No Fragments Archive 10: Diskmags
/
nf_archive_10.iso
/
MAGS
/
STMAGAZIN
/
STMAGAZIN.MSA
/
ANWENDUN.GEN
/
COMMAND
/
COMMAND.TXT
< prev
Wrap
Text File
|
1986-02-06
|
7KB
|
152 lines
Der Maus den Rücken 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 Menüpunkt >>GEM TAKES PARAMETER<<? Diese und vielleicht
auch andere Punkte veranlaβten mehrere Firmen --nicht zuletzt
Atari selbst --einen Command-Line-Interpreter (CLI) zu
veröffentlichen.
Das hier abgedruckte Programm soll weniger in Konkurrenz zu
der kommerziellen Software stehen, als vielmehr dem Anwender die
Fähigkeit geben den CLI nach seinen Bedürfnissen aufs Einfachste
zu erweitern. Damit dies gewährleistet ist, wurde >>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
Bedürfnisse 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. Darüber hinaus sind einige
Befehle hinzugekommen. Batchdateien werden verarbeitet und dürfen
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 genügt der Name. COMMAND ST prüft nach der Eingabe,
ob dieser als Batchdatei exestiert. Die Kennung dafür lautet
>>.BAT<<. Ist dies der Fall, wird sie geladen und ausgeführt,
ansonsten testet es ob die Endungen >>.PRG<<, >>.TOS<< oder
>>.TTP<< vorliegen. Sollte keine dieser Endungen gefunden werden,
wird geprüft 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 zurückzukehren 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 führende 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. Für >>MASK<< gelten dieselben Regeln wie für
>>SRCMASK<< beim Kommando COPY. Wird keine Maske angegeben nimmt
das Programm bleibt der ursprüngliche 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:<< für Drucker. Nähere
Hinweise findet man im GFA-Basic-Handbuch unter >>OPEN<<.
?ECHO
Syntax: ECHO STRING
Ausgabe einer Zeichenkette auf den Bildschirm. Es dürfen 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. Für 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. Für 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.