DESQview System Information DVSI Version 1.10 by Daniel J. Bodoh INTRODUCTION DVSI is an attempt to bring some Unix commands to DESQview (T), and provide information on DESQview's status. Many Unix-utility packages exist, but are intended for non-multitasking DOS. With the advent of DESQview, multitasking on a DOS machine became possible, and I found myself wishing I had some of the Unix commands at my fingertips. This package is not only restricted to Unix-like commands, though. DESQview System Information sums it up well, although there is (and will be) utilities that don't necessarily provide information. Maybe "Helpful DESQview Stuff" would have been a better name. All the DVSI programs may be run from the DOS command line. All may be run in their own window, and some can be run continously for monitoring. THE DVSI PACKAGE The files in this package include README.1ST - This file MANPAGES.DOC - A formal description of each command WHATSNEW.DOC - Changes since version 1.0 DVSIXDI.COM - DVSI's external device interface PS.COM - Process status: Handle, switch windows #, memory info, cpu time and utilization, etc. DF.COM - Free and used disk space PERF.COM - DESQview performance: CPU Utilization, task switches KILL.COM - Kills processes WN.COM - Kills, raises, lowers, tops, suspends or hides processes UPTIME.COM - Displays time DESQview has been running MEMSTAT.COM - An alternative to DESQview's Memory Status PS-PIF.DVP - DVP for PS.COM PF-PIF.DVP - DVP for PERF.COM DF-PIF.DVP - DVP for DF.COM UP-PIF.DVP - DVP for UPTIME.COM MT-PIF.DVP - DVP for MEMSTAT.COM SYSTEM REQUIREMENTS - DESQview 2.26 or newer - DOS 3.3 or newer (the programs may work with older versions of DOS; I haven't tested) HOW IT WORKS The heart of DVSI is DVSIXDI.COM. This is a Terminate-and-Stay- Resident (TSR) program which is required by most of the programs. DVSIXDI should be placed in your AUTOEXEC.BAT and run before DESQview is started. Unfortunately, the DESQview API provides no way to get a list of the current processes. However, DESQview 2.26 introduced a way to "hook" into DESQview and collect this information. This "hook" is called an eXternal Device Interface (XDI). Every time DESQview starts a process, kills a process, swaps a process out, switches to a new process, etc, it calls all the XDIs that have been loaded. DVSIXDI keeps track of the current processes in a list, and adds other information to this list such as Open Keys and CPU Time. The utilities that I provide communicate with DVSIXDI and get their information from it. Some programs, such as DF.COM and MEMSTAT.COM, don't require DVSIXDI loaded because they don't use any of this information. Just what you needed was another TSR. I have attempted, however, to make DVSIXDI as small as possible. In fact, I employed some tricks to keep the size down. Version 1.0 required 1.1K of memory; version 1.10 requires 1.3K of memory. If I hadn't used these tricks, version 1.10 would be about 2K. In order to save precious memory, load your TSRs (including DVSIXDI) before you set a PATH or any other environment variables. That will keep the environment which is loaded with the program at about 0.1K or less. GETTING STARTED I am going to assume you know what AUTOEXEC.BAT is, and how to use Add A Program. If you don't, take a look at the manuals or find a guru. Put all the DVSI files in an appropriate directory, such as C:\DVSI. If you have DVSI 1.0, just get rid of all the 1.0 files. Install DVSIXDI.COM in your AUTOEXEC.BAT. If you use loadhi, DVSIXDI requires about 3K of run-time memory and 1.3K of resident memory (if you place it before any environment variables). If you want to run the DVSI programs from the DOS command line, add the DVSI directory to your PATH. Reboot so DVSIXDI.COM gets installed. You can only install it once. Start DV, and run Add A Program. Choose OTHER (Add Program Not on List) and enter the name of the DVSI directory in the PATH field. A list of the DVP files in the DVSI directory will be shown. Select the programs that you want to install on the Open Windows menu, and hit ENTER. You don't have to install all the programs, for they can be run from the DOS command line. The most useful ones to install on the Open Windows menu are PS, MEMSTAT and DF because they can continously show status. The others can just as well be run from the command line. PS, MEMSTAT, and DF don't have to be run in a continous mode; they can be run from the command line as well. Read the rest of this file. Read MANPAGES.DOC to learn about the commands and the options that are available. And if you are a user of DVSI 1.0, take a look at WHATSNEW.DOC for a list of bug fixes and changes. MOST IMPORTANTLY: Send me comments, gripes, suggestions, bug reports, etc. I want to hear from you! I can be reached at Internet: bodoh@xraylith.wisc.edu or bodoh@cae.wisc.edu AT&T net: (608) 255-3474 USPS net: UW-Madison Electrical and Computer Engineering Dan Bodoh, Graduate Student 1415 Johnson Drive Madison, WI 53706 BBS's: Quarterdeck's BBS (213) 396 3904 comp.os.msdos.desqview DISTRIBUTION The DVSI package is copyright 1991 by Daniel J. Bodoh. You may freely distribute it in its unmodified form. No files may be added to the package or removed from the package, nor can any executable or doc file be modified. In MANPAGES.DOC, I provide the programming interface for DVSIXDI.COM. If you write a program to communicate with DVSIXDI, you may not include it as part of the package. You must distribute it separately, and provide pointers to the DVSI package. You can upload DVSI to the same place as your program, but they must be 2 distinct entities. Basically, I don't want to claim your credit, or conversely, be associated with your bad programming. If you write it, you are responsible for it! If you want to include you program as part of the package, you must send me the source code. It must be compileable under Turbo C using the DVGLUE package from Ralf Brown. I will not claim credit to the code; your name will appear in it. I may or may not spend my time fixing bugs in it. If it is too full of bugs, I will not distribute it. THANKS Thanks to... Ralf Brown, for his DVGLUE package and his interrupt list Those that sent me comments on DVSI 1.0: JC Pollman - Suggested the grain of an idea: a "window manager" which I intend to write for the next version Nikolaus R. Haus - Suggested taking output from one window and routing it elsewhere. This may come in a future version; it will require a lot of thought and work. Shannon D. Appel - Suggested using "?" in the PS SW column for orphaned processes. Also suggested KILL (which I already had plans for), and asked for the ability to show TSRs in PS. That may be coming, but there are a lot of utilities for displaying TSRs already. Yehiel Greenbaum - Suggested a remote call in utility for DESQview. I'm thinking about that, but it could be a while before I attempt that. Chia-Chi Chao - Suggested that PS search C:\DV if /d is not specified. Good idea! Chris Webster - Pointed out some memory problems for those who are not blessed with 4 or more megabytes. Richard Reiner - Discussion on TSR memory usage. Prompted me to shrink DVSIXDI.COM. Also told me about DVCOMMANDER. Ward Engle - Discovered bug in NAME and KEY fields for certain cases when programs are started from a script. I hope I have that bug fixed now. Mike Pawka - Suggested not erasing window in continous mode, which I had already implemented. FUTURE WORK A short note on my ideas for the next version: I would like to write a window manager. It would pop up with the DV menu, and provide a PS-like list of the processes. Using the mouse, you could click on one and do any of the WN commands by clicking on a button - one for kill, raise, lower, etc. The window that pops up may also provide other info such as DF, PERF and MEMSTAT. If you have any suggestions, let me know!