Dokumentation zum SE-Protokoll Version 1.05 04.01.1998 von Dirk Haun Europastr. 8 D-64569 Nauheim Dirk Haun @ WI2 Inhaltsverzeichnis ================== 1 Einleitung 1.1 Kontaktaufnahme 1.2 Anmerkungen 2 Nachrichten der Shell an den Editor 2.1 SE_INIT 2.2 SE_OK 2.3 SE_ACK 2.4 SE_OPEN 2.5 SE_ERROR 2.6 SE_ERRFILE 2.7 SE_PROJECT 2.8 SE_QUIT 2.9 SE_TERMINATE 2.10 SE_CLOSE 2.11 SE_MENU 3 Nachrichten des Editors an die Shell 3.1 ES_INIT 3.2 ES_OK 3.3 ES_ACK 3.4 ES_COMPILE 3.5 ES_MAKE 3.6 ES_MAKEALL 3.7 ES_LINK 3.8 ES_EXEC 3.9 ES_MAKEEXEC 3.10 ES_PROJECT 3.11 ES_QUIT 3.12 ES_SHLCTRL 4 History 5 Autoren und Programme 1 Einleitung ************* Sinn des SE-Protokolls ist die Kommunikation zwischen Shells zur Pro- grammentwicklung und Editoren, daher auch der Name: Shell-Editor-Pro- tokoll. Dieses Protokoll dient dazu, unter Multitasking-Systemen die Shell vom Editor aus zur Compilierung und „hnlichen Aktionen zu veranlassen, und um von der Shell Fehlermeldungen und/oder Fehlerdateien an den Editor zurckzugeben. Kommandos bzw. Nachrichten von der Shell an den Editor beginnen mit SE_, Nachrichten vom Editor an die Shell beginnen mit ES_. Die aktuelle Versionsnummer des Protokolls ist 1.05. 1.1 Kontaktaufnahme ==================== 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 Multi- tasking-System einsetzbar, dort wird normalerweise die AES-Funktion appl_search() zur Verfgung stehen. Shell und Editor sollten also ein- fach ihre jeweilige Init-Nachricht an alle Prozesse (aužer an System- prozesse) schicken. Andere M”glichkeiten: ù Wenn die Shell den Namen ihres Editors kennt, kann sie sich na- trlich auch darauf beschr„nken, SE_INIT nur an diesen zu schik- ken. ù Wenn die Funktion appl_search() nicht zur Verfgung steht, bietet sich das XAcc-Protokoll zur Kontaktaufnahme an: Shell und Editor sollten ihre Init-Nachrichten dann einfach an jeden Prozež schik- ken, der sich per XAcc anmeldet. Das XAcc-Protokoll sieht aužer- dem noch eine maschinenlesbare Kennung des Programmtyps (XDSC) vor, so daž man u.U. sogar erkennen kann, ob es sich bei dem Kom- munikationspartner um eine Shell (Kennung `PE' fr "Programming Environment") oder um einen Editor (Kennung `ED' fr "Text Edi- tor") handelt. 1.2 Anmerkungen ================ Wenn im folgenden von einer "Nachricht" die Rede ist, dann ist damit eine AES-Nachricht gemeint, die aus 8 Worten (Integers) besteht und mit der AES-Funktion appl_write() verschickt wird. Das erste Wort ent- h„lt jeweils die Nummer der Nachricht, das zweite die Applikations-ID des Absenders, das dritte ist immer Null. Die Belegung der anderen Worte ist von der jeweiligen Nachricht abh„ngig. Worte, fr die keine Belegung angegeben wird, sind auf Null zu setzen. Bitte beachten: Da die Z„hlung bei 0 beginnt, ist mit "Wort 3" im fol- genden das vierte Wort gemeint! Zur Verdeutlichung nochmals in C: int msg[8]; msg[0] = SE_ACK; /* Nachricht */ msg[1] = gl_apid; /* ID des Absenders */ msg[2] = 0; /* 0, d.h. keine šberl„nge */ msg[3] = TRUE; /* dies ist "Wort 3" */ msg[4] = msg[5] = msg[6] = msg[7] = 0; /* Rest auf Null */ appl_write (editor, 16, msg); /* abschicken */ Wenn in einer Nachricht ein Zeiger (d.h. eine Adresse) enthalten ist, dann wird das obere Wort der Adresse im ersten und das untere Wort im zweiten der angegebenen Worte bergeben. Bei den Zeigern auf Speicherbereiche ist vom jeweiligen Absender der Nachricht darauf zu achten, daž diese Speicherbereiche vom Empf„nger auch lesbar sind (Memory Protection!). Dafr sind diese als "Readable" zu allozieren! Das geschieht ber den Gemdos-Aufruf Mxalloc(). Bei einigen Nachrichten k”nnen Zeilen- und Spaltennummern fr eine Cursorposition bergeben werden. Da es unterschiedliche Auffassungen darber gibt, ob Zeilen und/oder Spalten ab Null oder ab Eins gez„hlt werden, wird empfohlen, diese Angaben vor der šbernahme zu berprfen und ggfs. zu korrigieren. Wenn der Editor seine Zeilen also ab Eins z„hlt, dann sollte ihn die Zeilennummer Null nicht aus der Fassung bringen, sondern er sollte sie wie Zeile Eins behandeln. 2 Nachrichten der Shell an den Editor ************************************** Die Shell kann folgende Nachrichten bzw. Kommandos an den Editor sen- den: Nachricht Nummer ---------------------- SE_INIT 0x4200 SE_OK 0x4201 SE_ACK 0x4202 SE_OPEN 0x4203 SE_ERROR 0x4204 SE_ERRFILE 0x4205 SE_PROJECT 0x4206 SE_QUIT 0x4207 SE_TERMINATE 0x4208 SE_CLOSE 0x4209 SE_MENU 0x420A 2.1 SE_INIT ============ Die Shell fragt an, ob ein Editor das SE-Protokoll versteht. Aufbau der Nachricht Wort 3: Ein Bitset, welche Nachrichten die Shell versendet: Nachricht Bit Hex-Wert ---------------------------- SE_INIT 0 0x0001 SE_OK 1 0x0002 SE_ACK 2 0x0004 SE_OPEN 3 0x0008 SE_ERROR 4 0x0010 SE_ERRFILE 5 0x0020 SE_PROJECT 6 0x0040 SE_QUIT 7 0x0080 SE_TERMINATE 8 0x0100 SE_CLOSE 9 0x0200 SE_MENU 10 0x0400 Wort 4+5: Ein Bitset, welche Editorkommandos verstanden werden Nachricht Bit Hex-Wert --------------------------- ES_INIT 0 0x0001 ES_OK 1 0x0002 ES_ACK 2 0x0004 ES_COMPILE 3 0x0008 ES_MAKE 4 0x0010 ES_MAKEALL 5 0x0020 ES_LINK 6 0x0040 ES_EXEC 7 0x0080 ES_MAKEEXEC 8 0x0100 ES_PROJECT 9 0x0200 ES_QUIT 10 0x0400 ES_SHLCTRL 11 0x0800 Hinweis: Wort 4 und 5 bilden zusammen ein Langwort. Da fr die bisher definierten Nachrichten aber nur 12 Bits ben”tigt werden, ist Wort 4 normalerweise Null. Wort 6: Untersttzte Versionsnummer des Protokolls als BCD-Zahl, also 0x0105 (hexadezimal) fr Version 1.05 Antwort Der Editor antwortet mit der Nachricht ES_OK. siehe auch: ES_OK, SE_QUIT 2.2 SE_OK ========== Die Shell sagt dem Editor, daž sie das Protokoll versteht. Aufbau der Nachricht Wort 3: Ein Bitset, welche Nachrichten die Shell versendet: Nachricht Bit Hex-Wert ---------------------------- SE_INIT 0 0x0001 SE_OK 1 0x0002 SE_ACK 2 0x0004 SE_OPEN 3 0x0008 SE_ERROR 4 0x0010 SE_ERRFILE 5 0x0020 SE_PROJECT 6 0x0040 SE_QUIT 7 0x0080 SE_TERMINATE 8 0x0100 SE_CLOSE 9 0x0200 SE_MENU 10 0x0400 Wort 4+5: Ein Bitset, welche Editorkommandos verstanden werden: Nachricht Bit Hex-Wert --------------------------- ES_INIT 0 0x0001 ES_OK 1 0x0002 ES_ACK 2 0x0004 ES_COMPILE 3 0x0008 ES_MAKE 4 0x0010 ES_MAKEALL 5 0x0020 ES_LINK 6 0x0040 ES_EXEC 7 0x0080 ES_MAKEEXEC 8 0x0100 ES_PROJECT 9 0x0200 ES_QUIT 10 0x0400 ES_SHLCTRL 11 0x0800 Hinweis: Wort 4 und 5 bilden zusammen ein Langwort. Da fr die bisher definierten Nachrichten aber nur 12 Bits ben”tigt werden, ist Wort 4 normalerweise Null. Wort 6: Untersttzte Versionsnummer des Protokolls als BCD-Zahl, also 0x0105 (hexadezimal) fr Version 1.05 Wort 7: Die ApId des Programmes, dessen Nachricht beantwortet wird Antwort Keine. SE_OK ist bereits die Antwort der Shell auf die Nachricht ES_INIT. 2.3 SE_ACK =========== Die Shell best„tigt den Empfang eines Editorkommandos und gibt zurck, ob das Kommando ausgefhrt wird. Aufbau der Nachricht Wort 3: TRUE : Kommando wird verstanden und ausgefhrt, FALSE: Das Kommando wird nicht verstanden Ein SE_ACK mit TRUE sagt nichts darber aus, ob das Kom- mando erfolgreich ausgefhrt wurde. Es sagt nur, daž die Shell das Kommando versteht und ausfhren wird! Antwort Keine (SE_ACK ist bereits die Antwort auf eine Nachricht). 2.4 SE_OPEN ============ Die Shell sagt dem Editor, daž er einen Text ”ffnen soll. Aufbau der Nachricht Wort 3+4: Ein Zeiger auf den Filenamen des zu ”ffnenden Files Wort 5+6: Zeile, in die der Cursor positioniert werden soll Wort 7: Spalte, in die der Cursor positioniert werden soll Antwort Als Antwort erh„lt die Shell ein ES_ACK. Hinweise: Die Angabe einer Zeilen- und Spaltennummer ist erst ab Pro- tokollversion 1.02 vorgesehen. Programme, die noch „ltere Protokoll- versionen verwenden, sollten aber eigentlich die Worte 5-7 auf Null gesetzt haben. Will man ganz sicher gehen, muž man ggfs. die bei SE_INIT bzw. SE_OK bergebene Versionsnummer der Shell abfragen. Wenn die Shell keine Positionsangabe machen kann oder will, sollte sie Zeile und Spalte auf Null setzen. 2.5 SE_ERROR ============= Es ist ein Fehler beim Compilieren aufgetreten. Aufbau der Nachricht Wort 3+4: Ein Zeiger auf eine Infostruktur, die wie folgt aufgebaut ist: typedef struct { char *errFile; /* Zeiger auf den Namen der compilierten Datei */ char *errMess; /* Zeiger auf die Fehlermeldung */ int errNum; /* Die Fehlernummer */ long errLine; /* Die fehlerhafte Zeile */ int errRow; /* Die Spalte mit dem Fehler (oder 0) */ } ERRINFO; Antwort Mit ES_ACK best„tigt der Editor die Meldung. Hinweis: Wenn die Shell keine Positionsangabe machen kann oder will, sollte sie Zeile und Spalte auf Null setzen. 2.6 SE_ERRFILE =============== Es sind Fehler aufgetreten. Die Fehlermeldungen stehen in einem Error- file, welches in der Message spezifiziert wird. Aufbau der Nachricht Wort 3+4: Ein Zeiger auf den Filenamen des Errorfiles mit den Fehlermeldungen Wort 5+6: Ein Zeiger auf den Namen des compilierten Textes Antwort Mit ES_ACK best„tigt der Editor die Meldung. 2.7 SE_PROJECT =============== Die Shell teilt dem Editor mit, daž das Projekt ge„ndert wurde. Der Filename des aktuellen Projektfiles wird als Parameter bergeben. Wird NULL bergeben, sollte das aktuelle Projekt abgemeldet werden. Eine vernnftige Reaktion des Editors w„re es in dem Fall, ebenfalls das Projekt zu wechseln, sofern er dies untersttzt. Aufbau der Nachricht Wort 3+4: Ein Zeiger auf den Namen des Projektfiles oder NULL. Antwort Der Editor best„tigt mit ES_ACK. Hinweis: Den Namen des Projektfiles auf NULL zu setzen, ist erst ab Protokollversion 1.01 vorgesehen. Die Shell sollte daher vorher ber- prfen, ob der Editor mindestens Protokollversion 1.01 untersttzt. 2.8 SE_QUIT ============ Die Shell teilt dem Editor mit, daž sie jetzt beendet wird. Der Editor sollte in dem Fall die Shell als Kommunikationspartner vergessen. Aufbau der Nachricht keine Parameter Antwort Es wird keine Antwort erwartet! 2.9 SE_TERMINATE ================= Die Shell teilt dem Editor mit, daž dieser sich beenden soll. Der Edi- tor sollte in dem Fall sich selbst beenden und seinen ganz normalen Terminierungsprozež durchlaufen (und dabei auch ein ES_QUIT verschik- ken!). Der Grund fr so eine Meldung der Shell k”nnte zum Beispiel zu wenig Speicher zum Compilieren sein. Aufbau der Nachricht keine Parameter Antwort Mit ES_ACK best„tigt der Editor die Meldung. 2.10 SE_CLOSE ============== Die Shell teilt dem Editor mit, daž dieser bestimmte Texte sichern bzw. schliežen soll. Beim Schliežen von ge„nderten Texten sollte der Editor vorher nachfragen. Aufbau der Nachricht Wort 3+4: Ein Zeiger auf den Namen einer Datei oder eine Datei- maske. "*.*" steht fr alle Textfenster (entspricht also dem SE_CLOSE der Protokollversion 1.00). Wort 5: 0 = nur sichern 1 = sichern und schliežen 2 = schliežen ohne Sichern (ab Version 1.04) Antwort Mit ES_ACK best„tigt der Editor die Meldung. Hinweis: In der Protokollversion 1.00 waren fr SE_CLOSE noch keine Parameter vorgesehen. Editoren, die nur Version 1.00 untersttzen, werden daher die Dateimasken und das Flag ignorieren und alle Texte sichern. 2.11 SE_MENU ============= Die Shell teilt dem Editor mit, was er fr die einzelnen Programme in sein Men eintragen soll. Der Editor kann somit fr die Menpunkte, die eine Aktion in der Shell ausl”sen, die gleichen Texte wie die Shell verwenden. Aufbau der Nachricht Wort 3+4: Ein Zeiger auf eine Infostruktur, die wie folgt aufgebaut ist: typedef struct { char *compStr; /* Text fr den Menpunkt "Compiler" */ char *makeStr; /* Text fr den Menpunkt "Makefile" */ char *makeAllStr; /* Text fr den Menpunkt "Make all" */ char *linkStr; /* Text fr den Menpunkt "Linker" */ char *execStr; /* Text fr den Menpunkt "Execute" */ char *makeExecStr; /* Text fr den Menpunkt "Make & Execute" */ char *progName; /* Name der Shell (ab Version 1.04) */ char *shellCtrlStr; /* Text fr den Menpunkt "Shell Control" */ /* (ab Version 1.05) */ } SEMENUINFO; Antwort Mit ES_ACK best„tigt der Editor die Meldung. Hinweise: Die Texte sind allesamt optional und k”nnen auch NULL sein, wenn die Shell keinen entsprechenden Menpunkt hat. Dies bedeutet jedoch nicht, daž die Shell nicht ber diese Funktionalit„t verfgt. Der Editor sollte daher fr alle Texte ggfs. Defaulttexte einsetzen. Diese Nachricht existiert erst ab Protokollversion 1.02. Es gengt aber der Test, ob das entsprechende Bit in ES_INIT bzw. ES_OK gesetzt ist. Beim Zugriff auf progName und shellCtrlStr muž darauf geachtet werden, daž der Kommunikationspartner diese auch schon untersttzt (Proto- kollversion testen)! 3 Nachrichten des Editors an die Shell *************************************** Der Editor kann folgende Nachrichten bzw. Kommandos an die Shell sen- den: Nachricht Nummer --------------------- ES_INIT 0x4240 ES_OK 0x4241 ES_ACK 0x4242 ES_COMPILE 0x4243 ES_MAKE 0x4244 ES_MAKEALL 0x4245 ES_LINK 0x4246 ES_EXEC 0x4247 ES_MAKEEXEC 0x4248 ES_PROJECT 0x4249 ES_QUIT 0x424A ES_SHLCTRL 0x424B 3.1 ES_INIT ============ Ein Editor fragt an, ob eine Shell das SE-Protokoll versteht. Aufbau der Nachricht Wort 3: Ein Bitset, welche Shellnachrichten verstanden werden: Nachricht Bit Hex-Wert ---------------------------- SE_INIT 0 0x0001 SE_OK 1 0x0002 SE_ACK 2 0x0004 SE_OPEN 3 0x0008 SE_ERROR 4 0x0010 SE_ERRFILE 5 0x0020 SE_PROJECT 6 0x0040 SE_QUIT 7 0x0080 SE_TERMINATE 8 0x0100 SE_CLOSE 9 0x0200 SE_MENU 10 0x0400 Wort 4+5: Ein Bitset, welche Editorkommandos versendet werden: Nachricht Bit Hex-Wert --------------------------- ES_INIT 0 0x0001 ES_OK 1 0x0002 ES_ACK 2 0x0004 ES_COMPILE 3 0x0008 ES_MAKE 4 0x0010 ES_MAKEALL 5 0x0020 ES_LINK 6 0x0040 ES_EXEC 7 0x0080 ES_MAKEEXEC 8 0x0100 ES_PROJECT 9 0x0200 ES_QUIT 10 0x0400 ES_SHLCTRL 11 0x0800 Hinweis: Wort 4 und 5 bilden zusammen ein Langwort. Da fr die bisher definierten Nachrichten aber nur 12 Bits ben”tigt werden, ist Wort 4 normalerweise Null. Wort 6: Untersttzte Versionsnummer des Protokolls als BCD-Zahl, also 0x0105 (hexadezimal) fr Version 1.05 Antwort Als Antwort erh„lt der Editor SE_OK von der Shell. 3.2 ES_OK ========== Der Editor beantwortet die Anfrage der Shell nach dem Protokoll. Aufbau der Nachricht Wort 3: Ein Bitset, welche Shellnachrichten verstanden werden: Nachricht Bit Hex-Wert ---------------------------- SE_INIT 0 0x0001 SE_OK 1 0x0002 SE_ACK 2 0x0004 SE_OPEN 3 0x0008 SE_ERROR 4 0x0010 SE_ERRFILE 5 0x0020 SE_PROJECT 6 0x0040 SE_QUIT 7 0x0080 SE_TERMINATE 8 0x0100 SE_CLOSE 9 0x0200 SE_MENU 10 0x0400 Wort 4+5: Ein Bitset, welche Editorkommandos versendet werden: Nachricht Bit Hex-Wert --------------------------- ES_INIT 0 0x0001 ES_OK 1 0x0002 ES_ACK 2 0x0004 ES_COMPILE 3 0x0008 ES_MAKE 4 0x0010 ES_MAKEALL 5 0x0020 ES_LINK 6 0x0040 ES_EXEC 7 0x0080 ES_MAKEEXEC 8 0x0100 ES_PROJECT 9 0x0200 ES_QUIT 10 0x0400 ES_SHLCTRL 11 0x0800 Hinweis: Wort 4 und 5 bilden zusammen ein Langwort. Da fr die bisher definierten Nachrichten aber nur 12 Bits ben”tigt werden, ist Wort 4 normalerweise Null. Wort 6: Untersttzte Versionsnummer des Protokolls als BCD-Zahl, also 0x0105 (hexadezimal) fr Version 1.05 Wort 7: Die ApId des Programmes, dessen Nachricht beantwortet wird Antwort Keine. ES_OK ist bereits die Antwort des Editors auf die Nachricht SE_INIT. 3.3 ES_ACK =========== Der Editor best„tigt den Empfang des Kommandos. Aufbau der Nachricht Wort 3: TRUE : Kommando wird verstanden und ausgefhrt, FALSE: Das Kommando wird nicht verstanden Ein ES_ACK mit TRUE sagt nichts darber aus, ob das Kom- mando erfolgreich ausgefhrt wurde. Es sagt nur, daž der Editor das Kommando versteht und ausfhren wird! Antwort Keine (ES_ACK ist bereits die Antwort auf eine Nachricht). 3.4 ES_COMPILE =============== Der Editor sagt der Shell, daž sie ein File bersetzen soll. Ein Zei- ger auf den Dateinamen kann in der Nachricht bergeben werden. Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen der zu compilierenden Datei oder NULL. Antwort Diese Nachricht muž mit SE_ACK best„tigt werden. Hinweis: Den Namen der zu compilierenden Datei auf NULL zu setzen, ist erst ab Protokollversion 1.03 vorgesehen. Der Editor sollte daher vorher berprfen, ob die Shell mindestens Protokollversion 1.03 untersttzt. 3.5 ES_MAKE ============ Der Editor sagt der Shell, daž sie ein Make ausfhren soll. Ein File- name kann in der Nachricht bergeben werden, muž aber nicht gesetzt sein und muž von der Shell auch nicht beachtet werden! Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen des Makefiles (oder NULL) Antwort Die Shell best„tigt mit SE_ACK. 3.6 ES_MAKEALL =============== Der Editor sagt der Shell, daž ein komplettes "Make All" ausgefhrt werden soll. Ein Filename fr das Makefile kann (muž aber nicht) in der Nachricht bergeben werden. Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen des Makefiles (oder NULL) Antwort Die Shell best„tigt mit SE_ACK. 3.7 ES_LINK ============ Der Editor sagt der Shell, daž das Programm gelinkt werden soll. Ein Filename kann in der Nachricht bergeben werden, muž aber nicht unbe- dingt von der Shell beachtet werden! Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen der Source, die gelinkt werden soll (oder NULL) Antwort Die Shell best„tigt mit SE_ACK. 3.8 ES_EXEC ============ Der Editor sagt der Shell, daž das Programm zu der Source ausgefhrt werden soll. Ein Filename kann bergeben werden, muž von der Shell aber nicht beachtet werden. Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen des auszufhrenden Files (oder NULL). Bei einer Sourcedatei ist diese ggf. noch zu compilieren und/oder zu linken Antwort Die Shell best„tigt mit SE_ACK. 3.9 ES_MAKEEXEC ================ Die Shell soll ein Make ausfhren und danach das Programm ausfhren. Ein Filename fr das Makefile kann (muž aber nicht) in der Nachricht bergeben werden. Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen des Makefiles (oder NULL) Antwort Die Shell best„tigt mit SE_ACK. 3.10 ES_PROJECT ================ Der Editor teilt der Shell mit, daž das Projekt ge„ndert/gewechselt wurde. Der Filename des Projektfiles wird als Parameter in der Nach- richt bergeben. Wird NULL bergeben, sollte das aktuelle Projekt abgemeldet werden. Eine vernnftige Reaktion der Shell w„re in dem Fall, ebenfalls das Projekt zu wechseln, sofern sie dies untersttzt. Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen des Projektfiles oder NULL Antwort Die Shell best„tigt mit SE_ACK. Hinweis: Den Namen des Projektfiles auf NULL zu setzen, ist erst ab Protokollversion 1.01 vorgesehen. Der Editor sollte daher vorher ber- prfen, ob die Shell mindestens Protokollversion 1.01 untersttzt. 3.11 ES_QUIT ============= Der Editor teilt der Shell mit, daž er jetzt beendet wird. Die Shell sollte in dem Fall den Editor als Kommunikationspartner vergessen. Aufbau der Nachricht keine Parameter Antwort Es wird keine Antwort erwartet! 3.12 ES_SHLCTRL ================ Nachricht des Editors zur Kontrolle der Shell. Aufbau der Nachricht Wort 3+4: Zeiger auf den Namen des obersten Fensters des Editors oder NULL Wort 5: Steuer-Flags: Bit 0: Shell soll sich toppen (Men/Fenster) Antwort Die Shell best„tigt mit SE_ACK. Hinweis: Diese Nachricht existiert erst ab Protokollversion 1.05. Die brigen Bits von Wort 5 sind fr zuknftige Erweiterungen reserviert. 4 History ********** Version 1.05 vom 23.12.1997 ù neue Nachricht ES_SHLCTRL ù neuer Eintrag shellCtrlStr in der Struktur SEMENUINFO bei SE_MENU Version 1.04 vom 08.01.1997 ù Flag 2 ("nur schliežen") bei SE_CLOSE ù neuer Eintrag progName in der Struktur SEMENUINFO bei SE_MENU Version 1.03 vom 19.11.1996 ù bei ES_COMPILE kann der Zeiger auf den Dateinamen jetzt auch NULL sein. Version 1.02 vom 13.08.1996 ù neue Nachricht SE_MENU ù bei SE_OPEN kann nun auch eine Zeile und eine Spalte angegeben werden Version 1.01 vom 30.01.1996 ù Angabe von Dateimasken und Close-Flag bei SE_CLOSE ù Projektname bei SE_PROJECT und ES_PROJECT kann auch NULL sein Version 1.00 vom 17.01.1994 ù erste ”ffentliche Version 5 Autoren und Programme ************************ Das SE-Protokoll wurde von Dirk Steins @ K2 und Frank Storm @ AC2 ent- wickelt, die Erweiterungen zu den neueren Protokollversionen stammen von Christian Felsch @ HH und Dirk Haun @ WI2. Die Zahl der Programme, die das SE-Protokoll untersttzen, ist leider noch nicht allzu grož: ù Editoren: - Everest von Oliver Schmidt (ab Version 3.5) - Fred von Dirk Steins - qed von Christian Felsch (ab Version 3.3, ab Version 3.70 wird zudem Protokollversion 1.01 untersttzt) ù Shells: - Chatwin von Dirk Haun (ab Version 3.04 wird das SE-Protokoll komplett untersttzt, „ltere Versionen untersttzen nur die wichtigsten Nachrichten) - Shell zum Megamax Modula-2 von Thomas Tempelmann - PC-Shell von Frank Schramm (ab Version 3.01) ù Sonstiges: - SE-Lib von Manfred Rosenboom und Dirk Haun Dieser Bibliothek liegt auch der SE-Evaluator, eine Art Debugger fr das SE-Protokoll, bei. Es bleibt zu hoffen, daž weitere Editoren und Shells dieses ntzliche Protokoll untersttzen werden. Dieser Text tr„gt dabei hoffentlich et- was zur Verbreitung bei ... Dirk Haun, 4. Januar 1998