            TempleMon 2.01 (c) Johannes Hill & Thomas Tempelmann
            ====================================================

                                                     Johannes Hill
                                                     6100 Darmstadt, 5.1.1992
                                                     Alicenstrae 30
Verehrte(r) 680x0-Enthusiast(in),

           TempleMon ist ein Maschinensprachemonitor und Debugger

Die Versionen 1.xx und 2.xx sind , aber nur im Ordner zusammen mit den anderen
Dateien LIESMICH, TEMPLMON.PRG und TMONINST.PRG

                            FREI KOPIERBAR!

Sie drfen nicht verkauft werden, ein "Vertrieb" ber sog. PD-Versender wird
allerdings gebilligt.

Die Intention ist dabei, da sich mglichst viele Atari ST-Anwender von diesem
wertvollen Entwicklungswerkzeug berzeugen knnen! Bitte kopieren Sie also den
Ordner mit diesen Dateien an andere Programierer weiter!


-------------------------------------------------------------------------------
                            Installation
-------------------------------------------------------------------------------

Das in GEM eingebundene Installationsprogramm richtet oder modifiziert auf 
Ihrer Bootdiskette oder Ihrer Bootpartition TEMPLMON im Autoordner ein. Alle 
Einstellungen, mit der Sie Ihren persnlich konfigurierten TEMPLMON zusammen-
stellen knnen, knnen Sie entweder ber die Menleiste, oder dem Desktop-
hintergund erreichen. Haben Sie die Control Taste gedrckt, wenn Sie einen 
Meneintrag anwhlen, erscheint zum jeweiligen Men ein Hilfefenster.
Dann bekommen Sie zu jeder Option einen kleinen Hilfetext in diesem Fenster, 
der auf die Option eingeht. Beachten Sie insbesondere die Hilfetexte zum 
Editor, da sie auch auf den Speicherplatzverbrauch eingehen. Defaultmig 
belegt TempleMon sehr viel zustzlichen Speicher fr den Editor.
Die Hilfe erscheint nur, wenn Sie die Option mit gedrckter Control Taste
in der Menzeile anwhlen, nicht jedoch, wenn Sie die Option auf dem Desktop-
hintergrund anwhlen.
Das Installationsprogramm sollte nicht in den Auflsungen ST Low und TT Low 
gestartet werden. Bitte wechseln Sie vorher die Auflsung. Im 
Installationsprogramm selber befindet sich TempleMon. Wenn Sie sich also nur 
das Installationsprogramm und diesen Text kopiert haben, fehlt Ihnen nichts! 
Vielen Dank an Herrn Stefan Wolf, der dieses Installationsprogramm geschrieben 
hat.

Auf das Installationsprogramm wird im folgenden nicht mehr eingegangen, da 
ich wohl richtig in der Annahme gehen kann, da Sie mit dem Umgang eines GEM 
Programmes vertraut sind.


-------------------------------------------------------------------------------
                          ber TempleMon selbst
-------------------------------------------------------------------------------
               (bersicht der aktuellen Features weiter unten)
-------------------------------------------------------------------------------

Sind Sie lediglich Anwender, entwickeln Sie also keine eigenen Programme,
wird dieses Programm sicher nicht so interessant fr Sie sein, ansonsten
sollten Sie nun weiterlesen!

Der Monitor braucht nur einmal gestartet werden (z.B. einfach in den AUTO-
Ordner der Boot-Diskette kopieren), dann hat er sich im System installiert.
Tritt nun ein Fehler auf, der sonst nur so ein paar gar nicht so lustige
Bmbchen auf den Bildschirm zaubert, knnen Sie sich nunmehr freuen, dafr
ausfhrlich vom Monitor unterrichtet zu werden. Und wenn Sie mal kurz in den
Monitor wollen, um im Speicher herumzuwhlen, brauchen Sie nur Control-Help
zu drcken.

Mit dem Befehl "VI" knnen Exceptionvektoren, die von anderen Monitorprogrammen
evtl. zerstrt wurden, wieder eingerichtet werden.

Wenn Sie nun schon vollkommen von diesem Programm begeistert sind, drfen Sie
den nchsten Absatz berpringen.

Um sich die Fhigkeiten des Monitors/Debuggers einmal demonstrieren zu lassen,
stellen Sie sich folgendes vor:
Ein Programm von Ihnen ist noch nicht fehlerfrei. Sie wissen, da unter unbe-
kannten Umstnden igendwelche genau berprfbaren Dinge passieren, z.B, da
eine bestimmte Variable manchmal einen vllig sinnlosen Wert erhlt. Nun knn-
ten Sie sich natrlich an die Arbeit machen, an allen mglichen Stellen Ihres
Programms Abfragen extra dafr einzubauen, um so ungefhr die Stelle zu fin-
den, wo der Fehler erzeugt wird. Doch Tarraaa!! Hier tritt der TempleMon auf
den Plan: Mit Hilfe eines kleinen Hilfsprogramms, das schon bis auf die eigent-
liche Abfrage der Fehlersituation vorprogrammiert ist, knnen Sie den Debugger
anweisen, nach jeder ausgefhrten Assembler-Instruktion das kleine 
Hilfsprogramm aufzurufen, das Sie dann natrlich so programmiert haben, da es
immer direkt die Fehlerauswirkung berprft und bei Erkennen des Fehlers diesen
sofort vom Monitor anzeigen lt. Wie Sie ein solches Hilfsprogramm 
programmieren mssen, und in TempleMon einhngen, steht in der
Programmdokumentation zu TempleMon, die, falls Sie sie schon haben, bei mir
(Johannes) erwerben knnen (s.u.).

Wenn Sie das dann von der Ntzlichkeit dieses Monitors berzeugt, bitten wir
Sie, uns dafr einem Betrag von zwanzig D-Mark zu schicken. Damit zeigen Sie
uns, da unser Programm wieder einen zufriedenen Anwender gefunden hat und
wir senden Ihnen dafr eine noch umfangreichere Anleitung fr den Monitor
mit einigen ntzlichen, praxisbezogenen Tips fr die Fehlersuche.

Um eventuellen Fragen vorzubeugen, lassen Sie sich gleich sagen, da dieser
Monitor nicht mit Symbolen (wie z.B. der SID) arbeiten kann! Auch ist es
nicht mglich, Programme zu laden, um sie dann zu starten. Dies ist konzep-
tionsbedingt bei TempleMon nur schwer lsbar. Stattdessen sollten Sie TempleMon
als stndigen Hintergrundmonitor verwenden, der fr Sie in jeder Situation auf
Fehler aufpat. Er kann also nicht einen vollwertigen Debugger ersetzen, dafr
aber sinnvoll ergnzen!


-------------------------------------------------------------------------------
                     bersicht der aktuellen Features
-------------------------------------------------------------------------------

- erkennt die CPU's 68000/68010/68020/68030/68040 und 68881/68882
- luft auf Atari ST, STE und TT
- luft im Fast Ram des TT und auch in der Auflsung TT-Hoch
- luft mit AutoSwitch OverScan fr den ST und TT
- luft mit OverScan nach der HyperScreen Modifikation aus dem ST Magazin
- bietet einen Fullscreen Editor mit Pufferung der letzten, aus dem Sicht-
  bereich herausgescrollten Zeilen
- beitet einen History-Puffer
- kann die Installation abbrechen (Default mit gedrckter rechter Shift-Taste)
- kann ber Tastatur zu jedem Zeitpunkt aufgerufen werden (Default CONTROL 
  HELP)


-------------------------------------------------------------------------------
                        Zusammenspiel mit SysMon
-------------------------------------------------------------------------------

SysMon ist auch ein Monitor, jedoch nicht fr die CPU, sondern fr das TOS. 
TempleMon und SysMon ergnzen sich ideal. SysMon ist nicht Public Domian. Fr 
weitere Informationen wenden Sie sich bitte an den Autor von SysMon, Karsten 
Isakovic, Wilmersdorfer Strae 82, D-W-1000 Berlin 12. Falls Sie TempleMon 
und SysMon einsetzen, installieren Sie TempleMon vor SysMon, so da auch beim 
Booten zuerst TempleMon und dann SysMon gestartet wird!

Im Zusammenhang mit dem SysMon ab 1.0.5 zustzliche Features:
-------------------------------------------------------------
- Whrend des SysMon-Betriebes aufrufbar ber Shift-Links & Help, Verlassen
  dann wieder mit "G".
- Beim Tracen von Betriebssystemaufrufen kann wahlweise statt der SysMon-
  Anzeige der TempleMon aufgerufen werden! Dies ist mit der Taste D (statt
  INSERT fr +) erreichbar ("D" erscheint zur Kontrolle). In lteren SysMon-
  Versionen existiert dieses Feature auch schon, ggf. ist aber Taste T statt D
  zu benutzen.

Im Zusammenhang mit dem SysMon ab 1.0.7 neues Feature:
------------------------------------------------------
- Beim SysMon kann nun auf zwei verschiedene Art und Weisen beim Tracen 
  TempleMon aktiviert werden:
  1. Vor Ausfhren der Betriebsystemfunktion (Taste I wie INPUT Daten sehen)
  2. Nach Ausfhren der Betriebssystemfunktion (Taste O wie OUTPUT Daten 
     sehen)
  Die Tastenfunktion D bzw. T wurde dafr gestrichen.

Im Zusammenhang mit dem SysMon ab 1.0.8 neues Feature:
------------------------------------------------------
- Im TempleMon ist SysMon aufrufbar ber Shift-Links und Help.
- Im SysMon ist TempleMon ber Shift-Links und Help aufrufbar.
- TempleMon und SysMon knnen gemeinsam einen Bildschirmbereich nutzen. Das 
  bringt in TT Hoch eine Speicherplatzersparnis von 150 KB. Dabei ist 
  unbedingt die Reihenfolge im Autoordner zu beachten! Zuerst TempleMon,
  dann SysMon, da TempleMon SysMon die fr die Komunikation notwendigen
  Routinen zur Verfgung stellt. In TT Hoch bringt das ein ganz neues Gefhl
  beim Debuggen: Die 80 linken Spalten sind von SysMon belegt, die 80 rechten
  Spalten von TempleMon. Zwischen beiden Programmen wird die gleiche 
  Tastenkombination zum Wechsel ins das jeweils andere Programm benutzt. Dies 
  geht immer. Man kann also SysMon aufrufen, und mal schnell TempleMon 
  anspringen, um ein HexDump zu machen, und wieder in SysMon an die 
  unterbrochenen Stelle zurckkehren. Die Rckkehr von TempleMon zum SysMon 
  kann entweder durch Shift-Links-Help oder durch Eingeben des Befehls G
  geschehen. Wurde TempleMon durch SysMon mit dieser Tastenkombination 
  aufgerufen, kann nicht getraced oder der Befehl Q eingegeben werden. Auch 
  der Befehl G ist nur auf 'G' beschrnkt.


-------------------------------------------------------------------------------
                        Die Tastaturfunktionen
-------------------------------------------------------------------------------

ESC               Eingabezeile lschen
CNTRL HOME        Eingabezeile lschen
ALT CNTRL HOME    Letzte Seite des Bildschirmpuffers anspringen
HOME              Start der Eingabezeile anspringen
SHIFT CNTRL HOME  Ende des Bildschirms anspringen
CLR = SHIFT HOME  Bildschirm inkl. Puffer ganz lschen
SHIFT <-          Start der Eingabezeile anspringen
SHIFT ->          Ende der Eingabezeie anspringen
<-                Cursor links bewegen
->                Cursor rechts bewegen
^                 Cursor nach oben bewegen
v                 Cursor nach unten bewegen
CNTRL <-          Ein Wort links springen
CNTRL ->          Ein Wort rechts springen
SHIFT CNTRL <-    Wortanfang anspringen
SHIFT CNTRL ->    Wortende anspringen
INSERT            Zwischen Einfge- und berschreibemodus toggeln. Die Cursor-
                  darstellung ndert sich entsprechend: Ausgefllter Cursor
                  beim Einfgen, Unterstrichcursor beim berschreiben.
SHIFT ^           Letzte Eingabe zurckholen.
SHIFT v           Nachfolgende Eingabezeile holen.
UNDO              Zeile restaurieren, wenn man im Historypuffer geblttert hat
                   und es wieder rckgngig machen will.
CNTRL ^           Eine Seite nach oben blttern.
CNTRL v           Eine Seite nach unten blttern.


-------------------------------------------------------------------------------
                            Der Funktionsumfang
-------------------------------------------------------------------------------

 - Nach der Installation kann der Monitor zu jeder Zeit durch CONTROL-HELP
   aufgerufen werden.
 - "!" zeigt Eingabebereitschaft des Monitors an.
 - Alle Werte sind hexadezimal angegeben/anzugeben!
 - Dezimale Werte knnen mit vorangestelltem "&" eingegeben werden.
 - <f> steht fr die Anfangsadresse, <e> fr die erste ausgeschlossene Adr.!
 - Anstatt <e> kann auch X<n> ( Anzahl in Bytes ) angegeben werden, in manchen
   Fllen kann auch Z<n> ( Anzahl der anzuzeigenden Zeilen ) verwandt werden.
 - Bei den Funktionen "M", "D" und "I" kann statt der Endadr. auch ein Punkt
   eingeben werden, um eine unendliche Auflistung zu erreichen.
 - Als Adresse kann auch ein Registerinhalt ( mit "R<registername>") eingegeben
   werden. Beispiel: "D R PC." disassembliert ab aktueller PC-Adr.
 - Alle Auflistungen knnen mit der /SPACE/-Taste angehalten oder mit einer
   anderen Taste abgebrochen werden.
 - Einer Adresse kann die Offset-Variable O vorangestellt werden (s.u.).
 - Die Tasten /F1/ und /F2/ schalten die Anzeige (!) des Monitor- bzw. des
   Original-Bildschirms um.
 - Zur Beachtung: Verlassen wird TempleMon mit 'G' bzw. 'Q' (s.u.)!

M <f> <e>               Memory dump. Zeigt Speicher byte-weise an.
MW <f> <e>              Memory dump. Zeigt Speicher word-weise an.
ML <f> <e>              Memory dump. Zeigt Speicher longword-weise an.
: <f> <b1> <b2>...      Speichert Bytes <b..> ab Adresse <f>.
:w <f> <w1> <w2>...     Speichert Words <w..> ab Adresse <f>.
:l <l> <l1> <l2>...     Speichert Longwords <l..> ab Adresse <f>.
D <f> <e>               Disassembliert Speicherbereich.
O <offs>                Setzt die Variable "O" auf den Wert <offs>.
C <f> <e> <d>           Kopiert Bytes von <f>..<e>-1 nach <d>..<d>+(<e>-<f>)
V <f> <e> <d>           Verify. Vergleicht Bytes und zeigt Unterschiede an.
H <f> <e> <b1> <b2>...  Hunt. Sucht nach Bytes (? als Joker).
H <f> <e> '<string>           Sucht nach Zeichenkette (? als Joker).
F <f> <e> <b1> <b2>...  Fllt Speicher mit Bytes (? als Joker).
F <f> <e> '<string>     Fllt Speicher mit Zeichenkette (? als Joker).
I <f> <e>               ASCII dump.
' <f> <string>          Speichert ASCII-Zeichenkette in den Speicher.
B                       Zeigt alle Breakpoints (BP) an (Adresse,Zhler,Stand)
B<n> <a> <c> <c0>       Setzt BP Nr. <n> auf Adresse <a>.
B-                      Lscht alle BPs (auch bei "Q"-Befehl!).
  Breakpoints werden beim Verlassen des Monitors gesetzt, sofern das Tracebit
  im SR nicht gesetzt ist (sonst kann die Traceroutine die BPs testen).

G                       Go. Fhrt Programm an unterbrochener Stelle fort.
G <f>                       Verlt Monitor und fhrt auf Adr. <f> fort.
GS <f>                  Ruft Unterprogramm auf, das mit RTS abschliessen
                          mu, um wieder in den Monitor zurckzugelangen.
T+ (T-)                 Tracekontrollmodus einschalten (bzw. ausschalten).
  Wenn der Tracemodus eingeschaltet ist und "G" ausgefhrt wurde, lsen
  folgende Tasten eine Funktion aus :
    /SPACE/ fhrt die angezeigte Instruktion aus.
    /ESC/   verlt Tracekontrollprogramm, um normale Monitorfunktionen
              auszufhren. Rckkehr mit "G".
    /O/     schaltet Anzeige und Tastenabfrage ab und fhrt Programm weiter
              aus. Dabei mu dafr gesorgt werden, da das Programm wieder
              in die Monitoreingabe zurckkehrt, z.B. ber einen BP!
    /A/     wie /O/, jedoch werden alle Instruktionen getraced, also auch
              Trap-Routinen usw., da das Trace-Bit im SR immer wieder gesetzt
              wird. Nur, wenn ein Diskzugriff stattfindet, oder vom Programm
              die Interruptmaske auf 7 gesetzt wurde, wird das Tracebit nicht
              vor Ausfhrung der nchsten Instruktion gesetzt.
    /R/     schaltet Ein-/Ausgabe bis zur Rckkehr aus dem augenblicklichen
              Unterprogramm ab. Ist das T-Flag Null, wird einfach eine Rck-
              sprungadresse in den Monitor auf den Stack geladen. Natrlich
              mu dann A7 so stehen, da beim RTS die Adresse auch vom Stack
              geholt wird. Ist das T-Flag gesetzt, merkt sich der Monitor das
              A7-Register und wartet auf ein RTS, RTE oder RTR, sofern A7 nicht
              kleiner als das gemerkte A7 ist, und schaltet dann die Anzeige
              wieder ein.
    ...     jede Menge neue Funktionen ...

  Fr die folgenden Register-Operationen knnen die Register <reg> mit den
  blichen Abkrzungen (D0,A7,SR,PC,SSP,USP,usw.) angegeben werden.
  Auerdem steht F fr SR, jedoch werden dann die Flags einzeln angezeigt.
  A7 reprsentiert, abhngig vom augenblicklichen Stand des S-Bits im SR,
  den jeweiligen Stackpointer (SSP bzw. USP).
R                       Zeigt die mit "R:" ausgewhlten Register an.
R <reg> = <l>           Setzt Wert <l> in Register.
R: <reg1> <reg2>...     Whlt Register-Default-Anzeige aus (z.B. f. Trace).
R:0                     Whlt Register Auswahl eines 68000 Prozessors aus
R:1                     Whlt Register Auswahl eines 68010 Prozessors aus
R:2                     Whlt Register Auswahl eines 68020 Prozessors aus
R:3                     Whlt Register Auswahl eines 68030 Prozessors aus
R:8                     Schaltet zustzlich die Register einer 68881/82 FPU
                         hinzu
R SR.<SR-Flag> = <v>    Setzt SR-Flag auf <v> (z.B."R SR.C=1" setzt Carry-Flag)
P                       lscht Bildschirm.
Q                       Quit (GEMDOS:PTERM(-1)). Achtung: Wenn vom Desktop in
                        den Monitor gelangt wurde, niemals "Q" auslsen,
                        sondern nur "G" eingeben! "Q" dient zum Abbrechen des
                        gerade aktiv gewesenen Programms, "G" fhrt es weiter
                        aus! Lscht auerdem alle Breakpoints ("B-")
S <dateiname>, <f> <e>  Speichert Bereich v. <f> bis <e>-1 in eine Datei.
P <dateiname>           ffnet Protokolldatei. Alle Ausgaben gehen dann sowohl
                        auf den Bildschirm als auch auf die Datei. Beispiel:
                        "P PRN:" protokolliert alle Ausgaben auf dem Drucker.
PC                      Schliet Protokolldatei.


-------------------------------------------------------------------------------
                      Die Programmdokumentation
-------------------------------------------------------------------------------

Eine ausfhrlichere Anleitung mit hilfreichen Tips zur Fehlersuche sowie
mit Hinweisen zur Programmierung einer OnLine Hilfe Funktion und einer
Makroverarbeitung bei der Eingabe fr TempleMon erhalten Sie noch immer fr
nur DM 30.-! Auerdem knnen Sie uns dadurch gleich Ihre Anerkennung zu 
unserem Programm bekunden. Wenn Sie noch eine einseitig formatierte Disk 
beilegen (achten Sie auf das richtige Porto fr ein Gewicht von 200 bis 250g), 
knnen Sie Glck haben, da wir Ihnen gleich noch eine neue Monitorversion 
draufkopieren. Wenden Sie sich dazu bitte ausschlielich an Johannes.
Die Programmdokumentation umfat derzeit ca. 120 Seiten. Nutzen Sie bitte die 
Umschlaggre B5.

    Mit freundlichen Gren       Johannes Hill, Thomas Tempelmann
