Greets... Tran typing... What you have here is a small pre-release to the full PMODE v3.0 protected mode extender package. PMODE v3.0 has been rewritten and redesigned from nothingness. It is now follows the DPMI interface. The current design allows it to serve as an extender to a high level language. I am using Borland C++ 4.0 as an example, but it is possible to use PMODE v3.0 in any other language that supports extenders. You can even use it to write a 'classic' extender. You know, the kind that just replaces relocation at run time with selector allocation. I am actually using Borland C++ 4.0 for Win32. Ignore the name, it produces very nice flat 32bit code which lends itself very well to a DOS based 32bit extender. I am now in the process of testing thoroughly and writing up PMODE libraries for BC4. Some of the major reasons I left C behind a few years ago, was the lack of protected mode, and the default libraries which were so full of crap. Now, full 32bit C (with a small 9k extender WITHIN the EXE), and all the libraries and setup code will be my own. No default C libraries can be used. Which means no floating point. But that is no major loss for me. What is included here, is the PMODE v3.0 kernel. A shell that provides the PMODE v2.4 interface if you are using PMODE v2.4 currently. The shell is just PMODE v2.4 with a few modifications to the DPMI code to interface it directly to the PMODE v3.0 kernel, and with all dead code removed. Use it if you wish, or stay with PMODE 2.4. Also included is a quick little startup header to interface BC4 with PMODE. This is just here to show how it is done. The full release of PMODE v3.0 will have full BC4 interface with some necessary libraries. I love the fact that BC4 allows inline ASM as well as external ASM code, which will be painfully easy to interface in flat mode. Files present: STUFF.DOC - You're reading it. PMODE.ASM - PMODE v3.0 assembly source code. PMODE.DOC - PMODE v3.0 documentation. PM24SH.ASM - PMODE v2.4 compatibility shell for PMODE v3.0. C0PM.ASM - Startup header for Borland C++ 4.0. PMODE.H - Simple include file for Borland C++ 4.0. EX_C.C - Example C program for Borland C++ 4.0. M_EX_C.BAT - Builds the C example file using TASM, BC4, and TLINK. EX_ASM.ASM - Example ASM program for TASM. M_EX_ASM.BAT - Builds the ASM example file using TASM and TLINK. Enjoy it, play with it, drool over the idea of blissfull flat C programming, without the penalty which has, up till, now been placed on it. L8r... Before... and During... Tran... (a.k.a. Thomas Pytel) tran@phantom.com -> (void *)NULL