INSTALL.TXT DPMI-RSX (c) Rainer Schnitker Feb 1994 This file contains information about: H

---
Master Index Current Directory Index Go to SkepticTank Go to Human Rights activist Keith Henson Go to Scientology cult

Skeptic Tank!

-------------------------------------------------------------------------------- INSTALL.TXT DPMI-RSX (c) Rainer Schnitker Feb 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 * Error messages from RSX 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, 7.x OS/2 2.x 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. After that, increase the permanent Swapfile (Control Panel / 386). Also you can create a smaller DOS-Box. PIF-settings: - 400 KB DOS memory maximum [200 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. emxl.exe must found RSX.EXE in the current directory or in the PATH. Also you can use the Environment RSX=\RSX.EXE (like EMX). 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. This stub runs always RSX, if there is a DPMI-server. Notes: (a) 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. (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) - 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 Error messages from RSX: ------------------------ "No DPMI-host found!" There is no DPMI-server. Use EMX instead. "32bit programs not supported" The DPMI-server supports only 16-bit programs. You can't use RSX. "Can't alloc memory for the DPMI-host-stack" The DPMI-server needs some DOS memory for RSX. Do you have enough DOS memory? "can't switch to Protected Mode" DPMI-server can't switch RSX in Protected Mode. Do you have enough extended memory? "No DPMI-server 387 support", "use -e option" DPMI-server doesn't support a coprocessor. Use 'RSX -e prog' or set the environment 'RSXOPT=-e'. "error:can't get int21", "error:can't set int21" RSX can't change the interrupt vector 0x21. "error: not a valid PSP option -/xxxx/\n" EMXBIND error in bound executable. "Can't find RSX387" Set the environment RSX387 like RSX387=c:\rsx\fpu-emu\rsx387 "Can't load emu: " Not enough memory for 387 emulator. Try -p option or increase DOS memory.

---

E-Mail Fredric L. Rice / The Skeptic Tank