DOS Extenders. Sad history of the subject. When first 8086/8088 processors appeared they can address only 1 megabyte (1024K) of memory. First PCs that were created by IBM reserved 384K of upper memory for BIOS, videomemory, etc, so a program can address only 640K. 80186 processor didn't add much to this. 80286 did add, though. Intel invented special "protected" mode. In this mode a program can access a dozen of megabytes of memory. The problem was compatibility. MsDOS/PcDOS didn't support the new mode. So some firms that were producing compilers, libraries and other development tools started to make special "wrappers" for programs to help developers to write in protected mode. The problem was that after protected program finishes the processor must be returned to "normal", non-protected mode - for MsDOS to operate properly. It was near to be impossible, as 80286 processor had no such provisions. The processor has only "reset" signal, after which entire computer must be rebooted. Well, BIOS manufacturers invented a trick (probably, with help from Intel). The program that wants to go from protected mode to non-protected put some information into reserved area of lower memory. And reset the processor. The computer starts to boot and passes control to the boot program in BIOS. BIOS looks into that reserved area and instead of booting returns control to MsDOS (that was already in memory)! Then came 80386! It was really huge leap forward. It can address much more memory, and what is more important, it can address it in "flat mode" - no need to address memory by 64K chunks - you can address whatever you want. And even more important - the processor had soft switch between protected and non-protected modes. MsDOS, though, still didn't support protected mode, so developers continued to use wrappers and special libraries. Of course, such wrappers require help from compilers, so the firms that were producing compilers started to bundle these wrappers and protected mode libraries with their compilers. Soon these wrappers and libraries become like mini-operating systems. Consortiums of developers invented few standard sets of API, most notable of which was DPMI (DOS Protected Mode Interface ) version 0.9. Few very mature DPMI implementations appeared, and soon they got the name (let us finally return to our muttons) DOS Extenders! The best known DOS Extender was PharLap, but it had the problem that it didn't support DPMI. Without support of proper standard it failed. The second best known was DOS/4G, created by Rational Systems. I asked Google where it is now - and hurray! - it is now at http://www.tenberry.com/. Its primary compiler was Watcom C: http://www.tenberry.com/dos4gw/. It was very successful DOS Extender, in the end of DOS era almost every commercial protected mode program used it. There was shareware Extender PMODE/W, that was 99% compatible with DOS/4GW. It was free for non-commercial use, so I downloaded it. It had tools to replace DOS/4GW in a protected .EXE. I used it to replace DOS/4GW in perl.exe and python.exe that I used. It worked perfectly. I know there were some free and commercial DOS/4GW replacement, ZRDX, for example. Its pages are in Russian, so I am not providing URL here. Other compilers also had free and/or commercial extenders. DJGPP (DOS port of GCC) has one, for example. I put some additional information on using python with extenders: http://phdru.name/Software/Python/py4dos.txt.