                Dokumentation zur Entwicklungsumgebung

                               Chatwin

                                V3.07
                              09.11.1997

                                 von

                              Dirk Haun
                             Europastr. 8
                           D-64569 Nauheim
                               Germany

                           Dirk Haun @ WI2



Inhaltsverzeichnis
==================

 1  Was ist Chatwin?
 2  Shareware
 3  Voraussetzungen
 4  Hilfestellungen
 5  Fenster und Dialoge
 6  Die Menleiste
 7  Die Dialoge
 8  Die Chatwin-Kommandosprache
 9  Wie schreibe ich ein Takefile?
10  Beispiel-Takefile
11  Fehlermeldungen
12  Tips, Tricks und Hinweise

Anhang
======

 A  Andere Programme
 B  Programm starten
 C  Oberon
 D  Protokolle
 E  IFormats-Paket



1  Was ist Chatwin?
*******************

Chatwin ist eine Shell (oder "Entwicklungsumgebung") fr nahezu alle
klassischen Compilersprachen und hnlich aufgebaute Systeme. Zu jeder
Sprache bzw. zu jedem System wird normalerweise eine eigene Shell
mitgeliefert. Arbeitet man mit mehreren solchen Sprachen, mu man sich
jedesmal umstellen. Chatwin dagegen kann als einheitliche Shell fr
alle diese Sprachen verwendet werden und der typische
Entwicklungszyklus Editieren - Compilieren - Linken lt sich mit
Chatwin und einem geeigneten Editor mit einem einzigen Tastendruck
auslsen (siehe unter "Editor" und "SE-Protokoll").

Einige Beispiele fr Systeme, die sich mit Chatwin benutzen lassen:
Die meisten C-Compiler (z.B. Pure C und Gnu C), Oberon, ST-Guide (auch
dort gibt es schlielich einen Compiler), UDO oder auch TeX. Und
natrlich lt sich Chatwin auch "einfach so" verwenden, wenn man
gerade mal einen Kommandozeileninterpreter ("CLI") braucht.

Ein Nachteil soll nicht verschwiegen werden: Chatwin ist ein sehr
flexibles und vielseitiges Programm. Dadurch ist aber eine gewisse
Einarbeitungszeit ntig. Um den Einstieg zu erleichtern, werden aber
einige Beispiele fr Umgebungen ("Settings") fr verschiedene
Anwendungen mitgeliefert.

Wer einen Desktop-Ersatz oder eine Unix-kompatible Shell sucht, wird
mit Chatwin wahrscheinlich nicht glcklich werden. Chatwin verfgt
nicht ber Laufwerksfenster (die Dateiliste kommt dem noch am
nchsten) und die Chatwin-Kommandosprache greift auf verschiedene
Quellen (darunter auch, aber eben nicht nur, Unix) zurck.


"How to get started"

Sie sind noch da? Prima, dann sollten Sie sich jetzt einmal an einer
Installation fr Ihr System versuchen. Wenn unter den mitgelieferten
Beispielen kein passendes fr Ihre Anwendung zu finden ist, dann
sollten Sie zunchst die einzelnen Bestandteile Ihres Systems (Editor,
Compiler, usw.) bei Chatwin anmelden. Das geschieht ber die
Menpunkte im Optionen-Men. Lassen Sie sich von den dort vorgegebenen
Bezeichnungen nicht verwirren, wenn sie nicht zu den Programme Ihres
Systems passen - nur den Editor sollten Sie auch wirklich unter dem
entsprechenden Menpunkt anmelden, alle anderen Eintrge knnen Sie
nach Ihrem Gutdnken belegen.

Wenn Sie Ihr System soweit eingerichtet haben, da Sie einen Durchlauf
(z.B. das bersetzen eines Quelltextes) durch aufeinanderfolgendes
Anklicken der entsprechenden Menpunkt im Programm-Men (z.B. Editor,
Compiler, Linker) erfolgreich durchfhren konnten, dann sollten Sie
als nchstes daran gehen, diesen Ablauf in einem Takefile zu
formulieren. Der Abschnitt "Wie schreibe ich ein Takefile?" beschreibt
die Vorgehensweise exemplarisch fr Pure C, weitere Anregungen knnen
Sie sich aus den mitgelieferten Beispiel-Takefiles holen.

brigens: Das Programm Chatwin ist benannt nach dem Schriftsteller
Bruce Chatwin. Assoziationen mit "Window" sind also rein zuflliger
Natur und nicht beabsichtigt.


1.1  Bruce Chatwin
==================

Bruce Chatwin, geboren 1940 in Sheffield, arbeitete acht Jahre lang in
dem Londoner Auktionshaus Sotheby's und spter als Journalist bei der
"Sunday Times". Seit 1962 fhrten ihn ausgedehnte Reisen nach Asien,
in die Sowjetunion, nach Osteuropa, Westafrika, Australien und nach
Lateinamerika.


 "In Patagonia"               (1977),  dt. "In Patagonien"
 "The Viceroy of Ouidah"      (1980),  dt. "Der Vizeknig von Ouidah"
 "On the Black Hill"          (1982),  dt. "Auf dem schwarzen Berg"
 "The Songlines"              (1987),  dt. "Traumpfade"
 "Utz"                        (1988),  dt. "Utz"
 "What am I doing here"       (1989),  dt. "Was mache ich hier"
 "Photographs and Notebooks"  (1993),  dt. "Auf Reisen"
 "Anatomy of Restlesness"     (1996)

                 Tabelle 1: Bcher von Bruce Chatwin


Fr "In Patagonia" erhielt er mehrere internationale literarische
Auszeichnungen. Verfilmt wurden "On the Black Hill", "Utz" (mit Armin
Mller-Stahl als Utz) sowie "The Viceroy of Ouidah" (unter dem Titel
"Cobra Verde" mit Klaus Kinski, Regie: Werner Herzog).

Bruce Chatwin starb 1989 in Nizza.



2  Shareware
************

Wenn Ihnen Chatwin gefllt und Sie das Programm regelmig verwenden,
dann wird eine Sharewaregebhr von 30,- DM fllig. Da Chatwin ein
recht komplexes Programm ist, und man seine Leistungsfhigkeit erst
nach einiger Zeit richtig einschtzen kann, rume ich Ihnen hiermit
eine Testzeit von vier Wochen ein. Wenn Sie Chatwin nach Ablauf dieser
Frist immer noch verwenden, ohne gezahlt zu haben, so arbeiten Sie mit
einer Raubkopie!

Als Gegenleistung erhalten Sie die aktuelle Version auf Diskette sowie
das Recht, Verbesserungsvorschlge anzubringen. Hinweise auf evtl.
Fehler sowie sinnvolle Erweiterungen werden natrlich auch von (noch)
nicht registrierten Anwendern gerne entgegengenommen. Von
Erpressungsversuchen der Art "wenn dieses und jenes eingebaut wird,
dann werde ich mich registrieren lassen" bitte ich allerdings
abzusehen.

Chatwin wird auf jeden Fall weiterentwickelt, schon allein aus purem
Eigenbedarf. Wenn Sie an dieser Entwicklung teilhaben wollen, dann
schicken Sie bitte 30,- DM (in Scheinen oder als Scheck) an

     Dirk Haun
     Europastr. 8
     D-64569 Nauheim
     Germany

oder berweisen Sie das Geld auf mein Konto

     Konto Nr. 8042947 bei der
     Kreissparkasse Gro-Gerau
     BLZ 50852553

Bitte geben Sie bei einer berweisung den Betreff `Chatwin' an und
schreiben Sie mir zustzlich (per Post oder e-mail) noch Ihre Adresse!
Einzahlungen, die ich nicht zuordnen kann, mu ich leider als Spenden
auffassen.

Per e-mail erreichen Sie mich unter

     Dirk Haun @ WI2

im MausNet (bitte nur Mail bis maximal 16 KByte!!!). Dies ist auch der
beste Weg, Fragen an mich zu stellen. Bei Anfragen per Brief bitte
Rckporto (1,- DM) beilegen (bei der Registrierung nicht notwendig)!


Updates

Updates sind z.Z. nur fr registrierte Anwender erhltlich. Die
jeweils aktuelle Chatwin-Version kann bei mir (Adresse siehe oben)
gegen Einsendung einer Diskette (DD oder HD) und eines adressierten
und frankierten Rckumschlags bezogen werden. Ein solcher Umschlag
kann auch "auf Vorrat" bei mir deponiert werden, dann verschicke ich
die neueste Version, sobald sie fertiggestellt ist. Fr Besitzer eines
Modems ist zudem ein Update per DF mglich, nheres bei Interesse per
e-mail (Adresse siehe oben).

Das erste Update erhalten Sie automatisch nach dem Eingang Ihrer
Registrierung, die Einsendung einer Diskette ist dabei nicht ntig.


Weitergabe und Vertrieb

Das Programm Chatwin ist Shareware. Es darf beliebig kopiert und
weitergegeben, aber nicht verkauft werden. Das Programm darf ber
Mailboxen und hnliche nichtkommerzielle Systeme (z.B. ftp) verbreitet
werden, solange dem Empfnger dabei keine zustzlichen Kosten (auer
den ohnehin anfallenden Gebhren) entstehen. Eine bernahme des
Programms auf PD-Disketten, CDs, Coverdisks (oder hnliche, an
Zeitschriften gebundene Speichermedien) ist nur nach Rcksprache und
mit schriftlicher Genehmigung des Autors gestattet. Das Programm darf
ohne entsprechende Genehmigung nicht zusammen mit kommerzieller
Software (dazu zhlt auch andere Shareware) vertrieben werden. Ein
Vertrieb zusammen mit anderer kostenloser Software ist gestattet,
solange deutlich wird, da Chatwin ein eigenstndiges Produkt und
nicht Teil eines Pakets ist, und da die Benutzung von Chatwin nicht
kostenlos ist.

Dem Chatwin-Paket drfen keine Dateien (insbesondere keine Werbung fr
Mailboxen) hinzugefgt werden. Auch drfen keine Dateien aus dem Paket
entfernt werden, auer wenn dies aus rechlichen Grnden ntig sein
sollte. Das Paket darf in beliebiger gepackter oder ungepackter Form
verbreitet werden, solange es dafr nachvollziehbare Grnde gibt
(persnliche Sympathien oder Antipathien gegenber einem bestimmten
Packer sind keine nachvollziehbaren Grnde) und die Ordnerstruktur
erhalten bleibt.

Diese Regelungen gelten ausdrcklich nur fr die Version 3.07. Fr die
Weitergabe lterer und neuerer Versionen ist deren jeweilige Anleitung
zu konsultieren.


Copyright

Das Programm Chatwin unterliegt dem Copyright von Dirk Haun / Terra
Software Systems. Alle Rechte vorbehalten.



3  Voraussetzungen
******************

Hardware

Chatwin luft auf nahezu allen Rechnern, auf denen ein Betriebssystem
TOS (oder ein dazu kompatibles) lauffhig ist. Die Mindestanforderung
an Speicher betrgt 1 Megabyte (mglicherweise luft Chatwin auch auf
Rechnern mit nur 512 KByte, dann knnen Sie aber auer Chatwin kein
weiteres Programm mehr starten - und dazu war Chatwin doch eigentlich
gedacht!).

Empfohlen wird eine Konfiguration, bei der vor dem Start von Chatwin
noch mindestens 1 MByte Speicher frei sind. Chatwin selbst belegt ca.
350 KByte, bei entsprechender Installation auch mehr.

Weitere Hardware wird nicht vorausgesetzt. Empfohlen wird jedoch eine
Festplatte, eine Auflsung grer als 640 mal 480 Bildpunkte sowie ein
Prozessor mit hherer Leistung als ein 68000 mit 8 MHz.


Betriebssysteme

Chatwin bentigt mindestens eine TOS-Version 1.02 (sog. "Blitter-TOS")
bzw. das Betriebssystem MagiC ab 2.00. ltere Versionen der genannten
Betriebssysteme erkennt Chatwin und verweigert mit einem
entsprechenden Hinweis die Arbeit. Selbstverstndlich luft Chatwin
auch mit dem Betriebssystem MultiTOS.

Die einzige Empfehlung, die zum Betriebssystem gegeben werden kann,
lautet: Immer eine mglichst aktuelle Version verwenden.


sonstige Software

Chatwin untersttzt diverse Programme bzw. kann mit ihnen
zusammenarbeiten. Unbedingt empfehlenswert sind ein Hilfesystem
(insbesondere das Programm ST-Guide) und ein externer Fontselektor,
z.B. das Programm Calvino.



4  Hilfestellungen
******************

Chatwin verfgt ber eine Reihe von Hilfestellungen. Die wichtigste
ist mit Sicherheit die Online-Hilfe ber ST-Guide. Um diese zu nutzen,
sollten sie das Programm ST-Guide installieren (entweder als Accessory
- dann findet Chatwin ihn automatisch - oder als nachzustartendes
Programm im Dialog "Einstellungen"). Auerdem mssen Sie die Chatwin-
Hilfe (die Dateien CHATWIN.HYP und CHATWIN.REF) in den Ordner
kopieren, in dem auch die anderen Hypertexte des ST-Guide liegen (der
Pfad mu im ST-Guide eingestellt werden, siehe dessen Anleitung).

Nachdem der ST-Guide wie beschrieben installiert ist, stehen Ihnen in
Chatwin folgende Hilfestellungen zur Verfgung:


Hilfe-Buttons

Alle Chatwin-Dialoge verfgen ber einen Hilfe-Button, der durch
Anklicken (oder Drcken der Help-Taste) auf die entsprechende
Hilfeseite zu diesem Dialog in der Online-Hilfe verzweigt.

Der Hilfe-Button im Dialog `ber Chatwin' verzweigt auf die Titelseite
der Online-Hilfe.


Menleiste

Durch einen Control-Klick (Mausklick bei gedrckter Control-Taste) auf
einen beliebigen Eintrag der Chatwin-Menleiste ffnet sich die
Online-Hilfe mit einer Seite zu dem jeweiligen Men.

Das Hilfe-Men bietet folgende Mglichkeiten:

 Kontext
     Dieser Eintrag ffnet eine Seite der Online-Hilfe, die zum
     aktuellen Kontext pat.

 Allgemein
     Dieser Eintrag ffnet das Inhaltsverzeichnis der Online-Hilfe.

 Index
     Dieser Eintrag ffnet das Stichwortverzeichnis der Online-Hilfe.


Console

In der Console gibt der Befehl help (oder ein Druck auf die Help-
Taste) eine Liste aller verfgbaren Kommandos aus. Mit

       help <kommando>

wird die entsprechende Seite der Online-Hilfe geffnet, auf der das
Kommando erklrt wird (wenn es sich bei dem Kommando um ein Makro
handelt, wird stattdessen die Definition des Makros ausgegeben).

Hinter help kann aber auch ein beliebiges anderes Stichwort angegeben
werden, da dann in der Online-Hilfe gesucht wird.


Fehlermeldungen

Wenn eine Fehlermeldung in einem Alert ausgegeben wird, dann hat
dieser zumeist auch noch einen Hilfe-Button. Ein Klick auf diesen
Hilfe-Button ruft aus der Online-Hilfe eine kurze Beschreibung des
Fehlers sowie Hinweise zur Fehlerbeseitigung ab.


BubbleGEM

Zu allen Chatwin-Dialogen gibt es auch noch eine BubbleGEM-Hilfe. Wenn
das Programm BubbleGEM installiert ist und der Menpunkt `BubbleGEM'
im Hilfe-Men aktiviert (mit einem Hkchen versehen) ist, dann knnen
sie in allen Dialogen durch einen Klick mit der rechten Maustaste auf
ein beliebiges Objekt eine kurze Erklrung zu dem Objekt abrufen.

Fr die BubbleGEM-Hilfe bentigt Chatwin die Datei CHATWIN.HLP, die
sich im gleichen Verzeichnis befinden mu, wie das Programm
CHATWIN.APP selbst.



5  Fenster und Dialoge
**********************

Die Dialoge von Chatwin liegen in Fenstern. Dadurch ist gewhrleistet,
da andere Prozesse, die ebenfalls Ausgaben auf dem Bildschirm
vornehmen wollen, nicht behindert werden. Die meisten Dialoge sind
nicht-modal, d.h. da die Dialoge nicht geschlossen werden mssen, um
eine andere Funktion auswhlen zu knnen. Einen modalen Dialog
erkennen Sie daran, da er keinen Closer hat. Auerdem wird dann auch
die Menleiste gesperrt (nur die Accessories knnen noch angewhlt
werden). Wenn ein modaler Dialog erscheint, mssen Sie ihn erst
bearbeiten, bevor Sie eine andere Funktion in Chatwin auswhlen
knnen.

Der Aufbau der Dialoge ist weitgehend einheitlich: Im Fenstertitel
steht der Name bzw. die Funktion des Dialogs. Am unteren Rand finden
sich verschiedene Buttons: Ganz rechts der Button `Abbruch', der die
Bearbeitung des Dialogs abbricht und evtl. vorgenommene nderungen im
Dialog wieder rckgngig macht. Links daneben befindet sich der OK-
Button, der die vorgenommenen Eingaben besttigt bzw. eine Funktion
auslst (z.B. Formatieren). Ganz links unten befindet sich zumeist
noch ein Hilfe-Button ber den - sofern Sie ein Hilfe-ACC installiert
haben (siehe Einstellungen) - ein Hilfstext zu dem Dialog abgerufen
werden kann.

Einige Objekte in den Dialogen knnen auch mit einem Doppelklick
angewhlt werden. Dies kann alternativ auch ber einen einfachen Klick
mit der rechten Maustaste erreicht werden. Zudem sind alle mit der
Maus erreichbaren Objekte auch ber Tastatur zu bedienen. Dazu ist die
Alternate-Taste zusammen mit einer Buchstabentaste zu drcken. Welche
Taste das ist, erkennen Sie an den unterstrichenen Buchstaben. Wenn
also im Button "Lschen" das `L' unterstrichen ist, so knnen Sie
diesen Button ber Tastatur anwhlen, indem Sie [Alternate] und [L]
gleichzeitig drcken. Fr einen "Doppelklick per Tastatur" mu
zustzlich noch eine Shift-Taste gedrckt werden.


Editfelder

In den Editfeldern in den Dialogen knnen auch Texte vom Klemmbrett
(Datei SCRAP.TXT) geholt bzw. dorthin geschrieben werden. Dabei wird
maximal eine Zeile oder soviele Zeichen geholt, wie in das Editfeld
passen.

 Control-C  bernimmt den Inhalt des Editfeldes auf das Klemmbrett
 Control-X  bernimmt den Inhalt des Editfeldes auf das Klemmbrett und
            lscht das Editfeld
 Control-V  bernimmt den Inhalt des Klemmbretts in das Editfeld
 Control-Y  lscht das Editfeld

Wird bei Control-C und Control-X zustzlich eine Shift-Taste gedrckt,
dann wird der Inhalt des Editfeldes an den Inhalt des Klemmbretts
angehngt (andernfalls wird der Inhalt des Klemmbretts durch den des
Editfeldes ersetzt). Bei Control-Shift-V wird der Inhalt des
Klemmbretts an der aktuellen Cursorposition im Editfeld eingefgt.


Iconify

Chatwin beherrscht auch das sogenannte "Iconify", und zwar sowohl nach
der von Atari mit MultiTOS 1.08beta eingefhrten Methode (die auch von
MagiC ab der Version 3.00 untersttzt wird), als auch mit und ohne den
ICFS. "Iconify" bedeutet, da ein Fenster auf die Gre eines Icons
"geschrumpft" wird. Dies ist also eine einfache Methode, Fenster
kurzfristig "aus dem Weg zu rumen".

Ausgelst wird das Iconify unter einer entsprechenden MultiTOS- oder
MagiC-Version mit einem neuen Fensterelement (genannt "Smaller") links
neben dem Fuller. Steht dieses Gadget nicht zur Verfgung, so mssen
Sie das Schliefeld des Fensters anklicken und dabei eine der
folgenden Tasten gedrckt halten:

 [Alternate]   ein einzelnes Fenster verkleinern
 [Control]     alle Fenster in ein einziges verkleinern
 [Shift]       alle Fenster einzeln verkleinern

Zudem untersttzt Chatwin noch das Iconify per Tastatur. Wenn Sie
[Control][Alternate][Space] drcken, wird das oberste Fenster als Icon
abgelegt, bei [Control][Alternate][(Links-)Shift][Space] werden alle
Fenster in einem einzigen Icon abgelegt. Ein derart verkleinertes
Fenster kann durch Anklicken oder die genannten Tastenkombinationen
wieder geffnet werden.



6  Die Menleiste
*****************

Die Menleiste von Chatwin besteht aus den folgenden Drop-down-Mens:

 6.1  CHATWIN-Men
 6.2  Datei-Men
 6.3  Programm-Men
 6.4  Take-Men
 6.5  Extras-Men
 6.6  Konfiguration-Men
 6.7  Optionen-Men
 6.8  Hilfe-Men

Die Tastenkrzel der einzelnen Menpunkte sind im folgenden nicht
aufgefhrt, da sie ber den Eintrag `Menkrzel' frei belegbar sind
(fr die Eintrge des Hilfe-Mens knnen keine Tastenkrzel vergeben
werden).


6.1  CHATWIN-Men
=================

 ber Chatwin
     Anzeige von Versionsnummer und Copyright

 Accessories
     (falls vorhanden)


6.2  Datei-Men
===============

 Anzeigen
     Datei anzeigen

 Info
     Informationen fr Dateien (siehe "Datei-Information"), Ordner
     (siehe "Ordner-Information"), Laufwerke (siehe "Disk-Info")

 Drucken
     Datei drucken

     Wird der Eintrag mit gedrckter Shift-Taste angewhlt, erscheint
     der Dialog fr die Drucker-Einstellungen.

 CONSOLE.OUT
     Inhalt des Console-Fensters in Datei sichern

     Wird der Eintrag mit gedrckter Shift-Taste angewhlt, so wird
     der Inhalt der Console auf dem Klemmbrett abgelegt.

 Lschen
     Dateien oder Ordner lschen

 Formatieren
     Disketten formatieren

 Ordner neu
     neuen Ordner anlegen

 Kopieren
     Dateien oder Ordner kopieren

 Beenden
     Chatwin sofort verlassen


6.3  Programm-Men
==================

 Editor
     Editor aufrufen

 Compiler
     Compiler aufrufen

 Assembler
     Assembler aufrufen

 Linker
     Linker aufrufen

 Debugger
     Debugger aufrufen

Werden diese Eintrge mit gedrckter Shift-Taste angewhlt, erscheint
stattdessen die entsprechende Options-Box aus dem Optionen-Men.

 (nicht belegt)
     Hier knnen bis zu acht beliebige weitere Programme angemeldet
     werden.

     Auch diese Eintrge knnen mit gedrckter Shift-Taste angewhlt
     werden. Es erscheint dann der entsprechende Eintrag aus dem
     Optionen-Men.

 neues PRG
     das zuletzt bersetzte Programm starten

 anderes
     ein beliebiges anderes Programm starten


6.4  Take-Men
==============

 Takefiles finden
     Takefiles anmelden

 Takefile 1
     Takefile Nr. 1 starten

 Takefile 2
     Takefile Nr. 2 starten

 Takefile 3
     Takefile Nr. 3 starten

Wird einer der drei Takefile-Eintrge mit gedrckter Shift-Taste
angewhlt, wird das jeweilige Takefile als Default-Takefile angemeldet
und mit einem Hkchen markiert.

 anderes Takefile
     ein beliebiges anderes Takefile starten


6.5  Extras-Men
================

 Quelltext
     aktuelle Arbeitsdatei festlegen

     Bei Anwahl dieses Menpunkts mit gedrckter Shift-Taste wird der
     aktuelle Quelltext wieder abgemeldet.

 Console
     Console-Fenster ffnen

 Dateiliste
     ffnet die Dateiliste

 nchstes Fenster
     nchstes Fenster nach oben bringen

     Wird der Menpunkt mit gedrckter Shift-Taste angewhlt, wird das
     Fenster stattdessen nach hinten gelegt (dies mu allerdings vom
     Betriebssystem untersttzt werden).

 schliee Fenster
     oberstes Fenster schlieen

     Zustzlich kann man alle Chatwin-Fenster auf einmal schlieen,
     wenn man den Menpunkt mit gedrckter Shift-Taste anwhlt.


6.6  Konfiguration-Men
=======================

 Einstellungen
     diverse Einstellungen

 Fehlermeldungen
     Format fr Fehlermeldungen (siehe "Format der Fehlermeldungen")
     vorgeben

 Programmstart
     Optionen fr Programmstarts einstellen

 Fontauswahl
     Font fr Console und Dateiliste auswhlen

 Hintergrund
     Hintergrundfarbe und -muster festlegen

 Drucker
     Drucker-Einstellungen

 Menkrzel
     Tastenkrzel fr Menleiste festlegen

     Wird der Meneintrag mit gedrckter Shift-Taste angewhlt, werden
     die Tastaturkrzel wieder auf ihre Default-Werte zurckgesetzt.

 Gerusche
     Soundfiles anmelden

 System-Info
     Informationen ber das System anzeigen


6.7  Optionen-Men
==================

 Editor
     Optionen fr den Editor einstellen

 Compiler
     Optionen fr den Compiler einstellen

 Assembler
     Optionen fr den Assembler einstellen

 Linker
     Optionen fr den Linker einstellen

 Debugger
     Optionen fr den Debugger einstellen

 freie Option 1
     freie Optionsbox Nr. 1

 freie Option 2
     freie Optionsbox Nr. 2

 freie Option 3
     freie Optionsbox Nr. 3

 freie Option 4
     freie Optionsbox Nr. 4

 freie Option 5
     freie Optionsbox Nr. 5

 Setting laden
     Setting laden

 Setting sichern
     Setting sichern

     Bei Anwahl des Menpunkts mit gedrckter Shift-Taste wird das
     Setting direkt unter dem aktuellen Namen abgespeichert (der
     Fileselektor erscheint nicht).


6.8  Hilfe-Men
===============

 Kontext
     Zeigt Hilfe zum aktuellen Kontext (oberstes Fenster) an.

 Allgemein
     Zeigt eine allgemeine Hilfe-Seite (die Startseite der Chatwin-
     Hilfe) an.

 Index
     Ruft den Index der Chatwin-Hilfe auf.

 BubbleGEM
     Ist dieser Menpunkt mit einem Hkchen versehen, so wird die
     Sprechblasenhilfe aktiviert (bentigt das Programm BubbleGEM von
     Thomas Much). Durch einen Rechtsklick auf Objekte in den
     Chatwin-Dialogen kann man sich so eine kurze Hilfestellung zu den
     jeweiligen Objekten geben lassen.

     Beachten Sie bitte, da bei aktivierter BubbleGEM-Hilfe
     Rechtsklicks von Chatwin nicht mehr als Doppelklick interpretiert
     werden.



7  Die Dialoge
**************

 7.1  Datei-Information
 7.2  Ordner-Information
 7.3  Disk-Info
 7.4  Formatieren
 7.5  Editor
 7.6  weitere Programme
 7.7  neues PRG
 7.8  Programmparameter
 7.9  Takefiles finden
 7.10  Console
 7.11  Dateiliste
 7.12  Einstellungen
 7.13  Format der Fehlermeldungen
 7.14  Programmstart
 7.15  Fontauswahl
 7.16  Hintergrund
 7.17  Drucker
 7.18  Menkrzel
 7.19  Gerusche
 7.20  System-Info
 7.21  Optionen
 7.22  freie Optionsbox
 7.23  Optionen erstellen
 7.24  Setting


7.1  Datei-Information
======================

Dieser Dialog zeigt Informationen zu einer Datei an, die Sie zuvor im
Fileselektor ausgewhlt haben. Die meisten Angaben sollten
selbsterklrend sein.

Wenn der Name der Datei lnger als 20 Zeichen ist, so kann er z.Z. nur
unter MagiC gendert werden, da nur dort scrollbare Eingabefelder zur
Verfgung stehen.

In Abhngigkeit vom Filesystem, auf dem sich die Datei befindet,
werden im unteren Teil des Dialogs die Dateiattribute oder die
Zugriffsrechte der Datei angezeigt.


Dateiattribute

 r  Die Datei kann nur gelesen, aber nicht geschrieben oder gelscht
    werden.
 w  Die Datei kann gelesen, geschrieben und gelscht werden.
 h  Die Datei ist versteckt (engl. "hidden") und wird daher von vielen
    Programmen nicht gefunden oder angezeigt.
 s  Es handelt sich um eine Systemdatei. Diese Dateien sind
    normalerweise auch versteckt.
 a  Archiv-Bit. Hierber kann ein Backup-Programm erkennen, ob diese
    Datei seit dem letzten Backup gendert wurde.

Die Flags `r' und `w' knnen nicht gleichzeitig aktiviert sein.


Zugriffsrechte

Die Zugriffsrechte sind in drei Gruppen zu je drei Flags eingeteilt.
Die Bedeutung dieser Flags ist:

 r  Diese Datei kann gelesen werden.
 w  Diese Datei kann geschrieben werden.
 x  Diese Datei kann ausgefhrt werden

Die erste Dreier-Gruppe zeigt die Rechte fr den Besitzer der Datei
an, die zweite Dreier-Gruppe die Rechte fr alle User, die in der
gleichen Gruppe wie der Besitzer der Datei sind (unter Unix und
hnlichen Systemen werden die Benutzer zu Gruppen zusammengefat) und
die letzte Dreier-Gruppe gibt die Rechte fr alle brigen User an.

Wenn das Betriebssystem Multi-User-fhig ist (entsprechende
Erweiterungen existieren beispielsweise fr MiNT), dann knnen die
Zugriffsrechte nur gendert werden, wenn man auch Eigentmer der Datei
ist.


7.2  Ordner-Information
=======================

Dieser Dialog zeigt Informationen zu einem Ordner an, den Sie zuvor im
Fileselektor ausgewhlt haben. Die Angaben sollten selbsterklrend
sein.

Wenn der Name des Ordners lnger als 20 Zeichen ist, so kann er z.Z.
nur unter MagiC gendert werden, da nur dort scrollbare Eingabefelder
zur Verfgung stehen.


7.3  Disk-Info
==============

Dieser Dialog zeigt Informationen zu einer Diskette an, die Sie zuvor
im Fileselektor ausgewhlt haben. Die Angaben sollten selbsterklrend
sein.

Wenn der Name der Diskette lnger als 20 Zeichen ist, so kann er z.Z.
nur unter MagiC gendert werden, da nur dort scrollbare Eingabefelder
zur Verfgung stehen.

Anmerkung: Eine Disk-Info fr ein groes oder langsames Laufwerk kann
einige Zeit dauern, da alle Verzeichnisse auf dem Laufwerk abgesucht
werden.


7.4  Formatieren
================

Chatwin kann auch Disketten formatieren. Dazu knnen Sie in diesem
Dialog das Format (einseitig oder zweiseitig DD bzw. zweiseitig HD)
einstellen. Auerdem knnen Sie angeben, ob die Diskette in Laufwerk
A: oder B: formatiert werden soll.

Der Formatiervorgang wird mit dem Button `Format' gestartet. Mit dem
Button `Lschen' wird nur ein sogenanntes Soft-Format durchgefhrt,
d.h. auf der Diskette werden die FATs und das Wurzelverzeichnis
gelscht. Bei dieser Funktion mssen Sie selbst auf sinnvolle Angaben
achten! Es ist sicher nicht sinnvoll, eine einseitige DD-Diskette als
HD zu formatieren, Chatwin hindert sie aber auch nicht daran.

Das von Chatwin erzeugte Format unterscheidet sich bei DD-Disketten
minimal von den Disketten, wie sie der Atari-Desktop formatiert: Fr
die FATs werden nur jeweils zwei bzw. drei Sektoren (bei ein-/
zweiseitigen Disketten) reserviert, statt fnf, wie beim Desktop.
Ergebnis sind drei bzw. zwei KByte mehr freier Speicher auf der
Diskette. Die kleineren FATs sind vollkommen ausreichend und gefhrden
Ihre Daten in keinster Weise!

Die Disketten werden auerdem mit einer Spiralisierung formatiert, so
da davon schneller geladen werden kann.

Um HD-Disketten formatieren zu knnen, bentigen Sie natrlich ein
entsprechendes Laufwerk. Auerdem mu auch Ihre Betriebssystemversion
HD-Disketten untersttzen. Falls dem so ist (notfalls durch
entsprechende Erweiterungen) wird es einen Cookie _FDC geben, an dem
sich Chatwin orientiert. Es ist aber nicht mglich zu erkennen,
welches Laufwerk nun wirklich HD-fhig ist. Auch hier mssen Sie also
selbst auf sinnvolle Angaben achten.


7.5  Editor
===========

Unter den Programmen, die von Chatwin aus gestartet werden knnen,
kommt dem Editor eine besondere Rolle zu. Beim Programmieren verbringt
man wohl mit die meiste Zeit im Editor, daher haben Sie in Chatwin die
Mglichkeit, Ihren Lieblingseditor einzubinden. Dies geschieht ber
den ersten Menpunkt im Optionen-Men.

Wird der Editor verlassen, dann zumeist um ein gerade gendertes
Programm neu zu bersetzen. Um diesen immer wiederkehrenden Vorgang
etwas zu vereinfachen und zu beschleunigen, wertet Chatwin den
Rckgabewert des Editors aus. In vielen Editoren hat man die
Mglichkeit, diesen Rckgabewert zu beeinfluen. Manche Editoren
erlauben es, mit einem einzigen Tastendruck den gerade geffneten Text
abzuspeichern, den Editor zu verlassen und einen bestimmten Wert an
das aufrufende Programm (z.B. Chatwin) zurckzugeben. Bei dem Editor
Everest geht dies z.B. ber die Tastenkombination [Control][3],
wodurch auch eine Drei an Chatwin bergeben wird.

Chatwin reagiert wie folgt auf die Rckgabewerte des Editors:

 0  keine Reaktion, der Editor wurde normal verlassen
 1  das Takefile (siehe "Wie schreibe ich ein Takefile?") Nummer 1 aus
    dem Take-Men wird gestartet
 2  das Takefile Nummer 2 aus dem Take-Men wird gestartet
 3  das Takefile Nummer 3 aus dem Take-Men wird gestartet

Auf andere Werte erfolgt keine spezielle Reaktion. Das alles gilt auch
nur, wenn der Editor ber den ersten Menpunkt des Programm-Mens oder
den Befehl ed aus der Console heraus gestartet wurde. Wurde der Editor
ber den Befehl ed aus einem Takefile heraus gestartet, funktioniert
dies nicht (um Rekursionsprobleme zu vermeiden).

Verfgen Sie ber einen Editor, der dies untersttzt, so knnen Sie
durch geeignete Takefiles und einen gezielten Tastendruck im Editor
bestimmen, was Chatwin als nchstes tun soll.

Unter einem Multitasking-System erscheint es wenig sinnvoll, den
Editor immer wieder zu verlassen. Solange z.B. der Compiler im
Vordergrund beschftigt ist, strt ein im Hintergrund wartender Editor
nicht weiter. Auerdem entfllt so auch die Ladezeit.

Um die oben aufgezeigte Funktionalitt unter Multitasking-Systemen
nachzubilden (wenn der Editor noch luft, kann er natrlich keinen
Wert an Chatwin zurckgeben!), wurde das sogenannte SE-Protokoll
eingefhrt. Es ermglicht einer Shell und einem Editor, ber AES-
Nachrichten zu kommunizieren und zusammenzuarbeiten. Daher untersttzt
Chatwin natrlich auch dieses Protokoll.

Hinweis: Damit Chatwin per SE-Protokoll mit dem Editor kommunizieren
kann, mu fr den Editor im Dialog `Programmstart' der Punkt "parallel
starten" angekreuzt werden.

Unter den mitgelieferten Beispiel-Takefiles finden sich einige, die
sinnvoll als "Nachlufer" fr einen Editor einsetzbar sind, z.B. das
an anderer Stelle in dieser Hilfe erluterte DEFAULT.T.


7.6  weitere Programme
======================

In diesem Dialog knnen die Optionen fr eines der bis zu acht
zustzlichen Programme (kurz "Extra-Programme") eingegeben werden.

Wenn Sie einen mit `(nicht belegt)' beschrifteten Eintrag aus dem
Programm-Men anwhlen, so erscheint zunchst der Fileselektor und Sie
knnen ein beliebiges Programm auswhlen. Anschlieend knnen Sie in
dem Dialog einige Einstellungen vornehmen (s.u.). Wenn Sie den Dialog
mit dem OK-Button quittiert haben, so wird bei der nchsten Anwahl des
Menpunkts (dessen Beschriftung Sie im Dialog bestimmen konnten)
direkt das angemeldete Programm aufgerufen! Wollen Sie wieder in den
Dialog kommen, so ist gleichzeitig mit der Anwahl des Menpunkts eine
der beiden Shift-Tasten gedrckt zu halten.

Zu den mglichen Einstellungen:

ber den Aufbau der Kommandozeile (`Kommandozeile') sollte Sie das
Handbuch des jeweiligen Programms informieren. Unter `Eintrag fr das
Programm-Men' knnen Sie einen Namen eintragen, unter dem das
Programm im Programm-Men erscheinen soll.

Mit dem Button `Finden' kann ein anderes Programm angemeldet werden.

Mit dem Button `Abmelden' knnen Sie das Programm bei Chatwin wieder
abmelden. Der Meneintrag wird dann entfernt und alle evtl. folgenden
Meneintrge aufgerckt. Die Eintrge sind dabei immer so organisiert,
da zunchst die belegten Eintrge ("Programm-Slots") kommen und dann
genau ein unbelegter (sofern noch nicht alle acht Eintrge belegt
sind).

Mit einem Doppelklick auf den `OK'-Button knnen Sie das jeweilige
Programm auch sofort starten, ohne den Umweg ber das Programm-Men
nehmen zu mssen.


7.7  neues PRG
==============

Dieser Menpunkt soll das Starten eines gerade frisch bersetzten
Programms vereinfachen. Nach Anwahl des Menpunkts erscheint der
Fileselektor. Wenn Sie vorher die Environmentvariable $PRGPATH auf den
Pfad gesetzt haben, in dem Ihre ausfhrbaren Programme stehen, so wird
nun dieses Verzeichnis angezeigt und als Vorgabe fr den Namen des
Programms wird der Name des aktuellen Quelltextes mit der Extension
*.PRG eingesetzt. Im Fileselektor werden aber alle Dateien angezeigt,
die den Namen des aktuellen Quelltextes und eine beliebige Extension
haben.

Hat Ihr Programm eine andere Extension als *.PRG, so knnen Sie diese
in die Variable $PRGEXT eintragen (nur die Extension, ohne Stern und
Punkt) und wird dann entsprechend zur Auswahl herangezogen. Ist die
Variable $PRGPATH nicht vorhanden oder leer, so wird der Pfad
angezeigt, in dem der aktuelle Quelltext steht. Ist auch kein
Quelltext festgelegt, so wird das aktuelle Verzeichnis angezeigt.

Environmentvariablen knnen mit dem Befehl env angelegt werden.


7.8  Programmparameter
======================

Dieser Dialog erscheint, wenn Sie ein Programm starten wollen, fr das
im Dialog `Programmstart' das Feld "mit Parameterbergabe" angekreuzt
ist, also blicherweise bei Programmen mit der Extension *.TTP oder
*.GTP. Sie knnen in diesem Dialog nun die Parameter fr dieses
Programm eingeben. Der Inhalt der beiden Textzeilen wird einfach
aneinandergehngt und an das zu startende Programm bergeben.

Durch Anklicken einer Eingabezeile knnen Sie den Fileselektor
aufrufen und so einfach Dateinamen als Parameter bergeben.


7.9  Takefiles finden
=====================

In diesem Dialog knnen Sie drei Takefiles angeben, die dann im Take-
Men mit Namen eingetragen und auch aufgerufen werden knnen.

Der eigentliche Sinn liegt jedoch im folgenden: Wenn der Editor (d.h.
das Programm, das ber den ersten Eintrag im Programm-Men bzw. ber
den Befehl ed aufgerufen wird) eine Zahl 1, 2 oder 3 zurckgibt, so
startet Chatwin automatisch das Takefile mit der entsprechenden
Nummer.

Wenn Sie beispielsweise den Editor Everest verwenden, so knnen Sie
dort durch die Tastenkombination [Control][3] (die Ziffer `3' auf dem
Zifferntastenblock) den Text abspeichern, Everest verlassen und das
Takefile Nummer 3 starten (eine elegantere Mglichkeit gibt es unter
Multitasking-Systemen ber das SE-Protokoll).

Dies funktioniert nur, wenn der Editor entweder ber den ersten
Menpunkt im Programm-Men oder ber den Befehl ed in der Console im
Direktmodus aufgerufen wird. Es funktioniert also nicht, wenn Sie den
Editor aus einem Takefile heraus gestartet haben!

Die drei Takefiles knnen auch ber den Befehl take aufgerufen werden.

Das vierte, mit "Liste" bezeichnete, Takefile kann ber das Popup-Men
der Dateiliste gestartet werden. Es bekommt dabei den in der
Dateiliste angewhlten Filenamen bergeben. Es ist nicht mglich,
dieses Takefile ber den take-Befehl aufzurufen.

Durch einen Doppelklick auf einen der Buttons kann das entsprechende
Takefile wieder abgemeldet werden.

Unter den ersten drei Takefiles kann eines als Default-Takefile
ausgewhlt werden, indem der entsprechende Button bei gedrckter
Shift-Taste anklickt wird. Dieser Button (und der entsprechende
Eintrag im Take-Men) wird dann mit einem Hkchen versehen. Das
Default-Takefile wird immer dann ausgefhrt, wenn beim Befehl take
kein Dateiname angegeben wurde. Auch das SE-Protokoll kennt einen
Befehl zum Starten eines Batchfiles, wobei dann ebenfalls das
Default-Take gestartet wird, wenn der Dateiname nicht mit bergeben
wurde.

Mit dem Schalter "Fehler: Editor aufrufen" knnen Sie angeben, ob der
Editor aufgerufen werden soll, wenn in einem Takefile ein Fehler
auftritt. Der Editor ldt dann das Takefile gleich nach. Untersttzt
der Editor zudem das SE-Protokoll (Nachricht SE_ERROR), so steht der
Cursor dann auch gleich auf der Zeile, in der der Fehler aufgetreten
ist.


7.10  Console
=============

Chatwin kann zwar weitgehend ber die Menleiste bedient werden,
einige Mglichkeiten ergeben sich aber erst in der Console.

Wenn Sie den Menpunkt `Console' anwhlen, ffnet sich das Console-
Fenster. Durch Eingabe von Befehlswrtern knnen Sie nun

    die meisten Befehle der Chatwin-Kommandosprache direkt aufrufen
     (Ausnahmen: alle Befehlskonstrukte, die sich ber mehrere Zeilen
     erstrecken, wie if/else/endif, repeat/until, while/wend,
     macro/endm, sowie die Befehle append und force)

    Makros aufrufen

    Takefiles starten (Name des Takefiles mit Extension *.T eingeben)

    Programme starten (wie von anderen Shells gewohnt: Programmname
     plus evtl. Parameter eingeben)

Wenn Sie aus Chatwin heraus ein TOS-Programm starten, so werden dessen
Ausgaben in das Console-Fenster umgelenkt (nicht unter MagiC und
nicht, wenn das Programm parallel gestartet wird. Siehe dazu auch
`Programm starten').


Block aufziehen

In der Console kann mit der Maus ein Block aufgezogen werden: Wenn Sie
mit gedrckter linker Maustaste ber die Stellen fahren, die markiert
werden sollen, dann werden diese invers angezeigt. Wenn Sie die
Maustaste loslassen, erscheint ein Popup mit den drei Mglichkeiten

 Kopieren
     Der markierte Block wird in der Datei SCRAP.TXT auf dem
     Klemmbrett abgelegt.

 Einfgen
     Der markierte Block wird an der aktuellen Cursorposition in die
     Kommandozeile eingefgt (dies ist nur mglich, wenn nicht mehr
     als eine Zeile markiert wurde).

 Ausfhren
     Der markierte Block wird wie ein Takefile behandelt und
     ausgefhrt.

Wenn Sie neben das Popup klicken, verschwindet es und die Markierung
des Blockes bleibt erhalten. Sie knnen den Block nun greifen (mit der
Maus in den markierten Bereich klicken und den Block bei gedrckter
Maustaste verschieben) und auf das Fenster eines anderen Prozesses
ziehen. Wenn das Betriebssystem Drag&Drop ber Pipes untersttzt
(MultiTOS oder MagiC ab Version 3), dann wird der Block darber
bergeben. Ohne Drag&Drop-Untersttzung wird versucht, den Block ber
das XAcc-Protokoll Gruppe 1 mit der Nachricht ACC_TEXT zu bermitteln
(dies funktioniert z.B. mit den Programmen Zeig's mir und CAT).

Der Block bleibt solange markiert, bis etwas in der Console ausgegeben
werden soll, oder bis Sie eine Taste drcken, einen neuen Block
aufziehen oder einen kurzen Mausklick in der Console ttigen.


Filename-Completion

Die Console verfgt ber eine Filename-Completion, d.h. sie brauchen
nur den Anfang eines Dateinamens einzugeben und die Tab-Taste zu
drcken und Chatwin versucht dann, den Dateinamen zu vervollstndigen.


Tastenbelegung

 Cursor auf/Cursor ab  Hiermit kann in der History, d.h. der Liste der
     zuletzt eingegebenen Befehle, geblttert werden. Die Befehle
     knnen durch Drcken von Return nochmals ausgefhrt werden.

     Anmerkung: Chatwin speichert nur alle verschiedenen Befehle, die
     Sie schon einmal eingegeben haben. Wenn Sie also einen Befehl in
     identischer Form mehrmals eingeben, so wird nur der jeweils
     letzte Aufruf in der History gespeichert.

 Undo  Gibt die History aus.

 Help  Gibt eine Liste aller in der Console verfgbaren Befehle aus.

 Funktionstaste  Ersetzt die Eingabezeile durch den Text, der auf
     dieser Funktionstaste (F-Taste) liegt.

 Shift-F-Taste  F-Taste mit dem Text der Eingabezeile belegen.

 Tab  Filename-Completion

 Esc  Lscht die Eingabezeile

 Cursor links/Cursor rechts  Bewegung innerhalb der Eingabezeile.

 Shift-Cursor links  Springt zum Anfang der Eingabezeile.

 Shift-Cursor rechts  Springt zum Ende der Eingabezeile.

 Control-Cursor auf/Control-Cursor ab  Wenn die Console das oberste
     Fenster ist und im Hintergrund das Fenster der Dateiliste liegt,
     so knnen Sie hiermit den aktuellen Quelltext in der Dateiliste
     bestimmen.

 Control-Cursor links/rechts  Wortweises Springen (vorwrts/rckwrts)
     in der Eingabezeile.

 Control-C  Der Inhalt der Eingabezeile wird auf das Klemmbrett (Datei
     SCRAP.TXT) geschrieben. Bei zustzlich gedrckter Shift-Taste
     wird die Zeile angehngt, andernfalls ersetzt sie den alten
     Klemmbrett-Inhalt.

 Control-V  Die erste Zeile aus der Datei SCRAP.TXT auf dem Klemmbrett
     wird an der Cursorposition eingefgt (sofern dafr genug Platz in
     der Eingabezeile ist).

 Control-X  Wie Control-C, nur da die Eingabezeile auch noch gelscht
     wird.

 Control-Y  Die Eingabezeile wird gelscht (wie bei Esc).


Sonstiges

    Mit einem Ausrufezeichen gefolgt von einem String kann der letzte
     Befehl aus der History abgerufen werden, der mit diesem String
     beginnt. Also z.B.

             !echo

     fhrt den letzten echo-Befehl nochmals aus. Mit zwei
     aufeinanderfolgenden Ausrufezeichen kann zudem der letzte Befehl
     nochmals ausgefhrt werden, wobei hier auch noch weitere Zeichen
     angegeben werden knnen, die dann an den Befehl angehngt werden,
     also z.B.

             echo Hello
             !!, world

     gibt erst "Hello" und dann "Hello, world" aus.

    Namen von Icons, die per Drag&Drop auf das Console-Fenster
     gezogen worden sind, werden an der aktuellen Cursorposition in
     die Kommandozeile eingefgt.

    Durch einen Doppelklick auf eine Fehlermeldung, die ein Compiler
     in die Console ausgegeben hat, kann Chatwin den Editor mit dem
     fehlerhaften Quelltext aufrufen. Wie eine solche Fehlermeldung
     aussieht, mu zuvor im Dialog `Format der Fehlermeldungen'
     angegeben werden.


7.11  Dateiliste
================

Die Dateiliste ist ein Fenster, in dem Namen von Dateien aufgelistet
stehen. Die Dateiliste wird geffnet ber den Menpunkt `Dateiliste'
im Extras-Men. Es erscheint ein Fenster mit der einzigen Textzeile
"[0 Dateien]" darin. Klicken Sie diese Zeile an, so erscheint der
Fileselektor, in dem Sie nun eine Datei auswhlen knnen. Der Name
dieser Datei wird nun in der Dateiliste angezeigt. Sie knnen jetzt
weitere Dateien einfgen.

Klicken Sie auf die Zeile, die die Anzahl der Dateien in der Liste
angibt, so erscheint sofort der Fileselektor. Klicken Sie dagegen auf
einen Dateinamen, so erscheint ein Popup-Men mit folgenden
Wahlmglichkeiten:

 einfgen
     Hiermit knnen Sie ein weitere Datei in die Liste einfgen. Es
     erscheint der Fileselektor und die Datei wird ber der gerade an
     geklickten eingefgt.

     Wenn Sie den Fileselektor Selectric (oder einen dazu kompatiblen,
     z.B. Freedom) verwenden, dann knnen Sie auch mehrere Dateien
     auswhlen, die dann alle in die Liste eingefgt werden.

 entfernen
     Die angeklickte Datei wird aus der Liste entfernt.

 Liste lschen
     Nach einer Sicherheitsabfrage wird die ganze Liste gelscht.

 Liste laden
     Hiermit kann eine Dateiliste geladen werden. Eine bereits
     vorhandene Liste wird durch die neue ersetzt. Wollen Sie eine
     Liste zu der aktuellen hinzuladen, so whlen sie bei "einfgen"
     eine Datei mit der Extension *.LST aus. Der Inhalt dieser Datei
     wird dann an der angegebenen Stelle in die aktuelle Liste
     eingefgt.

     Eine Dateiliste ist eine einfache ASCII-Datei, in der ein
     Dateiname pro Zeile steht. Sie knnen hier daher auch
     Listendateien diverser Editoren laden, z.B. Textlisten von
     Everest (*.LIS) oder Projekte von qed (*.QPJ).

 Liste sichern
     Die aktuelle Dateiliste wird unter einem frei whlbaren Namen
     abgespeichert. Beim Sichern eines Settings wird die Liste auch
     abgespeichert. Sie erhlt dann den Namen des Settings mit der
     Extension *.LST.

 an Editor
     Die angeklickte Datei wird an den Editor bergeben, d.h. der
     Editor wird gestartet und aufgefordert, die Datei nachzuladen.

 an Takefile
     Die angeklickte Datei wird an ein Takefile bergeben. Das
     Takefile wird im Dialog `Takefiles finden' festgelegt (es ist das
     mit "Liste" bezeichnete Takefile).

Durch einen Doppelklick auf einen Eintrag der Dateiliste wird diese
Datei als aktueller Quelltext bernommen. Der aktuelle Quelltext wird
immer, sofern er in der Liste enthalten ist, mit einem >-Zeichen
markiert.

Eine Dateiliste wird als einfache ASCII-Datei gespeichert. Es ist
daher mglich, die LST-Dateien mit einem Editor zu bearbeiten. In
jeder Zeile steht genau ein Dateiname, fhrende Leerzeichen werden
ignoriert, folgende abgeschnitten. Das Zeilenende sollte, wie unter
TOS blich, mit CR/LF abgeschloen sein (LF als Zeilentrenner gengt
aber auch).

Die Dateiliste ist auch teilweise ber Tastatur bedienbar:

 [Insert]       fgt am Ende der Liste einen neuen Eintrag ein (es
                ffnet sich der Fileselektor, in dem Sie die
                einzutragende Datei auswhlen knnen).
 [Delete]       entfernt den letzten Eintrag aus der Liste.
 [Control][E]   bergibt den aktuellen Quelltext an den Editor.
 [Control][T]   bergibt den aktuellen Quelltext an das Liste-
                Takefile.

Auerdem kann der aktuelle Quelltext mit den Cursortasten (auf/ab)
bestimmt werden. Liegt das Dateilistenfenster im Hintergrund und die
Console ist das oberste Fenster, so kann der aktuelle Quelltext mit
[Control] und den Cursortasten (auf/ab) bestimmt werden.

Eine Datei kann auch per Drag&Drop in die Dateiliste eingefgt werden.
Zudem kann auf die Dateiliste ber die Befehle addlist, dellist und
getlist zugegriffen werden.


7.12  Einstellungen
===================

In diesem Dialog knnen einige globale Einstellungen fr Chatwin
vorgenommen werden.

 Dialoge zentrieren
     Ist dieser Punkt angekreuzt, so werden alle Dialoge in der
     Bildschirmmitte ausgegeben. Andernfalls werden sie an der
     aktuellen Mausposition ausgegeben.

     Da die Dialoge in Fenstern sind, knnen sie - unabhngig von
     dieser Einstellung - immer noch verschoben werden.

 mit Grow-/Shrink-Boxen
     Ist dieser Punkt angekreuzt, so wird beim ffnen und Schlieen
     von Dialogen ein graphischer Effekt abgespielt, der das
     "Erscheinen" bzw. "Verschwinden" des Dialogs unterstreichen soll.
     Da dieser Effekt von einigen Leuten als strend empfunden wird,
     kann er hier abgeschaltet werden. Auf schnelleren Rechnern luft
     der Effekt ohnehin so schnell ab, da er fast nicht mehr zu sehen
     ist.

 inverse Zeichen fett
     Hiermit knnen Sie bestimmen, ob reverse Zeichen in der Console
     wirklich invers (weie Schrift auf schwarzem Grund) oder in
     Fettschrift erscheinen sollen.

 Kobold verwenden
     Grere Kopieraktionen (Kopieren ganzer Verzeichnisse oder das
     Kopieren mehrerer Dateien mit Quantoren) lt Chatwin von dem
     Dateikopierer Kobold abarbeiten. Sollte dies aus irgendwelchen
     Grnden nicht erwnscht sein, so kann dies hier abgeschaltet
     werden.

     Unter SingleTOS mu der Kobold als Accesssory installiert werden,
     unter einem Multitasking-System kann Chatwin ihn auch
     nachstarten, wenn der Pfad in der Variablen $KOBOLD_PATH
     angegeben wird.

 MagiC: TOS-Prg. in Console
     Unter MagiC startet Chatwin TOS-Programme normalerweise ber das
     Programm VT52.PRG. Will man die die Ausgaben des TOS-Programms
     jedoch in der Chatwin-Console sehen, so kann man dies ber diesen
     Schalter aktivieren.

     Die von Chatwin zu diesem Zweck benutzte Methode (Einhngen in
     die Vektoren zur Zeichenausgabe) ist unter einem Multitasking-
     System etwas "unfein" und knnte unter Umstnden dazu fhren, da
     auch die Ausgaben anderer, parallel laufender, TOS-Programme, die
     nicht von Chatwin gestartet wurden, in der Chatwin-Console
     erscheinen.

 Editor beenden
     Wenn Chatwin beendet wird und der Editor noch parallel luft,
     kann Chatwin den Editor auf Wunsch auffordern, sich ebenfalls zu
     beenden. Wenn der Editor das SE-Protokoll beherrscht, so
     geschieht dies ber die Nachricht SE_TERMINATE, andernfalls ber
     AP_TERM.

Darber hinaus knnen in diesem Dialog ein Hilfesystem und ein
Anzeigeprogramm angemeldet werden:

 Hilfe
     Whlen Sie im Fileselektor ein Programm aus, das als Hilfesystem
     fungieren soll. Empfohlen wird hierzu das Programm ST-Guide, da
     die Chatwin-Hilfe z.Z. nur in dem Format fr dieses Programm
     vorliegt und es sich zudem auch als Standard durchgesetzt hat
     (auch die Anleitungen zu vielen anderen Programmen liegen in
     diesem Format vor).

     Das Hilfe-Programm wird nachgestartet, wenn es aufgerufen werden
     soll und nicht bereits parallel luft. Unter einem Multitasking-
     System stellt dies kein Problem dar, aber unter SingleTOS sollten
     sie das Programm besser als Accessory installieren.

 Anzeigen
     Hier knnen Sie ein Programm anmelden, das bei Anwahl des
     Menpunkts `Anzeigen' aus dem Datei-Men oder bei dem Befehl more
     aufgerufen werden soll. Wenn Sie hier kein Programm angeben (und
     auch in den Environmentvariablen $View und $SHSHOW kein Programm
     angegeben ist), zeigt Chatwin Dateien ggfs. selbst an. Da Chatwin
     nur reine Textdateien anzeigen kann, wird aber die Installation
     eines entsprechenden Programms (eines sogenannten Dateiviewers)
     empfohlen, z.B. das Programm Zeig's mir. Chatwin untersttzt auch
     das View-Protokoll zum Anzeigen von Dateien.

Durch einen Doppelklick auf einen der Buttons "Hilfe" oder "Anzeigen"
wird das jeweilige Programm wieder abgemeldet.


7.13  Format der Fehlermeldungen
================================

Wenn ein Compiler (oder ein hnliches Programm) eine Fehlermeldung in
die Chatwin-Console ausgegeben hat, dann kann durch einen Doppelklick
auf diese Meldung der Editor mit dem fehlerhaften Quelltext aufgerufen
werden. Damit Chatwin eine Fehlermeldung erkennen kann, mu man in
diesem Dialog den Aufbau der Fehlermeldung vorgeben.

Eine Fehlermeldung besteht aus festen Teilen, z.B. "Es trat ein Fehler
auf", und aus variablen Teilen, z.B. dem Dateinamen oder der
Zeilennummer. Fr die variablen Teile kennt Chatwin folgende
Platzhalter:

 $c  fr die Spaltennummer
 $e  fr den Text der Fehlermeldung
 $f  fr den Dateinamen
 $l  fr die Zeilennummer
 $n  fr eine Fehlernummer

Sie knnen in diesem Dialog nun bis zu drei verschiedene Muster fr
Fehlermeldungen eingeben. Ein solches Muster mu immer mindestens den
Platzhalter $f fr den Dateinamen enthalten.

Chatwin versucht, soviele Informationen wie mglich aus der Zeile mit
der Fehlermeldung an den Editor zu bergeben. Am besten kann dies mit
der Nachricht SE_ERROR geschehen (wenn der Editor das SE-Protokoll
beherrscht), andernfalls versucht es Chatwin auch mit den Nachrichten
SE_OPEN und VA_START. Mu der Editor erst gestartet werden, dann
bergibt Chatwin nur den Dateinamen und die Zeilenummer in der
Kommandozeile fr den Editor.


Beispiele

Pure C gibt z.B. solche Meldungen aus:

 Error D:\SOURCES\TEST.C 8: Undefined symbol 'lng' in function main
 Warning D:\SOURCES\TEST.C 8: Code has no effect in function main

Dafr kann man die beiden folgenden Muster vorgeben:

 Error $f $l: $e
 Warning $f $l: $e

Wichtig: Zwei Platzhalter drfen nicht direkt aufeinanderfolgen, es
mu immer mindestens ein Zeichen dazwischen stehen.


7.14  Programmstart
===================

In diesem Dialog knnen Sie fr jedes einzelne Programm festlegen, wie
genau es von Chatwin gestartet werden soll.

In die Liste der Programme werden automatisch alle die Programme
aufgenommen, die Sie fr die Eintrge im Programm-Men anmelden.
Auerdem werden Defaultwerte fr Programme mit den blichen Extensions
(*.PRG, *.TOS, *.TTP, *.APP und *.GTP) aufgenommen. Alle diese
Eintrge knnen Sie auch nachtrglich noch verndern.

Mit dem Button "Neu" knnen neue Eintrge in die Liste aufgenommen
werden. Dazu whlen Sie im Fileselektor das Programm aus, das in die
Liste aufgenommen werden soll. Der Pfad, in dem das Programm steht,
ist dabei nicht von Interesse und wird auch nicht gespeichert.
Auerdem knnen Sie auch weitere Masken der Form "*.EXT" eingeben, und
so z.B. alle Accessories als ausfhrbare Programme bei Chatwin
anmelden (viele Accessories knnen auch wie ein normales Programm
gestartet werden).

Mit dem Button "Lschen" wird der gerade selektierte Eintrag aus der
Liste entfernt.

Die sechs Schalter auf der rechten Seite haben, wenn sie angekreuzt
sind, folgende Bedeutung:

 GEM-Applikation
     Das selektierte Programm ist ein GEM-Programm. Chatwin mu von
     jedem zu startenden Programm wissen, ob es ein GEM- oder TOS-
     Programm ist. Im Normalfall wird dieser Schalter anhand der
     Default-Extensions schon richtig gesetzt. Ist "GEM-Applikation"
     nicht angekreuzt, so nimmt Chatwin an, da es sich um ein TOS-
     Programm handelt.

 mit Parameterbergabe
     Wird das Programm ber die Eintrge "neues PRG" oder "anderes..."
     aus dem Programm-Men aufgerufen, so erscheint vorher ein Dialog,
     in dem man die Programmparameter eingeben kann. Dies ist die
     Default-Einstellung fr Programme mit den Extensions TTP und GTP.

 braucht eigenen Pfad
     Wenn Chatwin ein Programm startet, bei dem dieser Punkt
     angekreuzt ist, so wird das Verzeichnis, in dem dieses Programm
     steht, als aktuelles Verzeichnis gesetzt. Damit wird
     gewhrleistet, da Programme ihre RSC-Files u.. finden. Hat ein
     Programm dies nicht ntig (z.B. weil es keine Dateien nachladen
     mu oder sie ber Environmentvariablen findet), so braucht dieser
     Punkt nicht angekreuzt zu werden, es wird dann der aktuelle Pfad
     beibehalten.

 warten (nach TOS-Prg)
     Wird das Programm ber einen Eintrag im Programm-Men gestartet,
     so wird nach der Rckkehr aus diesem Programm noch auf einen
     Tastendruck gewartet. Diese Option macht nur bei TOS- und TTP-
     Programmen Sinn, und ist daher auch nur anwhlbar, wenn "GEM-
     Applikation" nicht angekreuzt ist. Der einzige Grund fr diese
     Option ist, da beim Start ber die Menleiste ggfs. erst die
     Console geffnet werden mu und sie sich in diesem Fall nach dem
     Ende des Programm gleich wieder schliet. Man hat dann evtl.
     keine Gelegenheit mehr, die Ausgaben des Programms noch zu lesen.

     Unter dem Betriebssystem MagiC wird dieser Schalter z.Z.
     ignoriert, da Chatwin TOS-Programme dort ber das Programm
     VT52.PRG starten mu, das seinerseits ber eine entsprechende
     Einstellmglichkeit verfgt.

 parallel starten
     Unter einem Multitasking-System soll dieses Programm parallel
     gestartet werden, d.h. Chatwin wartet nicht auf die Rckkehr des
     Programms, sondern ist sofort bereit, den nchsten Befehl
     entgegenzunehmen.

     Diesen Punkt sollten Sie auch ankreuzen, wenn Sie unter einem
     Multitaskingsystem mit einem Editor arbeiten, der das SE-
     Protokoll untersttzt.

 versteht VA_START
     Dieser Punkt macht nur zusammen mit den angekreuzten Punkten
     "GEM-Applikation" und "parallel starten" Sinn: Chatwin berprft
     dann, ob das Programm evtl. schon parallel luft und verschickt
     dann ggfs. die Nachricht VA_START, mit der das Programm aktiviert
     wird und die Parameter bergeben werden. Luft das Programm noch
     nicht, so wird es normal (aber parallel) gestartet.

Zum nheren Verstndnis der Bedeutung dieser Schalter sei auf die
Abschnitte "Programm starten" und "VA-Protokoll" verwiesen.

Alle vorgenommenen Einstellungen werden natrlich im Setting
gespeichert.


7.15  Fontauswahl
=================

ber diesen Menpunkt knnen Sie einen anderen Font fr die
Textdarstellung in der Console und in der Dateiliste auswhlen.
Voraussetzung dafr ist ein externer Fontselektor, z.B. Calvino oder
UFSL. Diese Programme (und dazu kompatible) stellen eine Dialogbox zur
Verfgung, in der man unter den im System installierten Fonts einen
auswhlen kann. Calvino gehrt einer neuen Generation von
Fontselektoren an, die eine erweiterte Auswahl (gegenber
Fontselektoren der ersten Generation wie UFSL) zur Verfgung stellen.
Desweiteren gibt es noch Fontselektoren, die als parallel laufendes
Programm ber die Nachricht FONT_SELECT aktiviert werden knnen.

Chatwin untersttzt alle diese Mglichkeiten und geht dabei wie folgt
vor:

  1. Suche nach einem xFSL-Fontselektor

  2. Suche nach MagiC-kompatiblen Fontselektor

  3. Suche nach einem UFSL-Fontselektor

  4. Suche nach einem bereits laufenden Programm, das die Nachricht
     FONT_SELECT versteht (Suche ber das XAcc-Protokoll)

  5. Suche nach einem der Programme, die in der Variablen $FONTSELECT
     stehen (Programm mu bereits parallel laufen)

  6. Versuch, eines der Programme aus der Variablen $FONTSELECT zu
     starten (nur unter Multitasking-Systemen)

Darber hinaus akzeptiert Chatwin auch die Nachrichten FONT_CHANGED
und WinChangeFont, d.h. da aus einem entsprechenden Programm heraus
auch ein neuer Font auf das Dateiliste- oder Console-Fenster gezogen
werden kann und von Chatwin dann als neuer Font fr dieses Fenster
bernommen wird.

Solange Sie auf Ihrem Rechner kein GDOS installiert haben, steht Ihnen
nur der Systemzeichensatz in verschiedenen Gren zur Verfgung. Mit
installiertem GDOS haben Sie freie Auswahl unter allen Fonts (fr die
Dateiliste) bzw. unter allen nicht-proportionalen Fonts (fr die
Console).

Chatwin speichert die ausgewhlten Fonts im Setting ab (Menpunkt
`Setting sichern' im Optionen-Men).


7.16  Hintergrund
=================

In diesem Dialog knnen Farbe und Muster des Chatwin-Desktops
festgelegt werden. Auerdem kann ber den Punkt `kein Chatwin-Desktop'
der Desktop auch ganz abgemeldet werden (dann bleiben die Farb- und
Muster-Einstellungen ohne Wirkung). Unter Multitasking-Systemen wird
der Desktop per Default abgemeldet (kann aber, falls gewnscht,
trotzdem wieder angemeldet werden).

Chatwin merkt sich Farbe und Muster getrennt fr Farb- und Monochrom-
Auflsungen. In Farbauflsungen kann die Hintergrundfarbe nur unter
den ersten 16 Farben ausgewhlt werden.


7.17  Drucker
=============

In diesem Dialog knnen Sie Einstellungen fr den Menpunkt "Drucken"
vornehmen, ber den Sie dann (Text-)Dateien aus Chatwin heraus drucken
lassen knnen.

Fr die Art der Ausgabe stehen Ihnen drei Mglichkeiten zur Auswahl:
Ausgabe ber eine 1stWord-Druckeranpassung, ber GDOS und mittels
eines externen Druckprogramms.

 PRINTER.CFG / 1stWord-Druckeranpassung
     Wenn Sie diesen Punkt anwhlen, verwendet Chatwin zum Drucken
     eine Druckeranpassung, wie sie auch von der Textverarbeitung
     1stWord verwendet wird. In dem Kstchen wird dann der Name des
     Druckers, fr den die geladene Anpassung gedacht ist, angegeben.

     1stWord-Druckertreiber sind recht weit verbreitet, es sollte
     daher kein Problem darstellen, auch fr Ihren Drucker eine
     passende CFG-Datei zu finden.

 GDOS-Gert
     Hier knnen Sie - sofern ein GDOS installiert ist - ein Gert
     auswhlen, ber das die GDOS-Ausgabe erfolgen soll. Die Auswahl
     geschieht ber ein Popup, das die Namen der installierten
     Gertetreiber oder, wenn diese nicht ermittelt werden knnen,
     deren Nummern anbietet.

 Druckprogramm
     Wenn Ihnen die in Chatwin eingebauten Druckfunktionen nicht
     zusagen, knnen Sie den Druckauftrag auch an ein externes
     Programm weiterreichen lassen. Whlen Sie dazu diesen Punkt an
     und suchen Sie im Fileselektor, der bei Anwahl des Buttons
     erscheint, das gewnschte Programm aus.

     Das Druckprogramm wird ggfs. nachgestartet, wenn es bei Anwahl
     des Menpunkt "Drucken" noch nicht luft. Andernfalls wird der
     Druckauftrag ber eine sogenannte CALCLOCK-Nachricht an das
     Druckprogramm bergeben.

     Ein geeignetes Programm, das auch die CALCLOCK-Nachricht
     versteht, ist beispielsweise IdeaList.

Die Einstellung "Linker Rand" gilt nur fr die Ausgabe mittels eines
1stWord-Treibers.


7.18  Menkrzel
================

In diesem Dialog knnen Sie sich die Tastenkrzel fr die Menleiste
von Chatwin selbst (um)definieren.

Die Buttons im oberen Teil des Dialogs stehen fr die sechs rechten
der insgesamt sieben Drop-down-Mens. Durch Anklicken eines Buttons
haben sie Zugriff auf den jeweils ersten Eintrag des jeweiligen Mens.
Welchen Menpunkt Sie gerade bearbeiten, sehen Sie in der Zeile in der
Mitte des Dialogs. Dort wird der Text des Eintrags, sowie das
bisherige Tastenkrzel angezeigt. Wenn Sie diese Zeile anklicken,
ffnet sich ein Popup-Men, in dem Sie den gewnschten Eintrag des
aktuellen Mens auswhlen knnen.

Im unteren Teil des Dialogs finden Sie die Buttons `Ctrl' und `Alt',
sowie den Buchstaben der als Krzel dient. Hier knnen Sie nun einen
beliebigen Buchstaben A-Z oder eine der Ziffern 0-9 eintragen, sowie
durch Anwahl eines Buttons festlegen, ob zustzlich die Control- oder
Alternate-Taste gedrckt werden soll.

Sollten Sie ein Tastenkrzel doppelt vergeben, so werden Sie von
Chatwin darauf hingewiesen. Soll ein Eintrag kein Krzel bekommen, so
lschen Sie einfach den Buchstaben durch Drcken von [Backspace].

Die vorgenommenen nderungen werden wirksam, sobald Sie den Dialog mit
dem Button `OK' verlassen oder (mittels der Buttons oder des Popups)
ein anderes Menkrzel anwhlen.

Das Krzel fr den Menpunkt `ber Chatwin' ist [Control][Shift][Help]
und wird nicht in der Menleiste angezeigt.

Mit einem Shift-Klick auf den Menpunkt "Menkrzel" knnen die
Tastenkrzel wieder auf ihre Defaultwerte zurckgesetzt werden. Der
Dialog mu dazu geschlossen sein.


7.19  Gerusche
===============

In diesem Dialog knnen Soundeffekte eingestellt werden, die dann in
bestimmten Situationen abgespielt werden.

 Intro wird beim Start von Chatwin abgespielt (dazu mu die Datei
     CHATWIN.SET im gleichen Verzeichnis stehen wie Chatwin selbst),
     sowie beim Nachladen eines Settings ber den Menpunkt `Setting
     laden' aus dem Optionen-Men.

 Ende wird beim Verlassen von Chatwin abgespielt. Chatwin wartet
     allerdings nicht, bis das Soundfile zuende ist, daher ist im
     allgemeinen hier nichts zu hren. Wenn Sie das Programm Paula
     verwenden, so knnen Sie hier aber ein MOD-File angeben, das dann
     von Paula in voller Lnge abgespielt wird.

 Fehler wird immer dann abgespielt, wenn ein Fehler auftritt.

 Console wird beim ffnen des Console-Fensters abgespielt.

Der Dateiname darf auch Quantoren enthalten. Dann wird aus dem
angegebenen Ordner unter allen Dateien, auf die diese Maske pat, eine
Datei zufllig ausgewhlt und abgespielt.

Mit den `Test'-Buttons knnen Sie das jeweilige Soundfile
ausprobieren. Durch einen Doppelklick auf den Namen des Soundfiles
kann dieses wieder abgemeldet werden.

Ist der Punkt `Verstrker' angekreuzt, dann wird die Lautstrke der
Soundfiles auf den maximal mglichen Wert umgerechnet. Dabei wird die
Lautstrke, die (bei Rechnern mit DMA-Sound) ber das Kontrollfeld
einstellbar ist, nicht verndert. Vielmehr wird die Lautstrke der
einzelnen Samples beim Abspielen um den maximal mglichen Faktor
angehoben, so da das Signal gerade eben noch nicht verzerrt wird.

Schlielich kann mit dem Punkt 'kein Sound' jegliche Geruscherzeugung
(sowohl fr die oben aufgefhrten Ereignisse als auch fr den play-
Befehl) global abgeschaltet werden.


Voraussetzungen

Damit Soundfiles (Samples) abgespielt werden knnen, mu eine der
folgenden Voraussetzungen erfllt sein:

    Ihr Rechner mu ber DMA-Sound-Hardware verfgen (1040STE,
     MegaSTE, TT oder Falcon).

    Das Programm MacSound von Richard Kurz (oder das dazu kompatible
     WeirdMac von Thorsten Pohlmann) mu installiert sein. Beide
     Programme existieren nur in Versionen fr den Einsatz unter
     MagiCMac auf Macintosh-Computer.

    Auf Rechnern, die nur ber den einfachen Yamaha-Soundchip
     verfgen (alte STs), knnen Samples nur abgespielt werden, wenn
     das Programm Petra installiert ist.

Worber die Samples abgespielt werden, wird im Gerusche-Dialog
ebenfalls angezeigt.


7.20  System-Info
=================

Dieser Dialog zeigt verschiedene Informationen ber Ihr System an,
darunter den freien Speicher und die Versionsnummern verschiedener
Betriebssystem-Teile.

Auf der linken Seite wird der noch freie Speicher, getrennt nach ST-
und Alternate-RAM, sowie als Summe angezeigt. Verfgt Ihr Rechner
nicht ber Alternate-RAM, so wird die entsprechende Zeile in heller
Schrift dargestellt.

Anmerkung: Alternate-RAM ist ein Sammelbegriff fr all die RAM-Sorten,
die nicht ST-RAM sind. Darunter fallen das TT-Fast-RAM, virtueller
Speicher oder sonstiger Speicher auf Hardware-Erweiterungen.

Auf der rechten Seite werden die Versionen verschiedener Teile des
Betriebssystems aufgelistet.

 TOS: Dies ist die Versionsnummer des TOS, also des Betriebssystems im
     ganzen. Dahinter steht noch eine Lnderkennung (z.B. FRG fr ein
     deutsches TOS).

 AES: Die Versionsnummer des AES (der Teil des Betriebssystems, der
     u.a. fr die Fensterverwaltung zustndig ist). Ein "single"
     hinter der Version steht fr ein Singletasking-AES, ein "multi"
     entsprechend fr ein Multitasking-fhiges.

 GDOS: Wenn auf Ihrem Rechner kein GDOS installiert ist, so stehen
     hier nur drei Striche. Andernfalls versucht Chatwin, das GDOS
     nher zu identifizieren. Gelingt dies nicht, wird einfach
     "vorhanden" angegeben, ansonsten gegebenenfalls der Name und die
     Version des GDOS.

Die letzte Angabe in diesem Dialog hngt vom verwendeten
Betriebssystem ab: Wenn Sie MagiC oder MagiCMac verwenden, steht hier
dessen Versionsnummer. Haben Sie MiNT installiert, so steht hier die
MiNT-Versionsnummer. Andernfalls finden Sie hier die Versionsnummer
des Gemdos.


7.21  Optionen
==============

In diesen Dialogen knnen die Optionen fr das jeweilige Programm
eingegeben werden. Die Besonderheit dieser Dialoge: Sie knnen sich
eine Dialogbox fr Ihren Gebrauch erzeugen lassen.

ber den Aufbau der Kommandozeile (`Kommandozeile') sollte Sie das
Handbuch des jeweiligen Programms informieren. Unter `Eintrag fr das
Programm-Men' knnen Sie einen Namen eintragen, unter dem das
Programm im Programm-Men erscheinen soll.

Mit dem Button `Finden' kann ein anderes Programm angemeldet werden.

Mit dem Button `Bauen' knnen Sie sich eine neue Dialogbox erstellen
lassen, in der Sie die Optionen, die an das Programm bergeben werden
sollen, einfach anklicken knnen. Genaueres dazu finden Sie unter
`Optionen erstellen'.

Mit einem Doppelklick auf den `OK'-Button knnen Sie das jeweilige
Programm auch sofort starten, ohne den Umweg ber das Programm-Men
nehmen zu mssen.

Wenn Sie den Textcursor in einem der Options-Buttons positionieren
wollen, so knnen Sie das mit einem doppelten Linksklick oder einem
einfachen Rechtsklick bewerkstelligen. Fr die Hilfstexte gengt ein
einfacher Linksklick.


7.22  freie Optionsbox
======================

Mit diesem Dialog knnen Sie sich eine Dialogbox - hnlich den Boxen
fr Editor, Compiler, usw. - definieren, die nicht an ein bestimmtes
Programm gebunden ist. Gedacht ist dies z.B. fr Optionen, die von den
anderen stark abweichen (etwa in der Lnge), oder fr eine Extra-Box
fr die Warnings eines C-Compilers.

 Anzahl Optionen
     Hier knnen Sie angeben, wieviele Options-Buttons die neue Box
     haben soll.

     Wollen Sie eine einmal definierte Optionsbox wieder entfernen, so
     knnen Sie hier 0 eintragen.

 Lnge der Optionen
     Bestimmt, wieviele Zeichen fr eine Option bentigt werden. Bei
     stark schwankenden Werten (wenn also eine Option zwei, eine
     andere aber 10 Zeichen bentigt), sollten Sie berlegen, ob Sie
     dies nicht ber Environmentvariable auch anders lsen knnen.

     U.u. kann es auch ausreichen, solche "Abweichler" direkt in die
     Kommandozeile zu schreiben.

 Lnge der Hilfstexte
     Hier knnen Sie noch Platz fr einen Hilfstext zu jeder Option
     reservieren lassen. Sie knnen sich so zu jeder Option eine Notiz
     ber deren Zweck schreiben. Es ist aber auch die Angabe 0
     zulssig.

Mit der Angabe `Radio-Buttons' knnen Sie bestimmen, ob immer nur eine
Option oder mehrere gleichzeitig angewhlt werden knnen.

`Optionen trennen' kann nur angewhlt werden, wenn `Radio-Buttons'
nicht angewhlt ist. Sie bestimmen hiermit, ob die angewhlten
Optionen "am Stck" oder eben getrennt (durch je ein Leerzeichen) in
die Kommandozeile eingesetzt werden sollen.

An der Stelle der Kommandozeile o. ., an der die Optionen eingefgt
werden sollen, mssen Sie ein #-Zeichen, gefolgt von einer der Ziffern
6, 7, 8 oder 9 schreiben (d.h. #6 fr die erste "freie" Option, #7 fr
die zweite, usw.).

Nach Anklicken von `OK' erscheint die neue Optionsbox. Nun knnen Sie
dort Ihre gewnschten Optionstexte eingeben. Entspricht die Box nicht
Ihren Vorstellungen, so knnen Sie durch Anwhlen des Buttons `Bauen'
nderungen vornehmen. Es wird Ihnen dann auch die Mglichkeit
angeboten, schon eingegebene Texte in die neue Box zu bernehmen.

Felder, in die Sie einmal einen Text eingegeben haben, sind beim
nchsten Erscheinen des Dialogs nicht mehr editierbar (dies soll ein
versehentliches ndern eines Optionstextes verhindern). Sie knnen ein
Feld aber jederzeit durch einen Doppelklick wieder editierbar machen.

Bei der Gestaltung der Optionsbox setzt natrlich der Bildschirm
Grenzen. Chatwin versucht dies notfalls durch Weglassen von Optionen
zu kompensieren. Dies gilt auch, wenn Optionsboxen, die unter hheren
Auflsungen entstanden sind, auf einer niedrigeren Auflsung geladen
werden.

Jede der vier "freien" Optionsboxen kann zustzlich noch mit einem
Titel versehen werden, der dann auch im Optionen-Men angezeigt wird.


7.23  Optionen erstellen
========================

Mit diesem Dialog knnen Sie das Aussehen einer neuen Dialogbox fr
das entsprechende Programm festlegen.

 Anzahl Optionen
     Hier knnen Sie angeben, wieviele Options-Buttons die neue Box
     haben soll.

     Wollen Sie eine einmal definierte Optionsbox wieder entfernen, so
     knnen Sie hier 0 eintragen (es erscheint wieder die kleine
     Optionsbox ohne Options-Buttons).

     Als Beispiel sei fr den Pure C-Compiler die Zahl 18 genannt.

 Lnge der Optionen
     Bestimmt, wieviele Zeichen fr eine Option bentigt werden. Bei
     stark schwankenden Werten (wenn also eine Option zwei, eine
     andere aber 10 Zeichen bentigt), sollten Sie berlegen, ob Sie
     dies nicht ber Environmentvariable auch anders lsen knnen.

     U.u. kann es auch ausreichen, solche "Abweichler" direkt in die
     Kommandozeile zu schreiben.

     Beispiel Pure C: zwei Zeichen

 Lnge der Hilfstexte
     Hier knnen Sie noch Platz fr einen Hilfstext zu jeder Option
     reservieren lassen. Sie knnen sich so zu jeder Option eine Notiz
     ber deren Zweck schreiben. Es ist aber auch die Angabe 0
     zulssig.

     Beispiel Pure C: etwa 16 Zeichen

Mit der Angabe `Radio-Buttons' knnen Sie bestimmen, ob immer nur eine
Option oder mehrere gleichzeitig angewhlt werden knnen. Als Beispiel
knnte man fr einen Editor die Art des Textes auf Radio-Buttons legen
(%.c, %.s, etc.).

`Optionen trennen' kann nur angewhlt werden, wenn `Radio-Buttons'
nicht angewhlt ist. Sie bestimmen hiermit, ob die angewhlten
Optionen "am Stck" oder eben getrennt (durch je ein Leerzeichen) in
die Kommandozeile eingesetzt werden sollen.

An der Stelle der Kommandozeile, an der die Optionen eingefgt werden
sollen, mssen Sie ein #-Zeichen, gefolgt von der Nummer des
jeweiligen Programms (d.h. 1 fr den Editor, 2 fr den Compiler, usw.)
schreiben. Chatwin ersetzt dann z.B. `#2' durch die angewhlten
Compileroptionen '-m -p -y'.

Nach Anklicken von `OK' verschwindet die bisherige Optionsbox und wird
durch eine neue ersetzt. Nun knnen Sie dort Ihre gewnschten
Optionstexte eingeben. Entspricht die Box nicht Ihren Vorstellungen,
so knnen Sie durch nochmaliges Anwhlen von 'Bauen' nderungen
vornehmen. Es wird Ihnen dann auch die Mglichkeit angeboten, schon
eingegebene Texte in die neue Box zu bernehmen (die Kommandozeile,
der Eintrag fr das Programm-Men sowie die Schalter werden
automatisch bernommen).

Felder, in die Sie einmal einen Text eingegeben haben, sind beim
nchsten Erscheinen des Dialogs nicht mehr editierbar (dies soll ein
versehentliches ndern eines Optionstextes verhindern). Sie knnen ein
Feld aber jederzeit durch einen Doppelklick wieder editierbar machen.

Bei der Gestaltung der Optionsbox setzt natrlich der Bildschirm
Grenzen. Chatwin versucht dies notfalls durch Weglassen von Optionen
zu kompensieren. Dies gilt auch, wenn Optionsboxen, die unter hheren
Auflsungen entstanden sind, auf einer niedrigeren Auflsung geladen
werden.

Die Lage der Buttons `Finden', `Bauen' und `Hilfe' ist von der Gre
der Optionsbox abhngig. Der Normalfall ist die Lage wie bei der
ursprnglichen Optionsbox, d.h. `Finden' und `Bauen' liegen oberhalb
von `Abbruch', `Hilfe' ganz links unten. Unter Umstnden mu der
`Hilfe'-Button ganz weggelassen werden und die beiden anderen Buttons
nach links (neben `OK') verschoben werden.


7.24  Setting
=============

Da man in Chatwin sehr viele Einstellungen ttigen kann, ist es nur
sinnvoll, da man diese auch irgendwie speichern kann. Dazu dient das
sogenannte Setting. Dabei handelt es sich um Dateien mit der Extension
*.SET, die alle diese Informationen aufnehmen.

Im Setting werden gespeichert:

    Die Einstellungen aus den Dialogen

        - Einstellungen
        - Fehlermeldungen (siehe "Format der Fehlermeldungen")
        - Programmstart
        - Hintergrund
        - Drucker
        - Menkrzel
        - Gerusche
        - Takefiles finden
        - Formatieren

    der aktuelle Quelltext

    Die fnf Programme (Editor, Compiler, Assembler, Linker,
     Debugger), ihre Kommandozeilen und evtl. angelegte Optionsboxen

    Die bis zu acht weiteren Programme aus dem Programm-Men

    evtl. angelegte freie Optionsboxen

    das zuletzt ber den Menpunkt `anderes...' aus dem Programm-Men
     gestartete Programm (und die evtl. bergebenen Parameter)

    die Belegung der Funktionstasten

    Lage und Gre des Console-Fensters (wenn es offen war, als das
     Setting gesichert wurde)

    Lage und Gre der Dateiliste (wenn sie offen war, als das
     Setting gesichert wurde). Der Inhalt der Dateiliste wird in einer
     Extradatei gesichert, die den gleichen Namen wie das Setting,
     aber mit der Extension *.LST, erhlt.

    wenn Console und Dateiliste offen waren: Welches der beiden
     Fenster das oberste war

    ID und Gre der Fonts, die fr Console und Dateiliste verwendet
     werden

Ein Setting kann mit dem Menpunkt `Setting sichern' unter einem
beliebigen Namen gespeichert werden. Mit dem Menpunkt `Setting laden'
kann jederzeit ein neues Setting geladen werden.

Beim Start sucht Chatwin im aktuellen Verzeichnis nach einer Datei
CHATWIN.SET, die, sofern vorhanden, dann gleich geladen wird. An-
schlieend wird aus diesem Verzeichnis ggfs. noch eine Datei
AUTOTAKE.T und eine Druckeranpassung PRINTER.CFG geladen.

Beim Nachladen eines Settings ber den Menpunkt `Setting laden' aus
dem Optionen-Men sucht Chatwin zunchst noch nach einem Takefile, das
den gleichen Namen wie das Setting hat. Dieses wird dann ggfs.
ausgefhrt. Andernfalls wird auch hier noch nach einem AUTOTAKE.T
gesucht.

Ist die Console beim Laden eines Settings bereits offen, so werden
Lage, Gre und Font nicht aus dem Setting bernommen (gleiches gilt
fr die Dateiliste - deren Inhalt wird aber durch die entsprechende
LST-Datei ersetzt).



8  Die Chatwin-Kommandosprache
******************************

Die folgenden Befehle bilden die Chatwin-Kommandosprache:

 Programmstart:

      as       Assembler aufrufen
      cc       Compiler aufrufen
      db       Debugger aufrufen
      ed       Editor aufrufen
      errfile  Editor mit einer Fehlerdatei aufrufen
      ld       Linker aufrufen

 Datei- und Verzeichnisoperationen:

      append   Ausgabeumlenkung
      cd       aktuellen Pfad wechseln
      cp       Dateien und Verzeichnisse kopieren
      force    Ausgabeumlenkung
      fsdir    Dateien und Verzeichnisse suchen
      join     Dateien aneinanderhngen
      ls       Inhaltsverzeichnis anzeigen
      mkdir    Verzeichnisse anlegen
      mv       Dateien und Verzeichnisse verschieben bzw. umbenennen
      rm       Dateien und Verzeichnisse lschen
      rmdir    leere Verzeichnisse lschen
      touch    Datei mit aktueller Uhrzeit versehen

 Interaktion mit dem Anwender:

      alert    Alertbox anzeigen
      cls      Console-Fenster lschen
      echo     Text ausgeben
      fselect  Fileselektor aufrufen
      help     Hilfe(text) anzeigen
      more     Dateien anzeigen
      play     Soundfiles abspielen

 Ablaufsteuerung in Takefiles:

      if       Bedingte Abarbeitung von Befehlen
      repeat   Befehle wiederholt ausfhren
      return   Takefile oder Macro beenden
      while    Befehle wiederholt ausfhren

 Makro-Befehle:

      alias    Einzeilen-Makro definieren
      macro    Mehrzeilenmakros definieren
      unalias  Makros lschen

 Befehle zur Dateiliste:

      addlist  Datei in Dateiliste aufnehmen
      dellist  Datei(en) aus Dateiliste lschen
      getlist  Dateiliste auslesen

 Sonstige Befehle:

      env      Environmentvariable anlegen
      exit     Console-Fenster schlieen
      fkey     Funktionstastenbelegung
      fname    Arbeitsdatei festlegen
      fsplit   Dateiname zerlegen
      pkill    ein Signal verschicken
      pwait    auf einen Proze warten
      quit     Chatwin verlassen
      shift    Parameterliste schieben
      take     Takefiles starten
      wait     Warten auf Tasten- oder Maustastendruck
      which    Ermitteln, welcher Befehl ausgefhrt wird

Diese Befehle knnen Sie in der Console im Direktmodus eingeben und
ausfhren lassen, oder Sie schreiben eine Abfolge von Befehlen in eine
Datei, ein sogenanntes Takefile (siehe "Wie schreibe ich ein
Takefile?"). Ein Takefile mu die Extension *.T haben und kann durch
Eingabe seines Namens (mit Extension) in der Console oder durch
Auswahl ber den Menpunkt `anderes Takefile' im Take-Men gestartet
werden.

Beim Start sucht Chatwin im aktuellen Verzeichnis nach einem Takefile
namens `AUTOTAKE.T'. Wird dies gefunden, so wird es ausgefhrt, noch
bevor der Chatwin-Desktop erscheint. Hier knnen Sie dann z.B. Ihre
Lieblingsmakros unterbringen. Wenn Sie ein Setting-File ber den
Menpunkt `Setting laden' aus dem Optionen-Men nachladen, wird
zunchst im gleichen Verzeichnis, in dem das SET-File steht, nach
einem Takefile mit dem gleichen Namen (wie das Setting) gesucht und
dieses ggfs. ausgefhrt. Wird kein solches Takefile gefunden, sucht
Chatwin auch noch nach einem AUTOTAKE.T.


8.1  Aliase, Macros, Takefiles und Parameter
============================================

Um hufig bentigte Befehle und Befehlsfolgen abzukrzen, bietet
Chatwin drei Mglichkeiten: Aliase, Macros und Takefiles.

Ein Alias ist einfach nur ein anderer bzw. krzerer Name fr einen
einzelnen Befehl oder Programmaufruf. Beispielsweise kann man sich das
aktuelle Verzeichnis mit

       echo $CD

anzeigen lassen. Da dies jedoch recht umstndlich zu tippen ist, kann
man sich auch einfach den von Unix bekannten Befehl "pwd" dafr
definieren:

       alias pwd echo $CD

Bentigt man fters eine bestimmte Folge von Befehlen, so kann man
diese als Macro formulieren, z.B.

       macro ecc
         cc
         if $?
           errfile errors.out %.c
         endif
       endm

Wenn die Befehlsfolgen komplexer und lnger (und seltener bentigt)
werden, dann kann man sie in einem Takefile ablegen, d.h. in einer
einfachen ASCII-Datei, die die Befehle enthlt und die Chatwin
ausfhren kann.

Macros werden von Chatwin im Speicher gehalten und sind dadurch ohne
Zugriff auf Diskette oder Festplatte verfgbar. Dafr belegen Sie auch
permanent Speicher und lassen sich nur durch Neudefinition ndern.
Takefiles mssen zwar vor der Ausfhrung immer erst geladen werden,
sind dadurch aber leichter zu ndern und belegen auch nur whrend
ihrer Ausfhrung Speicherplatz.

Ein Wort zur Terminologie: In diesem Text wird der Begriff "Makro"
(mit `k') als Oberbegriff fr Aliase und Macros verwendet. Mit "Macro"
(mit `c') ist dagegen immer eine durch den Befehl macro definierte
Befehlsfolge gemeint.


Parameter

Aliases, Macros und Takefiles knnen auch Parameter bergeben werden.
Diese werden beim Aufruf einfach hinter den Namen des Makros bzw.
Takefiles geschrieben. Chatwin zerlegt die Parameter dann anhand der
Leerzeichen in einzelne Worte und numeriert sie von 0 bis 9 durch. In
einem Makro oder Takefile sind die Parameter dann unter den "Namen" $0
bis $9 ansprechbar.

       alias mk take $0

Dies definiert "mk" als kurzen Namen fr den Befehl take, $0 ist ein
Platzhalter fr einen zu bergebenden Parameter. Ruft man nun

       mk 3

auf, dann wird die `3' als Parameter 0 an den Alias bergeben und an
der Stelle eingesetzt, an der $0 steht. Folglich wird dann

       take 3

aufgerufen. Man knnte die `3' aber auch weglassen, dann wrde Chatwin
$0 gegen einen Leerstring ersetzen und der Befehl take wrde ohne
Parameter aufgerufen. Platzhalter, fr die keine Parameter bergegeben
wurden, werden also immer durch Leerstrings ersetzt.

Auer dem direkten Zugriff auf die Parameter 0 bis 9 gibt es noch die
Mglichkeit, mit $* alle bergebenen Parameter "am Stck" zu
verwenden. Somit kann man sich z.B. mit

       alias dir ls $*

einen dir-Befehl definieren, der dann vollkommen gleichwertig zum ls-
Befehl ist.

Werden einmal mehr als zehn Parameter bentigt, so gibt es noch die
Mglichkeit, die Parameterliste mit dem Befehl shift um einen
Parameter nach links schieben zu lassen, so da der alte Parameter $1
anschlieend $0 heit und der vorher unereichbare elfte Parameter als
$9 angesprochen werden kann. Fr Aliase gibt es allerdings keine
Mglichkeit, mehr als 10 Parameter einzeln zu verwenden.


8.2  Ausdrcke
==============

Ein Ausdruck oder eine Bedingung ist ein Term, der hinter einem der
Befehle if, elsif (siehe "if"), while oder until (siehe "repeat")
stehen kann. Ein Ausdruck ist entweder wahr oder falsch und
entscheidet, ob der folgende Teil eines if-Konstrukts ausgefhrt bzw.
eine Schleife (erneut) durchlaufen wird.

Folgende Mglichkeiten fr die Bedingungen stehen zur Verfgung:

 ein Dateiname          Existenz der Datei wird berprft
 def(makro)             Existenz des Makros wird berprft
 par(nummer)            Existenz von Parameter $nummer ($0 ... $9)
                        wird berprft
 time(file1 vgl time2)  Vergleicht Datum und Uhrzeit der beiden
                        Dateien. `vgl' ist eines der Vergleichszeichen
                        ==, !=, >=, >, <=, <
 env(variable)          berprft, ob die Variable vorhanden ist
 env(variable=wert)     berprft, ob die Variable den angegebenen
                        Wert hat (der auch leer sein kann
 $? vgl wert            Vergleicht den Rckgabewert $? mit einem
                        Integerwert

Diese Terme knnen mit && (logisches UND), || (logisches ODER), !
(Negation) und Klammern beliebig verknpft und verschachtelt werden.

Einige Beispiele:

    Wenn eine Objektdatei "%.o" nicht vorhanden oder lter als der
     zugehrige Quelltext "%.c" ist, soll der Compiler aufgerufen
     werden:

            if !%.o || time(%.o>%.c)
              cc %.c
            else
              echo Compilieren nicht ntig
            endif

    Wenn eine Environmentvariable TEST vorhanden und nicht leer ist,
     soll ihr Wert an ein Programm bergeben werden. Andernfalls wird
     ein Defaultwert bergeben:

            if env(TEST) && !env(TEST=)
              test.ttp $TEST
            else
              test.ttp test
            endif

    Ein Macro soll nur ausgefhrt werden, wenn mindestens ein
     Parameter bergeben wurde:

            macro test
              if par(0)
                echo Parameter 0 = $0
              else
                echo Sie mssen einen Parameter bergeben!
              endif
            endm


Anmerkung:

Beachten Sie bitte, da mit den Vergleichsoperationen ==, >, etc.
immer ein numerischer Vergleich durchgefhrt wird! Beim Vergleich
zweier Variablen mittels

       if $TEST1==$TEST2

wird also zunchst der numerische Wert beider Variablen ermittelt und
dieser dann verglichen. Wenn die beiden Variablen nur Text enthalten,
wird der numerische Wert Null sein und obiger Test folglich positiv
ausfallen, auch wenn die beiden Texte unterschiedlich sind!

Wenn Sie einen Stringvergleich durchfhren wollen, knnen Sie dies mit
der Funktion env() (s.o.) tun:

       if env(TEST1=$TEST2)

Dies wird dann das gewnschte Ergebnis liefern. Beachten Sie bitte die
Schreibweise: "TEST1" ohne, "$TEST2" mit Dollarzeichen.


8.3  Ausgabeumlenkung
=====================

Die Ausgaben der Befehle der Chatwin-Kommandosprache sowie von TOS-
Programmen, die aus Chatwin heraus gestartet werden, lassen sich
umlenken, so da sie nicht auf dem Bildschirm sondern z.B. auf einem
Drucker oder in einer Datei erscheinen.

Eine Ausgabeumlenkung beginnt mit einem >-Zeichen, gefolgt vom Ziel
der Umlenkung, also z.B. einem Dateinamen. Die Umlenkung mu immer als
letzter Parameter in einer Kommandozeile angegeben werden. So lenkt

       echo Hello, world! >ausgabe.txt

den Text "Hello, world!" in die Datei "ausgabe.txt" um. Wird das >-
Zeichen doppelt angegeben, so wird der umgelenkte Text an eine evtl.
schon bestehende Datei angehngt:

       echo Hello, user! >>ausgabe.txt

Andernfalls wird die Datei neu erstellt. Ist das Ziel der Umlenkung
keine Datei, macht es natrlich keinen Unterschied, ob Sie ein oder
zwei >-Zeichen schreiben.


Gerte

Ziel einer Ausgabeumlenkung kann auch ein Gert (Device) sein. Ein
Devicename endet immer mit einem Doppelpunkt und wird in
Grobuchstaben angegeben. Folgende Gerte werden von Chatwin
untersttzt:

 PRT:  oder (gleichwertig)
 PRN:  Drucker, mit Zeichenwandlung,
 LST:  Drucker, ohne Zeichenwandlung,
 AUX:  serielle Schnittstelle,
 CLIP: Datei SCRAP.TXT auf dem Clipboard,
 NIL:  Nulldevice, d.h. die Ausgaben werden "verschluckt",
 CON:  Console, d.h. die Ausgabeumlenkung wird rckgngig gemacht

Auer auf ein Gert und in eine Datei knnen Ausgaben auch in
Environmentvariablen umgelenkt werden. Der Name der Variablen wird
dabei in Klammern angegeben:

       echo Hello, world! >(AUSGABE)

Anschlieend enthlt die Variable $AUSGABE den Text "Hello, world!".
Die Umlenkung in Variablen ist begrenzt auf eine Zeile bzw. maximal
128 Zeichen. Was darber hinaus geht, wird ignoriert.


Eine Ausgabeumlenkung, die in einer Kommandozeile angegeben wird, ist
auf diesen einen Befehl beschrnkt. Soll eine Ausgabeumlenkung fr
mehrere Befehl gelten, so kann dies mit den Befehlen force und append
(siehe dort) erreicht werden. Als Argument wird diesen Befehlen ein
Device-, Datei- oder Variablenname, wie oben erklrt, bergeben,
jedoch ohne vorhergehendes >-Zeichen. Die Ausgabeumlenkung gilt dann
bis zum Ende des jeweiligen Takefiles oder Macros oder bis eine andere
Ausgabeumlenkung mit force, append oder >-Zeichen vorgenommen wird.


8.4  Environmentvariablen
=========================

Chatwin untersttzt die folgenden speziellen Environmentvariablen (in
diesem Text kurz als "Variablen" bezeichnet), die mit dem env-Befehl
angelegt werden knnen:

 $AVSERVER     Name eines Desktops, der das VA-Protokoll untersttzt.
               Der Inhalt der Variablen mu genau dem Dateinamen des
               Programms (ohne Pfad und Extension) entsprechen. Die
               Variable mu schon vor dem Start von Chatwin angelegt
               worden sein!

 $BUBBLEGEM    Name und Pfad von BubbleGEM. Wenn das Programm noch
               nicht luft, wenn die BubbleGEM-Hilfe aktiviert wird,
               startet Chatwin es nach.

 $CD           hier steht immer der aktuelle Pfad (Setzen der
               Variablen ist nutzlos, der aktuelle Pfad kann nur ber
               den Befehl cd gendert werden).

 $COLUMNS      enthlt die Anzahl Spalten, die z.Z. im Console-Fenster
               sichtbar sind (Setzen der Variablen hat keine
               Auswirkungen).

 $FONTSELECT   hier stehen (ggfs. mehrere) Namen von Programmen
               (getrennt durch Semikolon), die als externer
               Fontselektor ber die FONT_SELECT-Nachricht aufgerufen
               werden knnen.

 $FSPATH, $FSNAME, $FSEXT  Pfad, Name und Extension. Wird von den
               Befehlen fsdir, fselect und fsplit verwendet.

 $HOME         in diesem Verzeichnis sucht Chatwin beim Programmstart
               nach seinem Setting (CHATWIN.SET), wenn er es nicht im
               aktuellen Verzeichnis finden konnte. Zuvor wird auch
               noch das Verzeichnis $HOME/defaults durchsucht (sofern
               es vorhanden ist).

 $KOBOLD_PATH  enthlt den Pfad (und nur den Pfad!), in dem das
               Programm KOBOLD_2.PRG oder KOBOLD_3.PRG steht, das bei
               bestimmten Kopieraktionen nachgestartet wird (nur unter
               Multitasking-Systemen und wenn es nicht bereits
               parallel, z.B. als Accessory, luft).

 $LINES        enthlt die Anzahl Zeilen, die z.Z. im Console-Fenster
               sichtbar sind (Setzen der Variablen hat keine
               Auswirkungen).

 $LISTENTRY    wird vom Befehl getlist gesetzt.

 $LTLEXT       enthlt die Extension von Objektdateien, fr die ein
               Load-Time-Linking (LTL) ber den OBNL-Cookie
               durchgefhrt werden soll. Die Voreinstellung ist "obj"
               fr das LTL mit STJ-Oberon-2.

 $MiNT_KLUDGE  aktiviert einen "Workaround" fr einen Fehler in MiNT
               (siehe "Programm starten").

 $PRGEXT       Extension eines ausfhrbaren Programms. Wird vom
               Menpunkt `neues PRG' ausgewertet.

 $PRGPATH      Pfad, in dem die bersetzten Programme stehen. Wird vom
               Menpunkt `neues PRG' ausgewertet.

 $PS1          Der Inhalt dieser Variable wird als Prompt in der
               Console verwendet. Fehlt diese Variable, so wird "A>"
               verwendet (statt "A" steht immer der Buchstabe des
               aktuellen Laufwerks). Soll im neuen Prompt der
               Laufwerksbuchstabe erscheinen, so ist dafr ein @
               einzusetzen, z.B. "{@}".

               Weitere Mglichkeiten:

                &P, &p werden durch den aktuellen Pfad ersetzt (bei &P
                       in Grobuchstaben, bei &p in Kleinbuchstaben)
                &D, &d nochmal der aktuelle Pfad, diesmal aber in der
                       von der MiNT-Lib bevorzugten dev-Schreibweise
                       (bei &D in Gro-, bei &d in Kleinbuchstaben)
                &i     reverse Darstellung ein
                &I     reverse Darstellung aus
                &&     ein(!) &-Zeichen
                &%     ein %-Zeichen

               Aber Achtung: Enthlt $PS1 ein %-Zeichen, so wird
               dieses auch ausgewertet und durch den aktuellen
               Quelltext ersetzt. Allerdings wird das %-Zeichen
               bereits bei der Eingabe des env-Befehls ausgewertet,
               was durch Voranstellen eines $-Zeichens verhindert
               werden kann (siehe Quotes (siehe "Tips, Tricks und
               Hinweise")).

               Beispiele:

                env PS1=&$%     ; %-Zeichen als Prompt
                env PS1=$%$%$>  ; aktuellen Quelltext als Prompt

 $SEPROTO      Diese Variable existiert genau dann, wenn Chatwin
               (mindestens) ein Programm bekannt ist, das das SE-
               Protokoll untersttzt. Die Variable hat z.Z. keinen
               Wert und dient dazu, in Takefiles ggfs. anders zu
               reagieren, wenn der Editor per SE-Protokoll aufgerufen
               wird.

 $SHIFT        ein "herausgeschobener" Parameter, siehe shift.

 $SHSHOW       Name und Pfad eines Programms, das den more-Befehl
               ersetzen soll (wird auch ber den Menpunkt `Anzeigen'
               aufgerufen), z.B. Zeig's mir.

 $SRCPATH, $SRCNAME, $SRCEXT  Pfad, Name und Extension des aktuellen
               Quelltextes (zustzlich zu % und %%).

 $TAKE         gibt den Pfad an, in dem Takefiles gesucht werden. Wenn
               Sie ein Takefile aus der Console heraus starten wollen,
               knnen Sie z.B. einfach "test.t" eingeben. Wenn sich
               das Takefile in dem angegebenen Pfad befindet, wird es
               dann von dort gestartet.

 $View         Name und Pfad eines Programms, das den more-Befehl
               ersetzen soll (wird auch ber den Menpunkt `Anzeigen'
               aufgerufen) und das auch das View-Protokoll beherrscht,
               z.B. Zeig's mir.


8.5  Kommandobersicht
======================

 addlist  Datei in Dateiliste aufnehmen
 alert    Alertbox anzeigen
 alias    Einzeilen-Makro definieren
 append   Ausgabeumlenkung
 as       Assembler aufrufen
 cc       Compiler aufrufen
 cd       aktuellen Pfad wechseln
 cls      Console-Fenster lschen
 cp       Dateien und Verzeichnisse kopieren
 db       Debugger aufrufen
 dellist  Datei(en) aus Dateiliste lschen
 echo     Text ausgeben
 ed       Editor aufrufen
 env      Environmentvariable anlegen
 errfile  Editor mit einer Fehlerdatei aufrufen
 exit     Console-Fenster schlieen
 fkey     Funktionstastenbelegung
 fname    Arbeitsdatei festlegen
 force    Ausgabeumlenkung
 fsdir    Dateien und Verzeichnisse suchen
 fselect  Fileselektor aufrufen
 fsplit   Dateiname zerlegen
 getlist  Dateiliste auslesen
 help     Hilfe(text) anzeigen
 if       Bedingte Abarbeitung von Befehlen
 join     Dateien aneinanderhngen
 ld       Linker aufrufen
 ls       Inhaltsverzeichnis anzeigen
 macro    Mehrzeilenmakros definieren
 mkdir    Verzeichnisse anlegen
 more     Dateien anzeigen
 mv       Dateien und Verzeichnisse verschieben bzw. umbenennen
 play     Soundfiles abspielen
 pkill    ein Signal verschicken
 pwait    auf einen Proze warten
 quit     Chatwin verlassen
 repeat   Befehle wiederholt ausfhren
 return   Takefile oder Macro beenden
 rm       Dateien und Verzeichnisse lschen
 rmdir    leere Verzeichnisse lschen
 shift    Parameterliste schieben
 take     Takefiles starten
 touch    Datei mit aktueller Uhrzeit versehen
 unalias  Makros lschen
 wait     Warten auf Tasten- oder Maustastendruck
 which    Ermitteln, welcher Befehl ausgefhrt wird
 while    Befehle wiederholt ausfhren


8.5.1  addlist
--------------

 NAME
       addlist - Datei in die Dateiliste aufnehmen

 SYNOPSIS
       addlist dateiname

 BESCHREIBUNG
       Die angebene Datei wird am Ende der Dateiliste eingefgt.
       Handelt es sich bei der Datei um den aktuellen Quelltext, so
       wird der Eintrag noch mit einem Grer-Zeichen `>' markiert.

 SIEHE AUCH
       dellist, getlist


8.5.2  alert
------------

 NAME
       alert - Alertbox anzeigen

 SYNOPSIS
       alert [icon][text][buttons]

 BESCHREIBUNG
       Zeigt eine Alertbox an. Im Gegensatz zu den anderen
       Befehlsbeschreibungen mssen die eckigen Klammern diesmal mit
       angegeben werden!

       Die Syntax entspricht der bei der AES-Funktion form_alert()
       verwendeten: In den ersten eckigen Klammern wird die Nummer
       eines anzuzeigenden Icons eingesetzt. Als Icons stehen zur
       Auswahl:

        [0]  kein Icon
        [1]  ein Ausrufezeichen
        [2]  ein Fragezeichen
        [3]  ein Stopschild

       In den zweiten eckigen Klammern steht der eigentliche Text der
       Alertbox. Einzelne Zeilen knnen mit einem senkrechten Strich |
       voneinander getrennt werden. Es stehen maximal fnf Textzeilen
       mit je maximal 30 Zeichen zur Verfgung.

       In den dritten eckigen Klammern stehen, ebenfalls durch
       senkrechte Striche getrennt, bis zu drei Buttontexte. Dies sind
       die Alternativen, unter denen der Anwender eine auswhlen mu.

       Zwischen den drei Klammerpaaren drfen keine Leer- oder
       sonstigen Zeichen stehen!

       Defaultbutton (d.h. der Button, der auch mit der [Return]-Taste
       angewhlt werden kann), ist immer der erste Button. Welcher
       Button angewhlt wurde, steht anschlieend in der Variablen $?,
       die sonst fr den Programmrckgabewert verwendet wird. $? ist
       1, wenn der erste Button angewhlt wurde, 2 fr den zweiten,
       usw.

 BEISPIEL
       alert [2][Datei lschen?][Ja|Nein]

 SIEHE AUCH
       if


8.5.3  alias
------------

 NAME
       alias - Einzeilen-Makro definieren

 SYNOPSIS
       alias [macroname [definition]]

 BESCHREIBUNG
       Definition eines Einzeilen-Makros (im folgenden "Alias"
       genannt). Parameter, die an den Alias bergeben werden, sind
       mit den Platzhaltern $0, ..., $9 (fr den ersten, ..., zehnten
       Parameter) bzw. $* (fr alle bergebenen Parameter "am Stck")
       verfgbar.

       Es ist auch mglich, die Chatwin-Befehle durch Aliases
       umzudefinieren. Somit knnen Sie statt eines bestimmten Befehls
       immer ein Programm (z.B. mit hnlicher Funktionalitt)
       ausfhren lassen, oder einen Befehl immer mit einer bestimmten
       Option aufrufen

       Ohne Parameter zeigt der Befehl alle Aliases und Macros an, mit
       nur einem Makronamen wird nur dieses Makro angezeigt (es knnen
       auch Quantoren verwendet werden).

 BEISPIELE
       alias dir ls $* ; dir-Befehl definieren alias dir ; Definition
       des dir-Befehls anzeigen alias d* ; alle Makros beginnend mit
       `d' anzeigen

       alias ls ls.ttp $* ; statt ls soll immer das Programm ls.ttp
       aufgerufen werden alias ls ls -v $* ; ls soll immer mit
       Parameter -v aufgerufen werden

 SIEHE AUCH
       macro, unalias, ls


8.5.4  append
-------------

 NAME
       append - Ausgabeumlenkung

 SYNOPSIS
       append device

 BESCHREIBUNG
       Ausgabeumlenkung ber mehrere Befehle hinweg. Im Gegensatz zu
       der blichen Ausgabeumlenkung mit >>device wird hiermit die
       Ausgabe umgelenkt, bis entweder eine neue Umlenkung erfolgt
       oder das gerade laufende Takefile zuende ist.

       Im Gegensatz zu force wird bei einer Umlenkung in eine Datei
       diese nicht berschrieben, sondern geffnet und die Ausgaben an
       den vorhandenen Dateiinhalt angehngt.

       Kann in der Console im Direktmodus nicht verwendet werden!

       Mgliche Angaben fr `device':

           ein Dateiname,
           PRT: oder
           PRN: (Drucker, mit Zeichenwandlung),
           LST: (Drucker, ohne Zeichenwandlung),
           AUX: (serielle Schnittstelle),
           CLIP: (Datei SCRAP.TXT auf dem Clipboard),
           NIL: (Nulldevice, d.h. die Ausgaben werden "verschluckt")
           CON: (Console, d.h. die Ausgabeumlenkung wird rckgngig
            gemacht)

 SIEHE AUCH
       force


8.5.5  as
---------

 NAME
       as - Assembler aufrufen

 SYNOPSIS
       as [parameterliste]

 BESCHREIBUNG
       Ruft den Assembler (d.h. das dritte Programm aus dem Programm-
       Men) auf. Fehlt die Parameterliste, so werden die Parameter
       bergeben, die im entsprechenden Optionen-Dialog angegeben
       wurden.

 SIEHE AUCH
       cc, db, ed, ld


8.5.6  cc
---------

 NAME
       cc - Compiler aufrufen

 SYNOPSIS
       cc [parameterliste]

 BESCHREIBUNG
       Ruft den Compiler (d.h. das zweite Programm aus dem Programm-
       Men) auf. Fehlt die Parameterliste, so werden die Parameter
       bergeben, die im entsprechenden Optionen-Dialog angegeben
       wurden.

 SIEHE AUCH
       as, db, ed, ld


8.5.7  cd
---------

 NAME
       cd - aktuellen Pfad wechseln

 SYNOPSIS
       cd [pfad]

 BESCHREIBUNG
       Wechselt in den angegebenen Pfad bzw. zeigt den aktuellen Pfad
       an. Beim Setzen eines Pfades wird dieser auch in der
       Environmentvariablen $CD abgelegt.

       Soll nur das Laufwerk gewechselt werden, so gengt die
       alleinige Eingabe des Laufwerksbuchstabens, gefolgt von einem
       Doppelpunkt.

 BEISPIELE

        cd e:/tex ; wechselt in das Verzeichnis "tex" auf Laufwerk E:
        cd        ; zeigt das aktuelle Verzeichnis an
        e:        ; wechselt zum aktuellen Verzeichnis auf Laufwerk E:

 SIEHE AUCH
       env


8.5.8  cls
----------

 NAME
       cls - Console-Fenster lschen

 SYNOPSIS
       cls

 BESCHREIBUNG
       Lscht den Inhalt des Console-Fensters und setzt den Cursor in
       die linke obere Ecke.


8.5.9  cp
---------

 NAME
       cp - Dateien und Verzeichnisse kopieren

 SYNOPSIS
       cp [-v] filespec1 [filespec2]

 BESCHREIBUNG
       Dateien und Verzeichnisse kopieren. Fehlt die zweite
       Spezifikation, so wird in das aktuelle Verzeichnis kopiert. In
       der ersten Spezifikation drfen auch Quantoren verwendet
       werden.

       Der cp-Befehl kann auch den Dateikopierer Kobold aufrufen. Dazu
       mssen aber folgende Voraussetzungen erfllt sein:

           das Ziel der Kopieraktion mu auf einem TOS-Filesystem
            liegen
           es mssen ganze Ordner oder mehrere Dateien (mit
            Quantoren) kopiert werden
           unter SingleTOS mu der Kobold als ACC installiert sein
            (unter einem Multitasking-System kann er auch als Proze
            parallel laufen)
           wenn der Kobold nicht bereits luft, kann Chatwin ihn
            unter einem Multitasking-System nachstarten, wenn er unter
            dem Namen KOBOLD_2.PRG oder KOBOLD_3.PRG in dem
            Verzeichnis liegt, das in der Environmentvariablen
            $KOBOLD_PATH angegeben ist

 OPTIONEN

        -v  Die Namen der Dateien, die gerade kopiert werden, werden
            auf dem Bildschirm ausgegeben.

 SIEHE AUCH
       join, mv


8.5.10  db
----------

 NAME
       db - Debugger aufrufen

 SYNOPSIS
       db [parameterliste]

 BESCHREIBUNG
       Ruft den Debugger (d.h. das fnfte Programm aus dem Programm-
       Men) auf. Fehlt die Parameterliste, so werden die Parameter
       bergeben, die im entsprechenden Optionen-Dialog angegeben
       wurden.

 SIEHE AUCH
       as, cc, ed, ld


8.5.11  dellist
---------------

 NAME
       dellist - Datei(en) aus der Dateiliste lschen

 SYNOPSIS
       dellist filespec

 BESCHREIBUNG
       Alle Dateien der Dateiliste, auf die filespec pat, werden aus
       der Liste gelscht. filespec kann dabei die blichen Quantoren
       enthalten.

 BEISPIELE

         dellist *     ; lscht die komplette Dateiliste
         dellist *.c   ; lscht alle C-Quelltexte aus der Liste

 SIEHE AUCH
       addlist, getlist


8.5.12  echo
------------

 NAME
       echo - Text ausgeben

 SYNOPSIS
       echo [-n] [text]

 BESCHREIBUNG
       Gibt einen Text aus. Fehlt der Text, wird nur ein
       Zeilenvorschub ausgegeben.

 OPTIONEN

        -n  Nach dem Text wird kein Zeilenvorschub ausgegeben.


8.5.13  ed
----------

 NAME
       ed - Editor aufrufen

 SYNOPSIS
       ed [parameterliste]

 BESCHREIBUNG
       Ruft den Editor (d.h. das erste Programm aus dem Programm-Men)
       auf. Fehlt die Parameterliste, so werden die Parameter
       bergeben, die im entsprechenden Optionen-Dialog angegeben
       wurden.

       Hier gibt es noch eine Besonderheit: Gibt der Editor eine 1, 2
       oder 3 zurck, so wird das Takefile mit der entsprechenden
       Nummer aus dem Take-Men gestartet. Bei Verwendung des Editors
       Everest kann man somit durch Drcken von [Control] und einer
       der Tasten [1], [2] oder [3] auf dem Zifferntastenblock den
       aktuellen Text abspeichern, den Editor verlassen und ein
       Takefile starten lassen (andere Editoren bieten hnliche
       Funktionen an). All das funktioniert genau dann, wenn der
       Editor ber den Eintrag im Programm-Men oder ber den Befehl
       ed im Direktmodus (also nicht aus einem Takefile heraus!)
       gestartet wurde.

       Unter einem Multitasking-System lt sich diese Funktionalitt
       eleganter mit dem SE-Protokoll realisieren.

 SIEHE AUCH
       as, cc, db, Editor, errfile, ld, SE-Protokoll


8.5.14  env
-----------

 NAME
       env - Environmentvariable anlegen

 SYNOPSIS
       env [variable=definition]

 BESCHREIBUNG
       Hiermit kann man Environmentvariablen (Variablen) definieren.
       Der Befehl ohne Parameter zeigt alle definierten Variablen an,
       mit

         env variable=

       kann man eine Variable auf einen Leerstring setzen und mit

         env variable

       kann man sie ganz lschen.

       Eine Variable kann (fast) berall eingesetzt werden. Man setzt
       dazu ein $-Zeichen vor den Namen:

         env TEST=Hallo     ; Variable TEST anlegen
         echo $TEST         ; Inhalt von TEST ausgeben

 SIEHE AUCH
       Environmentvariablen


8.5.15  errfile
---------------

 NAME
       errfile - Editor mit Fehlerdatei aufrufen

 SYNOPSIS
       errfile fehlerdatei quelltext

 BESCHREIBUNG
       Ruft den Editor (d.h. das erste Programm aus dem Programm-Men)
       auf und bergibt die beiden Dateien. Wenn der Editor das
       sogenannte SE-Protokoll untersttzt, dann werden die Dateien
       ber die Nachricht SE_ERRFILE bergeben.

       Dabei enthlt die Datei "fehlerdatei" eine Liste von
       Fehlermeldungen, wie sie von einem Compiler ausgegeben wurden
       und die Datei "quelltext" stellt den Quelltext dar, auf den
       sich die Fehlermeldungen beziehen.

       Ist kein Editor bekannt, der das SE-Protokoll untersttzt, so
       entspricht der Befehl dem Aufruf

         ed quelltext fehlerdatei

       d.h. die Dateien werden in umgekehrter Reihenfolge bergeben.

 SIEHE AUCH
       ed, Editor, SE-Protokoll


8.5.16  exit
------------

 NAME
       exit - Console-Fenster schlieen

 SYNOPSIS
       exit

 BESCHREIBUNG
       Schliet das Console-Fenster.

       Den gleichen Effekt erzielen Sie durch einen Mausklick auf den
       Closer des Console-Fensters, mit dem Menpunkt `schliee
       Fenster' oder dem entsprechenden Tastaturkrzel.

 SIEHE AUCH
       quit


8.5.17  fkey
------------

 NAME
      fkey - Funktionstastenbelegung

 SYNOPSIS
      fkey [nr [text]]

 BESCHREIBUNG
      fkey ohne Parameter zeigt die Belegung der Funktionstasten an.
      Belegt werden knnen Funktionstasten auf zwei Arten: Entweder
      man tippt einfach den gewnschten Text in der Console ein und
      drckt dann [Shift] zusammen mit der gewnschten F-Taste, oder
      man verwendet fkey mit Parametern: Der erste Parameter gibt die
      Tastennummer (1 bis 12) an, dahinter folgt der Text, der auf die
      Taste gelegt werden soll. Fehlt der Text, so wird die Belegung
      der Taste gelscht.

      Ist das letzte Zeichen des Textes auf einer F-Taste ein |
      (senkrechter Strich, Character 124), so wird beim Abruf der F-
      Taste gleich ein [Return] mit ausgegeben, d.h. der Befehl, der
      auf der Funktionstaste liegt, wird gleich ausgefhrt.

      Die Belegung der Funktionstasten wird auch im Setting gesichert.


8.5.18  fname
-------------

 NAME
       fname - Arbeitsdatei festlegen

 SYNOPSIS
       fname [file]

 BESCHREIBUNG
       Legt die aktuelle Arbeitsdatei fest bzw. zeigt diese an.

       Der Name der Arbeitsdatei (ohne Extension) ist - hnlich wie
       Variablen - jederzeit durch das %-Zeichen verfgbar. Der Name
       der Datei allein (ohne Pfad und ohne Extension) ist durch ein
       doppeltes %-Zeichen (%%) verfgbar.

       Zustzlich werden Pfad, Name und Extension der Arbeitsdatei
       noch in den drei Variablen $SRCPATH, $SRCNAME und $SRCEXT
       abgelegt.

 SIEHE AUCH
       env


8.5.19  force
-------------

 NAME
       force - Ausgabeumlenkung

 SYNOPSIS
       force device

 BESCHREIBUNG
       Ausgabeumlenkung ber mehrere Befehle hinweg. Im Gegensatz zu
       der blichen Ausgabeumlenkung mit >device wird hiermit die
       Ausgabe umgelenkt, bis entweder eine neue Umlenkung erfolgt
       oder das gerade laufende Takefile zuende ist.

       Kann in der Console im Direktmodus nicht verwendet werden!

       Mgliche Angaben fr `device':

           ein Dateiname,
           PRT: oder
           PRN: (Drucker, mit Zeichenwandlung),
           LST: (Drucker, ohne Zeichenwandlung),
           AUX: (serielle Schnittstelle),
           CLIP: (Datei SCRAP.TXT auf dem Clipboard),
           NIL: (Nulldevice, d.h. die Ausgaben werden "verschluckt")
           CON: (Console, d.h. die Ausgabeumlenkung wird rckgngig
            gemacht)

 SIEHE AUCH
       append


8.5.20  fselect
---------------

 NAME
       fselect - Fileselektor aufrufen

 SYNOPSIS
       fselect [berschrift]

 BESCHREIBUNG
       Ruft den Fileselektor (ggfs. mit einer berschrift) auf. Die
       Rckgabe der ausgewhlten Datei erfolgt ber drei Variablen:

        $FSEXT   enthlt die Extension der angewhlten Datei.
        $FSNAME  enthlt den Namen der ausgewhlten Datei (ohne
                 Pfad!). Ist $FSNAME leer, wurde entweder `Abbruch'
                 angewhlt, oder keine Datei ausgewhlt.
        $FSPATH  enthlt den Pfadnamen der ausgewhlten Datei (nur den
                 Pfad!). Man kann auch Ordner anwhlen, indem man sie
                 ffnet und dann - ohne eine Datei auszuwhlen - OK
                 anklickt. Dann enthlt $FSPATH den Namen und Pfad des
                 Ordners.

       Den kompletten Namen erhlt man also mit $FSPATH\$FSNAME.$FSEXT

       Wurde im Fileselektor "Abbruch" angeklickt, so sind alle drei
       Variablen leer (oder evtl. auch gar nicht vorhanden).

 SIEHE AUCH
       env


8.5.21  fsdir
-------------

 NAME
       fsdir - Dateien und Ordner finden

 SYNOPSIS
       fsdir [filespec]

 BESCHREIBUNG
       Mit diesem Befehl kann ein Verzeichnis nach Dateien und Ordnern
       durchsucht werden. Zunchst gibt man bei fsdir einen Pfad und
       eine Suchmaske an. Die Rckgabe gefundener Dateien erfolgt ber
       die Environmentvariablen $FSPATH, $FSNAME und $FSEXT. Bei jedem
       weiteren Aufruf von fsdir (ohne Parameter) wird das Verzeichnis
       nach weiteren Dateien durchsucht, auf die die zuvor angegebene
       Maske pat.

       Der Name eines gefundenen Objekts wird in $FSNAME abgelegt, die
       Extension in $FSEXT. War das Objekt ein Ordner, so ist $FSPATH
       leer, andernfalls steht dort nochmals der Pfad, der gerade
       durchsucht wird. Ist $FSNAME leer, so wurden keine (weiteren)
       Objekte gefunden.

 BEISPIEL
       Diese Befehlsfolge gibt alle C-Quelltexte aus, die in dem
       angegebenen Verzeichnis stehen

         fsdir d:/pure/sources/*.c ; Suche auf C-Dateien beschrnken
         while !env(FSNAME=)       ; solange $FSNAME nicht leer ist
           if env($FSPATH=)        ; ist es ein Ordner?
             echo Ordner: $FSNAME.$FSEXT
           else
             echo $FSPATH/$FSNAME.$FSEXT
           endif
           fsdir                   ; weitersuchen
         wend

 SIEHE AUCH
       env


8.5.22  fsplit
--------------

 NAME
       fsplit - Dateiname zerlegen

 SYNOPSIS
       fsplit filename

 BESCHREIBUNG
       Zerlegt einen Filenamen in die drei Variablen $FSPATH, $FSNAME
       und $FSEXT.

 SIEHE AUCH
       env, fselect


8.5.23  getlist
---------------

 NAME
       getlist - Dateiliste auslesen

 SYNOPSIS
       getlist [filespec]

 BESCHREIBUNG
       Mit getlist knnen die in der Dateiliste enthaltenen Dateien
       ausgelesen werden. Mit filespec kann die Suche in der Liste auf
       bestimmte Dateien beschrnkt werden. Ein Aufruf von getlist mit
       einer filespec liefert den ersten passenden Eintrag in der
       Variablen $LISTENTRY. Durch weitere Aufrufe von getlist ohne
       Parameter kann der Rest der Liste ausgelesen werden. Das Ende
       der Liste wurde erreicht, wenn $LISTENTRY leer ist.

 BEISPIEL
       Diese Befehlsfolge gibt alle C-Quelltexte aus, die in der
       Dateiliste stehen

         getlist *.c              ; Suche auf C-Dateien beschrnken
         while !env(LISTENTRY=)   ; solange $LISTENTRY nicht leer
           echo $LISTENTRY        ; ausgeben
           getlist                ; nchster Eintrag
         wend

 SIEHE AUCH
       addlist, dellist, env


8.5.24  help
------------

 NAME
       help - Hilfe(text) anzeigen

 SYNOPSIS
       help [text]

 BESCHREIBUNG
       Zeigt eine Liste der verfgbaren Befehle an. Ein bergebener
       Text wird zunchst unter den Makros gesucht (ggfs. wird dann
       die Definition des Makros ausgegeben), und im Falle eines
       Mierfolgs an das Hilfe-ACC (siehe "Einstellungen") bergeben.


8.5.25  if
----------

 NAME
       if - Bedingte Abarbeitung von Befehlen

 SYNOPSIS

       if bedingung
         Befehl(e)
       elsif bedingung2
         Befehl(e)
       elsif bedingung3
       ...
       else
         Befehl(e)
       endif

 BESCHREIBUNG
       Das if-Konstrukt ermglicht die bedingte Abarbeitung von
       Befehlen. Ist die Bedingung hinter dem if wahr, so werden die
       folgenden Befehle abgearbeitet, sonst werden der Reihe nach
       alle elsif-Bedingungen getestet. Wird keine gltige Bedingung
       gefunden, so werden die Befehle hinter dem else ausgefhrt.
       Sowohl die elsif- als auch die else-Bedingung kann aber auch
       fehlen.

       Folgende Mglichkeiten fr die Bedingungen stehen zur
       Verfgung:

        ein Dateiname          Existenz der Datei wird berprft
        def(makro)             Existenz des Makros wird berprft
        par(nummer)            Existenz von Parameter $nummer ($0 ...
                               $9) wird berprft
        time(file1 vgl time2)  Vergleicht Datum und Uhrzeit der beiden
                               Dateien. `vgl' ist eines der
                               Vergleichszeichen ==, !=, >=, >, <=, <
        env(variable)          berprft, ob die Variable vorhanden
                               ist
        env(variable=wert)     berprft, ob die Variable den
                               angegebenen Wert hat (der auch leer
                               sein kann
        $? vgl wert            Vergleicht den Rckgabewert $? mit
                               einem Integerwert

       Diese Terme knnen mit && (logisches UND), || (logisches ODER),
       ! (Negation) und Klammern beliebig verknpft und verschachtelt
       werden.

       Das Konstrukt kann in der Console im Direktmodus nicht
       verwendet werden.

       Hinweis: Beachten Sie die Schreibweise des Befehls "elsif"!

 SIEHE AUCH
       repeat, while, Bedingungen


8.5.26  join
------------

 NAME
       join - Dateien aneinanderhngen

 SYNOPSIS
       join [-v] file1 file2 ... as jfile

 BESCHREIBUNG
       Fgt die bergebenen Dateien in der angegebenen Reihenfolge zu
       einer neuen Datei jfile zusammen. Die Dateinamen (auer jfile)
       drfen auch Quantoren enthalten.

 OPTIONEN

        -v  Whrend des Vorgangs werden die Dateinamen angezeigt.


8.5.27  ld
----------

 NAME
       ld - Linker aufrufen

 SYNOPSIS
       ld [parameterliste]

 BESCHREIBUNG
       Ruft den Linker (d.h. das vierte Programm aus dem Programm-
       Men) auf. Fehlt die Parameterliste, so werden die Parameter
       bergeben, die im entsprechenden Optionen-Dialog angegeben
       wurden.

 SIEHE AUCH
       as, cc, db, ed


8.5.28  ls
----------

 NAME
       ls - Inhaltsverzeichnis anzeigen

 SYNOPSIS
       ls [-1cflnv] [filespec]

 BESCHREIBUNG
       Zeigt den Inhalt eines Verzeichnisses an. Die Auswahl der
       angezeigten Files kann mit filespec beeinflut werden (Angabe
       eines Pfades oder bestimmter Dateien). Ohne diese Angabe wird
       der Inhalt des aktuellen Verzeichnises ausgegeben.

 OPTIONEN

        -1  Einspaltige Ausgabe erzwingen (sonst abhngig von der
            Gre des Console-Fensters). Im langen Format erfolgt die
            Ausgabe immer einspaltig.

        -c  Type und Creator anzeigen. Dateien auf dem Apple Macintosh
            verfgen jeweils noch ber eine Angabe des Dateityps
            (Type) und welches Programm die Datei angelegt hat
            (Creator). Die Anzeige dieser Informationen funktioniert
            nur unter MagiCMac oder mit einem entsprechenden Treiber
            fr Mac-Medien (z.B. SPIN!).

        -f  Classify (an Verzeichnisse wird ein /, an ausfhrbare
            Dateien ein * angehngt).

        -l  Ausgabe im langen Format (mit Dateilnge, Datum und
            Uhrzeit). -l hebt die Wirkung von -n wieder auf.

        -n  nur die Namen anzeigen

        -v  Summe der Lngenangaben und Anzahl der Dateien und
            Verzeichnisse mit ausgeben

 BEISPIEL
       Wie Sie vielleicht bemerkt haben, gibt ls Dateien immer im
       langen Format aus, also so, wie man es unter Unix blicherweise
       von dem Befehl "ll" erwartet. Kein Problem, man kann ls ja
       umdefinieren:

         alias ls ls -n $*
         alias ll ls -l $*

       Anschlieend verhalten sich ls und ll wie unter Unix.

 SIEHE AUCH
       alias


8.5.29  macro
-------------

 NAME
       macro - Mehrzeilenmakros definieren

 SYNOPSIS

       macro name
         Befehl(e)
       endm

 BESCHREIBUNG
       Die Befehle zwischen macro und endm werden als Macro unter dem
       angegebenen Namen definiert. An das Macro knnen auch Parameter
       bergeben werden; sie sind mit den Platzhaltern $0, ..., $9
       (fr den ersten, ..., zehnten Parameter) bzw. $* (fr alle
       bergebenen Parameter "am Stck") verfgbar.

       Innerhalb des Macros sind alle Befehle auer macro selbst
       erlaubt.

       Das Konstrukt kann in der Console im Direktmodus nicht
       verwendet werden.

 SIEHE AUCH
       alias, unalias


8.5.30  mkdir
-------------

 NAME
       mkdir - Verzeichnis anlegen

 SYNOPSIS
       mkdir [-q] verzeichnis

 BESCHREIBUNG
       Legt ein Verzeichnis an.

 OPTIONEN

        -q  Wenn das Verzeichnis, das angelegt werden soll, schon
            vorhanden ist, so gibt Chatwin einen entsprechenden
            Hinweis aus. Mit dem Schalter -q lt sich dieser Hinweis
            unterdrcken.

            Tritt beim Anlegen des Verzeichnisses ein Fehler auf, so
            wird aber immer mit einer Fehlermeldung abgebrochen.

 SIEHE AUCH
       rmdir


8.5.31  more
------------

 NAME
       more - Dateien anzeigen

 SYNOPSIS
       more file1 [file2 ...]

 BESCHREIBUNG
       Die angegebene(n) Datei(en) werden angezeigt. Ist unter dem
       Menpunkt `Einstellungen' ein Dateiviewer angegeben, so werden
       die Dateien an dieses Programm bergeben. Andernfalls wird
       versucht, eines der Programme aus den Variablen $View oder
       $SHSHOW sowie aus dem Cookie "View" zu finden und ggfs. zu
       starten (siehe auch "Das View-Protokoll (siehe "View-
       Protokoll")").

       Lt sich kein Programm finden oder starten, zeigt Chatwin die
       Dateien selbst an, was jedoch nur fr Textdateien vorgesehen
       ist.

 SIEHE AUCH
       env


8.5.32  mv
----------

 NAME
       mv - Dateien und Verzeichnisse verschieben bzw. umbenennen

 SYNOPSIS
       mv [-v] filespec1 [filespec2]

 BESCHREIBUNG
       Dateien und Verzeichnisse verschieben. Fehlt die zweite
       Spezifikation, so wird in das aktuelle Verzeichnis verschoben.
       In der ersten Spezifikation drfen auch Quantoren verwendet
       werden.

       Sind Quell- und Zielpfad identisch, so entspricht die Aktion
       einem Umbenennen der Objekte.

       Der mv-Befehl kann auch den Dateikopierer Kobold aufrufen. Dazu
       mssen aber folgende Voraussetzungen erfllt sein:

           das Ziel der Verschiebe-Aktion mu auf einem TOS-
            Filesystem liegen
           es mssen ganze Ordner oder mehrere Dateien (mit
            Quantoren) verschoben werden
           unter SingleTOS mu der Kobold als ACC installiert sein
            (unter einem Multitasking-System kann er auch als Proze
            parallel laufen)
           wenn der Kobold nicht bereits luft, kann Chatwin ihn
            unter einem Multitasking-System nachstarten, wenn er unter
            dem Namen KOBOLD_2.PRG oder KOBOLD_3.PRG in dem
            Verzeichnis liegt, das in der Environmentvariablen
            $KOBOLD_PATH angegeben ist

       Wenn Sie einen Rename-Befehl vermissen, knnen Sie sich mit dem
       folgenden Makro behelfen:

         alias ren mv $0 $1

 OPTIONEN

        -v  Die Namen der Dateien, die gerade verschoben werden,
            werden auf dem Bildschirm ausgegeben.

 SIEHE AUCH
       cp


8.5.33  play
------------

 NAME
       play - Soundfiles abspielen

 SYNOPSIS
       play [-qsv] [soundfile ...]

 BESCHREIBUNG
       Spielt das angegebene Soundfile ab. Dabei ist auch die Angabe
       von Quantoren erlaubt (z.B. spielt "play e:/noise/*.wav" ein
       zufllig ausgewhltes Wave-File aus dem Ordner "noise" auf
       Laufwerk E: ab).

       Fehlt der Name des Soundfiles, so wird das zuletzt abgespielte
       Soundfile nochmals abgespielt.

       Auch hier gilt wieder: Um MOD-Files abspielen zu knnen, wird
       Paula bentigt, alles andere versucht Chatwin selbst
       abzuspielen.

 OPTIONEN

        -q  Das gerade laufende Soundfile wird gestoppt. Alle anderen
            Parameter (Schalter oder Dateinamen), die zusammen mit -q
            angegeben wurden, werden ignoriert.

        -s  Spielt zufllig eines der aufgelisteten Soundfiles ab.

        -v  Gibt den Namen und Pfad des abgespielten Soundfiles aus.

 BEISPIELE

         play -s hello.wav hahn.snd morning.hsn

       whlt unter den drei auflisteten Soundfiles eines zufllig aus
       und spielt es ab

         play g:\sounds\*.*

       whlt unter den Soundfiles in dem angegebenen Verzeichnis
       zufllig eines aus und spielt es ab


8.5.34  pkill
-------------

 NAME
       pkill - ein Signal verschicken

 SYNOPSIS
       pkill -l
       pkill [-name] pid
       pkill [-nummer] pid


 BESCHREIBUNG
       Der Befehl pkill verschickt ein Signal an den Proze mit der ID
       pid. Die Proze-ID erhalten Sie als Rckgabewert in der
       Variablen $?, wenn Sie ein Programm parallel starten.

       Welches Signal verschickt wird, kann auf zwei Arten angegeben
       werden: Entweder ber die Nummer des Signals (1 bis 30) oder
       ber den Namen (siehe Tabelle).


            Name     Nr  Bedeutung
           -----------------------------------------------
            HUP       1  Hangup
            INT       2  ausgelst durch [Control][C]
            QUIT      3  ausgelst durch [Control][\]
            ILL       4  illegal instruction
            TRAP      5  Trace-Trap
            IOT       6  Abort
            EMT       7  Privileg-Verletzung
            FPE       8  Division durch Null
            KILL      9  Programm beenden ("die!")
            BUS      10  Bus Error
            SEGV     11  Segment-Verletzung
            SYS      12  Fehler bei Systemaufruf
            PIPE     13  Fehler bei Pipes
            ALRM     14  Weck-Signal
            TERM     15  Programm beenden ("please die")
            URG      16  Aktion an I/O-Kanal ntig
            STOP     17  Stop
            TSTP     18  Stop (Terminal)
            CONT     19  gestoppten Proze fortsetzen
            CHLD     20  Child beendet
            TTIN     21  Background-Lese-Anfrage
            TTOU     22  Background-Schreib-Anfrage
            IO       23  I/O mglich
            XCPU     24  CPU-Zeit berschritten
            XFSZ     25  max. Dateigre berschritten
            VTALRM   26  Virtueller-Timer-Alarm
            PROF     27  Profiler
            WINCH    28  Fenstergre wurde verndert
            USR1     29  vom Benutzer definierbar
            USR2     30  vom Benutzer definierbar
           -----------------------------------------------
            ABRT      6  entspricht IOT
            PRIV      7  entspricht EMT
           -----------------------------------------------
            AP_TERM   -  Programm beenden (AES-Nachricht)

                             Tabelle 2: Signale


       Wird weder ein Name noch eine Nummer angegeben, dann wird das
       Signal TERM verschickt.

       Anmerkung: Es wird natrlich ein Betriebssystem bentigt, das
       Signale kennt (z.B. MiNT, MultiTOS oder MagiC ab Version 5).

       AP_TERM ist kein Signal, sondern eine AES-Nachricht und kann
       daher nur an GEM-Programme verschickt werden. Dies funktioniert
       auch dann, wenn das Betriebssystem keine Signale kennt.

 OPTIONEN

        -l  Gibt eine Liste aller Signale aus, die verschickt werden
            knnen. Wenn Sie kein Multitasking-System verwenden, wird
            nur AP_TERM ausgegeben.

 SIEHE AUCH
       pwait


8.5.35  pwait
-------------

 NAME
       pwait - auf einen Proze warten

 SYNOPSIS
       pwait [-q] pid

 BESCHREIBUNG
       pwait wartet auf den Proze mit der Nummer pid. Diese Nummer
       erhlt man, wenn ein Programm unter einem Multitasking-System
       parallel gestartet wurde. Nach dem Programmstart erhlt man
       dann in $? nicht den Rckgabewert (das Programm luft ja
       noch!), sondern die pid (Proze-ID). Will man spter den
       Rckgabewert des Programms erfahren, so kann man diesen mit
       pwait abfragen. Luft der Proze noch, so wartet pwait erst auf
       dessen Ende. Anschlieend steht der Rckgabewert in $?.

       Wurde das Programm mit der Nachricht VA_START gestartet, so
       kann Chatwin die pid des Prozees nicht erfahren und auch nicht
       auf das Programm warten. In diesem Fall erhlt man beim
       Programmstart statt der Proze-ID den Wert 18193 (= hex. $4711,
       die Nummer der Nachricht VA_START) zurck.

       Wurde noch kein Proze mit ID pid gestartet, so wird eine
       Fehlermeldung ausgegeben.

       Hinweis: Wenn der Proze, auf den pwait warten soll, gestoppt
       wurde, wartet Chatwin trotzdem! Falls der Proze dann nicht
       wieder gestartet oder beendet werden kann, kann auch Chatwin
       nicht weiterlaufen.

       Unter einem Singletasking-TOS tut dieser Befehl nichts, er
       kehrt sofort zurck.

 OPTIONEN

        -q  Wenn kein Proze mit Proze-ID pid bekannt ist, wird keine
            Fehlermeldung ausgegeben. $? wird auf 0 gesetzt.

 SIEHE AUCH
       pkill


8.5.36  quit
------------

 NAME
       quit - Chatwin verlassen

 SYNOPSIS
       quit [rckgabewert]

 BESCHREIBUNG
       Verlt Chatwin sofort (ohne Sicherheitsabfrage).

       Als Rckgabewert kann ein Integer im Bereich -32768 bis 32767
       angegeben werden, der dann an den Aufrufer von Chatwin (z.B.
       den Desktop) zurckgegeben wird.

 SIEHE AUCH
       exit


8.5.37  repeat
--------------

 NAME
       repeat - Befehle wiederholt ausfhren

 SYNOPSIS

       repeat
         Befehl(e)
       until bedingung

 BESCHREIBUNG
       Die Befehle zwischen repeat und until werden so lange immer
       wieder ausgefhrt, bis die Bedingung wahr ist.

       Folgende Mglichkeiten fr die Bedingungen stehen zur
       Verfgung:

        ein Dateiname          Existenz der Datei wird berprft
        def(makro)             Existenz des Makros wird berprft
        par(nummer)            Existenz von Parameter $nummer ($0 ...
                               $9) wird berprft
        time(file1 vgl time2)  Vergleicht Datum und Uhrzeit der beiden
                               Dateien. `vgl' ist eines der
                               Vergleichszeichen ==, !=, >=, >, <=, <
        env(variable)          berprft, ob die Variable vorhanden
                               ist
        env(variable=wert)     berprft, ob die Variable den
                               angegebenen Wert hat (der auch leer
                               sein kann
        $? vgl wert            Vergleicht den Rckgabewert $? mit
                               einem Integerwert

       Diese Terme knnen mit && (logisches UND), || (logisches ODER),
       ! (Negation) und Klammern beliebig verknpft und verschachtelt
       werden.

       Die Schleife kann auch mit dem Befehl break vorzeitig beendet
       werden. Auerdem kann mit dem Befehl continue der nchste
       Schleifendurchlauf unmittelbar begonnen werden.

       Das Konstrukt kann in der Console im Direktmodus nicht
       verwendet werden.

 SIEHE AUCH
       if, while, Bedingungen


8.5.38  return
--------------

 NAME
       return - Takefile oder Macro beenden

 SYNOPSIS
       return [rckgabewert]

 BESCHREIBUNG
       Beendet ein gerade laufendes Takefile oder Mehrzeilenmakro. Der
       Rckgabewert kann ein Integer im Bereich -32768 bis 32767 sein.
       Er kann beim Aufrufer (d.h. "eine Ebene hher") ber die
       Variable $? abgefragt werden.

       return ohne Parameter wird als return 0 interpretiert. Endet
       das Macro bzw. Takefile ohne return, so wird ebenfalls ein
       Rckgabewert von 0 angenommen.

       Der Befehl kann in der Console im Direktmodus nicht verwendet
       werden.

 SIEHE AUCH
       if


8.5.39  rm
----------

 NAME
       rm - Dateien und Verzeichnisse lschen

 SYNOPSIS
       rm [-qrv] filespec ...

 BESCHREIBUNG
       Lscht Dateien und Verzeichnisse (Angabe von Quantoren
       mglich). Per Default werden immer nur die angegebenen Objekte
       bzw. auf der angegebenen Verzeichnisebene gelscht.

 OPTIONEN

        -q  Gibt keine Meldung aus, wenn das zu lschende Objekt nicht
            existiert.

        -r  Lscht rekursiv, d.h. auch Verzeichnisse unter dem
            angegebenen werden durchsucht.

        -v  Gibt hinterher aus, wieviele Dateien und Ordner gelscht
            wurden.

 BEISPIELE

        rm trashdir/*     ; lscht alle Dateien und Verzeichnisse im
                            Verzeichnis 'trashdir'
        rm texte/*.bak    ; lscht im Verzeichnis 'texte' alle Dateien
                            und Verzeichnisse mit Extension *.bak
        rm -r texte/*.bak ; lscht im Verzeichnis 'texte' und in
                            allen darunterliegenden Verzeichnissen

 SIEHE AUCH
       rmdir


8.5.40  rmdir
-------------

 NAME
       rmdir - leere Verzeichnisse lschen

 SYNOPSIS
       rmdir [-q] verzeichnis ...

 BESCHREIBUNG
       Lscht das bzw. die angegebenen leeren(!) Verzeichnisse.

       Verzeichnisse, die noch Dateien und evtl. weitere
       Unterverzeichnisse enthalten, knnen mit rm gelscht werden.

 OPTIONEN

        -q  Gibt keine Meldung aus, wenn das zu lschende Objekt nicht
            existiert.

 SIEHE AUCH
       mkdir, rm


8.5.41  shift
-------------

 NAME
       shift - Parameterliste schieben

 SYNOPSIS
       shift [variable]

 BESCHREIBUNG
       Schiebt in der aktuellen Parameterliste alle Parameter um eins
       nach links. Somit ist der vormals zweite Parameter mit $0
       erreichbar und der vorher unerreichbare elfte Parameter mit $9.
       Der ehemals erste Parameter steht noch in der Variablen $SHIFT.

       Wird der Name einer Variablen bergeben, so wird statt der
       aktuellen Parameterliste der Inhalt der Variablen geschoben.

 SIEHE AUCH
       alias, env, macro


8.5.42  take
------------

 NAME
       take - Takefiles starten

 SYNOPSIS
       take [nr] [wort]

 BESCHREIBUNG
       Ruft eines der Takefiles Nr. 1-3 auf. Ohne Angabe der Nummer
       wird das Default-Takefile gestartet. Beliebige Takefiles knnen
       einfach durch Angabe ihres Namens (aber mit Extension .t)
       aufgerufen werden. Wenn das Takefile in dem Pfad liegt, der in
       der Variablen $TAKE angegeben ist, dann mssen Sie nicht einmal
       den Pfad mit eingeben.

       Die Takefiles knnen mit dem Menpunkt `Takefiles finden'
       angemeldet werden. Dort kann auch das Default-Takefile
       festgelegt werden.

       Der Parameter "wort" wird als erster Parameter (d.h. als $0) an
       das Takefile bergeben. Beachten Sie bitte, da, wenn Sie "nr"
       weglassen, um das Default-Takefile zu starten, "wort" nicht
       "1", "2" oder "3" sein darf, da Chatwin sonst das entsprechende
       Takefile startet.

       Wenn das Default-Takefile ber die Nachricht ES_MAKEALL
       gestartet wird, dann wird ihm als einziger Parameter das
       Wrtchen "all" (ohne die Anfhrungszeichen) bergeben (siehe
       die Anmerkungen zum SE-Protokoll). Mit dem Aufruf

         take all

       lt sich der gleiche Effekt erreichen.


8.5.43  touch
-------------

 NAME
       touch - Datei mit aktueller Uhrzeit versehen

 SYNOPSIS
       touch file

 BESCHREIBUNG
       Versieht die angegebene Datei mit dem aktuellen Datum und der
       aktuellen Uhrzeit.

       touch kann nicht auf Verzeichnisse angewendet werden.


8.5.44  unalias
---------------

 NAME
       unalias - Makros lschen

 SYNOPSIS
       unalias macrospec

 BESCHREIBUNG
       Lscht Makros (Aliases und Macros). "macrospec" kann ein
       einzelner Name sein oder Quantoren enthalten (* lscht alle
       Makros).

 SIEHE AUCH
       alias, macro


8.5.45  wait
------------

 NAME
       wait - Warten auf Tasten- oder Maustastendruck

 SYNOPSIS
       wait

 BESCHREIBUNG
       Wartet auf einen Tastendruck oder Mausklick.


8.5.46  which
-------------

 NAME
       which - ermittelt, welcher Befehl ausgefhrt wird

 SYNOPSIS
       which befehl

 BESCHREIBUNG
       which ermittelt, welcher Befehl ausgefhrt wrde, wenn man den
       als Paramater bergebenen Befehl in der Console oder einem
       Takefile ausfhren lassen wrde. Dabei expandiert which auch
       Aliase und Variablen, bercksichtigt Macros und sucht Programme
       entlang $PATH. Ausgegeben wird schlielich der Befehl, das
       Programm, das Takefile oder das Macro, das tatschlich
       ausgefhrt wrde.

 BEISPIELE
       Angenommen, im Verzeichnis c:\gemini\bin gbe es ein Programm
       test.prg und das Verzeichnis stnde in $PATH. Auerdem
       existiere ein Alias namens "hallo", der test.prg aufruft. Dann
       liefert which folgende Ausgaben (jeweils mit einem >-Zeichen
       markiert):

         which test
         >c:\gemini\bin\test.prg

         which hallo
         >c:\gemini\bin\test.prg


8.5.47  while
-------------

 NAME
       while - Befehle wiederholt ausfhren

 SYNOPSIS

       while bedingung
         Befehl(e)
       wend

 BESCHREIBUNG
       Die Befehle zwischen while und wend werden so lange immer
       wieder ausgefhrt, solange die Bedingung wahr ist.

       Folgende Mglichkeiten fr die Bedingungen stehen zur
       Verfgung:

        ein Dateiname          Existenz der Datei wird berprft
        def(makro)             Existenz des Makros wird berprft
        par(nummer)            Existenz von Parameter $nummer ($0 ...
                               $9) wird berprft
        time(file1 vgl time2)  Vergleicht Datum und Uhrzeit der beiden
                               Dateien. `vgl' ist eines der
                               Vergleichszeichen ==, !=, >=, >, <=, <
        env(variable)          berprft, ob die Variable vorhanden
                               ist
        env(variable=wert)     berprft, ob die Variable den
                               angegebenen Wert hat (der auch leer
                               sein kann
        $? vgl wert            Vergleicht den Rckgabewert $? mit
                               einem Integerwert

       Diese Terme knnen mit && (logisches UND), || (logisches ODER),
       ! (Negation) und Klammern beliebig verknpft und verschachtelt
       werden.

       Die Schleife kann auch mit dem Befehl break vorzeitig beendet
       werden. Auerdem kann mit dem Befehl continue der nchste
       Schleifendurchlauf unmittelbar begonnen werden.

       Das Konstrukt kann in der Console im Direktmodus nicht
       verwendet werden.

 SIEHE AUCH
       if, repeat, Bedingungen



9  Wie schreibe ich ein Takefile?
*********************************

Ein Takefile ist eine einfach ASCII-Datei, die die Extension *.T haben
sollte. Pro Zeile steht darin immer genau ein Befehl(swort), ein
Befehl kann aber beliebig mit Leerzeichen eingerckt werden. Ein
Kommentar wird mit einem Semikolon ";" eingeleitet und gilt dann fr
den Rest der Zeile (eine Zeile kann auch nur aus einem Kommentar
bestehen oder auch ganz leer sein). Wenn das erste Zeichen in einer
Zeile das Zeichen "#" ist, so behandelt Chatwin diese Zeile ebenfalls
als Kommentar. Ausnahme: Die Zeichenfolge "#!" in der ersten Zeile.

Es gibt mehrere Mglichkeiten, ein Takefile zu starten. Die
einfachsten sind sicher ber den Menpunkt `anderes Takefile' (letzter
Eintrag im Take-Men), sowie durch Eintippen des Namens in der Console
(analog zum Aufruf eines Programms). Andere Mglichkeiten bieten sich
ber den take-Befehl, sowie im Zusammenhang mit dem Editor.

Zunchst einmal ist es sinnvoll, sich mit einigen Besonderheiten der
Chatwin-Kommandosprache vertraut zu machen. Es gibt zwei Arten von
Befehlen: Solche, die nur in Takefiles verwendet werden knnen, und
solche, die in der Console im Direktmodus und in Takefiles verwendet
werden knnen. Zur ersten Sorte gehren die Befehlsgruppen wie
if/else/endif oder Schleifen wie repeat/until sowie die Befehle force
und append. Die Mitglieder der zweiten Gruppe knnen Sie einfach
ermitteln, indem Sie in der Console die Help-Taste drcken.

Das zweite wichtige Konzept in Chatwin ist das des aktuellen
Quelltextes. Dieser wird mit dem ersten Eintrag im Extras-Men oder
ber den Befehl fname angemeldet. Ab dann kann diese Datei einfach
durch ein Prozentzeichen "%" angesprochen werden. Dabei merkt sich
Chatwin aber nur den Pfad- und Dateinamen ohne Extension! Sind Sie in
einer Situation nur am Dateinamen (ohne Pfad und Extension)
interessiert, so knnen Sie darauf mit einem doppelten Prozentzeichen
"%%" zugreifen. ber die drei Environmentvariablen $SRCPATH, $SRCNAME
und $SRCEXT knnen Sie zustzlich noch direkt auf den Pfad, den Namen
und die Extension des Quelltextes zugreifen.

Der Grund, warum die Extension bei "%" und "%%" nicht behalten wird,
ist einfach folgender: Im Normalfall geht es darum, einen Quelltext
einer bestimmten Programmiersprache zunchst in eine Objektdatei (oder
ggfs. noch in eine Assemblerdatei) und schlielich in ein ausfhrbares
Programm zu berfhren. Dabei bleibt der Dateiname selbst erhalten,
whrend die Extension in einem bestimmten Schema wechselt (z.B. von
*.C nach *.S nach *.O nach *.PRG). Diesen Wechsel wird man dann in
einem Takefile "fest verdrahten", whrend der Dateiname selbst
variabel bleibt.

Schlielich mu man noch wissen, da jedes aus Chatwin heraus
aufgerufene Programm oder Takefile einen Integer-Wert (also eine Zahl
mit dem Wertebereich -32768 bis +32767) zurckgibt. Dieser
Rckgabewert ist ber die Zeichenfolge $? verfgbar (bis zum nchsten
Aufruf eines Programms oder Takes). Dies gilt auch fr die fest
angemeldeten Programme, die ber die Befehle ed, cc, as, ld und db
aufgerufen werden. blicherweise bedeutet der Rckgabewert 0, da
keine Fehler aufgetreten sind, Werte kleiner als 0 stehen fr
bestimmte (Betriebssystem-)Fehlermeldungen, whrend Werte grer 0 fr
eigene Meldungen zur Verfgung stehen.

Gewappnet mit diesen Informationen soll nun ein einfaches Takefile
entstehen. Ein blicher Ablauf bei der Programmentwicklung ist
folgender: Eine Datei wird in den Editor geladen und verndert.
Anschlieend soll sie vom Compiler bersetzt und vom Linker in ein
ausfhrbares Programm verwandelt werden. Natrlich macht der Aufruf
des Linkers keinen Sinn, wenn der Compiler einen Fehler gefunden hat.
In diesem Fall soll daher wieder der Editor aufgerufen werden. Hat man
sich Editor, Compiler und Linker auf den entsprechenden Menpunkten
angemeldet, so stehen diese Programme nun ber die Befehle ed, cc und
ld zur Verfgung. Im folgenden wird von der Programmiersprache C
ausgegangen (da wir ja eine Extension fr den Quelltext bentigen),
ohne auf irgendwelche Besonderheiten wie Compileroptionen zu achten.

Eine erste Implementierung knnte so aussehen:

        ed %.c        ; Editor mit Quelltext aufrufen
        repeat        ; wiederhole ...
          cc %.c      ;   Compileraufruf
          if $? != 0  ;   Rckgabewert ungleich 0?
            ed %.c    ;     dann Editor aufrufen
          endif
        until $? == 0 ; bis Rckgabe gleich 0 (kein Fehler)
        ld %.prg=%.o  ; Linker aufrufen (mit Phantasie-Optionen)

Bei nherer Betrachtung offenbart sich jedoch ein Fehler: Wenn der
Compiler einen Fehler meldet (Rckgabewert ungleich Null) wird zwar,
wie gewnscht, der Editor aufgerufen. Dieser berschreibt nun aber
durch seinen eigenen Rckgabewert den des Compilers, so da mit
einiger Wahrscheinlichkeit die Schleife abgebrochen wird, da der
Editor ja keinen Fehler meldet. Dann wird natrlich der Linker
aufgerufen, ohne da nochmals der Compiler ber den genderten
Quelltext gelaufen ist.

Nebenbei bemerkt lt sich die etwas kryptisch wirkende Zeile

       if $? != 0

auch krzer als

       if $?

schreiben - die Wirkung ist dieselbe.

Zweiter Versuch:

        repeat
          ed %.c     ; Editor
          cc %.c     ; Compiler
        until $?==0  ; Schleife wiederholen, falls Rckgabe ungleich 0
        ld %.prg=%.o ; Linkeraufruf

Dies funktioniert nun wie gewnscht. Man kann dieses einfache Beispiel
noch ausbauen. So knnte man den Editor gleich noch mit einer (vom
Compiler erzeugten) Liste der Fehlermeldungen aufrufen. Unter den
mitgelieferten Takefiles befinden sich einige etwas komplexere
Beispiele, die Sie sich einmal ansehen sollten.

Unter diesen Beispielen befindet sich auch das Takefile DEFAULT.T, das
unter "Beispiel-Takefile" nher erklrt wird.



10  Beispiel-Takefile
*********************

Hier soll einmal ein Takefile etwas ausfhrlicher besprochen werden.
Es handelt sich um ein Takefile fr Pure C fr Programme, die nur aus
einem C-Quelltext bestehen (also gewissermaen das Gegenstck zum
DEFAULT.PRJ von Pure C).

Bentigt werden insgesamt drei Dateien:

 DEFAULT.T    das eigentliche Takefile
 DEFAULT.LNK  eine Liste der Libraries fr den Linker
 COMPILE.T    ein Unter-Takefile zum bersetzen eines C-Quelltexts

Folgende Voraussetzungen mssen gegeben sein:

    $OBJ ist der Pfad, in dem die Objektfiles abgelegt werden
    $PRGPATH ist der Pfad, in dem die Programme abgelegt werden
    $TAKE ist der Pfad, in dem die Takefiles und DEFAULT.LNK stehen
    der Quelltext, der bersetzt werden soll, ist als aktueller
     Quelltext angemeldet; das fertige Programm bekommt den Namen des
     Quelltextes mit Extension $PRGEXT

Dieses Takefile ist als "Nachlufer" des Editors konzipiert, d.h. es
soll automatisch ausgefhrt werden, wenn der Editor beendet wird oder
wenn der Editor die Nachricht ES_MAKE schickt (je nachdem, ob unter
einem Single- oder Multitasking-Betriebssystem gearbeitet wird).

Dies ist DEFAULT.T

 ; Einfach-Takefile fr Pure C fr Programme, die nur
 ; aus einem C-Quelltext bestehen.
 ; Bentigt COMPILE.T und DEFAULT.LNK (dort ggfs. Pfade anpassen!).
 ;
 cls                                  ; Console-Fenster lschen
 if !$OBJ\%%.o || TIME($OBJ\%%.o<%.c) ; Compilieren ntig?
   $TAKE\compile.t                    ;   ja, auf geht's
   if $?                              ;   alles OK?
     return -1                        ;     nein, Abbruch
   endif
 endif
 if !$PRGPATH\%%.$PRGEXT || TIME($PRGPATH\%%.$PRGEXT<$OBJ\%%.o)
   mv $OBJ\%%.o $OBJ\a.o              ;     Objektfile umbenennen
   ld #4 -S=8192 -C=$TAKE\DEFAULT.LNK ;     Linker aufrufen
   mv $OBJ\a.o $OBJ\%%.o
   if $?                              ;     Linker-Fehler aufgetreten?
     echo Linker Error #$?            ;       ja, ausgeben
     return -2
   else
     mv $PRGPATH\linker.out $PRGPATH\%%.$PRGEXT
   endif
 else
   echo %%.$PRGEXT is up to date!
 endif

Zunchst wird berprft, ob der Quelltext berhaupt neu bersetzt
werden mu. Fehlt das Objektfile [!$OBJ\%%.o] oder ist das Objektfile
lter als der Quelltext [TIME($OBJ\%%.o<%.c)], dann mu neu bersetzt
werden. Dazu wird das Takefile COMPILE.T aufgerufen, das gleich
anschlieend besprochen wird. Meldet dieses einen Returnwert ungleich
Null zurck [if $?], so ist ein Fehler aufgetreten und auch das
aktuelle Takefile wird abgebrochen und meldet eine -1 an den Aufrufer.

Unabhngig davon, ob compiliert wurde oder nicht (solange nur kein
Fehler aufgetreten ist), wird nun berprft, ob der Linker aufgerufen
werden mu. Dies ist dann der Fall, wenn das Programmfile nicht
existiert [!$PRGPATH\%%.$PRGEXT] oder die Programmdatei lter ist, als
das Objektfile [TIME($PRGPATH\%%.$PRGEXT<$OBJ\%%.o)].

In DEFAULT.LNK stehen die Namen der Dateien, die der Linker
zusammenfgen soll. DEFAULT.LNK sieht so aus (die Pfade mssen ggfs.
angepat werden!):

       -O=d:\pure\exec\linker.out
       d:\pure\lib\pcvstart.o
       d:\pure\obj\a.o
       d:\pure\lib\pcbgilib.lib
       d:\pure\lib\pcfltlib.lib
       d:\pure\lib\pcstdlib.lib
       d:\pure\lib\pcextlib.lib
       d:\pure\lib\pctoslib.lib
       d:\pure\lib\pcgemlib.lib

Die erste Zeile gibt an, da das fertige Programm "LINKER.OUT" heien
soll und in der dritten Zeile wird fr das Objektfile der Name "A.O"
vorausgesetzt. Da man von einem Takefile aus diese Namen nicht ndern
kann, mssen die Dateien in DEFAULT.T entsprechend umbenannt werden
(siehe dort):

Zunchst wird das Objektfile in A.O umbenannt (eine evtl. noch
vorhandene gleichnamige Datei wird dabei berschrieben). Anschlieend
wird der Linker aufgerufen. Dabei werden alle Optionen, die in der
Linker-Optionsbox eingestellt wurden, bergeben [#4] und als Stack 8
KByte angegeben [-S=8192]. Die Dateien, die gelinkt werden sollen,
stehen in DEFAULT.LNK im Ordner $TAKE [-C=$TAKE\DEFAULT.LNK]. Nachdem
der Linker fertig ist, erhlt A.O wieder seinen richtigen Namen.
Anschlieend wird der Rckgabewert des Linkers ausgewertet. Ist er
ungleich Null [if $?], so ist ein Fehler aufgetreten. Die Nummer des
Fehlers wird ausgegeben und das Takefile beendet (an den Aufrufer wird
-2 zurckgegeben). Andernfalls erhlt nun das fertige Programm, das ja
noch LINKER.OUT heit, seinen richtigen Namen. Eine evtl. noch
vorhandene ltere Programmdatei wird dabei automatisch berschrieben


Kommen wir nun zu COMPILE.T. Dieses Takefile bernimmt die eigentliche
bersetzung des C-Quelltextes und sieht so aus:

 ; Unter-Takefile: C-Quelltext compilieren, rev. 23.07.1996
 env ERRORS=$OBJ\errors.out
 echo Compiling "%%.c"
 repeat
   if env(PROJECT)               ; luft ein Projekt?
     cc $OPTC $* %.c >$ERRORS    ;   ja, Compiler so aufrufen
   else
     cc #2 %.c >$ERRORS          ;   nein, Compileroptionen bernehmen
   endif
   if $?==0                      ;  kein Fehler?
     grep Warning $ERRORS >NIL:  ;    Text 'Warning' in errors.out?
     if $?
       rm -q $ERRORS             ;      nein, errors.out lschen
     endif
   endif
   if $ERRORS                    ;  existiert errors.out?
     errfile $ERRORS %.c         ;    ja, Editor aufrufen
     if $?==0                    ;    nicht nochmal compilieren?
       return -1                 ;      Abbruch
     endif
   else
     mv %.o $OBJ\%%.o            ;    *.o-Datei nach $OBJ verschieben
   endif
 until !$ERRORS                  ; bis kein errors.out mehr existiert
 env ERRORS

Dieses Takefile ist so ausgelegt, da es auch in anderem Zusammenhang,
nmlich bei der Nachbildung der Pure-C-Projekte, verwendet werden
kann. Daher die Unterscheidung anhand der Environmentvariable $PROJECT
(unter den Beispiel-Takefiles, die Sie zusammen mit Chatwin bekommen
haben, sollte sich auch das Project-Beispiel befinden).

In unserem Zusammenhang ruft COMPILE.T zunchst den Compiler mit den
Optionen aus seiner Optionsbox auf (#2). Die Ausgaben werden in eine
Datei "ERRORS.OUT" umgelenkt. Meldet der Compiler keinen Fehler [if
$?==0], so wird diese Datei mit einem Hilfsprogramm nach dem Text
"Warning" durchsucht, da der Compiler leider keinen speziellen
Rckgabewert fr den Fall kennt, da nur Warnings, aber keine echten
Fehler aufgetreten sind. Wurden auch keine Warnings gefunden, wird die
Datei ERRORS.OUT gelscht.

Als nchstes wird berprft, ob ERRORS.OUT noch vorhanden ist. Wenn
ja, dann hat der Compiler offenbar Fehler oder Warnings im Quelltext
gefunden. Daher wird in diesem Fall der Editor mit dem Quelltext und
der Fehlerliste aufgerufen. Durch den Rckgabewert des Editors wird
nun entschieden, ob der (dann vermutlich genderte) Quelltext nochmals
compiliert werden soll, oder ob das Takefile abgebrochen werden soll
[if $?==0 / return -1].

Mute der Editor dagegen gar nicht aufgerufen werden, so wird nun die
vom Compiler erzeugte Objektdatei, die noch im gleichen Verzeichnis
wie der Quelltext steht, in das Verzeichnis fr alle Objektfiles
verschoben [mv %.o $OBJ\%%.o].

Dieser ganze Vorgang wird in einer repeat-until-Schleife solange
wiederholt, bis keine Datei ERRORS.OUT mehr existiert [until
!$ERRORS].



11  Fehlermeldungen
*******************

Es folgt eine Auflistung aller Fehlermeldungen, die Chatwin ausgeben
kann. Aufgefhrt sind hier nur die "echten" Fehlermeldungen, nicht die
ebenfalls vorhandenen Hinweise wie "Leeres Verzeichnis" (bei ls). Ein
Fehler fhrt immer zum Abbruch eines Takefiles oder Makros, eine
andere Meldung nicht.

 Syntax-Fehler.
     Ein syntaktischer Fehler ist aufgetreten. Bitte lesen Sie
     nochmals die Beschreibung des Befehls, den Sie verwenden wollten.
     Stimmen die Parameter?

 Benutzer hat abgebrochen.
     Dies ist keine Fehlermeldung im eigentlichen Sinne: Die
     Abarbeitung eines Takefiles oder Macros wurde durch
     gleichzeitiges Drcken beider [Shift]-Tasten abgebrochen.

 break auerhalb einer Schleife.

 continue auerhalb einer Schleife.
     Die Befehle break und continue knnen nur innerhalb von Schleifen
     (while ... wend, repeat ... until) verwendet werden. Ein Takefile
     oder Macro kann mit return abgebrochen werden.

 Unbekanntes Kommando.
     Chatwin hat weder einen eingebauten Befehl, noch ein Makro oder
     ein Programm gefunden, das diesen Namen trgt. Wahrscheinlich
     haben Sie sich einfach nur vertippt oder kein derartiges Makro
     vereinbart oder das gewnschte Programm befindet sich nicht im
     Suchpfad.

 Fehler in einem Ausdruck.
     Der Ausdruck hinter einem if, elsif (siehe "if"), while oder
     until (siehe "repeat") weist einen Fehler auf. Bitte lesen Sie
     noch einmal die Beschreibung des entsprechenden Befehls.

 else ohne passendes if.

 elsif ohne passendes if.

 endif ohne passendes if.
     Es wurde ein else (siehe "if"), elsif (siehe "if") oder endif
     (siehe "if") gefunden, zu dem kein korrespondierendes if bekannt
     ist. Vermutlich ein Fehler in einer Verschachtelung mehrerer
     Schleifen und Bedingungen.

 "..." ist kein zulssiger Name.
     Sie haben einen Namen fr ein Makro oder eine Environmentvariable
     gewhlt, der nicht zulssig ist. Gltige Namen drfen nur die
     Buchstaben A-Z (gro und klein), die Ziffer 0-9 sowie den
     Unterstrich enthalten. Auerdem darf ein Name nicht mit einer
     Ziffer beginnen.

 Nicht genug Parameter.
     Der Befehl bentigt mehr Parameter als Sie angegeben haben. Bitte
     lesen Sie nochmals die Beschreibung des Befehls.

 Datei(en) "..." nicht gefunden.
     Sie wollten eine Aktion auf einer Datei durchfhren, die nicht
     vorhanden ist. Stimmen Pfad- und Dateiname?

 Kann Datei "..." nicht ffnen.
     Die Datei konnte nicht geffnet werden. Mglicherweise existiert
     die Datei nicht (stimmen Pfad- und Dateiname?) oder es sind
     bereits zu viele Dateien offen.

 Kann Datei "..." nicht lesen.
     Beim Lesen der Datei trat ein Fehler auf. Mglicherweise ein
     Defekt auf der Diskette bzw. Festplatte.

 Kann Datei "..." nicht schreiben.
     Beim Schreiben der Datei trat ein Fehler auf. Mglicherweise ist
     nicht gengend Platz auf dem Medium oder es liegt ein Defekt vor.

 Kein freier Speicher mehr.
     Fr die gewnschte Aktion konnte Chatwin nicht gengend Speicher
     anfordern.

 Kein Quelltext ausgewhlt.
     Sie haben in einem Kommando oder Ausdruck das %-Zeichen
     verwendet, aber noch keinen Quelltext ausgewhlt, der dafr
     eingesetzt werden knnte.

 Programm wurde mit Fehler(n) beendet.
     Beim Abarbeiten eines Programms trat ein Fehler auf bzw. das
     Programm konnte erst gar nicht gestartet werden.

 Kann Datei "..." nicht umbenennen.

 Kann Disk "..." nicht umbenennen.

 Kann Verzeichnis "..." nicht umbenennen.
     Das Objekt (Datei, Diskette oder Verzeichnis) konnte nicht
     umbenannt werden. Mglicherweise existiert bereits ein Objekt mit
     dem gewnschten neuen Namen oder das Medium ist schreibgeschtzt.
     Mit TOS-Versionen vor 1.04 knnen auerdem keine Verzeichnisse
     umbenannt werden.

 Kann Datei "..." nicht lschen.
     Die Datei konnte nicht gelscht werden. Vermutlich ist bei ihr
     das Schreibschutz-Bit gesetzt.

 Kann Verzeichnis "..." nicht lschen.
     Das Verzeichnis konnte nicht gelscht werden. Entweder befinden
     sich darin noch Objekte, die nicht gelscht werden konnten, oder
     Sie haben versucht, mit rmdir einen Ordner zu lschen, der noch
     Objekte enthlt (verwenden Sie rm -r um einen Ordner zu lschen,
     der noch andere Objekte enthlt).

 Kann Verzeichnis "..." nicht anlegen.
     Es konnte kein neues Verzeichnis mit diesem Namen angelegt
     werden. Wahrscheinlich existiert bereits ein anderes Objekt
     dieses Namens.

 Kann Datei "..." nicht anlegen.
     Es konnte keine (neue) Datei mit diesem Namen angelegt werden.
     Wahrscheinlich existiert bereits ein anderes Objekt dieses
     Namens.

 Kann Pfad nicht wechseln. Es konnte nicht in den gewnschten Pfad
     gewechselt werden. Wahrscheinlich existiert dieser nicht.
     Tippfehler?

 CLIP: nicht verfgbar. Das Klemmbrett steht nicht zur Verfgung und
     konnte auch nicht eingerichtet werden.

 Programm nicht verfgbar.
     Fr einen der Befehle ed, cc, as, ld oder db wurde noch kein
     zugehriges Programm angemeldet.

 Dies ist kein Verzeichnis.
     Sie haben versucht, eine Verzeichnisoperation auf ein Objekt
     anzuwenden, das kein Verzeichnis ist (also z.B. eine Datei oder
     das Wurzelverzeichnis eines Laufwerks).

 Fehler beim Formatieren. Disk schreibgeschtzt oder defekt.
     Beim Formatieren trat ein Fehler auf. Wenn es bei der letzten
     Spur auftrat (Chatwin formatiert Disketten von hinten!), ist
     vermutlich die Diskette schreibgeschtzt, ansonsten wohl ein
     Sektor auf der Disk defekt.

 Zu viele verschachtelte aliases.
     Um Endlosschleifen beim Ersetzen von Makros zu vermeiden, ist die
     maximale Verschachtelungstiefe auf acht Ebenen begrenzt. Diesen
     Wert haben Sie offenbar berschritten.

 wend ohne passendes while.
     Es wurde ein wend (siehe "while") gefunden, ohne da ein
     korrespondierendes while bekannt wre. Vermutlich ein Fehler in
     einer Verschachtelung mehrerer Schleifen und Bedingungen.

 until ohne passendes repeat.
     Es wurde ein until (siehe "repeat") gefunden, ohne da ein
     korrespondierendes repeat bekannt wre. Vermutlich ein Fehler in
     einer Verschachtelung mehrerer Schleifen und Bedingungen.

 endif erwartet.

 until erwartet.

 wend erwartet.
     Am Ende eines Takefiles oder Makros fehlte noch ein endif (siehe
     "if"), until (siehe "repeat") oder wend (siehe "while").

 Kann Disk nicht lesen.
     Die Informationen auf der Diskette konnten nicht gelesen werden.
     Wenn diese Meldung nur direkt nach dem Formatieren einer Diskette
     erscheint, ist die Disk vermutlich an wichtigen Stellen defekt
     und damit unbrauchbar.

 Kann Dateiattribute nicht ndern.
     Die Attribute einer Datei konnten nicht gendert werden. Stimmt
     der Name?

 Kann Datei "..." nicht zum Anhngen ffnen.
     An die Datei sollen eigentlich noch Daten angehngt werden.
     Leider lt sie sich nicht im entsprechenden Modus ffnen.
     Vermutlich ist hier das Schreibschutz-Flag gesetzt.

 Nicht zulssige Umlenkung.
     Fr die Ausgabeumlenkung wurde ein nicht zulssiger Name
     verwendet. Bitte vergleichen Sie mit der Liste der zulssigen
     Namen beim Befehl force. Evtl. haben Sie aber auch vergessen, ein
     >-Zeichen zu quoten (siehe "Tips, Tricks und Hinweise").

 macro innerhalb einer Macro-Definition.
     Innerhalb einer Macro-Definition darf der Befehl macro nicht
     nochmals auftreten. Mglicherweise haben Sie auch einfach
     vergessen, eine vorherige Macro-Definition mit endm (siehe
     "macro") abzuschlieen.

 Takefile nicht verfgbar.
     Das Takefile, das sie aufrufen wollten, wurde noch nicht unter
     dem Menpunkt `Takefiles finden' angemeldet.

 Einen solchen Dialog kann ich nicht erstellen.
     Sie haben beim Erstellen einer Optionen-Box unsinnige Werte
     angegeben, z.B. als Lnge fr die Optionen mehr Zeichen, als in
     eine Bildschirmzeile passen.

 Defekte SET-Datei.
     Die Struktur der SET-Datei ist defekt.

 Kann Datei "..." nicht verschieben.
     Beim Verschieben einer Datei trat ein Fehler auf. Wahrscheinlich
     liegt im Zielverzeichnis bereits ein Objekt dieses Namens vor.

 Sie brauchen PAULA, um diese MOD-Datei abspielen zu knnen.
     Um MOD-Files (spezielle Soundfiles) abspielen zu knnen, mu das
     Programm Paula als Accessory oder parallel laufender Proze
     vorhanden sein. Einige wenige MOD-Files (solche, die nur
     gesampelte Daten enthalten) kann Chatwin auch selbst abspielen,
     fr die meisten wird jedoch ein externer Player bentigt.

 Keine Fenster-
     Handles mehr frei. Bitte schlieen Sie ein nicht bentigtes Fenster.
      Es konnte kein weiteres Fenster geffnet werden. Das normale TOS
     erlaubt nur maximal 7 offene Fenster. Abhilfen: Ein nicht mehr
     bentigtes Fenster schlieen und ggfs. eine Betriebssystem-
     Erweiterung verwenden, die mehr offene Fenster erlaubt (WINX,
     MultiTOS, MagiC).

 Kann "..." nicht mit aktueller Uhrzeit versehen.
     Der Befehl touch ist auf dieser Datei fehlgeschlagen. Entweder
     handelt es sich um einen Ordner (diese knnen nicht mit einer
     neuen Uhrzeit versehen werden), oder die Datei ist
     schreibgeschtzt.

 Kann Laufwerk nicht zum Formatieren sperren.
     Auf diesem Laufwerk hat ein anderer Proze noch offene Dateien,
     daher kann Chatwin das Laufwerk z.Z. nicht fr sich beanspruchen
     und formatieren.

 Schreibfehler. Disk schreibgeschtzt?
     Beim Formatieren konnten die Formatinformationen nicht auf die
     Disk geschrieben werden. Ein gesetzter Schreibschutz oder eine
     defekte Diskette sind die wahrscheinlichen Ursachen.

 "..." antwortete nicht innerhalb des Timeout-Intervalls.
     Es wurde versucht, einem anderen Proze eine Nachricht zu
     bermitteln, auf die dieser nicht innerhalb eines bestimmten
     Zeitabschnitts geantwortet hat. Mglicherweise versteht der
     Proze die Nachricht nicht.

 Keine Hilfe verfgbar.
     Es ist kein Hilfesystem (ein Accessory oder parallel laufendes
     Programm) vorhanden.

 "..." ist keine Chatwin-SET-Datei.
     Die Datei, die Chatwin als Setting laden sollte, ist keine von
     Chatwin geschriebene SET-Datei oder defekt.

 Kein Druckertreiber installiert.
     Fr die Druckausgabe mit Zeichenwandlung ist kein passender
     Druckertreiber installiert. Siehe `Drucker'.

 Falsche F-Tasten-Nummer.
     Gltige Nummern fr eine Funktionstaste sind die Zahlen 1 bis 12.

 Kann Verzeichnis "..." nicht ffnen.
     Das angegebene Verzeichnis konnte nicht geffnet werden.
     Vermutlich ein Tippfehler oder das Verzeichnis existiert nicht.

 Verzeichnisse knnen nicht zusammengefgt werden.
     Sie haben beim Befehl join ein Verzeichnis angegeben.

 Die Datei kann sich nicht selbst enthalten.
     Sie haben beim Befehl join eine Datei sowohl links als auch
     rechts vom "as" angegeben.

 LTL-Fehler.
     Beim Oberon-Load-Time-Linking trat ein Fehler auf.

 Kein Proze mit ID ... gefunden.
     Sie wollten mit pwait auf einen Proze warten, der Chatwin nicht
     bekannt ist.

 Programmabsturz.
     Das aus Chatwin heraus gestartete Programm ist abgestrzt.

 Programmabbruch.
     Das aus Chatwin heraus gestartete Programm wurde abgebrochen.

 Auf dieses Fenster knnen keine Icons oder Daten gezogen werden.
     Drag&Drop von Icons ist nur auf die Console und auf die
     Dateiliste mglich.

 Kein Fontselektor installiert.
     Wenn Sie den Font fr das Console-Fenster oder die Dateiliste
     ndern wollen, bentigen Sie unbedingt ein externer Fontselektor,
     z.B. das Programm Calvino.

 Der Font dieses Fensters kann nicht gendert werden.
     Der Font kann nur in der Console und der Dateiliste gendert
     werden.

 Es knnen keine Soundfiles abgespielt werden.
     Soundfiles knnen nur abgespielt werden, wenn Ihr Rechner ber
     DMA-Sound-Hardware verfgt (STE-Modelle, TT, Falcon) oder wenn
     ein Programm installiert ist, das Samples abspielen kann und von
     Chatwin untersttzt wird (z.B. das Programm MacSound von Richard
     Kurz unter MagiCMac).

 Empfnger "..." reagiert nicht.
     Der Empfnger von Drag&Drop-Daten reagiert nicht auf die
     Aufforderung von Chatwin, die Daten abzuholen.

 Empfnger "..." hat die Daten abgelehnt.
     Der Empfnger von Drag&Drop-Daten hat die Daten abgelehnt.
     Wahrscheinlich kann er die Daten in den von Chatwin angebotenen
     Formaten nicht verarbeiten.

 Fehler beim Drag&Drop.
     Das Drag&Drop-Protokoll konnte nicht durchgefhrt werden.
     Wahrscheinlichste Ursache: Speichermangel.

 Programm "..." nicht gefunden.
     Das genannte Programm konnte nicht aufgefunden (auch nicht in
     einem der Pfade aus $PATH) und daher auch nicht ausgefhrt
     werden.

 Unbekanntes Signal.
     Sie wollten mit pkill ein Signal verschicken, das Chatwin nicht
     bekannt ist. Vergleichen Sie bitte mit der Liste der Signale
     unter der Beschreibung des Befehls pkill.

 Dieses Soundfile kann nicht abgespielt werden.
     Chatwin konnte das angegebene Soundfile nicht identifizieren.
     Wahrscheinlich handelt es sich um ein gepacktes Format, die von
     Chatwin nicht abgespielt werden knnen.

 BubbleGEM nicht gefunden.
     Sie haben die BubbleGEM-Hilfe aktiviert, aber das Programm
     BubbleGEM luft nicht. Legen Sie eine Variable $BUBBLEGEM mit
     Name und Pfad des Programms an oder starten Sie das Programm von
     Hand nach.

 Defekte HLP-Datei.
     Die Datei CHATWIN.HLP, die die Daten der BubbleGEM-Hilfe enthlt,
     ist defekt oder gehrt zu einer lteren Chatwin-Version. Kopieren
     Sie die Datei nochmals von Ihrer Chatwin-Diskette bzw. packen Sie
     sie neu aus dem Chatwin-Archiv aus.



12  Tips, Tricks und Hinweise
*****************************

Dieser Abschnitt soll noch einige Tips vermitteln, mit denen man sich
die Arbeit erleichtern kann, sowie Hinweise auf mgliche
Komplikationen geben.


AUTOTAKE.T

Beim Start sucht Chatwin im aktuellen Verzeichnis nach einem Takefile
(siehe "Wie schreibe ich ein Takefile?") namens AUTOTAKE.T und fhrt
dies, sofern es gefunden wird, auch gleich aus. Es bietet sich daher
als Platz fr die Definition oft bentigter Makros und
Environmentvariablen an. Zuvor wird brigens noch nach einer Setting-
Datei CHATWIN.SET gesucht.

Beim Nachladen eines SET-Files wird in dem Verzeichnis, aus dem das
Setting geladen wird, zunchst nach einem Takefile mit dem gleichen
Namen wie das Setting und bei Mierfolg auch noch nach einem
AUTOTAKE.T gesucht. Somit kann man sich auch leicht verschiedene Stze
von Makros und Umgebungen definieren und diese in verschiedenen
Verzeichnissen unterbringen.


Quotes

Eine Reihe von Zeichen haben fr Chatwin eine bestimmte Funktion, d.h.
wenn sie in einer Kommandozeile auftauchen, werden sie in einer
bestimmten Art und Weise interpretiert. Dazu gehren

 %  aktueller Quelltext
 >  Ausgabeumlenkung
 #  (gefolgt von einer Ziffer) Optionen aus einer Optionsbox
 -  (nur direkt nach einem Befehlswort) kennzeichnet einen Schalter
 /  (bei der bergabe an andere Programme) Teil eines Pfadnamens
 $  Quote-Zeichen

Soll eines dieser Zeichen nicht interpretiert werden, so mu man ihm
ein $-Zeichen voranstellen ("quoten"). In anderen Shells ist dies
meist so gelst, da Parameter, die nicht interpretiert werden sollen,
in Anfhrungszeichen (oder Hochkommata) eingeschlossen werden mssen.
Da das Quoten aber eher die Ausnahme als die Regel ist, wird in
Chatwin ein anderer Weg gegangen: Man mu solche Zeichen durch
Voranstellen des $ vor dem interpretiert werden schtzen.

Ein paar Beispiele zur Illustration:

   echo -n Hello, world!
   ; gibt "Hello, world!" ohne Zeilenvorschub aus

   echo $-n Hello, world!
   ; gibt "-n Hello, world!" aus

   lharc a $/r i:/test d:/pure/*.c
   ; Ruft den Packer LHarc mit Kommando 'a' und Option '/r' auf.
   ; Die / in den Pfaden werden automatisch in \ gewandelt.

   env PS1=&p$>
   ; definiert als Prompt den aktuellen Pfad (&p), gefolgt von
   ; einem >-Zeichen (siehe auch $PS1)

   echo Programm $#4 kostet $$100
   ; gibt den Text "Programm #4 kostet $100" aus


CLIP:

Das Klemmbrett (Clipboard) kann in einigen Befehlen auch ber den
Pseudo-Dateinamen CLIP: angesprochen werden:

   ls CLIP:   listet alle Dateien SCRAP.* auf dem Clipboard auf,
   rm CLIP:   lscht alle Dateien SCRAP.* auf dem Clipboard,
   ed CLIP:   ldt die Datei SCRAP.TXT in den Editor,
   more CLIP: zeigt die Datei SCRAP.TXT an

Bei nderungen am Klemmbrett (wenn Dateien gelscht, geschrieben oder
verndert wurden) verschickt Chatwin die Nachricht SC_CHANGED an alle
anderen Prozesse, um sie von der nderung zu informieren.


#!

Die erste Zeile eines Takefiles darf auch mit den beiden Zeichen #!
beginnen, Chatwin behandelt dies ebenfalls als Kommentar. Verschiedene
andere Shells erwarten hinter diesen beiden Zeichen aber den Namen des
Programms, das diese Datei verarbeiten kann und starten es dann nach.

Wenn Sie also in die erste Zeile Ihrer Takefiles

       #!chatwin

schreiben, dann knnen Sie diese Takes auch aus anderen Programmen,
z.B. der Mupfel von Gemini, starten. Umgekehrt kann Chatwin
Scriptfiles anderer Programme starten, wenn der Name des Programms,
das ein solches Script ausfhren soll, in der beschriebenen Weise
angegeben wird. Das Programm wird dann in den Pfaden gesucht, die in
der Variablen $PATH stehen.


--load

Beim Start kann Chatwin in seiner Kommandozeile auch der String --load
bergeben werden. Chatwin ffnet dann, nachdem er sein Default-Setting
geladen hat, gleich den Fileselektor fr "Setting laden". Hinter dem
--load kann (als nchster Parameter) auch noch ein Pfad bergeben
werden, den Chatwin dann fr den Fileselektor verwendet.


unentdeckte Syntaxfehler

Welche Ausgabe wird das folgende Takefile liefern, wenn Sie im Alert
den Button "grn" anklicken?

       alert [2][Bitte whlen Sie ...][rot|grn]
       if $?==1
         echo Button "rot"
       elseif $?==2
         echo Button "grn"
       else
         echo keiner von beiden
       endif

Die Ausgabe wird lauten "keiner von beiden". berrascht? Probieren Sie
es aus! Wenn Sie stattdessen aber den Button "rot" anwhlen wird Ihnen
auer der Ausgabe "Button `rot'" auch noch eine Fehlermeldung
prsentiert. Und hier liegt die Ursache fr das scheinbar merkwrdige
Verhalten: Es gibt keinen Befehl "elseif", der Befehl heit "elsif"
(mit einem `e').

In einem "ungltigen" if-Zweig, d.h. in einem Zweig, dessen Bedingung
nicht zutrifft, fhrt Chatwin keine Syntaxberprfung durch, sondern
sucht nur nach dem nchsten else-, endif- oder elsif-Befehl.


(to be continued ...)




A  Andere Programme
*******************

In diesem Text werden verschiedene Programme erwhnt, mit denen
Chatwin zusammenarbeiten kann. Bitte beachten Sie, da es sich dabei
zum Teil auch um Shareware-Programme handelt! Falls Sie eines dieser
Programme regelmig verwenden, so mssen Sie selbstverstndlich auch
die Sharewaregebhr an den jeweiligen Autor entrichten!


+---------------------------------------------------------------------+
| Programm      Autor, Adresse                      Status, Preis     |
+---------------------------------------------------------------------+
| Calvino       Dirk Haun                           Freeware          |
|               Europastr. 8                                          |
|               64569 Nauheim                                         |
|               Dirk Haun @ WI2 (MausNet)                             |
+---------------------------------------------------------------------+
| Everest       Oliver Schmidt                      Shareware (20 DM) |
|               Haselredder 23                                        |
|               23701 Eutin                                           |
+---------------------------------------------------------------------+
| Freedom       Kolja Koischwitz                    Shareware (30 DM) |
|               Sandhauser Strae 21                                  |
|               13505 Berlin                                          |
|               joust@cs.tu-berlin.de                                 |
+---------------------------------------------------------------------+
| Gemini        Stefan Eissing                      Shareware, wird   |
|               Ansprechpartner:                    z.Z. aber kosten- |
|               Julian Reschke,                     los vertrieben    |
|               jr@ms.maus.de                                         |
+---------------------------------------------------------------------+
| IdeaList      Christoph Bartholme                 Shareware (20 DM) |
|               Ettlinger Str. 37                                     |
|               76137 Karlsruhe                                       |
|               Christoph Bartholme @ KA (MausNet)                    |
+---------------------------------------------------------------------+
| Paula         Pascal Fellerich                    Shareware (30 DM) |
|               45, rue des Gents                                    |
|               L-3482 Dudelange                                      |
|               (Luxembourg)                                          |
|               Pascal Fellerich 2:270/16.3 (Fido)                    |
+---------------------------------------------------------------------+
| Petra         Christoph Peus                      Freeware          |
|               Stolzestr. 30                                         |
|               44139 Dortmund                                        |
|               Christoph Peus @ UN (MausNet)                         |
+---------------------------------------------------------------------+
| qed           Christian Felsch                    Public Domain     |
|               Bevenser Weg 18                                       |
|               21079 Hamburg                                         |
|               Christian Felsch @ HH (MausNet)                       |
+---------------------------------------------------------------------+
| ST-Guide      Holger Weets                        Fairware          |
|               Tangastrasse 45                     (Spende erbeten)  |
|               26121 Oldenburg                                       |
|               Holger Weets @ OL (MausNet)                           |
+---------------------------------------------------------------------+
| STJ-Oberon-2  Ansprechpartner:                    Freeware          |
|               Christian Felsch @ HH (MausNet)                       |
|               oder                                                  |
|               Dietmar Belloff @ GI (MausNet)                        |
+---------------------------------------------------------------------+
| UDO           Dirk Hagedorn                       Shareware (40 DM) |
|               In der Esmecke 9                                      |
|               59846 Sundern                                         |
|               Dirk Hagedoren @ MK2 (MausNet)                        |
+---------------------------------------------------------------------+
| Zeig's mir    Reiner Rosin                        Shareware (40 DM) |
|               Peter-Spahn-Str. 4                                    |
|               65375 Oestrich-Winkel                                 |
|               Reiner Rosin @ WI2 (MausNet)                          |
+---------------------------------------------------------------------+

Disclaimer: Alle Angaben ohne Gewhr! Ich, Dirk Haun, profitiere in
keinster Weise davon, da ich diese Programme hier aufliste!



B  Programm starten
*******************

Die Hauptaufgabe von Chatwin ist es, Programme zu starten. Das klingt
trivial, ist es aber nicht. Die Art und Weise, wie Chatwin ein
Programm startet, hngt sehr stark vom verwendeten Betriebssystem ab.
Dieser Abschnitt soll einige Hintergrnde und Probleme dabei
aufzeigen.


SingleTOS

Das Starten von GEM-Programmen unter einem Singletasking-TOS bereitet
keine weiteren Schwierigkeiten. Da immer nur ein GEM-Programm laufen
kann, schliet Chatwin alle seine Fenster und verschwindet
vorbergehend aus dem Blickfeld (aber nicht aus dem Speicher). Nach
der Rckkehr aus dem anderen Programm ffnet Chatwin seine Fenster
wieder an den alten Positionen und stellt so den Zustand vor dem
Programmstart wieder her.

Interessant wird es bei TOS-Programmen: Die Ausgabe von TOS-Programmen
wird unter SingleTOS abgefangen und in das Console-Fenster umgelenkt.
Dabei macht sich Chatwin zunutze, da eben immer nur ein Programm
(egal ob TOS oder GEM) laufen kann. Bei flchtiger Betrachtung sieht
es so aus, als wrden Chatwin und das TOS-Programm gleichzeitig
laufen, oder als wre das TOS-Programm ein Teil von Chatwin.


MultiTOS

Unter MultiTOS werden beim Start von GEM-Programmen die Fenster nicht
geschloen. Vielmehr wird Chatwin (intern) in einen Wartezustand
versetzt, in dem er auf das Ende des gerade gestarteten Programms
wartet. Whrend dieser Zeit werden aber noch gewisse Nachrichten, wie
z.B. Redraws fr die offenen Fenster, bearbeitet. In Chatwin knnen
aber keine neuen Aktionen ausgelst werden. Anders verhlt es sich,
wenn ein Programm parallel gestartet wurde: Chatwin ist dann sofort
wieder einsatzbereit.

Auch unter MTOS werden die Ausgaben von TOS-Programmen in das
Console-Fenster umgelenkt. Im Gegensatz zur Lsung unter SingleTOS
geschieht dies aber ber Pipes. Die SingleTOS-Methode, nmlich das
Verbiegen bestimmter Vektoren, ist unter einem Multitasking-System
nicht mehr sinnvoll anwendbar, da sie eine globale nderung am System
darstellen wrde und somit auch Prozesse betrfe, die nicht von
Chatwin gestartet worden sind. Werden TOS-Programme parallel
gestartet, so wird dies an das Betriebssystem weitergereicht, das dann
dafr Sorge zu tragen hat, da ein geeignetes Programm die Ausgaben
des TOS-Programms in ein Fenster umlenkt. Unter MTOS existieren dafr
mehrere Programme, z.B. TOSWIN und MINIWIN.

Ein generelles Problem unter MultiTOS ist das Vererben eines
Environments an ein nachgestartetes Programm. Soll ein GEM-Programm
oder ein parallel ablaufendes TOS-Programm gestartet werden, so wird
ein spezieller Mechanismus verwendet, der eigentlich das Environment
an den neuen Proze weitergeben soll. Tatschlich funktioniert dies
aber bei allen ffentlich erhltlichen MultiTOS-Versionen nicht.


MiNT

Unter MiNT (dem "Unterbau" von MultiTOS, ohne multitasking-fhiges
AES) werden die Ausgaben von TOS-Programmen ebenfalls, wie unter
MultiTOS, in das Console-Fenster umgelenkt, solange die Programme
nicht parallel gestartet werden. Das Starten von GEM-Programmen
funktioniert dagegen wie unter SingleTOS, d.h. Chatwin schliet alle
seine Fenster.

Wichtiger Hinweis: In allen "offiziellen" MiNT-Versionen existiert ein
Fehler, der beim Nachstarten von Programmen auftreten kann. Chatwin
enthlt dafr einen "Workaround", d.h. einen Trick, der verhindert,
da dieser Fehler auftritt. In den von Michael Hohmuth gepflegten
MiNT-Versionen (MH-MiNT bzw. FreeMiNT) ist dieser Fehler aber ab MiNT
1.12H3 behoben. Gleichzeitig funktioniert nun aber der Workaround von
Chatwin nicht mehr. Da Chatwin diese MiNT-Versionen nicht voneinander
unterscheiden kann (sie tragen alle die gleiche Versionsnummer 1.12)
wurde folgende Vorgehensweise gewhlt:

    Wenn eine MiNT-Version <1.12 installiert ist, wird der Workaround
     verwendet.

    Wenn eine MiNT-Version 1.12 oder grer installiert ist, wird der
     Workaround nicht verwendet.

Dieses Verhalten kann durch Anlegen einer Environmentvariablen
$MiNT_KLUDGE beeinflut werden: Hat die Variable den Wert "1", dann
wird der Workaround aktiviert, andernfalls deaktiviert.

Wenn Sie also MiNT 1.12, 1.12H1 oder 1.12H2 verwenden, dann sollten
Sie diese Zeile in Ihr AUTOTAKE.T schreiben:

       env MiNT_KLUDGE=1

Der Betrieb unter MultiTOS ist von diesem Problem nicht betroffen.


MagiC (ehemals "Mag!X"), MagiCMac und MagiC PC

Fr den Start von GEM-Programmen gilt unter MagiC 2.0 das gleiche, was
schon zum Thema MultiTOS gesagt wurde. Insbesondere gilt dies leider
auch fr das Problem des Environments, wobei hinzukommt, da ein
Mechanismus wie unter MTOS erst gar nicht vorgesehen ist.

Durch das Fehlen von Pipes ist Chatwin gezwungen, TOS-Programme unter
MagiC 2 immer von dem dort mitgelieferten Programm VT52.PRG ausfhren
zu lassen. Dabei kann jedoch, wie erwhnt, kein Environment vererbt
werden, was aber von vielen TOS-Programmen unbedingt bentigt wird.
Als Abhilfe wurde folgende Lsung eingebaut: TOS-Programme, deren
Ausgabe mit dem Aufruf umgelenkt wurde (z.B. in eine Datei), werden
nicht parallel gestartet. Dadurch ist Chatwin zwar whrend der
Laufzeit des Programms blockiert, jedoch ist dies die einzige
Mglichkeit, das Environment an andere Programme weiterzugeben.

In MagiC 3 und 4 hat sich an dieser Situation nur wenig gendert. Zwar
kann dort nun das Environment vererbt werden (auch beim Start ber das
VT52.PRG), jedoch knnen die nunmehr vorhandenen Pipes nicht sinnvoll
genutzt werden, da immer noch eine Mglichkeit fehlt, eine
Ausgabeumlenkung zu vererben [Fr die Experten: Es fehlt Pexec(100)].
Daher startet Chatwin unter MagiC 3 Programme so wie unter MagiC 2
(mit dem einzigen Unterschied, da nun wenigstens immer das
Environment vererbt wird).

Eine Umlenkung der Ausgaben von TOS-Programmen in die Chatwin-Console
kann mit dem Schalter "MagiC: TOS-Prg. in Console" im Einstellungen-
Dialog erzwungen werden.


andere Betriebssysteme

Aus den obigen Ausfhrungen sollte deutlich geworden sein, da Chatwin
sehr genau wissen mu, unter welchem Betriebssystem gerade Programme
gestartet werden sollen. Ein Anpassung an andere Betriebssysteme wird
deshalb im Normalfall vonnten sein.

Erfahrungen mit N.AES liegen z.Z. noch keine vor. Im Prinzip sollte
Chatwin N.AES wie MultiTOS behandeln. Beachten Sie daher bitte die
obigen Anmerkungen zu MultiTOS.

Erfahrungen mit Geneva liegen z.Z. keine vor. Offenbar gibt es die
Mglichkeit, Geneva mit und ohne MiNT zu verwenden. Die Kombination
Geneva und MiNT sollte sich wie MultiTOS verhalten. Ohne MiNT wird
Geneva von Chatwin evtl. wie SingleTOS behandelt.

Es gibt noch weitere auf MiNT basierende Multitasking-Systeme, z.B.
oAESis und XaAES. Auch diese sollten von Chatwin wie MultiTOS
behandelt werden.

Das Betriebssystem MultiGEM wird nicht untersttzt.


Allgemeines

Wollen Sie, wie weiter oben erwhnt, ein Programm (unter einem
Multitasking-System) parallel starten, so stehen Ihnen zwei
Mglichkeiten zur Auswahl: Zum einen knnen Sie ein &-Zeichen an die
Kommandozeile des Programms (beim Aufruf aus der Console oder einem
Takefile heraus) anhngen. Dies signalisiert Chatwin "dieses Programm
bitte parallel starten". Die andere Mglichkeit ist, das Programm
vorher im Dialog `Programmstart' einzutragen und den Punkt "parallel
starten" anzukreuzen.

Wenn Chatwin ein Programm parallel startet, kehrt er sofort wieder
zurck und ist bereit, weitere Eingaben entgegenzunehmen. Nhere
Ausknfte ber das "Schicksal" eines so gestarteten Programms erhalten
Sie mit dem Befehl pwait.

Unter Single- und MultiTOS sowie unter MiNT versucht Chatwin, den in
seinem Console-Fenster ablaufenden TOS-Programmen ber die
Environmentvariablen $LINES und $COLUMNS die aktuelle Gre des
Console-Fensters mitzuteilen. Programme, die sich an diese Angaben
halten, nutzen dann nur die aktuelle Flche des Console-Fensters, so
da nicht stndig gescrollt werden mu.

Chatwin ist weitgehend machtlos, wenn sich Programme nicht an die
gngigen Methoden zur Ausgabe auf den Bildschirm halten. Programme,
die direkt auf den Bildschirm zeichnen (ohne Fenster) oder TOS-
Programme, die ihre Bildschirmausgaben ber das Bios (statt Gemdos)
abwickeln, werden auch mit anderer Software und mit knftigen
Betriebssystem-Versionen rger bereiten. Sie sollten auf den Einsatz
solcher Programme verzichten oder sich mit dem jeweiligen Autor in
Verbindung setzen.



C  Oberon
*********

Chatwin verfgt ber eine Schnittstelle zum Oberon-System von Stephan
Junker (STJ-Oberon-2), ber die ein Load-Time-Linking (kurz "LTL")
realisiert wird. D.h. da die vom Oberon-Compiler erzeugten
Objektfiles von Chatwin aus wie normale Programme gestartet werden
knnen (der Link-Vorgang entfllt also).

Chatwin wird dazu von dem Oberon-Loader (aus dem Oberon-Paket)
nachgestartet. Genauere Hinweise zur Installation entnehmen Sie bitte
der Dokumentation des STJ-Oberon.

Ist das LTL installiert (fr Chatwin an einem Cookie zu erkennen),
dann knnen Sie von Chatwin aus OBJ-Dateien wie normale Programme
starten. Dies gilt auch fr die Meneintrge, ber die Programme
gestartet werden, also auch fr die Eintrge "Editor", "Compiler",
etc.

Es ist nicht ntig, im Dialog `Programmstart' die Extension "*.OBJ"
einzutragen. Sie knnen dort aber einzelne OBJ-Dateien eintragen, wenn
Sie erreichen wollen, da vor deren Start ber die Menleiste der
Dialog zur Eingabe der Programmparameter (wie bei normalen TTP-
Programmen) erscheint. Tragen Sie dazu einfach die Datei wie ein
gewhnliches Programm im Programmstart-Dialog ein und kreuzen Sie "mit
Parameterbergabe" an. Dies ist brigens der einzige Schalter, der fr
OBJ-Files ausgewertet wird.

Die Extension fr die Objektdateien kann ber die Environmentvariable
$LTLEXT eingestellt werden (die aber per Default schon auf "obj"
steht). Dadurch kann die die LTL-Schnittstelle kann auch fr andere
Programmiersprachen verwendet werden, die ein Load-Time-Linking
untersttzen. Eine Beschreibung findet sich in der Datei LTLPROTO.HYP.



D  Protokolle
*************

Chatwin kann ber eine Vielzahl von Protokollen mit anderen Programmen
kommunizieren. Im einzelnen sind dies:

 D.1  VA-Protokoll
 D.2  SE-Protokoll
 D.3  XAcc-Protokoll
 D.4  View-Protokoll
 D.5  Drag&Drop
 D.6  Document-History-Protokoll


D.1  VA-Protokoll
=================

Das VA-Protokoll (oft auch AV-Protokoll genannt) wurde von dem
alternativen Desktop Gemini eingefhrt. ber dieses Protokoll knnen
Dateinamen und Kommandos zwischen dem Desktop und anderen Prozessen
ausgetauscht werden. Dieses Protokoll wird mittlerweile von vielen
Programmen und einigen weiteren Desktops (und natrlich auch von
Chatwin) untersttzt.


AV-Server

Voraussetzung ist, neben der Untersttzung des Protokolls durch die
beteiligten Programme, da eines der Programme (normalerweise der
Desktop) als sogenannter AV-Server fungiert. Chatwin versucht zwar
selbstndig, einen AV-Server zu finden, aber das beste wird sein, wenn
Sie sich schon beim Hochfahren des Rechners eine Environmentvariable
$AVSERVER anlegen lassen (z.B. mit einem geeigneten Programm fr den
AUTO-Ordner), die den Namen des AV-Servers enthlt.


Andere Aktionen

Neben dem Drag&Drop werden Dateinamen meist ber die Nachricht
VA_START bergeben, die Chatwin ebenfalls versteht. Die Reaktion von
Chatwin auf diese Nachricht hngt von der Art der bergebenen Datei
ab:

    Takefiles werden ausgefhrt

    SET-Files werden geladen

    bei allen anderen Dateiarten wird der Dateiname als neuer Name
     fr den aktuellen Quelltext bernommen

Viele (leider noch nicht alle) AV-Server untersttzen auch die
Mglichkeit, die Funktion "Fenster wechseln" applikationsbergreifend
auszufhren, d.h. da mit der Tastenkombination [Control][W] zwischen
allen offenen Fenstern aller beteiligten Programme umgeschaltet werden
kann. Wenn Chatwin einen AV-Server erkennt, fhrt er das Umschalten
zwischen seinen Fenstern daher nicht mehr selbst aus, sondern
beauftragt den AV-Server damit.


D.2  SE-Protokoll
=================

Das sogenannte SE-Protokoll ("Shell-Editor-Protokoll") ist eine
relativ neue Mglichkeit, ber die ein Editor mit einer Shell (z.B.
Chatwin) kommunizieren kann. Gedacht ist dies hauptschlich fr
Multitasking-Systeme, es wre aber auch unter SingleTOS anwendbar,
wenn der Editor als Accessory luft.

Die Idee bei diesem Protokoll ist, da man vom Editor aus bestimmte
Funktionen in der Shell auslsen kann. Umgekehrt braucht die Shell den
Editor nicht immer neu zu starten, sondern sie teilt einem parallel
laufenden Editor ber AES-Nachrichten mit, welche Dateien er laden
soll.

Chatwin untersttzt das komplette SE-Protokoll Version 1.04 mit den
folgenden Nachrichten:

    Nachrichten der Shell an den Editor:

      SE_INIT       Kontaktaufnahme mit Editoren
      SE_OK         Besttigungsmeldung auf ES_INIT
      SE_ACK        allgemeine Besttigungsmeldung
      SE_OPEN       Editor soll Datei ffnen
      SE_ERROR      Datei und Fehlermeldung werden an Editor bergeben
      SE_ERRFILE    Editor soll Fehlerdatei laden, siehe errfile
      SE_PROJECT    Projektdatei [Takefile] wurde gewechselt
      SE_TERMINATE  Editor soll sich beenden
      SE_QUIT       Shell beendet die Kommunikation
      SE_CLOSE      Editor soll seine Dateien schlieen
      SE_MENU       Textvorschlge fr Meneintrge des Editors

    Nachrichten des Editors an die Shell:

      ES_INIT      Kontaktaufnahme mit Shells
      ES_OK        Besttigungmeldung auf SE_INIT
      ES_ACK       allgemeine Besttigungsmeldung
      ES_COMPILE   Shell soll Datei an den Compiler bergeben
      ES_MAKE      Makefile - bzw. bei Chatwin: Takefile - starten
      ES_MAKEALL   "Make all" auslsen, siehe Anmerkungen
      ES_LINK      Shell soll Datei an den Linker bergeben
      ES_EXEC      neues Programm starten
      ES_MAKEEXEC  Programm erzeugen und starten
      ES_PROJECT   Shell soll Projektdatei [Takefile] wechseln
      ES_QUIT      Editor beendet die Kommunikation


Anmerkungen:

    Damit die Kommunikation mit dem Editor klappt, mu im
     Programmstart-Dialog der Punkt "parallel starten" fr den von
     Ihnen verwendeten Editor angekreuzt sein.

    Wenn bei der Nachricht ES_MAKE kein Dateiname eines Takefiles
     bergeben wird, dann startet Chatwin das Default-Takefile, d.h.
     dasjenige, das im Take-Men mit einem Hkchen markiert ist.

    Mit der Nachricht ES_MAKEALL soll ein "make all" ausgelst
     werden, d.h. es sollen alle Quelltexte neu bersetzt werden. Da
     Chatwin eine solche Funktion nicht anbieten kann, wird
     stattdessen ein Takefile gestartet (wie bei ES_MAKE) und diesem
     als Parameter das Wrtchen "all" bergeben. Es bleibt dann dem
     Takefile berlassen, dies entsprechend auszuwerten.

    Bei den Nachrichten ES_EXEC und ES_MAKEEXEC wird versucht, das
     Programm zum aktuellen Quelltext zu starten. Dabei werden die
     Variablen $PRGPATH und $PRGEXT ausgewertet, d.h. es wird
     versucht, das Programm $PRGPATH\%%.$PRGEXT zu starten. Wenn
     $PRGPATH nicht gesetzt ist, wird versucht, das Programm %.$PRGEXT
     zu starten.

    Wenn das Setting gewechselt wird, bekommt der Editor die
     Nachricht SE_CLOSE (alle Dateien schlieen und ggfs. speichern),
     da mit dem Setting normalerweise auch der Quelltext gewechselt
     wird.

    Als Projektdatei bzw. Makefile verwendet Chatwin Takefiles. Wenn
     das Default-Takefile gewechselt wird, wird dies dem Editor mit
     der Nachricht SE_PROJECT mitgeteilt. Umgekehrt kann vom Editor
     aus das Default-Takefile ber ES_PROJECT gewechselt werden, z.B.
     ber den Menpunkt "Makefile" in qed.

    Die Nachricht SE_ERROR wird von Chatwin sowohl fr Fehler in
     Takefiles verwendet (siehe unter "Takefiles finden"), als auch
     bei einem Doppelklick auf eine Fehlermeldung, die ein Compiler in
     die Console ausgegeben hat (siehe unter "Format der
     Fehlermeldungen").

Der Editor Everest untersttzt ab der Version 3.5 das SE-Protokoll,
der Editor qed ab der Version 3.30.


D.3  XAcc-Protokoll
===================

Das XAcc-Protokoll diente ursprnglich zur Kontaktaufnahme zwischen
Accessories und dem Hauptprogramm unter SingleTOS (wo dies sonst nur
dann mglich ist, wenn man den genauen Namen des jeweils anderen
Prozesses kennt). Aber auch unter modernen Multitasking-Systemen ist
es sinnvoll, da es Informationen liefern kann, die man andernfalls
nicht bekommt (z.B. den Typ eines Programms, d.h. ob es sich um einen
Editor oder eine Shell oder ... handelt). Zudem ermglicht es auch den
Austausch von Daten (Tastendrcke, Texte und Bilder).

Das XAcc-Protokoll kennt drei Gruppen (Stufen): Gruppe 0 dient nur zur
Kontaktaufnahme (und evtl. Bekanntgabe des Programmtyps), Programme
der Gruppe 1 knnen Tastendrcke und Texte, Programme der Gruppe 2
auch Bilder und Metafiles austauschen.

Chatwin untersttzt XAcc Gruppe 1, sowie die XDSC-Infos (d.h. die
Angabe des Programmtyps). Bei verschiedenen Aktionen macht Chatwin
seinerseits Gebrauch von den XDSC-Infos anderer Programme, so z.B. bei
der Kommunikation mit einem Fontselektor oder einem Dateiviewer.

Ein Text, der ber das XAcc-Protokoll an Chatwin geschickt wird (mit
der Nachricht ACC_TEXT) wird von Chatwin als auszufhrendes Takefile
angesehen und dementsprechend behandelt, d.h. ausgefhrt.

Wenn in der Console ein Block aufgezogen worden ist, so kann dieser
mit der Maus "gegriffen" und an ein anderes Programm versendet werden,
das ebenfalls XAcc Gruppe 1 (oder hher) beherrscht (wenn das
Betriebssystem Drag&Drop beherrscht, wird Chatwin allerdings
versuchen, den Block ber das Drag&Drop-Protokoll zu bermitteln).


D.4  View-Protokoll
===================

Das View-Protokoll regelt die Kommunikation mit einem externen
Programm zum Anzeigen von Dateien, einem sogenannten Dateiviewer. Dazu
wird zunchst natrlich ein Dateiviewer bentigt, der dieses Protokoll
untersttzt, z.B. das Programm Zeig's mir. Zur Kontaktaufnahme mit
diesem Programm mu es parallel zu Chatwin (oder als Accessory) laufen
und sich Chatwin gegenber als View-Protokoll-fhig zu erkennen
gegeben haben. Findet sich kein solches Programm, wird Chatwin
versuchen, eines nachzustarten.

Wenn Chatwin eine Datei anzeigen soll (ber den Menpunkt `Anzeigen'
oder ber den more-Befehl), dann geht er wie folgt vor:

  1. Test, ob das Programm, das im Einstellungen-Dialog angemeldet
     wurde, bereits luft

  2. Suche nach einer Variablen $View und, falls vorhanden, nach dem
     darin angegebenen Programm

  3. Suche nach einem Cookie "View" und, falls vorhanden, nach dem
     darin angegebenen Programm

  4. Suche nach einer Variablen $SHSHOW und, falls vorhanden, nach dem
     darin angegebenen Programm

Lt sich durch einen dieser vier Punkte ein Programm finden, das
bereits luft und das View-Protokoll versteht, so wird es mit dem
Anzeigen der Datei beauftragt. Luft noch keines dieser Programme, so
werden die Punkte 1-4 nun erneut abgearbeitet, diesmal wird aber
versucht, das jeweilige Programm selbst zu starten. Nur im
allergrten Notfall, d.h. wenn keine Programme angegeben sind oder
gestartet werden konnten, wird Chatwin die Datei selbst anzeigen.
Chatwin kann allerdings nur Textdateien anzeigen.

Anmerkung: Der erste Punkt ist eine Chatwin-eigene Erweiterung des
View-Protokolls.

Tip: Wenn Ihr bevorzugter Dateiviewer das View-Protokoll beherrscht,
dann sollten Sie ihn in der Variablen $View anmelden, andernfalls in
$SHSHOW.


D.5  Drag&Drop
==============

Drag&Drop wird von Chatwin sowohl ber das VA-Protokoll als auch ber
das "echte" Drag&Drop-Protokoll von MultiTOS untersttzt. In beiden
Fllen ist ein Multitaskingsystem Voraussetzung. Fr das MultiTOS-
Drag&Drop wird ein System bentigt, das ber Pipes verfgt, also z.B.
MultiTOS, MagiC ab Version 3 (oder auch MagiCMac oder MagiC PC) oder
N.AES.

Gemeinsam ist beiden Drag&Drop-Protokollen die prinzipielle
Vorgehensweise: Icons werden mit der Maus gegriffen und auf Fenster
anderer Programme oder auf andere Icons gezogen, wodurch eine Aktion
ausgelst wird. Whrend das VA-Protokoll aber nur die Namen des Icons
bergibt, werden beim MultiTOS-Protokoll normalerweise die Daten, die
das Icon reprsentiert, bergeben. Erst wenn sich Sender und Empfnger
nicht ber die Art der bergebenen Daten einigen knnen, wird
stattdessen ein Name bergeben.

Folgende Drag&Drop-Mglichkeiten bietet Chatwin an:

    Console:

        - Werden Icons auf die Chatwin-Console gezogen, so wird deren
          Name an der aktuellen Cursorposition in die Kommandozeile
          eingefgt.

        - Textdaten, die auf die Console gezogen werden, werden als
          Takefiles behandelt und ausgefhrt.

        - Sollte ein Sender ein Settingfile bergeben (mir ist
          allerdings kein derartiges Programm bekannt), so wird dieses
          Setting bernommen.

        - Textblcke, die in der Console aufgezogen wurden, knnen per
          Drag&Drop an andere Programme (z.B. Texteditoren) bergeben
          werden.

    Dateiliste:

        - Werden Icons auf die Dateiliste gezogen, so wird deren Name
          in die Dateiliste eingefgt.

        - Eintrge der Dateiliste knnen per Drag&Drop an andere
          Programme bergeben werden, wobei hier nur der Name
          bergeben wird.

Was andere Programme mit den bergebenen Daten bzw. Dateinamen
anfangen, hngt natrlich von der jeweiligen Anwendung ab.


D.6  Document-History-Protokoll
===============================

Das Document-History- oder kurz DHST-Protokoll hat das Ziel einer
Verwaltung aller zuletzt benutzten Dokumente durch einen zentralen
Server, z.B. das Programm StartMeUp (SMU), mit dem es in Version 7.01
eingefhrt wurde. SMU bietet dazu die 10 zuletzt benutzten Dokumente
in einen Popup an. Klickt man eines dieser Dokumente an, wird
automatisch das zugehrige Programm gestartet und diesem wird das
ausgewhlte Dokument bergeben.

Chatwin bergibt dem DHST-Server alle Settings, die ber den Menpunkt
`Setting laden' (aus dem Optionen-Men) geladen wurden, sowie alle
Takefiles, die ber den Menpunkt `anderes' im Take-Men gestartet
werden.



E  IFormats-Paket
*****************

Das IFormats-Paket von Martin Osieka besteht aus drei CPXen (Modulen
fr das modulare Kontrollfeld XControl von Atari), in denen man
einstellen kann, wie Datums-, Uhrzeit- und Zahlenangaben formatiert
werden sollen. Die CPXe kennen bereits die Standardeinstellungen fr
verschiedene Lnder (so wird z.B. der 14. August 1996 in Deutschland
als 14.08.1996 notiert, in den USA dagegen als 8/14/1996), man kann
sich aber auch eigene Ausgabeformate definieren.

Wenn diese CPXe installiert sind, bernimmt Chatwin die dort
eingestellte Formatierung fr alle Ausgaben von Datums-, Uhrzeit- und
Zahlenangaben, z.B. beim Befehl ls oder im Dialog `Datei-Information'.

Das IFormats-Paket ist z.Z. leider noch nicht fertig. Es existiert
jedoch eine ffentliche Beta-Version, die privat (aber nicht ber
Mailboxen) weitergegeben werden darf.

Bezugsquelle: Maus OF2, Tel. 06103-921170, Gruppenprogrammteil WINX,
Dateiname IFORMAT?.LZH (Das Fragezeichen steht fr die Versionsnummer,
z.Z. "1").

Diese Version ist bereits voll funktionsfhig und wird auch
hoffentlich bald durch eine "offizielle" Version abgelst.


