•  Back 
  •  SE-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.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.