home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / SYSTEMON.LZH / SYSMON / SYS_MON.TXT < prev   
Text File  |  1990-06-20  |  80KB  |  1,785 lines

  1.        ⌠ SysMon der ATARI-ST SystemMonitor Version 1.0.4 ⌠
  2.        |-------------------------------------------------|
  3.        ⌡    Copyright (C) by Karsten Isakovic, Berlin    ⌡
  4.  
  5.                  ist ein Shareware Programm von
  6.  
  7.                   Karsten Isakovic geb. Gerlach
  8.                       WilmersdorferStr 82
  9.                          1000 Berlin 12
  10.  
  11.  
  12.  
  13.  
  14.         INHALTSVERZEICHNIS          
  15. ===================================================
  16.  
  17. 1.    Installation
  18. ---------------------------------------------------
  19. 1.1     Unterstützte Hardware
  20. 1.2     Unterstützte TOS-Versionen
  21. 1.3     Starten von SysMon
  22.  
  23. 2.    Allgemeine Bedienung
  24. ---------------------------------------------------
  25. 2.1     Die Menüleiste
  26. 2.2     Die Tastaturkommandos
  27. 2.3     Funktionens-Listen
  28. 2.4     Ausblenden von Funktionen
  29. 2.5     Die Modi des SysMon
  30. 2.6     Das STEP-Menü
  31. 2.7     Umschalten des Bildschirms
  32. 2.8     Setups
  33. 2.9     Zurückscrollen der Trace-Ausgaben
  34.  
  35. 3.    Das SysMon Menü
  36. ---------------------------------------------------
  37. 3.1     Übersicht
  38. 3.2     C - Configuration
  39. 3.3     P - Programms
  40. 3.4     M - Memory
  41. 3.5     T - Traps
  42. 3.6     O - OS-Vars
  43. 3.7     D - Display
  44. 3.8     F - proFile
  45. 3.9     U - UsedTraps
  46. 3.10    N - Notepad
  47. 3.11    W - Write
  48. 3.12    R - ReRead
  49. 3.13    Q - Quit
  50.  
  51. 4.    Der Aufbau der Ausgabezeilen
  52. ---------------------------------------------------
  53. 4.1     Aufbau der Tracerzeilen
  54. 4.2     Ausgabe Beispiele
  55. 4.3     Das Protokollfile
  56.  
  57. 5.    Besonderheiten
  58. ---------------------------------------------------
  59. 5.1     AES
  60. 5.2     VDI
  61. 5.3     GEMDOS
  62. 5.4     BIOS
  63. 5.5     XBIOS
  64. 5.6     LINE_A
  65. 5.7     Setup-abhängiges Tracen
  66.  
  67. 6.    Die Traps
  68. ---------------------------------------------------
  69. 6.1     SysMon Traps
  70. 6.2     Der SysTable
  71. 6.3     Erweiterte Bypass Funktion
  72. 6.4     PD-Wechsel und Trap-Überwachung
  73.  
  74. 7.    Beispiel Sitzungen
  75. ---------------------------------------------------
  76. 7.1     Stepweises Booten des Rechners
  77. 7.2     Tracen einzelner AES-Aufrufe
  78. 7.3     Tracen eines ACC-Protokolls
  79. 7.4     Tracen eines Programmes
  80. 7.5     Fehler im Betriebssystem entdecken
  81.  
  82. 8.    Erweiterte Informationen
  83. ---------------------------------------------------
  84. 8.1     Patchvariablen
  85. 8.2     Unbekannte TOS-Versionen
  86. 8.3     Spezielle Anpassungen
  87. 8.3.1     Farbbildschirme
  88. 8.3.2     Gro₧bildschirme
  89. 8.3.3     OverScan
  90. 8.3.4     STE
  91. 8.3.5     TT
  92. 8.3.6     68000-68030
  93. 8.4     Interna
  94. 8.5     Bugs / Features
  95. 8.6     Erweiterungen
  96.  
  97. 9.    Shareware Bedingungen
  98. ---------------------------------------------------
  99.  
  100. 10.   Kontaktadressen
  101. ---------------------------------------------------
  102. 10.1    Über die gelbe Post
  103. 10.2    Über Mailboxen
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.         1. Installation
  111. ===================================================
  112.  
  113.    1.1 Unterstützte Hardware
  114. ----------------------------
  115. Der SysMon läuft in Schwarz/Wei₧ und Farbe, benutzt aber eigene
  116. Routinen zur Ausgabe auf einer 2.Bildschirmseite. 
  117.  
  118. SysMon läuft nicht nur in den Standard-auflösungen. Die MATRIX 
  119. Schwarzwei₧- und Farb- Gro₧bildschirme und die MAXXON-MGE Grafikkarte 
  120. werden in soweit unterstützt, da₧ alle Ausgaben auf dem als Zweit-
  121. Monitor installierten SM124 stattfinden und so ein komfortables
  122. Debugging möglich ist.
  123.  
  124. Die verschiedenen Overscan Erweiterungen werden erkannt und 
  125. unterstützt.
  126.  
  127. Au₧er der Ausgabe auf dem Monitor ist auch das Remote Debugging mit
  128. Aus- und Eingabe über die Modem-,Printer- oder Midi- Schnittstelle
  129. möglich. 
  130.  
  131. Siehe Abschnitt 8.3 .
  132.  
  133.  
  134.    1.2 Unterstützte TOS-Versionen
  135. ---------------------------------
  136. Der SysMon arbeitet mit allen TOS-Versionen. Bei Versionen, die nicht
  137. in Tabelle -1- aufgeführt sind, mu₧ SysMon erst die undokumentierten
  138. Systemvariablen herausfinden. Siehe Abschnitt 8.2 .
  139.  
  140.            Art | Version |  Datum   | Bemerkung
  141.            ----+---------+-----------------------------
  142.            ROM |  030    | 23.05.89 | TT-Tos
  143.            ROM |  1.6    | 29.07.89 | Ste-TOS
  144.            ROM |  1.4    | 06.04.89 |
  145.            ROM |  1.4    | 22.02.89 |
  146.            RAM |  1.4    | 06.04.89 | reloziertes Rom-TOS
  147.            RAM |  1.4    | 18.05.88 | Beta-TOS
  148.            RAM |  1.4    | 22.02.88 |
  149.            ROM |  1.2    | 22.04.87 | BlitterTOS
  150.            RAM |  1.2    | 22.04.87 | Kaos-TOS
  151.            ROM |  1.0    | 06.02.86 |
  152.            RAM |  1.0    | 06.02.86 |
  153.            RAM |  1.0    | 20.11.85 |
  154.            RAM |  1.0    | 29.05.85 | Mushroom-TOS
  155.  
  156.              Tabelle -1- Getestete TOS-Versionen
  157.  
  158.  
  159.    1.3 Starten von SysMon
  160. -------------------------
  161. SysMon kann entweder aus dem Auto-Ordner oder vom Desktop gestartet
  162. werden.
  163. Das Programm belegt ca 125 K an Programm Code und ca 75 K Daten. 
  164. Aufgerufen wird SysMon durch die Tastenkombination RechtsShift-Help.
  165. Verlassen wird SysMon durch Drücken der SPACE-Taste oder durch den
  166. Menüpunkt QUIT.
  167.  
  168. Man kann die Installation durch das Gedrückthalten der Alternate-Taste
  169. abbrechen oder durch das Gedrückthalten der Control-Taste das Laden 
  170. der Sys_Mon.Inf Datei unterbinden. 
  171.  
  172. Während Diskzugriffen kann der SysMon nicht betreten werden, da es
  173. ansonsten zu Timing-Problemen kommen könnte. Die Auswertung erfolgt
  174. über die Systemvariable 'flock'. Es gibt allerdings ein paar Programme,
  175. die durch andauerndes Setzen dieser Variable den Zutritt zu SysMon
  176. versperren.(z.B. FCOPY3 während Scan/Copy/Format) Aus diesem Grunde 
  177. kann die 'flock'-Abfrage übersprungen werden, indem man zusätzlich zu
  178. RechtsShift-Help die Caps-Lock Taste drückt.
  179.  
  180.         2. Allgemeine Bedienung
  181. ===================================================
  182.  
  183.    2.1 Die Menüleiste
  184. ---------------------
  185. Der Zustand des SysMon wird durch Gro₧-/Kleinschrift der Menüpunkte
  186. angezeigt. Der Aufbau der Menüzeile ist wie folgt :
  187.  
  188. - Der Menüpunkt SysMon wird gro₧ geschrieben, wenn das Tracen
  189.   überhaupt angeschaltet ist. Wird er klein geschrieben, werden alle
  190.   anderen Einstellungen ignoriert.
  191. - Die Menüpunkte AES, VDI, GEMDOS, BIOS, XBIOS und LINE_A stellen die
  192.   möglichen Gruppen der Betriebssystem Aufrufe dar. Nur wenn ein
  193.   Menüpunkt gro₧ geschrieben ist, können die zu dieser Gruppen
  194.   gehörenden Funktionen getraced werden.
  195. - Die Nummer und der Kommentar des aktiven Setups werden ausgegeben.
  196.   Siehe Abschnitt 3.2 .
  197. - Der Modus von SysMon wird ausgegeben. Siehe Abschnitt 2.5 .
  198.  
  199. Unter dem Menüpunkt SysMon werden alle zusätzlichen Möglichkeiten des
  200. SysMon angeboten. Eine Übersicht ist in Kapitel 3.1 zu finden.
  201.  
  202.    2.2 Die Tastaturkommandos
  203. ----------------------------
  204. SysMon wird komplett mit der Tastatur bedient, die einzelnen Menüpunkte
  205. werden durch Drücken des Anfangsbuchstabens oder durch Wandern mit den
  206. Cursortasten angewählt.
  207.  
  208. Die Oberfläche von SysMon ist mit einem einfach Fenstersystem ausge-
  209. stattet. Innerhalb eines Fensters wird die aktuelle Zeile durch einen
  210. invertierten Balken dargestellt. Die Cursorposition wird für jedes
  211. Fenster getrennt verwaltet, so da₧ der Cursor beim erneuten Aufrufs an
  212. der Stelle steht, wo er beim Verlassen des Fensters stand. Der Cursor 
  213. kann mit den Cursortasten rauf und runter bewegt werden. Zusammen mit
  214. der Shifttaste kann auch seitenweise gewandert werden.
  215.  
  216.           Zustanz |  Taste     | Bedeutung
  217.         ----------+------------+-----------------------------
  218.                   | left/right | Wechseln des Menüpunktes
  219.                   | up  /down  | Zeilenweise Rauf bzw Runter
  220.           Shift   | up  /down  | Seitenweise Rauf/Runter
  221.           Control | up  /down  | Auswählen eines Blockes
  222.                   | Home       | Anfang
  223.           Shift   | Home       | Ende
  224.  
  225.                   Tabelle -2- Bewegungs Kommandos
  226.  
  227. In Funktionslisten kann man mit den Tasten der Tabelle -5-
  228. den Zustand der jeweiligen Funktion ändern. Es ist aber auch möglich
  229. zusammen mit der Cursortaste die Controltaste gedrückt zu halten und
  230. dadurch einen Block aus zu wählen, dessen Zustand dann auf einmal
  231. beeinflu₧t werden kann.
  232.  
  233. In manchen Fenstern kann man die Darstellungsart der Informationen
  234. beeinflussen, bzw. Informationen ausblenden. Die Umschaltung der
  235. einzelnen Optionen erfolgt über Tasten, die oben rechts im Fensterrand
  236. angezeigt werden. Eine Option ist eingeschaltet, wenn der Kennbuchstabe
  237. gro₧ geschrieben wird. In der Tabelle -3- sind weitere Kommandos im
  238. Zusammenhang mit Optionen aufgeführt.
  239.  
  240.          Zustanz |  Taste  | Bedeutung
  241.         ---------+---------+-----------------------------
  242.          Control | Up/Down | Zum nächsten Block springen
  243.                  | Delete  | Alle Optionen löschen 
  244.                  | Insert  | Alle Optionen setzen   
  245.  
  246.             Tabelle -3- Option Kommandos
  247.  
  248. Die erweiterten Steuerkommandos der Tabelle -4- gelten innerhalb aller
  249. Fenster und Menüs. Diese Kommandos sind so aufgebaut, da₧ sie aus dem
  250. gleichzeitigen Drücken der Controltaste und dem Anfangsbuchstaben der 
  251. auszulösenden Funktion bestehen. 
  252.  
  253.           Taste  | 
  254.         ---------+--------- Globale Einstellung
  255.            ESC   | Tracer global 
  256.            TAB   | Tracer mode
  257.          F1--F10 | Setup 
  258.         ---------+--------- Umschaltung von Gruppen
  259.            ^A    | AES   
  260.            ^V    | VDI   
  261.            ^G    | GEMDOS
  262.            ^B    | BIOS  
  263.            ^X    | XBIOS 
  264.            ^L    | LINE_A
  265.         ---------+--------- Aufbau der Ausgabezeile
  266.            ^R    | Return address
  267.            ^C    | Caller name
  268.            ^N    | Number of function
  269.            ^O    | Output stack pointer
  270.            ^F    | Flag supervisor mode
  271.            ^E    | Extra output 
  272.            ^W    | WatchBypass 
  273.         ---------+--------- Zusätzliche Ausgaben
  274.            ^P    | PD-changes
  275.            ^T    | Trap-changes
  276.         ---------+--------- Sonstiges
  277.            Undo  | Fenster schlie₧en
  278.            Help  | Hilfe Fenster
  279.            ^Z    | Zap (Bildschirm löschen) 
  280.            *     | Fenster in Protokollfile ausgeben
  281.  
  282.       Tabelle -4- Globale Tastenkombinationen
  283.  
  284. Die beiden wichtigsten Tasten sind :
  285. - Jedes Fenster von SysMon kann mit der UNDO-Taste wieder geschlo₧en
  286.   werden.
  287. - Der SysMon wird durch Drücken der SPACE-Taste wieder 
  288.   verlassen.
  289.  
  290.    2.3 Funktions-Listen
  291. -----------------------
  292. Innerhalb der Menüpunkte AES bis LINE_A gibt es jeweils eine Liste der
  293. Unterfunktionen, wobei die Ausgabe jeder Funktion gemä₧ Tabelle -5-
  294. an/bzw ausgeschaltet werden kann. Nur wenn die Funktion mit einem
  295. Leerzeichen versehen ist, findet keine Ausgabe statt.
  296.  
  297.            Taste  | Darstellung  | Bedeutung  
  298.           --------+--------------+-------------------------
  299.            Delete | Leerzeichen  | Nicht tracen
  300.            Insert | Pluszeichen  | Tracen
  301.            Tilde  | Kreiszeichen | Breakpoint
  302.           --------+--------------+-------------------------
  303.            0..9   | 0..9         | Setup-Mode
  304.            T      | T            | TempleMon-Mode
  305.  
  306.             Tabelle -5- SysMon Kommandos
  307.  
  308. - Nicht Tracen   bedeutet, da₧ Aufrufe dieser Funktion nicht 
  309.          angezeigt werden.
  310. - Tracen         bedeutet, da₧ alle Aufrufe dieser Funktion 
  311.                  angezeigt werden, wenn sie von Programmen stammen,
  312.                  die auch angewählt sind.
  313. - Breakpoint     kennzeichnet einen Haltepunkt. Im WAIT-Modus wird 
  314.                  hinter diesem Funktions-Aufruf der SysMon betreten.
  315. - Setup-Mode     bedeutet, da₧ Aufrufe dieser Funktion ausgegeben
  316.                  werden, wenn das aufrufende Programm im angegebenen
  317.                  Setup angewählt ist. Siehe dazu auch Abschnitt 5.7 .
  318. - TempleMon-Mode bedeutet, da₧ nach Ausgabe der Funktion in den
  319.                  TempleMon verzweigt werden soll. Damit diese Option
  320.                  funktioniert, mu₧ ein neueres TempleMon.Prg 
  321.                  installiert sein. Ansonsten wird wie bei 'Tracen'
  322.                  verfahren.
  323.  
  324.  
  325.    2.4 Ausblenden von Funktionen
  326. --------------------------------
  327. Das Ausblenden von Funktionsaufrufen ist in 4 Ebenen möglich.
  328.  
  329. - Die oberste Ebene ist das Ein- bzw. Ausschalten des SysMon mit der
  330.   ESC-Taste.
  331. - Die nächste Ebene ist die Auswahl der Programme, die getraced werden
  332.   sollen. Das zugehörige Fenster findet man im SYSMON-Menü unter dem
  333.   Menüpunkt PROGRAMS. Siehe Abschnitt 3.3 .
  334. - Die vorletzte Ebene ist die Auswahl der Funktionsgruppen, die 
  335.   getraced werden sollen, mit den globalen Tasten ^A--^L.
  336. - Die letzte Ebene ist die Auswahl der Funktionen, die ausgegeben
  337.   werden sollen. 
  338.  
  339.  
  340.    2.5 Die Modi des SysMon
  341. --------------------------
  342. SysMon bietet 4 verschiedene Modi des Tracens an. 
  343.  
  344. - RUN   In Modus werden alle Funktionen getraced und ausgegeben ohne
  345.         Anzuhalten.
  346. - STEP  In diesem Modus wird nach jedem Funktionsaufruf angehalten und
  347.         man landet im STEP-Menü. Siehe Abschnitt 2.6 .
  348. - WAIT  In diesem Modus werden keine Ausgaben gemacht. Erst wenn eine
  349.         Funktion die mit einem Haltepunkt versehen ist, aufgerufen und 
  350.         zurückgekehrt ist, landet man im SYSMON-Menü. 
  351. - HALT  In diesem Modus landet man sofort hinter dem nächsten 
  352.         Funktionsaufruf im SYSMON-Menü. Dabei ist es ist egal, ob die
  353.         Funktion mit einem Haltepunkt versehen ist oder nur normal
  354.         getraced wird.
  355.  
  356.  
  357.    2.6 Das STEP-Menü
  358. --------------------
  359. Beim Tracen im STEP-Modus hält SysMon nach jeder ausgegebenen Funktion
  360. an und wartet auf eine Eingabe. Dieses STEP-Menü wird durch Ausgabe
  361. des aktuellen Modus angezeigt.
  362.  
  363. M - Menü  betritt das SysMon Menü. Wird dieses wieder durch 
  364.           SPACE verlassen, landet man wieder im STEP-Menü. 
  365. 0--9      wählt, genauso wie die 10 Funktionstasten, das aktuelle Setup
  366.           aus. Die Tasten 0--9 sind notwendig, da die Funktionstasten
  367.           nicht über alle Eingabedevices eingegeben werden können.
  368. Es gelten alle in der Tabelle -4- aufgeführten Controltasten
  369. Kombinationen. Jede andere Taste verlä₧t das STEP-Menü wieder.
  370.  
  371. Um das stepweise Tracen nicht zu einer ewigen Tastendrückerei ausarten
  372. zu lassen kann man im DISPLAY Menü unter STEP-Filter einen Wert
  373. angeben, der bestimmt, wieviele Zeilen ausgegeben werden sollen, ohne
  374. das STEP-Menü wieder zu betreten.
  375.  
  376.    2.7 Umschalten des Bildschirms
  377. ---------------------------------
  378. SysMon legt für seine Ausgaben eine 2. Bildschirmseite an. Diese wird
  379. beim Betreten des SYSMON-Menüs automatisch angezeigt. Diese 2. Seite
  380. kann auch jederzeit beim Tracen durch Drücken der rechten Shifttaste
  381. angezeigt werden.
  382. Wenn der Tracer ausgeschaltet ist, ist auch die rechte Shifttaste nicht
  383. aktiv.
  384.  
  385. Möchte man hauptsächlich die Ausgaben des SysMon sehen, kann man durch
  386. gleichzeitiges Drücken der rechten Shifttaste und der Capslock Taste
  387. den aktuellen Bildschirm umschalten. Nun wird der Orginal-Bildschirm
  388. beim Drücken der rechten Shifttaste dargestellt.
  389.  
  390. Bei einem Farbmonitor wird auf dem SysMon-Bildschirm immer die mittlere
  391. Auflösung benutzt. Au₧erdem wird die Farbpalette angepa₧t. 
  392.  
  393. Unter AutoSwitch-OverScan wird immer derjenige Modus benutzt, der beim
  394. Starten von SysMon vorlag.
  395.  
  396. Bei einem Farbmonitor mit OverScan wird also durch Drücken der Shift-
  397. Taste unter Umständen der AutoSwitch Zustand, die Auflösung und auch
  398. die Farbpalette umgeschaltet.
  399.  
  400. Bei manchen Anwendungen kann es sein, da₧ die Ausgaben zu schnell über
  401. den Bildschirm laufen,so da₧ man diese nicht mehr lesen kann. Deshalb
  402. kann man im SYSMON-Menü unter dem Menüpunkt DISPLAY die Pausenfunktion
  403. anschalten. Ist die Pausenfunktion angewählt, werden die Ausgaben - und
  404. damit auch der Rechner - beim Druck auf die rechte Shifttaste
  405. angehalten, und man kann die Ausgaben in Ruhe lesen.
  406.  
  407.    2.8 Setups
  408. -------------
  409. SysMon bietet 10 verschiedene Setups an, zwischen denen durch Druck auf
  410. die Funktionstasten F1--F10 umgeschaltet werden kann. Da fast alle
  411. Einstellung in SysMon vom Setup abhängig sind, hat man es nach dem
  412. Umschalten mit einem komplett anderen SysMon zu tun. Dadurch ist es
  413. möglich sich für jeden Anwendungsfall ein neues Setup anzulegen, auf
  414. das man später bei Bedarf zurückgreifen kann.
  415.  
  416. Im einzelnen werden beim Wechseln des Setups folgende Werte 
  417. umgeschaltet :
  418.  
  419. - Der Zustand der einzelnen Programme.
  420. - Der Zustand der einzelnen Funktionsgruppen.
  421. - Der Zustand der einzelnen Funktionen.
  422. - Der Tracemodus.
  423.  
  424.    2.9 Zurückblättern in der Trace-Ausgabe
  425. ------------------------------------------
  426. Ab der SysMon-Version 1.0.4 gibt es die Möglichkeit in den Trace-
  427. Ausgaben zurückzublättern. Dazu drückt man die INSERT-Taste, wenn kein
  428. Fenster geöffnet ist. Im Tracer-Bildschirm wird nun ein Cursor
  429. dargestellt, mit dem man mit den üblichen Kommandos aus Tabelle -2-
  430. in der Ausgabe umherwandern kann. Der Cursor bleibt solange sichtbar,
  431. bis der SysMon mit SPACE verlassen wird. Der Bildschirm springt dann
  432. wieder an das Ende der Ausgaben.
  433.  
  434. Die Anzahl der gepufferten Zeilen kann man durch eine Patchvariable
  435. festlegen (Siehe Abschnitt 8.1). Als Default werden 50 Zeilen zusätzlich
  436. zu den sichtbaren Bilschirmzeilen angelegt.
  437.  
  438.         3. Das SysMon Menü
  439. ===================================================
  440.  
  441.    3.1 Übersicht
  442. ----------------
  443. Der Menüpunkt SysMon bietet eine weitere Liste von Untermenus an. Diese
  444. können entweder durch Drücken des Anfangsbuchstabens oder mit den
  445. Cursortasten und Drücken der Returntaste angewählt werden.
  446.  
  447. C - Configuration Übersicht über alle 10 Setups.
  448. P - Programms     Liste der geladenen Programme.
  449. M - Memory        Liste der Speicherbereiche.
  450. T - Traps         Liste der Systemvektoren.
  451. O - OS Vars.      Liste der Systemvariablen.
  452. D - Display       Einstellungen, die die Ein/Ausgabe betreffen.
  453. F - proFile       Kommandos im Zusammenhang mit dem Profiling.
  454. U - Used Traps    Anzeige der SysTable Tabellen.
  455. N - Notepad       Eingabemöglichkeit für Kommentare.
  456. R - ReRead        Neueinlesen der Sys_Mon.Inf Datei. 
  457. W - Write         Schreiben der Sys_Mon.Inf Datei.
  458. Q - Quit          Beenden von SysMon.
  459.  
  460.  
  461.    3.2 C - Configuration
  462. ------------------------
  463. Das CONFIGURATION-Menü ist eine Übersicht über alle 10 Setups. Die
  464. Umschaltung der einzelnen Felder erfolgt mit den globalen Tasten, die
  465. der Tabelle -4- zu entnehmen sind.
  466.  
  467. Jede Zeile des Fensters hat folgenden Aufbau :
  468.  
  469. - Zuerst kommt der Name des Setups, der editiert werden kann.
  470.   Um Zeichen zu löschen ist nur die Backspacetaste zugelassen.
  471. - Beim Tracermodus wird entweder Run, Step ,Wait oder Halt ausgegeben.
  472. - Der Zustand der einzelnen Betriebssystemfunktionen wird durch die
  473.   Anfangsbuchstaben verdeutlicht, bei AGX wird folglich AES,GEMDOS und
  474.   XBIOS getraced.
  475. - Das Format jeder Ausgabe während des Tracens wird durch die
  476.   Anfangsbuchstaben der Optionen ausgegeben. Hierbei steht R für 
  477.   ReturnAddr, C für Caller, N für Number, O für OutputStack, F für
  478.   FlagSuper, E für Extra und W für WatchBypass.
  479. - Der Zustand der Überwachungsfunktionen für PD-Wechsel und Trap-
  480.   Diebstähle werden mit den Buchstaben P und T ausgegeben.
  481.  
  482. Das aktuelle Setup kann mit den Cursortasten oder durch die Funktions-
  483. tasten gewechselt werden. Fast alle Einstellungen in SysMon sind 
  484. abhängig vom Setup . Siehe Abschnitt 2.8
  485.  
  486.  
  487.    3.3 P - Programms
  488. --------------------
  489. Dies ist eine Liste der geladenen Programme. Für jedes Programm kann
  490. mit den Tasten aus Tabelle -5- bestimmt werden, ob es getraced werden
  491. soll. Der Eintrag 'Unknown' bestimmt den Tracestatus für Aufrufe, die
  492. nicht aus den erkannten Programmbereichen kommen.
  493.  
  494. Die Ausgabezeilen des Fensters sind folgenderma₧en aufgebaut :
  495.  
  496. - Zuerst wird der Speicherbereich des Programms ausgegeben.
  497. - Bei den Programmnamen gelten folgende Konventionen
  498.   - Der Programmname wird gro₧ geschrieben, wenn SysMon der genaue 
  499.     Name bekannt ist.
  500.   - Die Namen in gemischter Gro₧/Kleinschreibung werden von SysMon
  501.     vergeben, wenn das Programm eine XBRA-Kennung benutzt. 
  502.   - Die Namen Acc__A, Auto_A, Prg__A usw. werden vergeben, wenn SysMon
  503.     nur den Typ des Programms erkennt.
  504.   Ein Name in gemischter Schreibweise kann editiert werden. Die 
  505.   Editiermöglichkeit eines Names ist auch an der Klammerung in 
  506.   <<...>> zu erkennen. Es können nur Gro₧buchstaben eingegeben werden.
  507.   Um Zeichen zu löschen ist nur die Backspace-Taste zugelassen. Ein
  508.   leerer Name ist unzulä₧ig und wird daher durch Fragezeichen ersetzt.
  509. - Der Trace Zustand des Progamms wird mit den üblichen Symbolen
  510.   aus Tabelle -5- angezeigt.
  511. - Beim Programm, auf das der ActPD Vektor zeigt, wird ein R-Symbol
  512.   ausgegeben. 
  513. - Die Appl-ID wird ausgegeben. Bei Stuffer und ähnlichen Multi-
  514.   Accessories oder bei mehreren verschachtelt geladenen Programmen
  515.   werden manche IDs mehrfach ausgegeben.
  516. - Die benutzen VDI-Handles werden ausgegeben. Diese Angabe ist nur
  517.   möglich, wenn SysMon die Traps besitzt. Der VDI-Handle 1 wird
  518.   gesondert behandelt, da er vom GEM und von Programmen gleichzeitig
  519.   benutzt werden kann. 
  520. - Die Art des Programms wird ausgegeben. 
  521.   - TOS   wird nur für die beiden Betriebssystem-Teile TOS und GEM
  522.           benutzt.
  523.   - Auto  wird ausgegeben, wenn das Programm im Auto Ordner gestartet
  524.           wurde. Diese Programme sind resident geladen.
  525.   - Acc   wird für Accessories verwendet.
  526.   - Prg   wird bei normal geladenen Programmen benutzt.
  527.   - Res   wird bei resident geladenen Programmen benutzt.
  528.   - LPrg  wird bei Programmen benutzt, deren Codebereich einem anderen
  529.           Prozess gehört.
  530.   - Cart  wird bei Programmen benutzt, die in einer Cartrige gefunden
  531.           wurden. 
  532.  
  533.   
  534.    3.4 M - Memory
  535. -----------------
  536. Es wird eine sortierte Liste der Speicherbereiche ausgegeben, in der
  537. auch die residenten Blöcke enthalten sind. Die Liste ist dabei so 
  538. sortiert, da₧ das Ende des Hauptspeichers oben und der Anfang unten
  539. ausgegeben wird.
  540.  
  541. Jede Ausgabezeile ist nach folgendem Format aufgebaut :
  542. - Der Adresse des Memory Descriptors wird ausgegeben.
  543. - Die Startadresse, Endadresse und die Länge des Blockes wird 
  544.   ausgegeben. 
  545. - Der Owner des Blockes wird ausgegeben. Bei freien Blöcken wird
  546.   stattdessen 'free' , bei residenten Blöcken 'res' ausgegeben.
  547.   Es wird zusätzlich die HideMem-Konvention erkannt, d.h. wenn alle
  548.   4 Bytes des Longwords ASCII-Buchstaben sind, werden diese ausgegeben.
  549. - Wenn möglich, wird ein Programmname zugeordnet.
  550. - Es werden folgende Arten unterschieden :
  551.   - Programm Code
  552.   - Environments
  553.   - Resourcen
  554.   - AES-Blöcke
  555.   - VDI-Blöcke
  556.   - Basepages
  557.   - LineF-Handler
  558.   - geladene VDI-Fonts
  559.   Alles Andere wird als Data bezeichnet. Da jeweils nur wenige Bytes
  560.   zur Identifikation herangezogen werden, kann die Einschätzung auch
  561.   daneben gehen.
  562.  
  563. In diesem Fenster sind folgende Optionen möglich :
  564. - L,$  Schaltet die Längenangabe zwischen Hex. und Dez. um.
  565. - O    Schaltet die Angabe des Owners zwischen Hex. und Name des
  566.        Besitzers um.
  567.  
  568.  
  569.    3.5 T - Traps
  570. ----------------
  571. Es wird die Liste der Systemvektoren ausgegeben, wobei XBRA-Listen
  572. weiterverfolgt werden und die jeweiligen Sprungziele mit dem 
  573. dazugehörigem Programmnamen versehen sind.
  574.  
  575. Es werden alle Traps und Vektoren des ST ausgegeben, auch diejenigen,
  576. die nicht vom Betriebssystem benutzt werden.
  577.  
  578. Da die Liste sehr lang werden kann, kann man die Anzeige bestimmter
  579. Informationen auf Tastendruck aus-, bzw einblenden.
  580.  
  581. H - Hardware          Anzeige der Hardware Vektoren umschalten.
  582. U - Unused Exceptions Anzeige der beim unbenutzen Vektoren umschalten.
  583. I - Interrupt         Anzeige der Interrupt Vektoren umschalten.
  584. T - Trap              Anzeige der Trap Vektoren umschalten.
  585. M - MFP               Anzeige der MFP Vektoren umschalten.
  586. E - ETV               Anzeige der Etv Vektoren umschalten.
  587. S - Special           Anzeige der Special Vektoren umschalten.
  588. V - VBL               Anzeige der VBL Vektoren umschalten.
  589. X - Xcon              Anzeige der Xcon Device Vektoren umschalten.
  590. K - Kbd               Anzeige der Kbdvbase Vektoren umschalten.
  591. L - LineA             Anzeige der LineA Funktions Vektoren umschalten.
  592. R - ROM               Beeinflu₧t alle Sprünge, die in das Betriebssystem
  593.                       zeigen.
  594. N - NotValid          Schaltet die Anzeige aller Vektoren mit ungültiger
  595.                       Zieladresse um.
  596.  
  597.  
  598.    3.6 O - OS Vars
  599. ------------------
  600. Es werden verschiedene Variablen und Strukturen des Betriebsystems
  601. ausgegeben. Die einzelnen Blöcke können über die Option Kommandos 
  602. umgeschaltet werden.
  603.  
  604. S - Systemvariables  Es werden alle Systemvariablen zwischen $400 und
  605.                      $5A0 ausgegeben.
  606. N - Negativ LineA    Es werden alle Negativen LineA Variablen
  607.                      ausgegeben.
  608. L - LineA            Es werden alle LineA variablen ausgegeben.
  609. V - VDI              Es werden die Daten jeder VDI-Workstation
  610.                      ausgegeben.
  611. C - Cookies          Es werden alle Cookies des CookieJars ausgegeben.
  612. P - Programms        Für jedes Programm wird entweder der Program-
  613.                      Header, die Basepage oder der Cartridge-Header
  614.                      ausgegeben.
  615. F - Fonts            Es werden die Daten jedes geladenen Fonts
  616.                      ausgegeben.
  617. H - Header           Es wird der Header des Betriebssystems ausgegeben.
  618.  
  619. Die Vektoren , die schon unter dem Menüpunkt TRAPS ausgegeben werden
  620. konnten, werden der Vollständigkeit halber wiederholt. Es findet kein
  621. Verfolgen von XBRA-Ketten statt.
  622.  
  623.    3.7 D - Display
  624. ------------------
  625. Das DISPLAY-Menü enthält alle Einstellungen, die die Ein-/Ausgabe 
  626. betreffen. Die Umschaltungen der Ein-/Ausgabe sind erst nach
  627. Verlassen des SysMon Bildschirms gültig. Die einzelen Punkte können
  628. durch Drücken des Anfangsbuchstabens oder durch Wandern mit den
  629. Cursortasten und der Returntaste angewählt werden.
  630.  
  631. I - Input         schaltet die Eingabe zwischen Tastatur, RS-232,
  632.                   Parallelport und Midiport um.
  633. O - Output        schaltet die Ausgabe zwischen 2. Bildschirmseite,
  634.                   RS-232, Parallelport und Midiport um. 
  635. F - FileOutput    schaltet das Protokollfile an/aus. Ist ein Öffnen
  636.                   oder Schliessen zur Zeit nicht möglich, wird eine
  637.                   Warnung ausgegeben. Siehe Abschnitt 4.3 .
  638.                   Sollte das File schon existieren, so hat man die
  639.                   Möglichkeit, es zu überschreiben, die Ausgaben 
  640.                   anzuhängen oder abzubrechen.
  641. N - Name          wechselt in den Editiermodus für den Namen des
  642.                   Protokollfiles. Gültige Eingaben sind Buchstaben,
  643.                   Zahlen, Punkt, Doppelpunkt, Unterstrich und der
  644.                   Backslash. Andere Eingaben beenden die Namenseingabe.
  645. J - JumpScroll    gibt an, wieviele Zeilen im RUN-Modus auf einmal
  646.                   gescrollt werden sollen. Bei einem Wert von 10 wird
  647.                   der Bildschirm um 10 Zeilen nach oben gescrollt und
  648.                   10 Zeilen ohne Scrollen ausgegeben.
  649.                   Da die Scrollroutine jetzt nur alle 10 Zeilen
  650.                   aufgerufen werden mu₧, ist die Ausgabegeschwindigkeit
  651.                   wesentlich erhöht.
  652. S - STEP-Filter   gibt an, wieviele Zeilen im STEP-Modus ohne Nachfrage
  653.                   ausgeführt werden sollen.
  654. P - PauseOnShift  schaltet die Pausenoption um. Wenn Pause angewählt
  655.                   ist, wird bei jedem Drücken der rechten Shifttaste
  656.                   und dem damit verbundenen Anzeigen des SysMon-
  657.                   Bildschirms gewartet, bis die Shifttaste wieder
  658.                   losgelassen wird. Auf diese Weise kann man sehr
  659.                   schnell scrollende Ausgaben zeitweilig anhalten.
  660.  
  661.  
  662.    3.8 F - proFile
  663. ------------------
  664. In diesem Fenster kann das Profiling ein/aus geschaltet werden. 
  665. Profiling bedeutet, da₧ die Anzahl der Aufrufe mitgezählt wird. Die
  666. Anzahl der Aufrufe  wird in den Funkionslisten mit ausgegeben. Es
  667. werden nur Funktionsaufrufe gezählt, die auch getraced werden. Durch
  668. Profiling erhält man einen Überblick über die am häufigsten verwendeten
  669. Aufrufe.
  670.  
  671. P - Profile  schaltet das Profiling an/aus. Die Daten werden hierbei
  672.              nicht gelöscht, so da₧ eine Zählpause möglich ist.
  673. D - Dump     schreibt die beim Profiling gewonnenen Daten in das
  674.              Protokollfile. Sollte kein Protokollfile geöffnet sein,
  675.              so wird es geöffnet und nach dem Schreiben wieder
  676.              geschlossen. Es werden nur die Daten der angewählten Traps
  677.              und da auch nur die Daten der angewählten Funkionen im
  678.              Protokollfile gespeichert.
  679. C - Clear    Löscht alle Profiling-Daten.
  680.  
  681. ( Das PROFILING-Menü wird noch in ein anderes Menü integriert, da
  682.   es zu klein für ein eigenständiges Menü ist. )
  683.  
  684.  
  685.    3.9 U - UsedTraps
  686. --------------------
  687. Diese Funktion liefert eine Übersicht über die von SysMon benutzten
  688. Traps und Bypasse. 
  689.  
  690. Das Format jeder Zeile ist :
  691. - Links wird der Vorgänger aufgeführt, also ein Trap oder ein Programm,
  692.   da₧ daraufhin den SysTable anspringt.
  693. - In der Mitte wird die Adresse des SysTable Sprungziels ausgegeben.
  694. - Rechts wird der Nachfolger ausgegeben, der dann vom SysTable
  695.   angesprungen wird.
  696. - Ganz Rechts gibt es noch ein Buchstabenkürzel, da₧ den Vektor
  697.   kennzeichnet. A/V steht für AesVDI, G für GEMDOS usw.
  698.  
  699. Es gibt 2 Darstellungsarten der Bypass Tabelle, die durch die Taste ^M
  700. umgeschaltet werden können.
  701. - Die aktiven Traps und Bypasse werden getrennt ausgegeben. Dabei 
  702.   werden die Bypasse in der Reihenfolge aufgeführt, in der sie auch
  703.   angesprungen werden.
  704. - Die Traps und Bypasse eines Vektors werden vermischt ausgegeben,
  705.   so da₧ die Reihenfolge von der Trap Adresse bis zum letzten Bypass
  706.   der Ansprung-Reihenfolge entsprechen.
  707.  
  708. In einer weiteren Liste werden diejenigen Funktionen angezeigt, die
  709. noch nicht aus den Traps zurückgekehrt sind. Siehe Abschnitte 6.1 und
  710. 6.2 .
  711.  
  712.    3.10 N - Notepad
  713. -------------------
  714. Das Notepad Fenster bietet eine Möglichkeit, um Kommentare einzugeben.
  715. Dieser kann dann in das Protokollfile eingefügt werden, um so
  716. zusätzliche Informationen und Bemerkungen gleich bei der Erstellung des
  717. Protokollfiles eingeben zu können.
  718.  
  719. Die aktuelle Eingabezeile wird durch <<...>> geklammert. Als Eingaben
  720. sind alle ASCII Zeichen zulässig, Sonderfunktionen haben nur folgende
  721. Tasten :
  722. - CLR löscht das ganze Fenster.
  723. - BS  löscht den letzten Buchstaben. Zusammen mit einer Shifttaste
  724.       wird eine ganze Zeile gelöscht.
  725. - CR  bewegt den Cursor eine Zeile nach unten. 
  726.  
  727. Bei einem Dump in ein Protokollfile werden nur diejenigen Zeilen
  728. ausgegeben, in denen auch etwas eingegeben wurde. Möchte man eine
  729. Leerzeile im Kommentar, mu₧ man zumindest ein Leerzeichen in die 
  730. Zeile einfügen.
  731.  
  732.    3.11 W - Write
  733. -----------------
  734. Diese Funktion speichert die aktuelle Einstellung in eine Datei
  735. Sys_Mon.Inf. Diese Datei wird bei Programmstart von SysMon automatisch 
  736. eingelesen und alle Einstellungen vorgenommen. Wenn ein Schreiben des
  737. Files gerade nicht möglich ist, wird eine Warnung ausgegeben.
  738.  
  739. Es werden alle Einstellungen aus allen 10 Setups gespeichert. 
  740. Eine Besonderheit beim Speichern ist nur das Speichern des Zustandes
  741. der einzelnen Programme. Da beim nächsten Starten nicht unbedingt 
  742. dieselben Programme gestartet werden, wird für jede Gruppe von 
  743. Programmen (TOS, Auto, Acc, Res, Prg, LPrg, Cart, Unknown) ein Modus
  744. bestimmt.
  745.   
  746. - Wenn kein Programm der Gruppe angewählt ist, wird 'nicht Tracen'
  747.   für diese Gruppe gespeichert.
  748. - Wird mindestens ein Programm der Gruppe getraced, wird 'Tracen'
  749.   für diese Gruppe gespeichert.
  750. - Ist mindestens ein Programm der Gruppe mit einem Haltpunkt versehen,
  751.   wird für diese Gruppe ein Haltepunkt gespeichert.
  752. - Ist kein Programm der Gruppe vorhanden, wird 'Tracen' für diese
  753.   Gruppe gespeichert.
  754.   
  755.  
  756.    3.12 R - ReRead
  757. ------------------
  758. Liest die Sys_Mon.Inf Datei nochmals ein. Wenn ein Lesen des Files
  759. gerade nicht möglich ist oder die Datei nicht existiert wird eine
  760. Warnung ausgegeben.
  761.  
  762. Nach dem Einlesen werden alle Einstellungen aus der Datei übernommen.
  763.  
  764.  
  765.    3.13 Q - Quit
  766. ----------------
  767. Dieser Menüpunkt beendet SysMon nach einer Rückfrage.
  768.  
  769. Danach wird ausgegeben, ob ein SysTable resident im Speicher
  770. verbleiben mu₧. Generell gibt es 4 Arten von QUIT :
  771. - Wenn Bypasse vorhanden waren, darf der SysTable später nicht
  772.   freigegeben werden, da unter Umständen noch Funktionen über diese
  773.   Umleitungen springen.
  774. - Sind keine Bypasse vorhanden, aber Funktionen noch nicht 
  775.   zurückgekehrt, kann der SysTable nach Rückkehr der letzten Funktion
  776.   freigegeben werden.
  777. - Wird QUIT während eines BIOS-Aufrufes ausgelöst, kann SysMon seinen
  778.   Speicher erst bei dem nächsten GEMDOS-Aufruf freigeben. Dieses ist
  779.   dasselbe GEMDOS-Problem, wie es auch beim Protokollfile (Siehe
  780.   Abschnitt 4.3) entsteht.
  781. - Ansonsten kann der gesamte Speicher sofort freigegeben werden oder 
  782.   man wird durch ein akustisches Signal von der Freigabe informiert.
  783.  
  784. Beim Starten von SysMon wird ein vorhandener SysTable komplett
  785. mitbenutzt, daher wird beim nächsten Verlassen der Speicher komplett
  786. freigeben. Es existiert maximal ein aktiver SysTable im Speicher, der
  787. sich dann selbst entfernt, wenn es möglich ist. Siehe Abschnitte 6.1
  788. und 6.2 .
  789.  
  790.         4. Der Aufbau der Ausgabezeilen
  791. ===================================================
  792.  
  793.    4.1 Aufbau der Tracerzeilen
  794. ------------------------------
  795. Der Aufbau der Tracerzeile kann mit den globalen Tasten ReturnAddr, 
  796. Caller, Number ,OutputStack und FlagSuper beeinflusst werden. Eine
  797. Übersicht über die Einstellungen bietet das CONFIGURATION-Menü.
  798.  
  799. Der Anfang jeder ausgegeben Zeile hat je nach angewählten 
  800. Flags folgendes Format :
  801. - Findet beim Tracen von AES-Funktionen ein Taskwechsel statt, wird
  802.   ein  > ausgegeben.
  803. - Ist ReturnAddr angewählt, wird am Anfang jeder Zeile die Rücksprung-
  804.   Adresse der Funktion ausgegeben.
  805. - Ist Caller angewählt, wird der Name des aufrufenden Programms
  806.   ausgegeben.
  807. - Ist Number angewählt,  wird der Nummer der aufgerufenen Funktion
  808.   zusammen mit einem Kennbuchstaben ausgegeben. Dieser Kennbuchstaben
  809.   sind die Anfangsbuchstaben der jeweiligen Funktionsgruppe, also z.B.
  810.   A für AES. Der Kennbuchstabe O wird für Aufrufe des GEM-Traps
  811.   benutzt, die weder eine AES- noch VDI- Kennung benutzten. Dies z.B.
  812.   beim 'vq_gdos' Aufruf - der zurückliefert ob GDOS installiert ist -
  813.   der Fall.
  814. - Ist OutputStack angewählt, wird der aktuelle Stackpointer ausgegeben.
  815. - Ist FlagSuper angewählt, wird vor jedem Aufruf der aus dem 
  816.   Supervisor-Modus stattfand ein kleiner Punkt ausgegeben.
  817.  
  818. Hinter diesem Header wird nun der Funktionsname ausgegeben. Treten
  819. dabei Verschachtelungen von Aufrufen auf, werden die Funktionsnamen 
  820. eingerückt. Dies ist der Fall, wenn man auch die Aufrufe von GEM 
  821. oder TOS anzeigen lä₧t, da z.B. die GEMDOS Funktionen 'Fread', 'Fopen'
  822. usw. auf die XBIOS Funktion 'Rwabs' aufsetzen oder die VDI Funktionen
  823. 'v_opnwk' und 'v_opnvwk' die GEMDOS Funktion 'Malloc' benutzen.
  824. Au₧erdem wird bei Verschachtelungen der Header wiederholt sobald 
  825. die aufrufende Funktion zurückkehrt, damit man die zu den Ausgabe-
  826. Parametern gehörige Funktion erkennen kann.
  827.  
  828. Nun werden die Eingabe-Parameter ausgegeben, wobei Werte, die im
  829. Profibuch als Konstanten definiert werden, im Klartext ausgegeben
  830. werden. Hat die Funktion mehrere Eingabe Parameter, werden vor den
  831. Werten kurze Texte ausgegeben, damit man die einzelnen Werte besser
  832. identifizieren kann. Die Reihenfolge der Parameter entspricht dabei
  833. möglichst der Reihenfolge beim Funktions-Aufruf. Benutzt die Funktion
  834. allerdings 'Call by Reference' Variablen, die erst nach Ausführung der
  835. Funktion gesetzt sind, wird deren Wert erst bei den Ausgabe-Parametern
  836. ausgegeben.
  837.  
  838. Um die Ausgabe Parameter optisch von den Eingabe-Parameten abzuheben,
  839. wird erstmal ein -> ausgegeben. Hat eine Funktion keine Ausgabe-
  840. Parameter, wird trotzdem ein -> ausgegeben, damit man sieht, da₧ die
  841. Funktion zurückgekehrt ist.
  842.  
  843. Ist durch die globale Taste ^W das Flag WatchBypass angewählt, wird der
  844. -> gegen ein -[ProgrammName]-> ersetzt, falls SysMon feststellt, da₧ 
  845. die Funktion von einem anderen Programm abgefangen wurde. 
  846. Ein -{ProgrammName}- bedeutet, da₧ sich ein Programm hinter einen Aufruf
  847. gehängt hat. (Siehe Abschnitt 6.3)
  848.  
  849. Mit der globalen Taste ^E (ExtraOutput) kann die Ausgabe von 
  850. zusätzlichen Informationen umgeschaltet werden. Dies sind Werte die
  851. nicht direkt auf dem Stack liegen, aber im Zusammenhang mit der
  852. Funktion stehen. Das ist z.B die Ausgabe des Filenamens bei GEMDOS
  853. Funktionen, die nur einen Filehandle benutzen oder die Ausgabe des
  854. Inhaltes der DTA bei den GEMDOS Funktionen 'Fsfirst' und 'Fsnext'.
  855. Mit der Extra-Taste wird auch die Ausgabe des Inhaltes von übergebenen
  856. Strukturen umgeschaltet. Siehe dazu Abschnitt 5 .
  857.  
  858. Der Rückgabewert einer Funktion wird jeweils am Ende ausgegeben. Bei
  859. den GEMDOS- und XBIOS-Funktionen werden alle System-Fehlermeldungen im
  860. Klartext ausgegeben.
  861.  
  862. Werden mehr Werte ausgeben, als in einer Tracerzeile Platz finden,
  863. wird die Ausgabe der Werte in der folgenden Zeile fortgesetzt.
  864.  
  865.    4.2 Ausgabe Beispiele
  866. ------------------------
  867. Das erste Beispiel zeigt eine Verschachtelung. Der Rückgabewert des
  868. 'Fsfirst' Aufrufs ist durch die Wiederholung des Headers deutlich zu
  869. erkennen.
  870.  
  871.  $FC38B0 GEM G_78 Fsfirst "C:\C_TEX\*.*" { Dir }
  872.  $FC4F0E TOS B_4   Rwabs  READ Buf $7BC4 Cnt 1 Rec 38 Dev 2 -> Ok
  873.  $FC38B0 GEM G_78 Fsfirst -> Ok <.>
  874.  $FC38B0 GEM G_79 Fsnext  -> Ok <..>
  875.  $FC38B0 GEM G_79 Fsnext  -> NoMoreFiles
  876.  
  877. Der Aufbau der Tracerzeile ist hierbei mit ReturnAddr für die
  878. Rücksprungadresse, Caller für den Namen des aufrufenden Programmes und
  879. Number für die Funktionsnummer angegeben worden. Die erweiterten
  880. Ausgaben waren nicht angewählt, ansonsten würde bei den gefundenen
  881. Files auch deren Länge, Datum usw. ausgegeben.
  882.  
  883. Folgendes Beispiel zeigt, welche Aufrufe durch das Öffnen der
  884. Bildschirm Workstation beim Booten des Rechners ausgelöst werden.
  885. Durch die Anwahl von FlagSuper wird bei jedem Aufruf, der aus dem
  886. Supervisor Modus stattfindet ein * ausgegeben.
  887.  
  888.  GEM *v_opnwk    H 0 3,1,1,1,1,1,1,1,1,1,2 
  889.  TOS  *Getrez    -> High 
  890.  TOS  *Setpalet  PAL $FCB39E -> 
  891.  TOS  *Setexc    Vec 256($0400) New $FCB3C6  -> Old $FC92C6 
  892.  TOS  *Initmouse Mouse On,Relative PARAM $FD0F62 { topmode 0
  893.                  buttons 0 x_scale 1  y_scale 1  } Vec $FD09FA -> 
  894.  GEM *v_opnwk    -> H 1 (639,399) 
  895.  
  896. Alle Aufrufe des Desktops finden im Supervisor Modus statt. Die
  897. Verschachtelung der Aufrufe ist durch die Einrückung kenntlich gemacht,
  898. auch  -> direkt hinter einem Funktionsnamen zeigt an, da₧ dieser Aufruf
  899. gerade zurückgekehrt ist und die Eingangsparameter schon vorher
  900. ausgegeben wurden. Würde in diese Beispiel das TOS nicht getraced,
  901. weil es bei PROGRAMS nicht angewählt ist, würden die Ausgabe Parameter
  902. des 'v_opnwk' Aufrufs in derselben Zeile ausgegeben.
  903.  
  904. Das nächste Beispiel zeigt einige Taskwechsel zwischen CONTROL.ACC
  905. und TURBOST.ACC.
  906.  
  907.  TURBST16  appl_init      
  908.  CONTROL   appl_init      
  909. >TURBST16  appl_init      -> 3  
  910.  TURBST16  menu_regis.    "  Turbo ST" 3  
  911. >CONTROL   appl_init      -> 2  
  912.  CONTROL   graf_handle    
  913. >TURBST16  menu_regis.    -> 0  
  914.  TURBST16  evnt_mesag     $0427A4 
  915. >CONTROL   graf_handle    -> (8  ,16 ) (19 ,19 ) Ret 1 
  916.  CONTROL   menu_regis.    "  Kontrollfeld" 2  -> 1  
  917.  
  918. Der > gibt jeweils an, da₧ ein anderer Proze₧ aus dem Trap herauskam
  919. als hineinging. Auch die Ausgabe des -> trägt zur Übersicht bei, da
  920. sofort erkenntlich ist, welches die Eingangs- und welches die Ausgangs-
  921. Funktion war.
  922.  
  923.  CONTROL  Setprt   { Matrix,Mono,Atari(1280),Draft,Centronics,
  924.                    Endless } -> { Matrix,Mono,Atari(1280),Draft,
  925.                    Centronics,Endless }
  926.  CONTROL  Rsconf   Speed 4  Flow 0  Ucr/Rsr (-1 ,-1 ) Tsr/Scr 
  927.                    (-1 ,-1 ) -> Register $000000 
  928.  
  929. Wenn nicht alle Parameter in eine Zeile passen, findet ein 
  930. Zeilenumbruch statt. Zusammengehörige Parameter, wie Bitsets und
  931. Strukturen werden durch { ... } geklammert.
  932.  
  933. Der 'evnt_multi' Aufruf hat die komplizierteste und längste 
  934. Parameterliste aller Betriebssystemfunktionen.
  935.  
  936.  CONTROL  evnt_multi  KYBD BUT { 1,1,1 } MSG TIMER  { 30000,0 }
  937.                       Buf $040E00 -> (201,101) B$00 K$00 Key 
  938.                       $0000 But $00 Event = MU_MESAG 
  939.                       { WM_CLOSED H 4 } 
  940.  
  941. Trotzdem sind die einzelnen Werte gut zu unterscheiden, die Reihenfolge
  942. der Ausgaben entspricht der Reihenfolge der Parameter des Aufrufs.
  943. Es wurde auf Tastatur, Mausklick der linken Maustaste, Mitteilungen 
  944. oder auf das Ablaufen einer Zeitspanne gewartet. Erhalten wurde
  945. daraufhin der aktuelle Zustand des Systems, mit der Mausposition, dem
  946. Zustand der Mausknöpfe und der Tastatur. Als Ausgabe-Ereignis wurde
  947. eine Fenstermitteilung angegeben. Wie man sieht, ist selbst diese
  948. komplizierte Parameterliste in SysMon gut zu lesen.
  949.  
  950.  GEMINI  Fopen  'C:\GEMINI\MUPFEL.MUP' ReadOnly  -> $000007 /7
  951.  GEMINI  Fseek  H 7 <MUPFEL.MUP> Off 0 FromEnd   -> $000490 /1168
  952.  GEMINI  Fseek  H 7 <MUPFEL.MUP> Off 0 Relative  -> $000490 /1168
  953.  GEMINI  Fseek  H 7 <MUPFEL.MUP> Off 0 FromStart -> Ok
  954.  GEMINI  Fread  H 7 <MUPFEL.MUP> Cnt $000400 Buf $079A48
  955.                     -> $000400 /1024
  956.  GEMINI  Fread  H 7 <MUPFEL.MUP> Cnt $000400 Buf $079A48
  957.                     -> $000090 /144
  958.  GEMINI  Fclose H 7 <MUPFEL.MUP> -> Ok
  959.  
  960. Die Augabe des Filenamens, bei Funktionen, die nur mit einem Filehandle
  961. arbeiten, zählt zu den erweiteten Ausgaben von SysMon. Diese Ausgaben
  962. werden durch < ... > geklammert.
  963.  
  964. Weitere Beispiele für erweiterte Ausgaben :
  965.  
  966.  GEMINI menu_ienab. $0843FA 18 <  Open           ^O> disable -> 1  
  967.  GEMINI menu_ienab. $0843FA 19 <  Get Info...    ^I> disable -> 1  
  968.  GEMINI menu_ienab. $0843FA 44 <  Application... ^A> disable -> 1  
  969.  GEMINI menu_ienab. $0843FA 27 <  Erase Disk...  ^E> disable -> 1  
  970.  GEMINI evnt_multi  KYBD BUT { 2,1,1 } MSG Buf $075594 ->
  971.                     (136,454) B$01 K$01 Key $0019 But $01
  972.                     Event = MU_BUTT 
  973.  GEMINI wind_find   (136,454) -> 0  
  974.  GEMINI objc_find   $078260 (0  ,8  ) (136,454) -> Nr 10 
  975.                     < G_ICON "ZOO" > (10 ,136) Ret 10
  976.  
  977. Bei allen Funktionen mit Objekten kann deren Typ und auch der
  978. zugehörige String ausgegeben werden. So erfährt man z.B. beim 
  979. 'menu_ienable' Aufruf, das nur mit Objektnummern arbeitet, welcher
  980. Menüpunkt gemeint ist. Der String eines Menüpunktes wird auch
  981. ausgegeben, wenn ein Programm eine 'MN_SLECTED' Mitteilung bekommt.
  982. Nach dem Mausknopf Ereignis testet GEMINI, ob auf den Desktop geklickt
  983. wurde und findet dann mit 'objc_find' die Nr des angeklickten Objektes
  984. heraus. SysMon gibt als zusätzliche Information den String des - im
  985. Beispiel angeklickten - Icons aus.
  986.  
  987.    4.3 Das Protokollfile
  988. ------------------------
  989. Alle Ausgaben des SysMon können auch in einem File mitprotokolliert
  990. werden. Das An- und Abschalten des Protokollfiles und die Festlegung
  991. des Namens wird im DISPLAY-Menü vorgenommen.
  992.  
  993. Bei einem MediaChange werden alle offenen Dateien eines Laufwerks
  994. automatisch geschlossen. Möchte man den Aufbau eines Desktopfensters
  995. mitprotokollieren, mu₧ das Protokollfile auf einem anderen Laufwerk
  996. angelegt werden, da ein Druck auf die ESC-Taste zum Neuaufbau eines
  997. Desktopfenster einen MediaChange auslöst und die Protokolldatei
  998. geschlossen würde.
  999.  
  1000. Die BIOS-Aufrufe des GEMDOS werden alle über denselben Stack
  1001. abgewickelt, es ist nicht möglich, während eines solchen BIOS-Aufrufs
  1002. einen GEMDOS-Aufruf zu machen, da dieser wieder BIOS-Aufrufe zur Folge
  1003. hätte, was den Stack überschreiben würde. Aus diesem Grunde wird in
  1004. einem solchen Fall beim Öffnen oder Schlie₧en des Protokollfiles eine
  1005. Warnung ausgegeben und die Funktion nicht ausgeführt.
  1006.  
  1007. Das Mitprotokollieren dieser Aufrufe ist nur möglich, weil SysMon die
  1008. Ausgaben in solch einem Fall in einen Puffer schreibt und den Puffer
  1009. leert, sobald es wieder möglich ist. Die Grö₧e des Puffers lä₧t sich
  1010. durch eine Patchvariable verändern. (Siehe Abschnitt 8.1) Findet ein
  1011. Puffer-Überlauf statt, wird dieses im Protokollfile vermerkt.
  1012.  
  1013. Besonderheiten im Zusammenhang mit dem Protokollfile
  1014. - Alle Fenster von SysMon lassen sich mit der Taste * des Zehnerblocks
  1015.   in das Protokollfile schreiben. Auf diese Art und Weise kann man z.B.
  1016.   den Ist-Zustand des Systems festhalten. 
  1017. - Auch die Funktions Listen lassen sich im File ablegen, um 
  1018.   festzuhalten, welche Funktionen im folgenden Protokoll nicht 
  1019.   auftauchen können, da sie nicht angewählt sind.
  1020. - Wenn kein Fenster geöffnet ist und nur die Menüleiste sichtbar ist,
  1021.   wird durch die Dumptaste der globale Zustand des SysMon im Protokoll-
  1022.   file abgelegt.
  1023. - Das Notepad bietet die Möglichkeit, Kommentare während des laufenden
  1024.   Fileprotokolls in das Protokollfile einfügen zu können.
  1025. - Wurde das Setup gespeichert, während ein Protokollfile geöffnet war,
  1026.   wird dieses beim nächsten Starten von SysMon nicht wieder geöffnet,
  1027.   da man sonst ein schon bestehendes Protokollfile überschreiben würde.
  1028.  
  1029.  
  1030.         5. Besonderheiten
  1031. ===================================================
  1032.  
  1033.    5.1 AES
  1034. ----------
  1035. Die benutzerdefinierten Messages von GEMINI, CLIPBRD, CAD-3D, DEGAS,
  1036. CYBERSMASH, TDI_MODULA und auch das neue XACC-Protokoll werden erkannt
  1037. und richtig ausgegeben.
  1038. Zu den erweiterten Ausgaben zählt die Ausgabe des Objekttyps und des
  1039. Strings eines Objektes bei den Objekt- und auch den Menü-Funktionen.
  1040.  
  1041.    5.2 VDI
  1042. ----------
  1043. Auch die erweiterten VDI-Metafile Escapes und der Inhalt der MDFB-
  1044. Struktur wird ausgegeben. Die 'vex_timer', 'vex_button', 'vex_mouse'
  1045. Funktionen dürfen nicht stepweise getraced werden. Beim Steppen
  1046. werden sie übersprungen.
  1047.  
  1048. Die Funktionen 'vq_gdos' und 'vq_driver' sind eigentlich keine VDI-
  1049. Funktionen, weil sie eine andere Stack-Konvention für den Aufruf
  1050. benutzen. Die Ausgabe dieser Funktionen kann durch die Funktion 
  1051. 'Unknown' in der VDI-Funktionsliste beeinflu₧t werden.
  1052.  
  1053.    5.3 GEMDOS
  1054. -------------
  1055. Alle Netzwerk-Funktionen werden erkannt und mit den richtigen
  1056. Parametern ausgegeben. Als erweiterten Ausgaben können die DTA bei
  1057. 'Fsfirst', 'Fsnext', die Filenamen bei allen Operationen mit 
  1058. Filehandles, die vorherige Blockgrö₧e bei 'Mfree' und 'Mshrink' und die
  1059. Ausgabe der Strukturen DISKINFO und DOSINFO angezeigt werden.
  1060.  
  1061. Unter Color-Overscan ist es notwendig, bei den Funktionen 'Pterm0',
  1062. 'Pterm' oder 'Ptermres' kurz auf den GEM Bildschirm umzuschalten, wenn
  1063. gerade der SysMon Bildschirm dargestellt wurde.
  1064.   
  1065.    5.4 BIOS
  1066. -----------
  1067. Die Funktionen 'Setexc' und 'Ticcal' dürfen nicht stepweise getraced
  1068. werden und werden deshalb beim Steppen übersprungen. Die BPB Struktur
  1069. kann über die erweiterten Ausgaben angezeigt werden.
  1070.  
  1071.    5.5 XBIOS
  1072. ------------
  1073. Die neuen Funktion 'Floprate' wird unterstützt, und auch die
  1074. erweiterten XBIOS-Funktionen des Overscan werden erkannt. Die
  1075. Strukturen PARAM, IOREC, KEYTABLE, KBDVECS und PBDEF können über die
  1076. erweiteten Ausgaben anzeigt werden.
  1077.  
  1078. Wenn die Funktionen 'Physbase', 'Getrez', 'Setscreen' aufgerufen werden
  1079. und gerade der SysMon Bildschirm dargestellt wird, ist es notwendig
  1080. kurzzeitig auf den GEM Bildschirm umzuschalten.
  1081.   
  1082.    5.6 LINE_A
  1083. -------------
  1084. Alle zu der jeweiligen Funktion gehörigen LINE_A Variablen werden
  1085. ausgegeben. Die Strukuren MFORM, SDB und BITNLT können über die
  1086. erweiteten Ausgaben angezeigt werden.
  1087.  
  1088.    5.7 Setup-abhängiges Tracen
  1089. -------------------------------
  1090. Das setup-abhängige Tracen kann über die Modi 0..9 in den
  1091. Funktionslisten eingestellt werden. Unabhängig von der Einstellung
  1092. bei PROGRAMs im aktuellen Setup wird ein Aufruf ausgegeben, wenn
  1093. das aufrufende Programm im angegebenen Setup angewählt ist.
  1094.  
  1095. Da dies ziemlich kompliziert ist, hier ein Beispiel:
  1096.   Man möchte das VDI-Tracen, und zwar nicht nur die Aufrufe von
  1097.   Programmen, sondern auch die Aufrufe des GEMs durch das AES.
  1098.   Einige VDI-Aufrufe des GEM finden aber permanent statt:
  1099.      'vq_mouse','vrq_string' usw...
  1100.   Möchte man diese 'permanenten' Aufrufe nicht sehen, so konnte
  1101.   man sie in den vorherigen SysMon-Versionen nur komplett 
  1102.   abschalten, bekam dann aber keine Ausgaben, wenn ein anderes
  1103.   Programm (als das GEM) diese Funktionen aufgerufen hat.
  1104. Genau für dieses Problem ist nun das setup-abhängige Tracen
  1105. gedacht:
  1106.   Das aktuelle Setup sei '1', es sind alle Programme angewählt,
  1107.   auch TOS/GEM. Im Setup '2' sind auch alle Programme angewählt,
  1108.   aber TOS/GEM nicht. Wird nun bei den 'permanenten' Aufrufen
  1109.      'vq_mouse','vrq_string' usw...
  1110.   der Modus '2' vergeben, so gilt bei diesen die Einstellung des
  1111.   Setup's 2: Wenn sie durch das TOS/GM ausgelöst wurden, werden
  1112.   sie nicht ausgegeben, wohl aber aber allen anderen Programmen.
  1113.   Die anderen VDI-Funktionen werden entsprechend der Einstellung
  1114.   von Setup '1' ausgegeben, also auch , wenn sie von TOS/GEM 
  1115.   stammen.
  1116.  
  1117.         6. Die Traps
  1118. ===================================================
  1119.  
  1120.    6.1 SysMon Traps
  1121. -------------------
  1122. Im ausgeschalteten Zustand hängt SysMon im Keyboard-, VBL- und GEMDOS-
  1123. Vektor. Im eingeschalteten Zustand hängt sich SysMon auch in den
  1124. AES/VDI, BIOS, XBIOS und LINE_A Vektor ein. Die Traps beobachten sich
  1125. gegenseitig, so da₧ bei einer Veränderung sofort eine Umleitung 
  1126. (Bypass) angelegt werden kann.
  1127.  
  1128. SysMon versucht immer, der Erste in einem Trap zu sein, da sonst
  1129. Aufrufe von anderen Trap-Programmen abgefangen werden könnten. Ein 
  1130. Aushängen von SysMon ist nur schwer vorstellbar. Es mü₧ten alle Traps
  1131. gleichzeitig umgehängt werden, damit sich SysMon nicht wieder davor
  1132. hängt.
  1133.  
  1134. Der GEMDOS-Trap wird auch im ausgeschalteten Zustand überwacht, um das
  1135. Starten und Verlassen von Programmen mitzubekommen.
  1136.  
  1137. Durch einen Trick wird erreicht, da₧ alle Aufrufe scheinbar aus dem
  1138. eigentlichen Aufrufer erfolgten und so Programme die weiter hinten
  1139. im Trap hängen nichts von der Umleitung durch SysMon erfahren. Dies
  1140. ist für das Funktionieren einiger Programme notwendig.
  1141.  
  1142.    6.2 Der SysTable
  1143. -------------------
  1144. Der SysTable ist ein eigenständiger Programmteil von SysMon. Er liegt
  1145. ganz vorne im SysMon Programm und besteht aus der Bypass-(Umleitungs)
  1146. Tabelle, den Funktion-Stacks und einigen Funktionen, die zur Verwaltung
  1147. der Funktions-Stacks gehören.
  1148.  
  1149. Wird SysMon verlassen, bleibt dieser Programmteil im Speicher zurück,
  1150. wenn entweder Bypasse angelegt wurden oder Funktionen noch nicht
  1151. zurückgkehrt sind. Der SysTable sorgt dann dafür, da₧ die Funktionen
  1152. korrekt aus dem SysMon ausgehängt werden und er beendet sich
  1153. automatisch, sobald er nicht mehr benötigt wird.
  1154.  
  1155. Wird SysMon gestartet, findet SysMon diesem SysTable und benutzt ihn
  1156. vollständig. Alle Aktionen im Zusammenhang mit den Traps, dem Umlenken
  1157. der Funktionen und das Beenden von SysMon werden über den alten
  1158. SysTable abgewickelt. Auf diese Weise braucht bei wiederholtem SysMon-
  1159. Start keine neue Byass-Tabelle oder ein Funktion-Stack angelegt werden
  1160. und SysMon kann immer komplett aus dem Speicher entfernt werden.
  1161.  
  1162. Wird ein Trap von einem Programm umgehängt, legt SysMon in der Bypass-
  1163. Tabelle eine Umleitung an und hängt sich wieder vorne in den Trap. Wird
  1164. ein Trap von einem Programm wieder auf seinen alten Wert gesetzt, wird
  1165. die Umleitung freigegeben. Die Bypass-Tabelle wird nicht von SysTable
  1166. überwacht. SysMon untersucht eine alte Tabelle aber beim Starten und 
  1167. gibt die nicht mehr benötigten Umleitungen wieder frei.
  1168.  
  1169. Die Funktion-Stacks sind notwendig, da es beim ST mehrere Prozesse
  1170. gleichzeitig gibt, die alle Betriebssystemfunktionen aufrufen und daher
  1171. getrennt verwaltet werden müssen. SysMon gibt au₧erdem nicht nur die
  1172. Eingangsparameter einer Funktion aus. Dies bedeutet, da₧ SysMon auch
  1173. hinter dem Aufruf wieder dran kommen mu₧. Die Aufrufe des Systems sind
  1174. aber nicht alle sofort beendet. Ein einleuchtendes Beispiel ist der
  1175. 'Pexec' Aufruf. SysMon wartet nicht bis der Pexec beendet ist und
  1176. arbeitet erst dann weiter,sondern der Aufruf wird auf einem Stack
  1177. abgelegt, die Eingangsparameter ausgegeben und dann können sofort
  1178. weitere Aufrufe erfolgen. Später, wenn der 'Pexec' Aufruf zurückkehrt,
  1179. werden dessen Ausgabenparameter ausgegeben und der Platz auf dem Stack
  1180. freigegeben. Alle AES-Funktionen sind ein weiteres Beispiel. In diesem
  1181. Fall könnte sogar ein anderer Proze₧ aus dem GEM-Trap zurückkehren, als
  1182. hinein ging.
  1183.  
  1184. SysMon verwaltet alle Traps über solche Stacks, deswegen werden auch
  1185. die Aufrufe aus Interrupts oder der VBL angezeigt. Sogar mit 
  1186. Verschachtelungen durch verschiedene Prozesse kommt SysMon zurecht.
  1187. Folgendes extreme Beispiel ist z.B mit einem alten TEMPLEMON zu
  1188. beobachten :
  1189.  
  1190. Ein GEM-Programm macht einen 'evnt_multi' Aufruf. Dieser löst wiederum
  1191. einen 'vrq_string' des GEM-Prozess aus, der wiederum mit 'Bconstat' des
  1192. TOS-Prozess den Status der Tastatur beobachtet. Wird nun eine Taste
  1193. gedrückt, bemerkt man, da₧ der TEMPLEMON, der ja im Keyboard-Vektor
  1194. hängt einen 'Iorec' Aufruf absetzt und dann löst sich die
  1195. Verschachtelung wieder auf ...
  1196.  
  1197. Der SysTable verwaltet diese Stacks eigenständig, so da₧ SysMon 
  1198. jederzeit beendet werden kann. 
  1199.  
  1200. Der aktuelle Zustand des SysTable kann im SYSMON-Menü unter dem
  1201. Menüpunkt UsedTraps ausgegeben werden.
  1202.  
  1203.    6.3 Erweiterte Bypass Funktion
  1204. ---------------------------------
  1205. Wenn im CONFIGURATION-Menü das Flag WatchBypass angeschaltet ist,
  1206. findet eine gesonderte Überwachung der Bypasse statt, anhand dessen
  1207. SysMon entscheiden kann, von welchem Programm ein Aufruf beantwortet
  1208. wurde. Diese Frage ist im Zusammenhang mit Programmen, die bestimmte 
  1209. Aufrufe abfangen, von grö₧ter Wichtigkeit. Zu diesen Programmen
  1210. gehören z.B. GDOS.PRG, SHELL.ACC, TURBOST.ACC, OVERSCAN.PRG, 
  1211. STUFFER.ACC und auch alle ST-Netzwerke.
  1212.  
  1213. Die WatchBypass Funktion von SysMon kann nur funktionieren, wenn SysMon
  1214. vor den anderen Programmen gestartet wird, da es sich normalerweise nur
  1215. vor anderen Programme installiert.
  1216.  
  1217. Ist aber das WatchBypass-Flag zusammen mit er aktuellen Einstellung
  1218. im Sys_Mon.Inf File gespeichert worden, wird beim Starten von SysMon
  1219. eine Sonderfunktion aufgerufen, die versucht, hinter jedem Programm
  1220. einen Bypass zu installieren. Dies funktioniert nur bei Programmen mit
  1221. XBRA-Kennung, da ansonsten der Rücksprung von einem Programm nicht 
  1222. modifiziert werden kann.
  1223.  
  1224. Die eingefügten Bypasse bilden jeweils eine Zwischenstation, in der 
  1225. die ankommenden Aufrufe analysiert werden.
  1226.  
  1227. - Anhand des zuletzt angesprungenen Bypasses kann SysMon entscheiden,
  1228.   welches Programm einen Aufruf beantwortet hat.
  1229. - Wurde die Rücksprungadresse verändert, so kann SysMon ausgeben,
  1230.   welches Programm sich hiner einen Aufruf gehängt hat.
  1231. - Wurde die Funktionsnummer verändert oder ein Aufruf nicht über einen
  1232.   Trap sondern nur über den Stack abgewickelt, so werden diese Aufrufe
  1233.   ausgegeben.
  1234.  
  1235. Wenn das Tracen nicht angeschaltet ist, sind die Bypass Funktionen
  1236. nicht eingebunden und es geht keine Rechnenzeit verloren.
  1237.  
  1238.    6.4 PD-Wechsel und Trap-Überwachung
  1239. --------------------------------------
  1240. Ein Wechseln des aktuellen Prozesses und Veränderungen der SysMon-Traps
  1241. können angezeigt werden. Diese Überwachung findet auch dann statt, wenn
  1242. der Tracer gar nicht angeschaltet ist. Umgeschaltet wird die Anzeige
  1243. mit den globalen Tasten ^P für PD-Change und ^T "fur Trap-Change.
  1244.  
  1245.         7. Beispiel Sitzungen
  1246. ===================================================
  1247.  
  1248.   7.1 Stepweises Booten des Rechners
  1249. ------------------------------------
  1250. (Noch nicht geschrieben...) Es werden die notwendigen Einstellungen
  1251. und Vorkehrungen beschrieben, die für das stepweise Booten des Rechners
  1252. notwendig sind. Als Programme sollten in diesem Beispiel TOS14FIX,
  1253. TEMPLEMON, AMCGDOS, CONTROL.ACC und TURBOST.ACC verwendet werden.
  1254. Es wird erläutert, da₧ es eigentlich der Harddisktreiber ist, der alle
  1255. Auto Ordner Programme nachlädt und dann das GEM startet. Auch sollte
  1256. das Beispiel das Öffnen der GEM-Bildschirm Workstation und das AES 
  1257. Taskswitching beschreiben. Anhand von TURBOST soll ein Programm 
  1258. aufgezeigt werden, da₧ sich auch in den Traps installiert.
  1259.  
  1260.  
  1261.    7.2 Tracen einzelner AES-Aufrufe
  1262. -----------------------------------
  1263. (Noch nicht geschieben...) In einem Beispiel soll aufgezeigt werden,
  1264. welche VDI-Aufrufe durch einen 'form_alert' Aufruf ausgelöst werden.
  1265.  
  1266.  
  1267.    7.3 Tracen eines ACC-Protokolls
  1268. ----------------------------------
  1269. Diese Sitzung zeigt ein einfaches ACC-Protokoll zwischen der GEMINI-
  1270. Shell und dem CLIPBRD.ACC. Das CLIPBRD.ACC sollte in GEMINI als 
  1271. Default-Applikation für alle Dateien installiert sein.
  1272.  
  1273. SysMon sollte mit folgenden Einstellungen versehen werden :
  1274.  
  1275. Im CONFIGURATION-Fenster, wird das Setup mit einem Namen versehen,
  1276. mit der TAB-Taste der HALT-Modus und mit den Control Tasten ^A, ^V 
  1277. und ^G die Funktionsgruppen  AES, VDI und GEMDOS angewählt. Die Anzeige
  1278. der Trap- und PD- Wechsel und wird mit ^T und  ^P angeschaltet.
  1279.  
  1280. Im PROGRAMS-Fenster werden CLIPBRD und GEMINI mit der INSERT-Taste zum
  1281. Tracen ausgewählt. Es würde auch reichen, mindestens ein ACC und ein
  1282. PRG angewählt sind. Alle anderen Programme der der Arten TOS, Auto und
  1283. Res werden mit der DELETE-Taste ausgeschaltet.
  1284.  
  1285. Im SYSMON-Menü wird nun der Tracer wird durch Drücken der ESC Taste
  1286. eingeschaltet. Dieser Zustand wird nun mit 'Write Setup' festgehalten.
  1287.  
  1288. Nach dem Neubooten des Rechners stoppt SysMon beim ersten Aufruf
  1289. des CLIPBRD oder eines anderen ACCs. Diese schaltet man aus, damit
  1290. deren Ausgaben nicht mehr stören. Nun kann man entweder im STEP oder
  1291. RUN Modus fortfahren. Oder aber man fertigt ein Fileprotokoll an.
  1292.  
  1293.  CLIPBRD Mshrink     $03EEC8 < Size $015E10/89616 > NewSize 
  1294.                      89616 -> Ok
  1295.  CLIPBRD appl_init     
  1296.  CLIPBRD appl_init   -> 3  
  1297.  CLIPBRD graf_handle -> (8  ,16 ) (19 ,19 ) Ret 1 
  1298.  CLIPBRD wind_get    H 0 WORK  -> (0  ,19 ) (640,381) 
  1299.  CLIPBRD Dgetdrv     -> Drive C
  1300.  CLIPBRD Dgetpath    Buf $054BCC Drv 0 (active) -> "" 
  1301.  CLIPBRD shel_read   -> "CLIPBRD.ACC"    "" 
  1302.  CLIPBRD menu_regis. "  GEM-Klemmbrett" 3 -> 1  
  1303.  CLIPBRD scrp_read   $04F3BE -> ""
  1304.  CLIPBRD Dsetdrv     $0002 C -> Drives ABCDEF
  1305.  CLIPBRD scrp_write  "C:\CLIPBRD\" -> 1  
  1306.  ...
  1307.  CLIPBRD evnt_multi  KYBD BUT { 2,1,1 } MSG Buf $054CA0 
  1308.  
  1309. Das CLIPBRD benutzt die Funktion 'scrap_read' um festzstellen, ob schon
  1310. ein Pfad gesetzt ist. Wenn nicht, wird er mit 'scrap_write' gesetzt.
  1311. Danach wird mit 'Fsfirst' getestet, ob das CLIPBRD-Direktory schon
  1312. existiert, wenn nein wird es angelegt.
  1313.  
  1314.  ...
  1315.  GEMINI  scrp_read   $0903F8 -> "C:\CLIPBRD\"
  1316.  ...
  1317.  
  1318. Die GEMINI-Shell benutzt auch die Funktionen 'scrp_read' und 
  1319. 'scrp_write' um das CLIPBRD-Direktory festzulegen. 
  1320.  
  1321.  GEMINI  evnt_multi  KYBD BUT { 2,1,1 } MSG Buf $090418 -> 
  1322.                      (132,120) B$01 K$01 Key $0000 But $02 Event
  1323.                      = MU_BUTT 
  1324.  GEMINI  wind_find   (132,120) -> 2  
  1325.  GEMINI  objc_find   $0A2500 (0  ,8  ) (132,120) -> Nr 8  < G_ICON
  1326.                      "SOWTW.TXT" > (8  ,132) Ret 8 
  1327.  GEMINI  objc_offset $0A2500 8  < G_ICON "SOWTW.TXT" > ->
  1328.                      (1  ,82 ) Ret 1 
  1329.  ...
  1330.  GEMINI  appl_find   "CLIPBRD " -> 3  
  1331.  GEMINI  wind_update BEG_UPDATE -> 1  
  1332.  ...
  1333.  GEMINI  graf_growb. (82 ,104) (78 ,40 ) (0  ,19 ) (640,381) -> 1
  1334.  GEMINI  appl_write  ID 3 Cnt 16 $090194 { GEMINI : "E:\SOWTW.TXT"
  1335.                      } -> 1
  1336.  GEMINI  wind_update END_UPDATE -> 1  
  1337.  
  1338. Wird nun ein Doppelklick auf eine Datei ausgeführt, die als zugehörige
  1339. Applikation das CLIPBRD hat, sucht GEMINI mit 'appl_find', ob das
  1340. CLIPBRD geladen ist. Nun schickt es dem ACC mit 'appl_write' eine
  1341. GEMINI-Mitteilung.
  1342.  
  1343. >CLIPBRD evnt_multi  -> (132,120) B$00 K$01 Key $0013 But $00
  1344.                      Event =  MU_MESAG { GEMINI : "E:\SOWTW.TXT" }
  1345.  CLIPBRD graf_mkstat -> (134,119) But $00 Key $0001 
  1346.  CLIPBRD wind_update BEG_UPDATE -> 1  
  1347.  ... 
  1348.  CLIPBRD Fopen       "E:\SOWTW.TXT" ReadOnly  -> $000007 /7
  1349.  CLIPBRD Fseek       H 7 <SOWTW.TXT> Off 0    FromEnd   ->
  1350.                      $00076E / 1902
  1351.  CLIPBRD Malloc      $00076E -> $0A3746 
  1352.  CLIPBRD Fseek       H 7 <SOWTW.TXT> Off 0    FromStart -> Ok
  1353.  CLIPBRD Fread       H 7 <SOWTW.TXT> Cnt $00076E Buf $0A3746 ->
  1354.                      $00076E / 1902
  1355.  CLIPBRD Fclose      H 7 <SOWTW.TXT> -> Ok
  1356.  ...
  1357.  CLIPBRD wind_create { NAME CLOSE FULL MOVE INFO SIZE UPAR DNAR
  1358.                      VSLIDE LFAR RTAR HSLIDE } (0  ,19 ) (640,381)
  1359.                      -> 3  
  1360.  ...
  1361.  CLIPBRD wind_open   H 3 (7  ,91 ) (580,216) -> 1  
  1362.  CLIPBRD appl_write  ID 0 Cnt 16 $054BC8 { SCRP_OK } -> 1  
  1363.  ...
  1364.  CLIPBRD wind_update END_UPDATE -> 1  
  1365.  
  1366. Diese GEMINI-Mitteilung wird wird CLIPBRD verstanden, obwohl in der
  1367. CLIPBRD Dokumentation nur die Scrp_xxxx-Mitteilungen erwähnt werden.
  1368. Insbesondere wird das Hauptfenster vom CLIPBRD geöffnet, wenn der
  1369. Dateiname leer ist, was auch nicht in der Dokumentation zu finden ist.
  1370.  
  1371. Das CLIPBRD nimmt die Mitteilung an, öffnet ein Fenster und stellt
  1372. die Datei dar. Als Antwort wird noch eine 'SCRAP_OK' Meldung vom
  1373. CLIPBRD an GEMINI verschickt.
  1374.  
  1375.    7.4 Tracen eines Programmes
  1376. ------------------------------
  1377. Diese Beispiel Sitzung soll zeigen, wie das Multi-Accessory STUFFER.ACC
  1378. die restlichen Accessories nachlädt und verwaltet.
  1379.  
  1380. Im CONFIGURATION-Fenster wird das Setup 3 mit folgenden Einstellungen
  1381. versehen : AES VDI , GEMDOS, BIOS usw an, STEP-Mode , TrapChanges 
  1382. an. Mit ESC werden die Traps geholt und nun noch unter PROGRAMS
  1383. STUFFER.ACC angewählt. Diese Einstellung abspeichern und den Rechner
  1384. neu booten.
  1385.  
  1386. Nach dem üblichen 'appl_init' und 'menu_register' wartet STUFFER erst
  1387. einmal, da₧ der Desktop fertig aufgebaut ist. Dies geschieht durch
  1388. mehrfachem Aufruf von 'wind_update(Beg/End)'. Dann wird die Ausgabebox
  1389. gezeichnet und der Pfad auf das STUFFER Direktory gesetzt. Mit 
  1390. 'Fsfirst' und 'Fsnext' werden alle *.ACCs herausgefunden und dann hängt
  1391. sich STUFFER in den GEM- und BIOS-Trap ein.
  1392.  
  1393.  STUFFER Malloc    $FFFFFF -> $098E50 
  1394.  STUFFER Kbshift   Mode -1 ->  NoState
  1395.  STUFFER Cconws    "ADDRESS.ACC" -> Cnt 26 
  1396.  STUFFER Pexec     Load "C:\STUFFER\ADDRESS.ACC" "" -> $05F1B4 
  1397.  STUFFER Mshrink   $05F1B4 < Size $098E4C/626252 > NewSize 54204 
  1398.                    -> Ok
  1399.  ADDRESS appl_init
  1400. >ADDRESS appl_init -> 2  
  1401.  
  1402. Der Name eines zu ladenden PRGs wird nicht direkt in der Dialogbox
  1403. ausgegeben sondern mit 'Cconws' auf den Bildschirm geschrieben, dies
  1404. ist auch der Grund, warum es auf einen Gro₧bildschirm oder unter
  1405. OverScan zu Fehlern bei der Positionierung des Strings kommt.
  1406.  
  1407. Mit 'Pexec(Load)' wird nun ein ACC nachgeladen und mit 'Mshrink' der
  1408. Speicher aus die tatsächliche Länge verkleinert. Daraufhin wird das ACC
  1409. von Stuffer direkt gestartet. Da für GEM noch dasselbe ACC läuft wird 
  1410. bei 'appl_init' dieselbe ID zurückgeliefert.
  1411.  
  1412.  ADDRESS menu_regis. "  STreet finder" 2  -[STUFFER]-> 1  
  1413.  ADDRESS evnt_multi  MSG Buf $06C264 
  1414.  STUFFER  Cconws     "\escH\escY->" -> Cnt 79 
  1415.  STUFFER  Cconws     "            " -> Cnt 26 
  1416.  STUFFER  Cconws     "            " -> Cnt 26 
  1417.  STUFFER  Cconws     "\escH\escY->" -> Cnt 79 
  1418.  STUFFER  Malloc     $FFFFFF -> $08B95C 
  1419.  STUFFER  Kbshift    Mode -1 ->  NoState
  1420.  STUFFER  Cconws     "CALNDR.ACC" -> Cnt 26 
  1421.  STUFFER  Pexec      Load "C:\STUFFER\CLOCK.ACC" "" -> $06C6A8 
  1422.  STUFFER  Mshrink    $06C6A8 < Size $08B958/571736 > NewSize 9880 
  1423.                      -> Ok
  1424.  CLOCK   appl_init      
  1425. >CLOCK   appl_init   -> 2  
  1426.  
  1427. STUFFER fängt den 'menu_register' Aufruf ab und merkt sich den Text.
  1428. Bei einem Aufruf aus der 'Event'-Gruppe ist Stuffer wieder dran und 
  1429. wiederholt das Laden von ACCs solange bis entweder alle ACCs geladen
  1430. sind, der Speicher nicht mehr ausreicht oder aber die rechte Shifttaste
  1431. gedrückt ist.
  1432.  
  1433. Wird nun das STUFFER-Menüpunkt angeklickt, zeichnet STUFFER seine
  1434. eigene DialogBox und wartet bis ein Menüpunkt ausgewählt wurde.
  1435.  
  1436.  STUFFER  wind_update END_UPDATE -> 1  
  1437.  STUFFER  v_clsvwk    H 5  -> 
  1438.  STUFFER  Super       $000000 -> $008660 
  1439.  CLOCK   evnt_multi  -[STUFFER]-> (41 ,89 ) B$00 K$00 Key $0000 
  1440.                       But $00 Event = MU_MESAG { AC_OPEN 4 } 
  1441.  CLOCK   wind_update BEG_UPDATE -> 1  
  1442.  ...
  1443.  CLOCK   wind_update END_UPDATE -> 1  
  1444.  CLOCK   evnt_multi  KYBD MSG TIMER  { 1000,0 } Buf $075A8E 
  1445.  STUFFER evnt_multi  KYBD MSG TIMER  { 1000,0 } Buf $03D400 -> 
  1446.                       (57 ,110) B $00 K$00 Key $00FD But $58
  1447.                      Event = MU_MESAG { WM_REDRAW H 4 (99 ,31 )
  1448.                      (80 ,119) } 
  1449.  STUFFER  Super       $000000 -> $008660 
  1450.  ADDRESS evnt_multi  -[STUFFER]-> (57 ,110) B$00 K$00 Key $00FD
  1451.                      But $58 Event = MU_MESAG { WM_REDRAW H 4
  1452.                      (99 ,31 ) (80 ,119) } 
  1453.  ADDRESS wind_update BEG_UPDATE -> 1  
  1454.  ...
  1455.  ADDRESS wind_update END_UPDATE -> 1  
  1456.  ADDRESS evnt_multi  KYBD MSG TIMER  { 10000,0 } Buf $06E938 
  1457.  STUFFER evnt_multi  KYBD MSG TIMER  { 1000,0 } Buf $03D400 -> 
  1458.                      (57 ,110) B $00 K$00 Key $0000 But $00
  1459.                      Event = MU_MESAG { WM_REDRAW H 5 (99 ,31 )
  1460.                      (92 ,59 ) } 
  1461.  ...
  1462.  CLOCK   evnt_multi  -[STUFFER]-> (57 ,110) B$00 K$00 Key $0000
  1463.                      But $00 Event = MU_MESAG { WM_REDRAW H 5 
  1464.                       (99 ,31 ) (92 ,59 ) } 
  1465.  CLOCK   wind_update BEG_UPDATE -> 1  
  1466.  ...
  1467.  
  1468. Die einzelnen ACCs laufen dann jeweils bis zu einem 'Event'-Aufruf,
  1469. dann findet ein Taskswitching durch STUFFER statt. STUFFER kombiniert
  1470. dabei die jeweiligen 'Event'-Aufrufe und leitet 'Timer' und 'Kbd' 
  1471. Events an alle ACCs weiter die einen 'Timer'/'Kbd' Event wollten. 
  1472. Hat man in der STUFFER-Liste ein ACC, das sehr kurze 'Timer' Aufrufe 
  1473. macht, bekommen alle ACCs die 'Timer'-Aufrufe gemacht haben dieselbe,
  1474. womöglich viel zu schnelle 'Timer'-Message. Da sich STUFFER zusätzlich 
  1475. merkt, welches Window zu welchem ACC gehört braucht er die 'Window'-
  1476. Messages nur einmal an den jeweils richtigen Empfänger weiterleiten.
  1477.  
  1478. Für GEM sieht alles so aus,als würde es nur ein ACC geben, da alle
  1479. nachgeladenen ACCs dieselbe ID besitzen. STUFFER ist für GEM auch der
  1480. Besitzer aller untergeordneter Fenster. Im Endeffekt untersetzt STUFFER
  1481. nur das GEM-Taskswitching um eine weitere Stufe.
  1482.  
  1483.  
  1484.    7.5 Fehler im Betriebssystem entdecken
  1485. -----------------------------------------
  1486. (Noch nicht geschrieben...) Es werden einige bisher unbekannten Fehler
  1487. und Verhaltensweisen des Betriebssystem aufgezeigt.
  1488.  
  1489. So wird beschrieben, da₧ der Desktop nach dem Ende eines jeden
  1490. Programmes versuchtm Speicher freizugeben, der ihm garnicht gehört und
  1491. deshalb immer einen 'BadBlockAddress'-Fehler vom TOS gemeldet bekommt.
  1492.  
  1493. Der Fehler im Zusammenhang mit den VDI Workstations wird auch 
  1494. beschrieben. Dieser Fehler tritt auf, wenn eine Workstation, die intern
  1495. in einer Liste verwaltet werden, geschlo₧en wird, die nicht am Ende
  1496. sondern in der Mitte dieser Liste liegt. Alle danach geöffneten
  1497. Workstations bekommen denselben Handle und arbeiten auf denselben
  1498. Parametern. Der Fehler ist sehr leicht mit dem CONTROL.ACC zu
  1499. produzieren. 
  1500.  
  1501. Au₧erdem kann noch die Frage geklärt werden, zu welchem Zeitpunkt ein
  1502. ACC die 'AC_CLOSE'-Meldung geschickt bekommt, wenn man ein TOS Programm
  1503. startet. Die Meldung wird erst verschickt, wenn das Programm beendet
  1504. wird und der Desktop dabei ist, sich neu aufzubauen.
  1505.  
  1506. Eine weitere Merkwürdigkeit im Zusammenhang mit dem Desktop ist
  1507. das '\\X' File, das GEM immer bei jedem MediaChange zu Öffnen versucht,
  1508. aber nicht findet. Warscheinlich wird dadurch das Bios gezwungen, die
  1509. Direktories bis zum Ende zu Durchsuchen.
  1510.  
  1511.  
  1512.         8. Erweiterte Informationen
  1513. ===================================================
  1514.  
  1515.    8.1 Patchvariablen
  1516. ---------------------
  1517. Wie schon beim TEMPLEMON und auch beim OVERSCAN, besitzt auch SysMon
  1518. eine Reihe von Patchvariablen, die man mit einem Diskettenmonitor
  1519. verändern kann. Am Anfang des Sys_Mon.Prg Files findet sich der String
  1520. SysMon_Var. Dieser markiert den Beginn der Patchvariablen, die der
  1521. Tabelle -6- zu entnehmen sind.
  1522.  
  1523.     Länge | Wert  | Art         |           | Bedeutung
  1524.    -------+-------+-------------+-----------+--------------------------
  1525.     Byte  | 98    | Scancode    | HELP      | Aufruf von SysMon
  1526.     Byte  | 1     | Shiftstatus | re.Shift  | Aufruf von SysMon
  1527.     Byte  | 8     | Shiftstatus | Alternate | Abbruch der Installation
  1528.     Byte  | 4     | Shiftstatus | Control   | Sys_Mon.Inf nicht laden
  1529.     Byte  | 0     | Flag        | weiss     | Menüfarbe
  1530.     Byte  | 1     | Flag        | schwarz   | Hintergrundefarbe
  1531.     Long  | 10000 |             |           | Länge des File Puffers
  1532.     Long  | 0     |             |           | Offset Lopbase 
  1533.     Long  | 0     |             |           | Offset Physbase
  1534.     Word  | 50    | Anz. Zeilen |           | Trace-Puffer
  1535.     Byte  | 102   | Scancode    | Block *   | Fensterdump
  1536.  
  1537.                 Tabelle -6- Patchvariablen
  1538.  
  1539. Wählt man z.B. den Abbruch Shiftstatus zu 0, wird SysMon nur 
  1540. installiert, wenn beim Starten mindestens eine der Sondertasten
  1541. gedrückt gehalten wurde. Die beiden Offsets sind bei älteren
  1542. OverScan-Versionen (< 1.7) einzutragen.
  1543.  
  1544.    8.2 Unbekannte TOS-Versionen
  1545. -------------------------------
  1546. SysMon ist von einigen undokumentierten Systemvariablen abhängig.
  1547. Für die bisherigen TOS Versionen sind deren Adressen schon in SysMon
  1548. enthalten. Wird SysMon auf einem Rechner mit unbekanntem TOS gestartet,
  1549. so stellt SysMon dies fest und versucht nun die Systemvariablen heraus
  1550. zu finden.
  1551.  
  1552. - ActPD    Der Zeiger auf den aktuellen Proze₧.
  1553. - MBP      Die Basisadresse der Speicherlisten.
  1554. - AesBase  Die Basisadresse der ersten 3 AES-Blöcke.
  1555. - AesList  Die Zeigerliste auf die restlichen AES-Blöcke.
  1556. - VdiList  Der Zeiger auf die erste VDI-Workstation.
  1557.  
  1558. In SysMon sind Routinen integriert, die diese Adressen aus einem
  1559. laufenden TOS heraus suchen können. Damit die AES- und VDI-Adressen
  1560. sicher erkannt werden können, müssen mindesten's drei ACCs geladen
  1561. sein und mindesten's 3 VDI-Workstations geöffnet sein.
  1562.  
  1563. Dies kann man einfach erreichen, indem man das - zusammen mit dem neuen
  1564. TOS ausgelieferte - CONTROL.ACC  3 mal unter anderem Namen auf die BOOT
  1565. Diskette kopiert und nach dem Booten alle Kontrollfelder gleichzeitig
  1566. öffnet. Nun kann man SysMon erneut starten.
  1567.  
  1568. Nachdem SysMon die Adressen gefunden hat, werden diese direkt in das
  1569. Sys_Mon.Prg gepatcht, so da₧ die Installation des neuen TOS nur einmal
  1570. geschehen mu₧.
  1571.  
  1572.  
  1573.    8.3 Spezielle Anpassungen
  1574. ----------------------------
  1575.  
  1576.    8.3.1 Farbbildschirme
  1577.    ---------------------
  1578.  Bei Farbbildschirmen arbeitet SysMon grundsätzlich in der mittleren
  1579.  Auflösung, beim Wechseln der dargestellten Bildschirmseite wird die
  1580.  vorherige Auflösung wieder eingestellt.
  1581.  
  1582.    8.3.2 Gro₧bildschirme
  1583.    ---------------------
  1584.  Bei Gro₧bildschirmen wird zur Ausgabe der zusätzlich angeschlossene
  1585.  SM124 benutzt. Bei den MATRIX-Treibern wird eine neue VDI-Basisadresse
  1586.  benutzt, die SysMon nicht zugänglich ist. Aus diesem Grunde können bei
  1587.  PROGRAMS oder OS-VARS keine Angaben über die geöffneten VDI-Workstations
  1588.  gemacht werden. Einige Funktionen der Treiber scheinen auch noch Fehler
  1589.  zu haben, z.B. wird bei 'vsl_type(1)' der Linientyp Null zurückgegeben, 
  1590.  den es laut GEM-Beschreibungen nicht gibt.
  1591.  
  1592.    8.3.3 OverScan
  1593.    --------------
  1594.  Unter OverScan und AutoSwitch-OverScan wird die beim Starten von SysMon
  1595.  vorliegende Auflösung benutzt. Wird SysMon nach OverScan gestartet, so
  1596.  werden die zusätzlichen Ausgabezeilen ausgenutzt.
  1597.  
  1598.    8.3.4 STE
  1599.    ---------
  1600.  Beim STE gibt es zusätzliche Shifterregister, die es z.B. erlauben den
  1601.  Bildschirm byteweise zu positionieren. Diese Register werden beim
  1602.  Umschalten des aktuellen Bildschirms gesichert und  beim Zurückschalten
  1603.  wieder hergestellt.
  1604.  
  1605.    8.3.5 TT
  1606.    --------
  1607.  Die Anpassung an die zusätzlichen Video-Hardware-Register des TT ist
  1608.  noch nicht erfolgt, da noch keine Unterlagen darüber vorhanden sind.
  1609.  SysMon läuft aber in allen normalen Modi des TT, ein Wechseln der
  1610.  Auflösung während des Tracens wird aus oben genannten Gründen noch 
  1611.  nicht unterstüzt.
  1612.  
  1613.    8.3.6 68000-68030
  1614.    -----------------
  1615.  Für die verschiedenen Prozessoren werden die jeweils die Trap-Handler
  1616.  angepa₧t.
  1617.  
  1618.    8.4 Interna
  1619. --------------
  1620. - Der Vorgang zum Erkennen der vor SysMon geladenen Programme
  1621.   läuft folgenderma₧en ab :
  1622.   Der Speicher wird vom Ende der Betriebssystem-Variablen bis zum
  1623.   MemTop nach Basepages,Programmheaders usw. durchsucht. Dabei findet
  1624.   ein Abgeich mit der MAL und MFL statt und es wird die Liste der
  1625.   residenten Bereiche angelegt. Ausserdem wird die Liste der AES-Blöcke
  1626.   nach ACCs durchgegangen. Neuerdings existiert auch eine extra Routine
  1627.   zum Erkennen von Harddisk-Treibern.
  1628.  
  1629.   Wenn es sich nicht um eine Basepage oder einen Programmheader handelt,
  1630.   so testet SysMon, ob einer der Systemvektoren in den Bereich zeigt.
  1631.   Ist dies der Fall, wird auch ein Programm dazu angelegt. Bei Speicher-
  1632.   blöcken, die in der MAL eingetragen sind, ist der Start und das Ende
  1633.   des Programms bekannt. Ist das Programm aber resident geladen, so ist
  1634.   nur das Ende (Der Anfang des nächsten Blocks) bekannt. Der Anfang 
  1635.   liegt irgendwo vor der Einsprungadresse des Vektors. SysMon nimmt in
  1636.   diesem Fall das Ende des vorherigen Programms als Start des neuen
  1637.   Programms an. Wenn das vorherige Programm einen residenten 
  1638.   Datenbereich angelegt hat, so zählt dieser dadurch zu dem neuen
  1639.   Programm.
  1640. - Die Ausgabe- und Scroll-Routinen werden je nach Auflösung beim 
  1641.   Starten des Programm in den Code hineinkompiliert. In Mid-Res wird 
  1642.   nur eine der 2 Planes benutzt und die Farben jeweils neu gesetzt.
  1643. - Damit SysMon die Ein- und Ausgabe Parameter einer Funktion ausgeben
  1644.   kann und damit alles auch über einen alten SysTable abgewickelt
  1645.   werden kann, ist der Weg eines einzelnen Funktions- Aufrufs sehr
  1646.   verschlungen.
  1647.   - Zuerst wird vom Trap zum BypassTable gesprungen.
  1648.   - Von dort weiter zur Routine, die bewertet, ob dieser Aufruf
  1649.     ausgegeben werden soll.
  1650.   - Wenn die Funktion nicht getraced werden soll, geht sie ihren Weg
  1651.     über den BypassTable weiter den Trap hinauf, um dort ausgeführt und
  1652.     ohne Störungen zum Aufrufer zurückzukehren.
  1653.   - Ansonsten werden die Eingangs Parameter ausgegeben.
  1654.   - Die alte Rücksprungadresse, die Art des Aufrufs usw. werden auf dem
  1655.     FunktionStack abgelegt und eine neue Rücksprungadresse vorgeben.
  1656.   - Nun wandert die Funktion weiter die Traps hinauf ins
  1657.     Betriebssystem, um dort ausgeführt zu werden.
  1658.   - Wenn andere Programme im Trap hängen, die von SysMon mit einem
  1659.     Bypass versehen wurden, wird dieser Bypass von den Programmen
  1660.     angesprungen. Der Bypass springt dann sofort weiter zur nächsten
  1661.     Station. Da z.B. der VDI Trap beim Booten laufend umgehängt wird, 
  1662.     kann es sein, da₧ die Funktion noch  3-5 mal  über einen  SysMon 
  1663.     Bypass springt, bevor sie im Betriebssystem ankommt.
  1664.   - Irgendwann kehrt die Funktion zurück, zwischenzeitlich können aber
  1665.     auch andere Aufrufe stattfinden oder auch Aufrufe zurückkehren. 
  1666.     Die Funktion landet jedenfalls wieder im SysTable.
  1667.   - Der SysTable übernimmt das Entfernen der Funktion aus dem
  1668.     Funktionen Stack. 
  1669.   - Wenn SysMon noch vorhanden ist, wird nun die Routine für die
  1670.     Ausgabeparameter angesprungen.
  1671.   - Wenn es gewünscht wird, kann das SYSMON-Menü betreten werden.
  1672.   - Dann erst kehrt die Funktion zum Aufrufer zurück.
  1673.   SysMon verändert bei seiner Tätigkeit keine Register, auch das CCR
  1674.   wird nicht verändert.
  1675.   Durch einen Trick scheint es dem Betriebssystem oder den im Trap
  1676.   folgenden Programmen sogar so zu sein, da₧ die Aufrufe aus dem
  1677.   aufrufenden Programm kommen und wieder dorthin zurückkehren.
  1678. - Der SourceCode von SysMon hat mittlerweile einen Umfang von 15000 
  1679.   Zeilen bei 380 K Bytes erreicht. 
  1680.  
  1681.    8.5 Bugs / Features
  1682. ----------------------
  1683. Manchmal werden geladene Programme nicht erkannt. Dies ist insbesondere
  1684. beim 'LoadTime'-Linking einiger Programmierumgebungen nicht zu
  1685. vermeiden. SysMon bemerkt zwar den Wechsel des PDs - dadurch wird im
  1686. PROGRAMS-Menü das richtige Programm als aktuelles angezeigt - aber die
  1687. Aufrufe kommen ( adressmä₧ig ) aus der Laufzeitbibliothek, die nicht im
  1688. Codebereich des neuen Programms liegt, sondern in der jeweiligen Shell.
  1689. Beim Tracen wird so der Name der Shell ausgegeben, obwohl die Aufrufe 
  1690. von einem anderen Programm kommen.
  1691.  
  1692.    8.6 Erweiterungen
  1693. --------------------
  1694. - Die Anpassung an das MicroRTX von Beckemeyer Development ist schon
  1695.   im Programm integriert, da die Anpasung noch nicht vollständig ist,
  1696.   ist das Menü nicht für den Normalbenutzer nicht erreichbar.
  1697. - Wenn SysMon alle Traps besitzt, sinkt die VDI-Performance um ca
  1698.   20 %. Dieses liegt daran, da₧ eine Überwachung der VDI-Handles und
  1699.   AES-IDs stattfindet, auch wenn VDI und AES nicht getraced werden.
  1700.   Die Routinen sind noch in C und noch nicht optimiert. 
  1701. - Geplant ist eine spezielle OverScan Anpassung, die die zusätzlichen
  1702.   Bildschirmzeilen am unteren Bildrand als Ausgabebereich für SysMon
  1703.   benutzt.
  1704. - Die ganze Anpassung an den Farbmodus sollte so verändert werden,
  1705.   da₧ SysMon mit den Orginal-Farben arbeiten kann. Im Augenblick sind
  1706.   viele Umschaltungen notwendig, weil SysMon im Color-Modus mit Palette
  1707.   1 und 3 arbeitet, da so dieselbe Ausgaberoutine wie im Monochrom-
  1708.   Modus verwendet werden kann.
  1709.  
  1710.  
  1711.         9. Shareware Bedingungen
  1712. ===================================================
  1713. Unter der Voraussetzung, da₧ immer die Dateien 
  1714.  
  1715.    README,  SYS_MON.PRG ,FEATURES, CHANGES
  1716.    STORIES, SYS_MON.TEX und SYS_MON.TXT 
  1717.  
  1718. unverändert kopiert werden, darf SysMon für private Anwender frei
  1719. kopiert und benutzt werden. Kommerzielle Nutzung in jeder Form (dies
  1720. schliesst auch den Vertrieb über Public-Domain-Sammeldisketten oder 
  1721. ähnliches ein) ist NICHT GESTATTET.
  1722.  
  1723. Wem SysMon gefällt, darf es benutzen und weitergeben, auch über
  1724. Mailbox-Systeme. Dazu sollten alle Dateien auf dieser Diskette in 
  1725. einem Archiv (ARC, LH-ARC oder ZOO ) zusammengefasst werden.
  1726.  
  1727. Die neuste SysMon Version ist auch durch Zusendung einer 3.5" 
  1728. Diskette und eines frankierten und adressierten Rückumschlages an
  1729. meine unten angegebene Adresse erhältlich.
  1730.  
  1731. Die Entwicklung von SysMon hat bisher 1,5 Jahre in Anspruch 
  1732. genommen, aus diesem Grunde sehe ich mich nicht in der Lage, SysMon
  1733. kostenlos (als PD oder Freeware ) zu vertreiben.
  1734.  
  1735. Da SysMon ein sehr komplexes Produkt ist, dessen Benutzung schon
  1736. einiges an Wissen vorraussetzt, habe ich mich für das Konzept der
  1737. Shareware entschieden, wonach SysMon frei kopiert und ausprobiet werden
  1738. darf, jedoch bei regelmä₧iger Benutzung ein Shareware-Betrag von
  1739. DM 50,- fällig wird. 
  1740.  
  1741. Wird SysMon im professionellen Umfeld eingesetzt, so ist ein erhöhter
  1742. Shareware-Betrag von 100 DM fällig. Für diese 100 DM erhält die/der 
  1743. jeweilige Firma/Softwareentwickler einen automatischen Update Service
  1744. für die nächsten 5 Versionen und eine Rechnung/Quittung, damit sie 
  1745. SysMon von der Steuer absetzen können.
  1746.  
  1747. Meine Bankverbindung lautet :
  1748.  
  1749.   Karsten Isakovic
  1750.   Sparkasse der Stadt Berlin
  1751.   Kto: 0950128864
  1752.   Blz: 10050000 
  1753.  
  1754.  
  1755. Bitte notieren Sie bei Banküberweisungen im Kommentarfeld Ihren Namen
  1756. und Ihre Adresse, ansonsten kann ich keinen Kontakt zu Ihnen aufnehmen!
  1757.  
  1758.  Ich übernehme keine Haftung für irgendwelche direkten oder indirekten 
  1759.  Schäden -- einschliesslich aber nicht beschränkt auf materielle oder
  1760.  finanzielle -- die durch die Benutzung von SysMon oder die
  1761.  Untauglichkeit von SysMon für einen bestimmten Zweck entstehen.
  1762.  
  1763.  
  1764.         10. Kontaktadressen
  1765. ===================================================
  1766. Man kann mich auf folgende Art und Weise erreichen :
  1767.  
  1768.    10.1 Über die gelbe Post
  1769. ---------------------------
  1770.  Karsten Isakovic 
  1771.  WilmersdorferStr. 82 
  1772.  1000 Berlin 12 
  1773.  
  1774.    10.2 Über Mailboxen
  1775. ----------------------
  1776.  
  1777. Ich bin in folgenden Mailboxen zu erreichen :
  1778.  
  1779.  Im Maus-Netz     mit Karsten Isakovic @ B 
  1780.  Im Zerberus-Netz mit Karsten_Isakovic!IfiNet!Mircon
  1781.  Im StarNet-Netz  als STEN in der >PGS< Pegasus
  1782.  Maus   Berlin  030/3956092
  1783.  Parrot Berlin  030/724467 als STEN
  1784.  
  1785.