MS-DOS 6.22 ,原内存为256M,加大到384M后发觉原来所有可使用 DPMI 的程序都出错。使用的 DPMI host 程序为 QEMM 9.0 中的 QDPMI 。
QEMM 版本:
Quarterdeck Expanded Memory Manager 386 V9.00.ƒ003ß
Copyright (c) 1986-1997 by Quarterdeck Corporation
QDPMI 和所提供的 DPMI 版本,以及其设置:
QDPMI: Quarterdeck DPMI Host V1.10
DPMI 0.9 Services are.......ON MaxMem=<MAX>, MinMem=<MIN>, MaxLow=<NONE>
DPMI Virtual Memory is......OFF
Extender Checking is........ON Overlay=C:\QEMM\QDPMIVM.OVL
Real Mode Int Handling fix..OFF Client Start Address=40000000H
比如原本 PKZIP / PKUNZIP 是可以通过调用 DPMI 来提高效能的,但现在运行时却无法使用 DPMI ,一旦调用就出错:
PKZIP (R) FAST! Create/Update Utility Version 2.50 03-01-1999
Copr. 1989-1999 PKWARE Inc. All Rights Reserved. Shareware Version
PKZIP Reg. U.S. Pat. and Tm. Off. Patent No. 5,051,745
QDPMI: Nested Page Fault in QDPMI Kernel
QDPMI: Unrecoverable Exception: 000Eh at 0020h:0000-5478h. Error Code = 0002h
还有一些出错时的内存地址和寄存器值如下:
QDPMI: Nested Page Fault in QDPMI Kernel
QDPMI: Unrecoverable Exception: 000Eh at 0020h:0000-23B9h. Error Code = 0002h