home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / programm.ing / tmpl201c.lzh / LIESMICH next >
Encoding:
Text File  |  1992-01-10  |  18.4 KB  |  326 lines

  1.             TempleMon 2.01 (c) Johannes Hill & Thomas Tempelmann
  2.             ====================================================
  3.  
  4.                                                      Johannes Hill
  5.                                                      6100 Darmstadt, 5.1.1992
  6.                                                      Alicenstraße 30
  7. Verehrte(r) 680x0-Enthusiast(in),
  8.  
  9.            TempleMon ist ein Maschinensprachemonitor und Debugger
  10.  
  11. Die Versionen 1.xx und 2.xx sind , aber nur im Ordner zusammen mit den anderen
  12. Dateien LIESMICH, TEMPLMON.PRG und TMONINST.PRG
  13.  
  14.                             FREI KOPIERBAR!
  15.  
  16. Sie dürfen nicht verkauft werden, ein "Vertrieb" über sog. PD-Versender wird
  17. allerdings gebilligt.
  18.  
  19. Die Intention ist dabei, daß sich möglichst viele Atari ST-Anwender von diesem
  20. wertvollen Entwicklungswerkzeug überzeugen können! Bitte kopieren Sie also den
  21. Ordner mit diesen Dateien an andere Programierer weiter!
  22.  
  23.  
  24. -------------------------------------------------------------------------------
  25.                             Installation
  26. -------------------------------------------------------------------------------
  27.  
  28. Das in GEM eingebundene Installationsprogramm richtet oder modifiziert auf 
  29. Ihrer Bootdiskette oder Ihrer Bootpartition TEMPLMON im Autoordner ein. Alle 
  30. Einstellungen, mit der Sie Ihren persönlich konfigurierten TEMPLMON zusammen-
  31. stellen können, können Sie entweder über die Menüleiste, oder dem Desktop-
  32. hintergund erreichen. Haben Sie die Control Taste gedrückt, wenn Sie einen 
  33. Menüeintrag anwählen, erscheint zum jeweiligen Menü ein Hilfefenster.
  34. Dann bekommen Sie zu jeder Option einen kleinen Hilfetext in diesem Fenster, 
  35. der auf die Option eingeht. Beachten Sie insbesondere die Hilfetexte zum 
  36. Editor, da sie auch auf den Speicherplatzverbrauch eingehen. Defaultmäßig 
  37. belegt TempleMon sehr viel zusätzlichen Speicher für den Editor.
  38. Die Hilfe erscheint nur, wenn Sie die Option mit gedrückter Control Taste
  39. in der Menüzeile anwählen, nicht jedoch, wenn Sie die Option auf dem Desktop-
  40. hintergrund anwählen.
  41. Das Installationsprogramm sollte nicht in den Auflösungen ST Low und TT Low 
  42. gestartet werden. Bitte wechseln Sie vorher die Auflösung. Im 
  43. Installationsprogramm selber befindet sich TempleMon. Wenn Sie sich also nur 
  44. das Installationsprogramm und diesen Text kopiert haben, fehlt Ihnen nichts! 
  45. Vielen Dank an Herrn Stefan Wolf, der dieses Installationsprogramm geschrieben 
  46. hat.
  47.  
  48. Auf das Installationsprogramm wird im folgenden nicht mehr eingegangen, da 
  49. ich wohl richtig in der Annahme gehen kann, daß Sie mit dem Umgang eines GEM 
  50. Programmes vertraut sind.
  51.  
  52.  
  53. -------------------------------------------------------------------------------
  54.                           Über TempleMon selbst
  55. -------------------------------------------------------------------------------
  56.                (Übersicht der aktuellen Features weiter unten)
  57. -------------------------------------------------------------------------------
  58.  
  59. Sind Sie lediglich Anwender, entwickeln Sie also keine eigenen Programme,
  60. wird dieses Programm sicher nicht so interessant für Sie sein, ansonsten
  61. sollten Sie nun weiterlesen!
  62.  
  63. Der Monitor braucht nur einmal gestartet werden (z.B. einfach in den AUTO-
  64. Ordner der Boot-Diskette kopieren), dann hat er sich im System installiert.
  65. Tritt nun ein Fehler auf, der sonst nur so ein paar gar nicht so lustige
  66. Bömbchen auf den Bildschirm zaubert, können Sie sich nunmehr freuen, dafür
  67. ausführlich vom Monitor unterrichtet zu werden. Und wenn Sie mal kurz in den
  68. Monitor wollen, um im Speicher herumzuwühlen, brauchen Sie nur Control-Help
  69. zu drücken.
  70.  
  71. Mit dem Befehl "VI" können Exceptionvektoren, die von anderen Monitorprogrammen
  72. evtl. zerstört wurden, wieder eingerichtet werden.
  73.  
  74. Wenn Sie nun schon vollkommen von diesem Programm begeistert sind, dürfen Sie
  75. den nächsten Absatz überpringen.
  76.  
  77. Um sich die Fähigkeiten des Monitors/Debuggers einmal demonstrieren zu lassen,
  78. stellen Sie sich folgendes vor:
  79. Ein Programm von Ihnen ist noch nicht fehlerfrei. Sie wissen, daß unter unbe-
  80. kannten Umständen igendwelche genau überprüfbaren Dinge passieren, z.B, daß
  81. eine bestimmte Variable manchmal einen völlig sinnlosen Wert erhält. Nun könn-
  82. ten Sie sich natürlich an die Arbeit machen, an allen möglichen Stellen Ihres
  83. Programms Abfragen extra dafür einzubauen, um so ungefähr die Stelle zu fin-
  84. den, wo der Fehler erzeugt wird. Doch Tarraaa!! Hier tritt der TempleMon auf
  85. den Plan: Mit Hilfe eines kleinen Hilfsprogramms, das schon bis auf die eigent-
  86. liche Abfrage der Fehlersituation vorprogrammiert ist, können Sie den Debugger
  87. anweisen, nach jeder ausgeführten Assembler-Instruktion das kleine 
  88. Hilfsprogramm aufzurufen, das Sie dann natürlich so programmiert haben, daß es
  89. immer direkt die Fehlerauswirkung überprüft und bei Erkennen des Fehlers diesen
  90. sofort vom Monitor anzeigen läßt. Wie Sie ein solches Hilfsprogramm 
  91. programmieren müssen, und in TempleMon einhängen, steht in der
  92. Programmdokumentation zu TempleMon, die, falls Sie sie schon haben, bei mir
  93. (Johannes) erwerben können (s.u.).
  94.  
  95. Wenn Sie das dann von der Nützlichkeit dieses Monitors überzeugt, bitten wir
  96. Sie, uns dafür einem Betrag von zwanzig D-Mark zu schicken. Damit zeigen Sie
  97. uns, daß unser Programm wieder einen zufriedenen Anwender gefunden hat und
  98. wir senden Ihnen dafür eine noch umfangreichere Anleitung für den Monitor
  99. mit einigen nützlichen, praxisbezogenen Tips für die Fehlersuche.
  100.  
  101. Um eventuellen Fragen vorzubeugen, lassen Sie sich gleich sagen, daß dieser
  102. Monitor nicht mit Symbolen (wie z.B. der SID) arbeiten kann! Auch ist es
  103. nicht möglich, Programme zu laden, um sie dann zu starten. Dies ist konzep-
  104. tionsbedingt bei TempleMon nur schwer lösbar. Stattdessen sollten Sie TempleMon
  105. als ständigen Hintergrundmonitor verwenden, der für Sie in jeder Situation auf
  106. Fehler aufpaßt. Er kann also nicht einen vollwertigen Debugger ersetzen, dafür
  107. aber sinnvoll ergänzen!
  108.  
  109.  
  110. -------------------------------------------------------------------------------
  111.                      Übersicht der aktuellen Features
  112. -------------------------------------------------------------------------------
  113.  
  114. - erkennt die CPU's 68000/68010/68020/68030/68040 und 68881/68882
  115. - läuft auf Atari ST, STE und TT
  116. - läuft im Fast Ram des TT und auch in der Auflösung TT-Hoch
  117. - läuft mit AutoSwitch OverScan für den ST und TT
  118. - läuft mit OverScan nach der HyperScreen Modifikation aus dem ST Magazin
  119. - bietet einen Fullscreen Editor mit Pufferung der letzten, aus dem Sicht-
  120.   bereich herausgescrollten Zeilen
  121. - beitet einen History-Puffer
  122. - kann die Installation abbrechen (Default mit gedrückter rechter Shift-Taste)
  123. - kann über Tastatur zu jedem Zeitpunkt aufgerufen werden (Default CONTROL 
  124.   HELP)
  125.  
  126.  
  127. -------------------------------------------------------------------------------
  128.                         Zusammenspiel mit SysMon
  129. -------------------------------------------------------------------------------
  130.  
  131. SysMon ist auch ein Monitor, jedoch nicht für die CPU, sondern für das TOS. 
  132. TempleMon und SysMon ergänzen sich ideal. SysMon ist nicht Public Domian. Für 
  133. weitere Informationen wenden Sie sich bitte an den Autor von SysMon, Karsten 
  134. Isakovic, Wilmersdorfer Straße 82, D-W-1000 Berlin 12. Falls Sie TempleMon 
  135. und SysMon einsetzen, installieren Sie TempleMon vor SysMon, so daß auch beim 
  136. Booten zuerst TempleMon und dann SysMon gestartet wird!
  137.  
  138. Im Zusammenhang mit dem SysMon ab 1.0.5 zusätzliche Features:
  139. -------------------------------------------------------------
  140. - Während des SysMon-Betriebes aufrufbar über Shift-Links & Help, Verlassen
  141.   dann wieder mit "G".
  142. - Beim Tracen von Betriebssystemaufrufen kann wahlweise statt der SysMon-
  143.   Anzeige der TempleMon aufgerufen werden! Dies ist mit der Taste D (statt
  144.   INSERT für +) erreichbar ("D" erscheint zur Kontrolle). In älteren SysMon-
  145.   Versionen existiert dieses Feature auch schon, ggf. ist aber Taste T statt D
  146.   zu benutzen.
  147.  
  148. Im Zusammenhang mit dem SysMon ab 1.0.7 neues Feature:
  149. ------------------------------------------------------
  150. - Beim SysMon kann nun auf zwei verschiedene Art und Weisen beim Tracen 
  151.   TempleMon aktiviert werden:
  152.   1. Vor Ausführen der Betriebsystemfunktion (Taste I wie INPUT Daten sehen)
  153.   2. Nach Ausführen der Betriebssystemfunktion (Taste O wie OUTPUT Daten 
  154.      sehen)
  155.   Die Tastenfunktion D bzw. T wurde dafür gestrichen.
  156.  
  157. Im Zusammenhang mit dem SysMon ab 1.0.8 neues Feature:
  158. ------------------------------------------------------
  159. - Im TempleMon ist SysMon aufrufbar über Shift-Links und Help.
  160. - Im SysMon ist TempleMon über Shift-Links und Help aufrufbar.
  161. - TempleMon und SysMon können gemeinsam einen Bildschirmbereich nutzen. Das 
  162.   bringt in TT Hoch eine Speicherplatzersparnis von 150 KB. Dabei ist 
  163.   unbedingt die Reihenfolge im Autoordner zu beachten! Zuerst TempleMon,
  164.   dann SysMon, da TempleMon SysMon die für die Komunikation notwendigen
  165.   Routinen zur Verfügung stellt. In TT Hoch bringt das ein ganz neues Gefühl
  166.   beim Debuggen: Die 80 linken Spalten sind von SysMon belegt, die 80 rechten
  167.   Spalten von TempleMon. Zwischen beiden Programmen wird die gleiche 
  168.   Tastenkombination zum Wechsel ins das jeweils andere Programm benutzt. Dies 
  169.   geht immer. Man kann also SysMon aufrufen, und mal schnell TempleMon 
  170.   anspringen, um ein HexDump zu machen, und wieder in SysMon an die 
  171.   unterbrochenen Stelle zurückkehren. Die Rückkehr von TempleMon zum SysMon 
  172.   kann entweder durch Shift-Links-Help oder durch Eingeben des Befehls G
  173.   geschehen. Wurde TempleMon durch SysMon mit dieser Tastenkombination 
  174.   aufgerufen, kann nicht getraced oder der Befehl Q eingegeben werden. Auch 
  175.   der Befehl G ist nur auf 'G' beschränkt.
  176.  
  177.  
  178. -------------------------------------------------------------------------------
  179.                         Die Tastaturfunktionen
  180. -------------------------------------------------------------------------------
  181.  
  182. ESC               Eingabezeile löschen
  183. CNTRL HOME        Eingabezeile löschen
  184. ALT CNTRL HOME    Letzte Seite des Bildschirmpuffers anspringen
  185. HOME              Start der Eingabezeile anspringen
  186. SHIFT CNTRL HOME  Ende des Bildschirms anspringen
  187. CLR = SHIFT HOME  Bildschirm inkl. Puffer ganz löschen
  188. SHIFT <-          Start der Eingabezeile anspringen
  189. SHIFT ->          Ende der Eingabezeie anspringen
  190. <-                Cursor links bewegen
  191. ->                Cursor rechts bewegen
  192. ^                 Cursor nach oben bewegen
  193. v                 Cursor nach unten bewegen
  194. CNTRL <-          Ein Wort links springen
  195. CNTRL ->          Ein Wort rechts springen
  196. SHIFT CNTRL <-    Wortanfang anspringen
  197. SHIFT CNTRL ->    Wortende anspringen
  198. INSERT            Zwischen Einfüge- und Überschreibemodus toggeln. Die Cursor-
  199.                   darstellung ändert sich entsprechend: Ausgefüllter Cursor
  200.                   beim Einfügen, Unterstrichcursor beim überschreiben.
  201. SHIFT ^           Letzte Eingabe zurückholen.
  202. SHIFT v           Nachfolgende Eingabezeile holen.
  203. UNDO              Zeile restaurieren, wenn man im Historypuffer geblättert hat
  204.                    und es wieder rückgängig machen will.
  205. CNTRL ^           Eine Seite nach oben blättern.
  206. CNTRL v           Eine Seite nach unten blättern.
  207.  
  208.  
  209. -------------------------------------------------------------------------------
  210.                             Der Funktionsumfang
  211. -------------------------------------------------------------------------------
  212.  
  213.  - Nach der Installation kann der Monitor zu jeder Zeit durch CONTROL-HELP
  214.    aufgerufen werden.
  215.  - "!" zeigt Eingabebereitschaft des Monitors an.
  216.  - Alle Werte sind hexadezimal angegeben/anzugeben!
  217.  - Dezimale Werte können mit vorangestelltem "&" eingegeben werden.
  218.  - <f> steht für die Anfangsadresse, <e> für die erste ausgeschlossene Adr.!
  219.  - Anstatt <e> kann auch X<n> ( Anzahl in Bytes ) angegeben werden, in manchen
  220.    Fällen kann auch Z<n> ( Anzahl der anzuzeigenden Zeilen ) verwandt werden.
  221.  - Bei den Funktionen "M", "D" und "I" kann statt der Endadr. auch ein Punkt
  222.    eingeben werden, um eine unendliche Auflistung zu erreichen.
  223.  - Als Adresse kann auch ein Registerinhalt ( mit "R<registername>") eingegeben
  224.    werden. Beispiel: "D R PC." disassembliert ab aktueller PC-Adr.
  225.  - Alle Auflistungen können mit der /SPACE/-Taste angehalten oder mit einer
  226.    anderen Taste abgebrochen werden.
  227.  - Einer Adresse kann die Offset-Variable O vorangestellt werden (s.u.).
  228.  - Die Tasten /F1/ und /F2/ schalten die Anzeige (!) des Monitor- bzw. des
  229.    Original-Bildschirms um.
  230.  - Zur Beachtung: Verlassen wird TempleMon mit 'G' bzw. 'Q' (s.u.)!
  231.  
  232. M <f> <e>               Memory dump. Zeigt Speicher byte-weise an.
  233. MW <f> <e>              Memory dump. Zeigt Speicher word-weise an.
  234. ML <f> <e>              Memory dump. Zeigt Speicher longword-weise an.
  235. : <f> <b1> <b2>...      Speichert Bytes <b..> ab Adresse <f>.
  236. :w <f> <w1> <w2>...     Speichert Words <w..> ab Adresse <f>.
  237. :l <l> <l1> <l2>...     Speichert Longwords <l..> ab Adresse <f>.
  238. D <f> <e>               Disassembliert Speicherbereich.
  239. O <offs>                Setzt die Variable "O" auf den Wert <offs>.
  240. C <f> <e> <d>           Kopiert Bytes von <f>..<e>-1 nach <d>..<d>+(<e>-<f>)
  241. V <f> <e> <d>           Verify. Vergleicht Bytes und zeigt Unterschiede an.
  242. H <f> <e> <b1> <b2>...  Hunt. Sucht nach Bytes (? als Joker).
  243. H <f> <e> '<string>           Sucht nach Zeichenkette (? als Joker).
  244. F <f> <e> <b1> <b2>...  Füllt Speicher mit Bytes (? als Joker).
  245. F <f> <e> '<string>     Füllt Speicher mit Zeichenkette (? als Joker).
  246. I <f> <e>               ASCII dump.
  247. ' <f> <string>          Speichert ASCII-Zeichenkette in den Speicher.
  248. B                       Zeigt alle Breakpoints (BP) an (Adresse,Zähler,Stand)
  249. B<n> <a> <c> <c0>       Setzt BP Nr. <n> auf Adresse <a>.
  250. B-                      Löscht alle BPs (auch bei "Q"-Befehl!).
  251.   Breakpoints werden beim Verlassen des Monitors gesetzt, sofern das Tracebit
  252.   im SR nicht gesetzt ist (sonst kann die Traceroutine die BPs testen).
  253.  
  254. G                       Go. Führt Programm an unterbrochener Stelle fort.
  255. G <f>                       Verläßt Monitor und fährt auf Adr. <f> fort.
  256. GS <f>                  Ruft Unterprogramm auf, das mit RTS abschliessen
  257.                           muß, um wieder in den Monitor zurückzugelangen.
  258. T+ (T-)                 Tracekontrollmodus einschalten (bzw. ausschalten).
  259.   Wenn der Tracemodus eingeschaltet ist und "G" ausgeführt wurde, lösen
  260.   folgende Tasten eine Funktion aus :
  261.     /SPACE/ führt die angezeigte Instruktion aus.
  262.     /ESC/   verläßt Tracekontrollprogramm, um normale Monitorfunktionen
  263.               auszuführen. Rückkehr mit "G".
  264.     /O/     schaltet Anzeige und Tastenabfrage ab und führt Programm weiter
  265.               aus. Dabei muß dafür gesorgt werden, daß das Programm wieder
  266.               in die Monitoreingabe zurückkehrt, z.B. über einen BP!
  267.     /A/     wie /O/, jedoch werden alle Instruktionen getraced, also auch
  268.               Trap-Routinen usw., da das Trace-Bit im SR immer wieder gesetzt
  269.               wird. Nur, wenn ein Diskzugriff stattfindet, oder vom Programm
  270.               die Interruptmaske auf 7 gesetzt wurde, wird das Tracebit nicht
  271.               vor Ausführung der nächsten Instruktion gesetzt.
  272.     /R/     schaltet Ein-/Ausgabe bis zur Rückkehr aus dem augenblicklichen
  273.               Unterprogramm ab. Ist das T-Flag Null, wird einfach eine Rück-
  274.               sprungadresse in den Monitor auf den Stack geladen. Natürlich
  275.               muß dann A7 so stehen, daß beim RTS die Adresse auch vom Stack
  276.               geholt wird. Ist das T-Flag gesetzt, merkt sich der Monitor das
  277.               A7-Register und wartet auf ein RTS, RTE oder RTR, sofern A7 nicht
  278.               kleiner als das gemerkte A7 ist, und schaltet dann die Anzeige
  279.               wieder ein.
  280.     ...     jede Menge neue Funktionen ...
  281.  
  282.   Für die folgenden Register-Operationen können die Register <reg> mit den
  283.   üblichen Abkürzungen (D0,A7,SR,PC,SSP,USP,usw.) angegeben werden.
  284.   Außerdem steht F für SR, jedoch werden dann die Flags einzeln angezeigt.
  285.   A7 repräsentiert, abhängig vom augenblicklichen Stand des S-Bits im SR,
  286.   den jeweiligen Stackpointer (SSP bzw. USP).
  287. R                       Zeigt die mit "R:" ausgewählten Register an.
  288. R <reg> = <l>           Setzt Wert <l> in Register.
  289. R: <reg1> <reg2>...     Wählt Register-Default-Anzeige aus (z.B. f. Trace).
  290. R:0                     Wählt Register Auswahl eines 68000 Prozessors aus
  291. R:1                     Wählt Register Auswahl eines 68010 Prozessors aus
  292. R:2                     Wählt Register Auswahl eines 68020 Prozessors aus
  293. R:3                     Wählt Register Auswahl eines 68030 Prozessors aus
  294. R:8                     Schaltet zusätzlich die Register einer 68881/82 FPU
  295.                          hinzu
  296. R SR.<SR-Flag> = <v>    Setzt SR-Flag auf <v> (z.B."R SR.C=1" setzt Carry-Flag)
  297. P                       löscht Bildschirm.
  298. Q                       Quit (GEMDOS:PTERM(-1)). Achtung: Wenn vom Desktop in
  299.                         den Monitor gelangt wurde, niemals "Q" auslösen,
  300.                         sondern nur "G" eingeben! "Q" dient zum Abbrechen des
  301.                         gerade aktiv gewesenen Programms, "G" führt es weiter
  302.                         aus! Löscht außerdem alle Breakpoints ("B-")
  303. S <dateiname>, <f> <e>  Speichert Bereich v. <f> bis <e>-1 in eine Datei.
  304. P <dateiname>           Öffnet Protokolldatei. Alle Ausgaben gehen dann sowohl
  305.                         auf den Bildschirm als auch auf die Datei. Beispiel:
  306.                         "P PRN:" protokolliert alle Ausgaben auf dem Drucker.
  307. PC                      Schließt Protokolldatei.
  308.  
  309.  
  310. -------------------------------------------------------------------------------
  311.                       Die Programmdokumentation
  312. -------------------------------------------------------------------------------
  313.  
  314. Eine ausführlichere Anleitung mit hilfreichen Tips zur Fehlersuche sowie
  315. mit Hinweisen zur Programmierung einer OnLine Hilfe Funktion und einer
  316. Makroverarbeitung bei der Eingabe für TempleMon erhalten Sie noch immer für
  317. nur DM 30.-! Außerdem können Sie uns dadurch gleich Ihre Anerkennung zu 
  318. unserem Programm bekunden. Wenn Sie noch eine einseitig formatierte Disk 
  319. beilegen (achten Sie auf das richtige Porto für ein Gewicht von 200 bis 250g), 
  320. können Sie Glück haben, daß wir Ihnen gleich noch eine neue Monitorversion 
  321. draufkopieren. Wenden Sie sich dazu bitte ausschließlich an Johannes.
  322. Die Programmdokumentation umfaßt derzeit ca. 120 Seiten. Nutzen Sie bitte die 
  323. Umschlaggröße B5.
  324.  
  325.     Mit freundlichen Grüßen       Johannes Hill, Thomas Tempelmann
  326.