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.13.2.3 Request/Reply-Protokoll TOS Es werden zwei weitere Message-Typen eingeführt, um einen allgemeinen Datenaustausch zu ermöglichen: #define ACC_REQUEST 0x480 #define ACC_REPLY 0x481 ACC_REQUEST Mittels dieser Nachricht fordert man bei einer anderen Applikation einen Dienst an. Der Aufbau dieser Nachricht ist folgendermaßen: msg[0]: ACC_REQUEST (0x480) msg[1]: Application-ID des Senders msg[2]: 0 msg[3]: Das high-Byte ist frei für Applikationsspezifische Informationen und im low-Byte ist der Typ der Daten codiert, die mit dieser Nachricht verschickt werden: 0x01 String, d.h. msg[4]+msg[5] ist ein Pointer auf den String 0x02 Env-String, d.h msg[4]+msg[5] ist ein Pointer auf den Env-String (mehrere durch '\0' getrennte Strings mit abschließenden doppelten '\0'-Bytes) 0x03 binär-Daten, d.h. msg[4]+msg[5] ist ein Pointer auf die binär-Daten. In diesem Fall muß der Empfänger natürlich über die Struktur Bescheid wissen! (lokale Typunterscheidung ist z.B. mittels des high-Bytes möglich) 0x04 code, d.h. msg[4] bis msg[7] enthalten direkt die Daten (sinnvoll bei Übertragung von Datenmengen bis 8 Byte) msg[4,5]: Pointer auf die Daten (außer Typ 0x04) msg[6,7]: Länge des Datenbereichs incl. eventueller '\0'-Bytes (außer Typ 0x04) Es existieren zwei verschiedene Möglichkeiten, diese Nachricht zu beantworten: ∙ ACC_ACK mit msg[3]=0, wenn die empfangende Applikation diese Nachricht nicht bearbeiten kann ∙ ACC_REPLY, wenn die Nachricht bearbeitet werden konnte und eine Antwort zurückgeschickt wird ACC_REPLY Mittels dieser Nachricht wird eine ACC_REQUEST Anforderung erfolgreich beantwortet. Der Aufbau dieser Nachricht ist folgendermaßen: msg[0]: ACC_REPLY (0x481) msg[1]: . . siehe ACC_REQUEST! . msg[7]: Applikationen, die oben beschriebene Protokollelemente unterstützen, müssen in ihrer XDSC-Beschreibung das Extended-Feature "RQ" enthalten haben.