-------------------------------------------------------------------------------- INSTALL.TXT DPMI-RSX (c) Rainer Schnitker Jan 1994 -------------------------------------------------------------------------------- This file contains information about: Hardware Requirements Software Requirements Create more DPMI memory INSTALL for EMX/GCC INSTALL for DJGPP Major bugs in tested DPMI-Hosts Patch for next EMX-Update This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -------------------------------------------------------------------------------- Hardware Requirements: ---------------------- - RSX requires a 386SX-CPU (or higher) (A 387 coprocessor is not necessary, because RSX emulates it) Software Requirements: ---------------------- - A DPMI 0.9/1.0 - Server like: MS-Windows 3.1 enhanced mode QEMM386 + QDPMI 1.01 386MAX 6.x (better 7.0) (OS2, 386Unix not tested) To use the 387-emulator the DPMI-server must provide DPMI 1.0 floating-point extensions (most 0.9 server support this). - DOS 3.3+ or DOS box emulation - A GNU-C port for DOS like EMX/GCC 0.8e-h or DJGPP 1.06-1.11 or any EMX program that should run under DPMI (like TeX386). Create more DPMI memory: (needed for older DJGPP) ------------------------ MS-Windows 3.1: You can set the value PageOverCommit in the system.ini [386Enh] section PageOverCommit=8 (default=4) Specifies the multiplier for determining the amount of linear address space. The amount of linear address space is computed by rounding up the amount of available physical memory to the nearest 4 megabytes and then by multiplying that value to the value specified for this setting. If you use a permanent Swapfile increase this file. Also you can create a smaller DOS-Box. PIF-settings: - 400 KB DOS memory maximum [250 KB without rsx387] (if you only want to run small DOS programs in RSX) - EMS=0 ; XMS=0 ; no High-Memory-Area 386MAX 7.0: To increase memory you must have a SWAPFILE line in your 386MAX.PRO file SWAPFILE=C:\386MAX\386MAX.swp /S=10240 This creates a 10MB swapfile. The size of the virtual swapfile is the amount of virtual memory available to your applications. QEMM + QDPMI: Set the environment QDPMI to something like QDPMI=SWAPFILE c:\tmp\qdpmi.swp 8192 This creates a 8 MB swapfile. The sum of the value of availble memory and the size of the virtual swapfile is the amount of virtual memory available to your applications. OS/2: DPMI_DOS_API must have the value AUTO or ON DPMI_MEMORY_LIMIT default value is 64 MB, you don't need to change it EMS,XMS is not needed. INSTALL for EMX/GCC: -------------------- 1) Set the environment RSX387, if a 387-emulation is required RSX387=C:\RSX\FPU-EMU\RSX387 You can disable the FPU-EMU with the '-e' command-line switch. 2) There are two ways to run RSX from bound exe-files: a) Use emxl.exe from EMX-0.8H. If the emxl.exe detects only DPMI it runs RSX.EXE, otherwise EMX.EXE. See also \emx\doc\EMXRT.DOC in EMXRT.ZIP. b) Set the environment variable EMX to RSX.EXE like EMX = C:\RSX\BIN\RSX.EXE . Now, bound EXE-files run the RSX-extender instead of EMX. A special PATH statement is not necessary. If you have no coprocessor and you want run the gcc compiler this method is recommend. Also you can use the stub emxldpmi.exe (if DPMI, run RSX). Notes: (a) Older emx versions don't use the EMX environment (emTeX386 b8). Use emxbind -u to change the emxl.exe stub. (b) Note that the default stack is 60 KB. If you need more space, use the -s option to grow the stack, or set a environment-var RSXOPT. Example: RSXOPT=-s256 sets the stack to 256 Kbytes. If you grow the stack, some programs require -as option (see rsxcmds.txt). INSTALL for DJGPP: ------------------ 1) Set environment RSX387, if 387-emulation is required. RSX387=C:\RSX\FPU-EMU\RSX387 2) Bound executable must find RSX.EXE in the PATH or current directory. Copy the binary files from \rsx\bin to your \djgpp\bin directory. Or change the PATH to \rsx\bin. 3) Creating bound executable: a) For go32 version 1.11 you can use the tools coff2exe, stubedit. To create a gcc compiler for RSX.EXE do this: c:\gcc\bin> xcopy gcc.exe gccdpmi.exe c:\gcc\bin> stubedit gccdpmi.exe extender=rsx b) for older versions: You must use the new stub STUBDJ.EXE to create bound executable. The program BINDDJ puts a stub and the a.out program together: BINDDJ stubdj.exe myfile myfile.exe Stubdj executes RSX if a DPMI-server is there, and go32.exe if there is no DPMI-server. To change the gcc compiler exe-stub, use EXE2AOUT from djgpp to get the a.out file and use the BINDDJ command to create the new stub. Example: C:\GCC\BIN> exe2aout gcc.exe C:\GCC\BIN> binddj stubdj.exe gcc gccd.exe (copy stubdj+gcc gccd.exe) [4] Building library LIBRSX.A If you want to use signals(), ptrace(), wait(), etc you must build the library 'librsx.a'. Read the file 'readme' in the \rsx\source\djlibrsx to install this futures. Major BUGS in tested Hosts : ---------------------------- running MS-Windows 3.1 (exception 3 is not used, int3 handler must installed) running QEMM + QDPMI 1.01 - page faults terminate program - QDPMI virtuel memory error after memory resize fails (page fault) (can happen in GDB.EXE) running 386MAX 6.00 (the new version 7.00 is ok) - gp-fault in host handler calling spawning() for a real-mode program - control-c handler will never called Patch for next EMX-Update: -------------------------- If you upgrade a new EMX version (maybe emx0.8i ?), you always get a warning message if you run the rsx.exe file. Now you can patch the RSX.EXE file: Take a good Hexdump-editor Load RSX.EXE Search for reversed version number "h8.0" Change this value Save RSX.EXE