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.2 Anmerkungen TOS 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, für 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!). Dafür sind diese als "Readable" zu allozieren! Das geschieht über den Gemdos-Aufruf Mxalloc(). Bei einigen Nachrichten können Zeilen- und Spaltennummern für eine Cursorposition übergeben werden. Da es unterschiedliche Auffassungen darüber gibt, ob Zeilen und/oder Spalten ab Null oder ab Eins gezählt werden, wird empfohlen, diese Angaben vor der Übernahme zu überprüfen 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.