ExecMon 2.5b © 1996-97 Szymon Pura FREEWARE Last change: 04 Sep 1997 =============== WHAT IS EXECMON =============== ExecMon is a powerful, fast and reliable system monitor. It's main purpose is displaying and controlling Amiga activities, such as windows, libraries, memory, locks and a lot more. ExecMon is especially useful for debugging and for removing crashed programs from memory. Please note, that ExecMon is meant only for experienced and advanced Amiga users. ExecMon allows you to change some low-level system structures, and IMPROPER USAGE WILL CAUSE YOUR MACHINE TO CRASH. ExecMon has been tested on 68000,68EC020 and 68030 machines, under OS2.04, 3.0 and 3.1. Remember, that some of ExecMon's features use really 'dirty' tricks and assumptions about OS, which may conflict with future releases of the operating system. At the moment NO reads/writes are performed on custom chips' registers. Also, NO system routines are patched. ============ INSTALLATION ============ Just copy ExecMon and its icon to the selected directory. NOTE: Since V2.2, preferences file is stored in PROGDIR: instead of ENVARC:. Since V2.4, ExecMon will also look for its config file in ENV:. ExecMon requires Kickstart V37+ and Reqtools V38+ to run. Note, that Kickstart V39+ is recommended: the newer OS allows to do some operations in much 'cleaner' way. ===== START ===== Just type 'ExecMon' from CLI or double-click on ExecMon icon from WB. No commandline arguments or tooltypes are recognized. ===== USAGE ===== ExecMon opens its own screen, public or custom. The main window looks like this: /-------------------------------------------------------------------------\ | | | Main display area | | | | | | | \-------------------------------------------------------------------------/ /------------------------------\ /------------------------------\ | | | | | Lists | | Operators | | | | | | | \------------------------------/ | | | Refresh List | \------------------------------/ \------------------------------/ First select one of the 'Lists' items. Now all available operators will appear in the listview to the right. You can invoke them by simple mouse click. If you select an entry from the main list, some additional commands may appear in 'Operators' list. All lists are sorted according to related subsystem. There's no more documentation on lists available at the moment, sorry. I haven't got enough time to do this, not to mention my poor English. Anyway, experienced users shouldn't have any diffilcuties, I tried to make ExecMon as easy-to-use as possible. ========= LOG FILES ========= There are two ways to create a log-file: 1. Use the 'Write log file...' function from the pull-down menu. A file-requester will open, asking for logfile name. Log file will be created immediately. 2. Use the 'Open log file...' function from the pull-down menu. A file-requester will open, asking for logfile name. Now use 'Add to log file' function to write displayed list, and select 'Close log file' when you're done. Options: - Include date - current date will be included in the log file - Include header - a header text will be included in the log file - Console sequences - log file may contain some additional text-formatting console sequences. Switch it off to obtain pure ASCII file. ========= TECHNICAL ========= o 68060 is not currently recognized by functions from 'Hardware'. This is mainly because OS3.1 doesn't support it directly. o Currently, the only disk libraries needed by ExecMon are reqtools.library and diskfont.library. No other disk-based subsystems are required, that should allow it to run without much overhead. o Some operations are protected by Disable()/Enable() pair,so note that NO SERIAL/PARALLEL ACTIVITY SHOULD BE PERFORMED WHEN EXECMON IS WORKING (there should be no ill effects when ExecMon is just running and waiting for user input). o The 'Open device' function from 'Devices' list simply increases LIB_OPENCNT field of the Device structure. o The 'Open monitor' function from 'Monitors' list simply increases the open counter without notifying graphics.library o Most lists are protected against damaged system structures, but still some Enforcer hits may occur - they're completely harmless and are usually caused by read accesses to low memory regions. But in normal situations _NO_ Enforcer/Mungwall hits should appear - if you detect one, please send a bug report to me. (There's only one exception: on systems with VBR set to 0 (and also 68000 machines) ExecMon will access low memory regions during preparation of the 'Vector Base'.) ======= HISTORY ======= o 25/05/96 1.0 - first release o 01/06/96 1.0a - GUI slightly improved - Now listviews are clipped, most problems with huge fonts fixed o 15/06/96 1.1 - Improved TextFont list - 'Examine window' fixed - Optimized for shorter object and source files - Minor bugfixes in rendering code o 23/06/96 1.1a - GoToSleep fixed - 'Signal task' improved - Two Enforcer hits removed o 04/02/97 2.0 :-} - Private memory pools are used instead of 'Vecs'. - Almost full protection against damaged CSTR and BSTR's implemented. - Major optimizations - ExecMon should perform significantly faster. - LogFile functions greatly improved. - 'Examine screen/window' greatly improved. - 'Examine drive' added to Drives. - 'Change flags', 'Change ver', 'Change pri' added to KickTagList. - 'Close device', 'Open device' added to Devices. - 'Open monitor' added to Monitors. - 'Change flags', 'Rename port' added to Message ports. - Subclass counter added to BOOPSI. - Exec/MemoryList added. - Keyboard/ResetHandlers added. - Exec/KickMemList added. - Some smaller and bigger bugs fixed - LONG's and ULONG's should be fixed. o 14/02/97 2.1 - Some global code clenup, resulting in shorter object file - Screen creation greatly improved, error handling finally added. Now ExecMon is able to open a custom screen. - Now ExecMon can work in 640x200 resolution - Overscan gadget added to ScreenMode requester - 'Load Preferences...' requester fixed 8-> - 'Flush memory' added to MemoryHandlers - Status bar fixed (could accidentally display some strange characters) - Expansion/Boards and Expansion/Bootnodes added o 27/02/97 2.2 - Lots of tiny harmless bugs fixed. - ExecBase is now cached for speedup, and most accesses to ExecBase are now made via system calls instead of direct peeking. - Now Dos/Locks list shows names of exclusive locks correctly. - Volumes/'Examine volume' added. - Drives/'Examine drive' now shows also InfoData structure whenever possible. - Dos/CLIs list added. - Dos/Residents list added. - Hardware/'Cache control' added. - Hardware/'CPU registers' added. - Hardware/General added. - Drives/Inhibit added. - PublicScreens/Lock & Unlock added. Also the 'Close screen' is fixed. - Preferences file is now stored in PROGDIR: instead of ENVARC:. - Now screen font is used during menu creation. o 01/05/97 2.3 - Internal engine greatly improved. ExecMon is now faster and shorter than 2.2. - Dos/Assigns - 'Assign lock' and 'Assign path' fixed. - Some other minor fixes and improvements - Interrupts, KickMemList, Tasks. o 21/05/97 2.4 - a potentially dangerous bug in GUI engine fixed. - Hardware/VectorBase added. - Hardware/CPU registers now also shows MMU registers of 68030. (68020+68851 and 68040/60 MMUs are not supported yet) - Graphics/DisplayDatabase added. - If prefs file is not found in the program directory, ENV: will be searched. o 21/08/97 2.5 - Some optimizations made. ExecMon is now shorter than 2.4. - Several minor and major bugs fixed (ModifyIDCMP, Dos Residents, RefreshList). - Keymap list added. - 'Hardware Registers' finally fixed and improved. - Some minor improvements (FileSystems, BOOPSI, Interrupts). - Totally redone font selection. - 'Action list' improved, should be easier to use it. o 04/09/97 2.5a/2.5b - Some minor adjustments done. - Minor, but still troublesome bug fixed. ====== AUTHOR ====== ExecMon is FREEWARE. It can be freely distributed as long as no more than a nominal fee is charged to cover time and copying costs. All use is at your own risk. Suggestions, donations, bug reports are welcome at: (use e-mail if possible) Szymon Pura szymp@friko.onet.pl Witosa 8/57 42-224 Czestochowa POLAND +48 (0)34 624666