Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
dosdebug(1)
Edit
PageHistory
Diff
Info
LikePages
DOSEMU.BIN !!!DOSEMU.BIN NAME SYNOPSIS DESCRIPTION KERNEL REQUIREMENTS OPTIONS HARD DISKS FLOPPY DISKS VIDEO KEYBOARD PRINTING DEBUG MESSAGES SPECIAL KEYS MEMORY AUTHOR BUGS AVAILABILITY FILES SEE ALSO ---- !!NAME dosemu.bin, dosdebug - run DOS and DOS programs under Linux !!SYNOPSIS __dosemu.bin__ [[ __-ABCcdkVNXtsgKm234OU__ ] [[ __-h__ ''level'' ] [[ __-F__ ''file'' ] [[ __--Fusers__ ''file'' ] [[ __--Flibdir__ ''directory'' ] [[ __--Fimagedir__ ''directory'' ] [[ __-f__ ''file'' ] [[ __-L__ ''dexefile'' ] [[ __-u__ ''confvar'' ] [[ __-D__ ''flags'' ] [[ __-M__ ''size'' ] [[ __-e__ ''size'' ] [[ __-x__ ''size'' ] [[ __-P__ ''file'' ] [[ __-o__ ''file'' ] [[ 2''debugfile'' ] [[ __-I__ ''config-options'' ] [[ __-U__ ''inpipe[[:outpipe]'' ] __dosdebug__ !!DESCRIPTION __dosemu.bin__ is the binary wrapped by the script __dosemu__ (1) which invokes the Linux dos emulator, also known as __DOSEMU__.'' debugfile'' is an optional file into which all debugging output will be redirected. __dosdebug__ is used to control or debug an already running __DOSEMU__. Although this program is known as the DOS ''emulator,'' it is actually a virtual machine for DOS, allowing DOS and programs written for DOS to operate in an environment similar 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 !FreeDos is required, which now is preconfigured and part of the official DOSEMU binary distribution. In addition any currently available proprietary DOS (such as MS-DOS, PC-DOS, DR-DOS) can be booted, when properly configured. !!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. !!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-script instead of DOSEMU_LIB_DIR/global.conf (you need to run as root on suid DOSEMU for this) ''--Fusers'' Bypass /etc/dosemu.users and take this file instead (only accepted when __dosemu.bin__ is ''not'' suid-root). ''--Flibdir'' Bypass the default DOSEMU_LIB_DIR (as maybe defined in /etc/dosemu.users) and use this directory instead (only accepted when __dosemu.bin__ is ''not'' suid-root). ''--Fimagedir'' Bypass the default directory for bootdirectory and hdimages (DOSEMU_LIB_DIR) and use this directory instead (only accepted when __dosemu.bin__ is ''not'' suid-root). ''-f'' Parse this config-file instead of .dosemurc ''-u'' set a user configuration variable. An __u___ is prefixed to the name to avoid name clashes. This variable then can be checked in dosemu.conf or DOSEMU_LIB_DIR/global.conf to do some special configuration. ''-L'' Load and start a DEXE file (special preconfigured bootable hdimage containing just one DOS application) ''-I'' Parse the string behind ''-I'' with the same syntax as global.conf or .dosemurc 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 where ''myconf.sh'' is a script writing the configuration to stdout. If you have an alternate configuration file besides .dosrc, dos ... -I 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 ''-h'' dump configuration to stderr and exit (implicit sets -D+c). This is useful for debugging configuration files, you should use ''-O'' too to direct the +c type messages to stderr. `level' can be 0, 1 or 2 and controls the amount of configuration parser debug output: No parser debug (0), parser loop debug (1), if_else_endif debug (2). ''-H'' specify the dosdebug support flags, currently only `1' is is reasonable. with ''-H1'' you force dosemu to wait until the dosdebug terminal has connected. Hence to debug a DOS session from the very beginning you first start dosemu with -H1 and then start dosdebug. DOSEMU will then lock before jumping into the loaded bootsector waiting for dosdebug to connect. Once connected you are in `stopped' state and can set breakpoints or singlestep through the bootstrap code. ''-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 registers, it might be confused by BIOS functions. If you think this is happening, use -2 to force __DOSEMU__ into 286-mode.) ''-U'' define inpipe and outpipe for asynchronous control of __DOSEMU__ from an other process. The format is (whithout white spaces between) inpipe:outpipe where `:outpipe' can be omitted. In the latter case no feedback from __DOSEMU__ can be expected. For security reasons __DOSEMU__ does not create the named pipes itself, so the user is responsible to set the permissions of the pipes correctly. Note that when using this options, the foreign process can control your __DOSEMU__ session (such as entering keystrokes). This option should therefor only used by frontends (such as kdos), which first create the proper named pipes and then launch __DOSEMU.__ A special control command ( ''ack on'' ) can be used to force __DOSEMU__ returning handshake taggs via `outpipe' such that the frontend knows when the control command has started or finished and wether it was successful. The format of this tagging is SYN: ACK: code=n where ''n'' is 0 for success. A tiny control terminal, which can serve as example, is the supplied ''dosctrl'' programm. It takes just the two pipes as arguments and you may then enter control commands, which of them `help' is the most important one;-) Note that ''dosctrl'' does not launch __DOSEMU,__ you have to do it yourself. !!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 a DOS partition through a raw disk device (i.e. /dev/hda, /dev/hdb, /dev/sdX). 3. direct access to an 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 DOSEMU__ in commands/emufs.sys. This is explained more thoroughly in __!QuickStart.__ Configuration of __DOSEMU's__ hard disk resources is done by editing __dosemu.conf__ before running __DOSEMU__. Look at doc/README.txt. !!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 __dosemu.conf__ before running __DOSEMU__. !!VIDEO __DOSEMU__ may be run on any tty device. However, increased performance and functionality may be had by taking advantage of special features of the Linux console. Those running __DOSEMU__ on the console may wish to investigate the ''-c, -k,'' and ''-V'' switches, explained more thoroughly in __!QuickStart.__ There is also some very brief documentation in the file dosemu.conf, which can be edited for your needs. In brief, proper use of the console device and the corresponding 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 combination 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 directory. __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 inconvenience. !!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 __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-9 sets the debug level, the higher, the more output # 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 Z PCI-BIOS A ASPI driver Q mapping driver 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 debugging classes, so ''+a'' turns on all debugging messages, and ''-a'' turns off all debugging messages. The characters ''0'' and ''1-9'' are also special: ''0'' turns off all debugging messages, and ''1-9'' turns on all debugging messages, but set the debug level too. 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 output to stderr goes to __/dev/null.__ Some examples: 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 probably 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 !!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__ also supports EMS 4.0 and implements DPMI 0.9 (1.0 partially). !!AUTHOR __DOSEMU__ (comprised of the files __dosemu.bin__ and __dosemu__ ) is based on version 0.4 of the original program written by Matthias Lautner (no current address that I know of). Robert Sanders DOSEMU__ with which this man page was originally distributed. During about 4 years James B. !MacLean __ !!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 detailing 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 ftp.dosemu.org in the /pub/dosemu directory, a fast mirror for this is ibiblio.unc.edu:/pub/Linux/system/emulators/dosemu/. 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/dosemu.bin'' The binary ''/usr/bin/dosemu'' The wrapper script, its recommended not to invoke dosemu.bin directly. ''/usr/bin/xdosemu'' Same, but invoking DOS in an X window. ''$HOME/.dosemu'' Per user __DOSEMU__ local directory. This will be created silently, if not existing. ''$HOME/.dosemu/tmp'' All temporary file creation happens here, we do not use /tmp anymore. ''/var/run/dosemu.*'' or ''$HOME/.dosemu/run'' Various files used by __DOSEMU__ including debugger pipes. ''$HOME/dosemu/conf'' ''$HOME/dosemu/bin'' Various files used by the __DOSEMU__ per-user instance. This directory also holds the global,conf configuration script ''global.conf'' for __DOSEMU__ which then includes ''dosemu.conf'' ''$HOME/dosemu/freedos'' Bootdirectory containig the !FreeDos part. ''dosemu.conf'' Main configuration file for __DOSEMU__. which is included by ''global.conf'' ''/etc/dosemu.users'' or ''/etc/dosemu/dosemu.users'' For suid-root running binaries: Defines the access rights to __DOSEMU__ on a per user basis and sets some vital configuration. This is the only fix-location configuration file, __DOSEMU__ first looks for ''/etc/dosemu.users'' and, if this is not found, for ''/etc/dosemu/dosemu.users .'' Via the keyword ''default_lib_dir='' in ''dosemu.users'' the systemwide ''DOSEMU_LIB_DIR'' directory may be moved elsewere. For more information see ''./doc/README.txt'' ''/etc/dosemu/dos.ini'' IPX 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. ''README.bindist'' Information on how to use the DOSEMU/!FreeDos ready-to-use binary distribution. ''README.distributors'' Informations for Linux distributors on how to package systemwide installations of __DOSEMU.__ ''MSDOS mailing list'' For more information, mail to linux-msdos@vger.rutgers.edu !!SEE ALSO dosemu(1), mkfatimage16(1) ----
One page links to
dosdebug(1)
:
Man1d
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.