"XAcc-Spy" - Der XAcc-Spion (Version 26.01.1994)
================================================

Dieses Programm ist FREEWARE, d.h. es darf und soll weitergegeben und
benutzt werden. Die Weitergabe ist gestattet, sofern die Dateien
XACCSPY.APP, XACCSPY.PAS und XACCSPY.TXT (diese Datei) zusammen und
unverndert weitergegeben werden. Wird das Programm in PD-Serien auf-
genommen, auf CDs gepret etc., mge man sich doch bitte um die
aktuellste Version kmmern.

Meine Adresse: Thomas Much, Gerwigstrae 46, 76131 Karlsruhe
               Tel. (0721) 62 28 41
               EMail: Thomas_Much@KA.MAUS.DE

XACCSPY.ZIP sollte auf jeden Fall in den Musen KA, MTK und HL zu
finden sein (Achtung: Kein Gastdownload von 18-20 Uhr).


Wozu ist XAcc-Spy gut?
----------------------
XAcc-Spy ist eine Art "XAcc-Debugger", d.h. in einem Fenster werden
alle laufenden Applikationen angezeigt, die das XAcc-Protokoll unter-
sttzen. Dazu erhlt man alle XAcc-Parameter (s.u.), mit denen man
solche Programme recht gut einschtzen kann. Diese Anleitung soll
allerdings die XAcc-Doku nicht ersetzen, auf sie sei deshalb an
dieser Stelle verwiesen.


Installation und Anwendung
--------------------------
XAcc-Spy kann sowohl als Programm als auch als Accessory eingesetzt
werden. Beim Einsatz als Programm kann man Accessories auf das XAcc-
Protokoll hin untersuchen, mit dem Accessory kann man entsprechend
ein Hauptprogramm gut untersuchen.
Bei der Verwendung unter MultiTOS sollte der Programmtyp egal sein,
allerdings kann es sein, da einige Programme noch nicht die "neue"
XAcc-Definition untersttzen, so da man evtl. ein bichen herum-
probieren mu (s. "Debugging").
Als Tastatursteuerung kommen derzeit nur <Control>+<Q>, <Control>+
<F> und <Control>+<U> in Frage, ansonten mu die Maus bemht werden.
In dem Fenster werden alle gefundenen XAcc-Applikationen unterein-
ander angezeigt. Die Zeilen sind folgendermaen aufgebaut:
Ganz links steht der Name der Applikation. Daneben stehen die AES-
ID und die Nummer des Meneintrags. Unter einem Nicht-Multitasking-
TOS kennzeichnet apID=0 das Hauptprogramm, das dann auch keinen Men-
eintrag besitzen sollte (meistens wird dann meID=-1 bergeben).
Dann folgt die Programm-Version, die von der XAcc-Applikation be-
liebig gesetzt und kodiert werden kann. Es folgen noch die unter-
sttzten Message-Groups. Jeder Unterstrich kennzeichnet eine Gruppe;
wenn dort die entsprechende Zahl (von rechts nach links) eingetragen
ist, wird diese XAcc-Message-Gruppe verstanden.
Schlielich knnen noch "Extended Names" vorhanden sein. Mit diesen
kann die Applikation einen maschinenlesbaren Programmtyp (normaler-
weise zwei groe Buchstaben) sowie einen entsprechenden "Menschen-
lesbaren" Programmtyp angeben. Auerdem knnen "Extended Features"
gesetzt werden, die aber normalerweise nur zwischen "gut bekannten"
Programmen versendet und verstanden werden. Ganz zum Schlu folgt
noch der generische Name; dieser kann gesetzt sein, wenn das
Programm nicht berall den gleichen "offiziellen" Namen besitzt,
aber dennoch eindeutig erkannt werden mu.
Unter MultiTOS wird auch Iconification untersttzt. In dem Icon-
Fenster wird dann nur noch die Anzahl der gefundenen XAcc-Appli-
kationen angezeigt.


"Debugging"
-----------
Singletasking-TOS:
Wird XAcc-Spy als Programm gestartet, sollten sofort alle ge-
fundenen XAcc-Applikationen angezeigt werden; an deren Zahl
darf sich eigentlich nichts mehr ndern.
Beim Einsatz als Accessory ist es normal, da sich nach jedem
Start oder Verlassen eines Hauptprogramms die Liste ndert,
je nachdem ob das Hauptprogramm XAcc untersttzt oder nicht
(unter dem GEM-Desktop z.B. ist die Liste immer leer). Aller-
dings kann man bei einigen Accessories beobachten, da diese
_nur_ mit dem Hauptprogramm und nicht (wie es die XAcc-De-
finition vorsieht) auch mit den anderen Accessories...
Multitasking-TOS:
Die Liste sollte fr das Accessory bzw. fr das Programm
gleich aussehen. Unterschiede wird es nur geben, wenn andere
Programme evtl. die XAcc-Multitasking-Definition nicht kennen.
Wird ein neues XAcc-Programm oder -Accessory gestartet (oder
verlassen), reagiert der XAcc-Spy mit einem automatischen Up-
date der Liste!

Ein paar Beispiele, welche Programme was anzeigen:
ObjectGEM-Programme geben normalerweise an, da sie die Message-
Groups 1 und 2 verstehen (meistens wird eine entsprechende An-
frage allerdings per ACC_ACK zurckgewiesen, siehe ObjectGEM-
Doku). Diese Applikationen sollten allgemein _keine_ Probleme
mit XAcc haben (zum Testen kann man z.B. zwei Spione instal-
lieren...).
Mit CAT kann man sehr schn die "Extended Names" sehen. So
wird als Applikationstyp "DB" (fr Datenbank) bzw. etwas les-
barer "MausTausch-Programm" zurckgegeben. Leider ist die
Abmeldung beim Programmende unter MultiTOS noch nicht ganz
korrekt.
Am besten (der von mir getesteten Programme) wird das XAcc-
Protokoll von Connect beherrscht. Unter MultiTOS sieht es
wirklich toll aus, wenn die XAcc-Liste bei Programmstart und
-ende entsprechend aktualisiert wird :-)


Was man sonst noch ber XAcc-Spy wissen sollte
----------------------------------------------
Wie man vielleicht am beiliegenden Quelltext erkennt, ist XAcc-Spy
ein ObjectGEM-Programm. Zur Programmierung wurde die neue ObjectGEM-
Version 1.10 verwendet, die neuerdings XAcc untersttzt und ab ca.
Anfang Februar verfgbar sein wird (ebenfalls in o.g. Musen).
Aus dem objektorientierten Ansatz ergibt sich eine fr ein "Diagnose"-
Programm unbliche Gre. XAcc-Spy ist allerdings nicht unbedingt zum
dauerhaften Einsatz vorgesehen, sondern eigentlich dazu, um "mal eben"
zu berprfen, ob ein Programm das XAcc-Protokoll korrekt beherrscht.
Auerdem ist der Quelltext recht bersichtlich und entsprechend ein-
fach zu warten.

Schlielich mu ich noch darauf hinweisen, da XAcc-Spy bei mir zwar
wunderbar luft, da ich dies aber nicht garantieren kann. Wer XAcc-
Spy einsetzt, tut dies AUF EIGENE GEFAHR. Sollte tatschlich ein
Fehler auftreten und ich davon erfahren, werde ich diesen nach
Mglichkeit eliminieren.

So, nun aber viel Spa beim "XAcc-debuggen", auf da mglichst viele
"schwarze Schafe" entlarvt werden, damit sich das XAcc-Protokoll
noch besser durchsetzen kann! ;-)
