•  Back 
  •  LTL-Protokoll 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File15.7.5  Beispiel: Chatwin und STJ-Oberon-2                         TOS

Als Beispiel soll hier kurz aufgeführt werden, wie Chatwin (Shell) und 
STJ-Oberon-2 (Loader) das LTL-Protokoll implementieren:

   ∙ Der Oberon-Loader richtet den OBNL-Cookie ein und startet dann 
     Chatwin nach.

   ∙ Chatwin erkennt am Vorhandensein des Cookies, daß LTL gewünscht 
     ist und meldet sich mit dem Aufruf CL_INIT beim Loader an. Dabei 
     übergibt Chatwin einen Zeiger auf eine Funktion, über die der 
     Loader wiederum Aktionen in Chatwin auslösen kann.

   ∙ Wann immer Chatwin nun angewiesen wird, eine Datei mit der Exten- 
     sion *.OBJ zu starten, übergibt er diese Datei und die evtl. 
     übergebenen Parameter mittels der Nachricht CL_COMMAND an den 
     Loader.

     Der Loader muß nun das Programm starten. Handelt es sich um ein 
     TOS-Programm, so kann er die Ausgaben dieses Programms über die 
     Nachrichten LC_WRCHAR und LC_WRSTR in das Console-Fenster von 
     Chatwin ausgeben lassen. Handelt es sich um ein GEM-Programm, so 
     kann der Loader Chatwin unter SingleTOS dazu auffordern, alle 
     seine Fenster zu schließen (Nachricht LC_CLOSEWIN), bevor das 
     Programm gestartet wird.

     Anmerkung: Chatwin erkennt anhand der Extension, ob für eine 
     Datei ein Load-Time-Linking durchzuführen ist. In älteren Versi- 
     onen ist die Extension *.OBJ fest vorgegeben, ab Chatwin 3.04 
     kann die Extension in der Environmentvariablen $LTLEXT angegeben 
     werden. Dadurch ist Chatwin auch für andere Sprachen gerüstet, 
     die nicht *.OBJ als Extension für die Objektfiles verwenden.

   ∙ Wenn längere Zeit keine Benutzereingaben und auch keine sonstigen 
     Aufgaben anliegen, gibt Chatwin Zeit an den Loader ab, indem er 
     die Nachricht CL_TIME schickt. Der Loader kann dadurch bestimmte 
     Aufgaben im Hintergrund erledigen.

   ∙ Für das Programmende gibt es kein spezielles Protokoll: Wenn 
     Chatwin beendet wird, beendet sich auch der Loader.