═══ 1. Introduction ═══ This program displays several items related to system resources, and updates the display once per second, providing it is given CPU time to do so. The items displayed are: Date/Time - The current date and time, in the format called for in the default country information for your system, as specified in the 'COUNTRY=' entry of your CONFIG.SYS file. Elapsed Time - The elapsed time since the computer was last restarted. Physical Memory Free - The amount of system memory available, according to the DosMemAvail function. Note: This function is part of the old 16-bit system, and only reports physical memory below 16Mb, and was also altered just before OS/2 2.0 was released to never report less than 512K. Virtual Memory Free - The amount of virtual memory available, according to the DosQuerySysInfo function. This is the amount of free physical memory, plus the amount of free space within the current swapping file, plus the amount of space by which the swapping file could yet grow, less the amount of free space reserved on the swapping drive. Swap File Size - The current size of the system virtual memory swap file, SWAPPER.DAT. To locate the file, the file CONFIG.SYS is scanned for its SWAPPATH entry. That entry provides the full name of the swap-file's directory and indicates the minimum free space that must be left on the swap-file's disk drive. Available Swap Space - The amount of free disk space on the logical disk drive where the system swap file resides, less the mininum free space. This is how much more the swap file could expand, if necessary. Unused Swap Space - The amount of free space within the currently allocated system swap file. When this drops to zero, the system swap file must be increased in size, normally by one megabyte at a time. Spool File Size - The amount of disk space consumed by spool files. CPU Load (%) - The approximate percentage of the CPU's available horsepower that's being used at the moment. It is averaged over the previous second. Note: This function and PULSE do not get along with each other. Why? Note: If you have the driver HRTIMER.SYS installed, this number will be more accurate. Why? Active Task Count - The number of entries in the system switch list, which is the list displayed when you press CTRL+ESC. Note: Not all entries in the system switch list are displayed in the Window List. Some are marked for non-display. Total Free Disk Space - The amount of free space on all the local non-removable disks combined. Drive X Free - The amount of free space on drive X. The help facility is active, as you've already seen, and those program commands that exist may be accessed via the window's system menu. The following commands are available: Save Settings Reset Defaults Hide Controls Configure... Reset Load Meter Copy About Close In addition to those features already described, this program accepts commands from the OS/2 2.0 Font and Color Palette programs, and is a DDE server for all the currently displayed items. The DDE application name is MEMSIZE, and the item names are the same as the default display item names (like Physical Memory Free). ═══ 2. Save Settings (Menu Option) ═══ When you select this menu option, the program saves its current position and the status of the Hide Controls option. The next time the program is started, it will be started with that position and with the controls hidden (or not) according to the saved state. The short-cut key for this command is F2. ═══ 3. Reset Defaults (Menu Option) ═══ Selecting this menu option will reset the program's font and color attributes to their default values. ═══ 4. Hide Controls (Menu Option) ═══ This menu option, when selected, will cause the program's frame controls (the system menu, the titlebar and the minimize button) to be hidden. This option can be toggled with a double-click on either mouse button. Also, since I saw it as very useful to be able to move the window while the controls were hidden, the window has been set up so that you can drag it with either mouse button. The key combination Alt+H will perform this function also. ═══ 5. Configure (Menu Option) ═══ This menu option, when selected, will cause the program's configuration dialog to be displayed. For more information, see Configure (Dialog). Note: The short-cut key to this option is Alt+C. ═══ 5.1. Configure (Dialog) ═══ This dialog allows you to change all configurable aspects of this program's operation. To escape without effecting any changes, press the ESCAPE key or click on the Escape pushbutton. To save the changes you've made, press the ENTER key or click on the OK pushbutton. The configurable items include the following: Display Items You may select any or all of the items in the Display Items list for monitoring and display. Simply click on an item to highlight it, click again to remove the highlight. Highlighted items are monitored. To change an item's default label, or to restore the default label, double-click on an unselected item. The item will be selected and a dialog presented from which you may alter the item label. Show 'K'ilobytes This group of radiobuttons allows you to select whether large sizes are displayed in kilobyte notation always, never, or only when their values exceed 512K. The default is to show all sizes over 512K in this way. Keep in mind that one kilobyte is actually 1024 bytes, not 1000. Monitor Priority This control allows you to set the absolute priority of the monitoring thread of the program, within the time-critical priority class. You may vary the priority from 0 to 31. Priority 31 is the highest possible priority in the system, short of physical interrupts. Priority 0 is simply the lowest priority within the time-critical class. Normally, you should set this to the maximum for more accuracy in system monitoring. However, some have complained that their communications programs occasionally miss data while this program is running. For that reason the priority is now variable. Timer Interval This control allows you to set the interval between monitor window updates. It can be varied from 1.0 seconds to 30.0 seconds, in steps of 1/10 second. The number displayed is in tenths of a second. Window Anchor This control allows you to set the corner of the monitor window which remains fixed in position when the window size changes. The monitor window can change in size when items are added or removed from the active list, and when the display font is changed from the Font Palette. Hide Controls When the clock is not iconized, it can be show with or without the usual title bar, system menu and minimize/maximize buttons. If you chose to hide these controls, the window may still be positioned by dragging its center area. Float to Top This button activates an window's float-to-top function. When this button has been check-marked, the clock will float to the top of the window stack, making itself visible all the time. Animate This button activates the window open & close animation feature. When this is active, the program window will open and close in the same way as the folder objects do: with sound and motion. As with folders, animation will not occur unless it has been enabled at the system level. Show File System Names This button causes the individual drive free space entries to show the type of file system in use with the drive. Use of this option results in a wider monitor window. Show Disk Labels This button causes the individual drive free space entries to show their disk labels. Use of this option results in a wider monitor window. Show Seconds This button causes the clock and elapsed time displays to include the seconds of the minute. ═══ 5.1.1. Set Item Label (Dialog) ═══ This dialog box displays the current and default label for a display item, and allows you to alter it. To change the label, simply type the new label over the current one. To restore the label to its default, click on the Default button. ═══ 6. Reset Load Meter (Menu Option) ═══ This menu option allows the user to reset the CPU Load meter, recalibrating it, causing it to forget previous CPU activity in its calculations. ═══ 7. Copy (Menu Option) ═══ This menu option copies the current window display to the system clipboard in two formats: Text and Bitmap. The text version shows all the currently displayed items in a form suitable for pasting into a text editor. The bitmap version shows an exact copy of the current window, and can be used by graphic editors and viewers. The short-cut key for this command is Ctrl+Ins. ═══ 8. About (Menu Option) ═══ This menu option, when selected, will cause the program's About dialog to be displayed. For more information, see About (Dialog). ═══ 8.1. About (Dialog) ═══ This dialog box displays the program name, icon and copyright information. To exit the dialog, press the ENTER key, the SPACE bar or the ESCAPE key, or click on the OK button with the mouse. ═══ 9. Close (Menu Option) ═══ This menu option, when selected, will cause the program to terminate. ═══ 10. Keys Help ═══ The following function keys have been defined for this program: F1 - Help F2 - Save Settings F3 - Exit Alt+C - Configure Alt+H - Hide Controls Ctrl+Ins - Copy ═══ 11. Set Profile Path (Dialog) ═══ This dialog is displayed when the program cannot find its profile (INI) file, and asks you where the file is or where it is to be created. Only a valid existing directory name will be accepted. Once you have entered the name, press the ENTER key or click on the OK button for the program to continue. If you wish to abort the program's initialization sequence, press the ESC key or click on the escape button. ═══ 12. HRTIMER - High Resolution Timer driver ═══ The high resolution timer device driver, HRTIMER.SYS, enables a program to access a normally unused timer chip found on IBM PCs. It has a resolution as high as 840 nanoseconds, 64K times better than the normal timer resolution of 55 milliseconds. The only places I know of right now that has this program available are CompuServe, where the program can be found in the Device Driver Development library of the OS/2 Developer's Forum I (OS2DF1), under the name TIMER.ZIP, and on the anonymous ftp sites ftp.cdrom.com and hobbes.nmsu.edu. The file can be found in the directory /pub/os2/dev16, as hrtimer.zip. The source code for this device driver was obtained from the Fall 1991 issue of IBM Personal Systems Developer magazine. It is freeware, but the original copyright belongs to IBM. ═══ 13. What is the conflict with PULSE? ═══ This program, as well as PULSE, CPULOAD, CPUMETER and similar programs, all attempt to measure how busy the computer is by trying to see how much work they can accomplish at the lowest possible priority. Presumably, if one of these programs can do anything at that priority, it must be using idle time. If there is no idle time, the computer is 100% busy. The more this program can do at system idle priority, the less busy the computer is assumed to be. The problem with running more than one of these programs at the same time is that they begin to compete for that idle time. If you ran two copies of the same program, and nothing else, they should both show about 50% CPU load. If you run two disimilar programs, like this one and PULSE, they would both be affected, but usually to differing degrees. ═══ 14. How does HRTIMER.SYS help? ═══ With HRTIMER.SYS installed, system overhead is included in the CPU Load. The CPU Load is determined by comparing how much work could be done at idle priority with the most the program has been able to do up to the present moment. Without more information, normal system background activity would appear as zero load. If HRTIMER.SYS is installed on your system, then this program executes a calibration loop at startup, in which it determines just how much work can be accomplished at the highest possible priority. This amount is then used for comparison.