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 Pro-
gramm  startet,  hngt  sehr  stark vom verwendeten Betriebssystem ab.
Dieser  Abschnitt  soll  einige  Hintergrnde  und Probleme dabei auf-
zeigen.


* 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 vorberge-
hend aus dem Blickfeld  (aber nicht aus dem Speicher).  Nach der Rck-
kehr  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-Program-
men  wird  unter SingleTOS abgefangen und in das ConsoleCLI.TXT-Fenster umge-
lenkt.  Dabei macht sich Chatwin zunutze,  da eben immer nur ein Pro-
gramm (egal ob TOS oder GEM) laufen kann.  Fr den flchtigen Betrach-
ter  sieht es so aus,  als wrden Chatwin und das TOS-Programm gleich-
zeitig  laufen,  oder  als wre das TOS-Programm ein Teil von Chatwin.
Erst  bei  genauerem  Hinsehen bemerkt man das Fehlen der Maus und der
Slider am Console-Fenster.


* MultiTOS

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

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 be-
stimmter  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, da dann dafr Sorge zu tragen hat,
da ein geeignetes Programm die Ausgaben des TOS-Programms in ein Fen-
ster umlenkt. Unter MTOS existieren dafr mehrere Programme, z.B. TOS-
WIN und MINIWIN.

Ein  generelles Problem unter MultiTOS ist das Vererben eines Environ-
ments an ein nachgestartetes Programm.  Soll ein GEM-Programm oder ein
parallel ablaufendes TOS-Programm gestartet werden, so wird ein spezi-
eller  Mechanismus  verwendet,  der  eigentlich das Environment an den
neuen Proze weitergeben soll.  Tatschlich funktioniert dies aber bei
allen z.Z. 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 funk-
tioniert dagegen wie unter SingleTOS, d.h. Chatwin schliet alle seine
Fenster.


* Mag!X

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

Durch das Fehlen von Pipes ist Chatwin gezwungen,  TOS-Programme unter
Mag!X immer von dem dort mitgelieferten Programm VT52.PRG ausfhren zu
lassen.  Dabei kann jedoch, wie erwhnt, kein Environment vererbt wer-
den,  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-par-
allel  gestartet.  Dies blockiert zwar whrend ihrer Laufzeit Chatwin,
jedoch ist dies die z.Z. einzige Mglichkeit, das Environment an ande-
re Programme weiterzugeben.

Fr  knftige Mag!X-Versionen sind erfreulicherweise Lsungen fr die-
ses Problem, sowie Pipes angekndigt worden.


* 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.

Das Betriebssystem MultiGEM wird nicht untersttzt.


* Allgemeines

Wollen Sie,  wie weiter oben erwhnt, ein Programm (unter einem Multi-
tasking-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
`ProgrammstartDIALOG\APPLOPT.TXT'  einzutragen  und den Punkt  "parallel starten"  anzu-
kreuzen.

Wenn Chatwin ein Programm parallel startet, kehrt er sofort wieder zu-
rck  und ist bereit,  weitere Eingaben entgegenzunehmen.  Nhere Aus-
knfte  ber  das  "Schicksal" eines so gestarteten Programms erhalten
Sie mit dem Befehl pwaitMAN\PWAIT.MAN.

Unter  Single- und MultiTOS sowie unter MiNT versucht Chatwin,  den in
seinem  Console-Fenster  ablaufenden  TOS-Programmen ber die Environ-
mentvariablen  $LINESENVVAR.TXT,  $COLUMNSENVVAR.TXT und $ROWSENVVAR.TXT die aktuelle Gre des Con-
sole-Fensters mitzuteilen.  Programme,  die sich an diese Angaben hal-
ten,  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 gn-
gigen  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 Pro-
gramme  verzichten  oder  sich  mit dem jeweiligen Autor in Verbindung
setzen.
