ID:MT Multitasking in DESQview Quarterdeck Technical Note #152 by Stan Young One of the features of DESQview is the ability to provide for the multi-tasking or background processing of a program. This feature allows the user to start an operation which will not require user intervention and then switch to another task while the operation continues in background. While multi-tasking is certainly a useful feature, it is important to note that DESQview cannot provide multi-tasking all by itself. A program's ability to multi-task in DESQview is dependent on the setup of the program, the hardware being used, and in some cases the way the program has been written. What is absolutely required: SETUP - First, in order to multi-task a program must be set up so that it is allowed to multi-task. Under the default setup for a program added to the DESQview menu by choosing the "Other" selection from the Add A Program menu, DESQview assumes several things that prevent multi-tasking. * DESQview assumes the program "Writes directly to the screen." * DESQview assumes that if the program writes directly to screen and the machine is not a 386 with QEMM, it does not "Run in background." Given that DESQview assumes that the program runs only in foreground, under the defaults, the program will not run in background even if otherwise capable of doing so. Therefore it is necessary to modify the default setup using "Change a Program" to see if the program can run in background. The first thing to determine is whether the program actually "Writes directly to screen" (see below). If it does not, and you set the "Writes directly to screen" option to "N", DESQview will allow the program to run in the background. MEMORY - Second, in order to multi-task a program must be able to remain in active, addressable RAM. Multi-tasking is an internal function of DESQview, and DESQview does not REQUIRE any add-on in order to multi-task. HOWEVER, 640K can certainly be a limited environment if you are trying to multi-task large programs. If you are planning to multi-task large programs, you may need to purchase additional memory. The only types of memory which currently can be used for multi- tasking beyond 640K are EEMS memory, EMS 4.0 memory ON A FULLY FUNCTIONAL EMS 4.0 BOARD (an EMS 4.0 driver on old-style EMS 3.2 board will not suffice) or exTENDed memory on a 386 machine with QEMM, CEMM or compatible 386 expanded memory driver. If your machine's memory configuration is such that the program must be swapped out to disk, ramdisk, or EMS or EEMS memory, then the processing of that program will be interrupted. You will know this has happened if you get a "Swapping..." message when switching from the program. If this is happening and you have configured your programs to minimum memory sizes, the only thing that can allow you to achieve multi-tasking is to increase the number or size of the addressable memory partitions available to DESQview. As indicated before, this may require additional hardware. More information on this subject can be found in the DESQview manual under the appendix, "Using Expanded Memory with DESQview". What is usually desired: SCREEN MANAGEMENT - Another item that is usually necessary for effective background processing, although not absolutely required, is for DESQview to be able to provide screen management. A program which actually "Writes directly to screen" cannot have its screen output managed by DESQview. Therefore, if it is running in the background and updates the screen, what it writes will print through on the screen of the foreground application. Testing to see if the program writes directly to screen: All graphics based programs write directly to screen; however if your program runs in character mode, you should try setting it up in a window that has the "Writes directly to screen" option set to "N". Then invoke the program, allowing it to come up in a small DESQview window. If the program loads into the window without writing outside the window frame, the program does not write directly to screen and should operate properly in the background. If the program does print outside the window frame, the program does write directly to screen and you will have to evaluate for yourself whether running it in the background would upset your foreground operation too much. On a 386 machine, Quarterdeck's QEMM 386 driver provides virtualization of the screen in text, CGA, EGA, Hercules Monographics, and VGA graphics mode so that programs using those modes can run with their screens managed by DESQview regardless of whether they write directly to screen or not. If the programs switch modes in background (for instance, switch from text to graphics), you must explicitly set the "Runs in background" option to "Y". Keyboard and mouse handling: Programs running in background should be well behaved with regard to their use of the keyboard. If they are not, running them in the background may cause problems with using the keyboard in the foreground window. In some cases, setting "Keyboard Conflict" to 4 using Change a Program can alleviate this problem. DESQview versions prior to 2.2 do not currently support the background operation of a program that is using the mouse unless that program is DESQview aware. Running a program that uses the mouse in background will cause the mouse to be lost for DESQview or other programs. As of version 2.2, DESQview "virtualizes" the mouse so that non-DESQview aware programs "see" the mouse only when in foreground. Copyright (C) 1991 by Quarterdeck Office Systems * * * E N D O F F I L E * * *