•  Back 
  •  Inhalt 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  helpme 
  •  Show info about hypertext 
  •  View a new file 
Topic       : Dokumentation zu TOS2GEM
Author      : Thomas Binder
Version     : tos2gem.hyp (21/06/95)
Subject     : Dokumentation/Utilities
Nodes       : 62
Index Size  : 1740
HCP-Version : 3
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : helpme
@options    : -i +zz -t4
@width      : 75
View Ref-File
Rechner der TOS-Familie unterstützen  zwei  verschiedene  Programmtypen:
GEM-Applikationen (mit den Endungen .APP, .GTP oder .PRG)  und  TOS-Pro-
gramme (.TOS und .TTP).  Erstere  arbeiten  mit  Menüleisten,  Fenstern,
etc., Programme der zweiten Gattung hingegen laufen  nur  im  Textmodus,
benutzen die Oberfläche GEM also nicht.

Programme der zweiten Art, die man im täglichen Gebrauch benötigt,  gibt
es einige, z.B.  Packer,  Compiler  (GNU C)  oder  TeX.  Ihre  Bedienung
erfolgt meist über viele Kommandozeilenoptionen, die man sich kaum  alle
merken kann. Daher gibt es für viele dieser  Programme  sogenannte  GEM-
Shells, die die komfortable  Benutzung  bestimmter  TOS-Programme  unter
Ausnutzung der Möglichkeiten von  GEM  ermöglichen.  Bekannte  Vertreter
dieser Sorte sind z.B. die Packer-Shell Two-in-One oder die POVShell für
den Raytracer POV-Ray.

Programmierer solcher Shells stehen nun vor dem Problem, was sie mit den
Ausgaben der TOS-Programme machen  sollen,  denn  im  Normalfall  werden
diese gnadenlos auf  den  Bildschirm  geschrieben,  ohne  Rücksicht  auf
dessen Inhalt.

Eine Möglichkeit ist es, die Ausgabe in eine Datei  umzulenken  und  sie
erst im Anschluß in einem Fenster  darzustellen.  Dies  ist  jedoch  nur
bedingt tauglich, denn das  Verfahren  versagt,  wenn  das  TOS-Programm
irgendwann Tastatureingaben erwartet: Der Anwender merkt  davon  nichts,
da er die dazugehörige Ausgabe ja noch nicht gesehen hat.

Eine zweite Vorgehensweise besteht darin, für  die  TOS-Programme  einen
eigenen Bildschirm zur Verfügung zu stellen, auf dem sie  sich  austoben
dürfen. Doch auch dies ist nicht ohne Nachteile: Das Bereitstellen eines
zweiten Bildschirms klappt z.B. nicht, wenn mit einer Grafikkarte  gear-
beitet wird, die eigenes RAM für den Bildschirm benutzt. Außerdem  sieht
es auch nicht gerade elegant aus,  wenn  plötzlich  ein  komplett  neuer
Bildschirm erscheint, und eine Möglichkeit, an  bereits  "weggescrollte"
Ausgaben zu kommen, gibt es auch nicht.

Die beste Möglichkeit jedoch besteht darin, die Ausgabe der Programme in
ein Fenster umzulenken. Damit sind alle Wünsche  erfüllt:  Der  Anwender
sieht, was das Programm im Moment ausgibt, es wird kein separater  Bild-
schirm benöigt und bei Bedarf läßt sich ein Puffer für  ältere  Ausgaben
einrichten. Allerdings läßt sich dies nur durch Änderung von System-Vek-
toren bewerkstelligen, was für Applikationen eigentlich tabu ist.

Genau hier setzt TOS2GEM an: TOS2GEM ist ein kleines  Programm  für  den
AUTO-Ordner, das sich in die entsprechenden Vektoren einhängt und  einen
Cookie anlegt, über den es von GEM-Applikationen  benutzt  werden  kann.
Dabei beeinflußt TOS2GEM die Ausgabe von TOS-Programmen nur  dann,  wenn
es über den Cookie explizit dazu aufgefordert wurde. Benötigt  ein  Pro-
gramm die Dienste von TOS2GEM nicht mehr, erscheinen TOS-Ausgaben wieder
wie gewohnt direkt auf dem Bildschirm.

Die Ausgabeumlenkung wird dabei wie folgt realisiert: Ein frei  bestimm-
barer Ausschnitt des Grafikbildschirms wird als Ersatz für einen zweiten
Bildschirm benutzt, auf den dann die Ausgaben  per  VDI  erfolgen.  Dazu
legt das Programm, das TOS2GEM benutzt, vorher ein GEM-Fenster an,  des-
sen  Arbeitsfläche genau diesem Ausschnitt entspricht; damit  erscheinen
die Ausgaben der TOS-Programme sauber in diesem Fenster.

Die Vorteile für den Programmierer auf einen Blick:
- saubere Möglichkeit, TOS-Ausgaben in ein Fenster zu lenken
- einfache Benutzung, man spart sich viel Programmierarbeit für eine ei-
  gene Ausgabeumlenkung
- TOS2GEM ist sehr flexibel, es kann mit allen nicht-proportionalen Zei-
  chensätzen in beliebiger Größe arbeiten, simuliert Textbildschirme der
  unterschiedlichsten Ausmaße (also nicht nur langweilige 80x25), clippt
  bei Bedarf und unterstützt auch Textbildschirme, von denen nur ein ge-
  wisser Ausschnitt sichtbar ist
- vollständige VT52-Emulation (optional mit Farbsequenzen)
- beliebig großer Textpuffer für "Scrollback"