\documentstyle[11pt,titlepage,german]{article}
%macropackage=lplaing
  \frenchspacing
  \sloppy
  \parindent 0pt
  \parskip 2ex plus 0.5ex minus 1ex
  \def\WD{\mbox{\sc WatchDog}}
  \def\WDAT{\mbox{\tt WATCHDOG.DAT}}
  \def\CAT{\mbox{\sc Cat}}
  \def\VERSION{\mbox{1.41}}
\begin{document}
  \title{\WD\\ Version \VERSION\ vom 08. September 1993}
  \author{Stefan Rupp
    \thanks{Version 1.0: Johannes G"ottker-Schnetmann,
            Version 1.1: Dirk Steins}}
  \date{copyright \copyright 1992, 1993}
  \maketitle

  \subsection*{Was ist ein Laberfilter?}
    Ein Laberfilter ist ein Werkzeug, welches einem einigen "Arger
    und Zeit beim MausTausch ersparen kann.

    \WD\ erledigt diese Aufgabe in Zusammenarbeit mit dem Maustausch-
    Frontend \CAT\ ab Version 1.2. Jede Nachricht des letzten Maustauschs
    wird vor ihrem Einf"ugen in die \CAT-Datenbasis von \WD\ daraufhin
    untersucht, ob sie bestimmte konfigurierbare Kriterien erf"ullt und
    daraufhin entweder eingef"ugt oder aber zur"uckgewiesen, soda� man
    diese gar nicht erst zu Gesicht bekommt und sich "uber sie "argern
    braucht.

  \subsection*{Installation}
    \WD\ wird als Accessory installiert und l"ad die Konfigurationsdatei
    \WDAT\ nach, nach der in verschiedenen Pfaden gesucht
    wird (s.u.). \WD\ kann sowohl beim Booten mitgeladen werden als auch
    mit dem Tool ${\tt The Chameleon^{\small TM}}$ von Karsten Isakovic
    nachgeladen werden.

    Beim Anw"ahlen des Accessory-Eintrags in der Men"uzeile erscheint eine
    Dialogbox, in der der Laberfilter global ein- und ausgeschaltet werden
    kann. Weiterhin kann man sich �ber den Button \fbox{\tt Zeige Statistik}
    eine Kurzstatistik der bisher von \WD\ untersuchten Nachrichten anzeigen
    lassen. Dazu "offnet sich eine weitere kleine Dialogbox, in der man diese
    Informationen angezeigt bekommt. Die Daten sind im einzelnen:
    \begin{itemize}
      \item {\bf Gesamt :} \\
      	Die Gesamtanzahl der von \CAT\ an \WD\ zur "Uberpr"ufung
      	vorgelegten Nachrichten,
      \item {\bf Gefiltert :} \\
      	Die Anzahl der von \WD\ als zu Filternde erkannte Nachrichten,
      \item {\bf Gel"oscht :} \\
      	Die Anzahl der von \WD\ als zu L"oschende erkannte Nachrichten,
      	im Gegensatz zu den zu Filternden sowie
      \item {\bf Tearlines :} \\
      	Die Anzahl der von \WD\ erkannten und abgeschnittenen Tearlines (s.u.).
    \end{itemize}
    Man hat au�erdem die M"oglichkeit durch anklicken des Buttons \fbox{\tt
    Zur"ucksetzen} die Werte auf $0$ zur"uckzusetzen. Wird diese Dialogbox
    mit dem Button fbox{\tt Abbruch} verlassen, so werden die alten
    Statistikdaten von vor einem eventuellen Zur"ucksetzen weiterverwendet.

    Auch die Hauptdialogbox von \WD\ l"a"st sich mit \fbox{\tt Abbruch}
    verlassen. Das hat die Wirkung, da"s eine eventuell ge"anderte
    Einstellung des globalen Schalters ("`{\tt WatchDog aktiv}"') nicht
    ber"ucksichtigt wird.

    Schlie"slich kann man seit Version 1.2 nun auch die Konfigurationsdatei
    durch Klicken auf den Button \fbox{\tt laden} neuladen, was allerdings
    einigen Einschr"ankungen unterliegt (s.u.). Das Neuladen der Konfiguration
    kann auch {\it nicht\/} durch die Wahl von \fbox{\tt Abbruch} r"uckg"angig
    gemacht werden. Au"serdem wird stets nur in den normalen Pfaden nach der
    \WDAT-Datei gesucht.

  \subsection*{Die Kofigurationsdatei \WDAT}
    Die Datei \WDAT\ wird w"ahrend der Installationsphase in
    folgenden Verzeichnissen des Dateibaums gesucht:
    \begin{enumerate}
      \item im aktuellen Verzeichnis (beim Booten meist identisch mit 2.),
      \item im Wurzelverzeichnis des Bootlaufwerks,
      \item unter allen Verzeichnissen, die durch die 
            AES-Environment-Variable {\tt PATH=} angegeben sind,
      \item im durch die Environment-Variable {\tt WATCHDOG=} angegebenen
            Verzeichnis und schlie"slich
      \item unter dem in der im Programmcode enthaltenen Patchvariablen
            {\tt dat\_path} (s.u.).
    \end{enumerate}
    Sollte die Datei nicht gefunden werden, wird in der Dialogbox in der
    Statuszeile eine entsprechende Fehlermeldung eingetragen.
    Die Datei \WDAT\ ist eine normale ASCII-Textdatei und kann
    mit jedem normalen Texteditor erstellt und ver"andert werden. Jede
    Zeile der Datei enth"alt einen Befehl oder einen Kommentar (mit dem
    Hash-Symbol "`{\tt \#}"' eingeleitet). Alle Befehle (die Kommentare
    nicht unbedingt) enden mit einem Semikolen "`{\tt ;}"'.

  \subsection*{Die Befehle}
    Es gibt 5 verschiedene Befehle:
    \begin{itemize}
      \item {\tt GRUPPE=}   --- zum W"ahlen einer Gruppe f"ur die folgenden
                                Befehle,
      \item {\tt BETREFF=}  --- zur Bestimmung einer Betreffzeile,
      \item {\tt NAME=}     --- zur Bestimmung eines Absendernamens,
      \item {\tt ALLE}      --- zur Bestimmung von Filterkriterien f"ur {\bf alle}
                                Gruppen und schlie"slich
      \item {\tt TEARLINE=} --- zur Bestimmung eines {\it
                                Tearline\/}-Patterns.
    \end{itemize}
    Die Befehle haben die im folgenden EBNF-Diagramm angegebene Syntax:

    $
    \begin{array}{rcl}
      {\it watchdog.dat\/} & {\tt ::=} & \{ {\it kommentar\/} | {\it befehl\/} \} \\
      {\it kommentar\/}    & {\tt ::=} & \verb? # <?{\it beliebiger Text\/}\verb?>? \\
      {\it befehl\/}       & {\tt ::=} & {\it gruppe\/} | {\it eintrag\/} | {\it alle\/} \\
      {\it gruppe\/}       & {\tt ::=} & \verb?GRUPPE= <?{\it gruppe\/}\verb?> ; ( ON | OFF ) ;? \\
      {\it alle\/}         & {\tt ::=} & \verb?ALLE ; ( ON | OFF ) ;? \\
      {\it eintrag\/}      & {\tt ::=} & {\it betreff\/} | {\it name\/} | {\it tearline\/} \\
      {\it betreff\/}      & {\tt ::=} & \verb?BETREFF= <?{\it betreff\/}\verb?> ; [ FILTER ; ] ? \\
      {\it name\/}         & {\tt ::=} & \verb?NAME= <?{\it name\/}\verb?> ; [ FILTER ; ] ? \\
      {\it tearline\/}     & {\tt ::=} & \verb?TEARLINE= <?{\it tearline\/}\verb?> ;? \\
    \end{array}
    $

    Zu beachten sind grunds"atzlich folgende drei Eigenschaften:
    \begin{enumerate}
      \item Es wird prinzipiell nicht zwischen Gro"s- und Kleinschrift
            unterschieden, d.h. die W"orter {\tt HAUS}, {\tt Haus} und
            {\tt haus} sind f"ur \WD\ identisch.
      \item Alle Suchw"orter (Gruppennamen, Betreffs und Absendernamen)
            werden als Teilstrings behandelt; d.h. es m"ussen nicht die
            kompletten Zeichenketten identisch sein, sondern es reicht
            aus, wenn das Suchwort in der zu untersuchenden Zeichenkette
            enthalten ist. Insofern wird z.B. das Suchwort {\tt FIDO} in
            jedem Absendernamen aus dem Fidonetz gefunden. Allerdings wird
            es auch in dem (hypothetischen) Namen {\tt El\underline{fido}s}
            gefunden, was zu unerw"unschten Nebeneffekten f"uhren kann.
      \item Wegen der oben erw�hnten Eigenschaft kann es zu Pr"afix-Konflikten
            kommen. Wenn z.B. sowohl in der Gruppe {\tt MAUS} als auch in der
            Gruppe {\tt MAUSTAUSCH} gefiltert wird, ist es ratsam, die Gruppe
            {\tt MAUS} ganz an den Schlu"s zu stellen, weil {\tt MAUS} ein
            Pr"afix von {\tt MAUSTAUSCH} ist. Ansonsten wird auch in der
            Gruppe {\tt MAUSTAUSCH} (und in allen anderen Gruppen, die mit
            {tt MAUS} beginnen) nur nach den Filterkriterien f"ur die Gruppe
            {\tt MAUS} gesucht, was nicht Sinn der Sache sein kann.\footnote{
              Vielen Dank an Sebastian Bieber @ HH f"ur diesen Tip.
            }
    \end{enumerate}

  \subsection*{\tt \underline{GRUPPE=}}
    Mit jedem Gruppenbefehl wird die Gruppe bestimmt, f"ur die die auf den
    Befehl folgenden Filterkriterien gelten sollen. Nach M"oglichkeit sollte
    die erste Befehlszeile einer Datei \WDAT\ immer einen Gruppenbefehl sein,
    weil alle Befehle, die vor einem solchen stehen, dann wirkungslos sind,
    weil sie sich auf keine Gruppe beziehen.

    Der Gruppenname wird mit einem Semikolon "`{\tt ;}"' abgeschlossen,
    gefolgt von der Angabe "uber den Filtermodus, {\tt ON} oder {\tt OFF},
    wieder mit einem Semikolon abgeschlossen.

    Der Filtermodus {\tt ON} bedeutet, da"s die gesamte Gruppe gefiltert
    werden soll und nur die Nachrichten in die Datenbasis "ubernommen
    werden sollen, die den nachfolgenden Filterkriterien gen"ugen.
    Umgekehrt bedeutet der Filtermodus {\tt OFF}, da"s erstmal keine
    Nachricht gefiltert wird und nur dann nicht eingef"ugt wird, wenn
    ein Filterkriterium auf sie zutrifft. Die beiden Modi sind also
    genau einander entgegengesetzt.

    Entsprechend dem oben erw"ahnten Prinzip, die Suchw"orter als
    Teilstrings zu interpretieren, kann ein Gruppenname auf mehrere
    Gruppen zutreffen. So wirkt der Befehl \verb?GRUPPE=MAUS;OFF;?
    auf alle Gruppen, die das Wort {\tt MAUS} im Namen haben, unter
    anderem also auch f"ur {\tt \underline{MAUS}TAUSCH}, {\tt
    \underline{MAUS}-DOKU} oder {\tt \underline{MAUS}.INFO}.

  \subsection*{\tt \underline{ALLE=}}
    Mit diesem Schl"usselwort wird ein Abschnitt von Filterw"orter
    eingeleitet, nach denen in jeder Gruppe gesucht werden soll. Diese
    Kriterien haben jedoch geringere Priorit"at, soda� sie erst dann
    herangezogen werden, wenn die anderen f"ur die aktuelle Gruppe
    ggfls. definierten Filterw"orter fehlschlagen. Auch hier kann
    zwischen {\tt ON} und {\tt OFF} gew�hlt werden (naja, wer es mag).

  \subsection*{\tt \underline{BETREFF=}}
    Mit dem Betreffbefehl wird ein Teilstring angegeben, der in der
    Betreffzeile jeder Nachricht der Gruppe gesucht wird, die als letztes
    mit einem Gruppenbefehl ausgew"ahlt wurde. Ein Betreffbefehl gilt
    also immer nur f"ur eine Gruppe. Soll ein Betreff in mehreren Gruppen
    gefiltert werden, mu"s dies f"ur jede Gruppe extra angegeben werden.

    Hat \WD\ in der Betreffzeile einer Nachricht die angegebene Zeichenkette
    gefunden, wird --- abh"angig vom f"ur die aktuelle Gruppe eingestellen
    Filtermodus --- die jeweilige Nachricht eingef"ugt bzw. zur"uckgewiesen.

    Neu ab Version 1.3 ist die M"oglichkeit, in Verbindung mit einer \CAT
    -Version $>$ 1.21 die erweiterte M"oglichkeit des \WD-Protokolls bzgl.
    des Filterns auszunutzen. W"ahrend die 1.2x-Versionen von \WD\
    Nachrichten nur ganz ablehnen konnten (diese wurden von \CAT\ dann nicht
    in die Datenbasis "ubernommen), ist es ab Version 1.3 auch m"oglich,
    die Nachrichten als {\it gefiltert\/} zu kennzeichnen, soda"s \CAT\
    diese zwar in die Datenbank einf"ugt, aber nur auf explizites Verlangen
    hin anzeigt; d.h. man bekommt solche Nachrichten normalerweise nicht zu
    sehen, es sei denn, man weist \CAT\ extra an "`zeige mir auch die
    gefilterten Nachrichten an"'. Das funktioniert nat"urlich nur mit \CAT
    -Versionen $>$ 1.21.

    Will man ein Filterwort so konfigurieren, da"s \WD\ Nachrichten, auf die
    das Kriterium zutrifft, als {\it gefiltert\/} an \CAT\ zur"uckgibt, so
    mu"s man hinter das Filterwort und das Semikolon noch das Schl"usselwort
    {\tt FILTER}, wieder mit abschlie"sendem Semikolon setzen (Beispiel siehe
    unten).

    Beachte, da"s die Angabe {\tt ON} bzw. {\tt OFF} hinter dem Betreff,
    wie in der Version 1.1 von \WD\ beschrieben, hier nicht n"otig ist,
    da die Filter-Art ({\it Alles l"oschen bis auf \ldots\/} bzw.
    {\it L"osche nur \ldots\/}) bereits eindeutig durch das Schl"usselwort
    {\tt ON} bzw. {\tt OFF} hinter dem Gruppennamen definiert ist (abgesehen
    nat"urlich von der neuen M"oglichkeit, zwischen zu filternden und zu
    l"oschenden Nachrichten zu unterscheiden). Allerdings schadet es auch
    nichts. Ein {\tt ON} oder ein {\tt OFF} wird von \WD\ ignoriert. Soviel
    zum Thema {\it Kompatibilit"at\/}.

  \subsection*{\tt \underline{NAME=}}
    Der Namensbefehl erm"oglicht es --- analog zum Betreffbefehl --- einen
    Absender anzugeben, dessen Nachrichten in der zuletzt gew"ahlten Gruppe
    gefiltert werden sollen. Das f"ur den Betreffbefehl geschriebene gilt
    hier entsprechend. Allerdings sollte man beachten, da"s es schon etwas
    gef"ahrlich ist, eine Person in einen Laberfilter aufzunehmen. Dadurch
    nimmt man sich jede M"oglichkeit, auf Nachrichten dieser Person zu
    reagieren.

    Eine Anwendung w"are es allerdings, in einer vernetzten Gruppe ein
    ganzes angeschlossenes Mailboxnetz auszublenden. So werden etwa durch
    die Zeile
    \begin{verbatim}
      NAME=@ FIDO;
    \end{verbatim}
    in der selektierten Gruppe alle Nachrichten, die aus dem FIDO-Netz
    kommen, ausgeblendet. Das mag unter Umst"anden ganz sinnvoll sein.

    Die beim Punkt {\tt BETREFF} erw"ahnten M"oglichkeiten bzgl. des
    Filterns und des L"oschens gelten entsprechend f"ur den {\tt NAME}-
    Befehl.

  \subsection*{\tt \underline{TEARLINE=}}
    Der Tearlinebefehl ist geeignet, ein Muster anzugeben, nach dem in jeder
    Message der eingestellten Gruppe gesucht wird; und zwar im eigentlichen
    Nachrichtenrumpf, nicht in der Absender- oder Betreffzeile. Findet
    \WD\ dieses Muster {\tt alleine auf einer Zeile stehend\/} (d.h. direkt
    am Anfang der Zeile mit sofort folgendem Zeilenumbruch), so wird ab
    dieser Zeile der Rest der Nachricht gel"oscht.

    Manche Frontends erzeugen solche Tearlines automatisch, um darunter
    beispielsweise Witze oder den eigenen Mailboxnamen zu setzen. Diese
    Information ist allerdings unwesentlich und manchmal st"orend, zumal
    es die \CAT-Datenbasis unn"otigerweise aufbl"aht. Deshalb kann man
    f"ur jede Gruppe Tearlines angeben.

    Allerdings hat das Tearline-Filtern zwei entscheidene Nachteile:
    \begin{enumerate}
      \item kann es passieren, da"s tats"achlich Information
            irrt"umlicherweise abgeschnitten wird und
      \item dauert das Einf"ugen des OUTFILEs unverh"altnism"a"sig
            l"anger, weil jetzt nicht nur der Nachrichtenkopf mit
            Betreff- und Absenderzeile untersucht werden mu"s, sonderm
            auch der gesamte Nachrichtenrumpf, der in der Regel gr"o"ser
            ist als der Kopf.
    \end{enumerate}
    Die Verwendung des Tearlinefilters sollte also reiflich "uberlegt sein.
    Ist f"ur eine Gruppe keine Tearline angegeben, wird der Nachrichtenrumpf
    "uberhaupt nicht untersucht.

    Es k"onnen pro Gruppe auch mehr als eine Tearline angegeben werden.
    Dann untersucht \WD\ die Tearlines in umgekehrter Reihenfolge ihres
    Vorkommens in der Datei \WDAT. Das kann zur Folge haben, da"s bei
    einer Nachricht, die mehr als eine Tearline hat, nicht die im
    Nachrichtentext erste gefunden wird, sondern eine weiter untenstehende.
    Um den ohnehin schon betr"achtlichen Zeitaufwand des Tearline-Filterns
    nicht noch zu vergr"o"sern, wird dieses Filtern abgebrochen, sobald
    eine Tearline gefunden wurde.

  \clearpage

  \subsection*{Beispiel \WDAT}
    Nach der grauen Theorie soll das folgende Beispiel einer \WDAT\ Datei
    eventuelle Unklarheiten beseitigen:
    \begin{verbatim}
      # Beispiel WATCHDOG.DAT
      #
      # Gruppe Maustausch waehlen
      GRUPPE=Maustausch;OFF;
      # darin alle Nachrichten mit fuer mich uninteressantem
      # Betreff (also alles bzgl. PCs und Amiga) filtern
      # aber nicht l"oschen
      BETREFF=MT:;FILTER;
      BETREFF=XP:;FILTER;
      BETREFF=MIN:;FILTER;
      BETREFF=MB:;FILTER;
      BETREFF=MAT:;FILTER;
      BETREFF=UMS:;FILTER;
      BETREFF=MF:;FILTER;
      # Gruppe Tauschbau waehlen
      GRUPPE=Tauschbau;ON;
      # alles loeschen ausser...
      # ...es geht um WatchDog
      BETREFF=Watchdog;
      # ...oder es ist von mir
      # (Beachte: ein FILTER ist hier nicht sinnvoll)
      NAME=Stefan Rupp;
      # Alle Gruppen Atari waehlen; ATARI ST, ATARI FIDO etc.
      GRUPPE=atari;OFF;
      # ich habe kein ZYXEL-Modem
      BETREFF=zyxel;
      # Gruppe Kunterbunt waehlen
      GRUPPE=Kunterbunt;OFF;
      # und die Tearline des Minni-Footers abschneiden
      TEARLINE=---;
      # ausserdem moechte ich nichts von ihm lesen; nirgendwo!
      ALLE;OFF;
      NAME=Fred Feuerstein;
      # der Name ist natuerich frei erfunden :-)
    \end{verbatim}

  \subsection*{Einschr"ankungen beim Nachladen des \WDAT}
    Wie bereits kurz erw"ahnt, ist es ab Version 1.2 von \WD\ m"oglich,
    die Konfigurationsdatei \WDAT\ nachzuladen. Klickt man in der
    Dialogbox von \WD\ auf den Button \fbox{\tt laden}, so versucht \WD\ die
    Datei \WDAT\ von den oben erw"ahnten Pfaden neu zu laden. Mi"slingt
    der Ladeversuch, so bleibt die alte Einstellung aktiv. Das kann aus
    mehreren Gr"unden passieren:

    Zum Einen kann es sein, da"s \WD\ die Datei nicht finden kann, weil
    sie z.B. gel"oscht wurde. Oder sie l"a"st sich nicht "offnen, weil
    sie z.B. von einem anderen Programm "`gelockt"' wurde. Weiterhin kann
    es sein, da"s die neue Datei \WDAT\ wesentlich gr"o"ser ist, als die
    alte. Dazu ein wenig Hintergrundinformationen:

    Das Betriebssystem der Atari Rechner, das TOS, behandelt Accessories
    und andere, aus dem {\tt AUTO}-Ordner, vom Desktop oder einer anderen
    Shell gestarteten Programme etwas unterschiedlich: Bis auf Accessories
    bekommt jedes Programm eine eigene sogenannte {\it Prozess-ID\/}.
    Fordert nun ein beliebiges Programm beim Betriebssystem Speicher an,
    merkt sich das TOS die aktuelle Prozess-ID, damit der von diesem Prozess
    angeforderte Speicher wieder freigegeben wird, sobald der Prozess
    terminiert (d.h. beendet wird). Fordert aber ein Accessory Speicher an,
    so wird dieser unter der Prozess-ID des gerade aktuellen Hauptprogramms
    gef"uhrt, weil das Accessory ja kein eigener Prozess ist. Das f"uhrt
    dazu, da"s dieser Speicher wieder freigegeben wird, sobald das
    Hauptprogramm beendet wird und dem Accessory damit sozusagen der
    Speicher wieder "`geklaut"' wird.

    Damit ein Accessory "uberhaupt Speicher anfordern kann, den es sicher
    behalten kann, mu"s es das ganz zu Beginn tun; d.h. w"ahrend der Atari
    Desktop gerade aktueller Prozess ist, der ja nie beendet wird. Sp"ater kann
    kein Speicher mehr dauerhaft angefordert werden.

    \WD\ fordert den ben"otigten Speicher also auch ganz zu Beginn,
    w"ahrend der Initialisierungs-Phase an; er untersucht die Datei \WDAT\
    und stellt dabei fest, wieviel Speicher ben"otigt wird. "Uber diesen
    "`Grundbedarf"' hinaus reserviert sich \WD\ aber noch etwas Speicher
    mehr, damit es m"oglich ist, sp"ater auch gr"o"sere Dateien nachzuladen.

    Dieser zus"atzlich angeforderte Speicher ist in der Grundausstattung
    von \WD\ ausreichend f"ur 5 Gruppen und 10 Eintr"age (also Namen,
    Betreffs oder Tearlines), wobei die Summe der L"ange aller Zeichenketten
    nicht l"anger als 1024 Bytes sein darf. Diese Voreinstellung l"a"st sich
    jedoch "andern. Dazu existieren sogenannte {\it Patchvariablen\/}.

  \subsection*{Die Patchvariablen}
    Einige Grundeinstellungen von \WD, die im Programm fest verdrahtet sind,
    lassen sich in gewissen Grenzen den W"unschen des Benutzers anpassen.
    So existiert gegen Ende der ausf"uhrbaren Programmdatei eine Struktur
    von sogenannten {\it Patchvariablen\/}. Das sind fest definierte Stellen
    im Programmtext, die vom Benutzer z.B. mit einem Diskmonitor ge"andert
    werden k"onnen, um das Standardverhalten des Programms zu beeinflussen.

    Im Quellcode von \WD\ ist die Struktur der Patchvariablen folgenderma"sen
    definiert:
    {\tt
      \begin{tabbing}
        1234\= \kill
        typedef struct \{ \\
	\>  unsigned long magic; \\
	\>  char dat\_path[30]; \\
	\>  int min\_group; \\
	\>  int min\_slots; \\
	\>  int min\_pool; \\
	\>  int debug\_level; \\
        \} patch\_t;
      \end{tabbing}
    }
    Dabei ist die {\it Magic-Number\/} {\tt magic} als ASCII-Zeichenkette
    "`{\tt PADB}"' (entspricht {\tt 0x50414442L} hexadezimal) zu erkennen.
    \par
    Um z.B. die Minimalanzahl der Gruppen zu erh"ohen, suche man im Code
    des ausf"uhrbaren Programms nach dem Vorkommen der ASCII-Zeichenkette
    "`{\tt PADB}"'. Genau 30 Bytes dahinter beginnt die hexadezimale
    Darstellung des voreingestellten Wertes als C-Integer; d.h. in der
    Grundversion sollte da {\tt 0x0005} stehen. Interpretiert man sich die
    zwei Bytes als ASCII, so findet man erst das Nullbyte und danach das
    Zeichen, welches z.B. in GEM-Fenstern in der linken oberen Ecke im {\it
    Close-Button\/} zu finden ist. Soll der Wert auf z.B. 10 erh"oht werden,
    so mu"s statt des ASCII-Zeichens {\tt 0x05}, das mit der Nummer {\tt
    0x0A} eingetragen werden (im Zeichensatz des Atari die "`Glocke"'),
    soda"s sich f"ur {\tt min\_group} insgesamt ein Wert von {\tt 0x000A}
    ergibt, was \WD\ interpretiert als 10.
    \par
    Neben den Grundeinstellungen f"ur minimale Gruppen- und Eintragsanzahl
    sowie die minimale String-Poolgr"o"se (Summe aller vorkommenden
    Zeichenkettenl"angen) kann noch der Pfad angegeben werden, unter dem
    \WD\ versucht, die Konfigurationsdatei zu laden. Voreingestellt ist
    dort der Wert {\tt C:$\backslash$WATCHDOG.DAT}. Es kann aber ein bis
    zu 29 Zeichen langer Pfad dort eingetragen werden. Wichtig ist nur,
    da"s dieser Dateiname mit einem Nullbyte abgeschlossen wird.
    \par
    Schlie"slich kann noch ein Debug-Modus eingeschaltet werden, der aber
    (hoffentlich) nicht ben"otigt wird. M"oglicherweise wird dieser Modus
    in kommenden Versionen von \WD\ wegfallen. Ist er eingeschaltet (der
    Wert der Patchvariablen {\tt debug\_level} mu"s dann gr"o"ser als 0
    sein --- abh"angig vom Umfang der Debugging-Ausgaben), so legt \WD\ eine
    Datei mit dem Namen {\tt C:$\backslash$WATCHDOG.LOG} an, wo nach jedem
    Laden der Konfigurationsdatei \WDAT\ die jeweils aktuelle Konfiguration
    abgelegt wird. Das passiert sowohl beim Initialisieren von \WD\ sofort
    w"ahrend der Bootphase des Rechners, als auch bei jedem Versuch, \WDAT\
    neu zu laden (mit Hilfe des Buttons {\tt laden}).
    \par
    Ist der Debug-Level auf 1 eingestellt, so werden nur diese Informationen
    im Logfile gespeichert. Wird der Debug-Level erh"oht (h"oher als 1), so
    werden weitere Informationen im Logfile gespeichert. Die Art der
    Information ist hier unwesentlich und sollte nur im Bedarfsfall mit dem
    Autor abgesprochen werden.
    \par
    Normalerweise sollten Sie also keinen Bedarf haben, diese Patchvariable
    zu "andern. Sie ist f"ur den Fall vorgesehen, da"s Sie einmal Probleme
    mit \WD\ haben. Dann kann man durch die Ausgabe der Konfiguration in
    die Datei {\tt WATCHDOG.LOG} m"oglicherweise den Fehler einkreisen.
    \par
    Beachten Sie auch, da"s die Datei {\it immer\/} im Root-Directory des
    Festplattenlaufwerkes {\tt C:} angelegt wird. Haben Sie keine Festplatte
    (und auch keine RAM-Disk als Laufwerk {\tt C:}) oder kann \WD\ die Datei
    aus anderen Gr"unden nicht zum Schreiben "offnen, so gibt \WD\ die
    Debug-Informationen einfach auf dem Bildschirm aus. Dadurch wird zwar
    der Bildschirmaufbau zerst"ort, aber f"ur den vorgesehenen Zweck reicht
    es aus.

  \clearpage

  \subsection*{copyright}
    \WD\ ist Freeware. Die Weitergabe ist gestattet, sofern stets das
    komplette \WD\ Paket weitergegeben wird. Dazu geh"oren die Dateien
    \mbox{\tt WATCHDOG.ACC} (das Accessory selbst), \mbox{\tt WATCHDOG.TEX}
    (diese Anleitung als \TeX{}-Dokument), \mbox{\tt WATCHDOG.TXT} (das
    Gleiche als reine ASCII-Datei) sowie eine \mbox{\tt README.TXT}-Datei
    ("Anderungen und wichtige Hinweise). Der Vertrieb "uber einen PD-Versand
    ist nicht gestattet. \WD\ darf (und sollte) in m"oglichst allen Mailboxen
    des Mausnetzes im Programmteil abgelegt und zum Download angeboten
    werden.

    Alle Rechte am Programm verbleiben beim Autor.

    Weil ich so gerne Post bekomme, werden alle Benutzer von \WD\ hiermit
    aufgefordert, mir eine E-mail oder eine Postkarte zu schicken ---
    letzteres wird bevorzugt. Meine Adresse\footnote{Achtung, ich bin
    umgezogen!} lautet:

    \begin{center}
      {\Large \sc Stefan H. Rupp} \\
      Turpinstr.\,140 \\[.5ex]
      {\large D - 52066 Aachen} \\
      {\footnotesize Tel.: (02\,41) 53\,60\,02 (voice)} \\
      Mausnet: Stefan Rupp @ AC2 \\
      Internet: struppi@pool.informatik.rwth-aachen.de
    \end{center}

  \subsection*{Disclaimer}
    Ich �bernehme keine Haftung f�r irgendwelche direkten oder indirekten
    Sch"aden, einschlie�lich aber nicht beschr"ankt auf materielle oder
    finanzielle, die durch die Benutzung dieses Programms oder die
    Untauglichkeit dieses Programms f�r einen bestimmten Zweck entstehen.

  \subsection*{Bekannte Fehler}

    Der \WD\ funktioniert nicht, wenn in \CAT\ der Autostart f�r das
    Terminalprogramm eingestellt ist oder dieser �ber das Dr"ucken der
    Alternate-Taste beim Start von \CAT\ erzwungen wird. Dies liegt daran,
    da� \CAT\ dann nicht lange genug wartet und nachsieht, ob \WD\ vorhanden
    ist. Dies ist ein Fehler in der \CAT-Version 1.21, der in der n�chsten
    Version behoben sein wird.

    Die erweiterte Funktionalit"at von \WD\ 1.3 gegen�ber 1.2 (die
    Unterscheidung zwischen Filtern und L"oschen) ist mit \CAT\ 1.21 nicht
    nutzbar.

  \subsection*{History}
    \WD\ ist bis zur Version 1.1 von Johannes G"ottker-Schnetmann bzw.
    Dirk Steins geschrieben und in Modula 2 implementiert. Die Version
    1.2 sowie alle weiteren sind von mir dann von Grund auf neu in Pure C
    entwickelt worden.
    \begin{description}
      \item[25.06.91] Version 1.0 mit \WDAT\ statt festverdrahteter
                      Filterung (\copyright Johannes G"ottker-Schnetmann).
      \item[09.08.91] Version 1.1 mit kleiner Dialogbox zum An-/Abschalten
                      und Ministatistik (\copyright Dirk Steins).
      \item[09.07.92] Version 1.2h mit nachladbarem \WDAT\ und
                      Tearline-Filtern. Neu in C geschrieben.
      \item[17.11.92] Version 1.2i mit einigen Bug-Fixes, sowie
                      der M"oglichkeit, in allen Gruppen nach Kriterien
                      filtern zu lassen.
      \item[11.02.93] Version 1.3 mit Unterst"utzung der \WD\-Protokollstufe
      	              2, zweiter Dialogbox f"ur Statistikdaten und weiteren
      	              behobenen Fehlern, vor allem beim Nachladen von \WDAT.
      \item[13.02.93] Version 1.31 mit behobenem Redraw-Fehler beim Schlie"sen
                      der Statistik-Dialogbox.
      \item[18.02.93] Version 1.32 mit verbesserten Debug-Informationen und
                      behobenem Fehler bei Behandlung von {\tt ALLE=}
                      Eintr�gen.
      \item[26.03.93] Version 1.33 versteht Whitespaces an einigen Stellen im
                      {\tt WATCHDOG.DAT}.
      \item[16.08.93] Version 1.4 funktioniert jetzt auch unter MultiTOS und Mag!X.
      \item[08.09.93] Version 1.41 mit funktionierendem XACC-Protokoll unter
                      singletasking Betriebssystem.
    \end{description}
\end{document}

