•  Back 
  •  Protokolle 
  •  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.1  AV-Protokoll                                                 TOS

Das AV-Protokoll (Accessory-Venus) wurde von Stefan Eissing entwickelt 
und zuerst im alternativen Desktop Gemini eingesetzt. Mittlerweile 
wird dieses Protokoll jedoch von vielen weiteren Shells (Ease, 
MagXDesk, Thing, ...) unterstützt. Dieser Abschnitt beschreibt die 
Version des Protokolls aus der Gemini-Distribution vom 29. Januar 1995 
(Gemini 1.a).

Die Kommunikation zwischen zwei Prozessen erfolgt beim AV-Protokoll 
über den Austausch von (erweiterten) AES-Nachrichten, die sich einer 
der folgenden Kategorien zuteilen lassen:

AV-Funktionen (Client -> Server)
VA-Funktionen (Server -> Client)

Achtung: An dieser Stelle sei darauf hingewiesen, daß im Hinblick auf 
zukünftige Betriebssystem-Versionen zur Kommunikation zwischen 
verschiedenen Programmen benutzte oder über Zeiger zugewiesene 
Speicherbereiche global sein müssen (Mxalloc-Funktion mit Global- 
Flag). Andernfalls wird es beim Einsatz auf Rechnern mit PMMU (z.B. 
Atari-TT oder Falcon) zu Speicherschutzverletzungen kommen.

Sollten in Nachrichten Pfade oder Dateinamen vorkommen, so muß immer 
der absolute Pfad angegeben werden (also mit Laufwerk) und die 
Laufwerksbuchstaben müssen Großbuchstaben sein. Pfade sollten immer 
mit einem Backslash enden!

Mit AV_PROTOKOLL kann jede Applikation nachfragen, welche Nachrichten 
verstanden werden (nicht alle Shells unterstützen das vollständige 
Protokoll). Es wäre schön, wenn auch andere Programme auf dieses 
Protokoll reagieren würden. Zumindest AV_SENDKEY ist sicher leicht zu 
implementieren und ist die einzige Methode, wie über Nachrichten 
Tastaturdrücke simuliert werden können.

Unter normalem TOS fragt dazu ein Accessorie, wenn es eine AC_CLOSE- 
Nachricht vom AES erhalten hat, die Applikation (mit ID) 0 per 
AV_PROTOKOLL ob sie etwas davon versteht. In einer Multitasking- 
Umgebung (MultiTOS, MiNT/N.AES oder MagiC) muß aber das Programm nicht 
mehr die ID 0 haben, zudem kommt es (fast) nicht mehr zu AC_CLOSE- 
Nachrichten. Außerdem können nicht nur Accessories, sondern auch 
normale Programme mit dem AV-Server kommunizieren wollen. Was tun?

Wenn es mehr als eine Hauptapplikation geben kann, dann sollte das 
Programm bzw. Accessory versuchen, mit GEMINI Kontakt aufzunehmen. Die 
ID kann ja mit appl_find ermittelt werden. Scheitert dies, so kann 
noch nach AVSERVER oder dem Inhalt der (AES)-Environmentvariable 
AVSERVER gesucht werden. Besonders die letzte Möglichkeit erlaubt eine 
leichte Konfiguration von außen. Die neuen Versionen der Library 
VAFUNC von Stephan Gerle (in gutsortierten Mailboxen erhältlich) 
verfahren fast genauso.

Querverweis: Nachrichten Drag&Drop-Protokoll OLGA-Protokoll