Python for DOS ============== I want to compare 3 versions of DOS Python. To make a long story short I'll name them: python4gw.exe - PythonWin 1.4, compiled by Watcom C, with DOS/4GW extender; python14.exe - Python 1.4, compiled by DJGPP; python15.exe - Python 1.5, compiled by DJGPP. I tested all these ones on very limited computer - 386SX, RAM=4M, no coprocessor (it is my home PC, and I am not doing tests, I am just using Python :) Issue 1 - memory ---------------- All versions required virtual memory. I remember good old times, when Python can be compiled by 16bit Borland C compiler and run with 640K memory. All modern versions required much more memory. Because of this, all versions required some kind of DOS extender - mini-operating system that provides memory management with virtual memory. PythonWin, compiled by Watcom C, has Watcom's DOS/4GW extender. The extender is huge, complex and slow; to run python4gw I have to reboot my system to "clear" state - no TSRs and device drivers. Without this, DOS/4GW cannot setup virtual memory on 4M RAM. There is nice plugin replacement for DOS/4GW - PMODE/W. PMODE/W is only 9K in size (where DOS/4GW is about 300K), but is 99% compatible. I have replaced DOS/4GW with PMODE/W 1.16 in both python4gw and perl.exe (there were times when I used perl 4.036 for DOS) and all is working nice, so I suggest to use PMODE/W insted of DOS/4GW. PMODE/W is shareware, but it is free for non-commercial use (as I remember license). But PMODE/W required even more memory, I cannot run patched python4gw on 4M ram (with more memory, I run it successfully). Python14.exe, compiled by DJGPP, can be run under control of any DPMI-host. DJGPP comes with CWSDPMI, but any DPMI 0.9 will do. I ran python14.exe with CWSDPMI and experienced no problems. Then I switched to QDPMI (because I am almost always using QEMM) and found it good, too. Swap file size for QDPMI is 2M - enough to run all my programs (sometimes I load huge data into dictionaries; python14.exe swaps a lot, but worked). Python15.exe too is running under CWSDPMI and QDPMI, although it eats up even more memory. I rearranged QDPMI to use 4M swapfile. Issue 2 - coprocessor --------------------- Python required math coprocessor for many tasks. Even HTMLParser failed without coprocessor, so I was in big trouble until I resolved the issue. python4gw did not worked without coprocessor, and I don't know how to setup 387-emulation for Watcom-compiled programs. DJGPP-compiled programs can be easily run with 387 emulator. Get 387emu from any site that carries DJGPP itself (best known are SimTel sites). To install it, just unpack 387emu.dxe to any directory and set env var 387emu pointing to the directory. Example (insert it into autoexec.bat): set 387emu=c:\util\387emu.dxe With the emulator, both python14.exe and python15.exe work fine.