ARTM Amiga Real Time Monitor V1.6 ------------------------------------ Copyright © 1990 1991 1992 by Dietmar Jansen & F.J. Mertens ARTM ist ein Shareware Programm und darf ohne Profit kopiert werden ( max. Diskettenpreis + Porto ). ARTM darf nur unverändert und komplett weitergegeben werden. Bei regelmäßiger Benutzung bitten wir um einen Shareware-Beitrag von 20,- DM. Dafür er- haltet ihr einen Update - Service ohne die lästigen Requester. Jeder registrierte ARTM - User erhält alle weiteren Updates kostenlos, wenn ich von ihm einen ausreichend frankiereten Rück- umschlag und eine formatierte heile Diskette erhalte. Wenn ihr nur schreibt,um Bugs, Anregungen oder Fragen loszuwerden, dann fügt bitte ein ausreichend frankierten Rückumschlag bei. Das viele Porto wird ganz schön teuer. Wenn die Antwort dann mal länger dauert verzweifelt nicht, ich muß nebenbei auch noch arbeiten. ARTM gibt Aufschluß über viele Activities im Amiga, ist voll intuition-gesteuert im Wb2.x look und sehr leicht zu bedienen. ARTM braucht umbedingt Arp.library 39.+ Programmstart: ARTM kann sowohl über die Workbench ( durch Doppelklick auf das Icon) als auch über das CLI gestartet werden. Der Start über CLI oder die Startup-Sequence birgt folgende Option: runback ARTM -i200/200 ist die Position des shrinkIcons 200/200 ist ein Beispiel ARTM -q startet ARTM als Icon ARTM wird als HintergrundTask gestartet. Auf dem WBScreen er- scheint das ARTM - Icon (iconify), durch anwählen öffnet es sich und ARTM steht voll zur Verfügung. ----------------------------------------------------------------------------- Folgende Funktionen sind implementiert: Tasks ist default wenn ARTM gestartet wird und listet alle Task's auf, die sich im Amiga befinden. Durch Mausklick auf eine beliebige Task wird diese selektiert. Anschließend kann mit der Funktion PRIORITY die Priority verändert oder mit REMOVE die Task entfernt werden. MORE bringt zusätzliche Detailin- formationen. Folgende Informationen werden angezeigt: Address, Priority, Signals, State, Code, Type, Name. Windows listet alle geöffneten Screens und Windows. Auch hier kann durch Mausklick ein Screen oder ein Window selektiert und mit CLOSE aus dem Amy entfernt werden. Mit MORE werden Zu- satzinformationen angezeigt, wie min, max Width und Hight. ACHTUNG Windows sollte man nur schließen wenn auch die zuge- hörige Task tot ist. Sonst ist der GURU gewiß. Das gleiche gilt für Windows mit geshartem IDCMP-Port. Folgende Informationen werden angezeigt: Address, Position, Size, Flags, IDCMP ( nur bei Windows ), Title. Libraries zeigt alle eingebundenen Libraries im Amiga.Wurde eine Library angewähl t kann mit der Funktion PRIORITY die Priority und mit CLOSE die Library geschlossen werden (der OpenCount wird auf 0 gesetzt).Libraries die selbst eingebunden wurden, können auch mit REMOVE removed werden wenn der OpenCount = 0 ist. Folgende Informationen werden angezeigt: Address, Type, Priority, OpenCount, Version ( setzt sich zusammen aus Version & Revision), Negsize, Possize, Name. Devices listet alle Devices auf. Mit REMOVE können Devices removed werden, sofern diese closed sind. PRIORITY kann die Priority wie bei Libraries verändern. Folgende Infqormationen werden angezeigt: Address, Type, Priority, OpenCount, Version ( setzt sich zusammen aus Version & Revision), Negsize, Possize, Name. Resources listet alle Resources. Mit der Funktion PRIORITY kann die Priority geändert werden und mit REMOVE eine vorher selek- tierte Resource entfernt werden. Eine kleine Unstimmigkeit tritt in zusammenhang mit den ALF 2.0 Resourcen auf. Bei einem Opencount von 21000 und Version von 14021.0 schiebe ich diesen Bug mal der Programmierung von ALF2.0 zu. Folgende Informationen werden angezeigt: Address, Type, Priority, OpenCount, Version (setzt sich zusammen aus Version & Revision), Negsize, Possize, Name. Ports zeigt alle Ports mit den Namen der zugehörigen Tasks. Ports können mit REMOVE removed werden, aber VORSICHT ist von Nöten. Folgende Informationen werden angezeigt: Address, PortName, Type, SigBit, Flags, TaskName. Residents zeigt alle Residents im Amiga. Zusätzlich werden auch die Residents gezeigt, die durch das Verbiegen des Pointers KickTagPtr zusätzlich zur Verfügung stehen. ( z.b. ein Virus oder die RAD:) Dabei werden Residents, die nur in der KickTagPtr-Tabelle stehen orange und solche, die nach einem Reboot auch in der ResmodulesTabelle stehen schwarz angezeigt. Folgende Informationen werden angezeigt: Address, Type, Priority, Version, Flags, Name. Interrupts listet alle Interrupts im Amiga auf. Interrupts die durch Interrupt-Server verwaltet werden können mit REMOVE ent- fernt werden. Folgende Informationen werden angezeigt: Address, Data, Code, Priority, Type, Nr., InterruptName, Name. Vectors zeigt die wichtigsten SystemVectoren des Amigas. ColdCapture, CoolCapture, WarmCapture, KickMenPtr, KickTagPtr, KickCheck- Sum Mit dem Gadget CLEAR können ColdCapture, CoolCapture und WarmCapture zu NULL gesetzt werden. Wird KickMemPtr, KickTag- Ptr oder KickCheckSum vorher selektiert, werden alle drei auf einmal auf NULL gesetzt. Der KickTagPtr bietet noch eine Be- sonderheit. Wird in der Residentliste auf die er zeigt ein Eintrag gefunden, wird dessen Node (Address) und Name hinter dem KickTagPtr gezeigt. Sind mehrere Einträge vorhanden, wird momentan nur der erste angezeigt. Will man alle sehen, so ist die Funktion Residents aufzurufen. Die Einträge der KickTagPtr-Tabelle erscheinen farbig (siehe oben). Folgende Informationen werden angezeigt: Address, VectorName und Content, sollte KickTagPtr auf eine eigene Residenttabelle zeigen, wird Address & Name dieser Residents mitangezeigt. Memory zeigt die Speicheraufteilung in chip, fast und expansion Ram an. Mit Funktion PRIORITY kann die Priority geändert werden und MORE zeigt die Größe und Lage der einzelnen Speicherfragmente. Folgende Informationen werden angezeigt: Address, Priority, Attribute, Lower, Upper, Maximum, in Use, Free, Largest, Name und ganz unten die Total Werte Mount listet alle mit mount angemeldeten Devices im Amiga auf. Folgende Informationen werden angezeigt: Address, Device, Heads, Sectors, Buffer, Cylinder, Inter- leavefaktor, Handlername. Bei Speichereinheiten zeigt ARTM zusätzlich Size, Full, rw (read/write), Volume (name) an. Assign zeigt alle assignten Pfade und Programme. Folgende Informationen werden angezeigt: Address, Directory, Path. Locks listet alle Locks (read und write). Es kann vorkommen das die Anzahl der Locks größer als 100 ist, (es werden aus speicher- platzgründen nur 100 Arrays angelegt) werden mit Forward oder Backward die nächsten oder voherigen 100 Locks angezeigt. Hier kann jetzt wie gewohnt hin und her gescrollt werden. Wird ein Lock angewählt kann er mit Unlock entfernt werden. Einschränkung: Es werden maximal 150 LOCKS angezeigt. Folgende Informationen werden angezeigt: Address, Access, Path. Fonts zeigt alle geladenen Fonts, auch die im KickRom. Mit REMOVE wird der selektierte Font aus der Liste entfernt. Gibt das benutzende Programm den Font frei, (Count auf NULL) wird auch der dafür belegte Speicher freigegeben. Folgende Informationen werden angezeigt: Address, Count, YSize, XSize, Style, Flgs, LoChar, HiChar und Name. Hardware listet alle installierten autoconfig-boards (ExpansionBase) auf. Außerdem wird angegeben welcher Prozessor und Math- prozessor eingebaut sind. Ferner werden auch die CustomChips gelistet und zwar wird unterschieden ob Fat Agnus oder Fat Denise (PAL oder NTSC) oder die normalen Agnus und Denise eingebaut sind. Folgende Informationen werden angezeigt: Address, Boardadr, Boardsize, Slotadr, Slotsize, Driver, Product, Type, Manufacturer und Board. Res Cmds zeigt alle Residents vom AmigaDos und auch vom ARP1.3 ARES Command. Beim AmigaDos Resident werden alle Datnesegmente mitangezeigt. Und zwar mit Lower Adr, Upper Adr und Size. Einschränkung: Es werden maximal 150 RES_CMDS (Zeilen) angezeigt. Folgende Informationen werden angezeigt: Sys (AmigaDos oder ARP), Name, Usage (nur bei ARP), Access. Monitor ist ein kleiner Speichermonitor, der es Erlaubt alle Speicher- stellen zu begutachten. Es werden immer 100 Zeilen angezeigt, die gescrollt werden können. Mit Forward und Backward können die nächsten oder voherigen 100 records angezeigt werden. Bei Address erscheint ein kleiner Requester, hier kann eine Adresse angegeben werden. Ab hier zeigt der Monitor dann an. Folgende Informationen werden angezeigt: Address, Bytes(Hex), Bytes(ASCII) Last Alert zeigt die letzte Alertnummer mit Adresse. ----------------------------------------------------------------------------- Folgende Aktionen sind implementiert: Remove entfernt vorher selektierte Tasks, Libs, Devices, Ports, Fonts Resources und Interrupts aus dem System. Selektiert wird mit einfachem Mausklick auf den entsprechenden Eintrag. Close schließt Screens/Windows und Libraries. Vorgehensweise wie bei Remove. Clear setzt die SystemVectoren auf NULL. Vorgehensweise wie bei Remove oder Close. Freeze hält eine laufende Task an, entfernt die Task aus der Node- struktur und speichert die Taskstruktur zwischen. In ARTM ist das in der Tasklist am STATE "Frozen" zu erkennen. Wird ein frozen Task ausgewählt (angeklickt) kann er mit Activate wieder zu Leben erweckt werden. Activate ist die Umkehrfunktion von Freeze. Siehe oben. Priority verändert die Priority der vorher angewählten Task, Library, Device, Ports, Interrupts, Memory oder Resource über einen Requester. Der Wert kann über Tastatur oder die beiden Pfeile verändert werden. Die Priority ist nur im Rahmen von -128 bis 127 veränderbar. Am besten zwischen -10 und 10. Unlock entfernt einen Lock (read oder write) aus der Liste. Hier ist Vorsicht angebracht. Wenn das System den Lock noch kennt, geht die Reise nach Indien. More gibt zusätzliche Informationen. Dies gilt in dieser Version erst nur für Task, Windows, Screens, und Memory. Beispiel eine gewünschte Task wird mittels Mausklick selektiert, danach einmal MORE anwaehlen. Das Ergebnis sieht dann so aus. Task Structure: IDNestCnt: 0 TDNestCnt: -1 SigAlloc: c000ffff SigWait: c0000000 SigRecvd: 00000000 SigExcept: 00000000 TrapAlloc: 8000 TrapAble: 0000 ExceptData: 00000000 ExceptCode: 00fc2ff0 TrapData: 00000000 TrapCode: 00ff47ea SPLower: 00266834 SPUpper: 00267034 SPReg: 00266f96 Switch(): 00000000 Launch(): 00000000 UserData: 00000000 Process Structure: WindowPtr: 00000000 Title: MsgPort: 00000000 StackBase: 00266834 StackSize: 2048 CurrentDir: 00000000 Path: CIS: 00000000 COS: 00000000 ConsoleTask: 00000000 FileSystemTask: 0020709c SegList: 002365e4 SegPointer: 0024940c PktWait: 00000000 CLI: 00091bc3 CommandLineInterface Structure: CommandDir: 00246874 StandardInput: 00000000 StandardOutput: 00000000 CurrentInput: 00000000 CurrentOutput: 00000000 Module: 00000000 Hunks: Lower Upper Size ---------------------------- 00249410 00249a6c 1636 0022ee80 0022ee80 8 total: 1644 Bei Task, Windows, und  Screens sieht das Ergebnis dann entsprechend aus. Bei  Memory wird die Speicherfragmention aufgelistet in Adresse und Size. Break bricht laufende Task ab. Es werden die Signale Control D/E/F/C gesetzt. Signal kann SigAlloc in der Taskstuktur verändern. Dies tut Break im überigen auch. Cancel bietet die Möglichkeit die Gadgetleiste von Aktion (orange) in Funktion (weiß) unzuschalten, damit wieder alle Funktionen wie z.B Monitor zugänglich sind. zz ist eine iconify funktion. Wird dieses Gadget angfewählt verschwindet das Window und wird zum Icon. Ein doppelter Mausklick auf dieses Icon öffnet wieder das ARTM-Window. i i = ABOUT + + zeigt die HELPS ----------------------------------------------------------------------------- Note : Eine Bitte vorweg an Alle, die die Funktion Hardware nutzen und Erweiterungskarten installiert haben. Teilt mir doch bitte im einem kurzen Brief, oder an untenstehende Node mit was bei PROD TYPE und MANUFACTRE rauskommt. Dazu dann auch den Name, Typenbezeichnug und Hersteller der Karte. Alle Funktionen sollten nur mit Vorsicht gebraucht werden. Im Übrigen sollte man wissen was man tut. Wünsche für die nächste Version und bug reports (hoffentlich nicht) bitte an die Autoren. Und vergeßt nicht den ausreichend frankierten Rückumschlag. Am einfachsten erreicht ihr mich übers Fidonet. ----------------------------------------------------------------------------- Limitations Wer ARTM im NTSC-HIRES Modus unter Wb2.x nutzt wird gemerkt haben das bei einem größerem ScreenFont der Windotitle über die ersten Gadgets schreibt. Dies liegt daran das für das ARTM Window mindes- tens 200 rows benötigt werden. Eine Änderung ist nicht geplant, da nur der oben genannte Modus betroffen ist und mit ECS sowieso hinfällig ist. Eventuel mache ich das ARTM Window sizeble. ----------------------------------------------------------------------------- Changes in V1.0 Um das Programm kürzer zu halten, haben wir eine PAL und eine NTSC Version erstellt. Neue Funktionen: Memory, Mount, Assign, Fonts, Hardware, Iconify More bringt viele Zusatzinformationen z.B. bei Tasks. Start als Icon (iconify) mit Runback ARTM -q ----------------------------------------------------------------------------- Changes in V1.1 Neue Funktionen: Locks, Res Cmds, Monitor, Last Alert, Break, Signal und Freeze. Funktion More wurde überarbeitet und bringt nun mehr Informationen übersichtlicher. Die untere Gadgetreihe wurde aus Platzgründen doppelt belegt. Hier wird automatisch zwischen Funktion und Aktion ungeschaltet. Wird die Funktion z.B. Libraries angeklickt erscheinen alle Libraries in den Stringgadgets. Durch Mauskilck auf die gewünschte Library wird diese selectiert und die untere Gadgetleiste schaltet um. Nun werden nur die Aktionen angezeigt die auch hier erlaubt sind. Bug fixed: dank Pius Nippgen Wurde eine Task, wo der WindowPtr auf -1 verbogen wurde (verhindert Requester) selectiert um sich mit MORE die Strktur anzuzeigen, gab es eine Guru 00000003 ungerade Adresse. ----------------------------------------------------------------------------- Changes in V1.2 Funktion Hardware gibt nun auch den Bordtype aus z.B. A2090. Dies funkt nur bei C= Boards und auch nur bei den mir bekannten. Sonst wurden nur einige kleine Fehler behoben. ----------------------------------------------------------------------------- Changes in V1.2a Aus den getrennten PAL und NTSV Versionen wurde eine gemacht. Hat der WB-Screen mehr als 255 rows wird das bekannte ARTM_PAL_Window geöffnet sonst das für NTSC. Bug fixed: dank Markus Stoll Manchmal gurute die func. WINDOWS ----------------------------------------------------------------------------- Changes in V1.2b ARTM wurde OS 2.0 tauglich gemacht, mit einer Einschränkung die func. RES CMDS tut nicht. ----------------------------------------------------------------------------- Changes in V1.3 func. RES_CMDS tut nun auch unter 2.0 mit einer Einschränkung, es werden nur 150 strings maximal verwaltet. Bei RES_CMDS oder auch bei LOCKS können bis zu 240 Einträge vorkommen. Diese Einschränkung wird aber in einer der nächsten Updates behoben. Bug fixed: func. dank Markus Stoll LOCKS ermittelte unter DOS2.0 falsche Werte. func. GETPATH wurde durch pathname.o (.asm) von Markus Stoll ersetzt. ----------------------------------------------------------------------------- Changes in V1.3a Wenn die arp.library nicht im system ist meldet dies ein Requester. ----------------------------------------------------------------------------- Changes in V1.3b wurde (von einem dem man den Amiga wegnehmen sollte gepatched. Von mir ist nie eine Version 1.3b rausgegeben worden. ----------------------------------------------------------------------------- Changes in V1.3c bug fixed: in func. Interrupts. Der NMI wurde mitangezeigt obwohl der Amiga ihn nicht nutzt. bug fixed: in func. Ports. Unter Wb2.x hat iprefs zu unschöner Ausgabe geführt. ----------------------------------------------------------------------------- Changes in V1.4 ARTM wurde von der Oberfläche her an Wb2.x angepaßt. Wird ARTM vom CLI aus gestartet können ein neuer Parameter mitgegeben werden. -i200/200 für die shrinkiconposition. bugs fixed: function Iconify() wurde komplett neugeschrieben. Es wurde das springende Icon (abundzu beim ersten Klick) gefixed und die Layer anderer Programme werden nicht mehr verunstaltet. Note. wurde nicht veröffentlicht ----------------------------------------------------------------------------- Changes in V1.5 Die Datenausgabe wurde von Gadgets auf func. Text angepaßt. Dadurch wurde ARTM um ein par KB kürzer und etwas schneller. ARTM koppelt sich nun ganz vom CLI ab, dadurch kann nach Aufruf ARTM weiter im CLI gearbeitet, oder das CLI geschlossen werden. Note. wurde nicht veröffentlicht ----------------------------------------------------------------------------- Changes in V1.6 Große Teile von ARTM in Bezug auf variblen handling wurden überarbeitet. Die static variblen für die Daten wurden ganz durch ein dynamisches variablen handling ersetzt. Memory wird erst alloziert wenn er auch ge- braucht wird und bei aufruf der nächsten func. freigegeben und nach Be- darf neu alloziert. Vorteil: Max size reduzierte sich von ca. 70K auf 47K Limitations von max 150 Einträgen entfallen. Nachteil: geringfügig langsamer. ----------------------------------------------------------------------------- Franz-Josef Mertens & Dietmar Jansen Sonnenrain 17 7277 Wildberg West-Germany Vielen Dank an alle, die uns beim Testen und mit Tips oder kleinen Routinen geholfen haben. Insbesondere Matthias Zepf und Markus Stoll.