DR DOS 9.0
USER GUIDE
==========
Copyright (c) 2022-2026 Whitehorn Ltd. Co.
All rights reserved.
DR DOS is a registered trademark of Whitehorn Ltd. Co.
WHITEHORN LTD. CO.
3963 S Highway 97 #214
Sand Springs, OK 74063
DISCLAIMER
Whitehorn Ltd. Co. provides this publication "as is" without warranty
of any kind, either express or implied, including but not limited to
the implied warranties of merchantability or fitness for a particular
purpose.
This publication may include technical inaccuracies or typographical
errors. Changes are periodically made to the information herein.
No part of this publication may be reproduced without the prior
written permission of Whitehorn Ltd. Co.
Last Modified: July 2026
===============================================================================
TABLE OF CONTENTS
===============================================================================
Chapter 1 ......................................... Installing DR DOS
Chapter 2 ......................................... Getting Started
Chapter 3 ......................................... Working with Files
Chapter 4 ......................................... Working with Directories
Chapter 5 ......................................... Running Programs
Chapter 6 ......................................... Advanced Features
Chapter 7 ......................................... Command Reference
Appendix A ........................................ Error Messages
Appendix B ........................................ Batch Programming Guide
Appendix C ........................................ Reporting Bugs and Issues
Glossary
===============================================================================
CHAPTER 1: INSTALLING DR DOS
===============================================================================
SYSTEM REQUIREMENTS
DR DOS 9.0 requires the following hardware:
Processor Intel 386 or compatible
Memory 2 MB RAM (minimum)
Display VGA-compatible display adapter
Storage FAT12 or FAT16 hard disk partition
BIOS LBA or CHS disk addressing
BETA SOFTWARE NOTICE
DR DOS 9.0 is currently in beta testing. This means you may encounter
bugs, crashes, system freezes, filesystem corruption, or compatibility
issues during use.
IMPORTANT PRECAUTIONS:
- Back up all important data before installation
- Do not use DR DOS 9.0 on production systems
- Test in a virtual machine or on non-critical hardware
- Be prepared for potential data loss
Your participation in beta testing helps us identify and fix issues.
Please report any problems you encounter (see "Reporting Bugs and
Issues" section).
SUPPORTED STORAGE
DR DOS 9.0 supports FAT12 and FAT16 partitions on hard disks and floppy drives:
Supported: FAT12 and FAT16 hard disk partitions
FAT12 floppy disks (3.5-inch, 720K and 1.44MB)
Booting from hard disk or 1.44MB floppy disk
LBA disk addressing
CHS disk addressing
Drive letters: A: (floppy drive, auto-detected at boot)
B: (floppy alias; shares physical drive with A: on
single-floppy systems)
C: (first hard disk partition)
D:-R: (additional hard disk partitions, auto-detected;
includes primary partitions and logical drives
in extended partitions)
AVAILABLE LANGUAGES
DR DOS 9.0 is available in the following languages:
English (en) All system messages, boot text, and error messages
in English
German (de) Alle Systemmeldungen, Starttexte und Fehlermeldungen
auf Deutsch
Each release includes separate disk images for each language. The
two-letter language code appears in the image filename:
boot16_en.img.7z English hard disk image
boot16_de.img.7z German hard disk image
floppy144_en.img.7z English floppy disk image
floppy144_de.img.7z German floppy disk image
The images are identical in functionality; only the language of system
messages differs. This manual uses the English (en) filenames in all
examples. Substitute _de for _en if you prefer the German version.
INSTALLATION PROCEDURE
DR DOS 9.0 is available in two formats:
boot16_xx.img.7z Pre-configured bootable hard disk image
floppy144_xx.img.7z Bootable 1.44MB floppy disk image with installer
where xx is the language code (en for English, de for German).
Choose the method that best fits your hardware or emulator setup.
METHOD 1: HARD DISK IMAGE (RECOMMENDED)
The hard disk image is a ready-to-use bootable disk with DR DOS
pre-installed. This is the fastest way to get started.
Step 1: Obtain the disk image
Download boot16_en.img.7z from the DR DOS website (https://www.dr-dos.com).
Step 2: Extract the disk image
Use 7-Zip to extract the image file:
7z x boot16_en.img.7z
This creates boot16_en.img (approximately 120 MB).
Step 3: Write the image to bootable media
Use dd or a similar disk imaging tool to write the image to a
CompactFlash card, USB drive, or virtual disk:
dd if=boot16_en.img of=/dev/sdX bs=4M status=progress
Replace /dev/sdX with your target device identifier.
IMPORTANT: Ensure you specify the correct device. Writing to the
wrong device will destroy data on that device.
Step 4: Boot from the media
Configure your computer or emulator to boot from the media you
created. DR DOS will load automatically and present the command
prompt.
METHOD 2: FLOPPY DISK INSTALLATION
The floppy image is a bootable 1.44MB 3.5-inch floppy disk that
includes an installer for setting up DR DOS on a hard disk. Use this
method when installing DR DOS onto a new or empty hard disk, or on
real hardware with a floppy drive.
Step 1: Obtain the floppy image
Download floppy144_en.img.7z from the DR DOS website
(https://www.dr-dos.com).
Step 2: Extract the floppy image
Use 7-Zip to extract the image file:
7z x floppy144_en.img.7z
This creates floppy144_en.img (1.44 MB).
Step 3: Write the image to a floppy disk or virtual floppy
For a physical floppy disk:
dd if=floppy144_en.img of=/dev/fdX bs=512
For a virtual machine, attach floppy144_en.img as a floppy disk drive.
Step 4: Boot from the floppy disk
Configure your computer or emulator to boot from the floppy drive.
DR DOS will load and present the command prompt.
Step 5: Partition the hard disk (if needed)
If your hard disk does not already have a DOS partition, use FDISK
to create one:
A:\>FDISK
Follow the on-screen prompts to create a primary DOS partition.
Reboot after partitioning.
Step 6: Run the installer
At the A:\> prompt, run the installation utility:
A:\>INSTALL
INSTALL will:
- Format drive C: and transfer system files
- Copy all DOS utilities to C:\DOS\
- Copy EMM386.SYS to C:\
WARNING: INSTALL formats drive C:, destroying all existing data.
Step 7: Reboot from the hard disk
Remove the floppy disk and reboot. DR DOS will start from drive C:.
RUNNING IN QEMU
QEMU is a popular open-source emulator for testing DR DOS.
Hard disk image:
qemu-system-i386 -m 16m -drive file=boot16_en.img,format=raw,if=ide -cpu 486
Floppy installation (with an empty 128MB hard disk):
qemu-img create -f raw hdd.img 128M
qemu-system-i386 -m 16m -cpu 486 \
-drive file=hdd.img,format=raw,if=ide \
-drive file=floppy144_en.img,format=raw,if=floppy,index=0 \
-boot a
WHAT'S INCLUDED
The hard disk image (boot16_en.img) includes:
- DR DOS 9.0 kernel and boot loader
- COMMAND.COM (command interpreter)
- Standard DOS utilities in C:\DOS\
- FAT16 filesystem pre-configured on drive C:
The floppy disk image (floppy144_en.img) includes:
- DR DOS 9.0 kernel and boot loader
- COMMAND.COM (command interpreter)
- Standard DOS utilities in DOS\
- INSTALL.BAT installation utility
- EMM386.SYS expanded memory manager
- ANSI.SYS console driver (ANSI escape sequence support)
KNOWN LIMITATIONS
Be aware of the following limitations in this release:
Scripting
- FOR loops are not supported in batch files
Advanced Features
- Input redirection (<) is not supported
- Append redirection (>>) is not supported
===============================================================================
CHAPTER 2: GETTING STARTED
===============================================================================
WHAT IS DR DOS?
DR DOS 9.0 is a disk operating system. It provides the essential
services that allow you to run programs, manage files, and organize
your hard disk. When you turn on your computer, DR DOS loads
automatically and presents you with a command prompt.
THE COMMAND PROMPT
After DR DOS starts, you will see a prompt that looks like this:
C:\>
This prompt tells you:
- The current drive (C:)
- The current directory (\, the root)
- That the system is ready for your command (>)
You type commands at this prompt and press ENTER to execute them.
While typing a command, you can use Backspace to erase the previous
character. Press ENTER to execute the command, or Ctrl-C to cancel
the current line and return to the prompt.
DRIVES AND DRIVE LETTERS
DR DOS identifies disk drives with letters:
A: Floppy drive (3.5-inch, auto-detected at boot)
B: Floppy drive alias (shares physical drive with A: on
single-floppy systems; detected automatically via BIOS)
C: First hard disk partition
D:-R: Additional hard disk partitions (auto-detected at boot if present)
If no floppy drive is present, or if no floppy disk is inserted when
the system starts, A: and B: will not be available.
On single-floppy systems, A: and B: refer to the same physical drive.
DR DOS automatically detects when a floppy disk has been swapped; no
command or reboot is required after inserting a different disk. The
current directory is preserved across disk changes.
To switch to a different drive, type the drive letter followed by a
colon and press ENTER:
C:\>A:
A:\>
C:\>D:
D:\>
The prompt changes to show your new current drive.
CONVENTIONS USED IN THIS MANUAL
Commands are shown in UPPERCASE:
DIR
COPY
Parameters you supply are shown in lowercase:
COPY source destination
Optional parameters are shown in brackets:
DIR [drive:]
Literal characters you must type exactly are shown as-is:
C:\DOS\
BUILT-IN VS EXTERNAL COMMANDS
DR DOS commands fall into two categories:
BUILT-IN COMMANDS are part of COMMAND.COM itself and are always available,
even if no external files are present:
CD Change directory (also: CHDIR)
COPY Copy files
DEL Delete files (also: ERASE)
ECHO Display messages or control command echoing
EXIT Exit command interpreter
MD Create directory (also: MKDIR)
RD Remove directory (also: RMDIR)
REN Rename files and directories (also: RENAME)
SET Display or modify environment variables
VER Display version
EXTERNAL COMMANDS are separate .COM program files that must be present in
the current directory or in C:\DOS\ to work:
BATCH Batch file interpreter (invoked automatically for .BAT files)
CLS Clear screen
DATE Display or set system date
DIR Directory listing
EDIT Full-screen text editor
FDISK Partition hard disks
FORMAT Format and create filesystems on disk partitions
HEXDUMP Display hexadecimal file dump
JMP Execute code at memory address
MEM Display memory information
MORE Page through text output
MOUSE PS/2 mouse driver (TSR)
MOVE Move files
PEEK Read byte from memory
POKE Write byte to memory
REBOOT Restart system
TYPE Display file contents
If you receive "Bad command or file name" for an external command, verify
that the corresponding .COM file exists in C:\DOS\ or the current directory.
===============================================================================
CHAPTER 3: WORKING WITH FILES
===============================================================================
FILE NAMES
Every file has a name consisting of up to 8 characters, optionally
followed by a period and an extension of up to 3 characters:
LETTER.TXT
REPORT.DOC
COMMAND.COM
CONFIG.SYS
The extension often indicates the type of file:
.COM Executable program
.EXE Executable program
.TXT Text file
.SYS System configuration file
File names cannot contain these characters:
< > : " | ? * / \
WILDCARD CHARACTERS
Two special characters help you work with groups of files:
* Matches any sequence of characters
? Matches any single character
Examples:
*.TXT All files with .TXT extension
REPORT.* All files named REPORT with any extension
FILE?.DOC FILE1.DOC, FILE2.DOC, FILEA.DOC, etc.
VIEWING FILES: DIR
The DIR command displays a list of files in a directory.
Syntax:
DIR [filespec] [/W]
Switches:
/W Wide format (5 columns, filenames only)
Examples:
DIR List all files in current directory
DIR *.TXT List all .TXT files
DIR /W List files in wide format
DIR D: List all files on drive D:
DIR displays the volume label and serial number (if present), followed by
the file name, size in bytes, date (MM-DD-YY), and time (H:MMa/p) for each
file, followed by the total number of files found.
With the /W switch, DIR displays only file names in a compact 5-column
format without size, date, or time information.
VIEWING FILE CONTENTS: TYPE
The TYPE command displays the contents of a text file on screen.
Syntax:
TYPE filename
Example:
TYPE README.TXT
NOTE: TYPE is an external command. The file TYPE.COM must be in the
current directory or in the C:\DOS\ directory for this command to work.
TIP: For long files, use TYPE filename | MORE to page through the
output one screen at a time.
WARNING: Using TYPE on a program file (.COM or .EXE) will display
meaningless characters and may cause your screen to behave erratically.
Only use TYPE on text files.
COPYING FILES: COPY
The COPY command makes a duplicate of a file.
Syntax:
COPY source destination
Examples:
COPY LETTER.TXT LETTER.BAK
COPY D:DATA.TXT C:\DOCS\DATA.TXT
COPY REPORT.DOC D:
When copying to a drive without specifying a filename, the original
name is preserved.
NOTE: The COPY command copies one file at a time. Wildcard characters
are not supported in this version.
DELETING FILES: DEL
The DEL command deletes one or more files from your disk.
Syntax:
DEL filename
ERASE filename
Examples:
DEL LETTER.TXT
ERASE REPORT.DOC
DEL *.BAK
DEL and ERASE are identical commands.
CREATING DIRECTORIES: MD
The MD command creates a new directory.
Syntax:
MD dirname
MKDIR dirname
Examples:
MD DOCS
MKDIR BACKUPS
Notes:
- MD and MKDIR are identical commands.
- The parent directory must already exist.
- If a directory with the same name already exists, MD will return an
error instead of creating a duplicate entry.
- Wildcard characters are not supported.
RENAMING FILES AND DIRECTORIES: REN
The REN command renames an existing file or directory. It can also move
a file or directory to a different location on the same drive.
Syntax:
REN oldname newname
RENAME oldname newname
Examples:
REN OLD.TXT NEW.TXT
RENAME LETTER.DOC LETTER.BAK
REN DOCS ARCHIVE
REN \WORK\FILE.TXT \DONE\FILE.TXT
REN and RENAME are identical commands.
MOVING FILES: MOVE
The MOVE command relocates a file from one location to another. Unlike
COPY, the original file is removed after a successful move.
Syntax:
MOVE source destination
Examples:
MOVE OLDFILE.TXT NEWFILE.TXT
MOVE C:\DOCS\LETTER.TXT D:\BACKUP\
When moving to a directory, if the destination already exists, MOVE
will ask whether to overwrite it.
NOTE: MOVE is an external command. The file MOVE.COM must be in the
current directory or in the C:\DOS\ directory.
===============================================================================
CHAPTER 4: WORKING WITH DIRECTORIES
===============================================================================
WHAT IS A DIRECTORY?
A directory is a container for files. Directories can contain other
directories, creating a tree-like structure for organizing your files.
Every disk has a root directory, indicated by a single backslash (\).
All other directories branch from the root.
Example directory structure:
C:\
\DOS\
COMMAND.COM
TYPE.COM
MOVE.COM
\DOCS\
LETTER.TXT
REPORT.DOC
\PROGRAMS\
EDITOR.EXE
PATHS
A path describes the location of a file or directory. It consists of
an optional drive letter, followed by a series of directory names
separated by backslashes, ending with a filename:
C:\DOCS\LETTER.TXT
This path indicates:
- Drive C:
- In the DOCS directory
- The file LETTER.TXT
CHANGING DIRECTORIES: CD
The CD (Change Directory) command changes your current directory or
displays the current directory path.
Syntax:
CD [path]
Examples:
CD Display current directory
CD \ Go to root directory
CD \DOCS Go to DOCS directory
CD .. Go to parent directory
CD SUBDIR Go to subdirectory named SUBDIR
The CD command can also be typed as CHDIR. Spaces are optional when
using .., \, or / as the path (CD.. and CD\ also work).
===============================================================================
CHAPTER 5: RUNNING PROGRAMS
===============================================================================
EXECUTABLE FILES
Programs are stored as executable files with .COM or .EXE extensions.
To run a program, type its name (with or without the extension) and
press ENTER:
EDIT
EDIT.COM
MYPROG.EXE
DR DOS searches for the program in this order:
1. Current directory, with .COM extension
2. Current directory, with .EXE extension
3. C:\DOS\ directory, with .COM extension
4. C:\DOS\ directory, with .EXE extension
5. Current directory, with .BAT extension
6. C:\DOS\ directory, with .BAT extension
Batch files (.BAT) are text files containing a series of commands.
When a .BAT file is found, DR DOS automatically invokes the BATCH.COM
interpreter to execute it. See Chapter 6 for details on batch files.
NOTE: The search path is fixed to the current directory and C:\DOS\.
Unlike some other DOS systems, there is no configurable PATH
environment variable.
PASSING PARAMETERS TO PROGRAMS
Most programs accept parameters that control their behavior. Type
the parameters after the program name, separated by spaces:
TYPE README.TXT
COPY FILE1.TXT FILE2.TXT
MOVE /?
Consult the documentation for each program to learn its parameters.
Most external commands accept /? or /H to display a brief help screen
describing their syntax and switches:
FORMAT /?
MEM /H
EXITING PROGRAMS
Most programs return to the DOS prompt when they finish. Some programs
require you to type a command like EXIT or QUIT, or press a key
combination. Consult each program's documentation.
THE EXIT COMMAND
The EXIT command terminates the command interpreter. On most systems,
this will return you to the program that started COMMAND.COM.
If you type EXIT at the main DOS prompt (after booting), the system
may restart or halt. Use EXIT only when instructed by a program.
===============================================================================
CHAPTER 6: ADVANCED FEATURES
===============================================================================
OUTPUT REDIRECTION
DR DOS supports redirecting a command's output to a file using the
greater-than symbol (>).
Syntax:
command > filename
The output that would normally appear on screen is instead written
to the specified file. If the file already exists, it will be
overwritten without warning.
Examples:
DIR > FILELIST.TXT
DIR *.COM > PROGRAMS.TXT
MEM > MEMORY.TXT
This feature is useful for:
- Saving directory listings to review later
- Capturing program output for documentation
- Creating text files from command output
NOTES:
- Only output redirection (>) is supported
- Input redirection (<) is not supported
PIPING OUTPUT TO MORE
DR DOS supports piping command output to the MORE utility using the
pipe symbol (|).
Syntax:
command | MORE
The output of the command is displayed one page at a time, allowing
you to read through long output without it scrolling off the screen.
Examples:
DIR | MORE Page through directory listing
TYPE README.TXT | MORE Page through file contents
MEM /A | MORE Page through memory information
Controls when viewing output:
Space Display next page (23 lines)
Enter Display next line
Q or Esc Quit
NOTES:
- Currently only piping to MORE is supported
- Multiple pipes (cmd | cmd | cmd) are not supported
BATCH FILES
DR DOS supports batch file scripting. A batch file is a text file with a
.BAT extension that contains a series of commands to be executed in
sequence. Batch files are useful for automating repetitive tasks.
Creating a Batch File:
Use the EDIT command or any text editor to create a file with a .BAT
extension. Each line contains one command:
Example: CLEANUP.BAT
----------------------
@ECHO OFF
ECHO Cleaning up temporary files...
DEL *.TMP
DEL *.BAK
ECHO Done.
Running a Batch File:
Type the batch file name (with or without the .BAT extension):
C:\>CLEANUP
C:\>CLEANUP.BAT
Supported Batch Commands:
Flow Control:
REM comment Comment line (ignored)
ECHO message Display message on screen
ECHO OFF/ON Disable/enable command echoing
ECHO. Display a blank line
@command Execute command without echoing it
PAUSE Wait for a keypress
GOTO label Jump to a label
GOTO :EOF Exit the current batch file
:label Define a label
CALL filename [args] Execute another batch file and return
Conditionals:
IF EXIST file cmd Execute cmd if file exists
IF NOT EXIST file cmd Execute cmd if file does not exist
IF ERRORLEVEL n cmd Execute cmd if last exit code >= n
IF NOT ERRORLEVEL n cmd Execute cmd if last exit code < n
IF "s1"=="s2" cmd Execute cmd if strings are equal
IF NOT "s1"=="s2" cmd Execute cmd if strings differ
File Operations:
COPY src dest Copy a file
DEL file Delete a file (also: ERASE)
REN old new Rename a file (also: RENAME)
MD dirname Create a directory (also: MKDIR)
RD dirname Remove an empty directory (also: RMDIR)
CD path Change current directory (also: CHDIR)
Variables:
%0 - %9 Command-line parameters
%VARNAME% Environment variable expansion
SHIFT Shift parameters left (%1->%0, %2->%1, ...)
SET Display all environment variables
SET prefix Display variables starting with prefix
SET VAR=value Set environment variable
Redirection:
command > file Redirect output to a file
Parameter Substitution:
Batch files can accept parameters. Use %0 through %9 to reference them:
%0 The batch file name itself
%1 First parameter
%2 Second parameter
...
%9 Ninth parameter
Use SHIFT to access more than 9 parameters. Each SHIFT moves all
parameters down by one position (%2 becomes %1, %3 becomes %2, etc.).
Example batch file (BACKUP.BAT):
@ECHO OFF
ECHO Backing up %1 to %2...
COPY %1 %2
ECHO Backup complete.
Running: BACKUP.BAT README.TXT D:\BACKUP\README.TXT
Environment Variables:
Access environment variables using %VARNAME% syntax:
ECHO The COMSPEC is: %COMSPEC%
IF "%MYVAR%"=="" ECHO MYVAR not set
Use SET to display, search, or modify environment variables:
SET Display all variables
SET P Display variables starting with P
SET VAR=value Set VAR to value
SET VAR= Remove VAR from the environment
Conditional Execution:
The IF command allows conditional execution:
IF EXIST CONFIG.SYS ECHO Config file found
IF NOT EXIST TEMP MD TEMP
IF "%1"=="" ECHO No parameter provided
IF ERRORLEVEL 1 ECHO Program returned an error
ERRORLEVEL tests the exit code of the previous program. The condition
is true if the exit code is greater than or equal to the specified
value. Test higher values first:
PROGRAM.EXE
IF ERRORLEVEL 2 GOTO FATAL
IF ERRORLEVEL 1 GOTO WARNING
ECHO Success!
Labels and GOTO:
Use labels and GOTO for flow control:
@ECHO OFF
IF "%1"=="" GOTO USAGE
ECHO Processing %1...
GOTO END
:USAGE
ECHO Usage: PROCESS filename
:END
Use GOTO :EOF to exit the batch file immediately without requiring
an :END label.
Calling Other Batch Files:
Use CALL to execute another batch file and return to continue:
@ECHO OFF
ECHO Starting installation...
CALL SETUP.BAT
ECHO Setup complete, running configuration...
CALL CONFIG.BAT
ECHO All done!
Without CALL, executing a batch file transfers control permanently
and does not return to the calling script.
NOTES:
- Batch file support requires BATCH.COM in C:\DOS\
- Use SET to view or modify environment variables
- Use SHIFT to process more than 9 parameters
AUTOEXEC.BAT - Automatic Startup Script
DR DOS automatically executes C:\AUTOEXEC.BAT at boot time if it exists.
This batch file runs once during system startup, before the first command
prompt appears.
If C:\AUTOEXEC.BAT does not exist, the system boots directly to the
command prompt with no error message.
Common uses for AUTOEXEC.BAT:
- Setting environment variables (SET TEMP=C:\TEMP)
- Loading mouse drivers (MOUSE)
- Displaying a welcome message
- Launching a menu or application
Example AUTOEXEC.BAT:
@ECHO OFF
SET TEMP=C:\TEMP
ECHO Loading DR DOS...
MOUSE
ECHO.
ECHO Welcome to DR DOS 9.0
ECHO.
CONFIG.SYS - System Configuration
DR DOS processes C:\CONFIG.SYS at boot time if it exists. This file
configures system settings and loads device drivers before the command
prompt appears.
If C:\CONFIG.SYS does not exist, the system boots with default settings.
Creating CONFIG.SYS:
Use the EDIT command to create C:\CONFIG.SYS. Each line contains one
directive:
Example: CONFIG.SYS
----------------------
DEVICE=ANSI.SYS
DEVICE=C:\EMM386.SYS
Supported Directives:
DEVICE=path Load a device driver from the specified path
Example:
DEVICE=C:\EMM386.SYS
The DEVICE directive loads a device driver during boot. Both flat
binary (.SYS) and executable (.EXE) driver formats are supported;
DR DOS detects the format automatically. The driver remains
resident in memory and provides services to the system and
applications.
DEVICEHIGH=path Load a device driver (accepted for compatibility)
Example:
DEVICEHIGH=C:\DRIVERS\MOUSE.SYS
Accepted for compatibility with CONFIG.SYS files written for other
DOS systems. In this release, DEVICEHIGH loads the driver into
conventional memory, exactly as DEVICE= does; loading drivers into
upper memory blocks (UMBs) is not yet implemented.
DOS=[HIGH|LOW][,UMB|,NOUMB]
Control DOS memory configuration
Example:
DOS=HIGH,UMB
Controls DOS memory placement and upper memory block (UMB)
availability. HIGH loads DOS into the High Memory Area (HMA),
which is the default. LOW loads DOS into conventional memory.
UMB makes upper memory blocks available to programs; NOUMB
(or omitting the UMB option) keeps UMBs unavailable. When
UMB is specified, programs can use the UMB allocation
strategies (0x40, 0x80) via INT 21h AH=58h.
FILES=N Set the number of available file handles
Example:
FILES=20
Sets the maximum number of simultaneously open file handles.
Default is 8. Valid range is 8 to 36. Values outside this range
are clamped to the nearest limit.
SHELL=path [args] Specify an alternate command interpreter
Example:
SHELL=C:\DOS\COMMAND.COM /E:512
Loads the specified program as the command interpreter instead of
the default COMMAND.COM. The filename is extracted from the path
and must be in 8.3 format.
The /E:nnn switch sets the size of the master environment in
bytes, where nnn is 160 to 32768. This reserves room for
environment variables to grow. If /E: is omitted or its value is
out of range, the default 256-byte environment is used.
LASTDRIVE=X Set the highest valid drive letter
Example:
LASTDRIVE=F
Controls the highest drive letter recognized by the system.
Default is Z. Setting a lower value limits the range of valid
drive letters (e.g., LASTDRIVE=F allows drives A: through F:).
BREAK=ON|OFF Enable or disable extended Ctrl-C checking
Example:
BREAK=ON
When set to ON, DR DOS checks for Ctrl-C before every DOS call,
not just during character I/O operations. This makes long-running
operations more responsive to Ctrl-C. Default is OFF.
INSTALL=path [args]
Load and run a program at boot
Example:
INSTALL=C:\DOS\MOUSE.COM
Loads and executes the specified program during boot, before
COMMAND.COM starts. Useful for loading terminate-and-stay-resident
(TSR) utilities. Any text after the program path is passed to it
as command-line arguments.
NUMLOCK=ON|OFF Set the NumLock keyboard state at boot
Example:
NUMLOCK=OFF
Turns the NumLock key on or off during boot and updates the
keyboard LED to match.
COUNTRY=nnn[,[cp]]
Set the country code and code page
Example:
COUNTRY=049,850
Sets the country code (nnn) and optional code page (cp) reported
by INT 21h AH=38h (Get Country Information). Note: in this release
only the country-code and code-page numbers change; the locale
formatting data (date, time, currency, and separator characters)
remains at United States defaults.
REM comment Comment line
Example:
REM This line is ignored
A CONFIG.SYS comment. The entire line is ignored, allowing you to
annotate your configuration.
BUFFERS=N Set the number of disk buffers (reserved)
STACKS=N,S Set interrupt stack parameters (reserved)
FCBS=N Set the number of FCB handles (reserved)
SWITCHES=/x Set startup switches (reserved)
These directives are recognized but have no effect in this
release. They are accepted for compatibility with CONFIG.SYS files
written for other DOS systems.
DEVICE NAMES
DR DOS recognizes several special device names that can be used in place
of filenames. These names are reserved and cannot be used for regular
files.
CON Console (keyboard input, screen output)
NUL Null device (discards all output, returns empty on input)
AUX Auxiliary device (typically COM1)
PRN Printer (typically LPT1)
The NUL Device:
The NUL device is particularly useful for discarding unwanted output:
DIR > NUL Run DIR but discard all output
COPY FILE.TXT NUL Test if file can be read (output discarded)
command > NUL Suppress output from any command
In batch files, use IF EXIST NUL to test if device names are available
(this always succeeds since NUL is a built-in device):
IF EXIST NUL ECHO Device support available
Device names are recognized in any directory context. You cannot create
a file named NUL, CON, AUX, or PRN.
EXPANDED MEMORY (EMS)
NOTE: EMM386.SYS is currently experimental and under active development.
While it provides EMS and VCPI support for many common applications,
some programs may experience compatibility issues. Please report any
problems to bugs@dr-dos.com.
DR DOS includes EMM386.SYS, an expanded memory manager that provides
access to memory beyond the 640KB conventional memory limit.
What is EMS?
Expanded Memory Specification (EMS) is a standard for accessing
additional memory on DOS systems. EMS memory is accessed through a
64KB "page frame" window in the upper memory area, with 16KB pages
that can be mapped in and out as needed.
DR DOS EMS Features:
- EMS 4.0 support
- Page frame at segment D000h (standard location)
- Four 16KB physical pages (64KB page frame)
- Up to 32MB of expanded memory (limited by available XMS)
- 255 EMS handles maximum
- Uses XMS memory as backing store
Enabling EMS - EMM386.SYS:
EMS requires loading the EMM386.SYS driver via CONFIG.SYS:
DEVICE=C:\EMM386.SYS
Create or edit C:\CONFIG.SYS to include this line, then reboot.
EMM386.SYS provides:
- EMS 4.0 support
- VCPI support for DOS extenders and protected-mode programs
- Uses XMS memory as backing store for EMS pages
Without EMM386.SYS loaded, EMS is not available and programs that
require expanded memory will report no EMS present.
Checking EMS Availability:
Use MEM to see expanded memory status:
C:\>MEM /M
The memory map (/M switch) shows EMS page frame regions. Extended memory
shown in the basic MEM summary reflects XMS, which serves as the backing
store for EMS pages.
Programs that Support EMS:
Many DOS applications can use EMS for additional memory:
- Spreadsheets (Lotus 1-2-3, Quattro Pro)
- Databases (dBASE, Paradox)
- Word processors (WordPerfect, Microsoft Word)
- Games (many titles from the late 1980s/1990s)
- RAM disks and disk caches
Consult each program's documentation for EMS configuration options.
Technical Details (for programmers):
EMS is accessed via INT 67h. Key functions:
AH=40h Get EMS status
AH=41h Get page frame segment
AH=42h Get total/free page count
AH=43h Allocate handle and pages
AH=44h Map logical page to physical page
AH=45h Deallocate handle
AH=46h Get EMS version (returns 4.0)
See Appendix B for batch file techniques. For EMS programming
details, consult the EMS 4.0 specification.
ANSI CONSOLE DRIVER (ANSI.SYS)
DR DOS includes ANSI.SYS, a loadable device driver that adds support for
ANSI/VT100 escape sequences in console output. Programs can use escape
sequences to position the cursor, set text colors, clear the screen, and
perform other display operations without using direct BIOS calls.
Enabling ANSI.SYS:
Load the driver via CONFIG.SYS:
DEVICE=ANSI.SYS
Create or edit C:\CONFIG.SYS to include this line, then reboot.
Supported Escape Sequences:
ANSI.SYS recognizes the following ESC[ sequences (ESC = character 27):
Cursor Movement:
ESC[nA Move cursor up n rows (default 1)
ESC[nB Move cursor down n rows (default 1)
ESC[nC Move cursor forward n columns (default 1)
ESC[nD Move cursor backward n columns (default 1)
ESC[r;cH Move cursor to row r, column c (1-based)
Cursor Save/Restore:
ESC[s Save current cursor position
ESC[u Restore saved cursor position
Screen Control:
ESC[2J Clear entire screen and home cursor
ESC[K Erase from cursor to end of line
Text Attributes (SGR):
ESC[0m Reset all attributes to default
ESC[1m Bold (high intensity)
ESC[5m Blinking text
ESC[7m Reverse video
ESC[30-37m Set foreground color
ESC[40-47m Set background color
Color Values:
30/40 = Black 34/44 = Blue
31/41 = Red 35/45 = Magenta
32/42 = Green 36/46 = Cyan
33/43 = Yellow 37/47 = White
Multiple attributes can be combined: ESC[1;31;40m (bold red on black)
Without ANSI.SYS loaded, escape sequences are not interpreted and appear
as literal characters on screen.
EXTENDED MEMORY (XMS)
DR DOS includes a built-in XMS 2.0 compatible extended memory driver,
providing access to memory above the 1MB boundary on 386 and higher
processors.
What is XMS?
Extended Memory Specification (XMS) is a standard for accessing
memory above 1MB in real mode. Unlike EMS which uses page mapping,
XMS provides direct access to extended memory through block move
operations.
DR DOS XMS Features:
- XMS 2.0 compatible
- Automatic detection of available extended memory
- Up to 32 simultaneous memory handles
- High Memory Area (HMA) support for kernel
- Used as backing store for EMS driver
XMS is available automatically on systems with extended memory. No
configuration or drivers are required.
Checking XMS Availability:
Use MEM to see extended memory status:
C:\>MEM
The memory summary will show XMS memory if available.
High Memory Area (HMA):
The HMA is the first 64KB of extended memory (minus 16 bytes). DR DOS
loads part of its kernel into the HMA, freeing conventional memory
for applications. The HMA is managed automatically by the system.
Programs that Use XMS:
Many DOS applications and extenders use XMS:
- DOS extenders (DOS4GW, PMODE, etc.)
- Disk caches (SMARTDRV)
- RAM disks
- Large applications (compilers, CAD programs)
Technical Details (for programmers):
XMS is detected via INT 2Fh AX=4300h and accessed through an entry
point obtained via INT 2Fh AX=4310h. Key functions:
AH=00h Get XMS version (AX=0200h, XMS 2.0 spec; BX=0260h driver
revision, reported for Windows 3.0 HIMEM compatibility)
AH=08h Query free extended memory
AH=09h Allocate extended memory block
AH=0Ah Free extended memory block
AH=0Bh Move extended memory block
For XMS programming details, consult the XMS 2.0 specification.
CTRL-C AND BREAK
Pressing Ctrl-C during keyboard input aborts the current program and
returns to the command prompt. DR DOS displays "^C" on the screen
when Ctrl-C is detected.
Ctrl-C is checked during the following operations:
- Character input with echo (INT 21h AH=01h)
- Character input without echo (INT 21h AH=08h)
- Buffered keyboard input (INT 21h AH=0Ah)
- Keyboard status check (INT 21h AH=0Bh)
Direct console I/O (INT 21h AH=06h, 07h) does not check for Ctrl-C,
allowing programs to read raw keystrokes when needed.
By default, Ctrl-C is only checked during character I/O operations.
Programs can enable extended break checking via INT 21h AH=33h
(BREAK=ON), which causes Ctrl-C to be checked before every DOS call.
This makes long-running operations (file copies, disk scans) more
responsive to Ctrl-C.
Applications may install their own INT 23h handler to customize
Ctrl-C behavior. The default handler installed by COMMAND.COM echoes
"^C" and aborts the current program.
DISK ERROR HANDLING
When a disk read or write fails, DR DOS retries the operation up to
three times. If all retries are exhausted, the system invokes the
critical error handler (INT 24h).
The default behavior is to fail the operation and return an error code
to the calling program. COMMAND.COM installs its own critical error
handler at startup. The interactive "Abort, Retry, Fail?" prompt is
not yet available; disk errors currently result in an error code
returned to the calling program.
Applications may install their own critical error handler to provide
custom error recovery. The handler receives the drive number, error
type, and BIOS error code, and returns an action code:
0 = Ignore (pretend the operation succeeded)
1 = Retry (attempt the operation again)
2 = Abort (terminate the program)
3 = Fail (fail the DOS call with an error code)
CHANGING DRIVES
You can change the current drive by typing the drive letter followed
by a colon:
Syntax:
drive:
Examples:
A: Switch to floppy drive A:
B: Switch to floppy drive B: (same physical drive as A:
on single-floppy systems)
C: Switch to drive C:
D: Switch to drive D:
The command prompt will update to show the new current drive. Each
drive maintains its own current directory, so switching back to a
drive returns you to the directory you were in on that drive.
CLEARING THE SCREEN
Use the CLS command to clear the screen and position the cursor at
the top-left corner.
Syntax:
CLS
NOTE: CLS is an external command. The file CLS.COM must be in the
current directory or in the C:\DOS\ directory.
===============================================================================
CHAPTER 7: COMMAND REFERENCE
===============================================================================
This chapter describes all available DR DOS commands in alphabetical
order.
-------------------------------------------------------------------------------
BATCH - Batch File Interpreter
-------------------------------------------------------------------------------
Executes batch file (.BAT) scripts. This command is invoked automatically
by COMMAND.COM when you run a .BAT file; you do not normally run it
directly.
Syntax:
BATCH filename [parameters]
Parameters:
filename The batch file to execute
parameters Optional parameters passed to the batch file as %1-%9
Supported Batch Commands:
Flow Control:
REM Comment (ignored)
ECHO Display text or control echoing
PAUSE Wait for keypress
GOTO Jump to label (including GOTO :EOF to exit)
:label Label definition
CALL Execute another batch file and return
@ Suppress echo for current line
Conditionals:
IF EXIST Test if file exists
IF ERRORLEVEL Test program exit code
IF "str"=="str" Compare strings
IF NOT Negate any condition
File Operations:
COPY Copy files
DEL/ERASE Delete files
REN/RENAME Rename files and directories
MD/MKDIR Create directories
RD/RMDIR Remove directories
CD/CHDIR Change directory
Variables:
SET Display or modify environment variables
%0-%9 Parameter substitution
%VARNAME% Environment variable expansion
SHIFT Shift parameters left
Redirection:
cmd > file Redirect output to file
Examples:
BATCH CLEANUP.BAT
BATCH INSTALL.BAT C:\GAMES
Notes:
- BATCH is an external command; BATCH.COM must be available in C:\DOS\.
- You typically run batch files by typing their name directly (e.g.,
CLEANUP or CLEANUP.BAT). COMMAND.COM automatically invokes BATCH.COM.
- See Appendix B for complete batch programming documentation.
Related commands: None
-------------------------------------------------------------------------------
CD - Change Directory
-------------------------------------------------------------------------------
Changes the current directory or displays the current directory path.
Syntax:
CD [drive:][path]
Parameters:
drive: The drive containing the directory (optional)
path The directory to change to
Examples:
CD Display current directory
CD \ Change to root directory
CD .. Change to parent directory
CD \DOS Change to \DOS directory
CD SUBDIR Change to SUBDIR within current directory
CD.. Change to parent (space optional)
CD\ Change to root (space optional)
CD/ Change to root (space optional)
Notes:
- CD and CHDIR are identical commands.
- Spaces are optional when using .., \, or / as the path.
- To change drives, type the drive letter followed by a colon
(for example, D:) rather than using CD.
Related commands: DIR
-------------------------------------------------------------------------------
CHDIR - Change Directory
-------------------------------------------------------------------------------
Identical to CD. See CD for details.
-------------------------------------------------------------------------------
CLS - Clear Screen
-------------------------------------------------------------------------------
Clears the screen and positions the cursor at the top-left corner.
Syntax:
CLS
Parameters:
None
Examples:
CLS
Notes:
- CLS is an external command; CLS.COM must be available in the
current directory or in C:\DOS\.
Related commands: None
-------------------------------------------------------------------------------
COPY - Copy Files
-------------------------------------------------------------------------------
Copies a file from one location to another.
Syntax:
COPY source destination
Parameters:
source The file to copy
destination The target filename or directory
Examples:
COPY README.TXT README.BAK
COPY D:DATA.TXT C:\BACKUP\
COPY LETTER.DOC D:
Notes:
- If the destination is a drive letter only (e.g., D:), the file
is copied with the same name.
- If the destination file already exists, it is overwritten without
warning.
- If the source and destination resolve to the same file, COPY
refuses with "Source and Destination cannot be the same file"
and reports "0 file(s) copied". The file is not modified.
- This version of COPY does not support wildcard characters.
Related commands: MOVE
-------------------------------------------------------------------------------
DATE - Display or Set Date
-------------------------------------------------------------------------------
Displays the current system date or sets a new date.
Syntax:
DATE [mm-dd-yyyy]
Parameters:
mm-dd-yyyy Optional new date (month-day-year)
Examples:
DATE Display current date and prompt for new date
DATE 12-25-2025 Set date to December 25, 2025
DATE 01/15/2026 Set date to January 15, 2026
Notes:
- DATE is an external command; DATE.COM must be available.
- When called without parameters, DATE displays the current date
with day-of-week and prompts for a new date.
- Date format is flexible: use -, /, or other delimiters.
- Two-digit years are interpreted as: 80-99 = 19xx, 00-79 = 20xx
- Valid year range: 1980-2099
- Press ENTER at the date prompt to keep the current date.
Related commands: None
-------------------------------------------------------------------------------
DEL - Delete File
-------------------------------------------------------------------------------
Deletes one or more files from the disk.
Syntax:
DEL filename
ERASE filename
Parameters:
filename The file to delete (may include wildcards)
Examples:
DEL LETTER.TXT
ERASE REPORT.DOC
DEL *.BAK
Notes:
- DEL and ERASE are identical commands.
- Wildcard characters are supported.
- The file cannot be read-only; it must have its read-only
attribute cleared first.
Related commands: COPY
-------------------------------------------------------------------------------
DIR - Directory Listing
-------------------------------------------------------------------------------
Displays a list of files and subdirectories in a directory.
Syntax:
DIR [drive:][path][filespec] [/W]
Parameters:
drive: The drive to list (optional)
path The directory to list (optional)
filespec File specification, may include wildcards (optional)
Switches:
/W Wide format (5 columns, filenames only)
Examples:
DIR List current directory
DIR *.TXT List all .TXT files
DIR /W List files in wide format
DIR D: List files on drive D:
DIR \DOS List files in \DOS directory
DIR C:\*.COM List all .COM files in root of C:
Output:
The listing shows:
- Volume label (if any)
- Volume serial number (if the disk has one, shown as XXXX-XXXX)
- Directory path
- File names, sizes, dates (MM-DD-YY), and times (H:MMa/p)
- Subdirectories (marked with
)
- Total number of files and bytes
With /W switch, only file names are shown in a compact 5-column
format without size, date, or time information.
Related commands: CD
-------------------------------------------------------------------------------
EDIT - Full-Screen Text Editor
-------------------------------------------------------------------------------
Opens a full-screen text editor for creating and editing text files.
Syntax:
EDIT [filename]
Parameters:
filename Optional file to open for editing
Screen Layout:
The editor uses a colored display:
- Top row: Menu bar (File, Edit, Search) and current filename
- Middle rows: Text editing area (white text on blue background)
- Bottom row: Status bar showing line number, column, and
modified indicator
Menu Access:
Alt+F Open File menu (New, Open, Save, Save As, Exit)
Alt+E Open Edit menu (Cut, Copy, Paste)
Alt+S Open Search menu (Find, Find Next)
Navigate menus with arrow keys. Press Enter to select an item
or Escape to close the menu.
Keyboard Shortcuts:
Ctrl+N New file
Ctrl+O Open file
Ctrl+S Save file
Ctrl+F Find
F3 Find Next (repeat last search)
Ctrl+X Cut line
Ctrl+C Copy line
Ctrl+V Paste
Alt+X Exit editor
Navigation:
Arrow keys Move cursor
Home Move to beginning of line
End Move to end of line
Page Up Scroll up one page
Page Down Scroll down one page
Ctrl+Home Move to beginning of file
Ctrl+End Move to end of file
Editing:
Backspace Delete character before cursor
Delete Delete character at cursor
Enter Insert new line
Tab Insert spaces to next tab stop
Clipboard Operations (Edit menu):
Cut Copy current line to clipboard and delete it
Copy Copy current line to clipboard
Paste Insert clipboard contents at cursor
Examples:
EDIT Open editor with empty file
EDIT README.TXT Open README.TXT for editing
EDIT NEWFILE.TXT Create and edit a new file
Notes:
- EDIT is an external command; EDIT.COM must be available in the
current directory or in C:\DOS\.
- Maximum file size is limited by available conventional memory.
- Files are saved with CR+LF line endings.
- Lines longer than 80 characters are truncated on display.
Related commands: TYPE, MORE
-------------------------------------------------------------------------------
ECHO - Display Message
-------------------------------------------------------------------------------
Displays a message, prints a blank line, or controls command echoing.
Syntax:
ECHO message
ECHO.
ECHO
ECHO ON
ECHO OFF
Parameters:
message Text to display on screen
ON Enable command echoing (commands are displayed before
execution)
OFF Disable command echoing (commands execute silently)
Examples:
ECHO Hello, World! Display "Hello, World!"
ECHO. Display a blank line
ECHO Display current echo state (ECHO is on/off)
ECHO OFF Suppress command display
Notes:
- ECHO is a built-in command, always available.
- ECHO. (period immediately after ECHO, no space) prints a blank line.
- ECHO ON/OFF controls whether commands are displayed before execution.
This is primarily useful in batch files; at the interactive prompt,
commands are not echoed regardless of the setting.
- ECHO with no arguments displays the current echo state.
Related commands: None
-------------------------------------------------------------------------------
ERASE - Delete File
-------------------------------------------------------------------------------
Identical to DEL. See DEL for details.
-------------------------------------------------------------------------------
EXIT - Exit Command Interpreter
-------------------------------------------------------------------------------
Terminates the command interpreter (COMMAND.COM).
Syntax:
EXIT
Parameters:
None
Notes:
- If COMMAND.COM was started by another program, EXIT returns to
that program.
- If EXIT is typed at the initial DOS prompt, results may vary
depending on system configuration.
WARNING: Do not type EXIT at the main system prompt unless you
understand the consequences.
-------------------------------------------------------------------------------
FDISK - Fixed Disk Setup Program
-------------------------------------------------------------------------------
Partitions hard disks with MBR partition tables. Creates, deletes,
and manages primary DOS partitions.
Syntax:
FDISK
FDISK /STATUS
FDISK /AUTO n
FDISK /MBR
Switches:
/STATUS Display partition table without modification
/AUTO n Non-interactive: create a partition on drive n
(1 = first hard disk, 2 = second, etc.)
/MBR Rewrite MBR bootstrap code, preserving the existing
partition table
Interactive Mode:
When run without switches, FDISK presents a menu:
1. Create DOS partition
2. Set active partition
3. Delete DOS partition
4. Display partition information
5. Change current fixed disk drive
Use option 1 to create a new partition, option 2 to mark a
partition as bootable, and option 4 to review the current layout.
On systems with multiple hard disks, use option 5 to switch
between drives.
Partition Types:
FDISK automatically selects the correct partition type based on
partition size and disk geometry:
FAT12 (type 01h) Partitions up to 16 MB
FAT16 (type 04h) Partitions up to 32 MB
FAT16B (type 06h) Partitions up to 2 GB (CHS-addressable)
FAT16 (type 0Eh) Partitions requiring LBA addressing
Partitions are track-aligned (start at LBA 63) and cylinder-aligned
at the end, following standard DOS-era conventions.
Examples:
FDISK Start interactive partitioning
FDISK /STATUS Display current partition table
FDISK /AUTO 1 Create partition on first hard disk
FDISK /MBR Rewrite MBR bootstrap code
Notes:
- FDISK is an external command; FDISK.COM must be available in the
current directory or in C:\DOS\.
- After creating or deleting partitions, reboot before using the
modified disk.
- Use FORMAT to create a filesystem on a newly partitioned drive.
- FDISK only manages primary partitions. Extended partitions are
not supported.
WARNING: Deleting a partition destroys all data on that partition.
Related commands: FORMAT
-------------------------------------------------------------------------------
FORMAT - Format Disk
-------------------------------------------------------------------------------
Creates FAT12 or FAT16 filesystems on partitioned hard disk drives.
Writes the volume boot record, FAT tables, and root directory.
Syntax:
FORMAT drive: [/Q] [/V] [/S]
Parameters:
drive: The drive letter to format (e.g., C: or D:)
Switches:
/Q Quick format. Clears the FAT and root directory without
performing a surface verification of the disk.
/V Prompt for a volume label after formatting.
/S System. Transfer system files after formatting, making the
disk bootable. Copies DRBIOS.SYS, DRDOS.SYS, and
COMMAND.COM to the formatted drive.
Examples:
FORMAT D: Format drive D:
FORMAT D: /Q Quick format drive D:
FORMAT D: /V Format and prompt for volume label
FORMAT D: /S Format and make bootable
FORMAT D: /Q /S /V Quick format, make bootable, set label
Output:
FORMAT displays a confirmation prompt before proceeding, then
shows progress during formatting. On completion, it reports:
- Total disk space
- Bytes available on disk
- Bytes per allocation unit
- Number of allocation units
- Volume serial number
Notes:
- FORMAT is an external command; FORMAT.COM must be available in the
current directory or in C:\DOS\.
- The target drive must already have a partition (see FDISK).
- FORMAT automatically detects whether to use FAT12 or FAT16 based
on partition size.
- The /S switch requires DRBIOS.SYS, DRDOS.SYS, and COMMAND.COM
to be available on the current drive.
- FORMAT refuses to format the boot drive or the current drive and
reports an error.
- FORMAT returns an exit code (ERRORLEVEL): 0 on success, 3 if you
decline the confirmation prompt, 4 on a formatting error, and 5
when the target is the boot drive or the current drive.
WARNING: Formatting a drive destroys all data on that drive. FORMAT
will prompt for confirmation before proceeding.
Related commands: FDISK
-------------------------------------------------------------------------------
HEXDUMP - Display Hex Dump
-------------------------------------------------------------------------------
Displays a hexadecimal dump of a binary file.
Syntax:
HEXDUMP filename
Parameters:
filename The file to display
Examples:
HEXDUMP COMMAND.COM
HEXDUMP PROGRAM.EXE
Output:
Each line shows:
- Hexadecimal offset from start of file
- 16 bytes in hexadecimal format
- ASCII representation (non-printable characters shown as ".")
Notes:
- HEXDUMP is an external command; HEXDUMP.COM must be available.
- Handles files larger than 64KB.
- Useful for examining binary files, debugging, and data recovery.
Related commands: TYPE
-------------------------------------------------------------------------------
JMP - Execute Code at Memory Address
-------------------------------------------------------------------------------
Performs a far call to a flat 20-bit real-mode memory address, transferring
CPU execution to whatever code lives there. Completes the PEEK/POKE/JMP
trio for direct memory manipulation.
The target address is called (not jumped to), meaning code at that address
can return to DOS cleanly by executing a far return (RETF instruction). If
the target code never returns — because it jumps elsewhere, resets the
machine, or calls INT 20h — JMP.COM simply never returns either.
Syntax:
JMP address
Parameters:
address Flat memory address in hex with h suffix, up to 5 digits.
Range: 0h to FFFFFh.
Examples:
JMP FFFF0h Call BIOS cold-reset vector — resets the machine
JMP 100h Execute code at 0010:0000
Entry state seen by called code:
CS:IP = target address
SS:SP = JMP.COM stack; return address on top (use RETF to return)
DS,ES = JMP.COM data segment
Registers AX-DI: undefined — target should not rely on any value
Notes:
- JMP is an external command; JMP.COM must be available in the current
directory or in C:\DOS\.
- The primary workflow is: use POKE to write machine code into a scratch
area of RAM, then use JMP to execute it. This gives you an inline
code execution capability from the command line.
- JMP FFFF0h is a reliable way to cold-reset the machine — it calls
the BIOS reset entry point directly, the same vector the CPU jumps
to on power-on.
- If called code returns via RETF, JMP.COM exits to DOS normally.
If called code calls INT 20h or INT 21h AH=4Ch, the process
terminates and DOS gets control back either way.
WARNING: Jumping to an address that contains garbage or random data will
crash the system immediately. Always know what is at an address before
jumping to it. Use PEEK and HEXDUMP to inspect memory first.
Related commands: PEEK, POKE
-------------------------------------------------------------------------------
MD - Make Directory
-------------------------------------------------------------------------------
Creates a new directory.
Syntax:
MD dirname
MKDIR dirname
Parameters:
dirname The name of the new directory
Examples:
MD DOCS
MKDIR BACKUPS
Notes:
- MD and MKDIR are identical commands.
- The parent directory must already exist.
- If a directory with the same name already exists, MD will return an
error instead of creating a duplicate entry.
- Wildcard characters are not supported.
Related commands: CD, RD
-------------------------------------------------------------------------------
MEM - Display Memory Information
-------------------------------------------------------------------------------
Displays comprehensive system memory information.
Syntax:
MEM [switches]
Switches:
/H /? Display help text
/B Show conventional memory blocks (MCB chain)
/U Show upper memory blocks (UMB chain)
/F Show HMA (High Memory Area) blocks
/D Show device drivers
/S Show system structures
/M Show system memory map with ASCII visualization
/A Show all information (combines all modes)
/P Pause listing at each page (23 lines)
Examples:
MEM Display memory summary
MEM /B Show conventional memory blocks
MEM /M Show memory map with visualization
MEM /A Show all available information
MEM /A /P Show all information with paging
Output:
The default output shows a summary table with:
- Conventional memory (0-640KB)
- High memory area (HMA)
- Extended memory (XMS)
- Total memory available
Additional switches provide detailed block-by-block information
including owner, size, and memory visualization.
Notes:
- MEM is an external command; MEM.COM must be available.
- Switches can be combined (e.g., MEM /B /U /P)
- The /M switch provides an ASCII art visualization of the entire
memory map.
- Very useful for diagnosing memory issues and understanding
system configuration.
Related commands: None
-------------------------------------------------------------------------------
MORE - Display Output One Page at a Time
-------------------------------------------------------------------------------
Displays a text file one page at a time, pausing after each screenful.
Syntax:
MORE filename
command | MORE
Parameters:
filename The file to display
Controls:
Space Display next page (23 lines)
Enter Display next line
Q or Esc Quit
Examples:
MORE README.TXT
TYPE BIGFILE.TXT | MORE
DIR | MORE
MEM /A | MORE
Notes:
- MORE is an external command; MORE.COM must be available in the
current directory or in C:\DOS\.
- When used with piping (|), the output of the preceding command
is displayed one page at a time.
- The "-- More --" prompt appears at the bottom of each page.
- Use TYPE for quick viewing of short files; use MORE for long files.
Related commands: TYPE
-------------------------------------------------------------------------------
MOUSE - PS/2 Mouse Driver
-------------------------------------------------------------------------------
Loads a resident PS/2 mouse driver that provides the standard INT 33h
mouse API used by DOS applications and games.
Syntax:
MOUSE
Parameters:
None
Examples:
MOUSE
Load the mouse driver before running applications that require
mouse support (e.g., games, editors, menu-driven programs).
Output:
If a PS/2 mouse is detected, the driver installs itself as a
Terminate-and-Stay-Resident (TSR) program and displays:
DR DOS 9.0 PS/2 Mouse Driver v1.0
Mouse detected - driver installed.
If no PS/2 mouse is detected, the driver displays an error and
exits without going resident.
Mouse Cursor:
Applications control the mouse cursor through INT 33h calls. In
text mode, the cursor appears as an inverse-video block character.
Notes:
- MOUSE is an external command; MOUSE.COM must be available in the
current directory or in C:\DOS\.
- The driver uses BIOS INT 15h PS/2 pointing device services for
hardware access. A PS/2-compatible mouse (or emulation) is required.
- Once loaded, the driver remains in memory. Reboot to unload.
- Load MOUSE before starting any application that needs mouse input.
Related commands: None
-------------------------------------------------------------------------------
MKDIR - Make Directory
-------------------------------------------------------------------------------
Identical to MD. See MD for details.
-------------------------------------------------------------------------------
MOVE - Move Files
-------------------------------------------------------------------------------
Moves a file from one location to another, removing the original.
Syntax:
MOVE source destination
Parameters:
source The file to move
destination The target filename or directory
Examples:
MOVE OLD.TXT NEW.TXT
MOVE C:\DOCS\FILE.TXT D:\BACKUP\
MOVE *.BAK D:\ARCHIVE\
Notes:
- MOVE is an external command; MOVE.COM must be available.
- If the destination file exists, MOVE will prompt before
overwriting.
- Enter Y for yes, N for no, or A for all to overwrite all
remaining files without prompting.
- MOVE supports wildcard characters in the source filespec.
Related commands: COPY
-------------------------------------------------------------------------------
PEEK - Read Byte from Memory Address
-------------------------------------------------------------------------------
Reads a single byte from any flat real-mode memory address and displays
it as two uppercase hex digits. Addresses span the full 20-bit real-mode
address space (0h through FFFFFh), giving direct access to conventional
memory, video RAM, the BIOS data area, and the interrupt vector table.
Syntax:
PEEK address
Parameters:
address Flat memory address in hex with h suffix (e.g. B8000h).
Up to 5 hex digits. Range: 0h to FFFFFh.
Examples:
PEEK 0h Read first byte of interrupt vector table
PEEK 46Ch Read low byte of BIOS timer tick counter
PEEK B8000h Read first character byte of text video RAM
PEEK A0000h Read first byte of VGA graphics framebuffer
Output:
A two-digit uppercase hex value followed by a newline:
FF
Notes:
- PEEK is an external command; PEEK.COM must be available in the
current directory or in C:\DOS\.
- Addresses are entered in hexadecimal with an h suffix. No 0x prefix
is used. Both uppercase and lowercase hex digits are accepted.
- The full 1 MB real-mode address space is accessible. There is no
memory protection; any address may be read.
- See the PC memory map below for notable addresses.
PC Memory Map (selected addresses):
0h - 3FFh Interrupt vector table (256 vectors x 4 bytes)
400h - 4FFh BIOS data area (equipment flags, cursor, etc.)
46Ch BIOS timer tick counter low word
472h Warm boot flag (1234h = warm boot)
B8000h - BFFFFh CGA/VGA text mode video RAM
A0000h - AFFFFh VGA graphics framebuffer (mode 13h, etc.)
B0000h - B7FFFh Monochrome display adapter RAM
C0000h - EFFFFh ROM space (video BIOS, adapter ROMs)
F0000h - FFFFFh System BIOS ROM
Related commands: POKE, JMP, HEXDUMP
-------------------------------------------------------------------------------
POKE - Write Byte to Memory Address
-------------------------------------------------------------------------------
Writes a single byte to any flat real-mode memory address. Like PEEK,
addresses span the full 20-bit real-mode address space (0h through
FFFFFh). On success, prints "OK" unless suppressed with /S.
Syntax:
POKE address value [/S]
Parameters:
address Flat memory address in hex with h suffix (e.g. B8000h).
Up to 5 hex digits. Range: 0h to FFFFFh.
value Byte value to write, in hex with h suffix (e.g. FFh).
Range: 0h to FFh.
Switches:
/S Silent. Suppresses the "OK" confirmation message.
Examples:
POKE B8000h 41h Write 'A' to first character of text video RAM
POKE B8001h 1Fh Write bright-white-on-blue attribute byte
POKE B8001h 80h Set blink attribute on first character
POKE 46Ch 0h Reset BIOS timer low byte (sets clock toward midnight)
POKE 100h FFh /S Write silently, no output
Notes:
- POKE is an external command; POKE.COM must be available in the
current directory or in C:\DOS\.
- Addresses and values are entered in hexadecimal with an h suffix.
Both uppercase and lowercase hex digits are accepted.
- The /S switch may appear anywhere after the two required arguments.
WARNING: POKE has direct, unprotected access to all of physical memory.
Writing to the wrong address can crash the system immediately and
without any error message. There is no undo. In particular:
- Addresses 0h-3FFh are the interrupt vector table. Corrupting a
vector will cause a crash the next time that interrupt fires. The
hardware timer (INT 8h, vector at 20h-23h) fires approximately 18
times per second; corrupting it will crash the system within
milliseconds whether or not you are doing anything.
- Addresses 84h-87h hold the INT 21h (DOS API) vector. Corrupting
this causes a crash on the very next DOS call, which COMMAND.COM
makes constantly.
- ROM addresses (C0000h and above) cannot be written. The write will
silently have no effect.
Related commands: PEEK, JMP, HEXDUMP
-------------------------------------------------------------------------------
REBOOT - Restart System
-------------------------------------------------------------------------------
Restarts the computer.
Syntax:
REBOOT
Parameters:
None
Notes:
- REBOOT is an external command; REBOOT.COM must be available.
- All unsaved work will be lost.
- This performs a warm boot (restart) of the system.
WARNING: Save all work before using REBOOT.
-------------------------------------------------------------------------------
REN - Rename File or Directory
-------------------------------------------------------------------------------
Renames an existing file or directory. Can also move a file or directory
to a different location on the same drive.
Syntax:
REN oldname newname
RENAME oldname newname
Parameters:
oldname The current name (or path) of the file or directory
newname The new name (or path) for the file or directory
Examples:
REN OLD.TXT NEW.TXT
RENAME LETTER.DOC LETTER.BAK
REN DOCS ARCHIVE
REN \WORK\REPORT.TXT \DONE\REPORT.TXT
Notes:
- REN and RENAME are identical commands.
- Wildcard characters are not supported.
- The new name cannot already exist in the destination directory.
- REN can move files and directories across directories on the same
drive. Cross-drive moves are not supported; use COPY and DEL
instead.
- When renaming a directory, all files and subdirectories within it
are preserved.
Related commands: COPY, MOVE
-------------------------------------------------------------------------------
RENAME - Rename File or Directory
-------------------------------------------------------------------------------
Identical to REN. See REN for details.
-------------------------------------------------------------------------------
SET - Display or Modify Environment Variables
-------------------------------------------------------------------------------
Displays, searches, creates, modifies, or removes environment variables.
Syntax:
SET
SET prefix
SET name=value
SET name=
Parameters:
(none) Display all environment variables
prefix Display variables whose names start with prefix
name=value Set variable name to value
name= Remove variable name from the environment
Examples:
SET Display all variables
SET C Display variables starting with C
SET MYDIR=C:\WORK Create or update MYDIR
SET MYDIR= Remove MYDIR
Notes:
- SET is a built-in command, always available at the interactive prompt
and in batch files.
- Variable names are case-insensitive.
- Variables can be referenced in commands and batch files using
%VARNAME% syntax.
- The COMSPEC variable is set automatically by the system and
should not be modified.
Related commands: ECHO
-------------------------------------------------------------------------------
RD - Remove Directory
-------------------------------------------------------------------------------
Removes an empty directory.
Syntax:
RD dirname
RMDIR dirname
Parameters:
dirname The directory to remove
Examples:
RD TEMP
RD C:\OLD\BACKUP
RMDIR EMPTY
Notes:
- RD and RMDIR are identical commands.
- The directory must be empty before it can be removed.
- You cannot remove the current directory.
- You cannot remove the root directory.
Related commands: MD, CD
-------------------------------------------------------------------------------
RMDIR - Remove Directory
-------------------------------------------------------------------------------
Identical to RD. See RD for details.
-------------------------------------------------------------------------------
TYPE - Display File Contents
-------------------------------------------------------------------------------
Displays the contents of a text file on screen.
Syntax:
TYPE filename
Parameters:
filename The file to display
Examples:
TYPE README.TXT
TYPE C:\DOCS\LETTER.DOC
Notes:
- TYPE is an external command; TYPE.COM must be available.
- Use TYPE only on text files. Binary files will display
meaningless characters.
- For long files, use TYPE filename | MORE to page through
the output one screen at a time.
Related commands: COPY, HEXDUMP, MORE
-------------------------------------------------------------------------------
VER - Display Version
-------------------------------------------------------------------------------
Displays the DR DOS version number.
Syntax:
VER
Parameters:
None
Output:
DR DOS (R) 9.0 rev 80
Copyright 2022-2026 Whitehorn Ltd. Co., All Rights Reserved
The revision number shown (e.g., "rev 80") indicates the build version.
Notes:
- VER is a built-in command, always available.
Related commands: None
===============================================================================
APPENDIX A: ERROR MESSAGES
===============================================================================
This appendix lists error messages you may encounter and their
meanings.
Bad command or file name
The command you typed is not a built-in command, and no program
with that name was found in the current directory or in C:\DOS\.
Solution: Check the spelling of the command. Verify that the
program file exists in the expected location.
File not found -
The file you specified does not exist.
Solution: Check the spelling of the filename. Use DIR to verify
the file exists in the expected location.
Invalid directory
The directory path you specified does not exist.
Solution: Check the spelling of the directory name. Use DIR to
see available directories.
Required parameter missing
A command requires a parameter that you did not provide.
Solution: Check the command syntax and provide all required
parameters.
Unable to create destination file
The system could not create the destination file.
Solution: Verify that the destination directory exists and that
the disk is not write-protected or full.
Read error
An error occurred while reading from the disk. The kernel retries
the operation up to three times before reporting the failure.
Solution: The disk may be damaged. Try the operation again. If
the problem persists, the disk may need to be replaced.
Write error
An error occurred while writing to the disk. The kernel retries
the operation up to three times before reporting the failure.
Solution: The disk may be full, write-protected, or damaged.
Check disk space and write-protect status.
Access denied -
You attempted to access a file that is protected.
Solution: The file may be read-only or in use by another program.
Clear the read-only attribute before attempting to modify the file.
Unable to create directory
The system could not create the directory.
Solution: Verify that the parent directory exists. The directory
you're trying to create must be inside an existing directory.
Duplicate file name or file not found
An error occurred while renaming a file.
Solution: The new name may already exist, or the old name does not
exist. Use DIR to verify the file names.
Overwrite (Yes/No/All)?
The destination file already exists during a MOVE operation.
Solution: Enter Y to overwrite this file, N to skip it, or A to
overwrite all remaining files without prompting.
Error moving file
An error occurred while moving a file.
Solution: Check the file names and ensure you have permission to
access both the source and destination files.
File not found
No files were found matching the specified pattern.
Solution: Check the filename or pattern. Use DIR to see available
files.
Invalid parameter
An invalid parameter was provided.
Solution: Check the command syntax and ensure all parameters are
valid.
Syntax: MOVE source destination
The MOVE command was called with incorrect syntax.
Solution: Check the MOVE command syntax and ensure you provide
both a source and destination.
===============================================================================
APPENDIX B: BATCH PROGRAMMING GUIDE
===============================================================================
This appendix is a comprehensive programmer's reference for writing batch
scripts in DR DOS. It covers all supported commands, flow control, variable
handling, file operations, and practical patterns.
WHAT IS A BATCH FILE?
A batch file is a plain text file with a .BAT extension containing a
sequence of commands executed line by line. Batch files automate
repetitive tasks, create simple installers, and build menus.
Create batch files with EDIT or any text editor. Each line contains one
command. Blank lines are ignored.
-------------------------------------------------------------------------------
COMMENTS: REM
-------------------------------------------------------------------------------
Use REM to add comments. Everything after REM on the line is ignored.
REM This is a comment
REM Author: John Smith
REM Last modified: February 2026
Comments document your script's purpose, explain complex logic, and
leave notes for future maintenance.
-------------------------------------------------------------------------------
DISPLAYING TEXT: ECHO
-------------------------------------------------------------------------------
ECHO displays messages to the screen.
ECHO Hello, World!
ECHO Installation complete.
ECHO.
ECHO. (with a period, no space) prints a blank line.
Echo State:
By default, each command is displayed before execution. Control this
with ECHO OFF and ECHO ON:
ECHO OFF
REM Commands below this line are not displayed
ECHO This message still appears
ECHO ON
REM Commands are displayed again
ECHO OFF suppresses command display but ECHO messages still appear.
Use ECHO alone (no argument) to display the current echo state.
-------------------------------------------------------------------------------
SUPPRESSING ECHO: @
-------------------------------------------------------------------------------
Prefix any command with @ to suppress its display for that line only.
@ECHO OFF
This is the standard first line of most batch files. The @ prevents
"ECHO OFF" from being displayed, and ECHO OFF prevents subsequent
commands from being displayed.
@REM This comment won't be displayed
@PAUSE
-------------------------------------------------------------------------------
WAITING FOR INPUT: PAUSE
-------------------------------------------------------------------------------
PAUSE halts execution and displays "Press any key to continue . . ."
until the user presses a key.
ECHO About to delete temporary files...
PAUSE
DEL *.TMP
Use PAUSE to give users time to read messages or confirm before
potentially destructive operations.
-------------------------------------------------------------------------------
LABELS AND GOTO
-------------------------------------------------------------------------------
Labels mark locations in your script. A label is a line beginning
with a colon followed by a name:
:START
:MENU
:END
Label names are case-insensitive. :START, :Start, and :start are
identical.
GOTO transfers execution to a label:
GOTO END
ECHO This line is never executed
:END
ECHO Script finished
Exiting Early with GOTO :EOF:
Use GOTO :EOF to exit the batch file immediately without needing
to define an :END label:
@ECHO OFF
IF "%1"=="" (
ECHO Missing parameter!
GOTO :EOF
)
ECHO Processing %1...
This is cleaner than jumping to a label at the end of the file.
Creating Loops:
Combine GOTO with labels to create loops:
:LOOP
ECHO Press any key to continue, or Ctrl+C to exit
PAUSE
GOTO LOOP
Organizing Code Sections:
@ECHO OFF
GOTO MAIN
:USAGE
ECHO Usage: INSTALL source
GOTO :EOF
:MAIN
IF "%1"=="" GOTO USAGE
ECHO Installing from %1...
COPY %1 C:\PROGRAM\
-------------------------------------------------------------------------------
CONDITIONAL EXECUTION: IF
-------------------------------------------------------------------------------
IF executes a command only when a condition is true.
Testing File Existence:
IF EXIST CONFIG.SYS ECHO Config file found
IF EXIST C:\DOS\MOUSE.COM MOUSE
IF EXIST checks whether a file exists. The command after the filename
executes only if the file is found.
Testing Device Names:
IF EXIST also works with device names like NUL and CON:
IF EXIST NUL ECHO Device support available
Since NUL is a built-in device, this always succeeds. This can be used
to verify batch file compatibility.
String Comparison:
IF "%1"=="HELP" GOTO SHOWHELP
IF "%1"=="" ECHO No parameter provided
Strings must be enclosed in double quotes. The comparison is
case-sensitive: "YES" does not equal "yes".
Tip: Always quote both sides when comparing parameters. If %1 is empty,
IF %1=="" becomes IF =="" which is a syntax error. Using IF "%1"==""
becomes IF ""=="" which works correctly.
Testing Exit Codes with ERRORLEVEL:
Programs return exit codes (0-255) when they finish. Use IF ERRORLEVEL
to test these codes and handle success or failure:
PROGRAM.EXE
IF ERRORLEVEL 1 ECHO Program failed!
IF ERRORLEVEL 0 ECHO Program succeeded!
IF ERRORLEVEL n is true if the exit code is GREATER THAN OR EQUAL TO n.
This means you must test higher values first:
MYAPP.EXE
IF ERRORLEVEL 3 GOTO FATAL_ERROR
IF ERRORLEVEL 2 GOTO SERIOUS_ERROR
IF ERRORLEVEL 1 GOTO MINOR_ERROR
ECHO Success!
GOTO :EOF
:MINOR_ERROR
ECHO Warning: minor issue detected
GOTO :EOF
:SERIOUS_ERROR
ECHO Error: something went wrong
GOTO :EOF
:FATAL_ERROR
ECHO FATAL: critical failure!
GOTO :EOF
Standard DOS Error Codes:
Programs return exit codes (also called error codes or return codes) that
indicate success or failure. These codes are accessible via ERRORLEVEL.
Code Meaning
---- ---------------------------------------------------------
0 Success - operation completed without error
1 General error - operation failed
2 File not found - specified file does not exist
3 Path not found - specified directory does not exist
4 Too many open files - system file handle limit reached
5 Access denied - file is read-only or in use
8 Insufficient memory - not enough RAM for operation
15 Invalid drive - drive letter does not exist
18 No more files - used internally by FindFirst/FindNext
DR DOS Command Exit Codes:
Built-in and external commands return these codes:
Command Success Failure Notes
-------- ------- ------- ------------------------------------
COPY 0 1 1 if source not found or write fails
DEL 0 1 1 if file not found or access denied
REN 0 1 1 if file not found or name exists
MD 0 1 1 if directory exists or path invalid
RD 0 1 1 if directory not empty or not found
CD 0 1 1 if directory not found
TYPE 0 1 1 if file not found
DIR 0 1 1 if path not found (not if no files)
MOVE 0 1 1 if source not found or move fails
EDIT 0 - Always returns 0
MEM 0 - Always returns 0
Testing Multiple Error Levels:
Remember that IF ERRORLEVEL n is true when the code is >= n. Always test
higher values first to distinguish between different error conditions:
MYAPP.EXE
IF ERRORLEVEL 5 GOTO ACCESS_DENIED
IF ERRORLEVEL 3 GOTO PATH_ERROR
IF ERRORLEVEL 2 GOTO FILE_ERROR
IF ERRORLEVEL 1 GOTO GENERAL_ERROR
ECHO Operation successful.
GOTO :EOF
:FILE_ERROR
ECHO Error: File not found.
GOTO :EOF
:PATH_ERROR
ECHO Error: Directory not found.
GOTO :EOF
:ACCESS_DENIED
ECHO Error: Access denied - check file permissions.
GOTO :EOF
:GENERAL_ERROR
ECHO Error: Operation failed.
Negating Conditions:
IF NOT reverses the condition:
IF NOT EXIST TEMP MD TEMP
IF NOT "%1"=="" GOTO PROCESS
IF NOT ERRORLEVEL 1 ECHO Success!
This creates the TEMP directory only if it doesn't exist, processes
only if a parameter was provided, or reports success if exit code is 0.
-------------------------------------------------------------------------------
PARAMETERS: %0 THROUGH %9
-------------------------------------------------------------------------------
Batch files accept up to 9 parameters from the command line, accessed
as %1 through %9. %0 contains the batch file's own name.
Example batch file GREET.BAT:
@ECHO OFF
ECHO Hello, %1!
ECHO This script is: %0
Running: GREET John
Output:
Hello, John!
This script is: GREET.BAT
Using Multiple Parameters:
BACKUP.BAT:
@ECHO OFF
IF "%1"=="" GOTO USAGE
IF "%2"=="" GOTO USAGE
ECHO Copying %1 to %2...
COPY %1 %2
ECHO Done.
GOTO :EOF
:USAGE
ECHO Usage: BACKUP source destination
Running: BACKUP README.TXT D:\BACKUP\README.TXT
Literal Percent Sign:
Use %% to include a literal percent sign:
ECHO Disk is 50%% full
Displays: Disk is 50% full
-------------------------------------------------------------------------------
SHIFT: ACCESSING MORE THAN 9 PARAMETERS
-------------------------------------------------------------------------------
SHIFT moves all parameters down by one position:
Before SHIFT: %0=SCRIPT %1=A %2=B %3=C %4=D
After SHIFT: %0=A %1=B %2=C %3=D %4=(empty)
This allows processing an unlimited number of parameters in a loop:
LISTALL.BAT - Display all parameters:
@ECHO OFF
:LOOP
IF "%1"=="" GOTO :EOF
ECHO Parameter: %1
SHIFT
GOTO LOOP
Running: LISTALL one two three four five six
Output:
Parameter: one
Parameter: two
Parameter: three
Parameter: four
Parameter: five
Parameter: six
Processing Multiple Files:
DELALL.BAT - Delete all specified files:
@ECHO OFF
IF "%1"=="" GOTO USAGE
:LOOP
IF "%1"=="" GOTO DONE
IF EXIST %1 DEL %1
IF EXIST %1 ECHO Failed to delete: %1
IF NOT EXIST %1 ECHO Deleted: %1
SHIFT
GOTO LOOP
:DONE
ECHO All files processed.
GOTO :EOF
:USAGE
ECHO Usage: DELALL file1 file2 file3 ...
Note: After SHIFT, the original %0 (script name) is lost. Save it to
a variable first if needed.
-------------------------------------------------------------------------------
ENVIRONMENT VARIABLES: %VARNAME%
-------------------------------------------------------------------------------
Access environment variables by surrounding the name with percent signs:
ECHO Command interpreter: %COMSPEC%
ECHO My directory: %MYDIR%
If the variable doesn't exist, the text is left unchanged:
ECHO Value is: %UNDEFINED%
Output: Value is: %UNDEFINED%
Using Variables in Conditions:
IF "%COMSPEC%"=="" ECHO COMSPEC not defined!
IF NOT "%MYDIR%"=="" ECHO MYDIR is set
Working with Environment Variables using SET:
Use SET with no arguments to display all environment variables:
SET
Use SET with a prefix to show only matching variables:
SET P Show variables starting with P
SET COM Show variables starting with COM
Use SET VAR=value to create or modify a variable:
SET MYDIR=C:\WORK
SET GREETING=Hello
Use SET VAR= (with nothing after the equals sign) to remove a variable:
SET MYDIR=
-------------------------------------------------------------------------------
CALLING OTHER BATCH FILES: CALL
-------------------------------------------------------------------------------
Use CALL to execute another batch file and return to continue:
@ECHO OFF
ECHO Starting installation...
CALL SETUP.BAT
ECHO Setup complete, running configuration...
CALL CONFIG.BAT %1
ECHO All done!
Without CALL, executing a batch file transfers control permanently
and does not return to the calling script.
Passing Parameters:
Parameters passed to CALL are available in the called script:
MAIN.BAT:
@ECHO OFF
CALL HELPER.BAT first second
HELPER.BAT:
@ECHO OFF
ECHO Received: %1 and %2
Running MAIN.BAT outputs:
Received: first and second
Nested Calls:
Batch files can call other batch files that call others:
MAIN.BAT -> CALL INIT.BAT -> CALL CHECK.BAT -> returns -> returns
Each CALL remembers where to return. Deep nesting may exhaust memory.
-------------------------------------------------------------------------------
FILE OPERATIONS
-------------------------------------------------------------------------------
Batch files include built-in commands for common file operations.
COPY - Copy Files:
COPY README.TXT BACKUP.TXT
COPY %1 %2
COPY README.TXT BACKUP.TXT
DEL / ERASE - Delete Files:
DEL TEMP.TXT
DEL *.BAK
ERASE OLD.DAT
Wildcards (* and ?) are supported.
REN / RENAME - Rename Files and Directories:
REN OLDNAME.TXT NEWNAME.TXT
REN DOCS ARCHIVE
REN \WORK\FILE.TXT \DONE\FILE.TXT
RENAME %1 %2
MD / MKDIR - Create Directories:
MD NEWDIR
MKDIR C:\PROGRAMS\MYAPP
IF NOT EXIST TEMP MD TEMP
RD / RMDIR - Remove Directories:
RD EMPTYDIR
RMDIR C:\OLD\TEMP
The directory must be empty.
CD / CHDIR - Change Directory:
CD \
CHDIR C:\DOS
CD ..
CD.. (space optional)
Changes the current directory for subsequent commands.
-------------------------------------------------------------------------------
OUTPUT REDIRECTION
-------------------------------------------------------------------------------
Redirect command output to a file using >:
DIR > FILELIST.TXT
ECHO Installation log > INSTALL.LOG
MEM > MEMINFO.TXT
The file is created or overwritten.
Discarding Output with NUL:
Redirect to NUL to discard unwanted output:
DEL *.TMP > NUL
COPY FILE.DAT BACKUP.DAT > NUL
This suppresses success messages while still showing errors.
Note: Input redirection (<) and append redirection (>>) are not supported.
-------------------------------------------------------------------------------
PRACTICAL PATTERNS
-------------------------------------------------------------------------------
Standard Script Header:
@ECHO OFF
REM =============================================
REM SCRIPTNAME.BAT - Brief description
REM Author: Your Name
REM Date: February 2026
REM =============================================
Parameter Validation:
@ECHO OFF
IF "%1"=="" GOTO USAGE
IF "%2"=="" GOTO USAGE
REM ... main script logic ...
GOTO :EOF
:USAGE
ECHO Usage: %0 source destination
ECHO.
ECHO Copies source file to destination.
Error Handling with ERRORLEVEL:
@ECHO OFF
ECHO Compiling program...
COMPILER.EXE %1
IF ERRORLEVEL 1 GOTO FAILED
ECHO Compilation successful!
GOTO :EOF
:FAILED
ECHO Compilation failed with errors.
Cleanup on Exit:
@ECHO OFF
ECHO Creating temporary files...
COPY %1 TEMP.DAT
REM ... do work ...
ECHO Cleaning up...
DEL TEMP.DAT
ECHO Done.
Installer Pattern:
@ECHO OFF
ECHO ================================
ECHO MyProgram Installation
ECHO ================================
ECHO.
REM Check for required parameter
IF "%1"=="" GOTO USAGE
REM Create installation directory
IF NOT EXIST C:\MYAPP MD C:\MYAPP
REM Copy files
ECHO Copying files...
COPY %1\MYAPP.EXE C:\MYAPP\ > NUL
IF ERRORLEVEL 1 GOTO FAILED
ECHO.
ECHO Installation complete!
ECHO Run C:\MYAPP\MYAPP.EXE to start.
GOTO :EOF
:FAILED
ECHO Installation failed!
GOTO :EOF
:USAGE
ECHO Usage: INSTALL sourcedir
Conditional Setup:
@ECHO OFF
IF NOT EXIST C:\GAMES MD C:\GAMES
IF EXIST C:\GAMES\GAME.EXE GOTO RUN
ECHO Game not installed.
GOTO :EOF
:RUN
C:\GAMES\GAME.EXE
Processing Multiple Files with Wildcards:
Use wildcards to operate on groups of files:
@ECHO OFF
ECHO Deleting all backup files...
DEL *.BAK
DEL *.TMP
DEL *.OLD
ECHO Done.
Using CALL for Modular Scripts:
MAIN.BAT:
@ECHO OFF
CALL INIT.BAT
IF ERRORLEVEL 1 GOTO FAILED
CALL PROCESS.BAT %1
IF ERRORLEVEL 1 GOTO FAILED
CALL CLEANUP.BAT
ECHO Success!
GOTO :EOF
:FAILED
ECHO An error occurred.
-------------------------------------------------------------------------------
DEBUGGING TIPS
-------------------------------------------------------------------------------
Remove @ECHO OFF Temporarily:
Comment out or remove @ECHO OFF to see each command as it executes:
REM @ECHO OFF
IF "%1"=="" GOTO USAGE
...
This shows exactly what the batch file is doing.
Add Progress Messages:
ECHO DEBUG: About to copy files...
COPY %1 %2
IF ERRORLEVEL 1 ECHO DEBUG: Copy FAILED
IF NOT ERRORLEVEL 1 ECHO DEBUG: Copy successful
Use PAUSE for Breakpoints:
ECHO About to delete files - press Ctrl+C to abort
PAUSE
DEL *.TMP
Check Variable Values:
ECHO Parameter 1 is: [%1]
ECHO Parameter 2 is: [%2]
Brackets make it easy to spot empty or whitespace values.
-------------------------------------------------------------------------------
QUICK REFERENCE
-------------------------------------------------------------------------------
Flow Control:
------------------ --------------------------------------------------
REM text Comment (ignored)
ECHO message Display message
ECHO. Display blank line
ECHO OFF Stop displaying commands
ECHO ON Resume displaying commands
@command Execute without displaying this line
PAUSE Wait for keypress
:label Define a label (target for GOTO)
GOTO label Jump to label
GOTO :EOF Exit batch file immediately
CALL file [args] Execute batch file and return
Conditionals:
------------------ --------------------------------------------------
IF EXIST file cmd Execute cmd if file exists
IF NOT EXIST file cmd Execute cmd if file doesn't exist
IF ERRORLEVEL n cmd Execute cmd if exit code >= n
IF NOT ERRORLEVEL n Execute cmd if exit code < n
IF "a"=="b" cmd Execute cmd if strings match
IF NOT "a"=="b" cmd Execute cmd if strings differ
Variables:
------------------ --------------------------------------------------
%0 Batch file name
%1 - %9 Command line parameters
%% Literal percent sign
%VARNAME% Environment variable value
SHIFT Shift parameters left
SET Display all environment variables
SET prefix Display variables starting with prefix
SET VAR=value Set environment variable
SET VAR= Remove environment variable
File Operations:
------------------ --------------------------------------------------
COPY src dest Copy a file
DEL file Delete a file (also: ERASE)
MOVE src dest Move a file
REN old new Rename a file or directory (also: RENAME)
MD dir Create directory (also: MKDIR)
RD dir Remove directory (also: RMDIR)
CD path Change directory (also: CHDIR)
Redirection:
------------------ --------------------------------------------------
cmd > file Redirect output to file
cmd > NUL Discard output
-------------------------------------------------------------------------------
EXAMPLE PROGRAMS
-------------------------------------------------------------------------------
This section provides complete, ready-to-use batch file examples that
demonstrate common tasks and techniques. All examples use only features
available in DR DOS.
Example 1: CLEANUP.BAT - Delete Temporary Files
------------------------------------------------
Removes common temporary files from the current directory.
@ECHO OFF
REM =============================================
REM CLEANUP.BAT - Remove temporary files
REM =============================================
ECHO Cleaning up temporary files...
ECHO.
IF EXIST *.TMP DEL *.TMP
IF EXIST *.BAK DEL *.BAK
IF EXIST *.OLD DEL *.OLD
ECHO Cleanup complete.
Example 2: BACKUP.BAT - Backup Files to Another Directory
----------------------------------------------------------
Copies important files to a backup directory, creating it if needed.
@ECHO OFF
REM =============================================
REM BACKUP.BAT - Backup files to D:\BACKUP
REM Usage: BACKUP filename
REM =============================================
IF "%1"=="" GOTO USAGE
REM Create backup directory if it doesn't exist
IF NOT EXIST D:\BACKUP MD D:\BACKUP
REM Check if source file exists
IF NOT EXIST %1 GOTO NOTFOUND
ECHO Backing up %1 to D:\BACKUP...
COPY %1 D:\BACKUP
IF ERRORLEVEL 1 GOTO FAILED
ECHO Backup successful.
GOTO :EOF
:NOTFOUND
ECHO ERROR: File %1 not found.
GOTO :EOF
:FAILED
ECHO ERROR: Backup failed.
GOTO :EOF
:USAGE
ECHO Usage: BACKUP filename
ECHO.
ECHO Copies the specified file to D:\BACKUP directory.
Example 3: INSTALL.BAT - Simple Installer
------------------------------------------
Installs a program to a target directory with error checking.
@ECHO OFF
REM =============================================
REM INSTALL.BAT - Install MyProgram
REM Usage: INSTALL [source_dir]
REM =============================================
ECHO ================================
ECHO MyProgram Installation
ECHO ================================
ECHO.
REM Default source is current directory
IF "%1"=="" GOTO USE_CURRENT
IF NOT EXIST %1\MYAPP.EXE GOTO NOTFOUND
GOTO INSTALL
:USE_CURRENT
IF NOT EXIST MYAPP.EXE GOTO NOTFOUND
:INSTALL
ECHO Creating program directory...
IF NOT EXIST C:\MYAPP MD C:\MYAPP
ECHO Copying program files...
IF "%1"=="" GOTO COPY_CURRENT
COPY %1\MYAPP.EXE C:\MYAPP > NUL
GOTO CHECK_COPY
:COPY_CURRENT
COPY MYAPP.EXE C:\MYAPP > NUL
:CHECK_COPY
IF ERRORLEVEL 1 GOTO FAILED
ECHO.
ECHO Installation complete!
ECHO.
ECHO Run C:\MYAPP\MYAPP.EXE to start the program.
GOTO :EOF
:NOTFOUND
ECHO ERROR: MYAPP.EXE not found.
ECHO Please specify the source directory.
GOTO :EOF
:FAILED
ECHO ERROR: Installation failed.
Example 4: MENU.BAT - Simple Menu System
-----------------------------------------
Displays a menu and runs programs based on batch file parameter.
@ECHO OFF
REM =============================================
REM MENU.BAT - Main Menu
REM Usage: MENU [choice]
REM =============================================
:SHOW_MENU
CLS
ECHO.
ECHO ========================================
ECHO MAIN MENU
ECHO ========================================
ECHO.
ECHO 1. Run Directory Listing
ECHO 2. Display Memory Status
ECHO 3. Run Cleanup
ECHO 4. Exit to DOS
ECHO.
ECHO To select, type: MENU 1, MENU 2, MENU 3, or MENU 4
ECHO.
IF "%1"=="" GOTO :EOF
IF "%1"=="1" GOTO OPTION1
IF "%1"=="2" GOTO OPTION2
IF "%1"=="3" GOTO OPTION3
IF "%1"=="4" GOTO :EOF
ECHO Invalid choice: %1
GOTO :EOF
:OPTION1
DIR
PAUSE
GOTO :EOF
:OPTION2
MEM
PAUSE
GOTO :EOF
:OPTION3
CALL CLEANUP.BAT
PAUSE
GOTO :EOF
Example 5: DEPLOY.BAT - Multi-Step Deployment
----------------------------------------------
Demonstrates CALL, ERRORLEVEL checking, and multi-step operations.
@ECHO OFF
REM =============================================
REM DEPLOY.BAT - Deploy application files
REM Usage: DEPLOY source_dir target_dir
REM =============================================
IF "%1"=="" GOTO USAGE
IF "%2"=="" GOTO USAGE
ECHO Starting deployment...
ECHO Source: %1
ECHO Target: %2
ECHO.
REM Step 1: Validate source
ECHO Step 1: Validating source directory...
IF NOT EXIST %1 GOTO NO_SOURCE
REM Step 2: Create target
ECHO Step 2: Creating target directory...
IF NOT EXIST %2 MD %2
IF ERRORLEVEL 1 GOTO MKDIR_FAILED
REM Step 3: Copy new files
ECHO Step 3: Copying new files...
COPY %1\APP.EXE %2 > NUL
IF ERRORLEVEL 1 GOTO COPY_FAILED
ECHO.
ECHO Deployment successful!
GOTO :EOF
:NO_SOURCE
ECHO ERROR: Source directory %1 not found.
GOTO :EOF
:MKDIR_FAILED
ECHO ERROR: Could not create directory %2.
GOTO :EOF
:COPY_FAILED
ECHO ERROR: File copy failed.
GOTO :EOF
:USAGE
ECHO Usage: DEPLOY source_dir target_dir
ECHO.
ECHO Copies all files from source to target directory.
Example 6: ALLPARAM.BAT - Process All Parameters with SHIFT
------------------------------------------------------------
Demonstrates using SHIFT to handle unlimited parameters.
@ECHO OFF
REM =============================================
REM ALLPARAM.BAT - Process all command-line parameters
REM Usage: ALLPARAM file1 file2 file3 ...
REM =============================================
IF "%1"=="" GOTO USAGE
ECHO Processing files...
ECHO.
:LOOP
IF "%1"=="" GOTO DONE
ECHO Checking: %1
IF EXIST %1 ECHO - File exists
IF NOT EXIST %1 ECHO - File NOT found
SHIFT
GOTO LOOP
:DONE
ECHO.
ECHO All parameters processed.
GOTO :EOF
:USAGE
ECHO Usage: ALLPARAM file1 file2 file3 ...
ECHO.
ECHO Checks each specified file and reports if it exists.
Example 7: SAFEDEL.BAT - Safe Delete with Confirmation
-------------------------------------------------------
Deletes files only after confirming they exist.
@ECHO OFF
REM =============================================
REM SAFEDEL.BAT - Delete file with safety checks
REM Usage: SAFEDEL filename
REM =============================================
IF "%1"=="" GOTO USAGE
IF NOT EXIST %1 GOTO NOTFOUND
ECHO File to delete: %1
ECHO.
ECHO Press any key to delete, or Ctrl+C to cancel...
PAUSE > NUL
DEL %1
IF ERRORLEVEL 1 GOTO FAILED
IF EXIST %1 GOTO FAILED
ECHO File deleted successfully.
GOTO :EOF
:NOTFOUND
ECHO File %1 does not exist.
GOTO :EOF
:FAILED
ECHO ERROR: Could not delete %1.
GOTO :EOF
:USAGE
ECHO Usage: SAFEDEL filename
ECHO.
ECHO Deletes the specified file after confirmation.
Example 8: DIRLOG.BAT - Save Directory Listing
-----------------------------------------------
Saves a directory listing to a text file for later reference.
@ECHO OFF
REM =============================================
REM DIRLOG.BAT - Save directory listing to file
REM Usage: DIRLOG [directory]
REM =============================================
IF "%1"=="" GOTO CURRENT
IF NOT EXIST %1 GOTO NOTFOUND
CD %1
:CURRENT
ECHO Saving directory listing...
DIR > DIRLIST.TXT
ECHO Directory saved to DIRLIST.TXT
ECHO.
ECHO Contents:
TYPE DIRLIST.TXT
GOTO :EOF
:NOTFOUND
ECHO Directory %1 not found.
Example 9: RUNAPP.BAT - Run Application with Setup
---------------------------------------------------
Sets up the environment before running a program.
@ECHO OFF
REM =============================================
REM RUNAPP.BAT - Run application with setup
REM =============================================
ECHO Setting up environment...
REM Ensure required directories exist
IF NOT EXIST C:\TEMP MD C:\TEMP
IF NOT EXIST C:\APP\DATA MD C:\APP\DATA
REM Change to application directory
CD C:\APP
REM Run the application
ECHO Starting application...
MYAPP.EXE
REM Check exit status
IF ERRORLEVEL 1 GOTO ERROR
ECHO Application completed normally.
GOTO :EOF
:ERROR
ECHO Application exited with an error.
Example 10: DAILY.BAT - Daily Maintenance Tasks
------------------------------------------------
Combines multiple maintenance operations into one script.
@ECHO OFF
REM =============================================
REM DAILY.BAT - Daily system maintenance
REM Run this batch file once per day
REM =============================================
ECHO ========================================
ECHO Daily Maintenance Starting
ECHO ========================================
ECHO.
REM Step 1: Clean temporary files
ECHO Step 1: Cleaning temporary files...
CD C:\TEMP
IF EXIST *.TMP DEL *.TMP
IF EXIST *.BAK DEL *.BAK
CD \
REM Step 2: Create backup directory with today's files
ECHO Step 2: Backing up important files...
IF NOT EXIST D:\DAILY MD D:\DAILY
IF EXIST C:\DOCS\README.TXT COPY C:\DOCS\README.TXT D:\DAILY > NUL
REM Step 3: Report completion
ECHO.
ECHO ========================================
ECHO Maintenance Complete
ECHO ========================================
ECHO.
ECHO Temporary files cleaned.
ECHO Documents backed up to D:\DAILY.
-------------------------------------------------------------------------------
LIMITATIONS
-------------------------------------------------------------------------------
The following features are NOT supported in DR DOS batch files:
- FOR loops (FOR %%v IN (set) DO command)
- Input redirection (<)
- Append redirection (>>)
- Pipes within batch files
- Delayed variable expansion
- CHOICE command for menus
===============================================================================
APPENDIX C: REPORTING BUGS AND ISSUES
===============================================================================
DR DOS 9.0 is currently in beta testing. We appreciate your help in
making DR DOS better by reporting any issues you encounter.
During beta testing, you may experience bugs, crashes, system freezes,
filesystem corruption, or hardware and software compatibility issues.
These are expected during this phase of development, and your reports
help us identify and fix problems.
WHAT TO REPORT
Please report any of the following:
- System crashes or freezes
- Filesystem corruption or data loss
- Programs that don't run correctly
- Unexpected error messages
- Hardware or software incompatibilities
- Any behavior that seems incorrect or unusual
HOW TO REPORT A BUG
You can report bugs in two ways:
- Fill out the support form at: https://www.dr-dos.com/support.html
- Send an email to: bugs@dr-dos.com
Please include the following information in your report:
1. Version and Revision
Run the VER command at the DOS prompt to see your version.
It will display something like "DR DOS 9.0 rev 80".
Include the complete version string in your report.
2. Hardware or Virtualization Environment
Examples:
- QEMU 10.2 on Windows 11
- VirtualBox 7.0 on Linux
- Intel Pentium II PC with 440LX chipset, 128MB RAM
- 86Box emulator
3. What You Were Doing
Describe the task you were performing when the issue occurred.
Examples:
- "I was installing Lotus 1-2-3"
- "I was playing Commander Keen Episode 1"
- "I was copying files from C: to D:"
4. What Happened
Describe what you saw on screen. Screenshots or photos are very
helpful if possible. Include any error messages exactly as shown.
GETTING HELP
Website: https://www.dr-dos.com
Support: https://www.dr-dos.com/support.html
Bug Reports: bugs@dr-dos.com
Check the website for documentation, updates, and known issues.
Thank you for helping us improve DR DOS!
===============================================================================
GLOSSARY
===============================================================================
AUTOEXEC.BAT
A batch file in the root directory of the boot drive that DR DOS
executes automatically at startup. Used to set environment
variables, load programs, and configure the system.
Batch file
A text file with a .BAT extension containing commands to be
executed in sequence. Used for automation and scripting.
Boot
The process of starting up a computer and loading the operating
system.
CHS
Cylinder-Head-Sector. A method of addressing disk sectors using
the physical geometry of the drive. Common on systems before 1994.
DR DOS fully supports CHS disk addressing.
Command interpreter
The program (COMMAND.COM) that displays the DOS prompt and
executes your commands.
Command prompt
The text displayed by DOS (e.g., C:\>) indicating it is ready
to accept a command.
CONFIG.SYS
A configuration file in the root directory that DR DOS processes
at boot time. Used to load device drivers (DEVICE), set file
handles (FILES), configure the command interpreter (SHELL), and
control other system settings.
Conventional memory
The first 640KB of memory, directly accessible by DOS programs.
This is the primary memory space for running programs.
Current directory
The directory where DOS looks for files by default. Displayed
in the command prompt.
Device
A hardware component or pseudo-device accessible through a
reserved name. DOS devices include CON (console), NUL (null
device), AUX (auxiliary), and PRN (printer).
Directory
A container for files and other directories, used to organize
the contents of a disk.
Drive
A device that reads and writes data to storage media. Identified
by a letter (A:, C:, D:, etc.).
EMS
Expanded Memory Specification. A standard for accessing memory
beyond 640KB through a page-mapped window. DR DOS provides EMS 4.0
support via the EMM386.SYS driver loaded in CONFIG.SYS.
Environment variable
A named value stored in the system environment, accessible to
programs and batch files. Example: COMSPEC.
ERRORLEVEL
The exit code returned by a program when it finishes. Used in
batch files with IF ERRORLEVEL to test for success or failure.
Extension
The part of a filename after the period, typically indicating
the file type. Limited to 3 characters.
External command
A command that exists as a separate program file (.COM or .EXE)
rather than being built into COMMAND.COM.
FAT12
File Allocation Table (12-bit). A filesystem format used on floppy
disks and small hard disk partitions. DR DOS supports FAT12 on all
drives and detects it automatically.
FAT16
File Allocation Table (16-bit). A filesystem format used on hard
disk partitions. DR DOS supports FAT16 on all drives and detects
it automatically.
File
A named collection of data stored on disk.
HMA
High Memory Area. The first 64KB of extended memory (minus 16
bytes), accessible in real mode. Used by DR DOS to load part
of the kernel, freeing conventional memory.
Internal command
A command built into COMMAND.COM, always available without
needing a separate program file.
LBA
Logical Block Addressing. A method of addressing disk sectors
using a linear block number. Common on systems from 1994 onward.
DR DOS fully supports LBA disk addressing.
NUL
A special device that discards all output written to it and
returns empty input when read. Useful for suppressing output:
command > NUL
Page frame
A 64KB window in upper memory (typically at segment D000h)
through which EMS expanded memory pages are accessed.
Parameter
Information provided to a command that modifies its behavior.
Path
The complete specification of a file's location, including
drive, directories, and filename.
Redirection
Sending a command's output to a file instead of the screen,
using the > operator.
Root directory
The top-level directory on a disk, from which all other
directories branch.
VCPI
Virtual Control Program Interface. A standard allowing DOS
extenders and protected-mode programs to coexist with EMS memory
managers. EMM386.SYS provides VCPI support.
Wildcard
A special character (* or ?) that matches multiple characters
in a filename, used to specify groups of files.
XMS
Extended Memory Specification. A standard for accessing extended
memory (above 1MB) on 286 and higher processors. DR DOS includes
a built-in XMS driver and uses XMS as backing store for EMS.
===============================================================================
END OF USER GUIDE
===============================================================================
WHITEHORN LTD. CO.
3963 S Highway 97 #214
Sand Springs, OK 74063
DR DOS is a registered trademark of Whitehorn Ltd. Co.
Copyright (c) 2022-2026 Whitehorn Ltd. Co.
All rights reserved.