CWSDPMI is a DPMI host written by Charles W Sandmann from 1996 to 2010, currently at r7. It is loosely based upon prior GO32.EXE code used in DJGPP v1. It can provide DPMI 0.90+ 32-bit services for programs compiled with latest versions of DJGPP etc. compilers. Since r5, it can also be used for programs requiring a DPMI stub in lieu of PMODE/DJ. It supports up to 4 GB, virtual memory, and hardware interrupt reflection from real mode to protected mode. Programs compiled with DJGPP v2 require a DPMI host, which is usually CWSDPMI.EXE or CWSDPR0.EXE. In case of CWSDPMI.EXE, the default paging/virtual memory file is C:\CWSDPMI.SWP. It has also run in under 512 kb of RAM on a 386.
[edit]CWSDPMI editions
CWSDSTUB.EXE is a stub loader image for DJGPP which includes CWSDPMI.
CWSDPR0.EXE is an alternate version, implemented at request of id Software when writing Quake, which runs at ring 0 with virtual memory disabled. It may be used if access to ring 0 features are desired. It currently does not switch stacks on hardware interrupts, so some DJGPP features such as SIGINT and SIGFPE are not supported and will generate a double fault or stack fault error.
Developer Charles Sandmann also hoped to eventually supply code for CWSDPMI r7 that allows CWSDPMI to map up to 64GiB memory into the address space upon request.
阅读(1602) | 评论(0) | 转发(0) |