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.9.1 Kontaktaufnahme TOS Die Kontaktaufnahme läuft wie folgt ab: Die Shell verschickt nach dem Start die Nachricht SE_INIT. Als Antwort erhält sie darauf die Nachricht ES_OK. Aus den Bitfeldern in den bei- den Nachrichten kann die Shell nun ableiten, welche Kommandos sie an den Editor schicken kann und welche Kommandos vom Editor zu erwarten sind. Wenn die Shell nicht mehr am SE-Protokoll teilnehmen will (z.B. weil sie beendet wird), dann schickt sie die Nachricht SE_QUIT an den Editor. Der Editor verschickt nach dem Start die Nachricht ES_INIT. Als Ant- wort erhält sie darauf die Nachricht SE_OK. Aus den Bitfeldern in den beiden Nachrichten kann der Editor nun ableiten, welche Kommandos er an die Shell schicken kann und welche Kommandos von der Shell zu er- warten sind. Wenn der Editor nicht mehr am SE-Protokoll teilnehmen will (z.B. weil er beendet wird), dann schickt er die Nachricht ES_QUIT an die Shell. Bleibt die Frage, an wen Shell und Editor diese Nachrichten schicken sollen. Das SE-Protokoll ist sinnvoll am ehesten unter einem Multitasking-System einsetzbar, dort wird normalerweise die AES- Funktion appl_search() zur Verfügung stehen. Shell und Editor sollten also einfach ihre jeweilige Init-Nachricht an alle Prozesse (außer an Systemprozesse) schicken. Andere Möglichkeiten: ∙ Wenn die Shell den Namen ihres Editors kennt, kann sie sich na- türlich auch darauf beschränken, SE_INIT nur an diesen zu schicken. ∙ Wenn die Funktion appl_search() nicht zur Verfügung steht, bietet sich das XAcc-Protokoll zur Kontaktaufnahme an: Shell und Editor sollten ihre Init-Nachrichten dann einfach an jeden Prozeß schicken, der sich per XAcc anmeldet. Das XAcc-Protokoll sieht außerdem noch eine maschinenlesbare Kennung des Programmtyps (XDSC) vor, so daß man u.U. sogar erkennen kann, ob es sich bei dem Kommunikationspartner um eine Shell (Kennung `PE' für "Pro- gramming Environment") oder um einen Editor (Kennung `ED' für "Text Editor") handelt.