summaryrefslogtreecommitdiffstats
path: root/usr.bin/doscmd/doscmd.1
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1997-08-09 02:07:03 +0000
committerdyson <dyson@FreeBSD.org>1997-08-09 02:07:03 +0000
commitde2fd5fcace2e925507675099c75d21220242f19 (patch)
tree55436ddee6a09ea0957f61ab1b2d1ac17512fd49 /usr.bin/doscmd/doscmd.1
parenta0a99cd919a18ace8d3dddd70143f9d552ffaace (diff)
downloadFreeBSD-src-de2fd5fcace2e925507675099c75d21220242f19.zip
FreeBSD-src-de2fd5fcace2e925507675099c75d21220242f19.tar.gz
Commit the manpage for doscmd.
Submitted by: Jonathon Lemon <jlemon@americantv.com> Obtained from: BSDI
Diffstat (limited to 'usr.bin/doscmd/doscmd.1')
-rw-r--r--usr.bin/doscmd/doscmd.1705
1 files changed, 705 insertions, 0 deletions
diff --git a/usr.bin/doscmd/doscmd.1 b/usr.bin/doscmd/doscmd.1
new file mode 100644
index 0000000..baff6d5
--- /dev/null
+++ b/usr.bin/doscmd/doscmd.1
@@ -0,0 +1,705 @@
+.\"
+.\" Copyright (c) 1992, 1993, 1996
+.\" Berkeley Software Design, Inc. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by Berkeley Software
+.\" Design, Inc.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY Berkeley Software Design, Inc. ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL Berkeley Software Design, Inc. BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" BSDI doscmd.1,v 2.3 1996/04/08 19:32:29 bostic Exp
+.\"
+.Dd January 30, 1995
+.Dt DOSCMD 1
+.Os
+.Sh NAME
+.Nm doscmd
+.Nd run a subset of real-mode DOS programs
+.Sh SYNOPSIS
+.Nm doscmd
+.Fl 23AbDEfHIMOPRrtVvxz
+.Fl c Ar file
+.Fl d Ar file
+.Fl i Ar port Ns Xo
+.Op : Ns Ar cnt
+.Xc
+.Fl o Ar port Ns Xo
+.Op : Ns Ar cnt
+.Xc
+.Fl S Ar int
+.Fl U Ar int
+.Op Ar cmd [args ...]
+.Sh DESCRIPTION
+.Nm Doscmd
+can either emulate a subset of DOS and run the
+single command
+.Ar cmd
+.Ar args ,
+or it can be used to emulate a PC and boot DOS,
+which allows it to run a larger variety of DOS applications.
+It should be noted that MS DOS 6.2 and higher appear
+to cause difficulties for
+.Nm doscmd.
+To boot DOS, either provide the
+.Fl b
+flag or omit the
+.Ar cmd
+argument.
+If
+.Fl b
+is specified,
+.Ar cmd
+and
+.Ar args
+are ignored.
+.Pp
+Although
+.Nm doscmd
+only provides a subset of DOS, it is sufficient to run a variety of
+programs, including, but not limited to, compilers, assemblers and
+linker-loaders.
+.Pp
+The various flags available to
+.Nm doscmd
+are:
+.Bl -tag -width indent
+.It Fl 2
+Enable debugging traces of every trap to the
+.Nm doscmd
+emulator from the DOS program.
+Note that some traps are handled in the kernel and hence will not
+be traced.
+.It Fl 3
+Enable debugging of several lower level functions, such
+as changing of interrupt vectors and initializing paths to logical drives.
+.\"
+.\"
+.\"
+.It Fl A
+Enable tracing of all interrupts that pass into the emulator.
+This is the same as using the
+.Fl S
+option will all 256 possible interrupt values.
+.\"
+.\"
+.\"
+.It Fl b
+Attempt to boot DOS rather than emulate it.
+.\"
+.\"
+.\"
+.It Fl c Ar file
+Capture all output directed at the screen into
+.Ar file .
+Note that direct screen writes will not be captured.
+.\"
+.\"
+.\"
+.It Fl C
+List MS-DOS calls emulated and their return values.
+.\"
+.\"
+.\"
+.It Fl D
+Enable debugging of the disk and file operations.
+.\"
+.\"
+.\"
+.It Fl d Ar file
+Send the debug output to
+.Ar file
+instead of stderr.
+.\"
+.\"
+.\"
+.It Fl E
+Enable debugging of the exec routines.
+.\"
+.\"
+.\"
+.It Fl f
+Use
+.Xr fork 2
+for spawned processes rather than running them in the
+current memory space.
+.\"
+.\"
+.\"
+.It Fl H
+Enable tracing of half implemented calls.
+.\"
+.\"
+.\"
+.It Fl I
+Enable tracing of all interrupts. Almost the same as
+.Fl A
+except a few less traces are turned on.
+.\"
+.\"
+.\"
+.It Fl i Ar port Ns Xo
+.Op : Ns Ar cnt
+.Xc
+Enable tracing of all inputs requested from the io
+.Ar port .
+If
+.Ar cnt
+is present, trace from
+.Ar port
+to
+.Ar port+cnt Ns No -1 .
+.\"
+.\"
+.\"
+.It Fl M
+Enable debugging of the memory operations.
+.\"
+.\"
+.\"
+.It Fl O
+Direct the debugging output to stdout rather than stderr.
+.\"
+.\"
+.\"
+.It Fl o Ar port Ns Xo
+.Op : Ns Ar cnt
+.Xc
+Enable tracing of all outputs requested from the io
+.Ar port .
+If
+.Ar cnt
+is present, trace from
+.Ar port
+to
+.Ar port+cnt Ns No -1 .
+.\"
+.\"
+.\"
+.It Fl P
+Enable tracing of io port calls (such as
+.Li inb ,
+.Li outb ,
+etc).
+.\"
+.\"
+.\"
+.It Fl R
+Enable debugging of the file redirect code.
+.\"
+.\"
+.\"
+.It Fl r
+Use the raw keyboard and display. Pressing <CTRL-ALT-DEL> will
+cause doscmd to exit. This allows use of VGA graphics.
+.\"
+.\"
+.\"
+.It Fl S Ar int
+Enable tracing of the interrupt
+.Ar int .
+.\"
+.\"
+.\"
+.It Fl t
+Attempt to do instruction level tracing.
+Some instructions confuse the trace.
+Pressing
+.Li <CTRL-ALT-T>
+attempts to toggle the trace mode on and off.
+.\"
+.\"
+.\"
+.It Fl U Ar int
+Disable tracing of the interrupt
+.Ar int .
+Useful after
+.Fl A
+or
+.Fl I .
+.\"
+.\"
+.\"
+.It Fl V
+Include register dumps when reporting unknown interrupts.
+.\"
+.\"
+.\"
+.It Fl v
+Same as
+.Fl AH
+.\"
+.\"
+.\"
+.It Fl x
+Open an X11 window to display output. This enables a
+variety interrupts not available otherwise. This
+can be used with or without
+.Fl b .
+.\"
+.\"
+.\"
+.It Fl z
+Cause
+.Nm doscmd
+to pause just prior to jumping to the DOS program.
+Very little use except for developing
+.Nm doscmd .
+.El
+.Pp
+When starting up,
+.Nm doscmd
+attempts to read a configuration file. First the file
+.Cm .doscmdrc
+in the current directory. If not found there, the
+.Cm $HOME
+directory is searched. If still not found, the file
+.Cm /etc/doscmdrc
+is used.
+.Pp
+In the configuration file, a comment is started with the \fB#\fP character.
+Blank lines are ignored.
+Non empty lines either are environment variables
+or commands which configure devices.
+Any line which has an \fB=\fP before any white space is considered to be
+an environment variable assignment and is added to the DOS environment.
+The rest of the lines are one the of the following
+.Bl -tag -width XXXXX
+.\"
+.\"
+.\"
+.It Cm boot Op Cm A: | C:
+Set the device to boot from.
+By default
+.Cm A:
+is first tried, it if is defined, and if that fails,
+.Cm C:
+is tried.
+.\"
+.\"
+.\"
+.It Cm assign Xo
+.Op Cm A-Z :
+.Op Fl ro
+.Ar path
+.Xc
+Assigns the
+.Nm BSD/OS
+directory
+.Ar path
+to be assigned as the specified drive. If the
+.Fl ro
+flag is specified, it is a read only file system.
+These assignments will not take place when booting DOS until the
+.Pa /usr/dos/instbsdi.exe
+binary is run.
+.\"
+.\"
+.\"
+.It Cm assign Xo
+.Cm lpt Ns Op Cm 0-4 :
+.Op Cm direct
+.Ar path
+.Op Ar timeout
+.Xc
+Attempt to assign the specified printer to
+.Ar path .
+If
+.Ar timeout
+is specified then use it as the length of time for no
+activity (in seconds) to indicate that the printer
+should be flushed. The default is 30 seconds.
+The
+.Cm direct
+option should be set when
+.Ar path
+refers to a real printer.
+.\"
+.\"
+.\"
+.It Cm assign Xo
+.Op Cm A: | B:
+.Op Fl ro
+.Ar path
+.Ar density
+.Xc
+.It Cm assign Xo
+.Cm flop Ns Op Cm 01
+.Op Fl ro
+.Ar path
+.Ar density
+.Xc
+Assign the file
+.Ar path
+to be used as either the next available floppy or
+to the specified floppy.
+If
+.Fl ro
+is specified the floppy will be read only.
+The
+.Ar density
+may be one of:
+.sp
+.Bl -tag -compact -width 1440x
+.It 180
+9 head 40 track single sided floppy
+.It 360
+9 head 40 track double sided floppy
+.It 720
+9 head 80 track double sided floppy
+.It 1200
+15 head 80 track double sided floppy
+.It 1440
+18 head 80 track double sided floppy
+.It 2880
+36 head 80 track double sided floppy
+.El
+.\"
+.\"
+.\"
+.It Cm assign Xo
+.Op Cm C-Z :
+.Op Fl ro
+.Ar path
+.Op Ar type | cyl head sec
+.Op Ar fdisk_tab
+.Xc
+.It Cm assign Xo
+.Cm hard Ns Op Cm 01
+.Op Fl ro
+.Ar path
+.Op Ar type | cyl head sec
+.Op Ar fdisk_tab
+.Xc
+Assign the file
+.Ar path
+to be used as either the next available hard disk or
+to the specified hard disk.
+A disk's geometry can either be directly specified with
+.Ar cyl
+being the number of cylinders,
+.Ar head
+the number of heads and
+.Ar sec
+the number of sectors per track,
+or it can be one of the standard types specified by
+.Ar type
+(see below).
+The option
+.Ar fdisk_tab
+argument specifies file to use as the first sector
+of this disk. This can be useful for inserting a
+false fdisk table when
+.Ar path
+only refers to part of a disk.
+.\"
+.\"
+.\"
+.It Cm assign Xo
+.Cm com Ns Op Cm 1-4 :
+.Ar path
+.Ar port
+.Ar irq
+.Xc
+Assign the tty or pty specified by
+.Ar path
+to be used as the specified com port.
+It's base address will emulated at
+.Ar port
+at interrupt specified by
+.Ar irq .
+This code is lightly tested and may not suit all needs.
+.\"
+.\"
+.\"
+.It Cm "setver command version"
+Cause doscmd, when emulating DOS, to report
+.Cm version
+as the version number of DOS when called from the program named
+.Cm command .
+The format of
+.Cm version
+is the same as of the
+.Cm MS_VERSION
+variable described below.
+.El
+.Pp
+If not already assigned,
+.Cm C:
+will be assigned to the root directory (/) and the current directory
+for
+.Cm C:
+will be set the the actual current directory.
+Note that this means that invocations such as:
+.sp
+ doscmd ../foo
+.sp
+will not work as the
+.Cm C:
+directory will start with the current path.
+Also, the following environment variables will be defined if not
+already defined:
+
+.nf
+.Cm "COMSPEC=C:\eCOMMAND.COM
+.Cm "PATH=C:\e
+.Cm "PROMPT=DOS>
+.fi
+
+The
+.Cm PATH
+variable is also used to find
+.Ar cmd .
+Like DOS, first
+.Ar cmd.com
+will be looked for and then
+.Ar cmd.exe .
+.Sh "CONFIGURATION VARIABLES"
+.Pp
+There are several variables in the
+.Cm .doscmdrc
+file which are internal to doscmd and do not actually get inserted into
+the DOS environment. These are:
+.Bl -tag -width MS_VERSION
+.It Cm MS_VERSION
+The value of this variable is used to determine the version of DOS that
+should be reported by
+.Nm doscmd .
+Note that
+.Nm doscmd
+will not change the way
+it works, just the way it reports. By default this value is
+.Cm 410 ,
+which corresponds to
+.Nm "MS DOS
+version
+.Nm 4.1 .
+To change it to version 3.2 (the default in previous versions of
+.Nm doscmd )
+use the value of
+.Cm 320 .
+.El
+.Sh FILE TRANSLATION
+.Nm Doscmd
+translates
+.Nm BSD/OS
+file names into
+.Nm DOS
+file names by converting to all upper case and eliminating any invalid
+character. It does not make any attempt to convert ASCII files into
+the
+.Cm <CR><LF>
+format favored in the DOS world. Use the program
+.Xr bsd2dos 1
+to convert ASCII files.
+.bp
+.Sh DISK TYPES
+.TS H
+expand, box;
+r | r | r | r | r.
+Type Cylinders Heads Sectors Size
+=
+01 306 4 17 10MB
+02 615 4 17 20MB
+03 615 6 17 30MB
+04 940 8 17 62MB
+05 940 6 17 46MB
+_
+06 615 4 17 20MB
+07 462 8 17 30MB
+08 733 5 17 30MB
+09 900 15 17 112MB
+10 820 3 17 20MB
+_
+11 855 5 17 35MB
+12 855 7 17 49MB
+13 306 8 17 20MB
+14 733 7 17 42MB
+15 976 15 17 121MB
+_
+16 612 4 17 20MB
+17 977 5 17 40MB
+18 977 7 17 56MB
+19 1024 7 17 59MB
+20 733 5 17 30MB
+_
+21 733 7 17 42MB
+22 733 5 17 30MB
+23 306 4 17 10MB
+24 925 7 17 53MB
+25 925 9 17 69MB
+_
+26 754 7 17 43MB
+27 754 11 17 68MB
+28 699 7 17 40MB
+29 823 10 17 68MB
+30 918 7 17 53MB
+_
+31 1024 11 17 93MB
+32 1024 15 17 127MB
+33 1024 5 17 42MB
+34 612 2 17 10MB
+35 1024 9 17 76MB
+_
+36 1024 8 17 68MB
+37 615 8 17 40MB
+38 987 3 17 24MB
+39 987 7 17 57MB
+40 820 6 17 40MB
+_
+41 977 5 17 40MB
+42 981 5 17 40MB
+43 830 7 17 48MB
+44 830 10 17 68MB
+45 917 15 17 114MB
+_
+46 1224 15 17 152MB
+.TE
+.bp
+.Sh INSTALLING DOS ON A PSEUDO DISK
+.Pp
+To install DOS on a pseudo hard disk under doscmd, do the following:
+.Bl -tag -width XXXX
+.It 1
+Create a
+.Pa .doscmdrc
+with at least the following:
+.Bd -literal -offset indent
+assign A: /dev/rfd0_1440_3.5 1440
+assign A: /dev/rfd0_720_3.5 720
+assign hard boot_drive 80 2 2
+.Ed
+.Pp
+You may need to adjust the raw files for the A: drive to match
+your system. This example will cause the HD drive to be tried
+first and the DD drive second.
+.Pp
+Note that you should only use raw devices or files at this point,
+do not use a cooked device! (Well, it would probably be okay
+for a hard disk, but certainly not the floppy)
+.Pp
+.Li boot_drive
+should be the file name of where you want your bootable
+image to be. The three numbers which follow
+.Li 80 2 2
+say that the drive will have 80 cylinders, 2 heads and 2 sectors per track.
+This is the smallest drive possible which still can have MS DOS
+5.0 installed on it along with a
+.Pa config.sys
+and
+.Pa autoexec.bat
+file.
+.Pp
+You might want to create a larger boot drive.
+.Pp
+The file
+.Pa boot_drive
+must exist, so use the command touch to create it.
+.It 2
+Insert a floppy disk into the A: drive which is bootable to MS-DOS
+and has the commands fdisk, format and sys on it. You should also
+copy the file instbsdi.exe onto the floppy by either mounting it
+with the msdos file system type or by using mtools
+(e.g.,
+.Li mwrite instbsdi.exe a: ).
+.It 3
+run doscmd.
+.It 4
+At the > prompt type
+.Li fdisk .
+.It 5
+Select
+.Li Create DOS partition or Logical Drive .
+.It 6
+Select
+.Li Create Primary DOS Partition .
+.It 7
+Tell it how big to make it
+(Typically the whole drive. It is pretty tiny after all.)
+.It 8
+Get out of FDISK by hitting
+.Li <ESC>
+a few times.
+.It 9
+doscmd may abort, if it does, start up doscmd again.
+.It 10
+At the > prompt, type
+.Li format c:
+and follow the instructions.
+.It 11
+At the > prompt type
+.Li sys c: .
+.It 12
+Get out of doscmd.
+.It 13
+Either remove the floppy from the drive or add the line
+.Bd -literal -offset indent
+boot C:
+.Ed
+to your
+.Pa .doscmdrc .
+.It 14
+You should now be running DOS off of your new disk. You will
+probably want both config.sys and an autoexec.bat file. To
+start with, you can say:
+.Bd -literal -offset indent
+> copy con: config.sys
+LASTDRIVE=Z
+^Z
+> copy con: autoexec.bat
+@echo off
+instbsdi.exe
+^Z
+.Ed
+.It 15
+Quit doscmd.
+.It 16
+You know have a bootable pseudo disk which will automatically call
+the magic
+.Li instbsdi
+program, which installs BSD/OS disks. To use
+them add lines to your .doscmdrc such as:
+.Bd -literal -offset indent
+assign D: /usr/dos
+assign P: -ro /usr/prb
+.Ed
+Not that you will not always be able to access every file due to
+naming problems.
+.El
+.Sh DIAGNOSTICS
+.Pp
+If
+.Nm doscmd
+encounters an interrupt which is unimplemented, it will print a message
+such as:
+.sp
+ Unknown interrupt 21 function 99
+.sp
+and exit.
+.Sh AUTHOR
+Pace Willisson
+.br
+Paul Borman
+.Sh HISTORY
+The
+.Nm doscmd
+program first appeared in BSD/386.
OpenPOWER on IntegriCloud