CWSDPMI — это 32-битный хост DPMI, написанный Чарльзом В. Сандманном с 1996 по 2010 год, в настоящее время находится в r7. Он основан на предыдущем коде GO32.EXE, используемом в DJGPP v1. Он может предоставлять DPMI 0.90+ 32-битные службы для программ, скомпилированных с помощью последних версий компиляторов DJGPP и т. д. Начиная с r5, его также можно использовать для программ, требующих заглушку DPMI вместо PMODE/DJ. Он поддерживает до 4 ГБ, виртуальную память и отражение аппаратных прерываний из реального режима в защищенный режим . Программы, скомпилированные с помощью DJGPP v2, требуют хост DPMI, который обычно является CWSDPMI.EXE или CWSDPR0.EXE. В случае CWSDPMI.EXE файл подкачки /виртуальной памяти по умолчанию — C:\CWSDPMI.SWP. Он способен работать на 386 при менее чем 512 КБ ОЗУ. [ необходима ссылка ]
CWSDPMI функционально аналогичен другим 32-битным хостам DPMI, таким как HDPMI32, который является частью HX DOS Extender .
CWSDPMI r7 — бесплатное программное обеспечение с открытым исходным кодом .
CWSDSTUB.EXE — это образ загрузчика-заглушки для DJGPP, включающий CWSDPMI.
CWSDPR0.EXE — альтернативная версия, реализованная по запросу id Software при написании Quake , [1] , которая работает на кольце 0 с отключенной виртуальной памятью. Ее можно использовать, если требуется доступ к функциям кольца 0. В настоящее время она не переключает стеки при аппаратных прерываниях, поэтому некоторые функции DJGPP, такие как SIGINT и SIGFPE, не поддерживаются и будут генерировать ошибку двойной ошибки или ошибки стека.
Разработчик Чарльз В. Сандманн также надеялся в конечном итоге предоставить код для CWSDPMI r7, который позволит CWSDPMI отображать до 64 ГБ памяти в адресное пространство по запросу. [2] [3]