home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 8 / CDACTUAL8.iso / share / os2 / graficos / gle / install.txt < prev    next >
Encoding:
Text File  |  1994-05-27  |  12.5 KB  |  414 lines

  1. --------------------------------------------------------------------------------
  2. INSTALL.TXT        DPMI-RSX  (c) Rainer Schnitker            May 1994
  3. --------------------------------------------------------------------------------
  4.  
  5. This file contains information about:
  6.  
  7.     * Hardware Requirements
  8.     * Software Requirements
  9.     * Create more DPMI memory
  10.     * INSTALL for EMX/GCC
  11.     * INSTALL for DJGPP
  12.     * RSX32
  13.     * Command line switches for rsx
  14.     * Major bugs in tested DPMI-hosts
  15.     * Patch for next EMX-Update
  16.     * Error messages from RSX
  17.  
  18.  
  19.  
  20.  
  21.     This program is distributed in the hope that it will be useful,
  22.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  23.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  24.     GNU General Public License for more details.
  25.  
  26.  
  27.  
  28. --------------------------------------------------------------------------------
  29.  
  30.  
  31.  
  32. Hardware Requirements:
  33. ----------------------
  34.  
  35. - RSX requires a 386SX-CPU (or higher)
  36.  
  37.   (A 387 coprocessor is not necessary, because RSX emulates it)
  38.  
  39.  
  40.  
  41.  
  42. Software Requirements:
  43. ----------------------
  44.  
  45. - A DPMI 0.9/1.0 - Server like:
  46.  
  47.     MS-Windows 3.1 enhanced mode
  48.  
  49.     QEMM386 7.xx / QEMM386 + QDPMI 1.01
  50.  
  51.     386MAX 6.x, 7.x
  52.  
  53.     OS/2 2.x
  54.  
  55.     MS-Windows NT
  56.  
  57.   To use the 387-emulator the DPMI-server must provide DPMI 1.0 floating-point
  58.   extensions (most 0.9 server support this).
  59.  
  60. - DOS 3.3+ or DOS box emulation
  61.  
  62. - A GNU-C port for DOS like EMX/GCC 0.8e-h or DJGPP 1.06-1.11
  63.  
  64.   or any EMX program that should run under DPMI (like TeX386 beta11).
  65.  
  66.  
  67.  
  68.  
  69. Create more DPMI memory:
  70. ------------------------
  71.  
  72. If your GCC programs (TeX386, EMX/GCC or DJGPP) run out of memory,
  73. you should read this section.
  74.  
  75.  
  76. MS-Windows 3.1:
  77.     1) Increase or install a *permanent* Swapfile (Control Panel / 386).
  78.  
  79.     Without a permanent Swapfile, you can't run TeX386 from emTeX, if you
  80.     have only 4 MB physical memory. (TeX message "DYN: out of memory").
  81.  
  82.     If you can't incease the swapfile, you can set the value PageOverCommit
  83.     in the system.ini [386Enh] section, insert
  84.     PageOverCommit=8
  85.     the default value is 4. After that restart Windows.
  86.       [ PageOverCommit=value:
  87.       Specifies the multiplier for determining the amount of linear address
  88.       space. The amount of linear address space is computed by rounding up the
  89.       amount of available physical memory to the nearest 4 megabytes and then
  90.       by multiplying that value to the value specified for this setting. ]
  91.     After that, you should increase the permanent Swapfile again.
  92.  
  93.     2) Also you can create a smaller DOS-Box. PIF-settings:
  94.     - 300 KB DOS memory maximum
  95.     - EMS=0 ; XMS=0 ; no High-Memory-Area
  96.     But this option is not so useful as point 1).
  97.  
  98.  
  99. 386MAX 7.0:
  100.     To increase memory you must have a SWAPFILE line in your 386MAX.PRO file
  101.     SWAPFILE=C:\386MAX\386MAX.swp /S=10240
  102.     This creates a 10MB swapfile. The size of the virtual swapfile is the
  103.     amount of virtual memory available to your applications.
  104.  
  105. QEMM + QDPMI:
  106.     Set the environment QDPMI to something like
  107.     QDPMI=SWAPFILE c:\tmp\qdpmi.swp 8192
  108.     This creates a 8 MB swapfile. The sum of the value of availble memory and
  109.     the size of the virtual swapfile is the amount of virtual memory available
  110.     to your applications.
  111.  
  112. OS/2:
  113.     DPMI_DOS_API must have the value AUTO or ON
  114.     DPMI_MEMORY_LIMIT default value should 64 MB
  115.     EMS,XMS is not needed.
  116.  
  117.  
  118.  
  119. INSTALL for EMX/GCC:
  120. --------------------
  121.  
  122. 1)  Set the environment RSX387, if a 387-emulation is required
  123.     RSX387=C:\RSX\FPU-EMU\RSX387
  124.     If you run RSX, it loads RSX387, if there is no coprocessor.
  125.     You can disable this with the '-e' command-line switch.
  126.  
  127.     RSX32 has a buildin emulation, so you don't need RSX387.
  128.  
  129. 2)  There are two ways to run RSX from bound exe-files:
  130.  
  131.  a) Use emxl.exe from EMX-0.8H.
  132.     If the emxl.exe detects only DPMI it runs RSX.EXE, otherwise EMX.EXE.
  133.     emxl.exe must found RSX.EXE in the current directory or in the PATH.
  134.     Also you can use the Environment RSX=<path>\RSX.EXE (like EMX).
  135.     See also \emx\doc\EMXRT.DOC in EMXRT.ZIP.
  136.  
  137.  b) Set the environment variable EMX to RSX.EXE like
  138.     EMX = C:\RSX\BIN\RSX.EXE .
  139.     Now, bound EXE-files run the RSX-extender instead of EMX. A special PATH
  140.     statement is not necessary.
  141.  
  142.     If you have no coprocessor and you want run the gcc compiler this method
  143.     is recommend. Also you can use the stub emxldpmi.exe. This stub runs
  144.     always RSX, if there is a DPMI-server.
  145.  
  146.  
  147. Notes:
  148.     (a) Note that the default stack is 60 KB. If you need more space, use
  149.     the -s option to grow the stack, or set a environment-var RSXOPT.
  150.     Example: RSXOPT=-s256 sets the stack to 256 Kbytes.
  151.     (see rsxcmds.txt).
  152.  
  153.  
  154.  
  155. INSTALL for DJGPP:
  156. ------------------
  157.  
  158. 1)  Set environment RSX387, if 387-emulation is required.
  159.     RSX387=C:\RSX\FPU-EMU\RSX387
  160.     If you run RSX, it loads RSX387, if there is no coprocessor.
  161.     You can disable this with the '-e' command-line switch.
  162.  
  163.     RSX32 has a buildin emulation, so you don't need RSX387.
  164.  
  165. 2)  Bound executable must find RSX.EXE in the PATH or current directory.
  166.     Copy the binary files from \rsx\bin to your \djgpp\bin directory.
  167.     Or change the PATH to \rsx\bin.
  168.  
  169. 3)  Creating bound executable:
  170.     a) For go32 version 1.11 you can use the tools coff2exe, stubedit.
  171.     To create a gcc compiler for RSX.EXE do this:
  172.     C:\GCC\BIN> xcopy gcc.exe gccdpmi.exe
  173.     C:\GCC\BIN> stubedit gccdpmi.exe extender=rsx
  174.  
  175.     b) for older versions:
  176.     You must use the new stub STUBDJ.EXE to create bound executable. The
  177.     program BINDDJ puts a stub and the a.out program together:
  178.  
  179.     > BINDDJ stubdj.exe myfile myfile.exe
  180.  
  181.     Stubdj executes RSX if a DPMI-server is there, and go32.exe if there is no
  182.     DPMI-server. To change the gcc compiler exe-stub, use EXE2AOUT from djgpp
  183.     to get the a.out file and use the BINDDJ command to create the new stub.
  184.  
  185.     Example:
  186.     C:\GCC\BIN> exe2aout gcc.exe
  187.     C:\GCC\BIN> binddj stubdj.exe gcc gccd.exe (copy stubdj+gcc gccd.exe)
  188.  
  189.  
  190. [4] Building library LIBRSX.A
  191.     If you want to use signals(), ptrace(), wait(), etc you must build
  192.     the library 'librsx.a'.
  193.     Read the file 'readme' in the \rsx\source\djlibrsx to install
  194.     this futures.
  195.  
  196.  
  197.  
  198. RSX32:
  199. ------
  200.  
  201. RSX32 does the same as RSX. RSX is compiled with EMX/GCC and don't use
  202. the EMX C-Library. RSX has a builtin FPU-EMU, rsx387 is not needed.
  203. This is the first release, so RSX32 it beta.
  204.  
  205. You run RSX32.EXE instead RSX.EXE
  206. Set EMX=c:\rsx\bin\rsx32.exe and RSX=c:\rsx\bin\rsx32.exe
  207. Or rename RSX to RSX16 and RSX32 to RSX.
  208.  
  209.  
  210.  
  211. Command line switches for rsx ( a subset of emx switches )
  212. ----------------------------------------------------------
  213.  
  214. Syntax:
  215.     RSX [options] a.out-file
  216.     RSX32 [options] a.out-file
  217.  
  218. You can put command-line switches in the RSXOPT environment.
  219.  
  220.     Example:  SET RSXOPT=-9 -e0
  221.         This disables DPMI 1.0 services
  222.         and disables any coprocessor usage.
  223.  
  224.  
  225. Switches:
  226.  
  227. -a[cmwi] enable some extra DOS features:
  228.      -ac makes data and the stack executable (default now)
  229.      -am enable _memaccess() (for writing 0xA0000h-0xFFFFFh)
  230.      This option destroy protection under RSX with DPMI 0.9
  231.      (see source sysemx.c/loadprg.c)
  232.      Under DPMI 1.0 the first DOS megabyte is mapped to the
  233.      log. address 0x3C0000L (= 60 MB)
  234.      -aw enables write access to all areas
  235.      DPMI 0.9 don't allow write protection
  236.      -ai enables _portaccess() for EMX,
  237.      RSX ignore this (DPMI-Server allow/emulate this)
  238.  
  239.      -as (RSX only) Don't use expand-down-stack-segment, ss = data segment.
  240.  
  241.      RSX uses expand-down stack-segments to control the stack. But some
  242.      gcc-programs uses the EBP register for a pointer in the data-segment.
  243.      This causes a stack-fault (but not with the default stack).
  244.      If the stack is changed, the place of the stack region is changed.
  245.  
  246.      RSX default:
  247.  
  248.      0         64KB
  249.      |--<<stack---|-----code-----|----data/bss----|--heap------
  250.  
  251.       ^- lower limit expand-down  <full access esp,ebp>
  252.  
  253.  
  254.      RSX with big stack / DJGPP 1.11:
  255.  
  256.      |-------|---code---|---data/bss---|----<<stack-------|--heap--
  257.           <no access esp,ebp>       ^lower limit expand-down
  258.  
  259.  
  260.  
  261.      older emTeX386 need the -as option, if you grow the stack
  262.      (beta11 is ok / Jan 1994)
  263.  
  264.  
  265. -c   disable core dumps (ignored: core dumps are not implemented)
  266.  
  267. -e   Don't check 387 coprocessor.
  268.  
  269.      Under RSX this disables loading 387 emulation if you have no coprocessor.
  270.      On floating point instructions, the program will terminated with signal
  271.      SIGFPE (this is like -e2).
  272.  
  273.      With a coprocessor the status is not saved between processes.
  274.      There are no DPMI calls for the 387 (this is like -e0).
  275.  
  276.      Now there also this switches,
  277.      -e0 -e1 -e2 -e3
  278.      force the fpu-status:
  279.  
  280.      Bit     Significance
  281.      0         new value of MPv bit for client's virtual CR0
  282.          0 = disable numeric coprocessor for this client
  283.          1 = enable numeric coprocessor for this client
  284.      1         new value of EMv bit for client's virtual CR0
  285.          0 = client will not supply coprocessor emulation
  286.          1 = client will supply coprocessor emulation
  287.  
  288.      This means for RSX:
  289.  
  290.      e0: don't set FPU status                       [for buggy DPMI-host]
  291.      e1: enable FPU, don'emulate                    [if you have a 387,487,..]
  292.      e2: disable FPU, but catch FPU instructions    [set 387 not present]
  293.      e3: enable FPU, emulate FPU instructions        [emulate all FPU instr]
  294.  
  295.      If your DPMI-host crash after terminating the emx-program, try -e0
  296.      (Novell DOS 7.0  emm386)
  297.  
  298.  
  299. -s#  set stack size in KB
  300.  
  301.      default:
  302.        60 KB under DPMI 0.9 : from 4 to 64 KB (text_start)
  303.  
  304.      Under DPMI 1.0 the stack grows from 60 MB to the heap (brkv - 60 MB)
  305.      The stack size is ignored.
  306.  
  307. -p   for EMX: don't use all low DOS memory.
  308.  
  309.      for RSX: don't put rsx387 emulator in DOS memory
  310.           DPMI doesn't use DOS memory for swapping
  311.  
  312.      RSX32 don't load rsx387.
  313.  
  314. -V   Display RSX version
  315.  
  316. -9   Force DPMI 0.9 services
  317.      If you have problems with your DPMI 1.0 server use this option
  318.  
  319. -I   print all int0x21 calls (only for testing RSX)
  320.  
  321. -P   print some extra information (only for testing RSX)
  322.      print registers after exception
  323.  
  324.  
  325.  
  326.  
  327.  
  328. Major bugs in tested hosts :
  329. ----------------------------
  330.  
  331.     MS-Windows 3.1
  332.     - (debug handler different - but RSX can handle this)
  333.  
  334.     386MAX 7.00 (DPMI1.0 server: support demand paging with rsx)
  335.     - ResizeLinearMemory bug (RSX don't use this)
  336.  
  337.     386MAX 6.00
  338.     - RSX Control-C handler will never called
  339.     - (no virtuel memory)
  340.  
  341.     QEMM + QDPMI 1.01  [ QEMM 7.xx not tested ]
  342.     - page faults terminate program
  343.     - QDPMI virtuel memory error after memory resize fails (page fault)
  344.       (happened in GDB.EXE)
  345.  
  346.     Novell DOS 7.0 EMM386
  347.     - crash on DPMI 1.0 calls -> 387 emulation is not possible
  348.       you *must* use the '-e0' option
  349.  
  350.     OS/2 2.x (not tested, TeX386b11 should run)
  351.     - Problems with memaccess()
  352.     - DPMI int 0x31 don't switch stacks
  353.  
  354.     NT (not tested, TeX386b11 should run)
  355.     - you must use the '-e0' or '-e' option
  356.  
  357.  
  358.  
  359. Patch for next EMX-Update:
  360. --------------------------
  361.  
  362. If you upgrade a new EMX version (maybe emx0.8i ?), you always get a warning
  363. message, if you run the rsx.exe file.
  364.  
  365. Now you can patch the RSX.EXE file:
  366.  
  367.     Take a good hexdump-editor
  368.     Load RSX.EXE
  369.     Search for reversed version number "h8.0"
  370.     Change this value
  371.     Save RSX.EXE
  372.  
  373.  
  374.  
  375. Error messages from RSX:
  376. ------------------------
  377.  
  378. "No DPMI-host found!"
  379.     There is no DPMI-server. Use EMX instead.
  380.  
  381. "32bit programs not supported"
  382.     The DPMI-server supports only 16-bit programs. You can't use RSX.
  383.  
  384. "Can't alloc memory for the DPMI-host-stack"
  385.     The DPMI-server needs some DOS memory for RSX.
  386.     Do you have enough DOS memory?
  387.  
  388. "can't switch to Protected Mode"
  389.     DPMI-server can't switch RSX in Protected Mode.
  390.     Do you have enough extended memory?
  391.  
  392. "No DPMI-server 387 support", "use -e option"
  393.     DPMI-server doesn't support a coprocessor. Use 'RSX -e prog' or set
  394.     the environment 'RSXOPT=-e'.
  395.  
  396. "error:can't get int21", "error:can't set int21"
  397.     RSX can't change the interrupt vector 0x21.
  398.  
  399. "error: not a valid PSP option -/xxxx/\n"
  400.     EMXBIND error in bound executable.
  401.  
  402. "Can't find RSX387"
  403.     Set the environment RSX387 like RSX387=c:\rsx\fpu-emu\rsx387
  404.  
  405. "Can't load emu: "
  406.     Not enough memory for 387 emulator. Try -p option or increase DOS
  407.     memory.
  408.  
  409. for emTeX386 users: "DYN: out of memory"
  410.     is a TeX message, increase your DPMI memory.
  411.     Since TeX386 uses a big heap (3-4 MB), a permanent swapfile in Windows
  412.     is recommend with only 4MB installed.
  413.  
  414.