home *** CD-ROM | disk | FTP | other *** search
-
- ΓòÉΓòÉΓòÉ 1. 1 Introduction to the User's Guide to the emx Runtime ΓòÉΓòÉΓòÉ
-
- User's Guide to the emx Runtime
-
- Copyright (c) 1990-1995 by Eberhard Mattes
-
- 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).
-
- Hardware requirements
- Files included in the emx runtime package
-
-
- ΓòÉΓòÉΓòÉ 1.1. 1.1 Hardware requirements ΓòÉΓòÉΓòÉ
-
- emx requires an 80386 CPU (80386DX, 80386SX, i486, or later)
-
-
- ΓòÉΓòÉΓòÉ 1.2. 1.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
-
-
- ΓòÉΓòÉΓòÉ 2. 2 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.
-
-
- ΓòÉΓòÉΓòÉ 3. 3 Installing the emx runtime package under OS/2 ΓòÉΓòÉΓòÉ
-
- Summary for impatient OS/2 users
- Detailed instructions for OS/2 users
-
-
- ΓòÉΓòÉΓòÉ 3.1. 3.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
-
-
- ΓòÉΓòÉΓòÉ 3.2. 3.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!
-
-
- ΓòÉΓòÉΓòÉ 4. 4 Installing the emx runtime package under DOS ΓòÉΓòÉΓòÉ
-
- Summary for impatient DOS users
- Detailed instructions for DOS users
-
-
- ΓòÉΓòÉΓòÉ 4.1. 4.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
-
-
- ΓòÉΓòÉΓòÉ 4.2. 4.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 6.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.
-
-
- ΓòÉΓòÉΓòÉ 5. 5 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
-
- Environment variables (DOS)
-
-
- ΓòÉΓòÉΓòÉ 5.1. 5.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
-
-
- ΓòÉΓòÉΓòÉ 6. 6 DOS Notes ΓòÉΓòÉΓòÉ
-
- General notes
- Emergency exit
- Using rsx instead of emx
-
-
- ΓòÉΓòÉΓòÉ 6.1. 6.1 General notes ΓòÉΓòÉΓòÉ
-
- o emx requires DOS 3.0 or later
-
- o emx does not support DPMI
-
- o emx does not support DESQview without VCPI (use QEMM-386 with DESQview)
-
- o 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.
-
- o emx supports VCPI
-
- o emx supports XMS. Do not use emx with himem.sys 2.06 or earlier.
-
- o 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.
-
- o emx supports vdisk.sys 3.3 and later and most other RAM disk drivers
-
- o 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.
-
- o 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.
-
-
- ΓòÉΓòÉΓòÉ 6.2. 6.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.
-
-
- ΓòÉΓòÉΓòÉ 6.3. 6.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.
-
-
- ΓòÉΓòÉΓòÉ 7. 7 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
-
- emx options (OS/2)
- emx options (DOS)
-
-
- ΓòÉΓòÉΓòÉ 7.1. 7.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
-
-
- ΓòÉΓòÉΓòÉ 7.2. 7.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.
-
-
- ΓòÉΓòÉΓòÉ 8. 8 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.
-
- -ssize
-
- Set the stack size. For each file, the stack size is set to size KByte.
-
- -usize
-
- 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
-
-
- ΓòÉΓòÉΓòÉ 9. 9 Troubleshooting ΓòÉΓòÉΓòÉ
-
- This section shows how to solve common problems involving the emx runtime.
-
- Warning message `WARNING: emx 0.9a or later required'
- unzip.exe says `cannot create emx/dll/emx.dll'
- emx.dll cannot be deleted, renamed or overwritten
- Error message `SYS1804: The system cannot find the file EMX.'
- Error message `rsx not found, DPMI not supported by emx'
- Error message `emx.dll: Stack size too small...'
- DOS message `Sector not found'
-
-
- ΓòÉΓòÉΓòÉ 9.1. 9.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.
-
-
- ΓòÉΓòÉΓòÉ 9.2. 9.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.
-
-
- ΓòÉΓòÉΓòÉ 9.3. 9.3 emx.dll cannot be deleted, renamed or overwritten ΓòÉΓòÉΓòÉ
-
- See the previous problem.
-
-
- ΓòÉΓòÉΓòÉ 9.4. 9.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.
-
-
- ΓòÉΓòÉΓòÉ 9.5. 9.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).
-
-
- ΓòÉΓòÉΓòÉ 9.6. 9.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!
-
-
- ΓòÉΓòÉΓòÉ 9.7. 9.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.
-
-
- ΓòÉΓòÉΓòÉ 10. 10 emx messages ΓòÉΓòÉΓòÉ
-
- emx messages (OS/2)
- emx messages (DOS)
-
-
- ΓòÉΓòÉΓòÉ 10.1. 10.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.
-
-
- ΓòÉΓòÉΓòÉ 10.2. 10.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.
-
-
- ΓòÉΓòÉΓòÉ 11. 11 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
-
-
- ΓòÉΓòÉΓòÉ 12. 12 The author of emx ΓòÉΓòÉΓòÉ
-
- The author of emx is
-
- Eberhard Mattes
- Teckstraсe 81
- D-71696 MФglingen
- 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