home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-06-06 | 37.3 KB | 1,100 lines |
- ===============================================================================
- emxrt.doc emx 0.9a FIX 05 USER'S GUIDE TO THE EMX RUNTIME 06-Jun-1995
- ===============================================================================
- Copyright (c) 1990-1995 by Eberhard Mattes
-
-
- 1 Table of Contents
- ===================
-
- 1 Table of Contents
- 2 Introduction to the User's Guide to the emx Runtime
- 2.1 Hardware requirements
- 2.2 Files included in the emx runtime package
- 3 License
- 4 Installing the emx runtime package under OS/2
- 4.1 Summary for impatient OS/2 users
- 4.2 Detailed instructions for OS/2 users
- 5 Installing the emx runtime package under DOS
- 5.1 Summary for impatient DOS users
- 5.2 Detailed instructions for DOS users
- 6 Environment variables (OS/2 and DOS)
- 6.1 Environment variables (DOS)
- 7 DOS Notes
- 7.1 General notes
- 7.2 Emergency exit
- 7.3 Using rsx instead of emx
- 8 emx options
- 8.1 emx options (OS/2)
- 8.2 emx options (DOS)
- 9 The emxstack tool
- 10 Troubleshooting
- 10.1 Warning message `WARNING: emx 0.9a or later required'
- 10.2 unzip.exe says `cannot create emx/dll/emx.dll'
- 10.3 emx.dll cannot be deleted, renamed or overwritten
- 10.4 Error message `SYS1804: The system cannot find the file EMX.'
- 10.5 Error message `rsx not found, DPMI not supported by emx'
- 10.6 Error message `emx.dll: Stack size too small...'
- 10.7 DOS message `Sector not found'
- 11 emx messages
- 11.1 emx messages (OS/2)
- 11.2 emx messages (DOS)
- 12 Obtaining the complete emx package
- 13 The author of emx
-
-
- 2 Introduction to the User's Guide to the emx Runtime
- =====================================================
-
- This is the documentation for the emx runtime package. The emx
- runtime is an environment for 32-bit programs under OS/2 2.x, OS/2 3.x
- (OS/2, in short), MS-DOS, and PC-DOS (DOS, in short) on machines with
- a 386 CPU (or one of its successors).
-
- Under OS/2, you can view the .inf version of this document by typing
-
- view \emx\book\emxrt
-
- If you add \emx\book to the BOOKSHELF environment variable, you can
- type
-
- view emxrt
-
- to view that on-line book.
-
-
- 2.1 Hardware requirements
- -------------------------
-
- emx requires an 80386 CPU (80386DX, 80386SX, i486, or later)
-
-
- 2.2 Files included in the emx runtime package
- ---------------------------------------------
-
- The emx runtime package includes the following files:
-
- \emx\bin\emx.exe emx runtime for DOS
- \emx\bin\emxbind.exe Tool for modifying emx programs (DOS and OS/2)
- \emx\bin\emxfpemu Emulator for numeric coprocessor (DOS)
- \emx\bin\emxl.exe emx loader (used by emxbind)
- \emx\bin\emxload.exe Server for keeping OS/2 programs in memory
- \emx\bin\emxrev.cmd Tool for displaying emx revisions (OS/2)
- \emx\bin\emxstack.exe Tool for fixing the stack size of old programs
- \emx\book\emxrt.inf The text you are looking at (VIEW version)
- \emx\dll\emx.dll emx runtime for OS/2
- \emx\dll\emxio.dll Hardware port I/O under OS/2
- \emx\dll\emxlibc.dll Forwarder DLL to emxlibcm.dll (OS/2)
- \emx\dll\emxlibcm.dll Multithread C library (OS/2)
- \emx\dll\emxlibcs.dll Single-thread C library (OS/2)
- \emx\dll\emxwrap.dll Interface to 16-bit OS/2 functions (OS/2)
- \emx\doc\emxrt.doc The text you are looking at (text version)
- \emx\etc\termcap.dat Terminal data base for termcap-based programs
-
-
- 3 License
- =========
-
- emx is free software; you can redistribute it and/or modify it under
- the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2, or (at your option) any later
- version.
-
- emx 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.
-
- You should have received a copy of the GNU General Public License
- along with emx; see the file COPYING. If not, write to the Free
- Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- See \emx\doc\COPYING.EMX and \emx\doc\COPYING for details.
-
- Please note that source code for parts of the contents of emxrt.zip is
- contained in emxfix05.zip.
-
-
- 4 Installing the emx runtime package under OS/2
- ===============================================
-
-
- 4.1 Summary for impatient OS/2 users
- ------------------------------------
-
- 1. Add \emx\dll to LIBPATH (always use the latest copy of the .dll
- files!)
-
- 2. Add \emx\bin to PATH
-
- 3. Reboot
-
-
- 4.2 Detailed instructions for OS/2 users
- ----------------------------------------
-
- emx does not work with OS/2 1.x and in DOS mode of OS/2.
-
- Before changing config.sys, make a backup copy of that file!
-
- The emx runtime is implemented as a set of dynamic link libraries
- under OS/2:
-
- emx.dll
- emx run-time support for OS/2
-
- emxio.dll
- access to hardware ports for emx programs under OS/2
-
- emxlibc.dll
- forwarder DLL to emxlibcm.dll for existing applications that
- use emxlibc.dll (which has been renamed to emxlibcm.dll)
-
- emxlibcm.dll
- multithread emx C library
-
- emxlibcs.dll
- single-thread emx C library
-
- emxwrap.dll
- 32-bit wrappers for 16-bit OS/2 API functions
-
- OS/2 looks for dynamic link libraries in the directories listed in the
- LIBPATH statement of your config.sys file. Note that LIBPATH is not
- an environment variable!
-
- At any time, at most one version of a dynamic link library is loaded.
- If there are different versions of a dynamic link library in the
- directories listed in the LIBPATH statement, the first one listed is
- loaded. If you already have installed the emx dynamic link libraries,
- you should be careful to use the latest revision of those dynamic link
- libraries. Newer emx dynamic link libraries work with older emx
- programs (however, you may have to apply emxstack), but newer emx
- programs don't work with older emx dynamic link libraries. To find
- out about already installed emx dynamic link libraries, type
-
- cd \emx\bin
- emxrev
-
- If no emx dynamic link libraries are installed, no output is produced.
- If there are emx dynamic link libraries installed, the names and
- revision numbers are displayed, for instance
-
- EMX : revision = 30
- EMXIO : revision = 30
- EMXLIBC : revision = 30
- EMXLIBCM : revision = 30
- EMXLIBCS : revision = 30
- EMXWRAP : revision = 30
-
- Only directories listed in the LIBPATH statement are searched. To
- find out the revision numbers of the dynamic link libraries of this
- package, type
-
- emxrev -d c:\emx\dll
-
- if you have put the emx runtime package on drive C. After running
- emxrev, you should quit the command processor by typing
-
- exit
-
- to release the dynamic link libraries (they have been loaded by
- cmd.exe as emxrev is a REXX procedure). Otherwise, you cannot rename,
- overwrite, or delete those files. This also happens if one of the emx
- dynamic link libraries is currently used by a program. If you get
- error message SYS0032, use
-
- pstat /L
-
- to find out about the dynamic link libraries used by the programs
- currently running. Terminate all the programs using emx.dll,
- emxio.dll, emxlibc.dll, emxlibcm.dll, emxlibcs.dll, or emxwrap.dll.
- The command
-
- emxload -qw
-
- will unload programs kept in memory by emxload.exe.
-
- Either copy the latest revisions of the emx dynamic link libraries
- (that is, those with the highest revision numbers) to a directory
- directory listed in the LIBPATH statement of config.sys or modify the
- LIBPATH statement to include the directory where the latest revisions
- of the emx dynamic link libraries can be found.
-
- The directories of the LIBPATH statement are separated by semicolons.
- To add c:\emx\dll to the LIBPATH statement, append a semicolon -- if
- there is not yet a semicolon -- to the end of the line of config.sys
- that starts with
-
- LIBPATH=
-
- Then, type the absolute name of the directory. Example:
-
- LIBPATH=.;C:\OS2\DLL;C:\OS2\MDOS;C:\;C:\OS2\APPS\DLL;D:\EMX\DLL
-
- Optionally, you can append a semicolon at the end.
-
- Next, modify the line of config.sys starting with
-
- SET PATH=
-
- to include the \emx\bin directory. For instance, change
-
- SET PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;
- C:\;C:\OS2\MDOS;C:\OS2\APPS
-
- to
-
- SET PATH=C:\OS2;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;
- C:\;C:\OS2\MDOS;C:\OS2\APPS;D:\EMX\BIN
-
- As with LIBPATH, you have to put a semicolon between the path names
- and a trailing semicolon is optional. Note that the last two examples
- are shown in two lines; in config.sys, however, the complete SET
- statement must be put into one line.
-
- You might want to add \emx\book to the BOOKSHELF environment variable
- to simplify viewing the on-line documentation. For instance, change
- the line
-
- SET BOOKSHELF=C:\OS2\BOOK;
-
- of your config.sys file to
-
- SET BOOKSHELF=C:\OS2\BOOK;C:\EMX\BOOK
-
- as with PATH, you have to put a semicolon between the path names and a
- trailing semicolon is optional.
-
- Now, you should reboot to activate the changes to config.sys. After
- booting, run
-
- emxrev
-
- to verify that the latest revision of emx is now active.
-
- If OS/2 says
-
- SYS1804: The system cannot find the file EMX.
-
- when running an emx program, you have not correctly set the LIBPATH
- statement of config.sys. See above for details.
-
- When running an old program (which assumes that emx.dll creates a
- stack object if the stack size is too small), you will get an error
- message like
-
- emx.dll: Stack size too small. Run
- emxstack -f D:\BIN\PROGRAM.EXE
- and try again.
-
- Run emxstack as indicated by the error message to fix the stack size
- of the program. If you can't (because you don't have write permission
- for the file), type
-
- set emxopt=-I
-
- to make emx.dll ignore the problem. However, the program will
- probably crash due to insufficient stack size. Using the -I option is
- not recommended!
-
-
- 5 Installing the emx runtime package under DOS
- ==============================================
-
-
- 5.1 Summary for impatient DOS users
- -----------------------------------
-
- 1. Add \emx\bin to PATH or set EMX to point to \emx\bin\emx.exe
-
- 2. If you are using a memory manager which implements DPMI, enable
- VCPI
-
- 3. Remove BREAK=ON from config.sys
-
- 4. Reboot
-
-
- 5.2 Detailed instructions for DOS users
- ---------------------------------------
-
- emx programs for DOS come in two flavours: those which load emx.exe
- from a separate file and those which have the emx runtime emx.exe
- integrated in the executable file of the application program.
-
- Before changing autoexec.bat and config.sys, make a backup copy of
- these files!
-
- If you want to use a program which loads emx.exe, you have to put
- emx.exe into a directory which is listed in your PATH environment
- variable or you have to change the PATH environment variable (in
- autoexec.bat) to include the directory in which emx.exe can be found.
- For instance, if your autoexec.bat file contains the line
-
- path c:\dos;d:\bin
-
- you have installed the emx runtime on drive D, you should modify that
- line to read
-
- path c:\dos;d:\bin;d:\emx\bin
-
- You have to put a semicolon between the path names.
-
- Alternatively, you can set an environment variable which directly
- points to the emx.exe executable. If you use this method, your
- program can locate emx.exe more quickly. If you have installed the
- emx runtime on drive D:, you should add the following line to your
- autoexec.bat file:
-
- set emx=d:\emx\bin\emx.exe
-
- Note that a directory name is not sufficient -- you have to type the
- complete path name of the emx.exe file.
-
- Programs of the second flavour, having emx.exe integrated, don't
- require \emx\bin added to the PATH environment variable or the EMX
- environment variable being set. The program itself, however, may need
- changes to your autoexec.bat file. See the documentation accompanying
- the program. The following steps are required for both flavours of
- emx programs.
-
- If you are using a memory manager (such as QEMM or EMM386 or 386max)
- which implements DPMI (DOS Protected Mode Interface), you have to
- change the invokation of that memory manager to enable VCPI as emx
- does not support DPMI. See the documentation of your memory for
- details. If your memory manager supports DPMI only (without VCPI),
- you have to remove or disable the memory manager. Alternatively, you
- can use rsx, as indicated in section 7.3. emx supports XMS and VCPI.
-
- Examine your config.sys file: If there is a line
-
- BREAK=ON
-
- in it, you should remove it as it causes trouble with emx and lots of
- other programs.
-
- If you are using an Intel Inboard 386/PC, add the following line to
- autoexec.bat:
-
- set emxopt=-m3
-
- If the swap file (used to swap memory pages to disk when running out
- of physical memory) should be in a specific directory or on a specific
- disk drive, set the EMXTMP environment variable in autoexec.bat.
- Example:
-
- set emxtmp=c:\tmp
-
- Now, you should reboot to activate the changes to config.sys and
- autoexec.bat.
-
-
- 6 Environment variables (OS/2 and DOS)
- ======================================
-
- The operation of emx and emx programs is controlled by several
- environment variables. You might have to set one or more of the
- following environment variables:
-
- INIT used by termcap to find termcap.dat
-
- TERM used by termcap to define the terminal type
-
- EMXETC used by termcap to find termcap.dat
-
- EMXOPT emx options (see below)
-
- EMXSHELL
- overrides the COMSPEC environment variable. You can use this
- to run an alternate command processor (shell) from emx
- programs
-
- EMXPATH
- search path for programs (usually not relevant)
-
- PATH search path for program (used if EMXPATH fails)
-
- TERMCAP
- used by termcap to find termcap.dat
-
-
- 6.1 Environment variables (DOS)
- -------------------------------
-
- EMX path name of emx.exe, used by programs which are bound with
- emxl.exe (the emx loader) instead of emx.exe. Set EMX to
- speed up loading of emx.exe or to load a specific version of
- emx.exe
-
- EMXTMP directory for the swap file
-
- TMP used if EMXTMP is not set
-
-
- 7 DOS Notes
- ===========
-
-
- 7.1 General notes
- -----------------
-
- - emx requires DOS 3.0 or later
-
- - emx does not support DPMI
-
- - emx does not support DESQview without VCPI (use QEMM-386 with
- DESQview)
-
- - If emx doesn't work under DESQview (especially if it displays the
- message
-
- Nonmaskable interrupt (NMI)
-
- either set the protection level to 0 or use the WATCHDOG=0 option of
- QEMM-386.
-
- - emx supports VCPI
-
- - emx supports XMS. Do not use emx with himem.sys 2.06 or earlier.
-
- - emx checks for XMS version number 2.00 or later and for XMS driver
- revision 2.06 or later, as older himem.sys drivers don't work
- correctly. You can override this check by using the -O emx option
- (for drivers using a different revision numbering scheme), but emx
- may not work with your XMS driver, anyway. Actually, emx has not
- been tested with himem.sys 2.05; 2.04 fails, 2.06 works.
-
- - emx supports vdisk.sys 3.3 and later and most other RAM disk drivers
-
- - emx uses (or tries to use) all available memory, whether
- conventional, extended, or expanded memory. If there isn't enough
- memory, emx will swap to disk. The swap file will be created in the
- directory given by the EMXTMP environment variable. If EMXTMP is
- not set, TMP will be used. If both variables are not set, the swap
- file will be created in the root directory of the current drive.
-
- - If a program uses floating point instructions and no numeric
- coprocessor (387) is installed, emx tries to load the FPU (floating
- point unit) emulator emxfpemu. That file is first sought in the
- directory from which emx.exe was loaded (this does not apply if
- emx.exe is bound to the executable), then in the current working
- directory and the directories listed in the EMXPATH and PATH
- environment variables. If emxfpemu cannot be found, the program
- will be aborted by signal SIGFPE.
-
-
- 7.2 Emergency exit
- ------------------
-
- If the computer freezes while running emx, try hitting Ctrl-Break five
- times in one scond. That will terminate emx (and all emx processes
- run by that instance of emx) unless it is blocked in a DOS call. If
- blocked in a DOS call, emx will terminate after return from that DOS
- call.
-
-
- 7.3 Using rsx instead of emx
- ----------------------------
-
- rsx is a DPMI-compliant DOS extender which is more or less compatible
- to emx. Moreover, rsx contains a floating point emulator. rsx is
- free software and has been written by Rainer Schnittker. As of this
- writing, rsx is assumed to be available for anonymous ftp as
-
- ftp.uni-bielefeld.de: /pub/systems/msdos/misc/dpmigcc5.zip
- ftp.uni-stuttgart.de: /pub/systems/os2/emx-0.9a/contrib/dpmigcc5.zip
- ftp.informatik.tu-muenchen.de:
- /pub/comp/os/os2/gnu/emx+gcc/contrib/dpmigcc5.zip
-
- If the emx loader emxl.exe finds a DPMI server but no VCPI server, it
- tries to run rsx.exe instead of emx.exe. The RSX environment variable
- will be used instead of the EMX environment variable for locating
- rsx.exe.
-
- To load rsx.exe instead of emx.exe even if there is a DPMI server and
- a VCPI server (for instance if you need the floating point emulation
- of rsx), set the EMX environment variable to point to rsx.exe. Note
- that rsx needs a DPMI server.
-
-
- 8 emx options
- =============
-
- You can customize emx by setting the EMXOPT environment variable.
- This environment variable contains a list of options, similar to
- command line options. The options must be separated by at least one
- blank. Example:
-
- set emxopt=-c -h40
-
-
- 8.1 emx options (OS/2)
- ----------------------
-
- -c Disable core dumps caused by signals and exceptions
-
- -h# Set OS/2 file handle limit to #. The number # must be between
- 10 and 255
-
- -n Suppress popups for exceptions. As emx.dll displays an
- appropriate error message and dumps core, popups are not
- required
-
- -q All command line arguments passed to child processes will be
- quoted unconditionally, that is, wildcard expansion and
- response files won't work in child processes of processes for
- which the -q option is in effect
-
- -r* Prepend drive letter * to absolute path names. If a path name
- starts with / but does not start with //, /dev/ or /pipe/, *
- followed by a colon will be prepended. If -rd has been given,
- the file name \mydir\abc will be translated to d:\mydir\abc.
- Note: this option can cause unexpected effects
-
- -t Truncate file names to 8.3
-
- -x Don't suppress wildcard expansion and response files if the
- `MKS Korn shell' method of passing command line arguments is
- used
-
- -E Run debuggee in same session (window) as debugger
-
- -I Don't complain about programs having too small a stack size.
- Without the -I option, emx.dll displays an error message for
- those programs, telling how to run emxstack to fix the stack
- size. With the -I option, the program is run despite of the
- problem. However, the program will probably crash due to
- insufficient stack size. Using the -I option is not
- recommended!
-
- -K Don't use DosKillThread. Due to bugs in OS/2, DosKillThread
- may cause problems. emx.dll automatically avoids using
- DosKillThread for OS/2 2.1 and older. For OS/2 2.11 and
- later, you can use the -K option to disable usage of
- DosKillThread. Currently, DosKillThread is used only if
- select() is applied to socket handles
-
-
- 8.2 emx options (DOS)
- ---------------------
-
- -c Disable core dumps caused by signals and exceptions
-
- -d Don't use extended memory
-
- -e Redirect the standard error handle (2) to standard output (1)
-
- -h# Set DOS file handle limit to #. The number # must be between
- 10 and 255. This option is ignored for DOS versions earlier
- than 3.30. This option does not change the emx limit for the
- number of files per process -- that limit is always 40
-
- -m1 Running on Fujitsu FMR70 (not implemented yet)
-
- -m2 Running on NEC PC-98 (not implemented yet)
-
- -m3 Running on Intel Inboard 386/PC
-
- -o Send the register dump of an exception to stdout. Without -o,
- the register dump is sent to the CON device. You need -o for
- redirecting the register dump to a file.
-
- emx now creates a core dump file (named `core') instead of a
- register dump. Please keep that file in case the author of
- the program needs it for debugging.
-
- -q All command line arguments passed to child processes will be
- quoted unconditionally, that is, wildcard expansion and
- response files won't work in child processes of processes for
- which the -q option is in effect
-
- -r* Prepend drive letter * to absolute path names. If a path name
- starts with / but does not start with //, /dev/ or /pipe/, *
- followed by a colon will be prepended. If -rd has been given,
- the file name \mydir\abc will be translated to d:\mydir\abc.
- Note: this option can cause unexpected effects
-
- -t Truncate file names to 8.3 format. Each part of a pathname is
- truncated to 8.3 format by taking the first 8 characters
- before the dot and the first 3 characters after the dot. This
- is useful to compile programs on a FAT filesystem with minimal
- changes
-
- -E Don't check for 387 coprocessor. Assume no coprocessor is
- present
-
- -O Override XMS version check. By default, emx checks for XMS
- version number 2.00 or later and for XMS driver revision 2.06
- or later, as older himem.sys drivers don't work correctly.
- You can override this check by giving the -O option (for
- drivers using a different revision numbering scheme), but emx
- may not work with your XMS driver, anyway. Actually, emx has
- not been tested with himem.sys 2.05; 2.04 fails, 2.06 works
-
- -V Display emx version. On program start, the emx version will
- be displayed
-
- -X Disable usage of XMS memory. Usage of XMS memory with VCPI is
- a new feature of emx. If this happens to cause trouble, use
- the -X option.
-
-
- 9 The emxstack tool
- ===================
-
- The emxstack tool is used for displaying and fixing the stack size.
- Old programs assume that emx.dll allocates a stack object if the stack
- size is too small. As emx.dll no longer does this, the stack size of
- the programs must be fixed.
-
- emxstack <command> [<options>] <file>...
-
- The following commands are available:
-
- -c
-
- Check whether the stack size should be fixed. For each file, if
- the stack size is too small, a message will be displayed. If the
- stack size is big enough, no message will be displayed.
-
- -d
-
- Display the stack size. For each file, the stack size in KByte
- will be displayed.
-
- -f
-
- Fix the stack size. For each file, the stack size is fixed if it
- is too small.
-
- -s<size>
-
- Set the stack size. For each file, the stack size is set to
- <size> KByte.
-
- -u<size>
-
- Update the stack size. For each file, the stack size is set to
- <size> KByte if it less than <size> KByte. If the stack size is
- not less than <size> KByte, the stack size won't be changed.
-
- The following options are available:
-
- -p
-
- Act on all files in the PATH. The command is applied to each file
- in a directory listed in the PATH environment variable. No file
- names must be given on the command line.
-
- -q
-
- Be quiet. No messages will be displayed. However, error messages
- won't be suppressed.
-
- -v
-
- Be verbose. Display additional messages.
-
- Example:
-
- emxstack -f *.exe
-
-
- 10 Troubleshooting
- ==================
-
- This section shows how to solve common problems involving the emx
- runtime.
-
-
- 10.1 Warning message `WARNING: emx 0.9a or later required'
- ----------------------------------------------------------
-
- If this message appears, an out-of-date version of emx.dll is active.
- Make sure that the latest version of emx.dll is in a directory pointed
- to by the LIBPATH statement in your config.sys file. Use
-
- emxrev -p c:\config.sys
-
- to list all emx dynamic link libraries reachable by the LIBPATH
- statement of c:\config.sys (use the drive letter of your boot drive
- instead of c:). To simplify things, you should keep only one version
- of each DLL. Older programs work with newer emx DLLs, but not vice
- versa.
-
-
- 10.2 unzip.exe says `cannot create emx/dll/emx.dll'
- ---------------------------------------------------
-
- This happens when you try to unpack emxrt.zip while a program is
- active which uses emx.dll. Terminate all programs which use emx.dll
- and try again. If you run emxrev, the command interpreter keeps
- emx.dll loaded until terminated. Therefore, you should close all OS/2
- windows and full-screen sessions in which you have run emxrev. All
- this also applies to emxlibcm.dll etc.
-
-
- 10.3 emx.dll cannot be deleted, renamed or overwritten
- ------------------------------------------------------
-
- See the previous problem.
-
-
- 10.4 Error message `SYS1804: The system cannot find the file EMX.'
- ------------------------------------------------------------------
-
- You have not correctly set the LIBPATH statement of config.sys,
- therefore emx.dll could not be found.
-
-
- 10.5 Error message `rsx not found, DPMI not supported by emx'
- -------------------------------------------------------------
-
- The current version of emx cannot use DPMI. Therefore, the loader
- tried to use rsx instead, but couldn't find rsx. Remedy: install rsx
- or end the DPMI server (MS Windows).
-
-
- 10.6 Error message `emx.dll: Stack size too small...'
- -----------------------------------------------------
-
- You tried to run an old program (which assumes that emx.dll creates a
- stack object if the stack size is too small).
-
- Run emxstack as indicated by the error message to fix the stack size
- of the program. If you can't (because you don't have write permission
- for the file), type
-
- set emxopt=-I
-
- to make emx.dll ignore the problem. However, the program will
- probably crash due to insufficient stack size. Using the -I option is
- not recommended!
-
-
- 10.7 DOS message `Sector not found'
- -----------------------------------
-
- DOS seems to display that message if a file is opened twice (perhaps
- one handle for reading, one for writing). For instance, this happens
- when GCC runs out of temporary files. Look for files named like
- cca00002, ccz00002 etc. (the digits may vary) in your temporary
- directory and delete them.
-
-
- 11 emx messages
- ===============
-
-
- 11.1 emx messages (OS/2)
- ------------------------
-
- core dumped
-
- The program cannot continue due to a fatal error (exception). An
- image of the program's memory has been written to a file named
- `core'. Please keep that file in case the author of the program
- needs it for debugging.
-
- emx.dll: Stack size too small...
-
- You tried to run an old program (which assumes that emx.dll
- creates a stack object if the stack size is too small). You
- should run emxstack to fix the stack size.
-
- Invalid option in EMXOPT
-
- An option in the EMXOPT environement variable is not understood by
- emx.
-
- Invalid syscall function code
-
- The program run by emx has called an invalid system function.
- Most likely, you're using an emx.dll which is out of date.
-
- WARNING: emx 0.9a or later required
-
- The program requires emx.dll 0.9a or later. However, an older
- version of emx.dll is active. Make sure that the latest version
- of emx.dll is in a directory pointed to by the LIBPATH statement
- in your config.sys file. Use
-
- emxrev -p c:\config.sys
-
- to list all emx dynamic link libraries reachable by the LIBPATH
- statement of c:\config.sys (use the drive letter of your boot
- drive instead of c:). To simplify things, you should keep only
- one version of each DLL. Older programs work with newer emx DLLs,
- but not vice versa.
-
-
- 11.2 emx messages (DOS)
- -----------------------
-
- Abnormal program termination
-
- The program received the SIGABRT signal. The abort() function was
- called or SIGABRT was raised.
-
- Bad environment
-
- The program name could not be found in the environment segment or
- the environment segment is longer than 32768 bytes. This should
- not happen in practice.
-
- Cannot create swap file
-
- The swap file could not be created. Remedy: make sure the swap
- file can be created in the directory given by the EMXTMP (or TMP)
- environment variable. If EMXTMP and TMP are not set, emx will
- create the swap file in the root directory of the current drive.
-
- Cannot enable A20
-
- emx tried to enable address line A20 and failed. Remedy: contact
- the author.
-
- Cannot enable A20 via XMS
-
- emx tried to enable address line A20 by calling the XMS driver.
- Unfortunately, A20 couldn't be enabled. Remedy: unknown.
-
- Cannot open program file
-
- The program file given on the emx command line could not be found
- or opened. Remedy: type the correct file name. (This should not
- happen with bound programs.)
-
- Cannot read program file
-
- An error occured while reading the program file. Remedy: make
- sure the program file given on the emx command line is valid (this
- does not apply to bound programs). Maybe some other program
- accesses that file.
-
- core dumped
-
- The program cannot continue due to a fatal error (exception). An
- image of the program's memory has been written to a file named
- `core'. Please keep that file in case the author of the program
- needs it for debugging.
-
- DPMI not supported
-
- The current version of emx cannot use DPMI. Maybe some future
- version will do. Remedy: end the DPMI server (MS Windows) or use
- rsx.
-
- emx not found
-
- The emx loader (emxl.exe) failed to find emx.exe. Make sure that
- emx.exe is in a directory listed in the PATH environment variable.
- Alternatively, you can set the EMX environment variable to the
- complete path name of emx.exe.
-
- Exception ...
-
- The program run by emx tried to do something which is considered
- illegal by the processor or by emx. Remedy: report to the
- supplier of the program.
-
- Illegal moucall function
-
- The program run by emx has called an invalid system function.
- Remedy: report to the supplier of the program.
-
- Illegal syscall function
-
- The program run by emx has called an invalid system function.
- Remedy: report to the supplier of the program.
-
- Illegal viocall function
-
- The program run by emx has called an invalid system function.
- Remedy: report to the supplier of the program.
-
- Invalid arguments for DOS function xx
-
- The program run by emx has used invalid arguments for a system
- function. Remedy: report to the supplier of the program.
-
- Invalid emx option
-
- An option in EMXOPT or set by emxbind is not understood by emx.
- Remedy: check EMXOPT. Use emxbind -i to display the options set
- by emxbind.
-
- Invalid program file
-
- The program file given on the emx command line (or bound to emx)
- is corrupt. Remedy: reload the program from diskette. If this
- doesn't help you should contact the supplier of the program.
-
- Invalid special function code: xx
-
- The program run by emx has called an invalid system function.
- Remedy: report to the supplier of the program.
-
- Linear address space exhausted
-
- The program run by emx uses far too much memory. Remedy: complain
- to the author.
-
- Nonmaskable interrupt (NMI) at xxxx:yyyyyyyy
-
- A nonmaskable interrupt occured. Maybe this is due to a memory
- error. Remedy: if you are using DESQview, either set the
- protection level to 0 or use the WATCHDOG=0 option of QEMM-386.
- Otherwise, run a program for testing memory.
-
- Out of memory
-
- There isn't enough memory for running emx. Remedy: remove some
- drivers and/or resident programs. Or add memory to your machine.
-
- Out of stacks
-
- emx ran out of local stacks. Remedy: complain to the author.
-
- Out of memory or swap space
-
- emx cannot write to the swap file because the disk is full.
- Remedy: make sure there is enough space on the drive used for the
- swap file. Use the EMXTMP (or TMP) environment variable to tell
- emx where to create the swap file. If neither EMXTMP nor TMP is
- set, emx will create the swap file in the root directory of the
- current drive.
-
- Out of swap space
-
- emx cannot write to the swap file because the disk is full.
- Remedy: make sure there is enough space on the drive used for the
- swap file. Use the EMXTMP (or TMP) environment variable to tell
- emx where to create the swap file. If neither EMXTMP nor TMP is
- set, emx will create the swap file in the root directory of the
- current drive.
-
- Process terminated by SIGINT
-
- You have stopped the program by hitting Ctrl-C or Ctrl-Break.
-
- Process terminated by SIG...
-
- The program has been stopped due to a signal or exception.
- Usually, this indicates a fatal error in the program.
-
- Program aborted
-
- You have aborted the program by answering `Abort' after a critical
- error had occured.
-
- rsx not found, DPMI not supported by emx
-
- The current version of emx cannot use DPMI. Therefore, the loader
- tried to use rsx instead, but couldn't find rsx. Remedy: install
- rsx or end the DPMI server (MS Windows).
-
- Swap file I/O error
-
- emx couldn't read or write the swap file.
-
- This program does not run in DOS mode of OS/2
-
- DOS emulation of OS/2 doesn't support emx. Remedy: boot DOS or
- run the program in a OS/2 window
-
- This program requires an 80386 CPU
-
- You need an 80386DX, 80386SX, i486 or later CPU for running emx.
- Remedy: get another computer.
-
- This program requires DOS 3.0 or later
-
- If emx is bound with an application program into one executable,
- DOS 3.0 or later is required for execution.
-
- Too many processes
-
- emx supports up to 4 processes. You tried to start 5 or more
- processes.
-
- Unexpected interrupt
-
- This cannot happen. Remedy: report to the author.
-
- Unsupported VDISK.SYS version
-
- emx doesn't support the vdisk.sys device driver you are using.
- Remedy: remove VDISK.SYS or use a different version. emx should
- work with vdisk.sys 3.3 or later.
-
- Unsupported XMS version
-
- emx requires himem.sys 2.06 or later (older versions are too
- buggy). Remedy: get a newer himem.sys. If you are not using
- himem.sys, use the -O option of emx and tell the author whether
- this works or not.
-
- Unusable interrupt vector mappings set by VCPI server
-
- The configuration of the VCPI server (EMS driver) is illegal.
- Remedy: read the manual of the EMS driver.
-
- Use emxbind
-
- You tried to run emxl.exe, which doesn't make sense. emxl.exe is
- designed to be bound into an executable file by emxbind.
-
- Virtual mode not supported without VCPI
-
- A VCPI server is required to run emx if the CPU is in virtual
- mode. You will get this message if you're using an EMS driver
- (EMS emulator) which doesn't support VCPI or if you have disabled
- EMS. Remedy: remove the EMS driver, use an EMS driver which
- supports VCPI or enable EMS if it has been disabled (for instance,
- remove the NOEMS keyword from the command line of the EMS driver).
-
- Wrong emx version
-
- The version of emx.exe does not match the version the program was
- compiled for. Remedy: use the copy of emx.exe that comes with the
- program. If you are using different programs which need different
- versions of emx.exe, use the EMX environment variable to set the
- path name of the correct version of emx.exe before running a
- program which requires a version different from the default
- emx.exe. You can also use emxbind -u to put the correct version
- of emx.exe into the executable files.
-
-
- 12 Obtaining the complete emx package
- =====================================
-
- emx is available for anonymous ftp on
-
- ftp.uni-stuttgart.de [129.69.18.15]: /pub/systems/os2/emx-0.9a
- ftp-os2.cdrom.com: [192.153.46.2]: /os2/32bit/unix/emx09a
- src.doc.ic.ac.uk [146.169.2.1]: /pub/packages/os2/32bit/unix/emx09a
- ftp.informatik.tu-muenchen.de [131.159.0.198]:
- /pub/comp/os/os2/gnu/emx+gcc
-
-
- 13 The author of emx
- ====================
-
- The author of emx is
-
- Eberhard Mattes
- Teckstrasse 81 (TeX: Teckstra\ss e)
- D-71696 Moeglingen (TeX: M\"oglingen)
- Germany
-
- Internet: mattes@azu.informatik.uni-stuttgart.de (subject to change)
-
- No telephone calls please! It must be stressed that the author does
- not reply to letters if you don't include return postage
- (international postal reply coupon if you are outside Germany) and a
- self-addressed envelope.
-
- --------------------------- END OF EMXRT.DOC --------------------------------
-