DOS(1)

DOS(1)

xdm Home Page User Commands Index xdpyinfo


NAME
       dos,  xdos, dosexec, dosdebug - run MS-DOS and MS-DOS pro-
       grams under Linux

SYNOPSIS
       dos [ -ABCcdkVNXtsgKm234O ] [ -F file ] [ -L dexefile ]  [
       -u  confvar  ]  [  -D flags ] [ -M size ] [ -e size ] [ -x
       size ] [ -P file ] [ -o file ] [ 2> debugfile ] [ -I  con-
       fig-options ]

       dosexec [ -ABCcdkVNXtsgKm234O ] [ -F file ] [ -u confvar ]
       [ -D flags ] [ -M size ] [ -e size ] [ -x size ] [ -P file
       ] [ -o file ] [ 2> debugfile ] [ -I config-options ] dexe-
       file

       xtermdos [ -ABCcdkVNXtsgKm234O ] [ -F file ] [ -L dexefile
       ] [ -u confvar ] [ -D flags ] [ -M size ] [ -e size ] [ -x
       size ] [ -P file ] [ -o file ] [ 2> debugfile ] [ -I  con-
       fig-options ]

       dosdebug

       xdos  [  -ABCbdNtsK234O ] [ -F file ] [ -L dexefile ] [ -u
       confvar ] [ -D flags ] [ -M size ] [ -e size ] [ -x size ]
       [ -P file ] [ -o file ] [ 2> debugfile ]

DESCRIPTION
       dos  invokes the Linux dos emulator, also known as DOSEMU.
       debugfile is an optional file  into  which  all  debugging
       output will be redirected.

       xtermdos  brings  up  DOSEMU  in  an  xterm (or one of its
       cousins: color_xterm, ansi_xterm, or rxvt).  It  automati-
       cally detects the IBM VGA font, and the best xterm to run,
       and  then  runs  the  xterm  with  the  proper  parameters
       required to run DOSEMU.

       dosdebug  is  used  to control or debug an already running
       DOSEMU.

       xdos starts DOSEMU in it's own X window. This is the  same
       as dos -X

       dosexec  starts  DOSEMU  and executes a DEXE file. This is
       the same as dos -L

       Although this program is known as the DOS emulator, it  is
       actually  a  virtual  machine for MS-DOS, allowing DOS and
       programs written for DOS to operate in an environment sim-
       ilar  to  a standard IBM PC/AT or compatible with an Intel
       80x86 processor in real mode.  DOSEMU  provides  emulation
       of  such  services  as BIOS video, disk, keyboard, serial,
       and printer; CMOS memory for configuration information;  a
       real  time  clock;  memory  allocation through the XMS 3.0

       specification, EMS 4.0 and DPMI 0.9.

       Because DOSEMU is not really a DOS emulator, a copy of MS-
       DOS  3.3-7.00 is required.  (Future versions of MS-DOS may
       run, but have of course not been verified.  DR-DOS 6.0 has
       also been reported to work.)

       See the files QuickStart, ChangeLog, doc/announce, and the
       Makefile contained in the source distribution for informa-
       tion on how to configure, compile, and boot DOSEMU.

KERNEL REQUIREMENTS
       At  present,  you will need Linux 2.0.28 or above with the
       SYSV  IPC  option  (System  V  InterProcess  Communication
       facilities, see ipc(2)) compiled. SYSV IPC is an option in
       the configuration setup during a Linux kernel compile.

       Starting with dosemu version 0.64.3 full feature dosemu is
       the  default.  For details see doc/README.vm86plus.  For a
       low feature dosemu you need to  configure  with  --enable-
       novm86plus

       If  you  use  1.2.13,  please upgrade to the latest stable
       kernel.  At the time of  writing,  it  was  Linux  2.0.28,
       available with anonymous ftp at ftp.funet.fi in the direc-
       tory /pub/Linux/kernel/linux/v2.0/, or at various  mirrors
       all over the world.

OPTIONS
       -A     boot from floppy disk A (does not need to be a real
              floppy disk, see below)

       -B     boot from floppy disk B (does not need to be a real
              floppy disk, see below)

       -C     boot  from  hard disk C (does not need to be a real
              hard disk or even a msdos filesystem, see below)

       -c     use direct Console video (must be at  the  console,
              requires that dos is suid root)

       -d     detach  from  current  virtual  console  or tty and
              attach to the first free virtual console

       -V     use VGA specific video optimizations

       -k     use RAW console Keyboard (must be at the console)

       -F     Parse this config-file instead of  /etc/dosemu.conf
              (you need to run as root for this)

       -u     set a user configuation variable. An u_ is prefixed
              to the name to avoid name  clashes.  This  variable
              then  can be checked in /etc/dosemu.conf to do some
              special configuration.

       -L     Load and start a DEXE file  (special  preconfigured
              bootable  hdimage  containing just one DOS applica-
              tion)

       -I     Parse the string behind -I with the same syntax  as
              /etc/dosemu.conf or .dosrc such as
                 dos ... -I 'video { mda }'
              This  is  usefull  if  you  just want to override a
              given configuration parameter temporary.  You  also
              may  have  a  generic  configuration by executing a
              script such as
                 dos ... -I "`myconf.sh`"
              where myconf.sh is a script writing the  configura-
              tion to stdout. If you have an alternate configura-
              tion file besides .dosrc,
                 dos ... -I "`cat myother.conf`"
              will do the job. Note however,  that  you  have  to
              quote   the  parameter  behind  -I  because  it  is
              expected to be one argument.

       -D     specify which Debugging messages to allow/suppress

       -O     use stderr for output of Debugging messages

       -o     use this file for output of Debugging messages

       -M     set base memory to SIZE Kilobytes

       -m     enable internal mouse-support

       -P     copy debugging output to FILE

       -2,3,4 choose 286, 386,  or  486  processor  (BE  CAREFUL!
              DOSEMU  is not yet 32-bit clean, so if your program
              detects a 386 or 486 processor and uses 32-bit reg-
              isters, it might be confused by BIOS functions.  If
              you think this is happening, use -2 to force DOSEMU
              into 286-mode.)

HARD DISKS
       DOSEMU  supports  four  methods of supplying DOS with hard
       disks:

       1.     a virtual disk file residing on a Linux  filesystem
              which emulates a hard drive.

       2.     direct  access to an MS-DOS partition through a raw
              disk device (i.e. /dev/hda, /dev/hdb, /dev/sdX).

       3.     direct access to an MS-DOS partition through single
              partition   access   (i.e.   /dev/hda1,  /dev/hdb2,
              /dev/sdxx). You need to run the program mkpartition
              to enable DOSEMU to access your DOS-partitions with
              SPA.

       4.     access to a Linux filesystem as a  "network"  drive
              using  the driver emufs.sys supplied with DOSEMU in
              commands/emufs.sys.

       This is explained more thoroughly in QuickStart.

       Configuration of DOSEMU's hard disk resources is  done  by
       editing  /etc/dosemu.conf before running DOSEMU.  You find
       an example in etc/config.dist

FLOPPY DISKS
       DOSEMU supports two methods of supplying DOS  with  floppy
       disks:

       1.     a  virtual disk file residing on a Linux filesystem
              which emulates a floppy drive

       2.     direct access to a physical floppy  through  a  raw
              disk device (i.e. /dev/fd0, /dev/fd1).

       This is also explained more thoroughly in QuickStart.

       Configuration of DOSEMU's floppy disk resources is done by
       editing the /etc/dosemu.conf before running DOSEMU.

VIDEO
       DOSEMU may be run on any tty device.   However,  increased
       performance  and functionality may be had by taking advan-
       tage of special features of the Linux console.  Those run-
       ning DOSEMU on the console may wish to investigate the -c,
       -k, and -V switches, explained more thoroughly  in  Quick-
       Start.  There is also some brief documentation in the file
       etc/config.dist, which can be copied  to  /etc/dosemu.conf
       and edited for your needs.

       In  brief, proper use of the console device and the corre-
       sponding switches allows the user to view a DOS program in
       its  original  color  and  font, with none of the periodic
       screen update problems with the generic tty output code.

KEYBOARD
       Those using DOSEMU on the Linux console may also  wish  to
       use  the  RAW  keyboard  support.  This mode of operation,
       selected by the -k switch, provides the user  with  access
       to the entire keyboard accessible under DOS.  Any combina-
       tion of ALT, CTRL, and SHIFT keys may be used to  generate
       the odd keycodes expected by many DOS programs.

PRINTING
       The  BIOS  printer  services are emulated through standard
       UNIX file I/O to a set of files,  dosemulpt1,  dosemulpt2,
       and  dosemulpt3,  corresponding to the DOS printer devices
       LPT1, LPT2, and LPT3.  All characters sent to LPTx will be
       redirected  to  the  file dosemulptx in the current direc-
       tory.

       WARNING!  DOSEMU does not keep the file  buffers  flushed;
       therefore, the state of these files is undefined until you
       actually exit the DOS emulator.  Please excuse the  incon-
       venience.

DEBUG MESSAGES
       Debug  messages  can  be  controlled either at the command
       line or in the configuration file.  Take  a  look  at  the
       documentation  inside  the  config.dist file included with
       DOSEMU  in  the  examples  subdirectory,   for   debugging
       options.   At  the  command  line,  you  may specify which
       classes of messages you wish dos to allow. The  syntax  of
       this  is DOSEMU takes an option "-D FLAGS", where FLAGS is
       a string of letters which specify which options  to  print
       or  suppress.   DOSEMU  parses  this  string  from left to
       right.

          +   turns the following options on (initial state)
          -   turns the following options off
          a   turns all the options on/off, depending on flag
          0   turns all options off
          1   turns all options on
          #   where # is a letter from the valid class list,
              turns that option off/on depending on the
              +/- state.

       Message Classes:

        d  disk            R  disk read        W  disk write
        D  int 21h         C  cdrom            v  video
        X  X support       k  keyboard         i  port I/O
        s  serial          m  mouse            #  default ints
        p  printer         g  general          c  configuration
        w  warning         h  hardware         I  IPC
        E  EMS             x  XMS              M  DPMI
        n  IPX network     P  Pkt-driver       S  SOUND

        r  PIC             T  IO-tracing

       Any debugging classes following a + character, up to  a  -
       character,  will be turned on (non-suppressed).  Any after
       a - character, up to a + character,  will  be  suppressed.
       The  character a acts like a string of all possible debug-
       ging classes, so +a turns on all debugging  messages,  and
       -a turns off all debugging messages.  The characters 0 and
       1 are also special: 0 turns off  all  debugging  messages,
       and 1 turns on all debugging messages.

       There  is  an  assumed  +  at  the  beginning of the FLAGS
       string.  Some classes, such as error, can  not  be  turned
       off.   In case you didn't redirect stderr, nearly all out-
       put to stderr goes to /dev/null.

       Some examples:
         "-D+a-v" or "-D1-v"  : all messages but video
         "-D+kd"              : default + keyboard and disk
         "-D0+RW"             : only disk READ and WRITE

       Any option letter can occur in any place.  Even  pointless
       combinations,  such  as -D01-a-1+0, will be parsed without
       error, so be careful.  Some options are  set  by  default,
       some are clear. This is subject to my whim, and will prob-
       ably change between releases.  You can  ensure  which  are
       set by always explicitly specifying them.

SPECIAL KEYS
       In  RAW keyboard mode (see the -k option), DOSEMU responds
       to certain key sequences as control functions.
              ctrl-scrlock   =  show 0x32 int vectors
              alt-scrlock    =  show the vm86 registers
              rshift-scrlock =  generate an int8 (timer)
              lshift-scrlock =  generate an int9 (keyboard)
              ctrl-break     =  ctrl-break as under DOS.
              ctrl-alt-pgup  =  reboot DOS. Don't trust this!
              ctrl-alt-pgdn  =  exit the emulator

       Use  <LEFT CTRL>-<LEFT ALT>-<Function key>  to  switch  to
       another virtual console.

MEMORY
       The   XMS   memory   support   in   DOSEMU   conforms   to
       Lotus/Intel/Microsoft/AST  extended  memory  specification
       3.0.  I have implemented all XMS functions except function
       0x12 (Reallocate Upper Memory Block).

       While I have  implemented  the  UMB  functions,  they  are
       extremely  stupid and will almost always act suboptimally.

       The next release of DOSEMU should have saner UMB  support.

       DOSEMU  0.66 also supports EMS 4.0 and implements DPMI 0.9
       (1.0 partially).

LOGGING
       DOSEMU is able to log all use with  email  or  syslogd(8).
       The  file  /etc/dosemu.loglevel contains information about
       the logging facilities. Read doc/README.loglevel for  more
       details.

AUTHOR
       DOSEMU  (comprised  of  the  files  dos and libdosemu ) is
       based on version 0.4 of the original  program  written  by
       Matthias Lautner (no current address that I know of).

       Robert  Sanders lt;gt8134b@prism.gatech.edu was maintaining
       and enhancing the incarnation of DOSEMU  with  which  this
       man  page was originally distributed. During about 4 years
       James B. MacLean lt;macleajb@ednet.ns.ca was  the  restless
       leader  of  the dosemu team, implementation of DPMI (which
       made Windows-3.1, dos4gw, djgpp, e.t.c  running)  happened
       during  his  'governement' and brought the project near to
       Beta-state.  Now Hans Lermen lt;lermen@fgan.de is maintain-
       ing this funny software.

BUGS
       There are too many to count, much less list.

       Please  report  bugs to the author.  I'd also like to hear
       about which programs DO work.  Just send me a note detail-
       ing  what  program  (and what version) you are using, what
       works and what doesn't, etc.

AVAILABILITY
       The most recent public version of  DOSEMU  can  be  ftp'ed
       from  tsx-11.mit.edu in the /pub/linux/ALPHA/dosemu direc-
       tory.  If you want to keep up on  private  developer  pre-
       releases,  join the DOSEMU developer team - even just good
       detailed debug reports are all you need!

FILES
       /usr/bin/dos
              The invoker program.
       /usr/bin/xtermdos
              The xterm wrapper.
       /usr/bin/xdos
              The X version.

       /usr/lib/libdosemu
              The actual emulator code as a shared library  (when
              DOSEMU is compiled as a.out).
       /var/run/dosemu.*
              Various  files  used  by  DOSEMU including debugger
              pipes.

       /var/lib/dosemu/*
              Various files used by DOSEMU  including  diskimages
              and disk config files.
       /etc/dosemu.conf
              Main configuration file for DOSEMU.
       /etc/dosemu.users
              Contains  the  usernames  that  are  allowed to use
              DOSEMU.
       /etc/dosemu.loglevel
              Logging configuration file.

       doc/DPR
              Dosemu development team: Who is doing which part of
              the DOSEMU project?
       doc/DANG
              To help you hack DOSEMU code.
       doc/README.*
              Various documentation.
       QuickStart
              To set up DOSEMU quickly.
       ChangeLog
              Changes in DOSEMU since the last release.
       MSDOS mailing list
              For more information, mail to
       linux-msdos@vger.rutgers.edu

xdm Home Page User Commands Index xdpyinfo