###   Projekte und Informationen rund um den KC85   ### 

ML-DOS-Tip: CAPTURE.COM

von Frank Dachselt

Wer bereits vom guten alten MicroDOS auf das neue Betriebssystem ML-DOS umgestiegen ist, wird es sicherlich bemerkt haben: die residenten Kommandos ,,<`` und ,,>`` zur Umlenkung von Ein- und Ausgaben aus einer bzw. in eine Datei gibt es nicht mehr. Während für die Eingabe von Kommandos aus einer Datei mit SUBMIT.COM ein komfortabler Ersatz zur Verfügung steht, ist die Umleitung der Ausgabe auf den Drucker mittels ,,^P`` als einzige zur Verfügung stehende Möglichkeit bestimmt keine allseits befriedigende Lösung. Auf der Suche nach Alternativen bin ich nach einigen Experimenten schließlich auf das Programm CAPTURE.COM gestoßen, das umfangreiche Möglichkeiten zur Ausgabeumlenkung bietet und im folgenden kurz vorgestellt werden soll.

Der Aufruf von CAPTURE in der Kommandozeile besitzt folgenden Aufbau:

capture <options> | <command line>

Dabei sind die beiden Argumente <options> und | <command line> optional und können unabhängig voneinander weggelassen werden. In Abhängigkeit davon, ob der Bar gefolgt von einer Kommandozeile angegeben wird oder nicht, startet CAPTURE im Einzelkommando-Mode oder im Mehrfachkommando-Mode (extended mode). Im ersten Fall erstreckt sich die Wirkung des Programms nur auf die nachfolgend angegebene Kommandozeile, während das Programm im zweiten Fall auf alle nachfolgenden Kommandoeingaben wirkt, bis es erneut mit der Option /q aufgerufen wird (CAPTURE befindet sich während dieser Zeit resident im oberen Teil des TPA). Im Einzelkommando-Mode muß dem Bar der Aufruf einer COM-Datei folgen, die Verwendung der residenten Kommandos des Betriebssystems ist nur im Mehrfachkommando-Mode möglich.

CAPTURE bietet die Möglichkeit, eine Umlenkung der Zeichenausgabe aus einem von drei Quellkanälen in einen von drei Zielkanälen vorzunehmen. Als Quellkanal können die Konsolenausgabe, die Konsoleneingabe sowie die Druckerausgabe verwendet werden, als Zielkanal stehen die Druckerausgabe, die Konsolenausgabe und die Ausgabe in ein File zur Verfügung. Was dabei unter Umlenkung zu verstehen ist, hängt von der jeweiligen Situation ab. Wird zum Beispiel die Konsolenausgabe im Mehrfachkommando-Mode umgeleitet, so erfolgt die Ausgabe aller Zeichen zusätzlich auch im Zielkanal. Im Einzelkommando-Mode wird dagegen die Konsolenausgabe auf dem Bildschirm unterdrückt. Ebenso wird bei einer Umlenkung der Druckerausgabe grundsätzlich kein Zeichen zum Drucker gesendet, sondern die Ausgabe erfolgt dann nur im Zielkanal. Eine Umleitung der Konsoleneingabe hat aus naheliegenden Gründen stets eine zusätzliche Ausgabe im Zielkanal zur Folge.

Folgende Optionen können in der Kommandozeile angegeben werden:

c>
Umleitung der Konsolenausgabe (Quellkanal);
i>
Umleitung der Konsoleneingabe (Quellkanal);
l>
Umleitung der Druckerausgabe (Quellkanal);
lst:
Zielkanal ist die Druckerausgabe;
con:
Zielkanal ist die Konsolenausgabe;
<fname>
Zielkanal ist das File mit dem angegeben Namen, das Voranstellen eines Laufwerksbuchstaben ist möglich;
/x
existiert das File bereits, das als Zielkanal angegeben wurde, werden alle folgenden Ausgaben am Ende dieses Files angehängt, ansonsten wird das existierende File gelöscht und ein leeres mit gleichem Namen angelegt;
/t
Übersetzung von CTRL-Zeichen;
/un
Angabe der Usernummer für die Fileausgabe;
/bn
Anlegen eines Puffers von n Pages;
/f
Ausgabe des Pufferinhaltes (flush buffers);
/q
Ende der Umlenkung im Mehrfachkommando-Mode, der residente Teil von CAPTURE wird aus dem TPA entfernt;
//
Ausgabe einer Hilfeseite.

Wird beim Aufruf von CAPTURE kein Quellkanal angegeben, so wird die Konsolenausgabe umgelenkt. Wird CAPTURE ohne jegliche Parameter aufgerufen, so wird der Mehrfachkommando-Mode angenommen und die Konsolenausgabe in das File OUTLOG auf dem aktuellen Laufwerk umgelenkt.

Die folgenden Beispiele zeigen einige interessante Anwendungsmöglichkeiten von CAPTURE:

capture a:disk.dir | zxd e:
Hier arbeitet CAPTURE im Einzelkommando-Mode; die Ausgabe des Verzeichnisses von Laufwerk E: mittels des Programms ZXD.COM wird in die Datei DISK.DIR auf Laufwerk A: umgelenkt, wobei die Ausgabe auf dem Bildschirm unterdrückt wird;

capture a:asm.log /u1
Hier wird der Mehrfachkommando-Mode von CAPTURE aufgerufen; alle Konsolenausgaben in den nächsten Kommandos werden im File A:ASM.LOG im Userbereich 1 protokolliert; beendet wird diese Funktion durch den Aufruf von CAPTURE mit der Option /q;

capture i> a:input.log /x
Im Mehrfachkommando-Mode werden alle folgenden Konsoleneingaben im File A:INPUT.LOG protokolliert; ist das File bereits vorhanden, werden die Eingaben am Ende des Files angefügt;

capture i> lst:
Im Mehrfachkommando-Mode werden alle folgenden Konsoleneingaben auf dem Drucker protokolliert;

capture l> a:print.log
Im Mehrfachkommando-Mode werden alle folgenden Druckerausgaben in das File A:PRINT.LOG umgeleitet und die Ausgabe auf dem Drucker unterdrückt; damit ist es zum Beispiel möglich, die Protokollierung der Konsolenausgabe im genannten File auf Kommandozeilenebene mittels ^P zu steuern.