home *** CD-ROM | disk | FTP | other *** search
- TempleMon 2.01 (c) Johannes Hill & Thomas Tempelmann
- ====================================================
-
- Johannes Hill
- 6100 Darmstadt, 5.1.1992
- Alicenstraße 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 dürfen nicht verkauft werden, ein "Vertrieb" über sog. PD-Versender wird
- allerdings gebilligt.
-
- Die Intention ist dabei, daß sich möglichst viele Atari ST-Anwender von diesem
- wertvollen Entwicklungswerkzeug überzeugen können! 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 persönlich konfigurierten TEMPLMON zusammen-
- stellen können, können Sie entweder über die Menüleiste, oder dem Desktop-
- hintergund erreichen. Haben Sie die Control Taste gedrückt, wenn Sie einen
- Menüeintrag anwählen, 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. Defaultmäßig
- belegt TempleMon sehr viel zusätzlichen Speicher für den Editor.
- Die Hilfe erscheint nur, wenn Sie die Option mit gedrückter Control Taste
- in der Menüzeile anwählen, nicht jedoch, wenn Sie die Option auf dem Desktop-
- hintergrund anwählen.
- Das Installationsprogramm sollte nicht in den Auflösungen ST Low und TT Low
- gestartet werden. Bitte wechseln Sie vorher die Auflösung. 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 für 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
- Bömbchen auf den Bildschirm zaubert, können Sie sich nunmehr freuen, dafür
- ausführlich vom Monitor unterrichtet zu werden. Und wenn Sie mal kurz in den
- Monitor wollen, um im Speicher herumzuwühlen, brauchen Sie nur Control-Help
- zu drücken.
-
- Mit dem Befehl "VI" können Exceptionvektoren, die von anderen Monitorprogrammen
- evtl. zerstört wurden, wieder eingerichtet werden.
-
- Wenn Sie nun schon vollkommen von diesem Programm begeistert sind, dürfen Sie
- den nächsten Absatz überpringen.
-
- Um sich die Fähigkeiten 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 Umständen igendwelche genau überprüfbaren Dinge passieren, z.B, daß
- eine bestimmte Variable manchmal einen völlig sinnlosen Wert erhält. Nun könn-
- ten Sie sich natürlich an die Arbeit machen, an allen möglichen Stellen Ihres
- Programms Abfragen extra dafür einzubauen, um so ungefähr 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, können Sie den Debugger
- anweisen, nach jeder ausgeführten Assembler-Instruktion das kleine
- Hilfsprogramm aufzurufen, das Sie dann natürlich so programmiert haben, daß es
- immer direkt die Fehlerauswirkung überprüft und bei Erkennen des Fehlers diesen
- sofort vom Monitor anzeigen läßt. Wie Sie ein solches Hilfsprogramm
- programmieren müssen, und in TempleMon einhängen, steht in der
- Programmdokumentation zu TempleMon, die, falls Sie sie schon haben, bei mir
- (Johannes) erwerben können (s.u.).
-
- Wenn Sie das dann von der Nützlichkeit dieses Monitors überzeugt, bitten wir
- Sie, uns dafür 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 dafür eine noch umfangreichere Anleitung für den Monitor
- mit einigen nützlichen, praxisbezogenen Tips für 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 möglich, Programme zu laden, um sie dann zu starten. Dies ist konzep-
- tionsbedingt bei TempleMon nur schwer lösbar. Stattdessen sollten Sie TempleMon
- als ständigen Hintergrundmonitor verwenden, der für Sie in jeder Situation auf
- Fehler aufpaßt. Er kann also nicht einen vollwertigen Debugger ersetzen, dafür
- aber sinnvoll ergänzen!
-
-
- -------------------------------------------------------------------------------
- Übersicht der aktuellen Features
- -------------------------------------------------------------------------------
-
- - erkennt die CPU's 68000/68010/68020/68030/68040 und 68881/68882
- - läuft auf Atari ST, STE und TT
- - läuft im Fast Ram des TT und auch in der Auflösung TT-Hoch
- - läuft mit AutoSwitch OverScan für den ST und TT
- - läuft 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 gedrückter rechter Shift-Taste)
- - kann über Tastatur zu jedem Zeitpunkt aufgerufen werden (Default CONTROL
- HELP)
-
-
- -------------------------------------------------------------------------------
- Zusammenspiel mit SysMon
- -------------------------------------------------------------------------------
-
- SysMon ist auch ein Monitor, jedoch nicht für die CPU, sondern für das TOS.
- TempleMon und SysMon ergänzen sich ideal. SysMon ist nicht Public Domian. Für
- weitere Informationen wenden Sie sich bitte an den Autor von SysMon, Karsten
- Isakovic, Wilmersdorfer Straße 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 zusätzliche Features:
- -------------------------------------------------------------
- - Während 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 für +) 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 Ausführen der Betriebsystemfunktion (Taste I wie INPUT Daten sehen)
- 2. Nach Ausführen der Betriebssystemfunktion (Taste O wie OUTPUT Daten
- sehen)
- Die Tastenfunktion D bzw. T wurde dafür 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 können 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 für die Komunikation notwendigen
- Routinen zur Verfügung stellt. In TT Hoch bringt das ein ganz neues Gefühl
- 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 zurückkehren. Die Rückkehr 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' beschränkt.
-
-
- -------------------------------------------------------------------------------
- Die Tastaturfunktionen
- -------------------------------------------------------------------------------
-
- ESC Eingabezeile löschen
- CNTRL HOME Eingabezeile löschen
- 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 löschen
- 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 Einfüge- und Überschreibemodus toggeln. Die Cursor-
- darstellung ändert sich entsprechend: Ausgefüllter Cursor
- beim Einfügen, Unterstrichcursor beim überschreiben.
- SHIFT ^ Letzte Eingabe zurückholen.
- SHIFT v Nachfolgende Eingabezeile holen.
- UNDO Zeile restaurieren, wenn man im Historypuffer geblättert hat
- und es wieder rückgängig machen will.
- CNTRL ^ Eine Seite nach oben blättern.
- CNTRL v Eine Seite nach unten blättern.
-
-
- -------------------------------------------------------------------------------
- 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 können mit vorangestelltem "&" eingegeben werden.
- - <f> steht für die Anfangsadresse, <e> für die erste ausgeschlossene Adr.!
- - Anstatt <e> kann auch X<n> ( Anzahl in Bytes ) angegeben werden, in manchen
- Fällen 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 können 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>... Füllt Speicher mit Bytes (? als Joker).
- F <f> <e> '<string> Füllt 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,Zähler,Stand)
- B<n> <a> <c> <c0> Setzt BP Nr. <n> auf Adresse <a>.
- B- Löscht 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. Führt Programm an unterbrochener Stelle fort.
- G <f> Verläßt Monitor und fährt auf Adr. <f> fort.
- GS <f> Ruft Unterprogramm auf, das mit RTS abschliessen
- muß, um wieder in den Monitor zurückzugelangen.
- T+ (T-) Tracekontrollmodus einschalten (bzw. ausschalten).
- Wenn der Tracemodus eingeschaltet ist und "G" ausgeführt wurde, lösen
- folgende Tasten eine Funktion aus :
- /SPACE/ führt die angezeigte Instruktion aus.
- /ESC/ verläßt Tracekontrollprogramm, um normale Monitorfunktionen
- auszuführen. Rückkehr mit "G".
- /O/ schaltet Anzeige und Tastenabfrage ab und führt Programm weiter
- aus. Dabei muß dafür gesorgt werden, daß das Programm wieder
- in die Monitoreingabe zurückkehrt, 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 Ausführung der nächsten Instruktion gesetzt.
- /R/ schaltet Ein-/Ausgabe bis zur Rückkehr aus dem augenblicklichen
- Unterprogramm ab. Ist das T-Flag Null, wird einfach eine Rück-
- sprungadresse in den Monitor auf den Stack geladen. Natürlich
- 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 ...
-
- Für die folgenden Register-Operationen können die Register <reg> mit den
- üblichen Abkürzungen (D0,A7,SR,PC,SSP,USP,usw.) angegeben werden.
- Außerdem steht F für SR, jedoch werden dann die Flags einzeln angezeigt.
- A7 repräsentiert, abhängig vom augenblicklichen Stand des S-Bits im SR,
- den jeweiligen Stackpointer (SSP bzw. USP).
- R Zeigt die mit "R:" ausgewählten Register an.
- R <reg> = <l> Setzt Wert <l> in Register.
- R: <reg1> <reg2>... Wählt Register-Default-Anzeige aus (z.B. f. Trace).
- R:0 Wählt Register Auswahl eines 68000 Prozessors aus
- R:1 Wählt Register Auswahl eines 68010 Prozessors aus
- R:2 Wählt Register Auswahl eines 68020 Prozessors aus
- R:3 Wählt Register Auswahl eines 68030 Prozessors aus
- R:8 Schaltet zusätzlich 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 löscht Bildschirm.
- Q Quit (GEMDOS:PTERM(-1)). Achtung: Wenn vom Desktop in
- den Monitor gelangt wurde, niemals "Q" auslösen,
- sondern nur "G" eingeben! "Q" dient zum Abbrechen des
- gerade aktiv gewesenen Programms, "G" führt es weiter
- aus! Löscht außerdem 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 Schließt Protokolldatei.
-
-
- -------------------------------------------------------------------------------
- Die Programmdokumentation
- -------------------------------------------------------------------------------
-
- Eine ausführlichere Anleitung mit hilfreichen Tips zur Fehlersuche sowie
- mit Hinweisen zur Programmierung einer OnLine Hilfe Funktion und einer
- Makroverarbeitung bei der Eingabe für TempleMon erhalten Sie noch immer für
- nur DM 30.-! Außerdem können Sie uns dadurch gleich Ihre Anerkennung zu
- unserem Programm bekunden. Wenn Sie noch eine einseitig formatierte Disk
- beilegen (achten Sie auf das richtige Porto für ein Gewicht von 200 bis 250g),
- können Sie Glück haben, daß wir Ihnen gleich noch eine neue Monitorversion
- draufkopieren. Wenden Sie sich dazu bitte ausschließlich an Johannes.
- Die Programmdokumentation umfaßt derzeit ca. 120 Seiten. Nutzen Sie bitte die
- Umschlaggröße B5.
-
- Mit freundlichen Grüßen Johannes Hill, Thomas Tempelmann
-