•  Back 
  •  GEMScript Teil II 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  ATOS Hilfe 
  •  Show info about hypertext 
  •  View a new file 
Topic       : Das ATOS-Magazin 3/98
Author      : Das ATOS-Team
Version     : 18.9.1998
Subject     : ATOS Diskettenmagazine
Nodes       : 294
Index Size  : 8212
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : 
@help       : ATOS Hilfe
@options    : -i -s +zz -t2
@width      : 70
View Ref-File
index=272
ATOS Programmierpraxis
index=272
GEMScript Teil II Wie gut Du sprechen GEMScript? Das ATOS-Magazin 3/98 Weiterhin wird beim Versenden von GS_REPLY in ev_mgpbuff[3] und [4] ein Zeiger auf eine Struktur vom Typ GS_INFO mitgeschickt, die der anderen Applikation sagt, inwieweit die mit GS_REQUEST angesprochene Applikation GEMScript versteht. Diese Struktur hat folgenden Aufbau: typedef struct { long len; /* Länge der Struktur in Bytes */ int version; /* Version des Protokolls beim Sender (z.Z. 0x0110 = 1.1) */ int msgs; /* Bitmap der unterstützten Nachrichten (GSM_xxx) */ long ext; /* benutzte Endung, etwa '.SIC' */ } GS_INFO; In msgs trägt der GS_REPLY-Versender einen Bitvektor ein, der unserem GS_REQUEST-Versender (z.B. dem Scriptinterpreter) angibt, welche Kom- mandos die Applikation versteht. GSM_COMMAND = 0x0001 GSM_MACRO = 0x0002 GSM_WRITE = 0x0004 Am wichtigsten ist hier erstmal GSM_COMMAND. Die beiden anderen Kom- mandos sind nur für Scriptinterpreter oder "aufnahmefähige Applikati- onen" nötig, aber dazu später mehr. Wichtig ist, daß die GS_INFO-Struktur, deren Adresse verschickt wird, mit Mxalloc() als globaler Speicherblock angefordert wird, damit es beim Zugriff darauf unter Betriebssystemen mit Memory Protection (MiNT) keine Schwierigkeiten gibt. Außerdem sollte die Struktur sicherheitshalber erst wieder freigegeben werden, wenn die Applikation beendet wird, da der GS_REPLY-Empfänger (z.B. der Interpreter) die Daten in der Struktur nicht sofort auslesen muß. Die Variable ext ist nur für Interpreter wichtig, andere Applikationen sollten hier 0 eintragen. GS_COMMAND: Aye, Sir.