FREQUENTLY ASKED QUESTIONS IN COMP.OS.MSDOS.DESQVIEW Release 2 Last update: February 24, 1992 Edited by Daniel J. Bodoh Posted on the first of every month WHAT IS THIS ARTICLE? --------------------- This article is a regularly posted compendium of topics that have been discussed in the Usenet newsgroup comp.os.msdos.desqview since its birth. Although many of the questions are truly "Frequently Asked", others are questions that experienced DESQview users recognize as questions a beginner might ask. If you are new to DESQview or this group, please read this FAQ before posting your question. Even if your question isn't answered here, you'll probably learn something new about DESQview. Although I edit this FAQ, a majority of the information contained in it was contributed by other comp.os.msdos.desqview readers. The many contributors are listed at the end of the document. The FAQ list is available on the anonymous FTP sites SIMTEL20, HAYES.IMS.ALASKA.EDU and DVNet (see Q7) as DVFAQx.ZIP, where ``x'' is the release number. On SIMTEL20, it is in the directory PD1:. SUGGESTIONS, ERRORS, CRITICISMS... ---------------------------------- Please, send may any comments on this FAQ list. Since this FAQ is being distributed beyond Usenet, here's how to reach me from other networks. From the Internet or Usenet: write to ``bodoh@xraylith.wisc.edu''. From Compuserve: write to ``>INTERNET:bodoh@xraylith.wisc.edu''. From Envoy: write to ``[RFC822=\"bodoh(a)xraylith.wisc.edu\"]INTERNET/TELEMAIL/US'' From Fidonet: send mail to the user ``uucp'' at the nearest UUCP or Internet gateway; use ``To: bodoh@xraylith.wisc.edu'' as the first line of the message. From Applelink: write to ``bodoh@xraylith.wisc.edu@internet#''. From DECnet: write to ``cxrl::bodoh'' From Bitnet: write to ``bodoh@xraylith.BITNET'' FORMAT OF FAQ ------------- Questions are listed in the first section, and are labelled Q1 through Q28. Answers, labelled A1 through A28 are given with the labelled question in the next section. Finally, the contributors are credited. Cross references are made, for example, with "(see Q2)". QUESTIONS --------- Q1: What is DESQview? Q2: Besides DESQview, what other products does Quarterdeck sell, and what are the current versions? Q3: What types of programs can DESQview run? Q4: What type of computer is required for DESQview? Q5: How can I upgrade my 80286 for best DESQview performance? Q6: Does DESQview support Super VGA? Q7: Where can I get freeware and shareware DESQview programs? Q8: I want to write software for DESQview. Where can I get the API? Q9: I've heard that DESQview does preemptive multitasking. What does that mean? Q10: Why do the other windows slow to a virtual halt when one window accesses the floppy disk? Q11: Can Windows run under DESQview? Q12: Can I make something like AUTOEXEC.BAT for DESQview, so that certain windows open every time I run DESQview? Q13: Can text and graphics be displayed at the same time with Hercules? Q14: How do I use two monitors under DESQview? Q15: What are Exceptions 12 and 13? Q16: What determines the amount of conventional memory that DESQview claims for itself and takes away from programs? Q17: What are some programs that are incompatible with DESQview? Q18: I'm having a problem {configuring DESQview, running a program, etc.}. How do I fix it? Q19: How can I contact Quarterdeck? Q20: What books are available on DESQview? Q21: What are the command-line switches for DESQview/QEMM/QRAM? Q22: How can I configure DESQview for maximum window memory under DOS 5? Q23: What is NOFF.SHP {NOFF.SHR}? Q24: How can I increase DESQview's performance? Q25: My {9600 or greater} BPS modem drops characters under DESQview. Is high speed communication possible under DESQview? Q26: Why doesn't ANSI.SYS work in DESQview? Q27: Why does the mouse pointer disappear after running certain programs? Q28: What are those files SWAP*.DV in my DV directory? Can I delete them? QUESTIONS AND ANSWERS --------------------- Q1: What is DESQview? A1: DESQview is a program written by Quarterdeck Office Systems of Santa Monica, California, USA. It allows true preemptive multitasking (see Q9) on 8088, 8086, 80286, 80386, 80486, V20 and V30 machines running MS-DOS (see Q4). While MS-DOS is still considered the PC's operating system, DESQview provides services similar to more advanced multitasking operating systems. Q2: Besides DESQview, what other products does Quarterdeck sell, and what are the current versions? A2: [Versions are the latest known as of the date of the FAQ. If you see a newer version, please let me know.] Quarterdeck has two types of "upgrades": major upgrades and compatibility updates. The former involves a changing of the digit before or immediately after the decimal point and represents significant enhancements to the product's performance. The latter reflect minor changes generally of interest to a small number of users. DESQview 2.42 An excellent DOS multitasker. QEMM-386 6.02 A memory manager for 80386+ machines. QEMM will convert extended memory to XMS memory (replacing HIMEM.SYS) and LIM EMS 4.0 memory. With the associated utilities, you can load TSRs, device drivers, and DOS data structures into high memory in order to gain conventional memory for large programs. Manifest is provided with QEMM. Note that QEMM is a VCPI server, and not a DPMI server so it is not compatible with programs that require DPMI. QEMM-50/60 ??? Similar to QEMM-386, but specifically for PS/2 models 50 and 60 which are 80286-based machines. DESQview/386 2.42 Actually DESQview/386 is a copy of DESQview and QEMM in the same package. If you already have DESQview, purchasing QEMM will give you DESQview/386. QRAM 2.0 A memory manager for 8088 through 80286 machines. QRAM will provide UMBs (Upper Memory Blocks, memory greater than 640K but less than 1024K). To do this requires either LIM EMS 4.0, EEMS, a memory management chip or a 286 motherboard with C&T's NEAT, LEAP or SCAT chip set. The UMBs can be used to load TSRs, device drivers, and DOS data structures into high memory in order to gain conventional memory for large programs. Manifest is provided with QRAM. MANIFEST 1.12 Manifest is a "system information" utility. It displays hardware information, memory usage, internal DOS structures and much more. DESQview Companions 1.1 A set of utility programs, including a calculator, datebook, notepad, and terminal emulator. DESQview/X (not yet released) DESQview/X is a program that Quarterdeck announced in 1990. Currently, its rumored release date is March or April 1992. DESQview/X will be DESQview in an X-windows environment. Remote X clients running on Unix or other DESQview/X machines will be able to display their output on the local machine. Local DOS applications will display in X Windows and remote X Servers will be able to display character-based DOS applications running on a DESQview/X PC. Q3: What types of programs can DESQview run? A3: There are three types of DESQview programs: DESQview-oblivious programs, DESQview-aware programs, and DESQview-specific programs. According to the DESQview manual, DESQview-oblivious programs are those which are "written without any consideration for DESQview." These include standard DOS programs like word processors and spreadsheets. Some standard DOS programs have the ability to detect the presence of DESQview. These programs are considered DESQview-aware. The advantage of DESQview-aware programs is better system performance, because DESQview does not have to make conservative assumptions about the program. A DESQview-aware program gives up the CPU when it doesn't need it, and if it writes directly to the screen it instead writes to a DESQview-provided video buffer so it can run in a small window (see Q23). If you'd like to make your program DESQview-aware, there is code provided at the end of the DESQview manual. DESQview-specific programs can only be run while DESQview is active. These programs use the window management, interprocess communication and other services that are built into DESQview. DESQview will multitask all programs, regardless of type. Q4: What type of computer is required for DESQview? A4: DESQview can multitask programs on an 8088, 8086, 80286, 80386sx, 80386dx, 80486sx, 80486dx, V20 or V30. However, there are some limitations. 8088/8086/80286/V20/V30: DESQview will run in one of three ways one these machines. For additional information, get the file DV286.ZIP from SIMTEL20 (see Q7). 1) If you have true hardware compatible LIM EMS 4.0 (or EEMS) memory board and are able to disable some conventional memory, DESQview will remap expanded memory to conventional memory addresses to multitask "well-behaved" programs in. 2) If you use a plug-in memory management chip such as a All-Charge Card or a SOTA POP card, it will provide the memory mapping needed to allow DESQview to multitask programs beyond 640K. 3) If you have neither a LIM EMS 4.0 memory card or a memory management chip, DESQview will still multitask as many programs as possible in the available conventional memory (see Q5). Besides the memory problem, on a machine less than an 80386 and without QEMM, DESQview will not be able to run programs in a small window or in the background if the program writes directly to video memory. If the program has a switch to allow BIOS screen output, use it, or convince the programmer to make it DESQview-aware (see Q3). 80386sx/80386dx/80486sx/80486dx: DESQview/386 or the combination of DESQview and QEMM (see Q2) will multitask programs in all of the available extended memory. Although DESQview can multitask on any machine, the minimum suggested configuration is an 80386sx with 2 megabytes of memory. For breathing room, at least 4 megabytes of memory is suggested. Q5: How can I upgrade my 80286 for best DESQview performance? A5: A 80286 can be upgraded with LIM EMS 4.0 expanded memory, a memory management chip, a plug-in 386 adapter, or a new 386 motherboard. The cost of all these "upgrades" is about the same. All of them have some negatives as well. 1) If you are unsure how much of your 286 conventional memory can disabled, getting LIM EMS 4.0 memory can be pointless. For the record the listed 286 motherboards can be set to the minimum conventional memory as follows: AST Premium 286 0K IBM AT (6 Mhz) 256K COMPAQ 286 256K Most AT clones have a minimum of 512K (eighteen 256Kx1 DRAMs). The motherboard can only be disabled to 256K or lower if it supports 64K DRAMs, or if the system setup allows you to specify a value less than the actual amount of memory installed. If you have information on the minimum conventional memory of any other 286 motherboard, please forward it to 2) If you get a memory management chip, an All-Charge Card or a SOTA POP, you will still not get the memory protection available with the 80386 (see Q4). 3) If you get a 386 Adapter to replace the 286 CPU chip, there has been "some reported" compatibility problems and besides, it will not run as fast the corresponding 386 motherboard of the same speed. 4) If you get a new 386 (or 386SX) motherboard, there is some hassle to get it installed and working but probably no more than with the 386 Adapter kits. Q6: Does DESQview support Super VGA? A6: Yes and no. When DESQview is placing windows on the screen, it cannot use any of the 132 column modes provided by Super VGA cards. The smallest text font that DESQview provides to VGA+ users is 60 rows by 80 columns. Since video support is hardcoded into DESQview, there is no way to write a video driver for Super VGA cards. DESQview/X will support some Super VGA cards (see Q2). Inside a window, any resolution can be used. The problem occurs when you switch away from the window and come back. DESQview will corrupt the window unless it has a resolution of 800x600x16 or less. Except in rare cases, DESQview cannot handle 256 colors at more than 320x200. A few cards will reportedly work at 1024x768x16 as well. Note that at these higher resolutions, "Graphics Pages" in Change A Program must be set to 4. The Quarterdeck White Pages, available on SIMTEL20 and DVNet (see Q7) discusses this problem in detail. Q7: Where can I get freeware and shareware DESQview programs? A7: There are quite a few DESQview repositories available, depending on what network access you have. BBS The official Quarterdeck BBS can be reached at (310) 314-3227. It supports 1200-9600 baud, 8 data bits, no parity. Fidonet Many Fidonet nodes belong to DVNet, the DESQview File Distribution Network. It is coordinated by Peter Stern at 1:17/38. Internet (via anonymous ftp) WSMR-SIMTEL20.ARMY.MIL [192.88.110.20] The directory PD1: contains many DESQview programs. The file 00-index.txt in that directory is a list of all the programs available. OAK.OAKLAND.EDU [141.210.10.117] A SIMTEL20 mirror. The DESQview directory is /pub/msdos/desqview. This is the most up-to-date mirror of SIMTEL20. WUARCHIVE.WUSTL.EDU [128.252.135.4] Another SIMTEL20 mirror. The DESQview directory is /mirrors/msdos/desqview. NIC.FUNET.FI [128.214.6.100], SRC.DOC.IC.AC.UK [146.169.3.7], & RANA.CC.DEAKIN.OZ.AU [128.184.1.4] SIMTEL20 mirrors for non-North Americans HAYES.IMS.ALASKA.EDU [137.229.40.200] Contains some of the programs available on DVNet in the directory /dvnet. The file ``prog.dvn'' is a list of all the programs available on DVNet. The file ``dvnet.lst'' is a list of all the Fidonet BBSs that participate in DVNet. Email-only (UUCP, etc.) A mail server exists for SIMTEL20 files. A regular post on comp.binaries.ibm.pc.archive explains how to use the mail server. Q8: I want to write software for DESQview. Where can I get the API? A8: There are multiple sources, ranging in cost from free to hundreds of dollars. For free, there are DVINT, a DESQview/QEMM-specific excerpt of the MSDOS interrupt list, which lists the API calls; and DVGLUE, a somewhat dated (August 1988) freeware library for Turbo C which implements almost all of the DESQview 2.01 API (the then-current version). Both are available on DVNet and other repositories of DESQview-specific programs (see Q7). Quarterdeck sells a number of products for programming the DESQview API, such as an API reference manual (~$60) and various language-specific libraries (C, Pascal, Dbase, etc., ~$200 each including the reference manual). In addition, Quarterdeck also sells a panel designer, debugger, and other tools (see Q19). Third party books are also available (see Q20). Q9: I've heard that DESQview does preemptive multitasking. What does that mean? A9: Let's say you have one toy (the 80x86 processor in our case) and 5 children (5 programs that you want to run under DESQview simultaneously). There are two ways that Dad (DESQview) can let each child play with the toy. 1) Dad gives the toy to one of the children, who plays with it until she gets bored. Then she returns the toy to Dad, who gives it to one of the other children. This repeats until all the children have played with the toy, and then Dad starts over with the first child. 2) Dad gives the toy to one of the children, and starts a timer. If the child gets bored with the toy before the timer expires, she gives it back to Dad. However, if she still holds the toy when the timer expires, Dad reminds her that good children must share, and takes it away from her. He then gives it to the next child and restarts the timer. When all the children have played with the toy, Dad returns it to the first child. She continues playing with it where she left off. Sometimes one of the children may want to take the toy apart. Since none of the other children wants to play with a disassembled toy, the child will request that Dad not take away the toy until the child says he can. In that way, the child can re-assemble the toy before any other child gets it. The first method is called "non-preemptive" and conversely, the second is called "preemptive". It is generally agreed that preemptive multitasking is much better because one program cannot accidently "hog" the CPU. One of the major technical differences between DESQview and Windows is that DESQview preemptively multitasks all programs, while Windows does non-preemptive multitasking of Windows applications. When a program running under DESQview calls a DOS or BIOS function, it effectively "disassembled the toy". DESQview recognizes this and temporarily suspends any other program that attempts to make a DOS or BIOS call until the current DOS or BIOS call ends (see Q10). DESQview-oblivious programs (see Q3) can act like selfish children when they are waiting for keyboard entry. Even though they aren't playing with the toy, they keep hold of it. Shareware and freeware programs are available for forcing these programs to share the toy (see Q24). Q10: Why do the other windows slow to a virtual halt when one window accesses the floppy disk? A10: Both DOS and the BIOS disk access functions are non-reentrant, i.e. they may not be called again while one call is in progress. DESQview thus handles both as "serially reusable resources", and suspends a window making such a call until any current call completes. Since programs make many DOS calls other than disk I/O, they can become blocked while another window is accessing the disk even when they themselves are not trying to access the disk. The same suspension occurs when a program accesses the disk via BIOS calls, but only when some other window is also accessing the disk; thus, a non-disk DOS call can execute at the same time as a disk-related BIOS call. When the disk being accessed is a hard disk, the call completes so quickly that there is no obvious degradation in the performance of other windows. When accessing a floppy disk, however, the call can take multiple seconds to complete, during which time it is highly likely that other windows will be suspended for a noticeable length of time. To minimize the impact of copying or formatting, try using shareware programs such as DVCOPY, LTFORMAT and FDFORMAT (see Q7). Q11: Can Windows run under DESQview? A11: Yes, Windows can run under DESQview, but only in Real and Standard mode. Windows in Enhanced mode becomes an 80386 "control program" and there can only be one such "control program" at a time (see Q17). Q12: Can I make something like AUTOEXEC.BAT for DESQview, so that certain windows open every time I run DESQview? A12: Yes you can. In DESQview terminology, it's called a Startup Script. Look up "Script, startup" in the DESQview manual index for more information. Another way to start up windows is to write a batch file using one of the many command-line window launchers such as DV Commander or DVSI's RUN command (see Q7). Q13: Can text and graphics be displayed at the same time with Hercules? A13: Yes, as long as 90x43 mode display mode is used. If the graphics bleeds through from the background, you can switch to 80x25 mode. However, there is no way to detect whether or not the Hercules card is currently in text or in graphics mode if a program switches between these two modes by manipulating the registers of the card. In this case DESQview will not notice that the graphics mode has changed. Quarterdeck has put a utility DVHERC on the distribution disk that is intended to help users switch to the correct mode in such events. DVHERC is a TSR program. However DESQview can sometimes be very stubborn and will not recognize this change. In such cases it will again switch to the wrong mode as soon as one switches to a different window. Q14: How do I use two monitors under DESQview? A14: DESQview will only control one of your monitors, and by default all programs will use the monitor that DESQview controls. There are a number of ways to make programs start up on the "other" monitor. Since you will usually want DESQview to control the color monitor (except perhaps in the case of a CGA), the following discussion assumes that DESQview is controlling the color monitor and not the monochrome monitor. First, you can use a batch file and include a "MODE MONO" statement to switch the program to the monochrome monitor. Second, you can use the "initial mode" field to specify the monitor on which the program will start (however, this setting is ignored unless you also set "writes directly to screen" to Y and "virtualize" to N). By setting the initial mode to 7, you force the program to use the monochrome monitor until it explicitly switches monitors. Note that DESQview tends to stop updating the monochrome screen while the program is in the background if the program ever switches to the color display (including starting on the color display with the first method above). The initial mode can also be set to 21 or 22 for Hercules Graphics mode. These modes only allow one page of mono graphics (see Q13). Mode 21 is Page 0 at address B000h, and Mode 22 is Page 1 at address B800h. Hence, Mode 22 is not available with two monitors (it conflicts with color video). Q15: What are Exceptions 12 and 13? A15: An exception 13 (or 12) is caused by the program you are running doing something that it is not allowed to do on a 80386 while in Virtual 8086 (V86) mode. Since QEMM is the 386 "control program", it can only report the error caused by the user program. The main cause is operand wrapping past the last address in segment, 65,535 (FFFF in hex) Note that exceptions are only reported by QEMM, and are not caused by either QEMM or DESQview. They are caused by old programs that assume they are running on an 80286 or less; or by a program that "crashed". From the INTEL "80386 Programmer's Reference Manual", PART III - COMPATIBILITY chapter 15, VIRTUAL 8086 MODE Section 15.6 DIFFERENCES FROM 8086 Stated "reasons" 6, 7 & 8 (pages 15-10 & 15-11) Quoting from the INTEL manual: 15.6 DIFFERENCES FROM 8086 In general, V86 mode will correctly execute software designed for the 8086, 8088, 80186 and 80188. Following is a list of the minor differences between 8086 execution on the 80386 and on an 8086. ... (only those causing exception 12 or 13 are listed) 6. Redundant prefixes. The 80386 sets a limit of 15 bytes on instruction length. The only way to violate this limit is by putting redundant prefixes before an instruction. Exception 13 occurs if the limit on instruction length is violated. The 8086/8088 has no instruction limit. 7. Operand crossing offset 0 or 65,535. On the 8086, an attempt to access a memory operand that crosses offset 65,535 (e.g., MOV a word to offset 65,535) or offset 0 (e.g., PUSH a word when SP = 1) causes the offset to wrap around modulo 65,535. The 80386 raises an exception in these cases - exception 13 if the data segment (i.e., if CS, DS, ES, FS, or GS is being used to address the segment), exception 12 if the segment is a stack segment (i.e., if SS is being used.) 8. Sequential execution across offset 65,535. On the 8086, if sequence execution of instructions proceeds past offset 65,535, the processor fetches the next instruction byte from offset 0 of the same segment. On the 80386, the processor raises exception 13 in such a case. In order to fix an Exception 13, you can try to load the program causing it into a different area of memory. To do this, try increasing your FILES or BUFFERS, or loading some TSRs low rather than high, etc. However, the best solution is to contact the programmer. Another possible solution is to increase the amount of memory specified in Change A Program. Q16: What determines the amount of conventional memory that DESQview claims for itself and takes away from programs? A16: Using XDV.COM, DESQview can load most of itself into upper and high memory so conventional memory is preserved. However, loading many TSRs or DOS high (see Q22) will reduce the amount of DESQview that can be loaded high (i.e. in the XMA - the first 64K of extended memory). DESQview also sets aside a portion of conventional memory and calls it "Common Memory". The amount that DESQview allocates can be decreased in DVSETUP, but the minimum is about 14K. Certain programs such as DVSI (a set of shareware utilities by Daniel Bodoh) require the amount of Common Memory to be larger than the minimum. A large Open Window menu or many "shared programs" will also increase the required amount of Common Memory. Each window has an area of memory called "System Memory". The amount of System Memory available to a program is controlled by three separate entries on the Change A Program screen. First, since DESQview stores the window image in System Memory, decreasing the number of text pages and maximum window size decreases System Memory usage. Second, since most programs do not explicitly use System Memory, the System Memory field can be set to 1K or 0K. The pool of System Memory only reduces the maximum window memory for that particular window, and does not affect the other windows. You can see this using the Memory Status program. It will report, say, 592K of conventional memory available, but part of that is used for System Memory so the actual amount available is less. Q17: What are some programs that are incompatible with DESQview? A17: [Please forward any other known incompatibilities to ]. Any "386 Control Program" that is not VCPI compliant (see Q15). BitFax Borland C++ 3.0 Borland has a patch on Compuserve and the Borland BBS. ConFormat Diagnostic programs that try to go into protected mode to tested extended memory will fail under QEMM. These include QAPLUS and RAMTEST. Diagnostic programs should be run from a boot floppy. DJGPP/DJGPP-compiled programs Patch level 5 works with QEMM, but reportedly crashes in a DESQview window. There is a GO32 patch on the anonymous FTP site GEORGETOWN.NRL.NAVY.MIL in /pub/DOS386/go32-patch which should make it work. DR DOS 6.0 history feature DR DOS works great with DESQview, except for the history feature. Games that use digitized sound without extra sound hardware. Digitized sound requires that the timer interrupt be sped up to 8000 or more interrupts per second, which DESQview can't deal with. The only workaround is to turn off the sound or buy extra sound hardware. Mountain FileSafe 4000 Tape Backup Software MS-Kermit 3.11 Try setting Optimize Communications in DVSETUP to No. If that doesn't work, use the Kermit SET COM command to set the exact interrupt request and I/O port used. The problem will be fixed in 3.12. QA Plus (see above note on Diagnostic programs) RAMTEST (see above note on Diagnostic programs) Soundblaster Games that use Soundblaster require "Share CPU" be set to "N" or the music will be choppy. Windows Enhanced Mode (see Q11) Q18: I'm having a problem {configuring DESQview, running a program, etc.}. How do I fix it? A18: Program dies as soon as it is started Allocate more memory to the program. Text characters display outside the window Set "Writes Text Directly to Screen" to Y and "Virtualize Text/Graphics" to T or Y. If you are using a 286, Quarterdeck has supplied "loaders" for several programs including AUTOCAD, LOTUS 123, MULTIMATE, and FRAMEWORK II which allow them to run in the background. Graphics bleed through from window in the background Set "Virtualize Text/Graphics" to Y. DESQview locks up on a 286 when using QEXT.SYS and RAMDRIVE (or any other program which uses extended memory) Since QEXT.SYS uses the first 64K of Extended memory, you can only use extended memory programs that use memory from the top. Use VDISK rather than RAMDRIVE in DOS 3.3, and set it to use all but 64K of extended memory. [Anyone have any more?] Q19: How can I contact Quarterdeck? A19: Quarterdeck Office Systems 150 Pico Boulevard Santa Monica, CA, USA 90405 Technical Support: Phone: (310) 392-9701 Fax: (310) 399-3802 Sales: Phone: (310) 392-9851 Fax: (310) 399-3802 QOS BBS: (310) 314-3227 (24 hours/day, 1200-9600, 8 bits, No parity) E-mail (for Tech Support): Internet/Usenet/UUCP: 76004.2310@compuserve.com Quarterdeck BBS: Sysop CompuServe: 76004,2310 BIX: QOS.REP2 MCI Mail: QUARTERDECK Smartnet: DESQview Conference - Quarterdeck USA Public Message forums for Quarterdeck Tech support: QOS BBS: echnical Support Message System CompuServe: "GO PCVENB" BIX: "JOIN DESQVIEW" SmartNet: DESQview Conference FidoNet: DESQview Echo \ RelayNet: DESQVIEW (???) \__ QOS may not by monitoring ILINK: Multitasking (???) / but other DV gurus can help Quarterdeck International Ltd. B.I.M. House, Crofton Terrace Dun Laoghaire, Co. Dublin, Ireland Phone: +353-1-841444 Fax: +353-1-844380 Quarterdeck UK The Widford Old Rectory London Road Chelmsford, Essex, CM2 BTE Phone: +44 (245) 496-699 Fax: +44 (245) 263-969 Quarterdeck Office Systems Canada 70 York St., Suite 1220 Toronto, Ontario M5J 1S9 Phone: (416) 360-5758 Fax: (416) 360-4885 Upgrades: (800) 268-5181 [I'm always looking for more international addresses. If you have one, please send it to me.] Q20: What books are available on DESQview? A20: "DESQview - A Guide to Programming the DESQview Multitasking Environment", by Stephen R. Davis, M&T Books Publishing, 501 Galveston Drive, Redwood City, CA 94063. 346 pages. 1st Edition, 1989. A very good source on programming in C using the DESQview API. This is a tutorial book with lots of examples. Would be useful to programmers who find the QOS API manuals somewhat daunting. All examples are in "C", however there is lots of general information which would be useful for developers programming in any language. Available direct from M&T and bookstores which specialize in technical works. Can be ordered from Quarterdeck order line at (213) 392-9851 for $24.95 ($39.95 with disk - 5 1/4 inch only). "The Official DESQview Sourcebook", Larry Joel Goldstein, Bantam Computer Books, 666 Fifth Ave., New York, NY 10103. 351 pages. 1st edition - Sept. '89, price $22.95 ($27.95 Canada). A comprehensive guide to the use of DESQview, QEMM and the DESQview Companions. Contains a section on the DESQview API that may serve as an introduction, but this is not a programmer's book. A useful adjunct to the Quarterdeck manuals when you want similar information "from another view". "MS-DOS Beyond 640K, Working With Extended and Expanded Memory", James Forney, Windcrest Books, Division of TAB Books Inc., Blue Ridge Summit, PA 17294-0850. 1st Edition 1989. 235 pages. Price $19.95. Not a DESQview/QEMM book specifically, but an excellent book on the subject of memory, with many references to DESQview and QEMM. Highly recommended to users who really want to understand the use of memory in their PC's. "The Best Book of DESQview", Jack Nimersheim, Howard W. Sams & Company, 11711 North College, Suite 141, Carmel, IN 46032. 1st Edition 1990, 396 pages. Price $24.95 A user-friendly guide to DESQview, the Companions, QEMM and Manifest. Contains many tips and a good discussion of the DESQview Learn feature. "Mastering DESQview", Jonathan Kamin, Scott, Foresman IBM Computer Books, 1900 E. Lake Avenue, Glenview, IL 60025. 1st Edition 1990, 387 pages. Price $24.95. A comprehensive guide to the use of DESQview, with emphasis on hints and techniques which enhance the use of DESQview. Special emphasis on creative use of DESQview's Learn (macro) facility. "DESQview Instant Reference", Paul Perry, Sybex. Price $9.95. [If you know of any more, please let me know] Q21: What are the command-line switches for DESQview/QEMM/QRAM? A21: The file QOSSWIT1.ZIP from SIMTEL20 (see Q7) in the PD1: directory contains a list of the documented and undocumented switches for Quarterdeck's products. Q22: How can I configure DESQview for maximum window memory under DOS 5? A22: The answer to this question is very system dependent. However, you should use QEMM rather than EMM386 and HIMEM.SYS (on a 386), because QEMM is smaller and will provide the same services. Also, without QEMM screen virtualization is not possible. Loading DOS high will not necessarily help, because that reduces the amount of DESQview kernel that can be loaded high (see Q16). Experiment. Use Manifest to judge the results. If your high memory is very fragmented (i.e. many small contiguous blocks rather than a few large blocks), keeping DOS and TSRs low and putting DESQview high might work better. Do not set up your path and environment variables until all the TSRs have been loaded. A copy of the environment is made for every TSR, and if the TSR does not give this area of memory back to DOS, it is wasted. Q23: What is NOFF.SHP {NOFF.SHR}? A23: NOFF.SHR is an older version of NOFF.SHP. So what's NOFF.SHP? DESQview is the child of an older IBM program called TopView. Because Quarterdeck wanted DESQview to run all the old TopView programs, they made DESQview compatible to TopView, in much the same way you can run programs written for DOS 3.3 in DOS 4.0. If a program writes directly to the video memory, TopView (and DESQview) cannot run it in a small window. So IBM allowed programs to be TopView- aware (similar to DESQview-aware (see Q3)) by giving them "virtual" video memory on request. This memory looks like video memory, but characters written into it do not get displayed on the screen. Since DESQview is a much smarter program that TopView ever was, DESQview can automatically update the window from the virtual video memory. But TopView did not have that ability. The TopView-aware program had to make another call which would manually update the window from the video memory. Quarterdeck wanted to make DESQview look as much like TopView as possible, so they decided that if a TopView-aware program makes this call to update the window, then the automatic updating of DESQview would be turned off. DESQview can do a better job of updating the window from the virtual video buffer than *some* programs. So the purpose of NOFF.SHP is to capture the TopView update call before it gets to DESQview and not let DESQview see the call. That way, DESQview never turns off the automatic updating, and your window output is less jerky. Whether or not you should use NOFF.SHP depends on how the TopView-aware program updates its screen. If it changes only small parts of the screen at a time but requests that the entire screen be updated, use NOFF.SHP. But if the program tells TopView (DESQview) exactly which part of the screen changed, output may look smoother without NOFF.SHP because an automatic update doesn't take place until the end of each program's time slice (see Q9). Q24: How can I increase DESQview's performance? A24: DESQview's performance depends on many different factors. We will try to highlight some of the important areas here. DESQVIEW-OBLIVIOUS PROGRAMS Performance is especially degraded by DESQview-oblivious programs (see Q3), because they do not give up the CPU when they are not doing useful work (see Q9). Some programs, while waiting for keyboard input, continuously ask if a keystroke is available instead of giving up the CPU. Quarterdeck provides a way to force programs to give up the CPU after a specified number of keystroke queries. One of the bytes in the DVP file (the file edited by Change A Program) specifies the number of keyboard polls before the CPU is taken away. Unfortunately, Quarterdeck has never put a field on the Change A Program screens to change this number. DvpEdit, a freeware replacement for Change A Program, is available on SIMTEL20 (see Q7) and allows you to change this "Max Keypolls" value. Another well-known program is TAME. TAME does much more than watch for keyboard polling; and can do a good job of increasing performance. System performance can be measured with the PS utility available in the DVSI package (also on SIMTEL20 and DVNet). Using PS, an offending program can be quickly identified. DISK ACCESS Since disk access can slow down the system significantly (see Q10) using a disk cache can also increase performance. HyperDisk, available on SIMTEL20 (see Q7), is especially popular among DESQview users. FOREGROUND/BACKGROUND TICKS With the "Tune Performance" menu you can set the number of foreground and background ticks. These numbers indicate how much time DESQview is to allocate to a given task before moving on to the next in a round-robin fashion. The default setting is 9:3, which means DESQview gives the foreground task 9 "ticks", or roughly half a second, of CPU time, then gives each of the background tasks 3 ticks. A more common setting with today's hardware is 1:1 or 2:2 -- each task gets 1 (or 2) ticks. There's no single, optimal setting. Smaller numbers generally provide smoother performance, but may overwhelm the CPU on less powerful systems. In addition, time-sensitive applications like communications programs may need to be serviced frequently by the CPU. In short, experiment. SCREEN DISPLAY There are three primary reasons why your screen may appear jerky. First, you may be virtualizing the window. While this prevents bleed-thru (when used in conjunction with QEMM-386), it does increase the workload on DESQview, and the screen output only occurs at the end of the program's timeslice. If this is a problem for you then configure your application to use BIOS screen writes and turn virtualization off. Second, you may need to adjust your tick settings. DESQview updates the screen display at the end of a task's CPU allocation. Thus, a setting of, say, 99:99 will result in extremely jerky screen updates compared with 2:2 or so. Third, you may be unnecessarily using NOFF.SHP (see Q23). MEMORY USAGE The memory usage of individual programs can be tuned in Change A Program. For maximum window size, you must balance your TSR and device driver usage (see Q16 and Q22). The PS utility in the DVSI package available on SIMTEL20 (see Q7) can show which windows are not using all their allocated memory. Q25: My {9600 or greater} BPS modem drops characters under DESQview. Is high speed communication possible under DESQview? Yes, high speed communication is possible. First, you must go into the DESQview setup program and set "Optimize Communications" to "Y". If you still lose characters, you may have to get a new serial board. The characters are coming in too fast for DESQview and your communications program to process them. The chip that controls serial communication is known by many names. On an XT (or an 8-bit I/O board) it is an 8250. Most ATs contain the 16450. The problem with these chips is that they can only buffer one character at a time, so if DESQview doesn't allow your communications program to respond fast enough, you'll lose that character. The solution is to get a board with the National Semiconductor NS16550AN or NS16550AFT chip. This chip buffers up to 16 characters, so character loss is less likely to occur. If you are the handy type, you can even swap your 8250 (or whatever) for the NS16550AN yourself, for the chips are pin-compatible. Do not get a 16550 non-A chip. It is an old, buggy chip. Also, Western Digital makes a 16550 which is rumored to be buggy at speeds of 2400 BPS or less. Q26: Why doesn't ANSI.SYS work in DESQview? ANSI.SYS doesn't work inside DESQview because DESQview takes control of all the screen writes. Quarterdeck has provided a solution, however. Provided with DESQview is DVANSI.COM. Run this program in the window in which you need ANSI.SYS. Q27: Why does the mouse pointer disappear after running certain programs? If a DESQview-aware or DESQview-oblivious program (see Q3) uses the mouse, DESQview must turn off its own mouse handling in that window. Unfortunately, DESQview cannot detect when the program is finished with the mouse, so your DESQview mouse pointer will never reappear while that window has the keyboard. Q28: What are those files SWAP*.DV in my DV directory? Can I delete them? A28: They're used by DESQview to store your application when it gets swapped to disk. If the file's date and time are older than the last time you started DV then you can safely erase the files. There is no way to restart an application using a swap file. CONTRIBUTORS ------------ The following people have sent suggestions for entries in the FAQ. On behalf of all the readers of comp.os.msdos.desqview, I thank you. If the person is credited with a "Q", he/she suggested a question. If part of an answer was contributed, the contributor is credited with an "A". An asterisk indicates that the contributor wrote a significant portion of the answer. If you see your name here and you didn't actually send me something, I probably stole a posting of yours for the FAQ. ---- The electronic contacts in A19 are from the QOS note "CONTACT.TXT" Most of A20 was copied from Quarterdeck's tech note "DVBOOK.TEC" Some of A25 is from Appendix B of the FOSSIL driver manual sent to me by Stephen Lee. alheid@pittpa.cray.com (Greg Alheid) A2*,A4*,A5*,A11,A13*, A15*,A17,A20 anasaz!crow@asuvax.eas.asu.edu (Jerry Crow) A2,A21 arr@stat.ph.albany.edu (Andrew A. Reilly) Q22 chaz@chinet.chi.il.us (Charlie Kestner) Q4,Q17,Q19,Q20 em21@cunixf.cc.columbia.edu (Eben Moglen) A17 esiever@world.std.com (Ellen C. Siever) A20 hartnegg@ibm.ruf.uni-freiburg.de (Klaus Hartnegg) A13 jcorr@splash.princeton.edu (Jim Orr) A20 jerry@rat.nrl.navy.mil (Jerry Nash) A17 jmaynard@oac.hsc.uth.tmc.edu (Jay Maynard) A17 kneply@mozart.cs.colostate.edu (Jim Knepley) A2,A4,Q8,Q17,Q18 lsuc!ontmoh!rwh@cs.toronto.edu (Russell Herman) A19 mtbb136@ms.uky.edu Q2,Q12,Q13 mvjrs@mvgpk.att.com (Rick Sladkey) A4 nickw@syma.sussex.ac.uk (Nick Watkins) A2,A6,A17 noesis@ucscb.ucsc.edu (Kyle ?) A13 phealy@swift.cs.tcd.ie (Paul ?) A19 ralf@cs.cmu.edu (Ralf Brown) A2,A6,A7*,A8*,Q9,A10*, A13,A14*,A21*,A25 reisert@mast.enet.dec.com (James J. Reisert) A25 rreiner@nexus.yorku.ca (Richard Reiner) A2,A17 s2942275@techst02.technion.ac.il (Yaniv Golan) A17 senf_ltd@uhura.cc.rochester.edu (Stephen Lee) A25* smsmith@magnus.acs.ohio-state.edu (Stephen Smith) A13 stern@denali.ims.alaska.edu (Pete Stern) Q25,Q26,Q27 steveg@orl.mmc.com (Steve Gabrilowitz) Q8,Q15 theall@gdalsrv.sas.upenn.edu (George A. Theall) A2*,A4,A7,A17,A19,A20, Q22,A23,A24*,A28* valley@gsbsun.uchicago.edu (Doug Dougherty) A2,A4,A10,Q11,A12,Q14, Q16,A17,A25 w8sdz@wsmr-simtel20.army.mil (Keith Peterson) A7