ID:SU QEMM-386: Suspend/Resume with QEMM-386
Quarterdeck Technical Note #254 Filename: SUSPEND.TEC
by Quarterdeck Testing & Compatibility CompuServe: SUSPEN.TEC
Last revised: 8/21/92 Category: QEMM
Subject: Information on QEMM-386's support of the Suspend/Resume feature on
Many laptop and notebook computers have a feature whereby the computer
can suspend its operation and turn itself off then, later, resume operation in
the state when suspended. This feature did not work in protected mode until
Quarterdeck, with QEMM-386, version 6, did what had not been done before:
figure out a way to restore the state of the 80386 processor and RAM even in
protected mode. Quarterdeck tested this feature on a number of laptop
computers when developing version 6 and it worked on most of them but not on
all. Since then other laptop computers have come to our attention, for some
of which suspend/resume works with QEMM-386 automatically, for others getting
suspend/resume to work requires some effort. In this technote you will find a
checklist and troubleshooting method for figuring out how to make the
suspend/resume feature of your computer work with QEMM-386.
The 386SL is a new CPU that has power management features built into it.
QEMM-386 does not need to provide any special services for suspend/resume to
work on a computer built around a 386SL CPU.
DOES QEMM-386 DETECT THE SUSPEND/RESUME FEATURE OF MY COMPUTER?
If QEMM-386 detects the suspend/resume feature of your computer, on the
"QEMM-386/Overview" screen of Manifest you will see a line that indicates the
interrupt your computer uses for suspend/resume. For example:
QEMM version 6.00
QEMM status There is High RAM.
Expanded memory is being used.
Page Frame C000
Suspend/Resume Interrupt 02 <-----
Stealth Type M
Stealth ROMs F000: 64K
WHAT DO I DO IF QEMM-386 DOES NOT DETECT A SUSPEND/RESUME INTERRUPT?
If QEMM-386 does not detect a suspend/resume interrupt add the parameter
"SUS" to the QEMM-386 line of the CONFIG.SYS. For example:
device=c:\qemm\qemm386.sys st:m ram sus
and reboot. This parameter instructs QEMM-386 to look for a suspend/resume
interrupt. If this makes the suspend/resume feature work, you are done.
WHAT DO I DO IF SUSPEND/RESUME DOES NOT WORK WITH A SUS PARAMETER?
Possibly QEMM-386 has detected the wrong interrupt for this feature. In
this case try telling QEMM-386 to look at the four most likely interrupts used
for this purpose: 2, 72, 73, and 77. You do this with the parameter "SUS:XX"
where "XX" is the interrupt. You must try one at a time and reboot after each
change. For example:
device=c:\qemm\qemm386.sys st:m ram sus:73
If you have a computer built around a 386SL CPU QEMM-386 does not need to
provide any services for suspend/resume to work and need not detect an
WHAT DO I DO IF 2, 72, 73, AND 77 DO NOT WORK?
Possibly some interrupt other than these is the suspend/resume interrupt.
To make a good guess at what other interrupt could possibly be the
suspend/resume interrupt put aside your CONFIG.SYS and AUTOEXEC.BAT
temporarily, create a new CONFIG.SYS with only "stacks=0,0" in it. Re-boot,
bring up the "First Meg/Interrupts" screen of Manifest, list by number, and
look at the first and eighth screens. You will see something like:
First Meg / Interrupts
INT 00: Divide by 0 0070:001A IBMBIO
INT 01: Single Step 0070:0005 IBMBIO
INT 02: NMI F000:E2C3 System ROM
INT 03: Breakpoint 0070:0005 IBMBIO
INT 04: Overflow 0070:0005 IBMBIO
INT 05: Print Screen F000:FF54 System ROM
INT 06: Invalid Opcode F000:847C System ROM
INT 07: Reserved F000:1BD0 System ROM
INT 08: System Timer F000:FEA5 System ROM
INT 09: Keyboard Event F000:E987 System ROM
INT 0A: IRQ 2 F000:1BD0 System ROM
INT 0B: IRQ 3 F000:1BD0 System ROM
INT 0C: IRQ 4 F000:1BD0 System ROM
INT 0D: IRQ 5 F000:1BD0 System ROM
INT 0E: Diskette Event F000:EF57 System ROM
INT 0F: IRQ 7 F000:1BD0 System ROM
INT 70: Real-Time Clock F000:4A97 System ROM
INT 71: IRQ2 Re-Direct F000:1C1F System ROM
INT 72: IRQ 10 F000:1BD0 System ROM
INT 73: IRQ 11 F000:1BD0 System ROM
INT 74: IBM Mouse Event F000:D0F0 System ROM
INT 75: Coprocessor Error F000:1C28 System ROM
INT 76: Hard Disk Event F000:3343 System ROM
INT 77: IRQ 15 F000:1BD0 System ROM
INT 78: Reserved 0000:0000 None
INT 79: Reserved 0000:0000 None
INT 7A: Reserved 0000:0000 None
INT 7B: Reserved 0000:0000 None
INT 7C: Reserved 0000:0000 None
INT 7D: Reserved 0000:0000 None
INT 7E: Reserved 0000:0000 None
INT 7F: Reserved 0000:0000 None
The interrupts of interest are 0A, 0B, 0C, 0D, 0F, 72, 73, and 77.
Notice that all of these are pointing into the same place in the system ROM.
An address in the BIOS to which many interrupts point probably indicates that
the BIOS does nothing special with these interrupts. On your machine if one
of these points to an address different from the others it may be the
suspend/resume interrupt. Try using it as the argument of the "SUS:xx"
WHAT DO I DO IF POINTING TO A SPECIFIC INTERRUPT DOES NOT WORK?
Some machines with ShadowRAM reset their ShadowRAM upon resumption from a
suspend. If QEMM-386 uses the ShadowRAM on such a machine this will cause
QEMM-386's support of the resume feature to fail. To tell QEMM-386 not to use
the ShadowRAM, add the parameter "NOSH" to the QEMM386.SYS line. Also
Quarterdeck discovered that the IA parameter causes suspend/resume to work on
one machine. Try adding the IA parameter as well. For example:
device=c:\qemm\qemm386.sys st:m ram nosh ia sus:73
reboot and try again. For more information on ShadowRAM, see the technote
WHAT DO I DO IF SUSPEND RESUME STILL FAILS WITH NOSH AND SUS:XX?
You may need an eXclude. To find out if you need an eXclude use the
follwing QEMM386.SYS line:
device=c:\qemm\qemm386.sys st:m nosh ia sus:xx fstc x=aaaa-bbbb ....
where you put eXcludes on all the portions of the address space occupied by
ROMs that QEMM-386 Stealths.
Read the "Analysis" section of the QEMM.COM chapter of the manual for the
procedure on searching for an eXclude or get the technote "EXCLUDE.TEC" for an
explanation of the procedure used in searching for an eXclude.
WHAT SHOULD I DO IF IT STILL DOESN'T WORK?
Quarterdeck knows that suspend/resume does not work on all machines but
Quarterdeck wants to try to make it work on all machines. Send a report of
your experience using this troubleshooting procedure to Quarterdeck including
the two screens from the "First Meg/Interrupts" screen taken as above to
Technical Support. Quarterdeck will contact the manufacturer to see if he or
she is willing to work with us on this matter. Most manufacturers have
cooperated. Quarterdeck's FAX #: 310-314-3217; Quarterdeck's BBS #: 310-314-
AST Premium Executive
Suspend/resume works only erratically on this machine. Quarterdeck and
AST have discussed the matter and AST may have solved it by the time you
read this note. If it does not work for you call them to find out the
AT&T Safari Notebook
QEMM-386 does not automatically find an interrupt for Suspend/Resume on
this computer. Adding the SUS parameter causes QEMM-386 to discover the right
interrupt for the Suspend/Resume feature, which is 2. This causes the
suspend/resume feature of the computer to work with QEMM-386 loaded.
Compuadd 316NX laptop
SUS:73 and NOSH are necessary to get the suspend/resume feature to work.
The suspend/feature works only when you enable the ShadowRAM.
The Dell notebook requires a SUS or SUS:2 for suspend/resume to work.
This notebook has a 386SL CPU so QEMM-386 need not provide any services
for suspend/resume to work with it. You must exclude C400-C4FF and FE00-FEFF
for suspend/resume to work. You cannot use FSTC when using suspend/resume.
Everex Carrier Tempo Laptop
This laptop requires NOSH and SUS for suspend/resume to work with
QEMM-386. This machine resets the hardware interrupt controller so if you
suspend/resume inside DESQview you cannot bring up the DESQview menu. You
will have to save all your work in the individual windows, closing each as you
are done, then quit DESQview. You can then start DESQview again.
IBM model 40
Suspend/resume works automatically.
Magnavox Metalis SX-20
The eXcludes X=F000-F1FF X=F500-F6FF X=FE00-FFFF are necessary for
suspend/resume to work on this computer.
This laptop does not have a true suspend/resume feature but only a
"sleep" mode in which it uses very little power. Since the computer never
turns off entirely, QEMM-386 requires no special effort to work with this
Panasonic CF-370 Business Partner
It has a Suspend/Resume feature which QEMM-386 can make work in protected
mode. QEMM-386 cannot automatically detect this feature or the interrupt it
uses. The interrupt is D. If you use the parameter SUS:D the Resume feature
will work with QEMM-386; the documentation incorrectly states that it will not
work. You must enable the resume feature in the system setup program, which
is the default.
We understand that a Swan laptop is identical with the Compuadd 316NX
Suspend/resume works automatically with all Toshiba laptops.
Wyse Decisionmate Sx notebook
IA is required for SUSPEND/RESUME to work on this machine.
Suspend/resume did not work with DESQview.
Suspend/resume does not work with QEMM-386 on this machine when you press
the "suspend" button. It DOES work when it suspends automatically, which you
can set it to do after a user-specified period of disuse in the CMOS. It does
not suspend in DESQview at all.
Zenith Z-Note 325L
This machine has a "standby" feature which merely decreases its power
usage. It works with QEMM-386, ST:F, and in DESQview and DESQview/X.
APPENDIX: Obtaining technotes
Technotes may be obtained from the Quarterdeck BBS (310-314-3227), by
calling QFAX (our automated FAX-back service, at 310-314-3214), on Compuserve
(go QUARTERDECK, library 2), or BIX. Many technotes are also available on
large local BBSs often in "DESQview" or "multitasking" file areas.
QOS BBS / BIX QFAX# Compuserve
--------------- ----- ----------
SHADOWRM.TEC 224 SHADOW.TEC
EXCLUDE.TEC 219 EXCLUD.TEC
* Trademarks are property of their respective owners. *
*This technical note may be copied and distributed freely as long as it*
*is distributed in its entirety and it is not distributed for profit. *
* Copyright (C) 1992 by Quarterdeck Office Systems *
************************ E N D O F F I L E *************************