Skip to main content

Full text of "ibm :: pc :: dos :: 6138519 DOS 3.10 Reference Feb85"

See other formats


Disk Operating System Version 3.10 



Reference 



Programming Family 



Personal 

Computer 

Software 



First edition (February 1985) 



The following paragraph does not apply to the United Kingdom or any country where such 
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES 
CORPORATION 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. Some states do not allow disclaimer of 
express or implied warranties in certain transactions, therefore, this statement may not 
apply to you. 

This publication could include technical inaccuracies or typographical errors. Changes are 
periodically made to the information herein; these changes will be incorporated in new 
editions of the publication. IBM may make improvements and/or changes in the 
product(s) and/or the program(s) described in this publication at any time. 

It is possible that this publication may contain reference to, or information about, IBM 
products (machines and programs), programming, or services that are not announced in 
your country. Such references or information must not be construed to mean that IBM 
intends to announce such IBM products, programming, or services in your country. 

Products are not stocked at the address below. Requests for copies of this publication and 
for technical information about IBM Personal Computer products should be made to your 
authorized IBM Personal Computer dealer, IBM Product Center, or your IBM Marketing 
Representative. 

The following paragraph applies only to the United States and Puerto Rico: A Reader's 
Comment Form is provided at the back of this publication. If the form has been removed, 
address comments to: IBM Corporation, Personal Computer, P.O. Box 1328-C, Boca 
Raton, Florida 33432. IBM may use or distribute any of the information you supply in 
any way it believes appropriate without incurring any obligations whatever. 

© Copyright International Business Machines Corporation 1984, 1985 



About This Book 



Read This First 



This manual explains how to use the IBM Personal 
Computer Disk Operating System Version 3.10. 
Information is given on how to: 



Refer to DOS files 

Prepare your fixed disk for DOS 

Use directories to organize your disks 

Use redirection, piping, and filters with standard 
input and standard output 

Use DOS commands 

Create and edit files using EDLIN 

Link programs with the LINKER. 



First Time Users 



Before using your DOS diskette for the first time, read 
the sections "Using Your DOS Diskettes" and "About 
Diskette Drives and Diskettes" in Chapter 1 of this 
book. 



111 



Experienced Users 



Experienced programmers can use this book together 
with the IBM DOS Technical Reference to develop 
application programs. Information is provided on: 

Installable device drivers 



Cursor control sequences that control cursor 
positioning and reassign keyboard keys 

File Management 

DOS disk allocation 

DOS interrupts and function calls 

DOS control blocks and work area 

Executing commands from within an application 

Fixed disk information 

EXE file structure and loading 

DOS memory management 

DEBUG 



IV 



Terms Used 



The terms "diskette," "fixed disk," and "disk" are used 
throughout this book. Where "diskette" is used, it 
applies only to diskette drives and diskettes. Where 
"fixed disk" is used, it applies only to the IBM 
non-removable fixed disk drive. Where "disk" is used, 
it applies to both fixed disks and diskettes. 

The terms "source" and "target" are used to describe 
diskettes and drives. The source refers to the original 
or first diskette or drive, and the target refers to the 
second or new diskette or drive. 

The terms "local" and "remote" describe the location 
of a disk, directory or printer relative to your computer. 
A local disk, directory, or printer is on your computer. 
A remote disk, directory, or printer is on a network 
computer. 



Using Applications with DOS 3.10 

To use applications with DOS Version 3.10, you need 
to follow the setup procedures given in the IBM 
Application Setup Guide. Do not follow the setup 
procedures given in your application manual. 



How This Book is Organized 

This book has 10 chapters and one appendix. 

Chapter 1 is an introduction to DOS Version 3.10. It 
contains information about diskette types and 
compatibility. The new features of DOS Version 3.10 
are also discussed. 

Chapter 2 describes the DOS file specification. 
Information on valid filename characters and global 
filename characters is described. 



Chapter 3 gives detailed instructions on how to prepare 
your fixed disk for use by DOS. 

Chapter 4 describes system configuration. It contains 
the commands that you can include in a CONFIG.SYS 
file to configure your system. 

Chapter 5 describes the use of tree-structured 
directories. 

Chapter 6 describes how to use redirection, piping, and 
DOS filters with standard input and standard output. 

Chapter 7 gives a detailed description of DOS 
commands, listed in alphabetic order. The descriptions 
define the purpose, format, and type (internal or 
external) of each command. Examples are given where 
appropriate. 

Chapter 8 describes how to use EDLIN, the line editor 
to create, alter, and display source language files and 
text files. 

Chapter 9 describes the use of the Linker program to 
link programs together before execution. 

Chapter 10 tells you how to use the DEBUG program. 

Appendix A explains general and device error messages 
and gives an appropriate response for each message. 



VI 



Contents 



Chapter 1. Introduction 1-1 

About Your DOS Books and Diskettes 1-3 

Using Your DOS Diskettes 1-3 

DOS 3.10 Features 1-4 

New Commands 1-4 

Enhanced Commands 1-5 

About Diskette Drives and Diskettes 1-6 

Types of Diskette Drives 1-6 

Types of Diskettes 1-6 

Diskette and Drive Compatibility 1-7 

About Messages 1-8 

Chapter 2. File Specification 2-1 

Introduction 2-3 

The File Specification 2-3 

DOS Device Names 2-5 

Global Filename Characters 2-7 

The ? Character 2-7 

The * Character 2-8 

Examples of Ways to Use ? and * 2-9 

Chapter 3. Preparing Your Fixed Disk 3-1 

Introduction 3-3 

Replacing a Previous Version of DOS 3-3 

Referring to Disk Drives 3-4 

Dividing Your Fixed Disk 3-4 

Using FDISK 3-6 

Starting FDISK 3-7 

Creating a DOS Partition (Choice 1) 3-9 

Using an Entire Fixed Disk for DOS . 3-10 

Using Part of a Fixed Disk for DOS . . 3-11 

Changing the Active Partition (Choice 2) . 3-13 

Deleting a DOS Partition (Choice 3) 3-15 

Displaying Partition Information (Choice 4) 3-17 
Select the Next Fixed Disk Drive (Choice 5) 3-18 

Formatting Your DOS Partition 3-18 

Copying DOS to Your DOS Partition 3-22 



vu 



Starting DOS from Your Fixed Disk 3-23 

Chapter 4. Configuring Your System 4-1 

Introduction 4-3 

What is a Configuration File ? 4-4 

Creating a CONFIG.SYS File 4-4 

Configuration Commands 4-5 

BREAK Command 4-6 

BUFFERS Command 4-7 

COUNTRY Command 4-11 

DEVICE Command 4-13 

Loading Standard Device Drivers .... 4-13 
Installing Your Own Device Driver ... 4-13 

ANSI.SYS 4-14 

VDISK.SYS 4-14 

FCBS (File Control Block) Command 4-19 

With File Sharing 4-20 

Without File Sharing 4-20 

FILES Command 4-22 

LASTDRIVE Command 4-24 

SHELL Command 4-25 

Chapter 5. Using Tree-Structured Directories .... 5-1 

Introduction 5-3 

Why Use Directories? 5-3 

How Directories Are Organized 5-4 

Directory Entries 5-5 

Accessing Your Subdirectories 5-6 

The Current Directory 5-6 

Changing Directories with CHDIR .... 5-7 

Specifying a Path to a File 5-7 

Using the PATH Command 5-8 

Using PATH in a Batch File 5-9 

Using Directory Commands 5-10 

Making a Subdirectory 5-11 

Removing a Subdirectory 5-13 

Displaying and Changing the Current 

Directory 5-14 

Displaying the Directory Structure ... 5-15 
Where DOS Looks for Commands and Batch 
Files 5-15 

Chapter 6. Standard Input and Standard Output . . . 6-1 



vui 



Introduction 6-3 

Redirection of Standard Input and Output 

Devices 6-3 

Piping of Standard Input and Output 6-6 

DOS Filters 6-7 

Chapter 7. DOS Commands 7-1 

Introduction 7-5 

DOS Commands and the Network 7-7 

Types of DOS Commands 7-8 

Entering a DOS Command 7-9 

Information Common to All DOS 

Commands 7-10 

DOS Commands 7-13 

ASSIGN (Drive) Command 7-14 

ATTRIB (Attribute) Command 7-17 

BACKUP Command 7-19 

Batch File Commands 7-24 

Creating a Batch File 7-26 

Executing a Batch file 7-27 

The AUTOEXEC.BAT File 7-27 

Creating an AUTOEXEC.BAT file . . 7-28 
Creating a Batch File with Replaceable 

Parameters 7-28 

Executing a Batch File with Replaceable 

Parameters 7-29 

ECHO Subcommand 7-30 

FOR Subcommand 7-32 

GOTO Subcommand 7-33 

IF Subcommand 7-34 

PAUSE Subcommand 7-38 

REM (Remark) Subcommand 7-39 

SHIFT Subcommand 7-40 

BREAK (Control Break) Command 7-43 

CHDIR (Change Directory) Command . . . 7-45 

CHKDSK (Check Disk) Command 7-48 

CLS (Clear Screen) Command 7-52 

COMMAND (Secondary Command 

Processor) Command 7-53 

COMP (Compare Files) Command 7-55 

COPY Command 7-60 

CTTY (Change Console) Command 7-72 

DATE Command 7-74 



IX 



DEL (Delete) Command 7-77 

DIR (Directory) Command 7-79 

DISKCOMP (Compare Diskettes Only) 
Command 7-84 

DISKCOMP Compatibility 7-88 

DISKCOPY (Copy Diskettes Only) 

Command 7-90 

DISKCOPY Compatibility 7-94 

ERASE Command 7-96 

EXE2BIN Command 7-98 

FDISK Command 7-101 

FIND Filter Command 7-102 

FORMAT Command . 7-105 

FORMAT Compatibility 7-110 

GRAFT ABL (Load Graphics Table) 

Command 7-113 

GRAPHICS (Screen Print) Command ... 7-115 
JOIN Command 7-118 

Why Use JOIN? 7-122 

KEYBxx (Load Keyboard) Command ... 7-123 

LABEL (Volume Label) Command 7-127 

MKDIR (Make Directory) Command ... 7-130 

MODE Command 7-132 

MORE Filter Command 7-139 

PATH (Set Search Directory) Command . 7-140 

PRINT Command 7-143 

PROMPT (Set System Prompt) Command 7-149 

RECOVER Command 7-153 

RENAME (or REN) Command 7-156 

RESTORE Command 7-157 

RMDIR (Remove Directory) Command . 7-161 

SELECT Command 7-162 

SET (Set Environment) Command 7-164 

SHARE Command 7-167 

SORT Filter Command 7-169 

SUBST(Substitute) Command 7-172 

SYS (System) Command 7-178 

TIME Command 7-180 

TREE Command 7-182 

TYPE Command 7-185 

VER (Version) Command 7-186 

VERIFY Command 7-187 

VOL (Volume) Command 7-188 



Chapter 8. The Line Editor (EDLIN) 8-1 

Introduction 8-3 

How to Start the EDLIN Program 8-5 

Editing an Existing File 8-5 

Editing a New File 8-6 

The EDLIN Command Parameters 8-7 

The EDLIN Commands 8-9 

Information Common to All EDLIN 

Commands 8-9 

A (Append Lines) Command 8-11 

C (Copy Lines) Command 8-12 

D (Delete Lines) Command 8-13 

Edit Line Command 8-16 

E (End Edit) Command 8-18 

I (Insert Lines) Command 8-19 

L (List Lines) Command 8-22 

M (Move Lines) Command 8-25 

P (Page) Command 8-26 

Q (Quit Edit) Command 8-27 

R (Replace Text) Command 8-28 

S (Search Text) Command 8-31 

T (Transfer Lines) Command 8-34 

W (Write Lines) Command 8-35 

Chapter 9. The Linker (LINK) Program 9-1 

Introduction 9-3 

Files 9-4 

Input Files 9-4 

Output Files 9-5 

VM.TMP (Temporary File) 9-5 

Definitions 9-6 

Segment 9-6 

Group 9-7 

Class 9-7 

Command Prompts 9-7 

Detailed Descriptions of the Command 

Prompts 9-9 

Object Modules [.OBJ]: 9-9 

Run File [filename.EXE]: 9-10 

List File [NUL.MAP]: 9-10 

Libraries [.LIB]: 9-12 

Linker Parameters 9-14 

How to Start the Linker Program 9-17 



XI 



Before You Begin 9-17 

Option 1 - Console Responses 9-17 

Option 2 - Command Line 9-18 

Option 3 - Automatic Responses .... 9-21 

Example Linker Session 9-23 

How to Determine the Absolute 

Address of a Segment 9-26 

Messages 9-27 

Chapter 10. DEBUG Program 10-1 

Introduction 10-3 

How to Start the DEBUG Program 10-4 

The DEBUG Command Parameters 10-6 

The DEBUG Commands 10-13 

Information Common to All DEBUG 

Commands 10-13 

A (Assemble) Command 10-15 

C (Compare) Command 10-19 

D (Dump) Command 10-20 

E (Enter) Command 10-23 

F (Fill) Command 10-26 

G (Go) Command 10-27 

H (Hexarithmetic) Command 10-30 

I (Input) Command 10-31 

L (Load) Command 10-32 

M (Move) Command 10-35 

N (Name) Command 10-36 

O (Output) Command 10-38 

P (Proceed) Command 10-39 

Q (Quit) Command 10-40 

R (Register) Command 10-41 

S (Search) Command 10-46 

T (Trace) Command 10-47 

U (Unassemble) Command 10-49 

W (Write) Command 10-52 

Appendix A. Messages A-3 

Introduction A-3 

Responses A-3 

Device Error Messages A-4 

Other Messages A-l 1 

Index Index- 1 



xn 



Chapter 1. Introduction 



Contents 

About Your DOS Books and Diskettes 1-3 

Using Your DOS Diskettes 1-3 

DOS 3.10 Features 1-4 

New Commands 1-4 

Enhanced Commands 1-5 

About Diskette Drives and Diskettes 1-6 

Types of Diskette Drives 1-6 

Types of Diskettes 1-6 

Diskette and Drive Compatibility 1-7 

About Messages 1-8 



1-1 



Notes: 



1-2 



About Your DOS Books and Diskettes 

DOS Version 3.10 comes with three books: 

• Application Setup Guide 

• DOS User's Guide 

• DOS Reference 

DOS also comes on two diskettes. Both diskettes are in 
the back of the DOS Reference in a plastic pocket. The 
first diskette, labeled "DOS," contains the DOS 
programs and commands. In this book, the first 
diskette is referred to as the DOS diskette. The second 
diskette, labeled "DOS Supplemental Programs," 
contains the LINK Utility, EXE2BIN, a sample device 
driver listing, and BASIC sample programs. In this 
book, the second diskette is referred to as the 
Supplemental diskette. 



Using Your DOS Diskettes 



DOS Version 3.10 is different from previous versions 
of DOS. When you load DOS for the first time, you 
need to select the keyboard layout you want to use and 
the country whose date and time format you want to 
use. You can select the keyboard layout and the date 
and time format by using: 

• The SELECT command described in Chapter 7 

• The COUNTRY configuration command (Chapter 
4) and the KEYBxx command (Chapter 7) 



1-3 



DOS 3.10 Features 



This section describes the new and changed features of 
DOS Version 3.10. These are the new and changed 
features since DOS Version 3.00. 



New Commands 



The following new commands have been added to DOS 
Version 3.10. Refer to the command description in 
Chapter 7 of this book for further details and examples. 

JOIN 

Using JOIN, you can connect a drive to a directory on 
another drive to create a new directory structure. You 
can then access files on more than one drive using only 
one drive specifier. 

SUBST 

Use SUBST to substitute a drive letter for a drive or a 
directory. Then you can access files on that drive or 
directory by referring to the drive letter. SUBST is a 
way to reassign drives that is preferred over the 
ASSIGN command. 

If you use applications that do not recognize paths or 
tree-structured directories, SUBST allows you to 
substitute a drive letter for a path. 

Network Support 

DOS Version 3.10 supports the IBM PC Network. 
You can use most DOS commands on a network disk, 
directory or printer. 



1-4 



Enhanced Commands 



The following commands have been enhanced for DOS 
Version 3.10. Please refer to the command descriptions 
in Chapter 7 of this book for further details. 

LABEL 

The LABEL command now prompts you before 
deleting a volume label. 

TREE 

The TREE command now displays all files under the 
root directory when you specify the /F parameter. 

Enhanced Linker 

A new parameter (/X) is available with the Linker so 
that you can specify an increased number of segments. 



1-5 



About Diskette Drives and Diskettes 



Types of Diskette Drives 

Your IBM Personal Computer can have the following 
types of diskette drives: 

• Single sided ( 1 60KB/ 1 80KB) 

. Double sided (320KB/360KB) 

High capacity ( 1 .2MB) 



Types of Diskettes 



You can use the following types of diskettes to read and 
write information: 

. Single sided ( 1 60KB/ 1 80KB) 

. Double sided (320KB/360KB) 

High capacity ( 1 .2MB) 

A Single-sided diskette contains 40 tracks, 8/9 sectors 
per track, and holds up to 160K/180K bytes of 
information (K equals 1024). 

A Double-sided diskette contains 40 tracks, 8/9 sectors 
per track, and holds up to 320K/360K bytes of 
information (K equals 1024). 

A High-capacity diskette is a double-sided diskette that 
contains 80 tracks, 15 sectors per track, and holds up to 
1.2M bytes of information (M equals 1,048,576). 



1-6 



Diskette and Drive Compatibility 



Some combinations for reading and writing between 
different diskette and drive types are not allowed. The 
following sections describe which diskette and drive 
combinations are allowed. 

Single-Sided Drives 

You can read and write to: 

• Single-sided diskettes 
Double-Sided Drives 

You can read and write to: 

• Single-sided diskettes 

• Double-sided diskettes 
High-Capacity Drives 

You can read and write to: 

• Single-sided diskettes* 

• Double-sided diskettes* 

• High-capacity diskettes 

♦Important: If you write on any of these diskette types 
using a high-capacity drive, you may not be able to read 
the diskettes in a single- or double-sided drive. 

You need to consider diskette and drive compatibility 
when you use DOS commands that read and write to 
diskettes. For example, the FORMAT command 
contains a section called "FORMAT Compatibility." 
Read the sections about compatibility before using the 
command. 



1-7 



About Messages 



You may get messages on your screen when you use 
DOS commands. If you get a message and need help, 
refer to "Messages" in Appendix A for the explanation 
of the message and the action you should take. 



1-8 



Chapter 2. File Specification 



Contents 

Introduction 2-3 

The File Specification 2-3 

DOS Device Names 2-5 

Global Filename Characters 2-7 

The ? Character 2-7 

The * Character 2-8 

Examples of Ways to Use ? and * 2-9 

Example 1 2-9 

Example 2 2-9 

Example 3 2-9 



2-1 



Notes: 



2-2 



Introduction 



This chapter describes the file specification. It includes 
a description of the drive specifier, the filename, and 
the extension. It also contains information on the 
acceptable filename characters, reserved device names, 
and global filename characters. 



The File Specification 



The file specification tells DOS where to search for the 
specified file. Afilespec consists of three parts: the 
drive specifier, the filename, and the filename 
extension. The following table describes each part of a 
filespec. 



Parameter 


Definition 


d: 


Denotes the drive specifier. It specifies the 
drive that contains the file you want to refer to. 
To specify the drive, type the drive letter 
followed by a colon. For example, A: is the 
drive specifier that represents drive A. If you 
omit the drive specifier, DOS assumes the file is 
located in the default drive. 



2-3 



Parameter 


Definition 


filename 


Denotes the filename. The filename consists of 
one to eight characters. When you type a 
filename, DOS checks for invalid characters. 
The following characters are invalid in 
filenames. 

. " / \ C 1 : 
!<> + = ;, 

ASCII characters less than 20H 

Any other characters are valid. 


ext 


Denotes the filename extension. The filename 
extension consists of a period followed by one 
to three characters. The following characters 
are invalid in a filename extension: 

. " / \ [ ] : 

!<> + = ;, 

ASCII characters less than 20H 

Any other characters are valid. 



2-4 



DOS Device Names 



Certain names have special meaning to DOS. They are 
called DOS device names. Since they are reserved, do 
not name files with a DOS device name. DOS reserves 
the following names: 



Reserved 
Name 


Device 


CON 


Console keyboard/screen. If used as an 
input device, you can press the F6 key; 
then press Enter to generate an 
end-of-file indication, which ends CON 
as an input device. 


AUX 

or 

COMl 


First Serial/Parallel Adapter port. 


COM2 


Second Serial/ Parallel Adapter port. 


LPTl 

or 

PRN 


First Parallel Printer (as an output device 
only). 


LPT2 

and 

LPT3 


Second Parallel Printer 
Third Parallel Printer 


NUL 


Nonexistent (dummy) device for testing 
applications. As an input device, 
immediate end-of-file is generated. As 
an output device, the write operations are 
simulated, but no data is actually written. 



2-5 



Notes: 

1. Since these are reserved names, you cannot create 
files with these names. 

2. When using a device name, you should assure that 
the device actually exists. Using the name of a 
nonexistent device can cause unpredictable errors 
in DOS operation. 

3. The reserved device names can be used in place of 
a filename in DOS commands. 

4. The colon after the device name is optional. For 
example, you can type: 

CON 

or 

CON: 



2-6 



Global Filename Characters 



Two special characters ? and * can be used within a 
filename and its extension. These special characters 
give you greater flexibility with the DOS commands. 



The ? Character 



A ? in a filename or in a filename extension indicates 
that any character can occupy that position. For 
example, 

A>dir ab?de.xyz 

lists all directory entries on the default drive with 
filenames that have five characters, begin with AB, 
have any next character, are followed by DE, and have 
an extension of XYZ. 

Here are some examples of the files that might be listed 
by the DIR command: 

ABCED XYZ 
ABIDE XYZ 
ABODE XYZ 



2-7 



The * Character 



An * in a filename or in a filename extension indicates 
that any character can occupy that position and all the 
remaining positions in the filename or extension. For 
example, 

A>dir ab*.xyz 

lists all directory entries on the default drive with 
filenames that begin with AB and have an extension of 
XYZ. In this case, the filenames may be from 2 to 8 
characters in length. 

Here are some example files that might be listed by the 
DIR command: 



ABCDE 


XYZ 


ABC357 


XYZ 


ABIDE 


XYZ 


ABIIOU 


XYZ 


AB0$$$ 


XYZ 


AB 


XYZ 



2-8 



Examples of Ways to Use ? and * 
Example 1 

To list the directory entries for all files named INPUT 
on drive A (regardless of their filename extension), 
type: 

A>dir an'nput.??? 

or 
A>dir a:input.* 



Example 2 

To list the directory entries for all files in the current 
directory on drive A (regardless of their filenames) with 
a filename extension of XYZ, type: 

A>dir a:????????.xyz 

or 
A>dir a:*.xyz 



Example 3 

To list the directory entries for all files on drive A with 
filenames beginning with ABC and extensions 
beginning with E, type: 

A>dir a:abc?????.e?? 

or 
A>dir a:abc*.e* 



2-9 



Notes: 



2-10 



Chapter 3. Preparing Your Fixed Disk 



Contents 

Introduction 3-3 

Replacing a Previous Version of DOS 3-3 

Referring to Disk Drives 3-4 

Dividing Your Fixed Disk 3-4 

Using FDISK 3-6 

Starting FDISK 3-7 

Creating a DOS Partition (Choice 1) 3-9 

Using an Entire Fixed Disk for DOS 3-10 

Using Part of a Fixed Disk for DOS 3-11 

Changing the Active Partition (Choice 2) 3-13 

Deleting a DOS Partition (Choice 3) 3-15 

Displaying Partition Information (Choice 4) 3-17 

Select the Next Fixed Disk Drive (Choice 5) 3-18 

Formatting Your DOS Partition 3-18 

Copying DOS to Your DOS Partition 3-22 

Starting DOS from Your Fixed Disk 3-23 



3-1 



Notes: 



3-2 



Introduction 



If your IBM Personal Computer has a fixed disk, you 
must prepare the fixed disk before DOS can use it. 

This chapter tells you how to: 

Refer to your computer's disk drives 

Use FDISK to prepare your fixed disk for DOS 

Replace a previous version of DOS on your fixed 
disk with DOS 3.10 

Format your fixed disk 

Copy DOS to your fixed disk 

Start DOS from your fixed disk 

Do other tasks with FDISK 



Replacing a Previous Version of DOS 

If you already have a version of DOS on your fixed disk 
prior to DOS 3.10, follow these steps to replace it with 
DOS 3.10: 

Note: If you have not prepared your fixed disk 
with a previous version of DOS, skip this section. 
Go to "Referring to Disk Drives." 

1. Insert your DOS 3.10 diskette in the diskette 
drive. 

2. Press Ctrl-Alt-Del. 

3. At the DOS prompt, type: 

sys c: (Press Enter) 



3-3 



If you have more than one fixed disk, be sure to 
type the drive letter for the fixed disk on which you 
want to place DOS 3.10. 

4. Copy the rest of the DOS files to your fixed disk. 
Type: 

copy *.* c: (Press Enter) 

5. Repeat step 4 with your Supplemental DOS 
diskette. 

Now your fixed disk is ready to be used with DOS 3.10. 
For information about starting DOS see the section in 
this chapter entitled, "Starting DOS from Your Fixed 
Disk." 



Referring to Disk Drives 



DOS assigns drive letters to the diskette drives and to 
the fixed disk on your computer. 

For example, if your computer has one diskette drive 
and one fixed disk drive, DOS assigns the drive letters 
A and B to the diskette drive and the letter C to the 
fixed disk. If your computer has two diskette drives 
and two fixed disk drives, the diskette drives are A and 
B, and the fixed disks are C and D. You can install a 
third fixed disk, to which DOS assigns the drive letter 
E. 



Dividing Your Fixed Disk 



You can divide a fixed disk into one, two, three or four 
sections called partitions. Partitions separate fixed disk 
space into individual areas. To prepare your fixed disk 



3-4 



for DOS, you create a partition for DOS called a DOS 
partition. To do this, you will use the fixed disk setup 
program supplied by DOS called FDISK. 

If you are using more than one operating system, you 
need a separate partition for each operating system. If 
DOS is your only operating system, you only need one 
partition. 



3-5 



Using FDISK 



With the FDISK program, you can create a DOS 
partition and do other fixed disk tasks. 

FDISK allows you to: 

Create a DOS partition 

Change an active partition 

Delete a DOS partition 

Display partition data 



Select the next fixed disk drive for partitioning if 
you have more than one. 

FDISK has menus and screens that guide you through 
the tasks. To find out how to use FDISK, continue 
with "Starting FDISK." 



3-6 



Starting FDISK 

To start FDISK, follow these steps: 

1. With your DOS diskette in drive A, at the DOS 
prompt A>, type: 

A>fdisk 

2. Press Enter. 

The FDISK Options menu appears. Choose what 
you want to do. If you make a mistake or change 
your mind, press Esc to return to the FDISK 
Options menu. After making a selection, you see a 
series of screens. 



IBM Personal Computer 

Fixed Disk Setup Program Version 3.10 

(C)Copyright IBM Corp. 1983,1984 


FDISK Options 


Current 


Fixed Disk Drive: 1 


Choose 


one of the following: 


1. 

2. 
3. 
4. 
5. 


Create DOS Partition 
Change Active Partition 
Delete DOS Partition 
Display Partition Data 
Select Next Fixed Disk Drive 


Enter 


choice: [1] 


Press 


ESC to return to DOS 



3-7 



Each screen displays a default choice value. If you 
want the default value as your choice, press Enter. 
If you want a different value than the default 
value, type the value you want, then press Enter. 

Choices 1 through 4 appear if your computer has 
one fixed disk attached. Choice 5 appears if your 
computer has more than one fixed disk attached. 
When you first see this menu, the Enter choice 
field will have a 1 in it. 

3. Do one of the following: 

• If you want to increase a DOS partition, go to 
"Creating a DOS Partition." 

• If you want to change an active partition, go 
to "Changing the Active Partition." 

• If you want to delete a DOS partition, go to 
"Deleting a DOS partition." 

• If you want to display information about the 
partitions on your fixed disk, go to 
"Displaying Partition Information." 

• If you want to use FDISK on another fixed 
disk drive, go to "Select the Next Fixed Disk 
Drive." 



3-8 



Creating a DOS Partition (Choice 1) 



Do one of the following: 

• If DOS is the only operating system that you 
intend to use with your fixed disk, follow the 
instructions in the section "Using an Entire Fixed 
Disk for DOS." 

• If you intend to use part of the fixed disk with 
another operating system, follow the instructions 
for "Using Part of a Fixed Disk for DOS." 

Choice 1 (Create a DOS partition) is the default value 
for the FDISK Options menu. To create a DOS 
partition, press Enter. The following screen appears: 



Create DOS Partition 
Current Fixed Disk Drive: 1 



Do you wish to use the entire fixed disk 
for DOS (Y/N) ? [Y] 



3-9 



Using an Entire Fixed Disk for DOS 

The following message appears if you told the computer 
you wanted to use an entire fixed disk for DOS: 



System wil 1 
Insert DOS 
Press any k 


now restart 
diskette in drive 
ey when ready . . 


A: 



1 . Insert your DOS diskette in drive A and press any 
key. 

DOS restarts and prompts you to enter the date 
and time. 

2. Enter the date. 

3. Enter the time. 

When you see the DOS prompt, the DOS partition 
has been created. Before you can use the DOS 
partition, you must format the disk. 

4. Go to "Formatting Your DOS Partition" later in 
this chapter to continue. 



3-10 



Using Part of a Fixed Disk for DOS 

The following message appears if you told the computer 
you wanted to use only part of a fixed disk for DOS: 



Total fixed disk space is xxxx cylinders 
Maximum available space is xxxx 
cylinders at xxxx. 



"Total fixed disk space" tells you how many cylinders 
you have on your entire disk. "Maximum available 
space" tells you how many cylinders are left for you to 
partition. The following prompt appears: 



Enter partition size : [xxxx] 



1. Do one of the following: 

• If you want your DOS partition to use all the 
available space, press Enter. 

• If you do not want to use all the available 
space for DOS, type the size you want to use 
(in cylinders). 

The following prompt appears: 



Enter starting cylinder number. .: [xxxx] 



3-11 



2. The starting cylinder number you see depends on 
the partition size you specified. If you want the 
DOS partition to be located there, press Enter. If 
not, type the starting cylinder number you want 
and press Enter. 

3. The DOS partition is created, but before you can 
use it, you must: 

• Change the active partition (FDISK Options 
menu Choice 2). 

• Format your DOS partition (refer to 
"Formatting Your DOS Partition" later in this 
chapter). 

4. If there are bad spots at the start of the specified 
partition, FDISK automatically adjusts the start of 
the partition to the first good area on the disk that 
it finds. This may decrease the size of the 
partition. 



3-12 



Changing the Active Partition (Choice 2) 



Your fixed disk can have many partitions, but only one 
partition can be active. The active partition is the one 
that gets control of your computer when you turn it on 
or reset the computer. Only one partition can be active 
at a time. If DOS is the active partition, DOS controls 
the computer when it is turned on or reset. 

If you type 2 on the FDISK Options menu, a screen like 
the one shown here appears. This sample screen shows 
the partition status of a fixed disk that has three 
partitions. 



Change Act 


ive Partition 








Current Fixed Dis 


k Drive: 


1 






Partition 
1 
2 


Status 
A 
N 


Type 

DOS 

non-DOS 


Start 
000 
150 


End 
149 
304 


Size 
150 
155 


3 


N 


XXX 


XXX 


XXX 


XXX 


Total disk 


space 


i s 305 


cylinders 




Enter the 
want to ma 


number of the partition you 
ke active : [ ] 



3-13 



Partition 


The number assigned to the partition. 


Status 


The status of the partition — A for 
active, N for non-active. 


Type 


The kind of partition — DOS or 
non-DOS. 


Start/End 


The starting and ending cylinder 
numbers of the partition. 


Size 


The number of cylinders the partition 
uses. 



Do the following: 

1 . Type the number of the partition that you want to 
be active. (If you want your DOS partition to be 
active, type the number for the DOS partition.) 

2. Press Enter. The partition you selected then 
becomes the active partition. 

3. Go to "Starting DOS from Your Fixed Disk." 



3-14 



Deleting a DOS Partition (Choice 3) 



You can delete the fixed disk partition you use for 
DOS. When you do, remember any data in that 
partition is also deleted and cannot be recovered. The 
boundaries for that partition are also removed. 

Note: If you delete the DOS partition but want to 
continue using DOS, insert a DOS diskette in drive 
A and start DOS again. 

1 . If you typed 3 on the FDISK Options menu, you 
will see a screen like the one shown here. 



Delete DOS Partition 








Current Fixed Dis 


k Drive: 


1 






Partition Status 


Type 


Start 


End 


Size 


1 N 


DOS 


000 


304 


305 


Total fixed disk 


space is 


305 


cyl ir 


ders 


Warning! Data in 


the DOS 


partition 




will be lost. Do 


you wis 


h to 






continue 








CN] 











When the screen first appears, you will see an N 
(no) next to the prompt "Do you wish to 
continue?" 



3-15 



2. Do one of the following: 

• If you do not want to delete the DOS 
partition, press Enter to return to the FDISK 
Options menu. 

• If you want to delete the DOS partition, type y 
(yes) and press Enter. 

You need to start another operating system 
from the fixed disk or restart DOS from a 
diskette to proceed. 



3-16 



Displaying Partition Information 
(Choice 4) 



You can display information that tells how a fixed disk 
on your computer is partitioned. 

If you typed 4 on the Fixed Disk Options menu, you 
will see a screen like the one shown here. 



Display Partition Information 
Current Fixed Disk Drive: 1 



Partition Status Type Start End Size 

1 A DOS 000 199 200 

2 N non-DOS 200 304 105 



Total fixed disk space is 305 cylinders 



You see the: 

Partition number 
Partition status 
Partition type 
Starting cylinder number 
Ending cylinder number 
Size in cylinders 



3-17 



Select the Next Fixed Disk Drive 
(Choice 5) 



If your computer has more than one fixed disk attached, 
you can use the same FDISK menu options for each 
one. If you type 5 on the FDISK Options menu, you 
can prepare another fixed disk. 



Formatting Your DOS Partition 



Formatting your DOS partition is the final step in 
preparing it for DOS use. You should format a DOS 
partition the first time you create it or if you want to 
erase all of the data contained in the DOS partition. 

Note: If your DOS partition is larger than 10M 
bytes and you format it using DOS Version 3.10, 
you cannot use versions of DOS prior to DOS 3.00 
to access your fixed disk. 



3-18 



You use the DOS FORMAT command to format your 
DOS partition. 

Follow these steps to format your DOS partition on 
drive C: 

1 . With your DOS diskette in drive A, at the DOS 
prompt A>, type: 

A>format c:/s/v 

2. Press Enter. 

The following appears on the screen: 



Warning, All data on Non-removable 
Disk drive C: Will be lost! 
Proceed with Format (Y/N)? 



Warning: FORMAT destroys any data contained in 
your DOS partition. Be sure you wish to format 
the contents of your DOS partition disk before you 
continue. 



3-19 



Type y, then press Enter. The "In-Use" light on 
your fixed disk comes on and the message 
Formatting... is displayed. It takes several minutes 
to format your fixed disk so do not worry. 

Next you will see: 



Formatting... Format complete 

System transferred 

Volume label (11 characters, ENTER for none)? 



The message "System transferred" is displayed 
because you specified the /S parameter. It means 
that a copy of the operating system files 
IBMBIO.COM, IBMDOS.COM, and 
COMMAND.COM has been placed in the DOS 
partition. 

4. You are asked to enter a volume label consisting of 
up to 11 characters (for example 
MYFIXEDDISK). 

Note: Characters that are valid for filenames 
are also valid for volume labels. Refer to 
Chapter 2 "The File Specification" for 
information on filename characters. 

The volume label is used to identify the fixed disk. 

5. Do one of the following: 

• If you want to label your fixed disk, type a 
name and press Enter. 

• If you do not want to label your fixed disk, 
press Enter. 



3-20 



Note: You can add or change the volume 
label by using the LABEL command. Refer 
to Chapter 7 "DOS Commands" for more 
information. 

After you have answered the volume label prompt, 
disk space statistics are displayed along with the 
DOS prompt A>. Now, your DOS partition is 
formatted and ready to be used by DOS. 

If you want to copy the remaining DOS files from 
the DOS diskette, refer to the next section, 
"Copying DOS to Your DOS Partition." 
Otherwise, skip the next section and go to 
"Starting DOS from Your Fixed Disk" at the end 
of this chapter. 



3-21 



Copying DOS to Your DOS Partition 

You can also copy the external DOS commands from 
the DOS diskette and the Supplemental diskette into 
the DOS partition. Use the COPY command: 

COPY d:** d: 

Note: 

For more information on the COPY command, 
refer to Chapter 7 "DOS Commands." 

Follow these steps to copy DOS to your DOS partition 
on drive C: 

1. With your DOS diskette in drive A, at the DOS 
prompt A>, type: 

A>copy a:*.* c: 

2. Press Enter. 

3. To copy the commands from the Supplemental 
diskette, remove the DOS diskette from drive A 
and insert your Supplemental diskette. Type: 

A>copy a:*.* c: 

4. Press Enter. 

5. Go to "Starting DOS from Your Fixed Disk." 

Now you can run all of the DOS commands from the 
fixed disk. You should store your DOS diskettes in a 
safe place. 



3-22 



Starting DOS from Your Fixed Disk 



Starting DOS from your fixed disk means that when 
you switch on the power or do a system reset (restart 
DOS), DOS is loaded from the DOS Partition. DOS 
can only be loaded from the first fixed disk drive 
attached to your computer. 

1. To start DOS from your fixed disk, make sure that: 

• You leave the drive door for Drive A open 
when you switch on the power or perform a 
system reset. 

• You have placed a copy of the operating 
system files in the DOS partition. 

• You have partitioned your entire disk for DOS 
or you have made the DOS partition the active 
partition. 

2. Do one of the following: 

• If your computer is off, switch on your 
computer. 

• If your computer is on, press Ctrl-Alt-Del 
(system reset). 

After you have set up your fixed disk, you may 
want to refer to Section 5, "Using Directories," for 
information on how to organize your files. 



3-23 



Notes: 



3-24 



Chapter 4. Configuring Your System 



Contents 

Introduction 4-3 

What is a Configuration File ? 4-4 

Creating a CONFIG.SYS File 4-4 

Configuration Commands 4-5 

BREAK Command 4-6 

BUFFERS Command 4-7 

What Is a Buffer ? 4-7 

Read/Write Requests 4-8 

Random/ Sequential Applications 4-8 

Size of Your Computer 4-9 

COUNTRY Command 4-11 

DEVICE Command 4-13 

Loading Standard Device Drivers 4-13 

Installing Your Own Device Driver 4-13 

ANSI.SYS 4-14 

VDISK.SYS 4-14 

Installing VDISK 4-15 

FCBS (File Control Block) Command 4-19 

With File Sharing 4-20 

Without File Sharing 4-20 

FILES Command 4-22 

Accessing a File 4-22 

Number of Files Opened 4-22 

LASTDRIVE Command 4-24 

SHELL Command 4-25 



4-1 



Notes: 



4-2 



Introduction 



This chapter describes how to configure your system by 
creating a file named CONFIG.SYS. A list of the 
configuration commands is given with a description of 
the purpose and format of the command. You can use 
configuration commands to: 



Set extended checking of Ctrl-Break (BREAK) 

Specify the number of disk buffers (BUFFERS) 

Specify the country whose date and time format 
you want to use (COUNTRY) 

Install device drivers (DEVICE) 

Specify the number of files that can be opened by 
file control blocks (FCBS) 

Specify the number of files that can be open at one 
time (FILES) 

Set the maximum drive letter that you may access 
(LASTDRIVE) 

Specify the name of a top-level command 
processor (SHELL) 



4-3 



What is a Configuration File ? 



A configuration file contains commands that are used 
to configure your system. Each time you start DOS, 
DOS searches the root directory of the drive it was 
started from for the file named CONFIG.SYS. If the 
file CONFIG.SYS is found, DOS reads the file and 
interprets the commands within the file. If the file 
CONFIG.SYS is not found, DOS assigns default values 
for the configuration commands. 

Create a configuration file named CONFIG.SYS to 
change the default values of the configuration 
commands. If you add or change any of the 
configuration file commands, the changes are not in 
effect until the next time you start DOS. 



Creating a CONFIG.SYS File 



Create a CONFIG.SYS file using an editor (such as 
EDLIN) or the DOS COPY command. This section 
describes how to create a CONFIG.SYS file using the 
COPY command directly from the standard input 
device. 

Note: If you have used the SELECT command, a 
CONFIG.SYS file has already been created that 
includes the the COUNTRY configuration 
command. You should use EDLIN or an editor to 
add other configuration commands. 



4-4 



Follow these steps to create a CONFIG.SYS file using 
the COPY command. 

1. At the DOS prompt A>, type: 

A>copy con config.sys 

2. Press Enter. 

3. Type the configuration commands you want in the 
CONFIG.SYS file. Press Enter after you type 
each command. 

4. When you have finished typing the commands, 
press the F6 key and then Enter. This ends the 
COPY CON command and saves the file. 

Now a file named CONFIG.SYS has been created. But 
the values for the commands are not in effect until the 
next time you start DOS. 



Configuration Commands 



The following section describes the commands that you 
can include in a CONFIG.SYS file. 



4-5 



BREAK 

Command 



Purpose: Allows you to instruct DOS to check for control 

break whenever a program requests DOS to perform 
any functions. 

Format: BREAK = [ON | OFF] 

Remarks: The default value is set at BREAK = OFF. This 
means that DOS will only check for Ctrl-Break 
being entered during: 

• Standard output operations 

• Standard input operations 

• Standard print operations 

• Standard auxiliary operations 

If you want DOS to check for Ctrl-Break whenever 
it is requested, set BREAK = ON. This allows you 
to break-out of a program that produces few or no 
standard device operations (such as a compiler). For 
instance, if a program is being compiled, it is 
important to have a way to stop compilation if an 
error or loop is encountered. 



4-6 



BUFFERS 

Command 



Purpose: Allows you to determine the number of disk buffers 
that DOS will allocate in memory when it starts. 

Format: BUFFERS = x 

Remarks: The x is a number between 1 and 99. This is the 
number of disk buffers that DOS allocates in 
memory when it starts. The default value is 2, (3 for 
the IBM Personal Computer AT) and this value 
remains in effect until DOS is restarted with a 
different value specified in the configuration file. 



What Is a Buffer ? 

A disk buffer is a block of memory that DOS uses to 
hold data being read from, or written to a disk. For 
example, if an application reads a 128-byte record 
from a file, DOS reads the entire sector into one of 
its buffers, locates the correct 128-byte record in the 
buffer, and moves the record from the buffer into the 
application's area of memory. It then marks that 
buffer as having been used recently. On the next 
request to transfer data, DOS attempts to use a 
different buffer. In this way, all of the buffers 
eventually contain the most recently-used data. The 
more buffers DOS has, the more data is in memory. 



4-7 



BUFFERS 

Command 

Read/Write Requests 

Before DOS reads or writes a record that is not an 
exact multiple of the sector size, it checks to see if 
the sector containing that record is already in a 
buffer. If not, it must read the sector as described 
above. But if the data is already in a buffer, DOS 
can simply transfer the record to the application's 
area without reading the sector from the disk. This 
saves time, both in reading and writing records, 
because DOS must first read a sector before it can 
insert a record that your application is attempting to 
write. 

Random/Sequential Applications 

For applications that read and write records in a 
random fashion (such as many BASIC and data base 
applications), the likelihood of finding the correct 
record already in a buffer increases if DOS has more 
buffers to work with. This can increase performance 
of those applications by speeding up the access time. 

For applications doing sequential reads and writes, 
however (read an entire file, write an entire file), 
there is little advantage to having a large number of 
buffers allocated. 

Because all applications are different, there is no 
specific number of buffers that will serve all 
applications equally well. If your applications do 
little random reading and writing of records, the 
system default of two buffers should be sufficient. 



4-8 



BUFFERS 

Command 

However, if you use data base type applications, or 
run programs that perform a lot of random reads and 
writes of records, you will want to increase the 
number of DOS buffers. The "best" number of 
buffers for your particular application can only be 
determined by using different values until the desired 
performance is achieved. For most data base 
applications, a value between 10 and 20 buffers 
usually provides the best results. For subdirectories, 
between 10 and 25 buffers usually provides desirable 
performance. 

Beyond that point, the system may appear to start 
running slower. With a very large number of buffers, 
it can take DOS longer to search all the buffers for a 
record than it would take to read the record from 
disk. 



Size of Your Computer 

The final consideration in determining the number of 
buffers to allocate is the memory size of your 
computer. Since each additional buffer increases the 
resident size of DOS by 528 bytes, the amount of 
memory available to the application is reduced by 
that amount. Additional buffers may actually cause 
some applications to run more slowly because there 
is less memory available for the application to keep 
data. This could result in more frequent reads and 
writes than would otherwise be necessary. 



4-9 



BUFFERS 

Command 



In summary, the optimum number of buffers must be 
determined by you, based on: 

• The types of applications most often used 

• The memory size of your computer 

• Your analysis of system performance when 
using your applications with different numbers 
of buffers allocated 

• For computers with fixed disks, a minimum of 
BUFFERS =3 is recommended 



4-10 



COUNTRY 
Command 



Purpose: Use to specify the date and time format for a given 
country. Other information, such as the currency 
symbol and the decimal separator for a particular 
country, are also set using the COUNTRY 
command. 

Note: COUNTRY does not translate the text of 
DOS messages for the country you specify. 

Format: COUNTRY = xxx 

Remarks: xxx is the 3— digit international country code for the 
telephone system. The default value is the U.S. 
country code of 001. The following countries are 
supported for DOS Version 3.10. If your country is 
not supported, choose the most familiar country 
supported. 



4-11 



COUNTRY 
Command 



Country 


Country Code 


United States 


001 


Netherlands 


031 


Belgium 


032 


France 


033 


Spain 


034 


Italy 


039 


Switzerland 


041 


United Kingdom 


044 


Denmark 


045 


Sweden 


046 


Norway 


047 


Germany 


049 


Australia 


061 


Finland 


358 


Israel 


972 



Example: To specify the date and time format for the United 
States, include the following command in the 
CONFIG.SYS file. 

country=001 

The next time you start DOS, the date format is 
mm-dd-yy, the time format is hh:mm:ss, the decimal 
separator is a period (.), and the currency symbol is 

$. 



4-12 



DEVICE 

Command 



Purpose: Allows you to specify the name of a file containing a 
device driver. 

Format: DEVICE = [d:]\path]filename[.ext] 

Remarks: During startup, DOS loads the file into memory and 
gives it control as described in "Installation of 
Device Drivers" in Chapter 2 of DOS Technical 
Reference. Please refer to that section for technical 
information about installable device drivers. 



Loading Standard Device Drivers 

The standard device drivers loaded by DOS support 
the standard input, standard output, standard printer, 
diskette, and fixed disk devices. A clock driver is 
also loaded (see Chapter 2 of the DOS Technical 
Reference). You don't need to specify any 
DEVICE = commands for DOS to support these 
devices. 



Installing Your Own Device Driver 

For systems programmers and application 
developers — if you have written device drivers that 
you want DOS to load when it starts, include a 
DEVICE= command in the CONFIG.SYS file for 
each driver to be loaded. 

You must install the device drivers that come with 
DOS (ANSI.SYS, VDISK.SYS) before you can use 
them. 



4-13 



DEVICE 
Command 

ANSI.SYS 



To use the "Extended Screen and Keyboard 
Control" features described in the DOS Technical 
Reference, create the file CONFIG.SYS on the disk 
you will be starting DOS from. The file should 
contain the command DEVICE=ANSI.SYS. This 
command causes DOS to replace the standard input 
and standard output support with the extended 
functions. 



VDISK.SYS 



The VDISK.SYS file on your DOS diskette is a 
device driver that simulates a disk drive by using a 
portion of your computer's memory as the storage 
medium. These simulated disks are called virtual 
disks. The following characteristics apply to virtual 
disks: 

• Virtual disks are fast, since they operate at the 
speed of your computer's memory. 

• You can install more than one virtual disk; each 
is referred to by a drive letter, in the same way 
you refer to disk drives. For example, if your 
computer has two diskette drives and no fixed 
disks, the diskette drives are referred to as 
drives A and B, the first virtual disk is referred 
to as C, the second as D, and so on. 

• If you have an IBM Personal Computer AT with 
extended memory installed, (starting at the 1MB 
boundary), you can use the extended memory as 
one or more virtual disks. Otherwise, virtual 
disks are located in low memory. 



4-14 



DEVICE 

Command 

For each virtual disk, you can specify the 
amount of memory to be used (the "disk size"), 
the sector size, and the number of directory 
entries it is to contain. 

A volume label is created on each virtual disk to 
assist in its identification. 

Each virtual disk created increases the resident 
size of DOS by 720 bytes for the VDISK.SYS 
device driver plus the size of the virtual disk 
buffer you specify (if the driver is installed in 
low memory). 

The contents of a virtual disk are lost if you 
restart the system or if power is lost. 

Virtual disks cannot be formatted. Each VDISK 
is installed in formatted form. 



Installing VDISK 

To install the VDISK device driver, include this 
statement in the CONFIG.SYS file: 

device=[^:][p«//z]vdisk.sys [bbb][sss][ddd][/E [:ra]] 

[d:][path] is the drive and directory path containing 
the VDISK.SYS file. 

The bbb is the virtual disk size in K bytes, and is 
specified as a decimal value. The default value is 
64K bytes. The range of values is between 1 and the 
amount of available memory on your computer. 
VDISK may adjust the amount of memory actually 
used for the virtual disk as follows: 



4-15 



DEVICE 

Command 



• If there is less than 64K of available memory at 
the time VDISK is being installed, VDISK issues 
an error message and does not install the virtual 
disk. 

• If the size you specify is less than IK byte or 
greater than the total amount of memory on 
your computer, VDISK uses the default value of 
64K. 

• If the specified size leaves less than 64K of 
available memory, VDISK adjusts the virtual 
disk size downward (VDISK always leaves a 
minimum of 64K of available memory after the 
installation of the virtual disk). 

The sss is the sector size in bytes. Allowable sizes 
are 128, 256, or 512. If omitted, or if an incorrect 
value is typed, VDISK uses the default value of 128. 
If you use your virtual disk to hold relatively small 
files, you may wish to use a smaller sector size to 
minimize wasted space. 

The ddd is the number of directory entries (number 
of files) that the virtual disk can contain (one 
directory entry is required for each file). The default 
value is 64. The range of values is between 2 and 
512. VDISK may adjust the value you entered as 
follows: 

• The value is adjusted upwards to the nearest 
sector size boundary. For example, if you 
specify a value of 10, and your sector size is 
128, VDISK generates 12 directory entries (12 
entries at 32 bytes each to round up to a 
multiple of the sector size). 

• If the virtual disk size specified above is too 
small to hold the file allocation table, the 



4-16 



DEVICE 

Command 

directory, and 2 additional sectors, the directory 
size is adjusted downward by 1 sector at a time 
until these conditions are met. If the directory 
size reaches 1 sector and the conditions still 
cannot be met, VDISK issues an error message 
and the virtual disk is not installed. 

• VDISK uses one of the directory entries to hold 
the volume label. 

/E is a parameter that tells VDISK to use extended 
memory. Extended memory is memory at or above 
1M bytes. The virtual disk buffer will be in extended 
memory and the device driver will be installed in low 
memory. More than one virtual disk can be installed 
in extended memory by including more than one 
DEVICE= VDISK.SYS command in the 
CONFIG.SYS file. The first device driver is 
installed at the 1 M-byte boundary, the second 
would immediately follow the first, and so on. This 
parameter is only valid for an IBM Personal 
Computer AT with extended memory. If you specify 
this parameter for a computer that does not have 
extended memory, an error message is displayed and 
the virtual disk is not installed. 

The following example installs a 160K-byte virtual 
disk with 512-byte sectors and 64 directory entries. 

device=vdisk.sys 160 512 64 

The m is the maximum number of sectors (of size 
sss) of data VDISK transfers at a time. The default 
for m is 8. The possible values for m are 1, 2, 3, 4, 5, 
6, 7, and 8. When VDISK is operating in extended 
memory, interrupt servicing is suspended during 
data transfers. If there are very frequent interrupts 
occurring during these periods (as in high speed 
communications), some interrupts can be lost. 



4-17 



DEVICE 

Command 



Note: If some interrupts are being lost, isolate 
the problem in the following manner. Install 
VDISK in non-extended memory. If the 
problem is resolved, adjust m (in extended 
memory) until no interrupts are lost. If an m of 
1 and sss of 128 does not improve the situation, 
then VDISK cannot be used in extended 
memory in that environment. If installing 
VDISK in non-extended memory does not 
resolve the problem, other areas should be 
investigated as the cause of the problem. 

The next time you start DOS, VDISK displays the 
following message: 

VDISK Version 2.0 virtual disk x 

This message is displayed as an informative message 
to tell you that VDISK is attempting to install a 
virtual disk. It also tells you the drive letter jc that is 
assigned to the virtual disk. 



4-18 



FCBS (File Control Block) 

Command 



Purpose: Allows you to specify the number of file control 
blocks (FCBs) that can be concurrently open by 
DOS. 

Format: FCBS = m,n 

Remarks: The m specifies the total number of files opened by 
FCBs that can be open at one time. The default 
value is 4. The range of values for m is from 1 to 

255. 

The n specifies the number of files opened by FCBs 
that cannot be closed automatically by DOS if a 
program tries to have more than m files opened by 
FCBs at one time. The first n files opened by FCBs 
are protected from being closed. The default value is 

0. The range of values for n is between and 255. 

Some application programs use file control blocks to 
create, open, delete, read and write to files. DOS 
keeps track of the least recently used FCB. If the 
program tries to open more than m FCB files, the 
action DOS takes depends on whether file sharing is 
loaded. 

Notes: 

1 . The value of m must be greater than or equal to 
the value of n. 

2. If a program receives critical errors due to FCB 
files being closed by DOS, increasing the value 
of m may prevent these errors from occurring. 



4-19 



FCBS (File Control Block) 
Command 



If a program uses two or more different FCBs to 
refer to the same file, DOS only counts this as 
one FCB used. 

If you specify the FCBS command in your 
configuration file, the resident size of DOS is 
increased. 



With File Sharing 



If file sharing is loaded, and a program tries to open 
more than m files, DOS closes the least recently used 
FCB and opens the new file. Note that the first n 
files are not included in the list of files that DOS 
tracks for the least recently used FCB. Therefore, 
they are protected from being closed this way. If a 
program tries to read or write to a file that has been 
closed because it is the least recently used FCB, 
DOS issues the following message: 

FCB unavailable 
Abort, Retry, Ignore? 

Note: If you set m equal to n, it does not allow 
any files to be closed by DOS if a program tries 
to open more than m files. If a program tries to 
open more than m files, DOS does not open the 
new file. 



Without File Sharing 



If sharing is not loaded, the number of files that can 
be open at the same time is not limited. The FCBS 
command is only applicable when file sharing is 
loaded. 



4-20 



FCBS (File Control Block) 

Command 

Example: To set the total number of FCB files that can be 
open at one time to 3, and the number protected 
from being closed to 1 , include this command in the 
CONFIG.SYS file. 

fcbs=3,l 



4-21 



FILES 
Command 



Purpose: Allows you to specify the maximum number of file 
handles that can be open concurrently. 

Format: FILES = x 

Remarks: The x can be a number between 8 and 255. The 
default value is FILES=8. 



Accessing a File 

All file accesses (reads, writes, close) can be 
performed by telling DOS which handle to use. 
When an application opens a file in this manner, 
DOS constructs a control block in its own memory 
on behalf of the application, in an area that was set 
aside when DOS started. The size of this area (and 
consequently, the maximum number of file handles 
that can be concurrently open) , depends on the value 
specified in the FILES = command. 

The default value is FILES=8; that is, no more than 
8 file handles can be open at the same time. There is 
no effect on the number of files that can be 
concurrently open using the traditional (OPEN 
FCB) functions. This default value is sufficient for 
the majority of operating environments. However, if 
applications are installed that result in error messages 
indicating an insufficient number of handles, the 
FILES = command should be used to provide DOS 
with additional handles. 



4-22 



FILES 

Command 



Number of Files Opened 



The value specified in FILES = becomes the new 
maximum number of file handles that DOS allows to 
be concurrently open. 

Note that this value is the maximum number of 
handles allowed for the entire system. This includes 
handles in use by currently running foreground tasks 
(programs such as COMP and CHKDSK) and 
background tasks like PRINT and the network. The 
maximum number of file handles that a process can 
have open is 20 (this number includes the 3 used by 
DOS for the 5 predefined handles for standard input, 
standard output, standard error, auxiliary, and 
standard printer). So the limit on handles ^or the 
system is specified by FILES=, and the limifbn 
handles for each process is is 20. 

If you specify FILES = in your configuration file, the 
size of the resident portion of DOS increases by 48 
bytes for each additional file above the default value 
of 8. Consequently, the memory available to the 
application is reduced by the same amount. See 
function calls 3CH through 46H in Chapter 5 of the 
DOS Technical Reference for descriptions of the new 
file-handling functions. 



4-23 



LASTDRIVE 
Command 



Purpose: Sets the maximum number of drives that you may 

access. 

Format: LASTDRIVE = x 

Remarks: The x can be any alphabetic character A through Z. 
It represents the last valid drive letter that DOS may 
accept. The default value is LASTDRIVE = E. 

The minimum number you can set LASTDRIVE 
equal to is the number of drives you have installed on 
your computer. If x is less than the number of 
physical drives on the your computer, this command 
is ignored in the configuration file. 

Example: To set the number of drives equal to 16, include this 
command in the CONFIG.SYS file: 

lastdrive=p 



4-24 



Purpose: 



SHELL 
Command 



Allows you to specify the name and location of a 
top-level command processor that DOS initialization 
loads in place of COMMAND.COM. 



Format: SHELL= [d:][pa.th]filename[.ext] 

Remarks: System programmers who develop their own 

top-level command processor should remember to 
include provisions for handling interrupts 22H, 23H 
and 24H, and for reading and executing commands. 
Because the internal commands and batch processor 
reside in COMMAND.COM., these functions will 
not be available to the user unless they are duplicated 
in your command processor. 

SHELL does not affect COMSPEC= or BASIC'S 
SHELL command. To assure that the same 
command processor is used for reloading (just the 
transient portion), you must set COMSPEC= to 
point to that command processor. 



4-25 



Notes: 



4-26 



Chapter 5. Using Tree-Structured 
Directories 



Contents 

Introduction 5-3 

Why Use Directories? 5-3 

How Directories Are Organized 5-4 

Directory Entries 5-5 

Accessing Your Subdirectories 5-6 

The Current Directory 5-6 

Changing Directories with CHDIR 5-7 

Specifying a Path to a File 5-7 

Using the PATH Command 5-8 

Using PATH in a Batch File 5-9 

Using Directory Commands 5-10 

Making a Subdirectory 5-11 

Removing a Subdirectory 5-13 

Displaying and Changing the Current 

Directory 5-14 

Displaying the Directory Structure 5-15 

Where DOS Looks for Commands and Batch Files 5-15 



5-1 



Notes: 



5-2 



Introduction 



This chapter describes how to organize files into 
groupings called directories. It tells you how to create, 
access, remove and display the contents of your 
directories. It also tells you how to display the entire 
directory structure of your disk. 



Why Use Directories? 



A fixed disk can have many files. If you keep a large 
number of files in one place on your fixed disk, it can 
take longer for DOS to find a particular file. Keeping 
files in related groups in directories can reduce the time 
required to locate a file. 



5-3 



How Directories Are Organized 



To give you an idea of how you might group files into 
directories, let's assume your company has two 
departments — sales and accounting — that use an 
IBM Personal Computer. All of the sales and 
accounting files are kept on the computer's fixed disk. 
The directory structure might look like this: 





ROOTDIR 
































SALES 




ACCTNG 












































LINDA 




RUTH 




LEE 




RAE 
























REPORTS 




REPORTS 




PROGRAMS 




REPORTS 

































Weekly. rep 



Basic.com 



5-4 



This directory structure reflects the organization of 
each of the two departments. Directories can be 
created on different levels. The highest level is the root 
directory. DOS creates a root directory on each disk 
when you format it. When you start DOS on your 
computer, you are in the root directory. 

Just below the root directory shown in the previous 
diagram, are two subdirectories — one for sales and one 
for accounting. One level below the subdirectory 
named SALES, you find two more subdirectories. 
These two subdirectories can contain files for the 
salespersons, Ruth and Linda. The complete name of 
Ruth's subdirectory is actually \ SALES \ RUTH. The 
complete name of Linda's subdirectory is 
\ SALES \ LINDA. 

Ruth and Linda can store files related to their work in 
their respective subdirectories. But suppose Ruth and 
Linda want to keep all files related to reports separate 
from their other files. On the next level, each has a 
subdirectory named REPORTS. The complete name of 
each subdirectory is \ SALES \ RUTH \ REPORTS and 
\ SALES \ LINDA \ REPORTS. 

Note: Sales files of a general nature, not related to 
a particular salesperson, can be stored in SALES. 



Directory Entries 



A directory entry can be a file, a subdirectory, or a 
volume label. The number of entries that the root 
directory of a disk can contain depends on the type of 
disk. The root directory of a single-sided diskette can 
hold 64 entries, while the root directory of a 
double-sided diskette can hold 112 entries. The root 
directory of a high-capacity diskette can hold 224 
entries. There can be 512 entries in the root directory 
of a fixed disk. 



5-5 



Unlike the root directory, subdirectories can contain 
any number of entries, limited only by the amount of 
available space on the disk. 

Subdirectory names follow the same format as 
filenames. They can consist of 1 to 8 characters 
followed by an optional extension of a period and 1 to 3 
characters. All characters valid for filenames are also 
valid for subdirectory names. 



Accessing Your Subdirectories 



You need to know how to get to your subdirectories 
and how to access files located in a subdirectory other 
than the one you are working in. This section 
discusses: 

The current directory 

The CHDIR command (Change Directory 
command) 

Specifying a path to a file 

Using the PATH command 

Using PATH in a batch file 



The Current Directory 

The current directory is the one you are currently 
working in or the one you were working in on a 
different drive. DOS remembers which directory was 
current on each of your drives, even though you may 
not be presently accessing any of those drives. When 
DOS starts, the root directory is the current directory 
(until you change directory using the CHDIR 
command). 



5-6 



Changing Directories with CHDIR 

Use the CHDIR (CD) command to move in and out of 
your directories (make a different directory the current 
directory). For example, if you are in the root 
directory, and want to work with files in 
\SALES\LINDA\REPORTS, type: 

Ocd \SALES\LINDA\REPORTS (Press Enter) 

You must "go through" SALES and LINDA to get to 
REPORTS. The leading backslash is really not 
necessary if you are currently in the root directory. 

If you are in LINDA and you want to change to the 
REPORTS subdirectory, you type: 

Ocd reports (Press Enter) 

You always get back to the root directory no matter 
where you are in the directory structure, by typing: 

Ocd \ (Press Enter) 

The backslash ( \ ) signifies the root directory. 

The longest path that you can specify with CHDIR is 
64 characters. 



Specifying a Path to a File 

When you want DOS to locate a file, and you do not 
specify a particular directory, DOS searches only the 
current directory of your default drive. 

DOS can search for a file in a directory other than the 
current directory of your default drive. To do so, DOS 
must know three things — the drive, the name of the 
directory, and the name of the file. 

These three components can be combined to create a 
path to a file. For example, if your default drive is A, 



5-7 



and you want to copy a file named WEEKLY. REP 

from drive C in the directory 

\ SALES \ RUTH \ REPORTS to drive A, type: 

A>copy c:\sales\ruth\reports\weekly.rep (Press Enter) 

This command copies the file WEEKLY.REP from a 
directory three levels below the root on drive C to the 
current directory on drive A. Note that the filename is 
the last item in the path. 



Using the PATH Command 

You can use the PATH command to tell DOS where to 
search for executable files that it does not find in the 
current directory. This search is valid only for files 
with an extension of .EXE .BAT, or .COM. Data files 
cannot be located using PATH. 

To start a search from the root directory, the path 
specified in the PATH command must begin with a 
backslash. Otherwise, the search begins at the current 
directory. 

Let's suppose that you have several applications that 
require BASIC.COM in order to run. BASIC.COM is 
only on drive C in the directory 
\ ACCTNG\LEE\PROGRAMS. Your application 
programs are on diskette and may be run from either 
drive A or drive B. 

You can set the PATH so that DOS looks for 
BASIC.COM, or any other executable file that may be 
needed to run your applications or manage your files. 
DOS searches the directories in the exact order that you 
specify in the PATH command. Given the diagram at 
the beginning of the chapter, a valid path is: 

Opath c:\sales\l inda\reports\;c:\acctng\lee\programs 

After you start the application program, at a specific 
point, BASIC.COM is required in order for the 
program to continue. In this example, DOS searches 



5-8 



the current directory of the default drive and then the 
path that you set when you started the computer. DOS 
finds the required file in 

\ ACCTNG\LEE\PROGRAMS on drive C. Your 
application program can continue because 
BASIC.COM has been invoked. 

For more information, see the PATH command in 
Chapter 7 of this book. 



Using PATH in a Batch File 

You can avoid having to set the PATH each time you 
turn on your computer. Include the names of your 
most-used directories in a PATH statement in an 
AUTOEXEC.BAT file in the root directory of the disk 
from which you start DOS. 

AUTOEXEC.BAT is a special type of batch file that 
DOS looks for when you first start your computer. If 
DOS finds AUTOEXEC.BAT in the root directory, it 
executes the statements it finds there. The previous 
example is a valid path that can be included in an 
AUTOEXEC.BAT file. 



5-9 



Using Directory Commands 



The following commands help you create and manage 
your subdirectories and directory structure: 

• MKDIR (MD) — used in making a new 
subdirectory. 

• RMDIR (RD) — used in removing a subdirectory. 

• CHDIR (CD) — used in displaying and changing 
the current directory. 

• TREE — used in displaying the entire directory 
structure of a disk. 



5-10 



Making a Subdirectory 

Use the MKDIR (MD) command to make a new 
subdirectory. Be sure to include the appropriate drive 
and path, ending with the name of the new subdirectory 
you want created. 

Let's assume you want to add the PAYMENTS 

subdirectory one level below 

SALES \ LINDA \ REPORTS. Make sure you are in 

the root directory of the correct disk drive and type the 

following: 

OMD \SALES\LINDA\REPORTS\PAYMENTS (Press Enter) 

The resulting subdirectory structure looks like this: 





ROOT DIR 
































SALES 




ACCTNG 










































LINDA 




RUTH 




LEE 




RAE 
























REPORTS 




REPORTS 




PROGRAMS 




REPORTS 














1 






PAYMENTS 


Weekly. rep Baslc.com 



5-11 



Assume you want to add a subdirectory for a third 
salesperson just below the SALES subdirectory. The 
salesperson is Eileen. If you are in the root directory, 
type: 

Omd \sales\eileen (Press Enter) 

If you are in the SALES directory, type: 

Omd eileen (Press Enter) 

The directory structure of your fixed disk now looks 
like this: 





R00TDIR 
































SALES 




ACCTNG 




















































LINDA 




RUTH 




EILEEN 




LEE 




RAE 




























REPORTS 




REPORTS 




PROGRAMS 




REPORTS 








1 




1 






PAYMENTS 


Weekly. rep Basic.com 



5-12 



Removing a Subdirectory 

Use the RMDIR (RD) command to remove a 
subdirectory. You cannot remove a subdirectory by 
using the ERASE or DEL commands. Before removing 
a subdirectory, keep the following in mind: 

• A subdirectory can be removed only if it is empty. 
That is, it contains only the special entries (.) and 
(..). When you display the contents of a 
subdirectory, using the DIR command, you see 
those two special entries listed. 

• Only one subdirectory can be removed at a time — 
only the last one specified in the path. 

• The root directory and the current directory cannot 
be removed. 

Let's assume you want to remove the REPORTS 
subdirectory from \ SALES \ RUTH \ REPORTS. 

• If you are in the root directory, change directory to 
the subdirectory you want to remove by typing CD 
\ SALES \ RUTH \ REPORTS. 

• Type erase *.* to remove all files in the 

\ SALES \ RUTH \ REPORTS subdirectory. 

Note: No files are erased from the SALES or 
RUTH subdirectories, only from the 
REPORTS subdirectory. 

• Change directory to the level above the REPORTS 
subdirectory that you want to remove by typing cd 
\ SALES \ RUTH. 

• Type RD REPORTS to remove the subdirectory. 



5-13 



The directory structure now looks like this: 



ROOTDIR 



SALES 



ACCTNG 



LINDA 



RUTH 



EILEEN 



LEE 



REPORTS 



RAE 



PROGRAMS REPORTS 



PAYMENTS 



Basic.com 



Displaying and Changing the Current Directory 

As previously mentioned, you change from one 
subdirectory to another using the CHDIR (CD) 
command. See the section entitled, "Changing 
Directories with CHDIR" earlier in this chapter for 
more information. 



You can also display which subdirectory you are 
currently working in by typing: 



cd 



(Press Enter) 



5-14 



Displaying the Directory Structure 



Use the TREE command to find out the names of each 
subdirectory on a disk. For example, to see the 
directory structure for disk C, type the following: 

A> TREE C: 

For more information on the TREE command, see 
Chapter 7 of this book. 



Where DOS Looks for Commands and 
Batch Files 



When you type a command, if it is an external file, DOS 
must locate the command file in order to execute the 
command. You must specify the location (path) that 
describes which drive and directory the command file is 
in. You do this by typing the path before the command 
itself. You can use the PATH command to tell DOS 
what paths to search if it does not find the command 
file in the current directory or the path specified on the 
command line. 

Note: This search is only valid for files with a 
.EXE, .BAT, or .COM filename extension. Data 
files cannot be located by using the PATH 
command. 



5-15 



Notes: 



5-16 



Chapter 6. Standard Input and Standard 
Output 



Contents 

Introduction 6-3 

Redirection of Standard Input and Output Devices . 6-3 

Piping of Standard Input and Output 6-6 

DOS Filters 6-7 



6-1 



Notes: 



6-2 



Introduction 



This chapter describes how you can use redirection, 
piping, and filters with standard input and standard 
output. It also describes how to invoke a secondary 
command processor. 

Use redirection of standard input and standard output 
to change the standard input device or standard output 
device. 

Use piping of standard input and standard output to use 
the output of one program as the input to another 
program. 

Use filters to sort the input or output of a program, or 
to find the occurrence of a string in a text file, or to 
display a screen of data and then pause with the 
message — More — . 



Redirection of Standard Input and 
Output Devices 



DOS provides internal functions that programs can use 
to receive input and display or print output. These 
functions are called standard input and standard output. 

The DOS standard input and output redirection feature 
allows a program to receive its input from a source 
other than the standard input device, or direct its output 
to a device other than the standard output device. 

When you first start DOS, the standard input device is 
the IBM Personal Computer keyboard, and the 
standard output device is the display unit (screen). 
However, DOS lets you specify input and output 
devices other than the keyboard and the screen. Refer 



6-3 



to the CTTY command, described in Chapter 7 of this 
book to see how you can specify a remote terminal as 
the standard input and output device instead of the 
keyboard and screen. 

DOS handles the mapping of the logical (standard input 
and output) devices to the real devices in a way that is 
not apparent to the application program. The 
application program does not need to be aware of the 
physical device that is actually being used for standard 
input and standard output. 

Note: Any output sent to the standard error device 
cannot be redirected. 

This means that you can run your application program 
using the keyboard and screen for your input and 
output device, and then run your application at another 
time using a remote terminal for your input and output 
device. You do not have to change the application 
program, which continues to use the standard input and 
standard output. DOS goes to the correct physical 
device on behalf of the application program. 

The standard input and output devices can be 
redirected to or from files or other devices by the 
following DOS command line parameters: 

> [d: ] [path]filename[.ext] 

Causes filename[.ext\ to be created (or truncated 
to zero length) and then assigns standard output to 
that file. All output that would normally have gone 
to the screen from the command is placed in the 
file. 

> > [d:][path]filename[.ext] 

Causes filename[.ext] to be opened (created if 
necessary) and positions the write pointer at the 
end of the file so that all output is appended to the 
file. 



6-4 



< \.d'- ] \path]filename[.ext\ 

Causes standard input to be assigned to 
filename[.ext\. All input to the program comes 
from this file instead of from the keyboard. 

CAUTION 

When using this method of providing input to 
a program, be sure all of the program's input 
is in the file. If the program attempts to obtain 
more input after end-of-file is reached, DOS 
is unable to supply the input, and processing 
stops. You may have to restart the system by 
pressing Ctrl-Alt-Del. 

Note: If an application does not use DOS 
function calls to perform standard input and output 
(for example, it puts text directly into the video 
buffer), then redirection will not work for that 
application. 

Example: In the following example, the output of the 
DIR command is sent to the printer: 

A>dir >prn 

In the following example, the output of the DIR 
command is sent to the file DIRLIST: 

A>dir >dirlist 

In the following example, the program MYPROG will 
receive its input from file INPUT.TXT, instead of 
from the keyboard: 

A>myprog <input. txt 



6-5 



Piping of Standard Input and Output 



The DOS piping feature allows the standard output of 
one program to be used as the standard input to 
another program. DOS uses temporary files to hold the 
input and output data being piped. These temporary 
files are created in the root directory of the default 
drive. 

The programs being piped must not cause the piping 
files to be erased or modified. 

Piping is the chaining of programs with automatic 
redirection of standard input and output (refer to 
"Redirection of Standard Input and Output Devices" 
in this chapter for additional information). The names 
of the programs to be chained are separated by the 
vertical bar ( | ) character on the command line. 

The following are typical examples of using the piping 
feature for a program that does all of its input and 
output to the standard input and output devices. For 
example, if the program named SORT ABC read all of 
its input from standard input, sorted it, and then wrote 
it to the standard output device, the command: 

A>dir | sortabc 

would generate a sorted directory listing. This causes 
all standard output generated by the DIR command to 
be sent to the standard input of the SORT program. 

To put the sorted directory in a file, you would type: 
A>dir | sort > file 

If you want the file to contain only the directory 
entries for subdirectories, you could type: 

A>dir ! find"<DIR>" ! sort > file 



6-6 



DOS Filters 



A filter is a program or command that reads data from 
a standard input device, modifies the data, then writes 
the result to a standard output device. Thus, the data 
has been "filtered" by the program. For example, one 
of the filters on your DOS diskette is called SORT. 
SORT reads input from the standard input device 
(normally the keyboard), sorts the lines of data, then 
writes the sorted results to the standard output device 
(normally the screen). With the redirection capabilities 
described earlier in this chapter, you can cause SORT 
to receive its input from some other source, and to 
send its output to a different destination. For 
example, 

A>sort <myfile >result 

will cause SORT to read the file MYFILE, sort the 
lines within it, and write the sorted output to file 
RESULT. 

By using the piping feature, you can cause a filter to 
receive its input from the output of another command, 
or to send its output to the input of another command. 
For example, 

A>dir | sort 

causes the output listing from the DIR command to 
be used by SORT as its input. The listing will be 
sorted and the result displayed on the standard output 
device. 



6-7 



There are three filters on your DOS diskette, and they 
are described as individual commands in Chapter 7. 
They are: 

SORT Sorts text data. 

FIND Searches files for occurrences of specified 
strings of text. 

MORE Displays a screen full of data at a time, then 
pauses with the message —More — . 

You can add your own filter to the filters that have 
been supplied; just write a program that reads its input 
from the standard input device, and writes its output 
to the standard output device. 

Note: If an application does not use DOS 
function calls to perform standard input or output 
(for example, it puts text directly into the video 
buffer), filters will not work for that application. 



6-8 



Chapter 7. DOS Commands 



Contents 

Introduction 7-5 

DOS Commands and the Network 7-7 

Types of DOS Commands 7-8 

Entering a DOS Command 7-9 

Information Common to All DOS Commands ... 7-10 

DOS Commands 7-13 

ASSIGN (Drive) Command 7-14 

ATTRIB (Attribute) Command 7-17 

BACKUP Command 7-19 

Batch File Commands 7-24 

Creating a Batch File 7-26 

Executing a Batch file 7-27 

The AUTOEXEC.BAT File 7-27 

Creating an AUTOEXEC.BAT file 7-28 

Creating a Batch File with Replaceable 

Parameters 7-28 

Executing a Batch File with Replaceable 

Parameters 7-29 

ECHO Subcommand 7-30 

FOR Subcommand 7-32 

GOTO Subcommand 7-33 

IF Subcommand 7-34 

PAUSE Subcommand 7-38 

REM (Remark) Subcommand 7-39 

SHIFT Subcommand 7-40 



7-1 



BREAK (Control Break) Command 7-43 

CHDIR (Change Directory) Command 7-45 

CHKDSK (Check Disk) Command 7-48 

CLS (Clear Screen) Command 7-52 

COMMAND (Secondary Command Processor) 
Command 7-53 

COMP (Compare Files) Command 7-55 

COPY Command 7-60 

CTTY (Change Console) Command 7-72 

DATE Command 7-74 

DEL (Delete) Command 7-77 

DIR (Directory) Command 7-79 

DISKCOMP (Compare Diskettes Only) 

Command 7-84 

DISKCOMP Compatibility 7-88 

DISKCOPY (Copy Diskettes Only) Command .. 7-90 

DISKCOPY Compatibility 7-94 

ERASE Command 7-96 

EXE2BIN Command 7-98 

FDISK Command 7-101 

FIND Filter Command 7-102 

FORMAT Command 7-105 

FORMAT Compatibility 7-110 

GRAFT ABL (Load Graphics Table) Command 7-113 



7-2 



GRAPHICS (Screen Print) Command 7-115 

JOIN Command 7-118 

Why Use JOIN? 7-122 

KEYBxx (Load Keyboard) Command 7-123 

Allowable Dead Key Combinations ... 7-126 

LABEL (Volume Label) Command 7-127 

MKDIR (Make Directory) Command 7-130 

MODE Command 7-132 

MORE Filter Command 7-139 

PATH (Set Search Directory) Command 7-140 

PRINT Command 7-143 

PROMPT (Set System Prompt) Command ... 7-149 

RECOVER Command 7-153 

RENAME (or REN) Command 7-156 

RESTORE Command 7-157 

RMDIR (Remove Directory) Command 7-161 

SELECT Command 7-162 

SET (Set Environment) Command 7-164 

SHARE Command 7-167 

SORT Filter Command 7-169 

SUBST(Substitute) Command 7-172 

Why Use SUBST? 7-177 

SYS (System) Command 7-178 



7-3 



TIME Command 7-180 

TREE Command 7-182 

TYPE Command 7-185 

VER (Version) Command 7-186 

VERIFY Command 7-187 

VOL (Volume) Command 7-188 



7-4 



Introduction 



You can use DOS commands to: 

Compare, copy, display, erase, rename files. 

Format fixed disks and diskettes. 

Execute system programs, such as EDLIN, 
DEBUG, and LINK, plus your own programs. 

Set various printer and screen options. 

Request DOS to pause. 

Transfer DOS to another diskette. 

Cause printer output to be directed to the 
Asynchronous Communications Adapter. 

Recover a specific file from a damaged disk, or 
recover the entire disk or diskette. 

Print the contents of a graphics display screen on 
a printer. 

Print files on the printer while the system is doing 
other work. 

Backup and restore files on a fixed disk. 

Define a remote device as your primary console. 

Sort text data. 

Search files for occurrences of specified strings of 
text. 

Display a screen full of data at a time. 

Set new system prompt. 



7-5 



Set the system environment. 

Convert .EXE files to .COM files. 

Install file sharing. 

Make a file read-only. 

Add or change a disk volume label. 

Ask DOS to check for Ctrl-Break to exit a 
program or command at any time. 

Create, remove, and change subdirectories. 

Display all the directories on a disk. 

Check for disk errors. 

Set the date and time. 

Find out what's on a disk. 

Select the date and time format. 

Join a drive to a directory on another drive so that 
you can access a drive through a subdirectory. 

Substitute a drive letter for another drive or 
directory in order to access that drive or directory 
using only the drive letter. 



7-6 



DOS Commands and the Network 



You can use most of the DOS commands on network 
disks, directories, and printers. 

For example, use the DIR command to list the 
contents of a network disk or directory. 

Use the COPY command to copy files from a network 
disk or directory. You can copy the files to your own 
disk or to a network disk or directory. 

There are a few DOS commands that you cannot use 
with network disks, directories, or printers that you 
are using (or disks and directories that you are 
sharing) on the network. Don't use: 

. CHKDSK 

• DISKCOMP 

Note: Instead of DISKCOMP, use COMP 

(Compare) to compare files. 

. DISKCOPY 

Note: Instead of DISKCOPY, use the 
COPY command to copy files. 

FORMAT 



JOIN (cannot JOIN a network drive to a local 
drive) 

RECOVER 

SUBST (cannot SUBST a drive letter for a 
network path) 

SYS 



7-7 



• PRINT (cannot use PRINT on a network server 
computer) 

. FDISK 

• LABEL (cannot change the label on a network 
disk) 

Note: Using these commands with a network 
device causes an error message. 

Of course, these commands are valid for your real 
disks, directories, and printers. 



Types of DOS Commands 



The two types of DOS commands are internal 
commands and external commands. 

Internal commands execute immediately because they 
are built into DOS. Therefore, once DOS is loaded, 
you do not need the DOS diskette in a drive to use 
these commands. 

External commands are on disks as program files. 
They must be read from the disk before they are 
executed. This means that the disk containing the 
command must be in a drive, or DOS is unable to find 
the command. 

Any file with a filename extension of .BAT, .COM or 
.EXE is considered an external command. This allows 
you to develop your own unique commands and add 
them to the system. (For example, programs such as 
FORMAT.COM and COMP.COM are external 
commands.) 

When you select an external command, you do not 
have to include the filename extension. 



7-8 



Entering a DOS Command 



Use the following format notation to enter DOS 
commands: 

[ ] Items shown inside square brackets are 

optional. To include optional items, type 
only the information inside the brackets. 
Do not type the brackets. 

CAPS Words shown in capital letters are called 
keywords. The DOS command names are 
keywords. You can type keywords in any 
combination of uppercase and lowercase 
letters. 

italics Items shown in lowercase italic letters mean 
that you are to substitute the item. If italic 
items are inside brackets, then they are 
optional. For example, 

filename 

indicates that you should type the name of 
your file in place of the word filename. 

| A vertical bar means either/or. Choose one 

of the separated items and type it as part of 
the command. For example, 

ON I OFF 

indicates that you should type either ON or 
OFF, but not both. Do not type the vertical 
bar. 

An ellipsis indicates that you can repeat an 
item. 



7-9 



Include all punctuation such as commas, equal signs, 
question marks, asterisks, colons, slashes and 
backslashes. Punctuation shown inside brackets is 
optional. 



Information Common to All DOS 
Commands 



The following information applies to all DOS 
commands: 

• The DOS prompt consists of the default drive 
letter and the character ">." For example, A> is 
the DOS prompt that denotes A as the default 
drive. You can change the DOS prompt by using 
the PROMPT command. 

• When a command has finished executing, the 
DOS prompt reappears on the screen. If no error 
messages appear before the DOS prompt returns, 
the command has been executed successfully. 

• Commands are usually followed by one or more 
parameters. 

• You can type commands in uppercase or 
lowercase or a combination of both. For 
example, you can type: 

Dir A: 

• DOS searches the current directory of the drive 
you specify or the default drive (if you do not 
specify a drive) to find a command or batch file 
you typed. If not found, and you have specified a 
PATH command, DOS searches the directories 
listed in the path. 



7-10 



Commands that allow you to enter filenames can 
accept a path (directory) name before the 
filename. 

Commands and parameters must be separated by 
delimiters (space, comma, semicolon, equal sign, 
or the tab key). The delimiters can be different 
within one command. For example, you could 
type: 

A>copy oldfile.rel ;newfile.rel 
A>rename, this file thatfile 

Do not separate the three parts of a filespec 
(d:filename.ext). The colon and period already 
serve as separators. 

In this book, a space is used as the delimiter in the 
commands for readability. 

Also in this book, when we say "Press any key" 
we mean "Press any character key." 

To stop a command while it is executing, press 
Ctrl-Break. Ctrl-Break is recognized only while 
the system is reading from the keyboard or 
printing characters on the screen, unless you have 
used BREAK=ON in your configuration file or 
have issued a BREAK ON command. Thus, the 
command may not end immediately when you 
press Ctrl-Break. 

Commands start executing only after you press 
the Enter key. 

Global filename characters and device names are 
not allowed in a command name. You can only 
use them in filenames and filename extensions. 

For commands displaying a large amount of 
output, you can use the Pause Screen function to 
suspend the display of the output. Press any 
character key to continue the display. 



7-11 



You can use the function keys and the DOS 
editing keys described in Chapter 2 of the DOS 
User's Guide while typing DOS commands. 

Drives are referred to as source drives and target 
drives. A source drive is the drive you transfer 
information from. A target drive is the drive you 
transfer information to. 

When an external command is typed, DOS 
searches for it in the current directory of the 
default or specified drive. If not found, DOS 
continues searching for it in the directories listed 
in the most recent PATH command. 

If you type any of these characters <, >, or [ in a 
command, DOS treats them as redirection and 
piping characters. Refer to Chapter 6 "Standard 
Input and Standard Output" for information on 
redirection and piping. 

For example, if you type the following ECHO 
command, the > character is treated as a 
redirection character, not the greater-than 
character. 

A>echo filel > f i 1 e2 

Therefore, the string FILE1 is placed in the file 
FILE2. 



7-12 



You can specify a drive and path before external 
commands. This means that the external 
command file can be in a directory other than the 
current directory. For example, if the file 
FORMAT.COM is in the directory \LEVEL1 
on drive B, you can type: 

A>b: \level 1\ format 



DOS Commands 



This section presents a detailed description of the 
DOS commands. The commands appear in alphabetic 
order. The description includes the purpose, format, 
and type of each command. Examples are provided 
where appropriate. 



7-13 



ASSIGN (Drive) 
Command 



Purpose: Instructs DOS to route disk I/O requests for one 
drive into disk I/O requests for another drive. 

Format: [d: ][path] ASSIGN [x[=]y [...]] 

Type: Internal External 



Remarks: Specify the parameters: 



[d:][path] before ASSIGN to specify the drive and 
path that contains the ASSIGN command file. 

x to specify the drive to which current disk I/O 
requests are sent. 

y to specify the drive letter that you want disk I/O 
requests to now be sent. 

The first drive letter x is internally converted by 
DOS to the second drive letter y. Both x and y must 
physically exist (a diskette, fixed disk or block device 
driver such as VDISK). Do not type the colon after 
the drive letters x and y. 

Type ASSIGN with no parameters to reset all drive 
assignments so that normal drive assignments 
resume. 

Note: This command has been included to assist 
you with applications that were designed to 
perform their disk operations specifically on 
drives A and B (those applications that do not 
allow you to specify a drive). By using a 
command such as, 



7-14 



ASSIGN (Drive) 
Command 



A>assign a=c b=c 



those applications can be made to use drives 
other than A and B, such as a fixed disk. 

Reassignment of drives should only be used 
when necessary for these cases. It should never 
be used with the BACKUP, RESTORE, 
LABEL, JOIN, SUBST, or PRINT commands. 

Also, do not reassign drives when running DOS 
in normal operations. Doing so can hide the true 
device type from commands and programs that 
require actual drive information. Note that 
FORMAT, DISKCOPY and DISKCOMP 
ignore any drive reassignments. 

If you will be developing an application 
program, we recommend that you avoid using 
specific drive assignments within your program, 
but instead, allow the user to specify the 
drive(s) to be used. 

Example: The following example assigns all requests for drive 
A to drive C. Thus, if you issue DIR A:, DOS 
displays the directory that is on physical drive C: 

A>assign a=c 



7-15 



ASSIGN (Drive) 
Command 



The following example assigns any requests for 
drive A or drive B to drive C. 

A>assign a=c b=c 

The following example resets any previous drive 
assignments so that requests for drive A go to drive 
A, etc. 

A>assign 



7-16 



ATTRIB (Attribute) 
Command 



Purpose: Allows you to set or reset the Read-Only file 

attribute, or to display the current setting of that 
attribute. 

Format: [d:][path]ATTRlB [+R | -R] [d:][path]filename[.ext] 

Type: Internal External 

* * * 



Remarks: Specify the parameters: 

[d:][path] before ATTRIB to specify the drive and 
path that contains the ATTRIB command file. 

+R to set the read attribute of the specified file to 
read-only. 

-R to remove the read-only attribute of the specified 
file. 

[d:][path\filename[.ext] to specify the file you want to 
mark as read-only. Global filename characters are 
allowed. 

Example: The following example sets the attribute of the file 
name FILE1.TXT to read-only. 

A>attrib +r filel . txt 

The following example displays the current setting 
of the Read-Only attribute for the file FILE1.TXT. 

A>attrib filel.txt 



7-17 



ATTRIB (Attribute) 
Command 

The result is: 

R A:\FILE1.TXT 



The following example removes the read-only 
attribute from the previous example. 

A>attrib -r filel .txt 

The following example displays the current setting 
of the Read-Only attribute for the file FILE1.TXT. 

A>attrib filel.txt 

The result is: 

A:\FILE1.TXT 

The following example sets the attribute of the file 
C:\PROGl.BAS to read-only. 

A>attrib +r c:\progl.bas 



7-18 



BACKUP 

Command 



Purpose: Backs up one or more files from one disk to another. 
The drive specifiers of the disks must be different. 

Format: [d: ][path] BACKUP d:[path][filename[.ext]] d: 

[/S][/M][/A][/D:mm-^] 

Type: Internal External 

** * 

Remarks: You can back up files from a: 

• Fixed disk to a diskette 

• Diskette to a diskette 

• Diskette to a fixed disk 

• Fixed disk to a fixed disk 

Specify the parameters: 

[d:]\j)ath] before BACKUP to specify the drive and 
path that contains the BACKUP command file. 

d: to specify the drive that contains the files you 
want to BACKUP (source). [path]\filename[.ext]] to 
specify the name of the file you want to BACKUP. 

d: to specify the drive that will contain the backed up 
files (target). 

/S to back up subdirectory files in addition to the 
files in the specified or current directory. 

/M to back up files that have been modified since 
the last backup. 



7-19 



BACKUP 

Command 



/A to add the files to be backed up to the files 
already present on the backup disk. 

/D to back up files that have been modified on or 
after the specified date. The format of the date 
specified will be [mm-dd-yy] or [dd-mm-yy] or 
\yy-mm-dd\ depending on the country code you 
selected using the SELECT or COUNTRY 
commands. 



Notes: 



The disk that contains the file you want to back 
up is called the source. The disk where the 
backup file is placed is called the target. For 
example, if you want to back up a file from your 
fixed disk to a diskette, the fixed disk is the 
source and the diskette is the target. 

Global filename characters are allowed in the 
filename and extension. Therefore, you can 
backup all files (including subdirectory files) 
from the source drive C to the target drive A by 
typing: 

A>backup c: \*.* a:/s 

BACKUP is not the same as COPY. COPY 
makes an exact duplicate of the file. BACKUP 
files have control data included that the 
RESTORE command uses. Therefore, you 
cannot use backed up files as data files until 
they are restored. Refer to the RESTORE 
command in this chapter for information on 
using RESTORE. 



7-20 



BACKUP 

Command 

4. If you are sharing files, you can only BACKUP 
files that you have access to. If you attempt to 
access a file that you do not have access to, the 
following message appears: 

PATHNAME\FILENAME.EXT 

Not able to backup at this time 

5. If the target is a new diskette, use DOS to 
format the diskette before you backup files. 

6. If the diskette contains files, BACKUP erases 
the files already present on the diskette unless 
you specify /A parameter. 

7. If the source or target is removable, you are 
prompted to insert the source or target diskette 
into the drive. 

8. After BACKUP fills up a diskette, you are 
prompted to insert a new diskette. Label each 
diskette and record the date and diskette 
number. 

9. BACKUP displays the name of each file as it is 
backed up. Label each backup diskette in 
consecutive order because, when the files are 
restored, you are prompted to insert the backup 
diskette in order. 

10. The BACKUP command sets the exit code as 
follows: 

Normal completion 

1 No files were found to backup 

2 Some files not backed up due to file 
sharing conflicts 



7-21 



BACKUP 

Command 



Example: 



3 Terminated by user (Ctrl-Break) 

4 Terminated due to error 

These codes can be used with the batch 
processing IF ERRORLEVEL subcommand. 

11. If the target is a fixed disk, the backup files are 
placed in a subdirectory named \ BACKUP. If 
the target is a diskette, the backup files are 
placed in the root directory. 

12. If the source is a diskette, it should not be write 
protected because BACKUP needs to mark the 
files as being backed up (/M). 

13. Do not use BACKUP with a drive letter that has 
been assigned or substituted as this can hide the 
true drive letter that BACKUP is using. 

14. Do not use BACKUP while a JOIN is in effect 
because the tree structure may be invalid when 
you RESTORE. 

The following example backs up all files from the 
fixed disk drive C to the diskette in drive A. 



A>backup c: 



a:/s 



Note: To back up a 10M byte fixed disk onto 
double-sided 9 sector diskettes, you need 
approximately 25 diskettes. 



7-22 



BACKUP 

Command 

The following example backs up the file named 
FILE. TXT from drive A to drive C. 

A>backup a:f lie. txt c: 

The following example backs up all files from drive 
A that have been modified since the date 8-21-84. 

A>backup a: c :/d:8-21-84 

The following example adds the files on drive A to 
the backed up files already on the diskette in drive B. 

A>backup a: b:/a 



7-23 



Batch File 
Commands 



Purpose: Batch commands are DOS commands that are 

contained in a special file called a batch file. When 
you execute a batch file, DOS executes the 
commands you include in the batch file. 

Format: [d:][path]filename[.BAT] [parameters] 

Type: Internal External 



Remarks: A batch file is a file containing one or more 

commands that DOS executes one at a time. All 
batch files must have a filename extension of .BAT. 

You can pass parameters (using replaceable 
parameters) to the filename.BAT file when the file is 
executed. Therefore, the file can do similar work 
with different data during each execution. 

You can create a batch file by using the Line Editor 
(EDLIN), or by using the COPY CON command 
directly from the standard input device. 



Notes: 



2. 



Do not enter the name BATCH (unless the 
name of the file you want to execute is 
BATCH.BAT). 

Do not name batch files with internal command 
names. 



3. You do not need to type the filename extension 
.BAT to execute a batch file. 



7-24 



Batch File 
Commands 

4. The commands in the file named filename. BAT 
are executed. 

5. There are seven subcommands that can be used 
to control batch processing: ECHO, FOR, 
GOTO, IF, SHIFT, PAUSE, and REM. They 
are explained in the following pages. 

6. If you remove a diskette containing a batch file 
being processed, DOS prompts you to insert it 
again before the next command can be read. 

7. The last command in a batch file may be the 
name of another batch file. This allows you to 
invoke one batch file from another when the 
first is finished. If a batch file references 
another batch file, the second batch file does 
not return to the first batch when if finishes 
unless the first batch file contains the 
COMMAND command. 

8. DOS remembers which directory the batch file 
was started from. Therefore, the commands 
within the batch file may change the current 
directory during execution. 

9. Batch files execute quickly if placed on a virtual 
disk. Refer to Chapter 4 "Configuring Your 
System" for information on virtual disks 
(VDISK.SYS). 



7-25 



Batch File 
Commands 

Creating a Batch File 



You can create a batch file by using an editor or by 
using the COPY command directly from the standard 
input device. Follow these steps to create a batch 
file using the COPY command. 

1 . At the DOS prompt type: 

A>copy con filename .bal 

Substitute the name you want for your batch file 
for filename. 

2. Press Enter. 

3. Type the commands you want to include in the 
batch file. Press Enter after you type each 
command. 

Note: If you make a mistake typing a 
command, press Ctrl-Break. Pressing 
Ctrl-break ends the COPY command 
without saving the batch file. Then repeat 
the procedure again. 

4. Press F6 and then Enter when you have finished 
typing commands. This ends the COPY 
command and saves the batch file. This 
message is displayed: 

1 File(s) copied 
A> 



7-26 



Batch File 
Commands 

Executing a Batch file 

Batch files are executed by typing the name of the 
batch file at the DOS prompt and then pressing 
Enter. For example, to execute a batch file named 
EXAMPLE.BAT, at the DOS prompt type: 

A>example 

then press Enter. 

You do not need to type the batch filename 
extension .BAT. 

To stop the execution of a batch file, press 
Ctrl-Break. The command being executed ends and 
the following prompt is displayed: 

Terminate batch job (Y/N)? 

Type y to terminate the batch file. The remaining 
commands are ignored and the DOS prompt is 
displayed. 

Type n to continue executing the remaining 
commands. 

The AUTOEXEC.BAT File 

Every time you start DOS, the command processor 
searches for a file named AUTOEXEC.BAT in the 
root directory on the disk that DOS was started 
from. An AUTOEXEC.BAT file is a special type of 
batch file that is automatically executed when you 
start or restart DOS. An AUTOEXEC.BAT file is 
useful if you want to execute certain commands 



7-27 



Batch File 
Commands 



every time you start DOS. For example, you can 
create an AUTOEXEC.BAT file that sets the DOS 
path by including the PATH command in the file. 



Creating an AUTOEXEC.BAT file 



An AUTOEXEC.BAT file must be created in the 
root directory of the disk you start DOS from. You 
are not prompted for the date and time when you 
start DOS, unless you include the DATE and TIME 
commands in the AUTOEXEC.BAT file. 



Creating a Batch File with Replaceable 
Parameters 

Within a batch file you can include dummy 
parameters that can be replaced by values supplied 
when the batch file executes. 

For example, if the batch file EXAMPLE.BAT 
contains these commands: 

copy %l .mac %2.mac 
type %2.prn 
type %0.bat 

the replaceable parameters %0, %1, and %2 are 
replaced sequentially by the parameters you supply 
when you execute the file. The replaceable 
parameter %0 is always replaced by the drive 
specifier, if specified, and the filename of the batch 
file. In the AUTOEXEC.BAT file, %0 is not set to 
any value. 



7-28 



Batch File 
Commands 

Notes: 

1 . Up to 10 dummy parameters (%0 - %9) can be 
specified within a batch file, more than 10 
parameters can be specified on a command line 
(see SHIFT subcommand). 

2. If you want to use % as part of a filename 
within a batch file, you must specify it twice. 
For example, to specify the file ABC %. EXE 
you must type it as ABC%%.EXE in the batch 
file. 

Executing a Batch File with Replaceable 
Parameters 

To execute the EXAMPLE.BAT file and pass 
parameters, type the batch filename followed by the 
parameters you want sequentially substituted for 

%1, %2, etc. 

For example, you can type: 

A>example arprogl b:prog2 

EXAMPLE is substituted for %0, A:PROGl for 
%1, and B:PROG2 for %2. 

The result is the same as if you typed each of the 
three commands (in the EXAMPLE.BAT file) from 
the console with their parameters, as follows: 

A>copy a: progl .mac b:prog2.mac 
A>type b:prog2.prn 
A>type example.bat 



7-29 



Batch File 
Commands 

ECHO Subcommand 

Purpose: Allows or inhibits the screen display of DOS 

commands executed from a batch file. It does not 
interfere with messages produced while the 
commands are executing. 

Format: ECHO [ON | OFF | message] 

Type: Internal External 

* * * 

Remarks: Batch commands are normally displayed on the 

screen as they are read from the batch file. ECHO is 
ON after power-on or system reset. ECHO ON 
displays all the commands on the standard output 
device as they are executed. ECHO OFF stops the 
display of commands on the screen (including the 
REM command). 

ECHO message displays message on the standard 
output device regardless of the current ON or OFF 
state. In this way, you can cause specific messages to 
be displayed even when ECHO has been turned off. 
If ECHO is issued with no parameters, the current 
ECHO state (ON or OFF) is displayed. 

Example: In this example, the batch file contains the following: 



echo off 
rem **** 
dir a:/w 
echo on 
dir a:/w 



command display is off 



7-30 



Batch File 
Commands 



When this batch file is executed, the following 
display occurs: 

A>echo off 

Volume on drive A has no ID 

Directory of A: \ 

filel.ext file2.ext 

2 file(s) xxxxx bytes free 

A>echo on 

A>dir a : /w 

Volume on drive A has no ID 

Directory of A: \ 

filel.ext file2.ext 

2 file(s) xxxxx bytes free 



In the above example, the ECHO OFF is displayed. 
The rem command and dir a:/w are not displayed 
because ECHO is OFF, but the output of the dir is 
still displayed. Then, echo on is executed, and the 
command dir a:/w is displayed. 



7-31 



Batch File 
Commands 

FOR Subcommand 

Purpose: Allows iterative execution of DOS commands. 
Format: FOR %%variable IN (set) DO command 

Type: Internal External 

*** 

Remarks: The % % variable is sequentially set to each member 
of set and then the command is evaluated and 
executed. If a member of set is an expression 
involving * and/or ?, then the % % variable is set to 
each matching filename from disk. Path names are 
allowed in set. 

Note: % % is required if the FOR command is 
included in a batch file. To type the FOR 
command at the DOS prompt, only include one 
%. For example you can type: 

A>for %h in (filel) do dir 

Example: In the following example, if you type the command: 

for %%f in (progl.asm prog2.asm prog3.asm) do dir %%f 

The result is the same as if you typed the following 
three commamds: 

dir progl.asm 
dir prog2.asm 
dir prog3.asm 

Note: FOR subcommands cannot be nested; 
that is, only one FOR subcommand can be 
specified on a command line. 



7-32 



Batch File 
Commands 



GOTO Subcommand 



Purpose: Transfers control to the line following the one 

containing the appropriate label. A label is inserted 
in a batch file as a colon (:) followed by the label 
name. 

Format: GOTO .-label 



Type: 



Internal External 



Remarks: The GOTO label causes commands to be executed 
beginning with the line immediately after -.label. If 
-.label is not defined, the current batch file terminates 
with the message Label not found. A label in a batch 
file is defined as a character string where the first 8 
characters are significant (make it different). 

Example: In this example, the following batch file produces an 
indefinite sequence of rem looping... and goto loop 

messages on the screen: 

.ioop 

rem looping... 

goto loop 

Note that labels within a batch file are never 
displayed while the batch file is executing. In the 
example above, the line :LOOP would not be 
displayed. Thus, unreferenced labels provide a handy 
means for placing comments within your batch file 
that are not displayed when the file is executed. 



7-33 



Batch File 
Commands 

IF Subcommand 

Purpose: Allows conditional execution of DOS commands. 
Format: IF [NOT] condition command 

Type: Internal External 

*** 

Remarks: The condition parameter is one of the following: 

ERRORLEVEL number 

string 1 = =string2 

EXIST [d:][path]filename[.ext] 

When the condition is true, then the DOS command 
is executed. Otherwise, the DOS command is 
skipped, and the next command in the file is 
executed. 

ERRORLEVEL number is true if the previous 
program had an exit code of number or higher. The 
number is specified as a decimal value. 

string l = =string2 is true when string 1 and string 2 are 
identical. 

Note: The corresponding characters of string 1 
and string2 must both be uppercase or lowercase 
to be identical. 

EXIST is true if filename is found in the specified 
directory. Global filename characters (? and *) are 
allowed in filename. 

The NOT condition is true if the condition is false. 



7-34 



Batch File 
Commands 

Example: This example is for: 

IF EXIST [d:][path]filename[.ext] 

if exist filel goto abc 



:abc 
command 

Execution of this command in a batch file is true 
provided FILE1 is found in the current directory on 
the default drive. The GOTO ABC is executed 
causing the system to skip to the command following 
the label : ABC. If FILE1 is not found, the GOTO 
ABC would not be executed. Processing would then 
continue with the next command in the batch file. 

The following example is for: 

IF string 1 = = string! 

if %1 == John echo John was here! 

Execution of a batch file containing this command 
with JOHN given as the % 1 parameter would make 
the condition true. The ECHO batch command 
would then be executed displaying John was here! If 
JOHN was not given as the %1 parameter, the 
condition would have been false. The ECHO batch 
command would not have been executed. Processing 
would continue with the next command in the batch 
file. 



7-35 



Batch File 
Commands 

The following example is for: 

IF ERRORLEVEL number 

myprogl 

if errorlevel 1 echo myprogl failed 

The above two commands are in a batch file; 
MYPROG1 is a program that sets the errorlevel 
when it completes its processing. In the simple case, 
MYPROG1 sets the errorlevel to if it completed 
processing successfully and sets errorlevel to 1 if 
processing completed unsuccessfully. The batch file 
conditional if errorlevel 1 echo ... tests for the 
situation when MYPROG1 failed. If MYPROG1 
completed processing unsuccessfully, the condition is 
true and the ECHO batch command is executed. 
The ECHO batch command displays the data (or 
message) immediately following echo. If MYPROG1 
was successful, the condition would not be true and 
the ECHO batch command would not be executed. 
Processing would then continue with the next 
command in the batch file. 

The following example is for: 

IF NOT EXIST [d:][path]filename[.ext] 

if not exist a:%l copy b:°/l a: 
program 



7-36 



Batch File 
Commands 

The batch file that contains this command is going 
to execute a program that requires a particular file to 
be on drive A. The IF command is executed prior to 
the program to make sure that the required file is on 
drive A. If the file does not exist on drive A, the 
condition is true. The COPY command is then 
executed, copying the file from drive B to drive A to 
satisfy the requirements of the program. If the file 
does exist on drive A, the copy is not executed. 
Processing then continues to execute the program. 

Note: Only BACKUP and RESTORE 

commands set an ERRORLEVEL that can be 
tested. The facility is included to allow your own 
programs to set an error code that can then be 
tested by the IF ERRORLEVEL subcommand. 



7-37 



Batch File 
Commands 

PAUSE Subcommand 

Purpose: Suspends system processing and displays the message 
Strike a key when ready.... 

Format: PAUSE [remark] 

Type: Internal External 

*** 

Remarks: You can insert PAUSE commands within a batch file 
to display messages and to give you the opportunity 
to change diskettes between commands. To resume 
execution of the batch file, press any key except 
Ctrl-Break. (Ctrl-Break ends processing). 

If you include the optional remark, the remark is also 
displayed. The optional remark can be any string of 
characters up to 121 characters long. 

You can control how much of a batch file you want 
to execute by placing PAUSE commands at strategic 
points in the file. At each PAUSE command, the 
system stops and gives you time to decide whether to 
end processing. To end processing, press Ctrl-Break 
and then type y. To continue processing, press n. 

Example: If you type this PAUSE command in a batch file, the 
following message is displayed: 

A>pause Change diskette in drive A 
Strike a key when ready. . ._ 



This PAUSE enables you to change diskettes 
between commands. 



7-38 



Batch File 
Commands 

REM (Remark) Subcommand 

Purpose: Displays remarks from within a batch file. 
Format: REM [remark] 
Type: Internal External 



*** 



Remarks: The remarks are displayed when the batch execution 
reaches the REM command. If ECHO is OFF, then 
the remarks are not displayed. 

Remarks can be any string of characters up to 123 
bytes long. 

You can use REM commands without remarks for 
spacing within your batch file, for readability. 

Example: If the following REM command is issued in a batch 
file, this remark is displayed: 

A>rem This is the daily checkout program 



7-39 



Batch File 
Commands 

SHIFT Subcommand 

Purpose: Allows command lines to make use of more than 10 
(%0 through %9) replaceable parameters. 



Format: 
Type: 



SHIFT 

Internal External 

*** 



Remarks: Replaceable parameters are numbered %0 through 
%9. If you wish to use more than 10 replaceable 
parameters on a command line, you can use SHIFT 
to get at parameters past the tenth. All parameters 
on the command line are shifted one position to the 
left, with the %0 parameter being replaced by the 
%1 parameter, etc.. Each subsequent shift 
command causes all the parameters to be shifted to 
the left by one position. For example: 



%0 = 


= A 


%1 = 


= B 


%2 = 


= C 


%3 = 


= D 


%9 




The SHIFT results are 


%0 = 


= B 


%1 = 


= C 


%2 = 


= D 



%9 



7-40 



Batch File 
Commands 

Example: This example demonstrates how the SHIFT 

subcommand can be used in a batch file. If a batch 
file named MYFILE.BAT contains the following 
commands, and the default drive is A: 

echo %0 %\ %2 %3 

shift 

echo %0 %1 %2 %3 

shift 

echo %0 %1 %2 %3 

shift 

echo %0 %1 %2 %3 

shift 

echo %0 %\ %2 %3 

Invoke the batch file with the following parameters: 

MYFILE PR0G1 PR0G2 PR0G3 



7-41 



Batch File 
Commands 

The result is: 



A>echo MYFILE PR0G1 PR0G2 PR0G3 
MYFILE PR0G1 PR0G2 PR0G3 

A>shift 

A>echo PR0G1 PR0G2 PR0G3 
PR0G1 PR0G2 PR0G3 

A>shift 

A>echo PR0G2 PR0G3 
PR0G2 PR0G3 

A>shift 

A>echo PR0G3 
PR0G3 
A>shift 
A>echo 



A> 



7-42 



BREAK (Control Break) 

Command 



Purpose: Allows you to instruct DOS to check for a control 

break whenever a program requests DOS to perform 
any functions. 

Format: BREAK [ON | OFF] 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



ON to set BREAK=ON. This means that DOS 
checks for Ctrl-Break whenever it is requested. This 
allows you to break-out of a program that produces 
few or no standard device operations. 

OFF to set BREAK=OFF. This means that DOS 
only checks for Ctrl-Break during: 

• Standard input operations 

• Standard output operations 

• Standard print device operations 

• Standard auxiliary device operations 
The default value is set at BREAK OFF. 



7-43 



BREAK (Control Break) 
Command 



If you type BREAK with no parameters, the current 
state of the BREAK command (ON or OFF) is 
displayed. 

You can also turn on the extended checking by using 
BREAK=ON in your configuration file. Refer to 
"Configuring Your System" in Chapter 4. 



7-44 



CHDIR (Change Directory) 

Command 



Purpose: Changes the DOS current directory of the specified 
or default drive, or displays the current directory 
path of a drive. 

Format: CHDIR [d:][path] 

or 

CD [d:][path] 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



Example: 



[d:] to specify the drive specifier of the disk whose 
current directory you want to change or display. 

[path] to specify the current directory path. The path 
cannot be more than 64 characters starting from the 
root directory. 

DOS looks in the current directory to find files 
whose names are entered without specifying a path. 
If you do not specify a drive, the default drive is 
assumed. 

Type CHDIR or CD with no parameters to display 
the current directory path of the default drive. 

The following example changes the current directory 
of the default drive to its root directory: 

A>chdir \ 



7-45 



CHDIR (Change Directory) 
Command 



The following example displays the current 
directory path of drive B. 

A>cd b: 

The following example changes the current 
directory of drive B to the path 
\LEVEL1\LEVEL2. 

A>cd b:\levell\level2 

The following example changes the directory of 
drive B to the current directory path plus LEVEL3 : 

A>cd b:level3 

Thus, if the second example is used, the resultant 
path would be: 

\LEVEL1\LEVEL2\LEVEL3 

The search for the LEVEL3 directory begins in the 
directory that was current when the command was 
issued, because no leading backslash ( \ ) was used. 

The following example changes the current directory 
of drive B to \ LEVEL 1. 

A>cd b:\levell 

The leading backslash ( \ ) tells DOS to start at the 
root directory. DOS remembers the current 
directory for each drive on the system, and any 
reference to a drive will access the current directory. 



7-46 



CHDIR (Change Directory) 

Command 

Important: The true directory can be hidden by 
ASSIGN, SUBST, and JOIN. The following example 
describes a method of using C: while actually on A:. 

A>join c: a:\cdrive 
A> cd \cdrive 
A>dir 



7-47 



CHKDSK (Check Disk) 
Command 



Purpose: Analyzes the directories, files, and the File 

Allocation Table on the designated or default drive 
and produces a disk and memory status report. 

Format: [d:][path]CHKDSK 

[d:]\path]\filename[.ext]][/F][/V] 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



[d:][path] before CHKDSK to specify the drive and 
path that contains the CHKDSK command file. 

[d:][path][filename[.ext]] to specify the filename. If 
you specify a filename, CHKDSK displays the 
number of noncontiguous areas occupied by the file 
or files. 

/F to have CHKDSK fix errors that are found in the 
directory or file allocation table. The corrections are 
written on the disk. If /F is not specified, CHKDSK 
functions as though it were preparing to correct the 
disk so that you can analyze the possible results of 
correction, but does not write the corrections to the 
disk. When you have subdirectories that cannot be 
reached, you get the message Cannot CHDIR to 
d: pa Ui, tree past this point not processed. If this 
occurs, CHKDSK does not free any allocation units 
on the disk. 

/V to display all files and their paths on the default 
or specified drive. 



7-48 



CHKDSK (Check Disk) 
Command 

After checking the disk, CHKDSK displays any error 
messages, followed by a status report. A complete 
listing of error messages can be found in Appendix A 
of this book. 

CHKDSK does not wait for you to insert a diskette. 
It assumes that the diskette you want to check is in 
the specified drive. Therefore, on a one-diskette 
drive system, it is especially important that the 
specified drive is different from the default drive, 
unless you are checking the DOS diskette itself. 

You should run CHKDSK occasionally for each disk 
to ensure the integrity of the file structures. 

Notes: 

1 . All yes or no (Y/N) prompts from CHKDSK 
require you to press Enter after typing y or n, to 
prevent accidental changes to your disk. 

2. If you specified a filename, the number of 
non-contiguous areas occupied by the file will 
be reported. Badly fragmented files (many 
non-contiguous areas) can cause system 
performance to slow down when those files are 
accessed, since DOS can not read them 
sequentially. You can determine the extent of 
file fragmentation by using *.* in the filename 
field of the CHKDSK command. 

3. If CHKDSK finds lost allocation units (clusters) 
on the disk, it asks if you wish to recover the 
lost data into files. If you say yes, and the /F 
parameter was used, CHKDSK recovers each 
chain of lost allocation units into a file whose 
name is in the form: 

FILEwiwz.CHK 



7-49 



CHKDSK (Check Disk) 
Command 



Where nnnn is a sequential number starting with 
0000. These files are created in the root 
directory of the specified drive. You can then 
look at these files to see if they have any useful 
information. If not, you can erase them. 

4. If you redirect CHKDSK's output to a file, for 
example: 

A>chkdsk b:>file 

It will report errors to that file. In this case, be 
sure not to use the /F parameter. 

5. CHKDSK does not work on network drives or 
drives involved in a substitution (SUBST) or 
JOIN. 

Example: Following is an example CHKDSK status report: 



Volume MYDISK Created AUG 12, 1984 10:00 

179712 bytes total disk space 

18944 bytes in 3 hidden files 

512 bytes in 1 directories 

26112 bytes in 4 user files 

134144 bytes available on disk 

196608 bytes total memory 
170736 bytes free 

Note that in this status report, three hidden files 
were reported. These are the volume label, and the 
DOS system files IBMBIO.COM and 
IBMDOS.COM, that are hidden from the normal 
directory searches. Some application programs also 
create hidden files. 



7-50 



CHKDSK (Check Disk) 
Command 

The following example produces a CHKDSK status 
report for the diskette in drive A. 

A>chkdsk a: 

The following example produces a CHKDSK status 
report for the diskette in drive A and fixes any errors 
found in the directory of file allocation table. 

A>chkdsk a:/f 

The following example produces a CHKDSK status 
report for the diskette in drive A and displays all the 
files and their paths on drive A. 

A>chkdsk a:/v 

The following example produces a CHKDSK status 
report for disk drive C and lists the filenames on 
drive C that contain non-contiguous areas. 

A>chkdsk c:*.* 

In the previous example, if the files FILE1, FILE3, 
and FILE6 contain non-contiguous blocks, 
CHKDSK would display these messages: 

C:\FILE1 

Contains 2 non-contiguous blocks 
C:\FILE3 

Contains 2 non-contiguous blocks 
C:\FILE6 

Contains 2 non-contiguous blocks 



7-51 



CLS (Clear Screen) 
Command 



Purpose: Clears the display screen. 

Format: CLS 

Type: Internal External 



*** 



Remarks: This command clears the display on the standard 
output device. If screen attributes have been 
selected using the "Extended Screen and Keyboard 
Control" functions in Chapter 3 of the DOS 
Technical Reference, the attributes remain 
unchanged. 



7-52 



COMMAND (Secondary Command 

Processor) 
Command 



Purpose: Use the following command to invoke a secondary 
command processor: 

Format: COMMAND [d:][path][/F][/C string] 

Remarks: Specify the parameters: 

[d:][path] is the drive and path that DOS searches to 
find the command processor you want to invoke. If 
a COMMAND.COM is not found in the specified 
directory, DOS searches the path in your 
environment for it. COMMAND.COM loads the 
transient portion from the file specified in 
COMSPEC= as part of its initialization. 

/P causes the copy of the new command processor 
to become permanent in memory. If you specify /P, 
the second command processor does not return to 
the primary command processor. You must restart 
DOS to remove the second command processor. 

[/C string] allows you to pass a string and then 
automatically exit back to the primary command 
processor after the command is completed. 

string is a command that you want to pass to the 
command processor. The command is interpreted 
and acted upon as if you had typed it at the DOS 
prompt. For example, if you type: 

A>command /c dir b: 

a secondary command processor is loaded, and it 
executes the command dir b: and then exits back to 
the primary command processor. 



7-53 



COMMAND (Secondary Command 

Processor) 

Command 

Issuing COMMAND without any parameters causes 
a new copy of the command processor to be loaded, 
and this new copy will inherit the environment 
known to the previous level of the command 
processor. If you use the SET command to change 
the environment known to the secondary command 
processor, that change is known only to the 
secondary copy. Exiting back to the primary 
command processor causes a resumption of the 
environment that the primary command processor 
knew before the secondary copy existed. 

If you specify the /P and /C parameters together, 
then the /P parameter is ignored. 

Example: Let's assume that the primary command processor 
used the normal DOS prompt of $n$g (which is the 
default prompt). If you invoke a secondary copy of 
the command processor, the secondary copy 
"inherits" that prompt. If you change the 
secondary's prompt to something else, and then you 
exit back to the primary, the primary's prompt will 
still be $n$g. 

When a secondary command processor is loaded with 
no parameters specified, you can cause it to return to 
the previous level of command processor by issuing 
the special command EXIT. 

Note: Application programmers: please refer to 
Chapter 7 of DOS Technical Reference for 
additional information. 



7-54 



COMP (Compare Files) 
Command 



Purpose: Compares the contents of the first set of specified 
files to the contents of the second set of specified 
files. 



Note: This command compares two sets of files; 
the DISKCOMP command compares two entire 
diskettes. 



Format: 



Type: 



[d: ][path] COMP [d:][path]\filename[.ext]] 
[d: ] [path] [filename[.ext] ] 



Internal External 

*** 



Remarks: Specify the parameters: 



[d:]\path] before COMP to specify the drive and path 
that contains the COMP command file. 

[d:][path][filename[.ext]] to specify the first set of 
filenames that you want to compare. It is also 
referred to as the primary file. 

[d:][path][filename[.ext]] to specify the second set of 
filenames that you want to compare. It is also 
referred to as the secondary file. 

Notes: 

1 . The files that you compare may be on the same 
drive or on different drives. They can also be in 
the same directory or different directories. 



7-55 



COMP (Compare Files) 
Command 



2. Global filename characters are allowed in both 
filespecs, and cause all files matching the first 
filespec to be compared with the corresponding 
files from the second filespec. Thus, typing: 

A>comp a:*. asm b:*.bak 

causes each file that has an extension of .ASM 
from the current directory of drive A to be 
compared with a file of the same name (but with 
an extension of .BAK) from the current 
directory of drive B. 

3. If no parameters are specified with the COMP 
command, or if the second parameter is missing, 
you are prompted for them. If either parameter 
contains only a drive or a path with no filename, 
COMP assumes a filename of *. *. You can 
enter a complete path with either of the two 
filenames. 

4. The paths and names of the files being 
compared are displayed as the comparing 
process proceeds. An error message will follow 
if a file matching the second filespec cannot be 
found, or the files are different sizes, or a 
specified directory path is invalid. 

5. It is possible to compare all files in one directory 
with all corresponding files in another directory. 

6. If no file matches the primary filename, COMP 
will prompt you for both the primary and 
secondary parameters again. 

7. During the comparison, an error message 
appears for any location that contains 
mismatching information in the two files. The 
message indicates the offset into the files of the 



7-56 



COMP (Compare Files) 
Command 

mismatching bytes, and the contents of the 
bytes themselves (all in hexadecimal), as 
follows: 

Compare error at OFFSET XXXXXXXX 
File 1 = XX 
File 2 = XX 

In this example, FILE1 is the first filename 
typed; FILE2 is the second filename typed. 

After ten unequal comparisons, COMP 
concludes that further comparing would be 
useless; processing ends; and the following 
message is displayed: 

10 Mismatches - ending compare 

After a successful comparison, COMP displays: 

Files compare OK 

After the comparison of the two files ends, 
comparing will proceed with the next pair of 
files that match the two filenames, until no more 
files can be found that match the first 
parameter. Then COMP displays: 

Compare more files (Y/N)?_ 

You now have the option to compare two more 
files or to end the comparison. If you want to 
compare two more files, enter y. You will be 
prompted for new primary and secondary 
filenames. 

If you want to end COMP processing, type n. 
You will return to the DOS prompt. 



7-57 



COMP (Compare Files) 
Command 



8. In all compares, COMP looks at the last byte of 
the files being compared to assure that it 
contains a valid end-of-file mark (Ctrl-Z, 
which is the hexadecimal character 1A). If 
found, no action is taken by COMP. If the 
end-of-file mark is not found, COMP produces 
the message: 

EOF mark not found 

This is done because some products produce 
files whose sizes are always recorded in the 
directory as a multiple of 128 bytes, even 
though the actual usable data in the file is 
usually a few bytes less than the directory size. 
In this case, COMP may produce compare error 
messages when comparing the few bytes beyond 
the last real data byte in the last block of 128 
bytes (COMP always compares the number of 
bytes reflected in the directory). Thus, the EOF 
mark not found message indicates that the 
compare errors may not have occurred in the 
usable data portion of the file. 

9. The two sets of files you want to compare can 
have the same path and filenames — provided 
they are on different drives. 

10. If you only specify a drive for the second file, it 
is assumed that the second filename is the same 
as the first filename. 

11. A comparison does not take place if the file 
sizes are different. 

12. COMP does not wait for you to insert a diskette 
containing a file to be compared. Therefore, if a 
file to be compared is not on the same diskette 
as the COMP command itself, you should type 



7-58 



COMP (Compare Files) 
Command 

COMP with no parameters. When COMP 
prompts for the filenames, you can insert the 
desired diskette and reply with the name of the 
file to be compared. 

Example: The following example compares all .ASM files on 
drive B with the files on drive C with the same 
filenames. 

A>comp b:*.asm c: 

The following example compares all files in the 
directory A:\LEVEL1 with corresponding files in 
the directory A: \LEVEL2. 

A>comp a:\levell a:\level2 



7-59 



COPY 

Command 

Purpose: Copies one or more files to the specified disk. 

Format: COPY [/ A][/B][d:)[path]filenamelext][/ A][/B] 
[d:]\path]\filename[.ext]\[/A][/B][/V] 
or 

COPY [/A][/B][d:]\path]filename[.ext][/A][/B] 
[ + [d:]\path]filename[.ext][/A][/B]...] 
[d:][path][filename[.ext]][/A][/B][/V] 
or 

COPY [/A][/B][d:]\path]filename[.ext][/A][/B] 
[+[[„]d:][path]filename[.ext][/A][/B]...] 
[d:]\path]\filename[.ext]][/A][/B][/V] 

Type: Internal External 

*** 

Remarks: The first file specified is the source file. The second 
file specified is the target file. If the second 
parameter is a directory {path with no filename), files 
are copied into that directory without changing their 
names. 

Note: COPY is not the same as BACKUP. Use 
BACKUP if you want all files including 
subdirectories. COPY only copies files from the 
current or specified directory. 



7-60 



COPY 

Command 

COPY also copies files to the same disk. In this 
case, you must give the copies different names unless 
different directories are specified; otherwise, the 
copy is not permitted. Concatenation (combining of 
files) can be performed during the copying process. 

You can also use COPY to transfer data between 
any of the system devices. An example of how to 
copy information that you type at the keyboard to a 
file is provided at the end of the description of 
COPY Option 2. 

Specify /V to cause DOS to verify that the sectors 
written on the target diskette are recorded properly. 
Although errors in recording data are very rare, this 
option has been provided for those of you who wish 
to verify that critical data has been correctly 
recorded. This option causes the COPY command to 
run more slowly, due to the additional overhead of 
verification. 

The /V parameter provides the same check as does 
the VERIFY ON command. /V is redundant if the 
VERIFY ON command has been executed 
previously. The difference is that /V is effective 
only during the duration of the COPY command. 
The VERIFY ON command is in effect until 
VERIFY OFF is entered. 

The parameters /A and /B indicate the amount of 
data to be processed by the COPY command. Each 
applies to the filespec preceding it and to all 
remaining filespecs on the command line until 
another /A or /B is encountered. These parameters 
have the following meanings: 



7-61 



COPY 

Command 

When used with a source filespec: 

/A Causes the file to be treated as an ASCII (text) 
file. The file's data is copied up to, but not 
including, the first end-of-file character 
(Ctrl-Z, which is 1AH) found in the file the 
remainder of the file is not copied. 

/B Causes the entire file (based on the directory 
file size) to be copied. 

When used with a target filespec: 

/A Causes a Ctrl-Z character to be added as the 
last character of the file. 

/B Causes no end-of-file character (Ctrl-Z) to be 
added. 

The default values are /A when concatenation is 
being performed (see Option 3 below), and /B when 
concatenation is not being performed (Options 1 and 
2). 

Notes: 

1 . When copying to or from a reserved device 
name, the copy is performed in ASCII (/A) 
mode. The first Ctrl-Z character encountered 
will end the copy unless /B was specified. 

2. If you make a copy of a file that is marked 
read-only, the copy will not be marked 
read-only. 

3. You cannot use COPY to transfer a file using 
the COM or AUX serial ports. 



7-62 



COPY 
Command 

You can use the global characters ? and * in the 
filename and in the extension parameters of both the 
source and target files. If you type a ? or * in the 
source filespec, the names of the files will be 
displayed as the files are being copied. For more 
information about global characters, refer to "Global 
Filename Characters" in Chapter 2. 

The COPY command has three format options: 

Option 1 - Copy with Same Name 

Use this option to copy a file with the target file 
having the same filename and extension as the source 
file. For example: 

COPY [d:][path]filename[.ext] 

or 

COPY [d:][path\filename[.ext] d:\path] 

In the first example, we want to copy a file to the 
current directory of the default drive. In the second 
example, we specify the target drive and/or 
directory. In both examples, because we did not 
specify the second filename, the copied file will have 
the same filename as the source file. Because we did 
not specify a name for the second file, the source 
drive and the target drive must be different unless 
different directories were specified or implied; 
otherwise, the copy is not permitted. 

For example, assume the default drive is A. The 
command: 

A>copy b:myprog 



7-63 



COPY 

Command 



copies the file MYPROG from drive B to the 
current directory on the default drive A, with no 
change in the filename. The command: 

A>copy *.* b: 

copies all the files in the current directory from the 
default drive A to drive B, with no change in the 
filenames or in the extensions. The filenames are 
displayed as the files are copied. This method is very 
useful if the files on drive A are fragmented. The 
command: 

A>copy b:\myprog b:\levell 

copies the file MYPROG from the root directory of 
drive B to the directory path: 

\ level I 

on the same drive. The copy has the same filename 
as the original file. Note that the above example 
assumes that directory \ LEVEL 1 exists on drive B. 
If it did not, then the file MYPROG would have 
been copied into a file named LEVEL 1 in the root 
directory of drive B. In other words, if the second 
parameter specifies a directory that exists, the file (or 
files) will be placed in that directory, keeping the 
same filename. If the second parameter does not 
specify a directory that exists, DOS will treat it as a 
filename. 



7-64 



COPY 

Command 

Option 2 - Copy with Different Name 

Use this option when you want the copied file to 
have a different name from the file being copied. 
For example: 

COPY [d:][path]filename[.ext] 
\path\filename\_.ext\ 

or 

COPY [d\]\path]filename[.ext] 
d: [path]filename[.ext] 

In the first example, we copied a file (first file 
specified), and renamed the copy (second file 
specified). We did not specify a drive, so the default 
drive was used. In the second example, we copied a 
file and renamed the copy also. In this example, we 
did specify the target drive. Because we changed the 
name of the file, the source drive and the target drive 
do not have to be different. The current directory 
can be the same or different. 

For example: 

A>copy myprog.abc b:*.xxx 

Copies the file MYPROG.ABC from the diskette in 
the default drive (drive A in this example) to drive B, 
naming the copy MYPROG.XXX. The current 
directory of each drive was used. 

You can also use reserved device names for the copy 
operation. For example: 



7-65 



COPY 

Command 



copy con fileA 
copy con aux 
copy con Iptl 
copy filea con 
copy fileb aux 
copy filec 1 pt2 
copy aux lptl 
copy aux con 

Also, NUL can be used in any variation. 

Refer to "Reserved Device Names" in Chapter 2 for 
information about system devices. 

This example shows how to use COPY to put what 
you type from the keyboard into a file: 

A>copy con filea 

Type a line and press Enter. 

Type your next line and press Enter. 



Type your last line and press Enter. 
Now, press F6 and then press Enter. 

When you press F6, and then press Enter, the 
COPY operation ends and saves the information you 
entered. In this example, the information is saved in 
a file named FILEA. 

Note: This example assumes that you have not 
altered the meaning of F6 through the 
"Extended Screen and Keyboard Control" 
functions described in Chapter 3 of the DOS 
Technical Reference. If you have, then 
substitute the key that you have assigned Ctrl-Z 
for F6 in this example. 



7-66 



COPY 
Command 

Option 3 - Copy and Combine Files 

Use this option when you want to combine files 
while copying. That is, you can combine two or 
more files into one file by adding the additional files 
to the end of the first. The date and time recorded in 
the result file directory are the current date and time. 
The message indicating the number of files copied 
refers to the number of result files created. 

To combine files, list any number of source files, 
separated by plus (+) signs in the COPY command. 
Use the following format: 

COPY[/A][/B][d:][path]filename[.ext][/A][/B] 

[ + [d:][path]filename[.ext][/A][/B]...] 

[d:][path][filename[.ext]][/A][/B][/V] 

For example: 

A>copy a.xyz+b.abc+b:c. txt bigfile.txt 

This command creates a new file called 
BIGFILE.TXT on the default drive. The 
combination of A.XYZ, B.ABC, and B:C.TXT is put 
into BIGFILE.TXT. 

If you do not specify a result filename, the additional 
files are added to the end of the first file, leaving the 
result in the first file. For example, 

A>copy a.asm+b.asm 



7-67 



COPY 

Command 



In this case, COPY appends B.ASM to the end of 
A.ASM and leaves the result in A.ASM. 

Note: Combining files is normally performed in 
text (or ASCII) mode. That is, the first Ctrl-Z 
(hex 1A) character in the file is interpreted as 
an end-of-file mark. To combine binary files, 
use the /B parameter to force COPY to use the 
physical end-of-file (the file length shown in 
the DIR command). 

You can also combine ASCII and binary files by 
using the following parameters: 

. ASCII - /A 

• Binary - /B 

For example, 

A>copy a.xyz+b.com/b+b:c. txt/a bigfile.txt 

A /A or /B takes effect on the file it is placed after, 
and it applies to all subsequent files on the command 
line until another /A or /B is found. A /A or /B on 
the result file causes a Ctri-Z to be added (/A), or 
not to be added (/B), as the last character in the 
result file. 

You can use the global characters ? and * in the 
filenames of both the files to be combined and the 
result file. For example: 

A>copy *. 1 st combin.prn 

In this example, all files matching *.LST are 
combined into one file called COMBIN.PRN: 

A>copy *.lst+*.ref combin.prn 



7-68 



COPY 

Command 

This example combines all files matching *.LST and 
then all files matching *.REF into one file called 
COMBIN.PRN: 

A>copy *.lst+*.ref *.prn 

In this example, each file matching *.LST is 
combined with the corresponding .REF file, with the 
result having the same name but with extension 
.PRN. Thus, a file FILE1.LST would be combined 
with FILE1.REF to form FILE1.PRN; XYZ.LST 
would be combined with XYZ.REF to form 
XYZ.PRN; etc. Note that in this case (when 
multiple files are to be created), only one file from 
each of the source filespecs is used to create a given 
target file. 

For more information about global characters, refer 
to "Global Filename Characters" in Chapter 2. 

It is easy to enter a COPY command to combine files 
where one of the source files is the same as the 
target, yet this often cannot be detected. For 
example: 

A>copy *.lst all .1st 

This would produce an error if ALL.LST already 
existed. The error would not be detected, however, 
until it was time for ALL.LST to be appended; by 
this time, ALL.LST could already have been altered. 

COPY handles this situation as follows: As each 
input file is found, its name is compared with the 
target filename. If the names are the same, that one 
input file is skipped, and the following message is 
displayed on the screen: 

Content of destination lost before copy 



7-69 



COPY 
Command 



Further copying proceeds normally. This allows 
summing files, with a command like: 

A>copy all .1st + *.lst 

This command appends all .LST files, except 
ALL.LST itself, to ALL.LST. In this case, the error 
message is suppressed, because this is a true physical 
append to ALL.LST. 

The following are special cases. Remember to use 
the /B parameter whenever you use the plus (+) sign 
with non- ASCII files: 

A>copy b:xyz.asm+ 

This command copies the file XYZ.ASM to the 
default drive and gives it a new date and time. To 
simply change the date and time, leaving the file in 
place, you can use the following command: 

A>copy b:xyz.asm+, , b: 

In these special cases, if global filename characters 
are used in the filename or extension, then all of the 
matching files will be appended together into the first 
filename that matches. Thus, the command: 

A>copy b :*.*+, , b: 

will not update the dates and times of all files on 
drive B, but will append all of drive B's files together 
into a single file that will replace the first file found 
on drive B. 



7-70 



COPY 

Command 

Note: When combining files, COPY considers 
the copying process to be successful if at least 
one, but not necessarily all, of the named source 
files is found. If none of the source files can be 
found, you receive the message 

file(s) copied 



7-71 



CTT Y (Change Console) 
Command 



Purpose: Changes the standard input and output console to an 
auxiliary console, or restores the keyboard and 
screen as the standard input and output devices. 

Format: CTTY device-name 

Type: Internal External 

*** 



Remarks: Specify the parameter: 



device-name to define the device to use as the 
primary console. Specify AUX, COM1, or COM2 
to use that device as the primary console. Specify 
CON to reset the primary standard input and output 
devices to the primary console. 



Notes: 



The CTTY command accepts the name of any 
character-oriented device to allow you to install 
your own device drivers, and to specify their 
device names. You must be certain that the 
named device is capable of both input and 
output operations. For example, you should not 
specify the name of a printer, because DOS will 
attempt to read from that device. 

The CTTY command is effective only for 
programs that use DOS function calls. Other 
programs, such as BASIC (that do not use DOS 
function calls), are not able to use the CTTY 
command to change the standard input and 
output devices. Therefore if you load BASIC 



7-72 



CTT Y (Change Console) 

Command 

while you are using CTTY, the standard input 
and output console are reset to the keyboard 



and screen. 

Example: The following example causes DOS to use the AUX 
device for its standard input and output operations: 

A>ctty aux 

The following example reverses the previous 
assignment, causing DOS to switch back to the 
standard screen and keyboard for its operations: 

A>ctty con 



7-73 



DATE 
Command 



Purpose: Use to enter or change the date known to DOS. The 
date is recorded in the directory when you create or 
change a file. 

Format: DATE [mm-dd-yy] \ [dd-mm-yy] \ [yy-mm-dd] 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

mm to specify the month. Type one or two numbers 
from 1 to 1 2 for the month. 

dd to specify the date. Type one or two numbers 
from 1 to 3 1 for the day. 

yy to specify the year. Type two numbers between 
80 and 99 or four numbers between 1980 and 1999 
for the year. 

Notes: 

1 . If you type DATE with no parameters, the 
following prompt is displayed: 

Current date is day mm-dd-yy 
Enter new date (mm-dd-yy) :__ 

The format for the date (mm-dd-yy or 
dd-mm-yy or yy-mm-dd) depends on the 
country you selected with the SELECT 
command. You also can change the format for 
the date by creating a CONFIG.SYS file that 



7-74 



DATE 
Command 

contains the COUNTRY command. Refer to 
Chapter 4, "Configuring Your System" for 
more information on the COUNTRY command. 

2. Separate the parts of the date with a dash (-), a 
slash (/) or a period (.). For example, to set the 
date to September 23, 1984, type: 

9-23-84 

or 
9/23/84 

or 
9.23.84 

3. If you type a valid date, the new date is 
accepted and the DOS prompt is displayed. If 
the date is invalid, the following prompt is 
displayed: 

Invalid date 

Enter new date (mm-dd-yy) :_ 

4. DOS displays the day of the week (Tue for 
example) for information purposes only. Do not 
include the day of the week when you type the 
date. 

5 . You can change the date from the standard 
input device or from a batch file. Remember, 
when you start the system, it does not prompt 
you for the date if you use an 
AUTOEXEC.BAT file. You can include a 
DATE command in that file. For more 
information about the AUTOEXEC.BAT file, 
refer to "Batch File Commands" in this chapter. 



7-75 



DATE 

Command 

6. To leave the date as-is, press Enter. 

7. If you are using an IBM Personal Computer AT, 
typing a new date does not change the system 
clock. Refer to your GTO for information on 
the system clock. 

8. Leaving your computer on for more than 24 
hours with no activity may cause the date to be 
incorrectly updated. 



Example: The following example changes the date to July 24, 
1984. 

A>date 

Current date is Mon 1-18-1984 

Enter new date: 7/24/84 



7-76 



DEL (Delete) 
Command 



Purpose: Deletes the specified file. 
Format: DEL [d:][path]filename[.ext] 
Type: Internal External 



*** 



Remarks: Specify the parameters: 



[d:] to specify the drive that contains the file you 
want to delete. 

[path] to specify the directory path that contains the 
file you want to delete. 

filename[.ext\ to specify the name of the file you 
want to delete. 

Notes: 

1 . If the drive specifier is not specified, the default 
drive is assumed. 

2. If the path is not specified the current directory 
is assumed. 

3. If the filename is not specified, *.* is assumed 
and all files are deleted. 

4. You can use the global filename characters ? 
and * in the filename and extension. However, 
use global filename characters with caution 
because multiple files can be deleted with a 
single command. 



7-77 



DEL (Delete) 
Command 



5. If you use the filespec *.* to delete all the files 
on a disk, the following message is displayed to 
verify that you actually want to delete all files: 

Are you sure (Y/N)? 

Type y (yes) and press Enter if you do want to 
delete all the files on the disk. 

Type n (no) and press Enter if you do not want 
to erase all files on the disk. 

6. You cannot delete files that are marked as 
read-only. 

7. You cannot use DEL to delete a subdirectory. 
To delete a subdirectory, use the RMDIR 
(remove directory) command. 

8. Extra care should be exercised when using DEL 
after using ASSIGN, JOIN, or SUBST. 

Example: The following example deletes the file name 
FILE. BAT from the diskette in drive A. 

A>del a: file. bat 

The following example deletes all files from the 
directory \ LEVEL 1 on drive C. 

A>del c:\levell 



7-78 



DIR (Directory) 
Command 



Purpose: Lists either all the directory entries, or only those for 
specified files. 

Note: Directory entries for hidden system files 
such as IBMBIO.COM and IBMDOS.COM are 
not listed, even if present. 

Format: DIR [d:][path]\filename[.ext]][/F][/W] 

Type: Internal External 



Remarks: Specify the parameters: 



[d:][path][filename[.ext]] to specify the file whose 
directory you want to list. 

/P to pause the display when the screen is full. The 
following prompt is displayed: 

Strike a key when ready . . . 

To continue press any key. 

/W to display the information in a wide display 
format. Only the filenames and directory names are 
shown. This parameter is only recommended for 
80-column displays. 

Notes: 

1 . The information provided in the directory listing 
includes the volume identification and the 
amount of free space left on the disk. The 
freespace amount is rounded up to the nearest 



7-79 



DIR (Directory) 
Command 



1024K bytes. The display line for each file 
includes its size in decimal bytes and the date 
and time the file was last written to. 

Note: If you set the COUNTRY 
configuration command to a country other 
than U.S., the date and time format 
displayed may be different. The examples 
in this section show the date displayed for 
the U.S. date and time format. 

2. Entries that name other directories are clearly 
identified with <DIR> in the file size field. 

3. You can use the global characters ? and * in the 
filename and extension parameters. For more 
information about the global characters, refer to 
"Global Filename Characters" in Chapter 2. 

4. If you do not specify a filename extension, the 
default is *. 

5. To display the directory entry for a file that does 
not have an extension, type the filename 
followed by a period. In this case, the .ext does 
not default to *. 

6. The DIR command has two format options (the 
/P and /W parameters may be used with either 
option) : 

• List All Files 
or 

• List Selected Files 



7-80 



Example: 



DIR (Directory) 
Command 



Option 1 - List All Files 

The following example lists all the directory entries 
on the default drive. 

A>dir 

The directory may look like this: 



Volume 


in 


drive A is MYDISK 






Directc 


iry 


of 


A:\ 








FILE1 


A 




10368 


7-20-83 


12: 


:13p 


FILE3 


A 




1613 


5-27-83 


12: 


:14p 


9X 






31 


8-17-82 


10: 


:59a 


LEVEL2 






<DIR> 


9-09-82 


12: 


:10p 


FILE1 






2288 


9-02-82 


12: 


:25p 



5 File(s) 141312 bytes free 

The following example lists all the directory entries 
for current directory of drive C. 

A>dir c: 

The following example lists all the directory entries 
for the directory path \LEVEL2: 

A>dir \ level 2 

The screen will look like this: 



7-81 



DIR (Directory) 
Command 



Volume in drive A is MYDISK 
Directory of A:\LEVEL2 

<DIR> 9-09-84 l:30p 

<DIR> 9-09-84 2:45p 

MYPROG COM 2463 7-30-84 8:55a 

3 File(s) 141312 bytes free 

Note that all files in directory LEVEL2 have been 
listed, including the two special entries found in all 
subdirectories. The entry marked with a single 
period denotes the directory being listed (LEVEL2), 
and the double period denotes this directory's parent 
directory (in this case, the root directory). Thus, if 
your current directory is LEVEL2 and you wish to 
see the files in its parent directory, you can enter: 

A > rj j r 

Option 2 - List Selected Files 

The following example lists the directory entry of the 
file named FILE3.A in the current directory of the 
default drive. 

A>dir file3.a 

the screen may look like this: 



Volume in drive A is MYDISK 
Directory of A: \ 

FILE3 A 1613 5-27-84 12:14p 

1 File(s) 141312 bytes free 



7-82 



DIR (Directory) 
Command 



If you type: 

A>dir *.a 

the screen may look like this: 



Volume in drive A is MYDISK 
Directory of A: \ 

FILE1 A 10368 7-20-84 12:13p 

FILE3 A 1613 5-27-84 12:14p 

2 File(s) 141312 bytes free 

If you type: 

A>dir filel 

the screen may look like this (omission of .ext 
defaults to *): 



Volume in drive A is MYDISK 
Directory of A: \ 

FILE1 A 10368 7-20-84 12:13p 

FILE1 2288 9-02-84 12:25p 

2 File(s) 141312 bytes free 

To display only the entry for a file that has no 
extension, enter the filename followed by a period. 
In this case, the .ext does not default to *. For 
example, 

A>dir filel . 



7-83 



DISKCOMP (Compare Diskettes Only) 
Command 



Purpose: Compares the contents of the diskette in the first 
specified drive to the contents of the diskette in the 
second specified drive. 

Notes: 

1 . This command is used only for comparing 
diskettes. If a fixed disk drive letter is specified, 
an error message is displayed. 

2. This command compares two entire diskettes', the 
COMP command compares two files. 



Format: [J:][/?a//z]DISKCOMP [d: [d:]] [/l] [/8] 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:][path] before DISKCOMP to specify the drive 
and path that contains the DISKCOMP command 
file. 

[d:] to specify the source drive. 

[d:] to specify the target drive. 

/I to compare only the first side of the diskettes, 
even if the diskettes and drives are dual-sided. 

/8 to compare only 8 sectors per track, even if the 
first diskette contains 9/15 sectors per track. 



7-84 



DISKCOMP (Compare Diskettes Only) 

Command 

You can specify the same drive or different drives in 
this command. If you specify the same drive, a 
one-drive comparison is performed. You are 
prompted to insert the diskettes at the appropriate 
time. DISKCOMP waits for you to press any key 
before it continues. 

DISKCOMP compares all tracks on a 
track-for-track basis and issues a message if the 
tracks are not equal. The message indicates the track 
number and the side (0 or 1) where the mismatch 
was found. 

After completing the comparison, DISKCOMP 
prompts: 

Compare more diskettes (Y/N)?_ 

If you type y, the next comparison is done on the 
same drives that you originally specified, after you 
receive prompts to insert the proper diskettes. 

To end the command, type n. If the following 
message is displayed, insert the DOS diskette in drive 
x and press any key when ready. 

Insert disk with \C0MMAND.C0M in drive A 
and strike any key when ready 



Notes: 



If you omit both parameters, a one-drive 
comparison is performed on the default drive. 

If you omit the second parameter, the default 
drive is used as the secondary drive. 

On a one-drive system, all prompts are for drive 
A, regardless of any drive specifiers entered. 



7-85 



DISKCOMP (Compare Diskettes Only) 
Command 

4. DISKCOMP usually does not issue a Diskettes 
compare OK message if you try to compare a 
backup diskette created by the COPY command 
with the diskette you copied from. The COPY 
operation produces a copy that contains the 
same information, but may place the 
information at different locations on the target 
diskette from those locations used on the source 
diskette. In this case, you should use the COMP 
command to compare individual files on the 
diskettes. 

5. If a diskette error occurs while DISKCOMP is 
reading the diskette, a message is produced that 
indicates where (track and side) the error 
occurred. Then DISKCOMP continues to 
compare the rest of the diskette. Because the 
remainder of the data to be compared cannot be 
read correctly from the indicated track and side, 
you can expect to receive a Compare error 
message. 

6. DISKCOMP automatically determines the 
number of sides and sectors per track to be 
compared, based on the diskette that is to be 
read first (the first drive parameter entered). 

If the first diskette or drive can be read on only 
one side, or if the /l parameter is used, only the 
first side is read from both diskettes. If the first 
diskette contains 9 sectors per track, then 
DISKCOMP will compare 9 sectors per track 
unless you used the /8 parameter. If the first 
diskette contains 1 5 sectors per track, then 
DISKCOMP will compare 15 sectors per track. 
If the first drive and diskette are double-sided, 
and /l is not snecified. a two-sided comnarison 



7-86 



DISKCOMP (Compare Diskettes Only) 

Command 

is done. In this case an error message is 
produced if either the second drive or the 
diskette is a single-sided diskette. 

7. The source and target drives cannot be virtual 
drives, such as those created by the SUBST 
command. 

8. DISKCOMP does not recognize assigned drives. 

9. DISKCOMP should not be used while a JOIN is 
in effect. 

10. DISKCOMP does not work on network drives. 



7-87 



DISKCOMP (Compare Diskettes Only) 
Command 

DISKCOMP Compatibility 

This section describes the possible diskette 
combinations that you may use with DISKCOMP: 

If your computer has single-sided diskette drives, you 
can use DISKCOMP to compare: 

• A single-sided diskette to a single-sided diskette 

If your computer has double-sided diskette drives, 
you can use DISKCOMP to compare: 

• A single-sided diskette to a single-sided diskette 

• A double-sided diskette to a double-sided 
diskette 

If your computer has high-capacity diskette drives, 
you can use DISKCOMP to compare: 

• A single-sided diskette to a single-sided diskette 

• A double-sided diskette to a double-sided 
diskette 

• A high-capacity diskette to a high-capacity 
diskette 

No other combinations are allowed. If you specify 
an invalid combination, the following message is 
displayed: 

Drive types (double, single-sided) or 
diskette types not compatible 



7-88 



DISKCOMP (Compare Diskettes Only) 

Command 

Example: The following example compares the diskette in drive 
A to the diskette in drive B. 

A>diskcomp a: b: 

The following example compares the first diskette in 
drive A to the second diskette in drive A. Notice, 
that by not specifying the source and target drive, a 
one-drive compare is performed. You have to 
switch diskettes as prompted. 

A>diskcomp 

The following example compares the first diskette in 
drive B to the second diskette in drive A. 

A>diskcomp b: 



7-89 



DISKCOPY (Copy Diskettes Only) 
Command 



Purpose: Copies the contents of the diskette in the source 

drive to the diskette in the target drive. The target 
diskette is formatted if necessary, during the copy. 

Notes: 

1 . This command is used only for copying 
diskettes. If a fixed disk drive letter is specified, 
an error message is displayed. 

2. This command copies two entire diskettes; the 
COPY command copies two files. 



Format: [rf:][paf/z]DISKCOPY [d: [d:]][/l] 
Type: Internal External 



Remarks: Specify the parameters: 

[d:][path] before DISKCOPY to specify the drive 
and path that contains the DISKCOPY command 
file. 

[d:] to specify the source drive. 

[d\] to specify the target drive. 

/I to copy only the first side of the diskette, 
regardless of the diskette or drive type. 

You can specify the same drives or different drives. 
If the drives are the same, a one-drive copy operation 



7-90 



DISKCOPY (Copy Diskettes Only) 

Command 

is performed. You are prompted to insert the 
diskettes at the appropriate times. DISKCOPY waits 
for you to press any key before continuing. 

After copying, DISKCOPY prompts: 

Copy another (Y/N)?_ 

If you type y, the next copy is done on the same 
drives that you originally specified, after you are 
prompted to insert the proper diskettes. 

To end the command, type n. If the following 
message is displayed, insert the DOS diskette in drive 
x and press any key when ready. 

Insert diskette with \ COMMAND. COM in drive A 
and strike any key when ready 

Notes: 

1 . If the target diskette has not been formatted 
with the same number of sides and sectors per 
track as the source diskette, DISKCOPY will 
format the target diskette during the copy 
operation. 

2. If you omit both drive parameters, a one-drive 
copy operation is performed on the default 
drive. 

3. If you omit the second parameter, the default 
drive is used as the target drive. 

4. If you omit the second parameter and you 
specify the default drive as the source drive, a 
one-drive copy operation is performed. 



7-91 



DISKCOP Y (Copy Diskettes Only) 
Command 

5. On a one-drive system, all prompts will be for 
drive A, regardless of any drive letter you may 
enter. 

6. Diskettes that have had a lot of file creation and 
deletion activity become fragmented, because 
diskette space is not allocated sequentially. The 
first free sector found is the next sector 
allocated, regardless of its location on the 
diskette. 

A fragmented diskette can cause degraded 
performance due to excessive head movement 
and rotational delays involved in finding, 
reading, or writing a file. 

If this is the case, it is recommended that you 
use the COPY command, instead of 
DISKCOPY, to eliminate the fragmentation. 

For example, place a freshly formatted diskette 
in drive B, and the diskette you wish to copy in 
drive A. The command: 

A>copy a:*.* b: 

copies all the files from the diskette in drive A 
to the diskette in drive B. The resultant files (in 
drive B) are now copied sequentially. You 
should get better performance when you use 
these files from now on. 

7 . You can run DISKCOMP after a successful 
DISKCOPY to verify that the diskettes are 
identical. 

8. If disk errors are encountered on either diskette, 
DISKCOPY indicates the drive, track, and side 
in error and proceeds with the copy. In this 



7-92 



DISKCOPY (Copy Diskettes Only) 

Command 

case, the target diskette (copy) may or may not 
be usable, depending on whether the affected 
diskette location was to contain valid data. 

9. DISKCOPY automatically determines the 
number of sides and sectors per track to copy, 
based on the source drive and diskette. If only 
the first side of the source diskette can be read, 
then only the first side can be copied. If the 
source drive and diskette are double-sided, both 
sides can be copied (unless you override it with 
the /l parameter). In this case, if the target 
drive is single-sided, an error message will 
indicate that the drives are incompatible. 

If the source diskette has ever been physically 
formatted with 9 sectors per track, then all 9 
sectors on each track will be copied. 

10. The source and target drive cannot be a virtual 
drive, such as those created by the SUBST 
command. 

1 1 . DISKCOPY does not recognize an assigned 
drive. 

12. Double-sided diskettes written on in a 
high-capacity diskette drive will not be reliably 
read in a single- or double-sided diskette drive. 

13. DISKCOPY should not be used while a JOIN is 
in effect. 

14. DISKCOPY does not work with network drives. 



7-93 



DISKCOPY (Copy Diskettes Only) 
Command 

DISKCOPY Compatibility 

This section describes the possible diskette 
combinations that you may use with DISKCOPY: 

If your computer has single-sided diskette drives, you 
can use DISKCOPY to copy: 

• a single-sided diskette to a single-sided diskette 

If your computer has double-sided diskette drives, 
you can use DISKCOPY to copy: 

• a single-sided diskette to a single-sided diskette 

• a double-sided diskette to a double-sided 
diskette 

If your computer has high-capacity diskette drives, 
you can use DISKCOPY to copy: 

• a single-sided diskette to a single-sided diskette* 

• a double-sided diskette to a double-sided 
diskette* 

• a high-capacity diskette to a high-capacity 
diskette 

• Caution: You may not be able to reliably read these 
diskette types in a single- or double-sided diskette 
drive. 



7-94 



DISKCOPY (Copy Diskettes Only) 

Command 

No other diskette combinations are allowed. If you 
specify an invalid combination, the following 
message is displayed: 

Drive types (double- or single-sided) or 
diskette types not compatible 

If you want to copy the contents of a double-sided 
diskette onto a high-capacity diskette, use the COPY 
*.* command. Refer to the COPY command in this 
chapter for more information. 

Example: The following example copies the diskette in drive A 
to the diskette in drive B. 

A>diskcopy a: b: 

The following example copies the source diskette in 
drive A to the target diskette in drive A. Notice, that 
by not specif ing the source and target drive, a 
one-drive copy is performed. You must switch 
diskettes as prompted. 

A>diskcopy 

The following example copies the source diskette in 
drive B to the target diskette in drive B. Notice that 
by not specif ing the source and target drive, a 
one-drive copy is performed. You must switch 
diskettes as prompted. 

B>diskcopy 



7-95 



ERASE 

Command 

Purpose: Erases the specified file. 
Format: ERASE [d:]\path]filename[.ext] 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:] to specify the drive that contains the file you 
want to erase. 

[path] to specify the directory path that contains the 
file you want to erase. 

filename[.ext] to specify the name of the file you 
want to erase. 

Notes: 

1 . If the drive specifier is not specified, the default 
drive is assumed. 

2. If the path is not specified the current directory 
is assumed. 

3. If the filename is not specified, *.* is assumed 
and all files are erased. 

4. You can use the global filename characters ? 
and * in the filename and extension. However, 
use global filename characters with caution 
because multiple files can be erased with a single 
command. 



7-96 



ERASE 
Command 

5. The operating system files IBMBIO.COM and 
IBMDOS.COM cannot be erased. 

6. If you use the filespec *.* to erase all of the files 
on a disk, the following message is displayed to 
verify that you actually want to erase all files: 

Are you sure (Y/N)? 

Type y (yes) and press Enter if you do want to 
erase all the files on the disk. 

Type n (no) and press Enter if you do not want 
to erase all files on the disk. 

7. You cannot erase files that are marked as 
read-only. 

8. You cannot use ERASE to erase a subdirectory. 
To delete a subdirectory you need to use the 
RMDIR (remove directory) command. 

9. Extra care should be exercised when using 
ERASE after using ASSIGN, JOIN, or SUBST. 

Example: The following example erases the file name 
FILE.BAT from the diskette in drive A. 

A>erase a: file. bat 

The following example erases all files from the 
directory \ LEVEL 1 on drive C. 

A>erase c: \levell 



7-97 



EXE2BIN 

Command 



Purpose: Converts .EXE files to .COM or .BIN files. 

Format: [d:][path]EXE2BYN [d:][path]fi!ename[.exi\ 
[d: ] [path] \filename\_ . ext] ] 



Type: Internal External 



*** 



Remarks: Specify the parameters: 



[d:][path] before EXE2BIN to specify the drive 
specifier and path that contains the EXE2BIN 
command file. 

[d:\path\filename\ext] to specify the input file. If 
you do not specify: 

[d\] the default drive is assumed 

[path] the current directory is assumed 

[.ext] .EXE is assumed 

[d:][path]filename .[ext] to specify the output file. If 
you do not specify: 

[d\] the drive of the input file is assumed 

[path] the current directory is assumed 

filename the input filename is assumed 

[.ext] .BIN is assumed 



7-98 



EXE2BIN 

Command 

The input file is converted to .COM file format 
(memory image of the program) and placed in the 
output file. 

The input must be in valid .EXE format as produced 
by the Linker. The resident, or actual code and data, 
part of the file must be less than 64K. There must be 
no STACK segment. 

Two kinds of conversions are possible, depending on 
the specified initial CS:IP: 

• If CS: IP is not specified in the program (the 
.EXE file contains 0:0), a pure binary 
conversion is assumed. If segment fixups are 
necessary (the program contains instructions 
requiring segment relocation), you are prompted 
for the fixup value. This value is the absolute 
segment at which the program is to be loaded. 

In this case, the resultant program is usable only 
when loaded at the absolute memory address 
specified by a user application. The DOS 
command processor will not be capable of 
properly loading the program. 

• If CS:IP is specified as 0000: 100H, it is 
assumed that the file is to be run as a .COM file, 
with the location pointer set at 100H by the 
assembler statement ORG. No segment fixups 
are allowed, as .COM files must be segment 
relocatable, that is, they must assume the entry 
conditions explained in Chapters 5 of the DOS 
Technical Reference. Once the conversion is 
complete, you may rename the resultant file to a 
.COM extension. Then, the command processor 
is capable of loading and executing the program 
in the same manner as the .COM programs 
supplied on your DOS diskette. 



7-99 



EXE2BIN 
Command 



If CS:IP does not meet one of these criteria, or if it 
meets the .COM file criterion but has segment 
fixups, the following message is displayed: 

File cannot be converted 

This message is also displayed if the file is not a 
valid .EXE file. 

To produce standard .COM files with the assembler, 
you must both use the assembler statement ORG to 
set the location pointer of the file at 100H and 
specify the first location as the start address. (This is 
done in the END statement.) Also, the program 
must not use references that are defined only in 
other segments. For example, with the IBM Personal 
Computer MACRO Assembler: 

ORG 1 
START: 



END START 

EXE2BIN resides on your DOS Supplemental 
Program diskette. 



7-100 



FDISK 

Command 



See Chapter 3, "Preparing Your Fixed Disk." 



7-101 



FIND Filter 
Command 



Purpose: Sends all lines from the specified filenames that 

contain the specified string to the standard output 
device. 

Format: [d:][path]FIND 

[/V]UC][/N]"string"[[d:]\path]filename[.ext]...] 



Type: Internal External 



Remarks: Specify the parameters: 

[d:][path] before FIND to specify the drive specifier 
and path that contains the FIND command file. 

/V to display all lines not containing the string. 

/C to display a count of the number of lines 
containing string. If /C is specified with /V or /N, 
then FIND ignores /V and /N. 

/N to display the relative line number of each 
matching line ahead of the line from the file. 

Enclose the string in double quotes ("). Two quotes 
in succession are taken as a single quote. An 
uppercase string does not match a lowercase string. 

Global filename characters are not allowed in the 
filenames or extensions. 

Example: The following example displays all lines from 

BOOKl.TXT, BOOK2.TXT, and BOOK3 (in that 
order) that contain the string "Fool's Paradise." 

A>find "Fool's Paradise" bookl.txt book2.txt book3 



7-102 



FIND Filter 
Command 

The following example displays the names of all files 
in the current directory of drive B that do not contain 
the string "DAT." 

A>dir b: \ find /v "DAT" 

The following example displays all the subdirectory 
entries in the current directory (redirects the output 
of the DIR command to the FIND filter and then 
displays the directory entries that contain DIR). 

A>dir I find "<DIR>" 

For the following examples, assume the file PROG 
contains the following lines: 

This is a 
beautiful 
day for a picnic. 

The following example displays the lines in the file 
PROG that do not contain the string "f." 

A>find /v"f"prog 
The result is: 

a:prog 

This is a 



7-103 



FIND Filter 
Command 



The following example displays the relative line 
number of the lines that contain the string "f." 

A>find /n"f"prog 

The result is: 

a:prog 

[2]beautiful 

[3]day for a picnic. 

The following example displays a count of the 
number of lines in the file PROG that contain the 
string "a." 

A>find /c" a "a: prog 
The result is: 
a : prog : 2 



7-104 



FORMAT 
Command 



Purpose: Initializes the disk in the designated or default drive 
to a recording format acceptable to DOS; analyzes 
the entire disk for any defective tracks; and prepares 
the disk to accept DOS files by initializing the 
directory, File Allocation Table, and system loader. 

CAUTION 

Please note that formatting destroys all data on 
the disk. Because of this, you should be very 
careful before you decide to format any disk, 
particularly a fixed disk. If you attempt to 
format your fixed disk, please note that the 
entire contents of any previously created DOS 
partition, including all subdirectories and their 
contents, are destroyed. If you are not certain 
which drive is the default drive, do NOT enter 
FORMAT without a drive letter. If you do not 
specify a drive letter, you could unintentionally 
destroy all of the data on whatever disk happens 
to be the default. It's safer to specify a drive 
letter. 

Format: [d:][path]FORMAT [</:][/S][/l][/8][/V][/B][/4] 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



[d:][path] before FORMAT to specify the drive 
specifier and path that contains the FORMAT 
command file. 

[d:] to specify the drive that contains the disk you 
want to format. 



7-105 



FORMAT 

Command 



/S to copy the operating system files from the DOS 
diskette in the default drive to the new disk in the 
following order: 

IBMBI0.COM 
IBMD0S.COM 
C0MMAND.COM 

If the system does not reside on the default drive, 
and the default drive is non-removable, FORMAT 
prompts you to put a system diskette in diskette drive 
A. If the system is not on the default drive and the 
default drive is removable, FORMAT prompts you 
to insert a system diskette in the default drive. 

/I to format a diskette for single-sided use regardless 
of the drive type. 

/8 to format a diskette for 8 sectors per track. 
FORMAT defaults to 9/15 sectors per track usage if 
you do not specify /8. Note that format always 
creates 9/15 physical sectors on each diskette track, 
but that it instructs DOS to use only 8 sectors per 
track if you use the /8 parameter. 

/V to give the disk a volume label. We strongly 
recommend that you use the /V parameter. This 
uniquely identifies each disk. 

The volume label cannot be used in place of 
filenames as input to any of the DOS commands. The 
volume label is for your use in keeping track of your 
disks. 

/B to format a diskette for 8 sectors per track 
diskette with space allocated for the IBMBIO.COM 
and IBMDOS.COM system modules. It does not 
place the system modules or the command processor 
on the diskette. This parameter is used to create a 



7-106 



FORMAT 

Command 

diskette on which any version of DOS can be placed 
through that version's SYS command. If the /B 
parameter is not used, only DOS Version 3.10 can be 
placed on the diskette through the SYS command. 

/4 to format a double-sided diskette in a 
high-capacity drive. 

CAUTION 

This parameter is intended to allow use of 
double-sided diskettes in high-capacity drives. 
However, the diskettes formatted with the /4 
parameter specified may not be reliably read or 
written in a single- or double-sided drive. 

The following table shows which parameters are 
valid for certain diskette types: 



Disk Type 


Parameters Allowed 


320KB 


/S,/V, /l,/8,/B,/4 


1.2MB 


/s,/v 


fixed disk 


/s,/v 



7-107 



FORMAT 

Command 

Notes: 



1 . All new diskettes and fixed disks must be 
formatted before they can be used by DOS. 
Refer to Chapter 3 for more information before 
formatting your fixed disk. 

2. A fixed disk must also be formatted again if you 
change the size of its DOS partition through the 
FDISK command. 

3. Formatting destroys any previously existing data 
on the disk. 

4. During the formatting process, any defective 
tracks are marked as reserved to prevent the 
tracks from being allocated to a data file. 

5. Directory entries for IBMBIO.COM and 
IBMDOS.COM are marked as hidden files, and 
therefore, they do not appear in any directory 
searches — including the DIR command. 

6. FORMAT will prompt you to enter a volume 
label (volume identification) if you have used 
the /V parameter. The label can consist of from 
1 to 1 1 characters. All characters acceptable in 
filenames are acceptable in the volume label. 
Unlike filenames, however, the volume label 
does not contain a period between the eighth 
and ninth characters. 

You can add or change a volume label using the 
LABEL commmand. For more information 
refer to the LABEL command in this chapter. 



7-108 



FORMAT 
Command 

7. FORMAT produces a status report, that 
indicates: 

• Total disk space 

• Space marked as defective 

• Space currently allocated to the DOS 
system files (when /S is used) 

• Amount of space available for your files 

8. FORMAT determines the target drive type and 
formats the disk or diskette accordingly. For 
diskettes, if the diskette can be successfully read 
and written on only one side, the diskette is 
formatted for single-sided use, 8 sectors per 
track; it can be used in either type of drive. If 
the target drive is double-sided and you do not 
use the /l parameter, the diskette is formatted 
for double-sided use; it will not be usable in a 
single-sided drive. 

9. Fixed disks are already physically formatted 
(proper recording format) when shipped by 
IBM. When formatting a fixed disk, FORMAT 
checks all locations within the DOS partition, 
but does not physically format them again. 

10. If the /S parameter is used and the system has 
insufficient available memory for FORMAT to 
load all three system modules, it will load as 
many modules as it can, format the target disk, 
and write the modules that are in memory. It 
must then read the remaining modules from the 
source disk so they can be placed on the target 
disk. If the source diskette has been removed 



7-109 



FORMAT 
Command 



from the drive, an appropriate message will 
prompt you to reinsert it before FORMAT can 
continue. 

11. The parameters /8 and /V cannot be specified 
with the /B parameter. 

12. If you specify the /S parameter, the system files 
are copied from the default drive. If the default 
drive is a fixed disk drive that does not contain 
the system files, then you are prompted to insert 
the DOS diskette in drive A. 

13. FORMAT ignores any drive reassignments 
(ASSIGN). 

14. FORMAT should not be used with drives 
involved in a JOIN or substitution (SUBST). 

15. FORMAT does not work on network drives. 



FORMAT Compatibility 



The following table shows the possible diskette 
combinations that may be used with FORMAT: 



Drive 
Type 


Diskette Type 


single 
sided 


single-sided diskettes 


double 
sided 


single-sided or double-sided 
diskettes 



7-110 



FORMAT 
Command 



Drive 
Type 


Diskette Type 


high 
capacity 


single-sided*, double-sided* or 
high-capacity diskettes 



* To format a single-sided or double-sided diskette 
in a high-capacity drive, refer to the FORMAT/4 
command in this chapter. 

No other combinations are allowed. 



Example: By issuing the following command, the diskette in 
drive B is formatted and the operating system files 
are also copied: 

A>format b:/s/v 

The system displays the following message: 

Insert new diskette for drive B: 
and strike ENTER when ready 

After you insert the appropriate diskette and press 
ENTER, the system displays this message: 

Formatting . . . 

while the diskette formatting is taking place. 

Once the formatting is complete, the system displays 
this message: 



7-111 



FORMAT 
Command 



Formatting. .. Format complete 
System transferred 

Volume label (11 character, ENTER for none)? mydisk 

xxxxxx bytes total disk space 

xxxxx bytes used by system 
xxxxxx bytes available on disk 

Format another (Y/N)?n 

In the above example, note that MYDISK was typed 
as the volume label. 

Type y and press Enter to format another diskette. 

Type n and press Enter to end the FORMAT 
program. 

When you format a fixed disk, you will see the 
following message instead of the prompt to insert a 
diskette: 

Warning, All Data on Non-Removable 
Disk Drive x: Will Be Lost! 
Proceed with Format (Y/N)? 

The x is replaced by the drive letter you typed. If 
you want to format your fixed disk, type y and press 
Enter. If you do not want to format your fixed disk, 
type n and press Enter. 

Fixed disk formatting can take several minutes 
because of the large size that can be allocated to 
DOS, so don't be alarmed if it takes some time 
before you are prompted for the volume label. You 
can tell that FORMAT is working by noting that 
your fixed disk drive light is on. 



7-112 



GRAFTABL (Load Graphics Table) 

Command 



Purpose: Loads a table of additional character data for the 
color/graphics adapter into memory. 

Format: [d:]\path]GRAFTASL 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:]\path] before GRAFTABL to specify the drive 
and path that contains the GRAFTABL command 
file. 

Use GRAFTABL to display foreign language 
characters when in graphics mode on the 
color/ graphics adapter. GRAFTABL loads a table 
of data in memory which defines these additional 
characters for the color/ graphics adapter to use. 
This allows the ASCII characters 128 thru 255 to be 
displayed when using the Color/Graphics adapter in 
graphics mode. This command increases the resident 
size of DOS in memory. 

• After loading the character table and initializing 
the interrupt vector, GRAFTABL responds with 
the message: 

GRAPHICS CHARACTERS LOADED 

and then the DOS prompt is displayed. 



7-113 



GRAFTABL (Load Graphics Table) 
Command 

• GRAFTABL should only be invoked once each 
time DOS is started. If you try to load 
GRAPHICS once it is already loaded, the 
following message is displayed: 

GRAPHICS CHARACTERS ALREADY LOADED 



Example: The following example loads the table of graphics 
characters: 

A>graftabl 

The system now supports display of ASCII 
characters 128 through 255 in the graphics mode on 
the Color/Graphics Adapter. 



7-114 



GRAPHICS (Screen Print) 

Command 



Purpose: Allows the contents of a graphics display screen to 
be printed on an IBM Personal Computer Printer 
when using a color/graphics monitor adapter. 

Format: [d:][pat h]GRAPHlCS [printer type] [/R][/B] 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:][path] before GRAPHICS to specify the drive 
and path that contains the GRAPHICS command 
file. 

[printer type] to specify the type of printer you are 
using. You can choose from the following type: 

COLOR 1 - IBM Personal Computer Color 
Printer with black ribbon 

COLOR4 - IBM Personal Computer Color 
Printer with RGB (red, green, blue, black) 
ribbon 

COLOR8 - IBM Personal Computer Color 
Printer with CMY (cyan, magenta, yellow, 
black) ribbon 

COMPACT - IBM Personal Computer 
Compact Printer 

GRAPHICS - IBM Personal Graphics Printer 

If you do not specify a printer type, the default is the 
GRAPHICS printer. 



7-115 



GRAPHICS (Screen Print) 
Command 

/R to print black (as seen on the monitor) and white 
(as seen on the monitor) on the printer. If you do 
not specify /R, the default is to print black as white 
and white as black. 

/B to print the background color. This parameter is 
only for printer types COLOR4 and COLOR8. If 
you do not specify /B, the default is not to print the 
background color. 

This command increases the resident size of DOS in 
memory. 

Press the Shift-PrtSc keys to print the screen 
contents on the printer. If the screen is in text mode, 
the text is printed in less than 30 seconds. If the 
screen is in the graphics mode, (modes 4, 5, 6 only) 
each time the PrtSc key is pressed, the following 
happens: 

• In the 320x200 color graphics mode with printer 
types GRAPHICS and COLOR 1, the screen 
contents are printed in up to four shades of 
gray. 

• In the 640x200 color graphics mode, the screen 
is printed sideways on the paper. The upper 
right corner of the screen is printed on the upper 
left corner of the paper. 

• Printing may take as long as three minutes. 

• To invoke the screen print from an assembly 
language program, use the following coding 
example: 

PUSH BP 
INT 5 
POP BP 



7-116 



GRAPHICS (Screen Print) 

Command 

Example: The following example loads graphics support 

needed to print the screen contents on a COLOR8 
printer. The background colors are printed and 
black prints as black and white as white. 

A>graphics color8 /b /r 



7-117 



JOIN 
Command 



Purpose: Connects a drive to a directory on another drive to 
produce a single directory structure from two 
separate directories. 

Format: [d:]\path]JOlS 

or 

[d:][path]JOYN d: d: \ directory 

or 

[d:][path]JOYN d: /D 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:][path] to specify the drive and path that contains 
the JOIN command file, if it is not in the current 
directory of the default drive. 

d: to specify the drive to be connected to a directory 
on another drive. 

d: \ directory to specify the directory that you will 
join a drive under. The directory must be at the root 
and only one level deep. 

If the directory you specify in the path does not 
exist, it is created on the drive you specify. If the 
directory does exist, it must be empty. An empty 
directory only contains the entries . and .. For 
example, if the directory of C:\LEVEL1 is empty, 
the following is displayed if you type dir c:\levell 



7-118 



JOIN 
Command 



Volume in drive C is EMPTY 
Directory for C:\LEVEL1 

<DIR> 1-01-84 12:03.00 AM 

<DIR> 1-01-84 12:03.00 AM 

2 Files (s) 1048956 bytes free 

/D to disconnect a join. You must specify the drive 
letter of the drive whose join you want to delete. 
For example, if you joined drive B to the directory 
on drive C: \ JOINB, to disconnect the directories, 
type: 

A>join b: /d 

Notes: 

1 . The message Directory not Empty is displayed if 
the directory you try to JOIN is not empty. 

2. The path you specify cannot be the current 
directory. If you try to JOIN to the current 
directory, the message Invalid parameter appears. 

3. The message Invalid drive specification is 

displayed if you refer to a joined drive. For 
example, if you join drive A, you cannot refer to 
the drive letter A until you remove the JOIN 
(/D parameter). This means you cannot JOIN 
the default drive because you will then be on an 
invalid drive. 

4. The directory path you specify cannot be the 
root directory (\). 

5. Type JOIN with no parameters specified to 
display the drives and directories that are 
currently joined. The information displayed 
indicates the drive that is joined and the path the 



7-119 



JOIN 
Command 

drive is joined to. For example, the following 
message indicates that drive A is joined to the 
directory path C:\LEVEL1 . 

A: => C:\LEVEL1 

6. The entire tree (starting from the root) of the 
specified drive is joined, regardless of the 
current directory of that drive. 

7. JOIN does not allow network drives for either 
parameter. The message Cannot JOIN a 
network drive appears if you attempt to do so. 

8. Unpredictable results occur if the drive being 
JOINed is part of a substitution (SUBST) or 
reassignment (ASSIGN). 

9. BACKUP, RESTORE, FORMAT, DISKCOPY, 
and DISKCOMP should not be used while a 
JOIN is in effect. 

Example: For the following examples, assume: 

• The default drive is drive B 

• The current directory of drive C is C : \ 

Joining a Drive to a Directory Path 

Assume the directory structure of drive C looks like 
this: 





C:\ 


























FILES 




REPORTS 



7-120 



JOIN 
Command 

You can join drive A to the path C: \DRIVEA by 
typing: 

B>join a: c:\drivea 

The directory structure of drive C now looks like 
this: 



C:\ 



FILES 



REPORTS 



DRIVEA 



Note: Notice that the directory DRIVEA was 
created on drive C by the JOIN command. 

If you type dir c:, the following is displayed: 

Volume in drive C is FIXEDC 
Directory for C: \ 

FILES <DIR> 8-21-84 2:10.00 PM 

REPORTS <DIR> 9-23-84 5:55.00 PM 

DRIVEA <DIR> 9-30-84 12:03.00 AM 

3 Files(s) 1048956 bytes free 

If you type dir a:, the message Invalid drive 
specification is displayed because you cannot refer to 
a joined drive. If you enter dir c:\drivea , the 
directory of the disk in drive A: is displayed. The 
"bytes free" displayed are those of C:. 



7-121 



JOIN 
Command 

Displaying the Current Joins 

The following example displays the current joins 
from the previous example. 

B>join 

The following is displayed: 

A: => C:\DRIVEA 

Deleting a Join 

The following example deletes the join from the 
previous example. 

B>join a: /d 

Now you can refer to drive A because the join is 
removed. 

Why Use JOIN? 

JOIN can be used to help applications take 
advantage of fixed and virtual disks. The following 
example shows a way that files on A: can be 
accessed through C: 

D>join a: c:\datafils.dir 
D>cd c:\datafils.dir 
D>path=c:\ 
D>dataprog c: 



7-122 



KE YBxx (Load Keyboard) 

Command 



Purpose: Loads a keyboard program that replaces the 

keyboard program resident in ROM BIOS to support 
non-U. S. English keyboards. The xx in the 
command represents one of the five keyboard 
programs provided on the DOS diskette. Each 
command increases the resident size of DOS in 
memory by a different amount. 

Note: The keyboard programs provided on 
DOS 1.10 diskettes are not compatible with 
DOS 3.10 and should not be executed when 
running under DOS 3.10. 

Format: [d:]\path]KEYBUK 

or 
[d:]\path]KEYBGR 

or 
[d:]\path]KEYBFR 

or 
[d:][path]KEYBIT 

or 
[d:]\path]KEYBSP 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



[d:][path] before KEYBxx to specify the drive and 
path that contains the KEYBxx; command file. 



7-123 



KEYBxx (Load Keyboard) 
Command 

These commands load a program into memory that 
replaces the ROM BIOS keyboard program. 

• Only one keyboard program should be loaded 
after starting DOS. The program remains 
resident in memory until you perform a system 
reset or power off the computer. If you load a 
second keyboard program, it will gain control of 
the keystrokes you type. However, the earlier 
program will still be in memory and cannot be 
returned to. 

• You can change from the KEYBxx: program to 
the U.S. keyboard format and back again at any 
time by holding down the Ctrl and Alt keys and 
pressing Fl to change to U.S. format or 
Ctrl-Alt-F2 to return to the selected 
memory-resident keyboard program. 

Note: If you enter a KEYBxx command on 
a computer with multilingual keyboard 
support in the ROM BIOS, the program 
simply sets the current ROM keyboard to 
whichever one is appropriate and then exits 
leaving nothing resident. Therefore, you 
cannot press Ctrl-Alt-Fl to return to a 
U.S. keyboard on a machine with ROM 
multilingual keyboard support. The reason 
for this is that the KEYBxx: program does 
not remain resident in memory. Refer to 
your Guide to Operations for more 
information on how to change the formats 
on these types of computers. 

• The copy of the DOS diskette you created with 
the SELECT command, loads one of these 
programs when you start DOS. Refer to 
Chapter 4 of the DOS User's Guide for 
information on the SELECT command. 



7-124 



KEYBxx (Load Keyboard) 

Command 

The table below lists which keyboard program 
supports each keyboard. The memory allocated 
to each when it is loaded is approximately 2K 
bytes. 



Command 


Keyboard Type 


KEYBUK 


United Kingdom 


KEYBGR 


Germany 


KEYBFR 


France 


KEYBIT 


Italy 


KEYBSP 


Spain 



Non-U. S. English keyboards have some keys with 
characters used by programmers. To use these 
characters, press and hold the Ctrl and Alt keys and 
press the appropriate character key. 

You can get accented characters through the use of 
"dead keys," that is, keys that do not produce 
characters unless they are used in combination with 
another key. To "build" an accented character, 
press and release the accent key and then press the 
appropriate letter key. To use the accent character 
by itself, press the accent key and then press the 
space bar. 



7-125 



KEYBxx (Load Keyboard) 
Command 



Note: If the dead-key /letter-key combination is 
not allowed (not in the following table), you see 
the accent followed by the character key you 
pressed, and a beep sounds. If you press the 
diaeresis, an invalid second key produces a box. 



Allowable Dead Key Combinations 



Germany 


ae'Eidiiaeiou 


France 


aAeioOiiUyaeiou 


Spain 


a AeioOiiUyae'Eioil 




aei ou aeiou 


UK 


dead key not supported 


Italy 


dead key not supported 



7-126 



LABEL (Volume Label) 
Command 



Purpose: Allows you to create, change or delete a volume label 
on a disk. 

Format: [d:][path]LABEL [d:][volume label] 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



[d:][path] before LABEL to specify the drive and 
path that contains the LABEL command file. 

[d:] to specify the drive letter of the disk you want to 
label. If you do not specify a drive letter, the default 
drive is assumed. 

[volume label] to specify the volume label. Volume 
labels are used to identify a disk. They can be up to 
1 1 characters and are in the same format as volume 
labels created by FORMAT/V. If you do not 
specify a volume label, you are prompted with the 
following messages: 

Volume in drive X is xxxxxxxxxxx 

Volume label (11 characters, ENTER for none)? 

To give the disk a volume label, type the label you 
want and press Enter. 

To change an existing volume label, type the new 
volume label and press Enter. The new label you 
typed replaces the existing volume label. 



7-127 



LABEL (Volume Label) 
Command 

To delete a volume label, do not specify a volume 
label; just press Enter. Then you are prompted: 

Delete current volume label (Y/N)? 

Type y and press Enter. The volume label on the 
disk is deleted. 

If you type more than 1 1 characters for the volume 
label, only the first 1 1 characters are used. 

Example: Creating a Volume Label 

The following example creates a volume label called 
ADDRESS on the diskette in drive A. 

A>label a:address 

The following example gives the fixed disk C the 
label FIXEDISKC. 

A>label c:fixediskc 

Changing a Disk's Volume Label 

The following example changes the volume label of 
the diskette in drive A from ADDRESS to 
PROGRAMS. 

A>label a: 

Then you are prompted: 

Volume in drive A is ADDRESS 

Volume label (11 characters, ENTER for none)? 



7-128 



LABEL (Volume Label) 
Command 



Type: 

programs 

Then press Enter. 

Deleting a Volume Label 

The following example deletes the volume label 
PROGRAMS from the diskette in drive A. 

A>label a: 

You are prompted: 

Volume in drive A is PROGRAMS 

Volume label (11 characters, ENTER for none)? 

Press Enter. The following prompt is displayed: 

Delete current volume label (Y/N)? 

Type y and then press Enter. The volume label for 
drive A is deleted. 

Note: LABEL should not be used with 
SUBSTed drives. The root directory of the 
actual drive will be the target of LABEL. 
LABEL should not be used with ASSIGNed 
drives or to label network drives. 



7-129 



MKDIR (Make Directory) 
Command 



Purpose: Creates a subdirectory on the specified disk. 
Format : MKDIR [d:]path 
or 
MD [d:]path 
Type: Internal External 



Remarks: Specify the parameters: 



[d:] to specify the drive letter of the disk you want to 
create the subdirectory on. If you do not specify a 
drive, the default drive is assumed. 

[path] to specify the path of directory names. 
Subdirectory names are in the same format as 
filenames. All characters that are valid for a 
filename are also valid for a directory name. For 
more information on paths, refer to Chapter 5, 
"Tree-Structured Directories" in this manual. 

Note: You can create as many subdirectories as 
you wish, limited only by available disk space. 
However, you should ensure that the maximum 
length of any single path from the root directory 
to the desired level is 63 characters, including 
imbedded backslashes. 

Each directory can contain file and directory names 
that also appear in other directories. In other words, 
two or more files or directories can have the same 
name, as long as they are defined in separate 
directories. 



7-130 



MKDIR (Make Directory) 

Command 

Example: The following example creates the subdirectory 
called LEVEL 1 under the root directory. 

A>md \levell 

The following example creates the subdirectory 
LEVEL2 under the subdirectory LEVEL 1. 

A>md \levell\level2 

If the current directory is \ LEVEL 1, the following 
example creates the subdirectory LEVEL2 under the 
subdirectory LEVEL 1. 

A>md level 2 

The last example does the same thing as the second. 
Note that in the second example, the first \ tells 
DOS to begin its directory search with the root 
directory. The absence of a leading \ in the last 
example causes DOS to begin at the current 
directory. 

Note: Care should be taken when making 
directories while an ASSIGN, JOIN, or a 
SUBST is in effect. 



7-131 



MODE 
Command 



Purpose: Sets the way that a printer, a Color/Graphics 
monitor adapter, or an Asynchronous 
Communications Adapter operates. 

Format: [d:]\path]MODE LPT#[:][/i][,[w][,P]] 

or 

[d:][path]MODE n 

or 

[d\]\path\MODE [/i],w[,T] 

or 

[d\]\path\MOVE 

C OM«[ : ] ba u d[ ,[parityj[ ,[databits][ ,[stopbitsJ[,F]]] ] 

or 



Type: 



[d:)[path]MODE LPT#[:] = COM« 



Internal External 



Remarks: A missing or invalid n or m parameter means that the 
mode of operation for that parameter is not changed. 

Technical Note: When used in Option 1 (P 
option), Option 2 (shifting the screen (R)ight or 
(L)eft), Option 3 (P option), or Option 4, the 
MODE command causes printer and 
Asyncronous Communications Adapter 
intercept code to be resident in memory. This 
increases the resident size of DOS in memory. 



7-132 



MODE 
Command 

The resident portion is common for all three 
operations that cause it to be loaded. Once 
loaded, invoking another option causing 
residency does not cause any additional code to 
become resident. 

Notes: 

1 . Before you can use MODE to redirect parallel 
printer output to a serial device, you must 
initialize the Asynchronous Communications 
Adapter by using Option 3 (see below). If that 
serial device is a printer, your serial initialization 
command should also include the P parameter. 

2. MODE LPT#[:][«][,m] disables the redirection 
for the printer designated by the #. Redirection 
causes a portion of MODE to remain resident. 

3. Because LPT#[:] and COM[:] are DOS device 
names, you can specify them with or without the 
colon (:). For example, you can specify: 

A>mode lptl: 132. ,8 

or 

A>mode lptl 132,8 

or 

A>mode 1ptl=coml 



7-133 



MODE 
Command 

The MODE command has four format options: 

Option 1 (For the printer) 

MODE LPT#[:][«][,[m][,P]] 

where: 

# is 1, 2, or 3 (the printer number) 

n is 80 or 132 (characters per line) 

m is 6 or 8 (lines per inch vertical spacing) 

P specifies continuous retry on time-out errors 

For example: 

A>mode 1 ptl : 132 ,8 

sets the mode of operation of printer number 1 to 
132 characters per line and 8 lines per inch vertical 
spacing. The power-on default options for the 
printer are 80 characters per line and 6 lines per 
inch. If the printer is reset or initialized, the default 
values are set (BASIC initializes the printer). 

If you specify an invalid n or m value, the values are 
ignored and the previous value is unchanged. 

The retry loop can be stopped by pressing 
Ctrl-Break. To stop time-out errors from being 
continuously retried when you have entered P, you 
must use MODE Option 1 without specifying P. 



7-134 



MODE 

Command 

Option 2 (For switching Display Adapters, and setting 
the display mode of the Color/ Graphics Monitor 
Adapter) 

MODE« 

or 

MODE [n],w[,T] 

where: 

n is 40, 80, BW40, BW80, CO40, CO80, or 

MONO 

40 sets the display width to 40 characters per 

line (for Color/Graphics Monitor Adapter). 

80 sets the display width to 80 characters per 

line (for Color/Graphics Monitor Adapter). 

BW40 switches the active display adapter to the 
Color/Graphics Monitor Adapter, and sets 
the display mode to Black and White 
(disables color) with 40 characters per line. 

BW80 switches the active display adapter to the 
Color/Graphics Monitor Adapter, and sets 
the display mode to Black and White 
(disables color) with 80 characters per line. 

CO40 switches the active display adapter to the 
Color/Graphics Monitor Adapter, enables 
color, and sets the display width to 40 
characters per line. 



7-135 



MODE 
Command 



CO80 switches the active display adapter to the 
Color/Graphics Monitor Adapter, enables 
color, and sets the display width to 80 
characters per line. 

MONO switches the active display adapter to the 
Monochrome Display Adapter (which 
always has display width of 80 characters per 
line). 

m is R or L (shift display right or left) 

T requests a test pattern used to align the 

display 

For readability, you can shift a display connected to 
a color/graphics monitor adapter 1 character (for 40 
columns) or 2 characters (for 80 columns) in either 
direction. If you specify T in the MODE command, 
a prompt asks you if the screen is aligned properly. 
If you type Y the command ends. If you type N the 
shift is repeated followed by the same prompt. For 
example, 

A>mode 80,r,t 

sets the mode of operation to 80 characters per line 
and shifts the display 2 character positions to the 
right. The test pattern is displayed to give you the 
opportunity to further shift the display without 
having to enter the command again. 

Note: Shifting the display on an IBM Personal 
Computer AT causes all of MODE'S resident 
code to be loaded. 



7-136 



MODE 
Command 

Option 3 (For Asynchronous Communications 
Adapter) 

MODE COMn[:]baud[,parity[,databits[,stopbits[,?]\]] 

where: 

n Either 1 or 2 (Asynchronous 

Communications Adapter number) 

baud 1 10, 150, 300, 600, 1200, 2400, 4800, or 

9600 

Note: Only the first 2 characters are 
required; subsequent characters are 
ignored. 

parity Either N (none), O (odd), or E 

(even) — (default = E) 

databits Either 7 or 8 (default = 7) 

stopbits Either 1 or 2 (if baud equals 110, default 
= 2; if baud does not equal 110, default 
= D 

These are the protocol parameters. They are used to 
initialize the Asynchronous Communications 
Adapter. When you specify the protocol, you must 
specify at least the baud rate. The other parameters 
can be omitted, with the defaults accepted, by 
entering only commas. For example, 

A>mode coml:12,n,8,l,p 

sets the mode of operation to 1200 baud rate, no 
parity, 8 databits, and 1 stopbit. To use the defaults 
listed in the definitions above, you enter: 



7-137 



MODE 
Command 

A>mode coml:12, , , ,p 



The parity defaults to even, the databits defaults to 
seven, and the stopbits defaults to one. 

The P option indicates that the asynchronous adapter 
is being used for a serial interface printer. If you 
enter the P, time-out errors are continuously retried. 
You can stop the retry loop by pressing Ctrl-Break. 
To stop the time-out errors from being continuously 
retried when you have entered P, you must 
reinitialize the asynchronous adapter without 
entering the P. P option causes a portion of MODE 
to remain resident. 

Option 4 (To redirect parallel printer output to an 
Asynchronous Communications Adapter) 

MODE LPT#[:]=COM« 

where: 

# Either 1, 2, or 3 (printer number) 

n Either 1 or 2 (Asynchronous 

Communications Adapter number) 

All output directed to printer LPT# is redirected to 
the asynchronous adapter n. 



7-138 



MORE Filter 
Command 



Purpose: Reads data from the standard input device, and sends 
one screen of data to the standard output device, and 
then pauses with the message — More — . 

Format: [d:]\path]MORE 

Type: Internal External 



Remarks: Specify the parameters: 



Example: 



[d:][path] before MORE to specify the drive specifier 
and path that contains the MORE command file. 

Pressing any character key causes another screen of 
data to be sent to the standard output device. This 
process continues until all input data is read. 

The following example displays the contents of the 
file TEST. ASM one screen at a time. When the 
screen is full, the message — More — appears on the 
bottom line. You can press any key to see the next 
screen. 



A>more <test.asm 

The following example pipes the output of the 
TREE command to the MORE filter. This is useful 
because when a full screen of output from TREE is 
displayed, the output pauses and the message 
—More— is displayed. When you want to continue 
with the display, press any key. 



A>tree J more 



7-139 



PATH (Set Search Directory) 
Command 



Purpose: Searches specified directories for commands or batch 
files that were not found by a search of the current 
directory. 

Format: PATH [[d:]path[[\[d:]path]...]] 

or 

PATH; 

Type: Internal External 

*** 

Remarks: You may specify a list of drives and path names, 

separated by semicolons (note that path names must 
be specified and will not default to the current 
directory). Then, when you enter a command that is 
not found in the current directory of the drive that 
was specified (or implied) with the command, DOS 
searches the named directories in the sequence you 
entered them. The current directory is not changed. 

Typing PATH with no parameters displays the 
current path. Typing PATH with only a semicolon 
(PATH ;) resets the search path to null (no extended 
search path). This is the default when DOS is 
started. In this case, DOS searches only the current 
directory for commands and batch files. 



7-140 



PATH (Set Search Directory) 

Command 

Notes: 

1. Erroneous information in the paths, such as 
invalid drive specifications or imbedded 
delimiters, will not be detected until DOS 
actually needs to search the specified paths. 

2. If a path is specified that no longer exists at the 
time DOS uses it to search for a command or 
batch file, DOS ignores that path and goes on to 
the next. 

3. PATH only finds files that can be executed; 
such as .COM, .EXE, and .BAT files. PATH 
will not find files with any other extensions. 

4. A copy of the environment is saved with 
terminate and stay-resident programs. Invoking 
programs with a resident portion (MODE, 
PRINT, GRAPHICS) before a large path is set 
saves usable memory. 

5. Terminate and stay-resident programs are 
loaded above the environment area so growth of 
the environment is limited to 128 bytes or the 
current size, whichever is greater. 

Example: For the following examples, assume the program 
MYPROG.COM is only in directory MYDIR on 
drive B, and that the default drive is drive A. 

The following example instructs DOS to look in the 
current directory of the specified drive, followed by 
A:\LEVEL2\LEVEL3, then B:\MYDIR for a 
command you specify. 

A>path a: \leve!2\leve13;b: \mydir 



7-141 



PATH (Set Search Directory) 
Command 

If the command typed is not found in any of the 
directories specified in PATH, the following message 
is displayed: 

Bad command or filename 

In the previous example, if you type the command: 

A>myprog 

DOS searches the three specified directories, finding 
the program MYPROG in B: \MYDIR. 

To display the current path, type: 

A>path 

The result is: 

PATH=A:\LEVEL2\LEVEL3;B:\MYDIR 

The following example causes DOS to search the 
current directory of C:, then D:\tools. 

A>path c: . ; d:\tools 



7-142 



PRINT 

Command 



Purpose: Prints a queue (list) of data files on the printer while 
you are doing other tasks on the computer. 

Format: [d:][path]PMKT[/D:device][/B:buffsiz][/\J:busytick] 
[ / M : maxtick] [ / S : times lice] [ /Q : quesiz] 
[/C][/T][/F][[d:][path][filename]lext]...] 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:][path] before PRINT to specify the drive and 
path that contains the PRINT command file. 

/D'.device to specify the print device. If not 
specified, the default device PRN is assumed. 

Important: If you specify /D, it must be the first 
parameter. 

/B:buffsiz to set the size in bytes of the internal 
buffer. The default value is 512 bytes. Increasing 
the value of B may enhance the performance of the 
PRINT command. 

/Q.quesiz to specify how many print files you can 
have in the queue. The range of values is from 1 to 
32 files. The default value is 10. 

/Suimeslice to specify the time-slice value. The 
default is 8 time slices. The range of values is 1 to 

255. 

/\J:busytick to specify the number of clock ticks that 
PRINT will wait for until the print device is 



7-143 



PRINT 

Command 



available. /U is called busyticks. The default value 
for busytick is 1 . If PRINT waits longer than U 
busyticks, it gives up its time slice. 

/M:maxtick to specify how many clock ticks PRINT 
can have to print characters on the print device. /M 
is called maxticks. The default value for maxtick is 2 
maxticks. The range of values is from 1 to 255 
maxticks. This parameter does not need to be 
specified each time you use PRINT. Specify it only 
the first time. 

/T to set the terminate mode. All queued files are 
canceled from the print queue. If a file is currently 
being printed, the printing stops, a cancelation 
message is printed, the paper is advanced to the next 
page, and the printer's alarm sounds. 

/C to set the cancel mode. Allows you to select 
which file or files to cancel. The preceding filename 
and all following filenames entered on the command 
line are canceled from the print queue until a /P is 
found on the command line, or until you press the 
Enter key. 

/P to set the print mode. The preceding filename 
and all following filenames are added to the print 
queue until a /C is found on the command line, or 
until you press the Enter. 

The parameters /D, /B, /Q, /S, /U, and /M can 
only be specified the first time you use PRINT. If 
you specify them again, the following message is 
displayed: 

Invalid Parameters 

You can enter more than one filename on the 
command line, each with appropriate parameters. 



7-144 



PRINT 

Command 

Global filename characters * and ? are allowed in the 
filename. Once a file has been queued, you can 
change the current directory without affecting the 
printing of the files already in the print queue. 

The first time this command is issued, it increases the 
resident size of DOS in memory. 

If no parameters are specified and you press Enter, 
the files listed on the command line are queued for 
printing (/P is assumed). 

If PRINT is typed with no parameters, PRINT 
displays the names of the files currently in the print 
queue. 

If you did not specify the device name using /D the 
first time the PRINT command is executed after you 
start your system, the following message is displayed 
on the display screen: 

Name of list device [PRN]: 

This allows you to specify the output list device, 
LPT1, LPT2, LPT3, PRN, COM1, COM2, AUX, 
etc. The default is PRN, and will be selected if you 
press Enter. 

Note: Be sure the device you name is physically 
attached to your system; naming a nonexistent 
device will cause unpredictable system behavior. 

The files are queued for printing in the order entered. 
After each file is printed, the printer paper is 
advanced to the next page. Any tab characters 
found are expanded with blanks to the next 
8-column boundary. 



7-145 



PRINT 

Command 



If PRINT encounters a disk error while attempting to 
read the file to be printed, PRINT will cause: 

• The file currently printing to be canceled 

• The disk error message to be printed on the 
printer 

• The printer paper to be advanced to the next 
page and the alarm to be sounded 

• The remaining files in the print queue to be 
printed 

If the /T or /C parameters are used to cancel a file 
or files currently being printed: 

• The printer alarm sounds. 

• A file cancelation message prints on the printer. 
If /T, the following message prints: 

All files canceled by operator. 

If /C, the name of the canceled file is printed 
followed by this message: 

File canceled by operator 

• The printer paper advances to the next page. 

• If all files in the print queue have not been 
canceled, printing resumes with the first file 
remaining in the print queue. 



7-146 



PRINT 
Command 

Notes: 

1 . The disk containing the files being printed must 
remain in the specified drive until all printing is 
complete. Any file in the print queue must not 
be altered or erased until after it has been 
printed. 

2. The printer cannot be used for any other 
purpose while PRINT has data to print. Any 
attempt to use the printer (Shift-PrtSc, LLIST, 
Ctrl-PrtSc, LPRINT, etc.) results in an 
"out-of-paper" indication until all files have 
been printed or printing is terminated (/T). 

3. You cannot use PRINT on a network server 
computer. 

Example: In this example, the PRINT command is being used 
for the first time since the system was started. The 
command: 

A>print a: tempi . tst 

has just been entered, DOS responds with: 

Name of list device [PRN]: 

Press the Enter key to send output to the printer. 

Then it adds the file TEMPI. TST from drive A to 
the print queue and sends the output to the device 
"PRN" printer. The command: 

A>print /t 

empties the print queue. Any other information on 
the line is ignored. 



7-147 



PRINT 
Command 

The command: 

A>print temp.*/c 



removes all TEMP.??? files from the print queue 
that have the same drive letter as the default drive. 
The command: 

A>print a: tempi . tst/c a: temp2 . tst a:temp3.tst 

removes the three files TEMPI, TEMP2, and 
TEMP3 on drive A from the print queue. The 
command: 

A>print tempi. tst/c temp2.tst/p tempS.tst 

removes file TEMPI. TST from the print queue, 
adds the files TEMP2.TST and TEMP3.TST to the 
print queue. The command: 

A>print tempi. tst temp2.tst temp3. tst/c 

adds files TEMPI. TST and TEMP2.TST to the 
print queue, then removes TEMP3.TST from the 
print queue. 



7-148 



PROMPT (Set System Prompt) 

Command 



Purpose: Sets a new DOS prompt. 
Format: PROMPT [prompt-text] 
Type: Internal External 

Remarks: Specify the parameter: 

prompt-text to specify the text for the new system 
prompt. The prompt-text can contain special 
meta-strings that are in the form $c. The following 
are meta-strings that can be included in the 
prompt-text: 

Where c is one of the following: 

$ The $ character. 

t The time. 

d The date. 

p The current directory of the default drive. 

v The version number. 

n The default drive letter. 

g The > character. 

1 The < character. 

b The | character. 

q The = character. 

h A backspace; the previous character is erased. 

e The ESCape character. 

The CR LF sequence (go to beginning of new 

line on the display screen). 

Any other value for c is treated as a null character 
and is ignored by PROMPT. 



7-149 



PROMPT (Set System Prompt) 
Command 

Type PROMPT with no parameters to reset the 
prompt to the normal DOS prompt. 

Example: The following example sets the DOS prompt to the 
default drive letter plus the character >. 

A>prompt $n$g 

The following example sets the DOS prompt to the 
message HELLO. 

A>prompt hello 

The following example sets the DOS prompt to the 
current directory of the default drive plus the > 
character. 

A>prompt $p$g 

Note: Include this statement in an 
AUTOEXEC.BAT file so that every time you 
start DOS, the DOS prompt tells you what 
directory you are in (the current directory). 

If the current directory of drive A is \ LEVEL 1, the 
DOS prompt would display: 

A:\levell> 

The following example sets the DOS prompt to 
display the date and time as follows: 

Time = (current time) 

Date = (current date) 

A>prompt time = $t$_date = $d 



7-150 



PROMPT (Set System Prompt) 

Command 

If you want to create a prompt that begins with any 
of the DOS command delimiters (such as semicolon 
or blank), you can precede that character with a null 
meta-string. In this case, the character is treated as 
the first character of the prompt, rather than as a 
delimiter between the word PROMPT and its 
parameter. For example: 

A>prompt $a;abc 

causes the PROMPT command to interpret the $A 
as a null character, because A is not one of the 
defined characters in the above list. All characters 
following the null character become the new system 
prompt. 

You can use the PROMPT command to issue escape 
sequences to ANSI. SYS. If you started your system 
with the command, DEVICE =ANSI.SYS in your 
CONFIG.SYS file, the following example displays 
the current directory on the top row of the screen, 
and a minus - on the current line. 

A>prompt $e[s$e[24A$p$e[u- 

The A in the escape sequence must be uppercase. 
See Chapter 3, "Using Extended Screen and 
Keyboard Control" in the DOS Technical Reference, 
Version 3.10. 

Notes: 

1 . A copy of the environment is saved with 

terminate and stay-resident programs. Invoking 
programs with a resident portion (MODE, 
PRINT, GRAPHICS) before a large path is set 
saves usable memory. 



7-151 



PROMPT (Set System Prompt) 
Command 

2. Terminate and stay-resident programs are 

loaded above the environment area so growth of 
the environment is limited to 128 bytes or the 
current size, whichever is greater. 



7-152 



RECOVER 
Command 



Purpose: 



Recovers files from a disk that has a defective sector. 
You can recover the file that contains the bad sector 
(minus the data in the bad sector). Or, all the files 
on the disk can be recovered if the directory has 
been damaged. 



Format: [d:]\path]RECOVER [d:][path]filenamelext] 



Type: 



or 



[d:][path]RECOVER d: 
Internal External 



Remarks: Specify the parameters: 



[d:][path] before RECOVER to specify the drive and 
path that contains the RECOVER command file. 

[d:][path]filename[.ext] to specify the name of the file 
you want to recover. 

Use the first RECOVER format to recover the 
specified file. If you do not specify a drive, the 
default drive is used. If you do not specify a path, 
the current directory is used. The size of the 
recovered file is a multiple of the DOS allocation unit 
size. In most cases, this is larger than the original file 
size. The data in the bad sector is not recovered. 

Use the second RECOVER format to recover all 
files. 

If the sum of the number of files in the root and the 
number of files in subdirectories is greater than the 



7-153 



RECOVER 
Command 

possible number of entries in the root (1 12 for 
double-sided diskettes), you have to do multiple 
recovers to save the entire disk. Issue RECOVER 
using the second format to recover as many entries 
as will fit in the root directory. Examine the 
recovered files and copy the ones you want to save 
to another disk. Delete some or all of the files you 
have already recovered from the damaged disk from 
which you are recovering. Issue RECOVER again to 
recover more files. Continue this procedure until all 
files are recovered. 

This form of the RECOVER command should only 
be used if the directory of the disk has become 
unusable. Because RECOVER has no way to know 
whether the data in the directory is valid or not, it 
must assume that the entire directory is invalid, and 
therefore recovers all files into filenames of the form 
shown below, including any files for which there may 
still have been valid directory entries. 

Text files will normally require re-editing to remove 
unwanted data from the end of the recovered file 
before they can be used for normal processing. 

Note: You cannot use the RECOVER 
command on a network disk. 

Example: The following example recovers the file MYPROG 
from the disk in drive A. 

A>recover a:myprog 

The disk file MYPROG on drive A is read 
sector-by-sector, skipping the bad sectors. 

The following example recovers the contents of an 
entire disk from drive A. 



7-154 



RECOVER 
Command 

A>recover a: 

The disk file allocation table on drive A is scanned 
for chains of allocation units. A directory is created 
for each chain of allocation units in the form: 

FILEnnnn.REC 

Where nnnn is a sequential number starting with 
0001. Each FILErtwzw.REC points to one of the 
recovered files on the disk. 



7-155 



RENAME (or REN) 
Command 



Purpose: Changes the name of the file specified in the first 
parameter to the name and extension given in the 
second parameter. 

Format: REN[AME] [d:][path]filename[.ext] filename[.ext] 

Type: Internal External 

* * * 



Remarks: You can use the abbreviated form REN for the 

RENAME command. You can also use the global 
characters ? and * in the parameters. For more 
information about global characters, refer to "Global 
Filename Characters" in Chapter 2. A path can be 
specified only with the first filename; the file will 
remain in the same directory after its name has been 
changed. 

Example: The following example renames the file ABODE on 
drive B to HOME. 

A>rename b: abode home 

The following example renames the file ABODE on 
drive B to ABODE.XY. 

A>ren b:abode *.xy 

The following example renames the file 
MYPROG.COM in the directory \LEVEL1 on 
drive B to YOURPROG.COM. 

A>ren b:\levell\myprog.com yourprog.com 



7-156 



RESTORE 
Command 



Purpose: Restores one or more backup files from a disk to 
another disk. 

Format: [d:][path]RESTORE d: 

[d:][path]filename[.ext][/S][/V] 

Type: Internal External 



Remarks: Specify the parameters: 



[d:]\path] before RESTORE to specify the drive and 
path that contains the RESTORE command file. 

d: to specify the drive that contains the BACKUP 
files (source). 

[d:][path]filename[.ext] to specify where you want to 
restore the files and what files from the source you 
want to restore. 

/S to restore all files in subdirectories in addition to 
the files in the specified directory. This includes 
subdirectories at all levels beyond the specified 
directory. 

/P to have RESTORE prompt you before restoring 
files that have changed since they were last backed 
up, or that are marked read-only. You can then 
choose to restore the file or not. Read-only is a file 
attribute that you can set by using the ATTRIB 
command. The two DOS system files 
(IBMBIO.COM and IBMDOS.COM) are marked 
read-only when they are created by the FORMAT 
and SYS commands. 



7-157 



RESTORE 
Command 



The files being restored must have been placed on 
the source by the BACKUP command. 

Files are restored to the current directory if you do 
not specify a path. If you specify a path, you must 
also specify a filename. 

Global filename characters are allowed in the 
filename, and cause all of the files matching the 
filename to be restored. 

When RESTORE prompts you to insert the source, 
make sure you insert the first diskette that might 
contain the file you want to restore. If you are not 
sure, insert source number 1. If the file is not on the 
diskette you inserted, RESTORE prompts you to 
insert the next target. 

If you are sharing files, you can only restore files that 
you have access to. If you attempt to access a file 
that you do not have access to, the following 
message is displayed: 

PATHNAME\ FILENAME 

Not able to restore at this time 

If you use global filename characters, RESTORE 
prompts you to insert the next diskette after it has 
restored all files on the backup diskette that match 
the specified filename. 

If you are restoring files that were backed up using a 
previous version of DOS, it is recommended that you 
use the RESTORE /P parameter. This will prompt 
you before restoring the DOS system files 
IBMBIO.COM and IBMDOS.COM. You should 
respond with a N to the prompt asking you if you 
want to restore the file. This will avoid overlaying 
the DOS 3.10 version of these files with versions 



7-158 



RESTORE 
Command 

from previous levels of DOS. We recommend that 
you use the SYS command or FORMAT /S and then 
copy the current version on COMMAND.COM to 
the root directory before restoring if you want the 
disk to be bootable. 

The RESTORE command sets the ERRORLEVEL 
(see Batch Commands) as follows: 

Normal completion 

1 No files were found to restore 

2 Some files not restored due to sharing conflicts 

3 Terminated by user (Ctrl-Break or ESC) 

4 Terminated due to error 

These codes can be used with the batch processing 
IF subcommand to control subsequent error level 
processing. 

Example: The following example restores all files (including 
subdirectories /S) on the backup diskettes to fixed 
disk drive C: 

A>restore a: c: \*.* /s 

The following example restores files from the 
backup disk in drive A that have a filename 
extension of .DAT to drive C. 

A>restore a: c:*.dat 



7-159 



RESTORE 
Command 



The following example restores three different files 
from the backup diskettes to the default fixed disk 
drive: 

Orestore a: \levell\filel.dat 
Orestore a: \levell\level2\file2.dat 
Orestore a: \levell\level3\file3.dat 

The following example restores all files from the 
backup disk drive C, and prompts you if any files on 
drive C have changed since the last backup or if any 
files are marked read-only (/P). 

A>restore c:/p 

Important: Do not RESTORE if a JOIN, ASSIGN, 
or SUBST was in effect during the BACKUP. 



7-160 



RMDIR (Remove Directory) 

Command 



Purpose: Removes a subdirectory from the specified disk. 
Format: RMDIR [d:]path 
or 
RD [d:]path 

Type: Internal External 

*** 

Remarks: The directory must be empty before it can be 
removed with the exception of the "." and ".." 
entries. You cannot remove subdirectories that 
contain hidden files. The last directory name in the 
path is the directory to be removed. 

Note: The root directory and the current 
directory cannot be removed. 

Example: The following example removes the entry for 
LEVEL2 from the directory LEVEL1. 

A>rd b:\levell\level2 

Note: Exercise care in using RMDIR while a 
JOIN or an ASSIGN is in effect. You cannot 
remove a directory if it has been substituted 
(SUBST). 



7-161 



SELECT 
Command 



Purpose: Allows you to select the keyboard layout and the 
date and time format. 

Format: [d:][path]SELECT xxxyy 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:][path] before SELECT to specify the drive and 
path that contains the SELECT command file. 

xxx to specify the country code. The country code 
tells DOS the date and time format. It also tells DOS 
the currency symbol and the decimal separator. 
Choose the value for xxx from the table below. 

yy to specify the keyboard code. The keyboard code 
tells DOS which keyboard layout you want to use. 
Choose the values for xxx and yy from the table 
below. 



Country 


Country 
Code 


Keyboard Code 


United States 


001 


US 


France 


033 


FR 


Spain 


034 


SP 



7-162 



SELECT 
Command 



Country 


Country 
Code 


Keyboard Code 


Italy 


039 


IT 


United Kingdom 


044 


UK 


Germany 


049 


GR 



The SELECT command uses DISKCOPY to make a 
copy of your DOS diskette. It also creates the 
following two files on the copy of the DOS diskette: 

A CONFIG.SYS file that contains the 
COUNTRY = command 

An AUTOEXEC.BAT file that contains the 
KEYbxx command (except in the case of a U.S. 
keyboard) 

Refer to Chapter 4 "Starting DOS" in the DOS 
User's Guide for more information. 



7-163 



SET (Set Environment) 
Command 



Purpose: This command inserts strings into the command 

processor's environment. A copy of the entire series 
of strings in the environment is made available to all 
commands and applications. 

Format: SET [name=[parameter\] 

Type: Internal External 

*** 

Remarks: The entire string (beginning with name) is inserted 
into a block of memory reserved for environment 
strings. Any lowercase letters in the name are 
converted to uppercase letters when added to the 
environment (including foreign language characters); 
the remainder of the line is inserted as you typed it. 
If the name already exists in the environment, it is 
replaced with the new parameter. 

If the SET command is typed with no name specified, 
then the current set of environment strings is 
displayed. 

If a name is specified, but the parameter is not 
specified, then the current occurrence of 
name=parameter is removed from the environment. 

A copy of the environment (series of names and 
parameters) is made available to all DOS commands 
and applications (see "Program Segment Prefix" in 
Chapter 7 of the DOS Technical Reference). 



7-164 



SET (Set Environment) 
Command 



Notes: 



1 . DOS automatically adds any PROMPT or 
PATH commands to the environment when you 
enter them. You do not need to use the SET 
command to add either of these two commands 
to the environment. 

2. One of the strings in the environment (placed 
there by DOS when it starts up) will always be a 
COMSPEC = parameter. That parameter 
describes the path that DOS uses to reload the 
command processor when necessary. 

3. If you have not loaded a program that remains 
resident (such as MODE, PRINT, or 
GRAPHICS), DOS expands the environment 
string area to hold additional strings. If you have 
loaded a program that remains resident, DOS is 
unable to expand the environment area beyond 
127 bytes. If the environment area has already 
expanded beyond 127 bytes when you load a 
program that is to remain resident, DOS is 
unable to expand the environment area beyond 
that point. The message Out of environment 
space appears if you issue a SET command that 
would cause the combined environment strings 
to exceed 127 bytes. 

4. A copy of the environment is saved with 
terminate and stay-resident programs. Invoking 
programs with a resident portion (MODE, 
PRINT, GRAPHICS) before a large 
environment is set saves usable memory. 



7-165 



SET (Set Environment) 
Command 

Example: This example adds the string PGMS= \ LEVEL 1 to 
the environment. When an application program 
receives control, it could search the environment for 
the name PGMS, and use the supplied parameter as 
the directory name to use for its files: 

A>set pgms=\levell 

The following example removes PGMS= \ LEVEL 1 
from the environment: 

A>set pgms= 

You can select the strings in the environment. For 
example, typing: 

A>set abc=xyz 

adds the string ABC=xyz to the other strings 
already in the environment (note the conversion of 
abc to uppercase ABC). In this way, it is possible 
for you to type keywords and parameters that are not 
meaningful to DOS, but can be found and 
interpreted by applications designed to examine the 
environment. 



7-166 



SHARE 

Command 



Purpose: Loads support for file sharing. 

Note: Refer to Int 21H function calls 3DH and 
5CH in Chapter 6 of the DOS Technical 
Reference for more information on file sharing 
and locking. 

Format: [d:][path]SHARE [/F:filspace][/L: locks] 

Type: Internal External 

*** 

Remarks: Specify the parameters: 

[d:][path] before SHARE to specify the drive and 
path that contains the SHARE command file. 

/F:filespace to allocate file space in bytes for the 
area used for recording the information necessary for 
file sharing. Each open file requires the length of the 
full filename plus 1 1 bytes. The default value is 
2048 bytes. 

/L'Jocks to allocate space for the number of locks 
you want. The default value is 20 locks. 



7-167 



SHARE 

Command 

If you load SHARE, all read or write requests are 
validated against the file sharing code. If filesharing 
is installed and you try to re-install it, the following 
message is displayed: 

Share Already Installed 

Example: The following example loads file sharing support. 

A>share 

Note: If you load SHARE, the table for FCB 
control is checked. If you specified FCBS=4,0 
(the default) in CONFIG.SYS, the table is 
adjusted to 16,8. 



7-168 



SORT Filter 
Command 



Purpose: Reads data from the standard input device, sorts the 
data, then writes the data to the standard output 
device. 

Format: [d:][path]SORT [/R] [/+ n] 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



[d:][path] before SORT to specify the drive and path 
that contains the SORT command file. 

/R to sort in reverse order. For example, Z comes 
before A. 

/ +n to start sorting with column n. The n is an 
integer value. If you do not specify n the default is 
column 1 . The maximum file that you can sort is 
63K. 

The output filename must be different than the input 
filename. 

Notes: 

Characters are sorted according to their binary value 
with the following exceptions: 

1 . Lowercase letters a-z are equated to uppercase 
A-Z. 

2. Some characters above 127 are collated 
according to the following chart: 



7-169 



SORT Filter 
Command 



ASCII 

value 
(decimal) 


ASCII weight 


ASCII 

value 

(decimal) 


ASCII weight 


128 


67 


150 


85 


129 


85 


151 


85 


130 


69 


152 


89 


131 


65 


153 


79 


132 


65 


154 


85 


133 


65 


155 


36 


134 


65 


156 


36 


135 


67 


157 


36 


136 


69 


158 


36 


137 


69 


159 


36 


138 


69 


160 


65 


139 


73 


161 


73 


140 


73 


162 


79 


141 


73 


163 


85 


142 


65 


164 


78 


143 


65 


165 


78 


144 


69 


166 


166 


145 


65 


167 


167 


146 


65 


168 


63 


147 


79 


169 


169 


148 


79 


170 


170 


149 


79 


171 


171 



7-170 



SORT Filter 
Command 



ASCII 

value 

(decimal) 


ASCII weight 


ASCII 

value 
(decimal) 


ASCII weight 


172 


172 


175 


34 


173 


33 


225 


83 


174 


34 







Example: The following example reads the file UNSORT.TXT, 
sorts it in reverse order, and then writes the output to 
the file SORT.TXT. 

A>sort /r <unsort.txt >sort.txt 

The following example pipes the output of the DIR 
command to the SORT filter. Then the directory 
listing is sorted starting with column 14 (column 14 
of a directory listing contains the file size). The 
output is sent to the standard input device. 

A>dir ! sort /+14 



7-171 



SUBST(Substitute) 
Command 



Purpose: Allows you to use a different drive specifier to refer 
to another drive or path. 



Note: If you use applications that do not 
recognize paths, SUBST allows you to specify a 
drive letter for a path. 

Format: [d: ][path] SUBST d: d.path 

or 

[d:]\path\$UBST d\ /D 

or 

[d:]\path] SUBST 
Type: Internal External 

Remarks: Specify the parameters: 

[d:][path] to specify the drive and path that contains 
the SUBST command file. 

d: to specify the drive letter that you want to use to 
refer to another drive or path. 

d:path to specify the drive or path that you want to 
refer to with a nickname. The path you specify 
should start from the root directory. 

/D to delete a substitution. You must specify the 
drive letter of the drive whose substitution you want 



7-172 



SUBST(Substitute) 
Command 

to delete. For example, if you substituted the drive 
G for the path C: \ LEVEL 1, to remove the 
substitution, type: 

A>subst g: /d 
Notes: 

1 . The first drive letter you specify depends on the 
value of the LASTDRIVE configuration 
command. If you do not specify the 
LASTDRIVE command in your CONFIG.SYS 
file, the default value is LASTDRIVE=E. This 
means that you can substitute the drive letters A 
through E. To specify a drive letter greater than 
E, set LASTDRIVE equal to a letter A - Z. For 
example, to SUBST the drive letter G, the 
LASTDRIVE command must be greater than or 
equal to G. Refer to Chapter 4 "Configuring 
Your System" for more information on the 
LASTDRIVE command. 

You can think of this drive letter as a 
"nickname" for a drive or path that you can 
access. For example, if you substitute the drive 
letter G for the path C: \ LEVEL 1 \LEVEL2 to 
refer to C:\LEVEL1\LEVEL2\FILE1 you 
can type: 

A>dir g:filel 

Instead of typing: 

A>dir c:\levell\level2\filel 

2. The drive specifiers for both drives you specify 
must be different. 



7-173 



SUBST(Substitute) 
Command 



3. The first drive letter that you specify cannot be 
the same as the default drive. 

4. If you specify a path, it is assumed that the path 
starts from the root directory. 

5. Neither parameter can refer to a network drive. 
If you do refer to a network drive, the message 
"Cannot SUBST a network drive" appears. 

6. The following commands should be used with 
care while a substitution is in effect: CHDIR, 
MKDIR, RMDIR, and PATH. 

7. The following commands should not be used 
while a substitution is in effect: ASSIGN, 
BACKUP, DISKCOMP, DISKCOPY, FDISK, 
FORMAT, JOIN, LABEL, and RESTORE. 

8. Type SUBST with no parameters to display the 
current substitutions. The output is displayed in 
this form: 

G: => D:\PATH 

9. The message Invalid Parameter is displayed if: 

You type an incorrect drive specifier 

You try to substitute the default drive 

You specify /D without specifying the drive 
letter 

10. The message Invalid Path is displayed if you 
specify a path that doesn't exist. 



7-174 



SUBST(Substitute) 
Command 



Example: For the following examples, assume: 

• The default drive is drive B 

• The current directory of drive C: is 
C:\REPORTS\FILES 

. LASTDRIVE=H 



C:\ 



REPORTS 



GAMES 



FILES 



Creating a Substitution 

The following example substitutes drive G for the 
path C:\REPORTS\FILES 

b>subst g: c:\reports\files 

If you want to list the directory of 
C:\REPORTS\FILES, you can type: 

B>dir g: 

Remember, the drive specifiers must be less than or 
equal to the value specified for LASTDRIVE in your 
CONFIG.SYS file. For example, in order for drive 
G to be valid, the LASTDRIVE command must be 
greater than or equal to g (LASTDRIVE = g). 



7-175 



SUBST(Substitute) 
Command 



Displaying the Current Substitutions 

The following example displays the current 
substitutions: 

b>subst 

The following is displayed: 

G: => C:\REPORTS\FILES 

The message indicates that drive G: is substituted 
for the path C: \ REPORTS \ FILES. Now when you 
refer to drive G, the directory 
C:\REPORTS\FILES is used. 



7-176 



SUBST(Substitute) 
Command 

Deleting a Substitution 

The following example removes the substitution as it 
appeared in the previous example: 

subst g: /d 



Why Use SUBST? 

Substituting a drive letter for a path can be useful if 
you use applications that do not recognize paths. 
For example, if you want to edit the file RECIPES in 
the directory C:\FOOD\FILES, you can substitute 
the drive letter F for this directory path. Then when 
you want to edit RECIPES use the drive letter F 
instead of the path C: \ FOOD \ FILES. You can 
then refer to the file as F:RECIPES. Remember, 
you must have LASTDRIVE=F to do this 
substitution. 



7-177 



SYS (System) 
Command 



Purpose: 



Format: 
Type: 



Transfers the operating system files IBMDOS.COM 
and IBMBIO.COM from the first drive specified to 
the second drive specified. 

Note: SYS does not transfer the file 
COMMAND.COM. You must copy this file 
into the root directory of the disk. 

[d:][path]SYS d: 

Internal External 

*** 



Remarks: Specify the parameters: 



[d:][path] before SYS to specify the drive and path 
that contains the SYS command file. 

d: to specify the disk drive that you want to transfer 
the operating system files to. 

The directory of the disk in the specified drive must 
be completely empty, or the disk must have been 
formatted by a FORMAT d:/S or FORMAT d:/B 
command to contain directory entries for the DOS 
files IBMBIO.COM and IBMDOS.COM. This is 
necessary because DOS startup requires these files to 
occupy the first two directory entries, and because 
IBMBIO.COM must reside on consecutive sectors 
on the disk. 



7-178 



SYS (System) 
Command 



Notes: 



1 . SYS lets you transfer a copy of the operating 
system files to an application program diskette 
designed to use DOS, but sold without it. In this 
case, the space required for the DOS files has 
already been allocated, although the DOS files 
are not actually present. The SYS command 
transfers the files to the allocated space. 

2. You cannot use the SYS command on a network 
drive. 



7-179 



TIME 
Command 



Purpose: Permits you to enter or change the time known to the 
system. Whenever you create or add to a file, the 
time is recorded in the directory. You can change 
the time from the console or from a batch file. 

Format: TIME [hh:mm\[:ss[.xx]]\ 

Type: Internal External 

*** 



Remarks: Specify the parameters: 



to specify the hours. Type one or two numbers 



hh .. _ r ..__, 

from to 23 for the hours 



mm to specify the minutes. Type one or two 
numbers from to 59 for the minutes. 

ss to specify the seconds. Type one or two numbers 
from to 59 for the seconds. 

xx to specify the hundredths of seconds. Type one 
or two numbers from to 99 for the hundredths of 
seconds. 

Notes: If you type TIME with no parameters, the 
following prompt is displayed: 

Current time is hh:mm:ss.xx 
Enter new time:_ 

To leave the time as-is, press Enter. To change the 
time, type the new time and then press Enter. 

1 . Separate the hours, minutes, and seconds using a 
colon (:) or period (.). Separate the hundredths 



7-180 



TIME 

Command 

of seconds using a period (.) or a comma (,), 
depending on the decimal separator that is 
displayed on the screen. 

2. If you type a valid time, the new time is 
accepted and the DOS prompt is displayed. If 
the time is invalid, the following prompt is 
displayed: 

Invalid time 
Enter new time_ 

3. If you enter any information (for example, just 
the hours and minutes, and press Enter), the 
remaining fields are set to zero. 

4. Any time is acceptable as long as the digits are 
within the defined ranges. 

5. You can change the format of the time by using 
the COUNTRY configuration command. Refer 
to Chapter 4 "Configuring Your System" for 
information on the COUNTRY command. 

6. If you are using an IBM Personal Computer AT, 
changing the time does not change the system 
clock. Refer to your GTO for information on 
the system clock. 



Example: The following example sets the time to 13:55:00.00. 

A>time 

Current time is 00:25:16.65 

Enter new time: 13:55 



7-181 



TREE 
Command 



Purpose: Displays all of the directory paths found on the 
specified drive, and optionally lists the files in the 
root directory and each subdirectory. 

Format: [d:][path]TREE [d:][/F] 

Type: Internal External 

* * * 



Remarks: Specify the parameters: 



Example: 



[d:][path] before TREE to specify the drive and path 
that contains the TREE command file. 

[d:] to specify the drive whose directory paths you 
want to display. If not specified, the default drive is 
used. 

/F to also display the names of files in the root 
directory and in all subdirectories. 

For each directory found, its full path name is 
displayed, along with the names of any directories 
defined within it (these are called subdirectories in 
the output). To pause the screen output, use the 
Pause Screen function or pipe the output to the 
MORE filter. 

The following example lists all the directory paths 
and the names of all files in the root directory and 
each subdirectory on drive B. The output is placed 
in the file TREE.LST in the current directory of 
drive A. 

A>tree b:/f >tree.lst 



7-182 



TREE 
Command 

Following is an example of a directory path listing. 
If the disk called MYDISK in drive A had the 
following directory structure: 





ROOTDIR 




























SOURCE 






LEVEL2 


MYPRO 
MYPRO 


G1.ASM 
G2.ASM 






Nof 






LEVEL3 



MYPROG1.EXE 



7-183 



TREE 
Command 

Then TREE /F would display: 

DIRECTORY PATH LISTING FOR VOLUME MYDISK 

Files: None 

Path: \ SOURCE 

Subdirectories: None 

Files: MYPROG1 ASM 

MYPROG2 .ASM 

Path: \LEVEL2 
Subdirectories: LEVELS 
Files: None 

Path: \LEVEL2\LEVEL3 

Subdirectories: None 

Files: MYPROG1 .EXE 

The following example lists all the directory paths 
and filenames of the root directory and of all 
subdirectories on drive A. The output is sent to the 
printer. 

A>tree a:/f >prn 



7-184 



TYPE 

Command 



Purpose: Displays the contents of the specified file on the 
standard output device. 

Format: TYPE [d:][path]filename[.ext] 

Type: Internal External 



Remarks: The data is unformatted except that tab characters 
are expanded to an 8-character boundary; that is, 
columns 8, 16, 24, etc. 

Notes: 

1 . Use the Print Screen function to print the 
contents of a file as it is displayed. You can also 
redirect the output to a file or the printer. 

2. Text files appear in a legible format; however, 
other files, such as object program files, may 
appear unreadable due to the presence of 
nonalphabetic or nonnumeric characters. 

3. Global filename characters are not allowed in 
the filename or extension. 

Example: The following example displays the file 

MYFILE.ONE on drive B on the standard output 
device. 

A>type b:myf i 1 e.one 



7-185 



VER (Version) 
Command 



Purpose: Displays the DOS version number that you are 

working with on the display screen or the standard 
output device. 

Format: VER 

Type: Internal External 

*** 

Remarks: The DOS version consists of a single-digit major 

version number, followed by a period, followed by a 
two-digit minor version number. 

Example: The following example displays the current DOS 
version number. 

A>ver 



The result is: 

IBM Personal Computer DOS Version 3.10. 

The major version number is 3 and the minor 
version number is 10. 



7-186 



VERIFY 
Command 



Purpose: Verifies that the data written on a disk has been 
correctly recorded. 

Format: VERIFY [ON | OFF] 

Type: Internal External 

*** 

Remarks: VERIFY ON remains on until it is turned off 

through the SET VERIFY System Call or a VERIFY 
OFF command. When ON, DOS performs a verify 
operation following each disk write operation, to 
verify that the data just written can be read without 
error. Because of the extra time required to perform 
the verification, the system runs slower when 
programs write data to disk. 

Typing VERIFY with no parameters displays the 
current state (ON or OFF) of the verify feature. 

Note: VERIFY is not supported with data 
written to a network disk. 

Example: The following example sets VERIFY ON. 

A>verify on 

To display the current state of VERIFY, type: 

A>verify 

The result is: 

VERIFY is on 
A> 



7-187 



VOL (Volume) 
Command 



Purpose: Displays the disk volume label of the specified drive. 

Format: VOL [d:] 

Type: Internal External 

*** 

Remarks: If you do not specify a drive, the default drive is 
assumed. 

Example: To display the volume label of drive A, type: A. 

A>vol 

The result is: 

Volume in drive A is MYDISK 
A> 

If drive A has no label, the result is: 

Volume in drive A has no label 



7-188 



Chapter 8. The Line Editor (EDLIN) 



Contents 

Introduction 8-3 

How to Start the EDLIN Program 8-5 

Editing an Existing File 8-5 

Editing a New File 8-6 

The EDLIN Command Parameters 8-7 

The EDLIN Commands 8-9 

Information Common to All EDLIN 

Commands 8-9 

A (Append Lines) Command 8-11 

C (Copy Lines) Command 8-12 

D (Delete Lines) Command 8-13 

Edit Line Command 8-16 

E (End Edit) Command 8-18 

I (Insert Lines) Command 8-19 

L (List Lines) Command 8-22 

M (Move Lines) Command 8-25 

P (Page) Command 8-26 

Q (Quit Edit) Command 8-27 

R (Replace Text) Command 8-28 

S (Search Text) Command 8-31 



8-1 



T (Transfer Lines) Command 8-34 

W (Write Lines) Command 8-35 



8-2 



Introduction 



This chapter describes how to use the Line Editor 
(EDLIN) program. 

You can use the Line Editor (EDLIN) to create, 
change, and display source files or text files. Source 
files are unassembled programs in source language 
format. Text files appear in a legible format. 

EDLIN is a line text editor that you can use to: 

• Create new source files and save them 

• Update existing files and save both the updated 
and original files 

• Delete, edit, insert, and display lines 

• Search for, delete, or replace text within one or 
more lines 

The text of files created or edited by EDLIN is divided 
into lines of varying length, up to 253 characters per 
line. 

Line numbers are generated and displayed by EDLIN 
during the editing process, but are not actually present 
in the saved file. 



8-3 



When you insert lines, all line numbers following the 
inserted text advance automatically by the number of 
lines inserted. When you delete lines, all line numbers 
following the deleted text decrease automatically by 
the number of lines deleted. Consequently, line 
numbers always go consecutively from 1 through the 
last line number. 

Note: EDLIN erases the original backup copy 
(.BAK) of the file when you issue an E (end edit) 
command, or if the disk space is required during 
the editing session to satisfy a W (write lines) 
command. 



8-4 



How to Start the EDLIN Program 

To start EDLIN, type: 

\d:]\pathEDUN U:]^/?]filenamef.^/!!/RJ 

Editing an Existing File 

If the specified file exists on the designated or default 
drive, the file is loaded into memory until memory is 
75% full. If the entire file is loaded, the following 
message and prompt is displayed: 

End of input file 

You can then edit the file. 

Note: If you have not used the /B parameter, 
EDLIN will stop loading the file when the first 
Ctrl-Z is encountered in the file's text. If you wish 
to edit a file that is known to contain embedded 
Ctrl-Z characters (end-of-file marks), you should 
use the /B parameter. EDLIN then processes the 
entire file regardless of any embedded end-of-file 
marks. 

Notice that the prompt for EDLIN is an asterisk (*). 

If the entire file cannot be loaded into memory, 
EDLIN loads lines until memory is 75% full, then 
displays the * prompt. You can then edit the portion 
of the file that is in memory. 

To edit the remainder of the file, you must write some 
of the edited lines to disk to free memory so that you 
can load unedited lines from disk into memory. Refer 
to the Append Lines and Write Lines commands in 
this chapter for the procedure. 



8-5 



Editing a New File 



If the specified file does not exist on the drive, a new 
file is opened with the specified name. The following 
message and prompt are displayed: 



New file 
* 



Begin creating the file by entering the desired lines of 
text. To begin entering text, enter an I command to 
insert lines. 

When you have completed the editing session, you can 
save the file using the End Edit command. The End 
Edit command is discussed in this chapter in the 
section called "The EDLIN Commands." The new file 
is saved with the filename and extension you specified 
in the EDLIN command when you first opened the 
file. 

Note: If you edit an existing file, when you end 
the edit session with the End Edit command, the 
original file is saved with an extension of .BAK. 
You cannot edit a file with a filename extension 
of .BAK with EDLIN because the system 
assumes it is a backup file. If you find it necessary 
to edit such a file, rename the file to another 
extension; then start EDLIN and specify the new 
name. 



8-6 



The EDLIN Command Parameters 



Parameter 


Definition 


line 


Denotes when you must specify a line 
number. 

There are three possible entries that 
you can make using this parameter: 

1 . Enter a decimal integer from 
1-65529. If you specify a 
number greater than the number 
of lines in memory, the line is 
added after the last line. 

Line numbers must be separated 
from each other by a comma or 
space. 

OR 

2. Enter a pound sign (#) to 
specify the line after the last line 
in memory. Entering a # has the 
same effect as specifying a 
number greater than the number 
of lines in memory. 



8-7 



Parameter 


Definition 


line 


OR 

3. Enter a period (.) to specify the 
current line. 

The current line indicates the 
location of the last change to the 
file, but it is not necessarily the 
last line displayed. The current 
line is marked by an asterisk (*) 
between the line number and 
the first character of text in the 
line. For example: 

10:*FIRST CHARACTER OF TEXT 


n 


Denotes when you must specify lines. 

Enter the number of lines that you 
want to write to disk or load from disk. 

You only use this parameter with the 
Write Lines and Append Lines 
commands. These commands are 
meaningful only if the file to be edited 
is too large to fit in memory. 


string 


Denotes when you must enter one or 
more characters to represent text to be 
found, replaced, deleted, or to replace 
other text. 

You only use this parameter with the 
Search Text and Replace Text 
commands. ] 



8-8 



The EDLIN Commands 



This section describes the EDLIN commands and tells 
how to use them. The commands are in alphabetic 
order, each with its purpose, format and remarks. 
Examples are provided where appropriate. 



Information Common to All EDLIN 
Commands 

The following information applies to all EDLIN 
commands: 

• With the exception of the Edit Line command, all 
commands are a single letter. 

• With the exception of the End Edit and Quit Edit 
commands, commands are usually preceded 
and/or followed by parameters. 

• Enter commands and string parameters in 
uppercase, or lowercase, or a combination of 
both. 

• Separate commands and parameters with 
delimiters for readability; however, a delimiter is 
only required between two adjacent line numbers. 
Remember, delimiters are spaces or commas. 

• Commands become effective only after you press 
the Enter key. 

• Stop commands by pressing the Ctrl-Break keys. 

• For commands producing a large amount of 
output, press Ctrl-Num Lock to suspend the 
display so that you can read it before it scrolls 
away. Press any other character to restart the 
display. 



8-9 



Use the control keys and DOS editing keys, 
described in the DOS User's Guide, while using 
EDLIN. They are very useful for editing within a 
line, while the EDLIN commands can be used for 
editing operations on entire lines. 

The prompt from EDLIN is an asterisk (*). 

It is possible to refer to line numbers relative to 
the current line. Use a minus (-) sign and a 
number to indicate a line before the current line. 
Use a plus (+) sign and a number to indicate a 
line after the current line. For example: 

-10,-s-lOL 

This command displays 1 lines before the 
current line, the current line, and 10 lines after 
the current line. 

Multiple commands can be entered on one 
command line. When you enter the command to 
edit a single line using [line], you must use a 
semicolon to separate the commands on the line. 
In the case of the Search or Replace commands 
the [string] can be terminated by Ctrl-Z (F6) 
instead of the Enter key. Otherwise, one 
command can follow another without any special 
delimiting characters. For example: 

15;-5,+5L 

edits line 15 and then displays lines 10 through 
20 on the screen. 

Control characters can be inserted into the text, 
or can be used in the strings for the Search and 
Replace text commands. To enter a control 
character, press Ctrl-V, then enter the desired 
control character in uppercase. For example, the 
sequence Ctrl-V, followed by Z generates the 
control character Ctrl-Z. 



8-10 



A (Append Lines) 
Command 



Purpose: Adds the specified number of lines from disk to the 
file being edited in memory. The lines are added at 
the end of the current lines in memory. 

Format: [n]A 

Remarks: This command is only meaningful if the file being 
edited is too large to fit in memory. As many lines 
as possible are read into memory for editing when 
you start EDLIN. If you do not specify the number 
of lines, lines are appended to memory until available 
memory is 75% full. No action is taken if available 
memory is already 75% full. 

To edit the remainder of the file that will not fit into 
memory, you must write edited lines in memory to 
disk before you can load unedited lines from disk 
into memory by using the Append Lines command. 
Refer to the Write Lines command for information 
on how to write edited lines to disk. 

The message End of input file is displayed when the 
Append Lines command has read the last line of the 
file into memory. 



8-11 



C (Copy Lines) 
Command 



Purpose: Copies the lines in the specified range to the line 
number specified by the third parameter. The new 
data is placed ahead of the line that was specified in 
the third parameter. This third parameter is not 
optional. The operation is repeated the number of 
times specified in count. 

Format : [ line] , [ line] , line[, count]C 

Remarks: The parameter count defaults to 1. To repeat text, 
specify the number of times the operation is to be 
performed in count. If the first parameter or the 
second parameter is omitted, the default is the 
current line. This effectively copies the current line 
to the specified line. The file is renumbered 
accordingly. The first of the copied lines becomes the 
current line. For example: 

1,5,8C 

copies lines 1 through 5 to line 8. Line 8 becomes 
the current line. 

The line numbers must not overlap or an error is 
reported. Also, the characters - and + are not 
allowed in the count field. 



8-12 



D (Delete Lines) 
Command 



Purpose: Deletes a specified range of lines. 

Format: [line][,line] D 

Remarks: The line following the deleted range becomes the 
current line, even if the deleted range includes the 
last line in memory. The current line and any 
following lines are renumbered. 

If you omit the first parameter, as in: 

,1 ineD 

deletion starts with the current line and ends with 
the line specified by the second parameter. The 
beginning comma is required to indicate the omitted 
first parameter. 

If you omit the second parameter, as in: 

lineD or line,D 

only the one specified line is deleted. If you omit 
both parameters, as in: 

D 

only the current line is deleted, and the line that 
follows becomes the current line. 

Example: Assume that you want to edit the following file. The 
current line is line 22. 



8-13 



D (Delete Lines) 
Command 



This is a sample file used to demonstrate 
line deletion and dynamic 
line number generation. 



20 
21 
22 
23 



See what happens to the lines 
and line numbers when lines are 
^deleted. 
See how easy this is to use. 



If you want to delete a range of lines, from 3-20, 
enter: 

3,20D 

The result is: 



This is a sample file used to demonstrate 
line deletion and dynamic 
*and line numbers when lines are 
deleted. 
See how easy this is to use. 



Lines 3-20 are deleted from the file. Lines 21-23 
are renumbered to 3-5. Line 3 becomes the current 
line. If you want to delete the current and the 
following line, enter: 



,4D 



The result is: 



This is a sample file used to demonstrate 
line deletion and dynamic 
*See how easy this is to use. 



Lines 3 and 4 are deleted from the file. Line 5 is 
renumbered to 3. Line 3 is still the current line, but 
now it has different text. 



8-14 



D (Delete Lines) 
Command 



If you want to delete a single line, say line 2, enter: 

2D 

The result is: 

1: This is a sample file used to demonstrate 
2:*See how easy this is to use. 

Line 2 is deleted. Line 3 is renumbered to 2. The 
new line 2 becomes the current line. If you want to 
delete only the current line, enter: 

D 

The result is: 

l:*This is a sample file used to demonstrate 

The current line, line 2, is deleted. The new line 1 
becomes the current line. 



8-15 



Edit Line 
Command 



Purpose: Allows you to edit a line of text. You must enter the 
line number of the line to be edited, or enter a period 
(.) to indicate the current line. 

Format: [line] 

Remarks: If you just press Enter, you specify that the line after 
the current line is to be edited. The line number and 
its text are displayed and the line number is repeated 
on the line below. 

You can use the control keys and the editing keys, 
described in the DOS User's Guide, to edit the line, 
or you can replace the entire line by typing new text. 
When you press the Enter key, the edited line is 
placed in the file and becomes the current line. 

If you decide not to save the changed line, press 
either Esc or Ctrl-Break instead of Enter. The 
original line remains unchanged. Pressing the Enter 
key with the cursor at the beginning of the line has 
the same effect as pressing Esc or Ctrl-Break. 

If the cursor is in any position other than the 
beginning or the end of a line, pressing Enter erases 
the rest of the line. 

Example: Assume that you want to edit line 6. The following 
display would appear on the screen: 



6: This is a sample unedited line. 
6: 

The first line is your request to edit line 6, followed 
by the two-line display response. 



8-16 



Edit Line 
Command 

If you want to move the cursor to the letter u, press 
F2 and enter: 



The result is: 

*6 
6: This is a sample unedited line. 
6: This is a sample 

If you want to delete the next two characters and 
keep the remainder of the line, press Del twice; then 
press F3. 

The result is: 

*6 
6: This is a sample unedited line. 
6: This is a sample edited line. 

Now you can take one of the following actions: 

• Press Enter to save the changed line. 

• Extend the changed line by typing more text. 
You are automatically in insert mode when the 
cursor is at the end of a line. 

• Press F5 to do additional editing to the changed 
line without changing the original line. 

• Press Esc or Ctrl-Break to cancel the changes 
you made to the line. The original contents of 
the line are preserved. 



8-17 



E (End Edit) 
Command 



Purpose: Ends EDLIN and saves the edited file. 

Format: E 

Remarks: The edited file is saved by writing it to the drive and 
filename specified when you started EDLIN. 

The original file, the one specified when EDLIN was 
started, is given a .BAK filename extension. A 
.BAK file will not be created if there is no original 
file; that is, if you created a new file instead of 
updating an old file during the editing session. 

EDLIN returns to the DOS command processor, 
which displays the command prompt. 

Be sure your disk has enough free space to save the 
entire file. If your disk does not have enough free 
space, only a portion of the file is saved. The portion 
in memory that is not written to disk is lost. In this 
case, your original file is not renamed to .BAK, and 
the portion of data that was written to disk will have 
a filename extension of $$$. 

EDLIN appends a carriage return, line feed sequence 
to the end of the file, if they were not already 
present, to delimit the last line of text in the file. 
Also, a Ctrl-Z character is added as the last character 
in the saved file. This serves as an end-of-file mark. 



8-18 



I (Insert Lines) 
Command 



Purpose: Inserts lines of text immediately before the specified 
line. When you create a new file, you must enter the 
Insert Lines command before text can be inserted. 

Format: [line]\ 

Remarks: If you do not specify line, or if you specify line as a 
period (.), the insert is made immediately before the 
current line. If the line number you specify is greater 
than the highest existing line number, or if you 
specify # as the line number, the insertion is made 
after the last line in memory. 

EDLIN displays the appropriate line number so that 
you can enter more lines, ending each line by 
pressing Enter. During the insert mode of operation, 
successive line numbers appear automatically each 
time Enter is pressed. 

You must press Ctrl-Break to discontinue the insert 
mode of operation. 

The line that follows the inserted lines becomes the 
current line, even if the inserted lines are added to 
the end of the lines in memory. The current line and 
any remaining lines are renumbered. 

Example: Assume that you want to edit the following file. 
Line 2 is the current line. 



This is a sample file used to demonstrate 
*line deletion 
and dynamic line number generation. 



If you want to insert text before line 3, the entry 
and immediate response look like this: 



8-19 



I (Insert Lines) 
Command 



■31 



Now, if you want to insert two new lines of text, 
enter: 

*3 I 

3:*First new line of text 
4:*Second new line of text 
5:* 

and press Ctrl-Break. 

The original line 3 is now renumbered to line 5. 

If you display the file with a List Lines command, the 
file looks like this: 



This is a sample file used to demonstrate 
line deletion 
First new line of text 
Second new line of text 
*and dynamic line number generation. 



8-20 



I (Insert Lines) 
Command 



If the two lines that were inserted had been placed 
at the beginning of the file, the screen would look 
like this: 



First new 1 ine of text 
Second new line of text 
*This is a sample file used to demonstrate 
1 ine deletion 
and dynamic line number generation. 



If the two lines that were inserted had been placed 
immediately before the current line (2 I or . I or I), 
the screen would look like this: 



This is a sample file used to demonstrate 
First new 1 ine of text 
Second new line of text 
* 1 ine deletion 
and dynamic line number generation. 



If the two inserted lines had been placed at the end 
of the file (4 I or # I), the screen would look like 
this: 



This is a sample file used to demonstrate 

line deletion 

and dynamic line number generation. 

First new 1 ine of text 

Second new line of text 



8-21 



L (List Lines) 
Command 



Purpose: Displays a specified range of lines. The current line 
remains unchanged. 

Format: [line][,line]L 

Remarks: Default values are provided if either one or both of 
the parameters are omitted. If you omit the first 
parameter, as in: 

,1 ineL 

the display starts 1 1 lines before the current line and 
ends with the specified line. The beginning comma is 
required to indicate the omitted first parameter. 

Note: If the specified line is more than 1 1 lines 
before the current line, the display is the same as 
if you omitted both parameters. (An example is 
provided in this section showing both 
parameters omitted.) 

If you omit the second parameter, as in: 

lineL or line,L 

a total of 23 lines are displayed, starting with the 
specified line. 

If you omit both parameters, as in: 

L 

a total of 23 lines are displayed-the 1 1 lines before 
the current line, the current line, and the 1 1 lines 
after the current line. If there aren't 1 1 lines before 
the current line, then extra lines are displayed after 
the current line to make a total of 23 lines. 



8-22 



L (List Lines) 
Command 



Example: Assume that you want to edit the following file. 
Line 15 is the current line. 



This is a sample file used to demonstrate 
line deletion and dynamic 
line number generation. 



15:*This is the current line (note the asterisk) 



25 
26 
27 



See what happens to the lines 
and line numbers when lines are 
deleted. 



If you want to display a range of lines, from 3-25, 
enter: 

3,25L 

The screen looks like this: 

3: line number generation. 

15:*This is the current line (note the asterisk) 

25: See what happens to the lines 

If you want to display the first three lines, enter: 

1,3L 

The screen looks like this: 



8-23 



L (List Lines) 
Command 



This is a sample file used to demonstrate 
line deletion and dynamic 
line number generation. 



If you want to display 23 lines of the file, starting 
with line 3, enter: 

3L 

The screen looks like this: 

3: line number generation. 

15:*This is the current line (note the asterisk) 

25: See what happens to the lines 

If you want to display 23 lines centered around the 
current line, enter: 

L 

The screen looks like this: 

4: Fourth 1 ine of text 
5: Fifth line of text 

15:*This is the current line (note the asterisk) 



25: See what happens to the lines 
26: and line numbers when lines are 



8-24 



M (Move Lines) 
Command 



Purpose: Moves the range of lines specified by the first two 
line parameters ahead of the line specified in the 
third line parameter. The third parameter is not 
optional. 

Format: [line],[line],lineM 

Remarks: Use this command to move a block of data from one 
location in the file to another. If the first or second 
line parameter is omitted, it will default to the 
current line. After the move, the first of the moved 
lines becomes the current line. The lines are 
renumbered according to the direction of the move. 
For example: 

,+25,100M 

moves the data from the current line plus 25 lines to 
line 100. If the arguments overfap an entry error is 
reported. 



8-25 



P (Page) 
Command 



Purpose: Lists the specified block of lines. 

Format: [line][,line]P 

Remarks: If the first line parameter is omitted, it defaults to the 
current line plus one. If the second line parameter is 
omitted, 23 lines are listed. The new current line 
becomes the last line displayed by the Page 
command and is marked with an asterisk. This 
command pages through a file displaying 23 lines at a 
time. It differs from the List Lines command in that 
it changes the current line. 



8-26 



Q (Quit Edit) 
Command 



Purpose: Quits the editing session without saving any changes 
you may have entered. 

Format: Q 

Remarks: EDLIN prompts you to make sure you really don't 
want to save the changes. 

Enter Y if you want to quit the editing session. No 
editing changes are saved and no .BAK file is 
created. Refer to the End Edit command for 
information about the .BAK file. 

Enter N, or any other character, if you want to 
continue the editing session. 

Example: When you type the letter Q, the following is 
displayed: 
Q 

Abort edit (Y/N)? 



8-27 



R (Replace Text) 
Command 



Purpose: Replaces all occurrences of the first string in the 
specified range of lines with the second string. 

Notes: 

1 . If you omit the second string, Replace Text 
deletes all occurrences of the first string within 
the specified range of lines. If you omit both 
strings, EDLIN re-uses the search string 
entered with the most recent (previous) S or R 
command, and the Replace Text string entered 
with the last R command. 

2. This command uses the F6 key as normally 
setup by DOS. If you have changed the meaning 
of the F6 key through "Extended Keyboard 
Control" (see Chapter 3 of the DOS Technical 
Reference manual), you should press Ctrl-Z 
where F6 is referred to below. 

EDLIN displays the changed lines each time they are 
changed. The last line changed becomes the current 
line. 

Format: [line][,line] [?]R[string][<F6> string] 

Remarks: You can specify the optional parameter ? to request a 
prompt (O.K.?) after each display of a modified line. 
Press Y or the Enter key if you want to keep the 
modification. 

Enter any other character if you don't want the 
modification. In either case, the search continues for 
further occurrences of the first string within the 
range of lines, including multiple occurrences within 
the same line. 



8-28 



R (Replace Text) 
Command 



Defaults occur if either one or both of the line 
parameters are missing. 

If you omit the first line, the search begins with the 
line after the current line. If you omit the second 
line, the search ends with the last line in memory. If 
you omit both line parameters, the system searches 
from the line following the current line to the last 
line in memory. 

Note: The first string begins with .the character 
in the position immediately following the R, and 
continues until you press F6 or Ctrl-Z (or the 
Enter key if the second string is omitted). 

The second string begins immediately after you 
press F6 or Ctrl-Z and continues until you press 
Enter. 

Example: Assume that you want to edit the following file. 
Line 7 is the current line. 



This is a sample file 
used to demonstrate 
the Replace and Search Text commands 
This includes the 
optional parameter ? 
and required string 
*parameter. 



8-29 



R (Replace Text) 
Command 



To replace all occurrences of and with or in the lines 
in memory, enter: 

I ,7 Rand 

Then press F6, type or, and press Enter. 

The result is: 



the Replace or Search Text commands 
the Replace or Search Text commors. 
or required string 



Line 6 becomes the current line in the file, because 
line 6 was the last line changed. Notice that lines 1 , 
2, 4, 5, and 7 are not displayed because they were 
not changed. 

Greater selectivity can be achieved by requesting a 
prompt (by using the ? parameter) after each display 
of a modified line. If you request a prompt, the 
screen looks like this: 

*1,7 ? Rand (Press F6 , type or, and press Enter) 
3: the Replace or Search Text commands 

O.K.? Y 

3: the Replace or Search Text commors 

O.K.? N 

6: or required string 

O.K.? Y 

Lines 3 and 6 are displayed like this: 

3: the Replace or Search Text commands. 
6: or required string 



8-30 



S (Search Text) 
Command 



Purpose: Searches a specified range of lines in order to locate 
a specified string. 

Format: [line][,line] [^[string] 

Remarks: The first line to contain the specified string is 

displayed and the search ends (unless you use the ? 
parameter). The first line found that contains the 
specified string becomes the current line. 

Note: The Search command always searches for 
the exact same character in text. That is, it 
searches for UPPERCASE if you enter 
UPPERCASE, and lowercase if you enter 
lowercase. 

You should specify the optional parameter ? if you 
would like a prompt (O.K.?) after each display of a 
line containing the specified string. 

If you do not enter a string, the S command uses the 
last search string entered on a Replace or Search 
command. If the specified string is not found, the 
search ends and the message Not found is displayed. 
The current line remains unchanged. If you enter Y 
or press the Enter key, the line that matches the 
specified string becomes the current line and the 
search ends. Enter any other character to continue 
the search until another string is found, or until all 
lines within the range are searched. Once all the 
lines within the range are searched, the Not found 
message is displayed. 

The system provides default values if you omit the 
first, second, or both line parameters. If you omit 
the first line parameter, the system defaults to the 



8-31 



S (Search Text) 
Command 



line following the current line. If you omit the 
second line parameter, the system defaults to the last 
line in memory. If you omit both line parameters, 
the system searches from the line following the 
current line to the last line in memory. 

Notes: 

1 . The string begins with the character in the 
position immediately following the S and 
continues until you end the string by pressing 
the Enter key. 

2. If you wish to place more than one command on 
a line containing a Search Text command, the 
Search Text command should end in a Ctrl-Z 
(F6), and the next command should begin in the 
following character position. 



Example: Assume that you want to edit the following file. 
Line 7 is the current line. 



This is a sample file 
used to demonstrate 
the Search Text command, 
This includes the 
optional parameter ? 
and required string 
'parameter. 



If you want to search for the first occurrence of and 
in the file, enter: 

1,7 Sand 

or 
1 , Sand 

or 
ISand 



8-32 



S (Search Text) 
Command 



The result is: 

3: the Search Text command. 



The and is part of the word command. Notice that 
line 3 becomes the current line in the file. 

Perhaps this is not the and you were looking for. To 
continue the search, simply enter the letter S and 
press Enter. The search continues with the line 
following the current line (the line just found). 

The screen looks like this: 

*1,7 Sand 

3: the Search Text command. 
*S 

6: and required string 



Line 6 now becomes the current line in the file. 

You can also search for strings by requesting a 
prompt (by means of the ? parameter) after each 
display of a matching line. In this case, the screen 
looks like this: 

*1,7 ? Sand 

3: the Search Text command. 
O.K.? N 

6: and required string 
O.K.? Y 



8-33 



T (Transfer Lines) 
Command 



Purpose: Transfers (merges) the contents of a specified file 
into the file currently being edited. 

Format: [line]T:[d:]filename 

Remarks: The filename contents are inserted ahead of the line 
in the file being edited. If line is omitted, the current 
line is used. 

Note: The file being merged is read from the 
current directory of the specified or default 
drive. If a path was specified when you issued 
the EDLIN command, that path becomes the 
current directory for that drive for the duration 
of the EDLIN session, and any Transfer Lines 
commands for that drive must be satisfied from 
the same directory. 



8-34 



W (Write Lines) 
Command 



Purpose: Writes a specified number of lines to disk from the 
lines being edited in memory. Lines are written 
beginning with line number 1 . 

Format: [n]W 

Remarks: This command is only meaningful if the file you are 
editing is too large to fit in memory. When you start 
EDLIN, it reads lines into memory until memory is 
75% full. 

To edit the remainder of the file not in memory, you 
must write edited lines in memory to disk. Then you 
can load additional unedited lines from disk into 
memory by using the Append Lines command. 

Note: If you do not specify the number of lines, 
lines are written until 25 % of available memory 
is used. No action is taken if available memory 
is already less than 25 % used. All lines are 
renumbered so that the first remaining line 
becomes number 1 . 



8-35 



Notes: 



8-36 



Chapter 9. The Linker (LINK) Program 



Contents 

Introduction 9-3 

Files 9-4 

Input Files 9-4 

Output Files 9-5 

VM.TMP (Temporary File) 9-5 

Definitions 9-6 

Segment 9-6 

Group 9-7 

Class 9-7 

Command Prompts 9-7 

Detailed Descriptions of the Command Prompts . . 9-9 

Object Modules [.OBJ]: 9-9 

Run File [filename.EXE]: 9-10 

List File [NUL.MAP]: 9-10 

Libraries [.LIB]: 9-12 

Linker Parameters 9-14 

/DSALLOCATION 9-14 

/HIGH 9-14 

/LINE 9-15 

/MAP 9-15 

/PAUSE 9-15 

/STACK:size 9-16 

/X 9-16 

/O 9-17 

How to Start the Linker Program 9-17 

Before You Begin 9-17 

Option 1 - Console Responses 9-17 

Option 2 - Command Line 9-18 

Option 3 - Automatic Responses 9-21 



9-1 



Example Linker Session 9-23 

How to Determine the Absolute Address of a 
Segment 9-26 

Messages 9-27 



9-2 



Introduction 



The linker (LINK) program: 

• Combines separately produced object modules 

• Searches library files for definitions of unresolved 
external references 

• Resolves external cross-references 

• Produces a printable listing that shows the 
resolution of external references and error 
messages 

• Produces a relocatable load module 

The LINK program resides on your DOS 
Supplemental Program Diskette. This chapter shows 
you how to use LINK. Read all of this chapter before 
you start LINK. 



9-3 



Files 



The linker processes input, output, and temporary 
files. 



Input Files 



Type 


Default 
.ext 


Override 
.ext 


Produced by 


Object 


.OBJ 


Yes 


Compiler 1 or 
MACRO Assembler 


Library 


.LIB 


Yes 


Compiler and user 


Automatic 
Response 


(None) 


N/A* 


User 



Figure 9-1 Input Files Used by the Linker 



r N/A - Not applicable, 



1 One of the optional compiler packages available for use with the IBM 
Personal Computer DOS. 



9-4 



Output Files 



Type 


Default 
.ext 


Override 
.ext 


Used by 


Listing 
Run 


.MAP 
.EXE 


Yes 

No 


User 

Relocatable loader 
(COMMAND.COM) 



Figure 9-2 



Output Files Used by the Linker 



VM.TMP (Temporary File) 



LINK uses as much memory as is available to hold the 
data that defines the load module being created. If the 
module is too large to be processed with the available 
amount of memory, the linker may need additional 
memory space. If this happens, a temporary file called 
VM.TMP is created on the DOS default drive. 

When the overflow to the VM.TMP file has begun, the 
linker displays the following message: 

VM.TMP has been created 

Do not change diskette in drive x 

If the VM.TMP file has been created on diskette, you 
should not remove the diskette until LINK ends. 
When LINK ends, it erases the VM.TMP file. 

If the DOS default drive already has a file by the name 
of VM.TMP, it is deleted by LINK and a new file is 



9-5 



allocated; the contents of the previous file are 
destroyed. Therefore, you should avoid using 
VM.TMP as one of your own filenames. 



Definitions 



Segment, group, and class are terms that appear in this 
chapter and in some of the messages in Appendix A. 
These terms describe the underlying function of 
LINK. An understanding of the concepts that define 
these terms provides a basic understanding of the way 
LINK works. 



Segment 



A segment is a contiguous area of memory up to 64K 
bytes in length. A segment may be located anywhere 
in memory on a paragraph (16-byte) boundary. Each 
of the four segment registers defines a segment. The 
segments can overlap. The contents of a segment are 
addressed by a segment register/offset pair. 

The contents of various portions of the segment are 
determined when machine language is generated. 

Neither size nor location is necessarily fixed by the 
compiler or assembler because this portion of the 
segment may be combined at link time with other 
portions forming a single segment. 

A program's ultimate location in memory is 
determined at load time by the relocation loader 
facility provided in COMMAND.COM, based on 
whether you specified the /HIGH parameter. The 
/HIGH parameter is discussed later in this chapter. 



9-6 



Group 



Class 



A group is a collection of segments that fit together 
within a 64K byte segment of memory. The segments 
are named to the group by the assembler or compiler. 
A program may consist of one or more groups. 

The group is used for addressing segments in memory. 
The various portions of segments within the group are 
addressed by a segment base pointer plus an offset. 



A class is a collection of segments. The naming of 
segments to a class affects the order and relative 
placement of segments in memory. The class name is 
specified by the assembler or compiler. All portions 
assigned to the same class name are loaded into 
memory contiguously. 

The segments are ordered within a class in the order 
that the linker encounters the segments in the object 
files. One class precedes another in memory only if a 
segment for the first class precedes all segments for 
the second class in the input to LINK. Classes are not 
restricted in size. 



Command Prompts 



After you start the linker session, you receive a series 
of four prompts. You can respond to these prompts 
from the keyboard, on the command line, or by using a 
special diskette file called an automatic response file. 
An example of an automatic response file is provided 
in this chapter. 



9-7 



LINK prompts you for the names of the object, run, 
list, and library files. When the session is finished, 
LINK returns to DOS and the DOS prompt is 
displayed. If linking is unsuccessful, LINK displays a 
message. 



The prompts are described in order of their 



ippearance on the screen. Defaults are sho\vu m 



' VV 1A 



square brackets ([ ]) after the prompt. In the response 
column of the table, square brackets indicate optional 
entries. Object Modules is the only prompt that 
requires a response from you. 



PROMPT 


RESPONSE 


Object Modules [.OBJ]: 


[d: ][path]filename[.ext] 

[ + • [d: ] [path]filename[ 
.ext]]... 


Run File [filename.EXE]: 


[ d: ] [path] [filename[ . ext] ] 


List File [NUL.MAP]: 


[d:][path][filename[.ext]] 


Libraries [.LIB]: 


[d:][ [path]filename[ . ext] ] 

[+.[d: ] [[paihlfilename 
[.ext]]]... 



Notes: 

1 . If you enter a filename without specifying the 
drive, the default drive is assumed. If you enter a 
filename without specifying the path, the default 
path is assumed. The libraries prompt is an 
exception-the linker will look for the libraries on 
the default drive and if not found, look on the 
drive specified by the compiler. 

2. You can end the linker session prior to its normal 
end by pressing Ctrl-Break. 



9-8 



Detailed Descriptions of the Command 
Prompts 



The following detailed descriptions contain 
information about the responses that you can enter to 
the prompts. 



Object Modules [.OBJ]: 



Enter one or more file locations for the object 
modules to be linked. Multiple file locations must be 
separated by single plus (+) signs or blanks. If the 
extension is omitted from any filename, LINK 
assumes the filename extension .OBJ. If an object 
module has a different filename extension, the 
extension must be specified. Object filenames can not 
begin with the @ symbol ( @ is reserved for using an 
automatic response file). 

LINK loads segments into classes in the order 
encountered. 

If you specify an object module on a diskette drive, 
but LINK cannot locate the file, it displays the 
following prompt: 

Cannot find file object module 
change diskette <press ENTER> 

If you specify an object module on a non-removable 
media (like a fixed disk), the linker session ends with 
the following message: 

Cannot find file object module 

You should insert the diskette containing the 
requested module. This permits .OBJ files from 
several diskettes to be included. On a single-drive 
system, diskette exchanging can be done safely only if 



9-9 



VM.TMP has not been opened. As explained in the 
discussion of the VM.TMP file earlier in this chapter, 
a message will indicate if VM.TMP has been opened. 

Important: If a VM.TMP file has been opened on a 
diskette, you should not remove the diskette containing 
the VM.TMP file. 

After a VM.TMP file has been opened, if you 
specified an object module on the same disk that 
VM.TMP is on and LINK cannot find it, the linker 
session ends with the message: 

Cannot find file object module 



Run File [fiIename.EXE]: 

The file specification you enter is created to store the 
run (executable) file that results from the LINK 
session. All run files receive the filename extension 
.EXE, even if you specify another extension. If you 
specify another extension, it is ignored. 

The default filename for the run file prompt is the first 
filename specified on the object module prompt. 

You can specify just a drive letter, or a path on the run 
file prompt. This changes the place where the run file 
fiIename.EXE is placed. 



List File [NUL.MAP]: 

The linker list file is sometimes called the linker map. 

The list file is not created unless you specifically 
request it. You can request it by overriding the default 
with a drive letter, path, or filename[.ext]. If you do 
not include a filename extension, the default extension 
.MAP is used. If you do not enter anything, the DOS 
reserved filename NUL specifies that no list file is 
created. 



9-10 



The list file contains an entry for each segment in the 
input (object) modules. Each entry also shows the 
offset (addressing) in the run file. 

You can specify just a drive letter or a path on the list 
file prompt. This changes the place where the list file 
is placed. 

Important: If the list file is allocated to a file on 
diskette, that diskette must not be removed until the 
LINK has ended. 

Note: There is one exception. If /P is specified, 
the diskette containing the list file may be 
removed while the .EXE file is being written. 
The linker prompts you to put back the diskette 
containing the list file when it finishes writing the 
.EXE file. 

If you specify an object module on the same diskette 
drive as the diskette drive to which the list file is 
allocated, and LINK cannot find the object module, 
the linker session ends with the message: 

Cannot find file object module 

To avoid generating the list file on a diskette, you can 
specify the display or printer as the list file device. 
For example: 

List File [NUL.MAP]: CON 

If you direct the output to your display, you can also 
print a copy of the output by pressing Ctrl-PrtSc. 



9-11 



Libraries [.LIB]: 



You may either list the file locations for your libraries, 
or just press the Enter key. If you press the Enter key, 
LINK defaults to the library provided as part of the 
Compiler package. 

T1ip> T TXTl<r nrrxarum Inolrc fr»r thf* Cf\mr\Ue±r r^Qplroop 

library on the default drive. If it cannot find the library 
there, it looks for the library on the drive specified by 
the Compiler package. For linking objects from just 
the MACRO Assembler, there is no automatic default 
library search. 

If you answer the library prompt, you specify a list of 
drive letters and \path\filename .ext separated by plus 
signs (+) or spaces. You can enter from 1 to 16 
library file locations. Specifying a drive letter tells 
linker to look on that drive instead of the Compiler 
package supplied drive for all subsequent libraries on 
the library prompt. The automatically searched library 
file specifications are conceptually placed at the end of 
the response to the library prompt. 

LINK searches the library files in the order they are 
listed to resolve external references. When LINK 
finds the module that defines the external symbol, the 
module is processed as another object module. 

If two or more libraries have the same filename, 
regardless of the location, only the first library in the 
list is searched. 

When LINK cannot find a library file, it displays a 
message like this: 

Cannot find library A:library file 
Enter new drive letter: 

The drive that the indicated library is located on must 
be entered. 



9-12 



The following library prompt responses may be used: 

Libraries [.LIB]: B: 

Look for compiler. LIB on drive B. 

Libraries [.LIB]: B:USERLIB 

Look for USERLIB.LIB on drive B and 
compiler.LIB on drive A. 

Libraries [.LIB]: A:LIB1+LIB2+B:LIB3+A: 

Look for LIB 1. LIB and LIB2.LIB on 
drive A, LIB3.LIB on drive B, and 
compiler.LIB on drive A. 



9-13 



Linker Parameters 



At the end of any of the four linker prompts, you may 
specify one or more parameters that instruct the linker 
to do something differently. Only the / and first letter 
of any parameter are required. 



/DSALLOCATION 

The /DSALLOCATION (/D) parameter directs 
LINK to load all data defined to be in DGROUP at 
the high end of the group. If the /HIGH parameter is 
specified, (module loaded high), any available storage 
below the specifically allocated area within DGROUP 
is allocated dynamically by your application. It still is 
addressable by the same data space pointer. 

Note: The maximum amount of storage which 
can be dynamically allocated by the application is 
64K-bytes (or the amount actually available) 
minus the allocated portion of DGROUP. 

If the /DSALLOCATION parameter is not specified, 
LINK loads all data defined to be in the group whose 
group name is DGROUP at the low end of the group, 
beginning at an offset of 0. The only storage thus 
referenced by the data space pointer should be that 
specifically defined as residing in the group. 

All other segments of any type in any GROUP other 
than DGROUP are loaded at the low end of their 
respective groups, as if the /DSALLOCATION 
parameter were not specified. 

For certain compiler packages, /DSALLOCATION is 
automatically used. 



/HIGH 

The /HIGH (/H) parameter causes the loader to 
place the run image as high as possible in storage. If 



9-14 



you specify the /HIGH parameter, you tell the linker 
to cause the loader to place the run file as high as 
possible without overlaying the transient portion of 
COMMAND.COM, which occupies the highest area 
of storage when loaded. If you do not specify the 
/HIGH parameter, the linker directs the loader to 
place the run file as low in memory as possible. 

The /HIGH parameter is used with the 
/DSALLOCATION parameter. 



/LINE 

For certain IBM Personal Computer language 
processors, the /LINE (/L) parameter directs LINK 
to include the line numbers and addresses of the 
source statements in the input modules in the list file. 



/MAP 

The /MAP (/M) parameter directs LINK to list all 
public (global) symbols defined in the input modules. 
For each symbol, LINK lists its value and 
segment-offset location in the run file. The symbols 
are listed at the end of the list file. 



/PAUSE 

The /PAUSE (/P) parameter tells LINK to display a 
message to you as follows: 

About to generate .EXE file 
Change disks <press ENTER> 

This message allows you to insert the diskette that is 
to contain the run file. 



9-15 



/STACKisize 

The size entry is any positive decimal value up to 
65536 bytes. This value is used to override the size of 
the stack that the MACRO Assembler or compiler has 
provided for the load module being created. If the size 
of the stack is too small, the results of executing the 
resulting load module are unpredictable. 

If you do not specify /STACK (/S), the orginal stack 
size provided by the MACRO Assembler or compiler 
is used. This parameter can be used to reduce the 
stack size provided by the application only if the 
original stack has uninitialized data. In any case, it 
may increase the stack up to the 64K limit. 

If the stack size is an odd number, either on the /S 
parameter or in the application's definition of the 
stack, LINK subtracts one to force the stack words to 
be on an even boundary for better efficiency when 
running on the 80286. 

At least one input (object) module must contain a 
stack allocation statement, unless you plan to use the 
EXE2BIN program. This is automatically provided by 
compilers. For the MACRO Assembler, the source 
must contain a SEGMENT command that has the 
combine type of STACK. If a stack allocation 
statement was not provided, LINK returns the 
message Warning: No Stack statement. 



/x 

Use the /X parameter at runtime to adjust the total 
number of segments that an .EXE file can contain. 
You can vary the limit from to 1024. The default is 
256 segments. This limit represents the number of 
distinct segments from all sources (object files and 
libraries) that the .EXE may contain. 

Although the limit on the total number of segments 
may be set as high as 1024, the limit on the total 



9-16 



number of segments that are not absolute segments is 
1000. For a definition of absolute segments, see the 
assembler manual. 



/o 



To link object modules created by version 1 of the 
Pascal compiler or version 1 of the FORTRAN 
compiler using the 2.30 linker, specify the /O (old) 
switch. 



How to Start the Linker Program 



Before You Begin 



• Make sure the files you use for linking are on the 
appropriate disks. 

• Make sure you have enough free space on your 
disks to contain your files and any generated data. 

You can start the linker program by using one of three 
options: 



Option 1 - Console Responses 

From your keyboard, type: 

LINK 

The linker is loaded into memory and displays a series 
of four prompts, one at a time, to which you must 
enter the requested responses. (Detailed descriptions 
of the responses that you can make to the prompts are 
discussed in this chapter.) 



9-17 



If you enter a wrong response, such as an incorrectly 
spelled filename, you must press Ctrl-Break to exit 
LINK, then restart LINK. If the response in error has 
been typed but you haven't pressed Enter yet, you can 
delete the wrong characters (on that line only). 

An example of a linker session using the console 
response option is provided in this chapter in the 
section called "Example Linker Session." 

As soon as you have entered the last filename, the 
linker begins to run. If the linker finds any errors, it 
displays the errors on the screen as well as in the 
listing file. 

Note: After any of these responses, before 
pressing Enter, you can continue the response 
with a comma and the answer to what would be 
the next prompt, without having to wait for that 
prompt. If you end any with the semicolon (;), 
the remaining responses are all assumed to be the 
default. Processing begins immediately with no 
further prompting. 



Option 2 - Command Line 

From your keyboard, type: 

LINK objlist, runfile, map file, liblist [parm ]...; 

objlist is a list of object modules separated by 
spaces or plus signs ( + )• 

run file is the name you want to give the run file. 

map file is the name you want to give the linker map. 

liblist is a list of the libraries to be used, separated 
by plus signs ( + ) or spaces. 

parm is an optional linker parameter. Each 

parameter must begin with a slash (/). 



9-18 



The linker is loaded and immediately performs the 
tasks indicated by the command line. 

When you use this command line, the prompts 
described in Option 1 are not displayed if you 
specified an entry for all four files or if the command 
line ends with a semicolon. 

If an incomplete list is given and no semicolon is used, 
the linker prompts for the remaining unspecified files. 

Each prompt displays its default, which is accepted by 
pressing the Enter key, or overridden with an explicit 
filename or device name. However, if an incomplete 
list is given and the command line is terminated with a 
final semicolon, the unspecified files default without 
further prompting. The parms are never prompted for, 
but may be added to the end of the command line or 
to any file specification given in response to a prompt. 

Certain variations of this command line are permitted. 

Examples: 

LINK module 

The object module is MODULE.OBJ. A 
prompt is given, showing the default of 
MODULE.EXE. After the response is 
entered, a prompt is given showing the 
default of NUL.MAP. After the response 
is given, a prompt is displayed showing 
the default extension of .LIB. 

LINK module; 

If the semicolon is added, no further 
prompts are displayed. The object 
module of MODULE.OBJ is linked, the 
run file is put into MODULE.EXE, and 
no list file is produced. 



9-19 



LINK module,,; 

This is similar to the preceding example, 
except the list file is produced in 
MODULE.MAP. 

LINK module,, 

Using the same example, but without the 
semicolon, MODULE. OBJ is linked, and 
the run file is produced in 
MODULE.EXE, but a prompt is given 
with the default of MODULE.MAP. 

LINK module„NUL; 

No list file is produced. The run file is in 
MODULE.EXE. No further prompts are 
displayed. 



9-20 



Option 3 - Automatic Responses 

It is often convenient to save responses to the linker 
for use at a later time. This is especially useful when 
long lists of object modules need to be specified. 

Before using this option, you must create the 
automatic response file. It contains several lines of 
text, each of which is the response to a linker prompt. 
These responses must be in the same order as the 
linker prompts that were discussed earlier in this 
chapter. If desired, a long response to the object 
module or libraries prompt may be contained on 
several lines by using a plus sign (+) to continue the 
same response onto the next line. 

To specify an automatic response file, you enter a file 
specification preceded by an @ symbol in place of a 
prompt response or part of a prompt response. The 
prompt is answered by the contents of the diskette 
file. The file specification cannot be a reserved DOS 
filename. 

From your keyboard, type: 



LINK @[d:][path\filename\[ext] 

Use of the filename extension is optional and can be 
any name. There is no default extension. 

Use of this option permits the command that starts 
LINK to be entered from the keyboard or within a 
batch file without requiring any response from you. 



9-21 



Example 

Automatic Response File - RESP1 

M0DA+M0DB+M0DC+ 
MODD+MODE+MODF 

Automatic Res n onse hi !e - RLSP2 

runf i le/p 
printout 

Command line 

LINK @RESPl+mymod,@RESP2; 

Notes: 

1. The plus sign at the end of the first line in RESP1 
causes the modules listed in the first two lines to 
be considered as the input object modules. After 
reading RESP1, the linker returns to the 
command line and sees +mymod, so it includes 
MYMOD.OBJ in the first list of object modules 
as well. 

2. Each of the above lines ends when you press the 
Enter key. 



9-22 



Example Linker Session 

This example shows you the type of information that 
is displayed during a linker session. 

When you type: 

b:link 

in response to the DOS prompt, the system responds 
with the following messages and prompts, which you 
answer as shown: 



IBM Personal Computer Linker 

Version 2.30 (C)Copyright IBM Corp. 1981, 1982, 1983, 1984 

Object Modules [.OBJ]: example 
Run File [EXAMPLE.EXE]: /map 
List File [NUL.MAP]: prn/line 
Libraries [.LIB]: 



Notes: 

1 . By specifying /map, you get both an alphabetic 
listing and a chronological listing of public 
symbols. 

2. By responding prn to the list file prompt, you send 
your output to the printer. 

3. By specifying the /LINE parameter, LINK gives 
a listing of all line numbers for all modules. (The 
/LINE parameter can generate a large amount of 
output.) 

4. By just pressing Enter in response to the libraries 
prompt, an automatic library search is performed. 



9-23 



Once LINK locates all libraries, the linker map 
displays a list of segments in the relative order of their 
appearance within the load module. The list looks like 
this: 

Start Stop Length Name Class 

00000H 00028H 0029H matnoo 
00030H 000F6H 00C7H 
00100H 00100H 0000H 
00100H 038D3H 37D4H 
038D4H 04921H 104EH 



074A0H 074A0H 0000H 
074A0H 074A0H 0000H 
074A0H 0759FH 0100H 
075A0H 07925H 0386H 
07930H 082A9H 097AH 



mat win 




CODE 


ENTXQQ 




CODE 


INIXQQ 




CODE 


FILVQQ 


CODE 


CODE 


FILUQQ_ 


_C0DE 


CODE 


HEAP 




MEMORY 


MEMORY 




MEMORY 


STACK 




STACK 


DATA 




DATA 


CONST 




CONST 



The information in the Start and Stop columns shows 
a 20-bit hex address of each segment relative to 
location zero. Location zero is the beginning of the 
load module. The addresses displayed are not the 
absolute addresses of where these segments are 
loaded. To find the absolute address of a segment, 
you must determine where the segment listed as being 
at relative zero is actually loaded; then add the 
absolute address to the relative address shown in the 
linker map. The procedure used to determine where 
relative zero is actually located is discussed in this 
chapter, in the section called "How to Determine the 
Absolute Address of a Segment." 



9-24 



Because you specified the /MAP parameter, the 
public symbols are displayed by name and by value. 
For example: 



Address 


Publ ics 


by 


Name 


0492:0003H 


ABSNQQ 






06CD:029FH 


ABSRQQ 






0492:00A3H 


ADDNQQ 






06CD:0087H 


ADDRQQ 






0602:000FH 


ALLHQQ 






0010:1BCEH 


WT4VQQ 






0010 


1D7EH 


WTFVQQ 






0010 


1887H 


WTIVQQ 






0010 


19E2H 


WTNVQQ 






0010 


11B2H 


WTRVQQ 






Address 


Publics 


by 


Value 


0000:0001H 


MAIN 






0000 


0010H 


ENTGQQ 






0000 


0010H 


MAINQQ 






0003 


0000H 


BEGXQQ 






0003 


0095H 


ENDXQQ 






F82B.-F31CH 


CRCXQQ 






F82B:F31EH 


CRDXQQ 






F82B:F322H 


CESXQQ 






F82B:F5B8H 


FNSUQQ 






F82B 


F5E0H 


OUTUQQ 







9-25 



The addresses of the public symbols are in the 
segment. -off set format, showing the location relative to 
zero as the beginning of the load module. In some 
cases, an entry may look like this: 

F8CC-.EBE2H 

This entry appears to be the address of a load module 
that is almost 1 megabyte in size. Actually, the area 
being referenced is relative to a segment base that is 
pointing to a segment below the relative zero 
beginning of the load module. This condition 
produces a pointer that has effectively gone negative. 
The memory map that follows illustrates this point. 

When LINK has completed, the following message is 
displayed: 

Program entry point at 0003:0000 



How to Determine the Absolute Address of a 
Segment 

The linker map displays a list of segments in the 
relative order of their appearance within the load 
module. The information displayed shows a 20-bit 
hex address of each segment relative to location zero. 
The addresses displayed are not the absolute addresses 
where these segments are located. To determine 
where relative zero is actually located, you must use 
DEBUG. DEBUG is described in detail in Chapter 12 
of the DOS Technical Reference. 

Using DEBUG, 

1 . Load the application. Note the segment value in 
CS and the offset within that segment to the entry 
point as shown in IP. The last line of the linker 



9-26 



map also describes this entry point, but uses 
relative values, not the absolute values shown by 
CS and IP. 

2. Subtract the relative entry as shown at the end of 
the map listing from the CS:IP value. For 
example, let's say CS is at 05DC and IP is at zero. 

The linker map shows the entry point at 
0100:0000. (0100 is a segment ID or paragraph 
number; 0000 is the offset into that segment.) 

In this example, relative zero is located at 
04DC:0000, which is 04DC0 absolute. 

If a program is loaded low, the relative zero location is 
located at the end of the Program Segment Prefix, in 
the location DS plus 100H. 



Messages 



All messages, except for the warning messages, cause 
the LINK session to end. Therefore, after you locate 
and correct a problem, you must rerun LINK. 

Messages appear both in the list file and on the display 
unless you direct the list file to CON, in which case 
the display messages are suppressed. 

All of the linker messages are included in Appendix A. 



9-27 



Notes: 



9-28 



Chapter 10. DEBUG Program 



Contents 

Introduction 10-3 

How to Start the DEBUG Program 10-4 

The DEBUG Command Parameters 10-6 

The DEBUG Commands 10-13 

Information Common to All DEBUG 

Commands 10-13 

A (Assemble) Command 10-15 

C (Compare) Command 10-19 

D (Dump) Command 10-20 

E (Enter) Command 10-23 

F (Fill) Command 10-26 

G (Go) Command 10-27 

H (Hexarithmetic) Command 10-30 

I (Input) Command 10-31 

L (Load) Command 10-32 

M (Move) Command 10-35 

N (Name) Command 10-36 

O (Output) Command 10-38 

P (Proceed) Command 10-39 



10-1 



Q (Quit) Command 10-40 

R (Register) Command 10-41 

S (Search) Command 10-46 

T (Trace) Command 10-47 

U (Unassemble) Command 10-49 

W (Write) Command 10-52 



10-2 



Introduction 



This chapter explains how to use the DEBUG 
program. 

The DEBUG program can be used to: 

• Provide a controlled testing environment so you 
can monitor and control the execution of a 
program to be debugged. You can fix problems in 
your program directly, and then execute the 
program immediately to determine if the problems 
have been resolved. You do not need to 
reassemble a program to find out if your changes 
worked. 

• Load, alter, or display any file. 

• Execute object files. Object files are executable 
programs in machine language format. 



10-3 



How to Start the DEBUG Program 

To start DEBUG, type: 

DEBUG [d:][path][filename[.ext]][parml][parm2] 

If you enter filename, the DEBUG program loads the 
specified file into memory. You may now type 
commands to alter, display, or execute the contents of 
the specified file. 

If you do not enter a filename, you must either work 
with the present memory contents, or load the 
required file into memory by using the Name and Load 
commands. Then you can type commands to alter, 
display, or execute the memory contents. 

The optional parameters, parm 1 and parm2 , represent 
the optional parameters for the named filespec. For 
example, 

DEBUG DISKC0MP.COM A: B: 

In this command, the A: and B: are the parameters 
that DEBUG prepares for the DISKCOMP program. 

When the DEBUG program starts, the registers and 
flags are set to the following values for the program 
being debugged: 

• The segment registers (CS, DS, ES, and SS) are 
set to the bottom of free memory; that is, the first 
segment after the end of the DEBUG program. 

• The Instruction Pointer (IP) is set to hex 0100. 

• The Stack Pointer (SP) is set to the end of the 
segment, or the bottom of the transient portion of 
the program loader, whichever is lower. The 
segment size at offset 6 is reduced by hex 100 to 
allow for a stack that size. 



10-4 



• The remaining registers (AX, BX, CX, DX, BP, 
SI, and DI) are set to zero. However, if you start 
the DEBUG program with a filespec, the CX 
register contains the length of the file in bytes. If 
the file is greater than 64K, the length is 
contained in registers BX and CX (the high 
portion in BX). 

• The initial state of the flags is: 

NV UP EI PL NZ NA PO NC 

• The default disk transfer address is set to hex 80 
in the code segment. 

All of available memory is allocated; therefore, any 
attempt by the loaded program to allocate memory 
fails. 

Notes: 

1 . If a file loaded by DEBUG has an extension of 
.EXE, DEBUG does the necessary relocation and 
sets the segment registers, stack pointer, and 
Instruction Pointer to the values defined in the 
file. The DS and ES registers, however, point to 
the Program Segment Prefix at the lowest 
available segment. The BX and CX registers 
contain the size of the program (smaller than the 
file size). 

The program is loaded at the high end of memory 
if the appropriate parameter was specified when 
the linker created the file. Refer to ".EXE File 
Structure and Loading" in Chapter 9 of the DOS 
Technical Reference manual for more information 
about loading .EXE files. 

2. If a file loaded by DEBUG has an extension of 
.HEX, the file is assumed to be in INTEL hex 
format, and is converted to executable form while 
being loaded. 



10-5 



The DEBUG Command Parameters 



Parameter 


Definition 


address 


Enter a one- or two-part designation in 
one of the following formats: 

• An alphabetic segment register 
designation, plus an offset value, 
such as: 

CS:0100 

• A segment address, plus an offset 
value, such as: 

4BA:0100 

• An offset value only, such as: 

100 

(In this case, each command uses a 
default segment.) 

Note: 

1 . In the first two formats, the colon 
is required to separate the values. 



10-6 



Parameter 

address 



Definition 



All numeric values are 
hexadecimal and may be entered 
as 1-4 characters. 



The memory locations specified 
in address must be valid; that is, 
they must actually exist. 
Unpredictable results occur if an 
attempt is made to access a 
nonexistent memory location. 



byte 



Enter a 1 or 2 character hexadecimal 
value. 



drive 



Enter 1 or 2 digits (for example, for 
drive A or 1 for drive B) to indicate 
which drive data is to be loaded from or 
written to. 



(Refer to the Load and Write 
commands.) 



filespec 



Enter a one- to three-part file 
specification consisting of a drive 
designation, filename, and filename 
extension. All three fields are optional. 
However, for the Name command to be 
meaningful, you should at least specify a 
drive designator or a filename. 

(Refer to the Name command.) 



list 



Enter 1 or more byte and/or string 
values. For example, 

F3 ' XYZ ' 8D 4 "abed:" 

has five items in the list (that is, three 
byte entries and two string entries 
having a total of 10 bytes). 



10-7 



Parameter 


Definition 


portaddress 


Enter a 1-4 character hexadecimal value 
to specify an 8- or 16-bit port address. 

(Refer to the Input and Output 
commands.) 


range 


Enter either of the following formats to 
specify the lower and upper addresses of 
a range: 

• address address 

For example: 

CS:100 110 

Note: Only an offset value is 
allowed in the second address. The 
addresses must be separated by a 
space or comma. 



10-8 



Parameter 


Definition 


range 


• address L value 

where value is the number of bytes 
in hexadecimal to be processed by 
the command. For example: 

CS:100L 11 
Notes: 

1. The limit for range is hex 10000, so 
the sum of value and the offset part 
of address cannot exceed 64K bytes. 
To specify a value of 64K bytes 
within four hexadecimal characters, 
enter 0000 (or 0). 

2. The memory locations specified in 
range must be valid; that is, they 
must actually exist. Unpredictable 
results will occur if an attempt is 
made to access a non-existent 
memory location. 


registername 


Refer to the Register command. 



10-9 



Parameter 



Definition 



sector sector 



Enter 1-3 character hexadecimal values 
to specify: 

1 . The starting relative sector number 

2. The number of sector numbers to 
be loaded or written 

In DEBUG, relative sectors are obtained 
by counting the sectors on the disk 
surface. The sector at track 0, sector 1, 
head (the first sector on the disk) is 
relative sector 0. The numbering 
continues for each sector on that track 
and head, then continues with the first 
sector on the next head of the same 
track. When all sectors on all heads of 
the track have been counted, numbering 
continues with the first sector on head 
of the next track. 

Note: This is a change from the 
sector mapping used by DOS 
Version 1.10. 

The maximum number of sectors that 
can be loaded or written with a single 
command is hex 80. A sector contains 
512 bytes. 

(Refer to the Load and Write 
commands.) 



10-10 



Parameter 

string 



Definition 

Enter characters enclosed in quotation 
marks. The quotation marks can be 
either single (') or double (" "). 

The ASCII values of the characters in 
the string are used as a list of byte 
values. 

Within a string, the opposite set of 
quotation marks can be used freely as 
characters. However, if the same set of 
quotation marks (as the delimiters) must 
be used within the string, then the 
quotation marks must be doubled. The 
doubling does not appear in memory. 
For example: 

1. 'This "literal" is correct' 

2. 'This ' 'literal' ' is correct' 

3. 'This 'literal' is not correct' 

4. 'This '"literal"' is not correct' 

5. "This 'literal' is correct" 

6. "This '"literal"' is correct" 

7. "This 'literal' is not correct" 

8. "This ' 'literal' ' is not correct" 

In the second and sixth cases above, the 
word literal is enclosed in one set of 
quotation marks in memory. In the 
fourth and eighth cases above, the word 
literal is not correct unless you really 
want it enclosed in two sets of quotation 
marks in memory. 



10-11 



Parameter 


Definition 


value 


Enter a 1-4 character hexadecimal value 
to specify: 

• The numbers to be added and 
subtracted (refer to the 
Hexarithmetic command), or 

• The number of instructions to be 
executed by the Trace command, or 

• The number of bytes a command 
should operate on. (Refer to the 
Trace, Proceed, and Hexarithmetic 
commands.) 



10-12 



The DEBUG Commands 



This section presents a detailed description of how to 
use the commands to the DEBUG program. The 
commands appear in alphabetic order; each with its 
format and purpose. Examples are provided where 
appropriate. 

Information Common to All DEBUG 
Commands 

The following information applies to the DEBUG 
commands: 

• A command is a single letter, usually followed by 
one or more parameters. 

• Commands and parameters can be entered in 
uppercase or lowercase, or a combination of both. 

• Commands and parameters may be separated by 
delimiters. Delimiters are only required, however, 
between two consecutive hexadecimal values. 
Thus, these commands are equivalent: 

dcs:100 110 
d cs:100 110 
d,cs:100,110 

• Press Ctrl-Break to end commands. 

• Commands become effective only after you press 
the Enter key. 

• For commands producing a large amount of 
output, you can press Ctrl-NumLock to suspend 
the display to read it before it scrolls away. Press 
any other character to restart the display. 



10-13 



You can use the control keys and the DOS editing 
keys, described in Chapter 3 of DOS User's Guide 
while using the DEBUG program. 

If a syntax error is encountered, the line is 
displayed with the error pointed out as follows: 



d cs:100 CS: 110 

Aerror 

In this case, the Dump command is expecting the 
second address to contain only a hexadecimal 
offset value. It finds the S, which is not a valid 
hexadecimal character. 

The prompt from the DEBUG program is a 
hyphen (-). 

The DEBUG program resides on your DOS 
Supplemental Program diskette. 



10-14 



A (Assemble) 
Command 



Purpose: To assemble IBM Personal Computer Macro 
Assembler language statements directly into 
memory. 

Format: A[address] 

Remarks: All numeric input to the Assemble command is in 

hexadecimal. The assembly statements you enter are 
assembled into memory at successive locations, 
starting with the address specified in address. If no 
address is specified, the statements are assembled 
into the area at CS:0100, if no previous Assemble 
command was used, or into the location following 
the last instruction assembled by a previous 
Assemble command. When all desired statements 
have been entered, press Enter when you are 
prompted for the next statement, to return to the 
DEBUG prompt. 

DEBUG responds to invalid statements by 
displaying: 

Aerror 

and redisplaying the current assemble address. 

DEBUG supports standard 8086/8088 assembly 
language syntax (and the 8087 instruction set), with 
the following rules: 

• All numeric values entered are hexadecimal and 
can be entered as 1-4 characters. 

• Prefix mnemonics must be entered in front of 
the opcode to which they refer. They can also be 
entered on a separate line. 



10-15 



A (Assemble) 
Command 



The segment override mnemonics are CS:, DS:, 
ES:,andSS:. 

String manipulation mnemonics must explictly 
state the string size. For example, MOVSW 
must be used to move word strings and MOVSB 
must be used to move byte strings. 

The mnemonic for the far return is RETF. 



The assembler will automatically assemble 
short, near, or far jumps and calls depending on 
byte displacement to the destination address. 
These can be overridden with the NEAR OR 
FAR prefix. For example: 



0100 
0100 

0100 



0500 JMP 502 
0502 JMP NEAR 505 
0505 JMP FAR 50A 



;a 2 byte short jump 
;a 3 byte near jump 
;a 5 byte far jump 



The NEAR prefix can be abbreviated to NE, 
but the FAR prefix cannot be abbreviated. 

DEBUG cannot tell whether some operands 
refer to a word memory location or a byte 
memory location. In this case, the data type 
must be explicity stated with the prefix WORD 
PTR or BYTE PTR. DEBUG will also accept 
the abbreviations WO and BY. For example: 



NEG 
DEC 



BYTE PTR 
WO [SI] 



[128] 



DEBUG also cannot tell whether an operand 
refers to a memory location or to an immediate 
operand. DEBUG uses the common convention 
that operands enclosed in square brackets refer 
to memory. For example: 



10-16 



A (Assemble) 
Command 



MOV AX, 21 ;Load AX with 21H 
MOV AX, [21] ;Load AX with the 

contents of 

memory location 

21H 

Two popular pseudo-instructions have also 
been included. The DB opcode assembles byte 
values directly into memory. The DW opcode 
assembles word values directly into memory. 
For example: 

DB 1,2, 3, 4, "THIS IS AN EXAMPLE" 
DB "THIS IS A QUOTE: "' 
DB "THIS IS A QUOTE: '" 

DW 1000,2000,3000:", BACH:" 

All forms of the register indirect commands are 
supported. For example: 



ADD 


BX,34[BP+2], 


.[SI- 


■1] 






POP 


[BP+DI] 










PUSH 


[SI] 










All opcode synonyms are 


: SU 


pported. 


For 


example: 










LOOPZ 


100 










LOOPE 


100 










JA 


200 










JNBE 


200 











10-17 



A (Assemble) 
Command 



For 8087 opcodes the WAIT or FWAIT prefix 
must be explictly specified. For example: 

FWAIT FADD ST,ST(3) ;This line will assemble 

a FWAIT prefix 
FLD TBYTE PTR [BX] ;This line will not 



Example: 

Odebug 
-a200 



08B4 
08B4 
08B4 
08B4 



0200 xor ax, ax 
0202 mov [bx],ax 
0204 ret 
0205 



10-18 



C (Compare) 
Command 



Purpose: Compares the contents of two blocks of memory. 

Format: C range address 

Remarks: The contents of the two blocks of memory are 
compared; the length of the comparison is 
determined from the range. If unequal bytes are 
found, their addresses and contents are displayed, in 
the form: 

addrl bytel byte2 addr2 

where, the first half (addrl bytel) refers to the 
location and contents of the mismatching locations in 
range, and the second half (byte2 addr2) refers to 
the byte found in address. 

If you enter only an offset for the beginning address 
of range, the C command assumes the segment 
contained in the DS register. To specify an ending 
address for range, enter it with only an offset value. 

Example: C 100L20 200 

The 32 bytes (hex 20) of memory beginning at 
DS:100 are compared with the 32 bytes beginning at 
DS:200. L20 is the range. 



10-19 



D (Dump) 
Command 



Purpose: Displays the contents of a portion of memory. 

Format: 

D [address] 

or 
D [range] 
Remarks: The dump is displayed in two parts: 

1 . A hexadecimal portion. Each byte is displayed 
in hexadecimal. 

2. An ASCII portion. The bytes are displayed as 
ASCII characters. Unprintable characters are 
indicated by a period (.). 

With a 40-column system display format, each line 
begins on an 8-byte boundary and shows 8 bytes. 

With an 80-column system display format, each line 
begins on a 16-byte boundary and shows 16 bytes. 
There is a hyphen between the 8th and 9th bytes. 

Note: The first line may have fewer than 8 or 
1 6 bytes if the starting address of the dump is 
not on a boundary. In this case, the second line 
of the dump begins on a boundary. 



10-20 



D (Dump) 
Command 

The Dump command has two format options: 

Option 1 

Use this option to display the contents of hex 40 
bytes (40-column mode) or hex 80 bytes (80-column 
mode). For example: 

D address 

or 
D 

The contents are dumped starting with the specified 
address. 

If you do not specify an address, the D command 
assumes the starting address is the location following 
the last location displayed by a previous D command. 
Thus, it is possible to dump consecutive 40-byte or 
80-byte areas by entering consecutive D commands 
without parameters. 

If no previous D command was entered, the location 
is offset hex 100 into the segment originally 
initialized in the segment registers by DEBUG. 

Note: If you enter only an offset for the starting 
address, the D command assumes the segment 
contained in the DS register. 



10-21 



D (Dump) 
Command 

Option 2 



Use this option to display the contents of the 
specified address range. For example: 



D range 

Note: If you enter only an offset for the 
starting address, the D command assumes the 
segment contained in the DS register. If you 
specify an ending address, enter it with only an 
offset value. 

For example: 

D cs:100 IOC 

A 40-column display format might look like this: 

04BA:0100 42 45 52 54 41 20 54 00 
BERTA T. 

04BA:0108 20 42 4F 52 47 

BORG 



10-22 



E (Enter) 
Command 



Purpose: The Enter command has two modes of operation: 

• Replaces the contents of one or more bytes, 
starting at the specified address, with the values 
contained in the list. (See Option 1.) 

• Displays and allows modification of bytes in a 
sequential manner. (See Option 2.) 

Format: E address [list] 

Remarks: If you enter only an offset for the address, the E 

command assumes the segment contained in the DS 
register. 

The Enter command has two format options: 

Option 1 

Use this option to place the list in memory beginning 
at the specified address. 

E address list 
For example: 

E ds:100 F3 "xyz" 8D 

Memory locations ds:100 through ds:104 are filled 
with the 5 bytes specified in the list. 

Option 2 

Use this option to display the address and the byte of 
a location, then the system waits for your input. 



10-23 



E (Enter) 
Command 



For example: 

E address 

Enter a 1- or 2-character hexadecimal value to 
replace the contents of the byte; then take any of the 
next three actions: 

1 . Press the space bar to advance to the next 
address. Its contents are displayed. If you want 
to change the contents take action 1 , above. 

To advance to the next byte without changing 
the current byte, press the space bar again. 

2. Enter a hyphen (-) to back up to the preceding 
address. A new line is displayed with the 
preceding address and its contents. If you want 
to change the contents take option 1, above. 

To back up one more byte without changing the 
current byte, enter another hyphen. 

3. Press the Enter key to end the Enter command. 

Note: Display lines can have 4 or 8 bytes of 
data, depending on whether the system display 
format is 40- or 80-column. Spacing beyond an 
8-byte boundary causes a new display line, with 
the beginning address, to be started. 



10-24 



E (Enter) 
Command 



For example: 

E cs:100 

might cause this display: 

04BA:0100 EB._ 

To change the contents of 04BA:0100 from hex EB 
to hex 41, enter 41. 

04BA:0100 EB.41_ 

To see the contents of the next three locations, 
press the space bar three times. The screen might 
look like this: 

04BA:0100 EB.41 10. 00. BC._ 

To change the contents of the current location 
(04BA:0103) from hex BC to hex 42, enter 42. 

04BA:0100 EB.41 10. 00. BC.42_ 

Now, suppose you want to back up and change the 
hex 10 to hex 6F. This is what the screen would look 
like after entering two hyphens and the replacement 
byte: 



04BA 
04BA 
04BA 



0100 EB.41 10.00. BC.42- 
0102 00.- 

0101 10. 6F 



Press the Enter key to end the Enter command. 
You will see the hyphen (-) prompt. 



10-25 



F (Fill) 
Command 



Purpose: Fills the memory locations in the range with the 
values in the list. 

Format: F range list 

Remarks: If the list contains fewer bytes than the address 
range, the list is used repeatedly until all the 
designated memory locations are filled. 

If the list contains more bytes than the address 
range, the extra list items are ignored. 

Note: If you enter only an offset for the starting 
address of the range, the Fill command assumes 
the segment contained in the DS register. 

Example: F 4BA: 100 L 5 F3 "XYZ" 8D 

Memory locations 04BA:100 through 04BA:104 are 
filled with the 5 bytes specified. Remember that the 
ASCII values of the list characters are stored. Thus, 
locations 100-104 will contain F3 58 59 5 A 8D. 



10-26 



G(Go) 
Command 



Purpose: Executes the program you are debugging. 

Stops the execution when the instruction at a 
specified address is reached (breakpoint), and 
displays the registers, flags, and the next instruction 
to be executed. 

Format: G [=address] [address [address...]] 

Remarks: Program execution begins with the current 

instruction, whose address is determined by the 
contents of the CS and IP registers, unless 
overridden by the =address parameter (the = must 
be entered). If =address is specified, program 
execution begins with CS:=address. 

The Go command has two format options: 

Option 1 

Use this option to execute the program you are 
debugging without breakpoints. For example: 

G [=address] 

This option is useful when testing program 
execution with different parameters each time. 
(Refer to the Name command.) Be certain the 
CS:IP values are set properly before issuing the G 
command, if not using =address. 



10-27 



G(Go) 
Command 



Option 2 

This option performs the same function as Option 1 
but, in addition, allows breakpoints to be set at the 
specified addresses. For example: 

G [=address] address 
[address . . . ] 

This method causes execution to stop at a specified 
location so the system/program environment can be 
examined. 

You can specify up to ten breakpoints in any order. 
You may wish to take advantage of this if your 
program has many paths, and you want to stop the 
execution no matter which path the program takes. 

The DEBUG program replaces the instruction codes 
at the breakpoint addresses with an interrupt code 
(hex CC). If any one breakpoint is reached during 
execution, the execution is stopped, the registers and 
flags are displayed, and all the breakpoint addresses 
are restored to their original instruction codes. If no 
breakpoint is reached, the instructions are not 
restored. 

Notes: 

1 . Once a program has reached completion 
(DEBUG has displayed the "Program 
terminated normally" message), it is necessary 
to reload the program before it can be executed 
again. 

2. Make sure that the address parameters refer to 
locations that contain valid 8088 instruction 



10-28 



G(Go) 
Command 

codes. If you specify an address that does not 
contain the first byte valid instruction, 
unpredictable results occur. 

3. The stack pointer must be valid and have 6 
bytes available for the Go command; otherwise, 
unpredictable results occur. 

4. If only an offset is entered for a breakpoint, the 
G command assumes the segment contained in 
the CS register. 

5. Do not set breakpoints at instructions in 
read-only memory (ROM BIOS or ROM 
BASIC). 

For example: 

G 102 1EF 208 

Execution begins with the current instruction, 
whose address is the current values of CS:IP. The 
= address parameter was not used. 

Three breakpoints are specified; assume that the 
second is reached. Execution stops before the 
instruction at location CS:1EF is executed, the 
original instruction codes are restored, all three 
breakpoints are removed, the display occurs, and the 
Go command ends. 

Refer to the Register command for a description of 
the display. 



10-29 



H (Hexarithmetic) 
Command 



Purpose: Adds the two hexadecimal values, then subtracts the 
second from the first. 



Displays the sum and difference on one line. 
H value value 



Format: 
Example: 



H0F8 

17 07 

The hexadecimal sum of 000F and 0008 is 0017, and 
their difference is 0007. 



10-30 



I (Input) 
Command 



Purpose: Inputs and displays (in hexadecimal) 1 byte from the 
specified port. 

Format: I port address 

Example: I 2F8 

6B 

The single hexadecimal byte read from port 02F8 is 
displayed (6B). 



10-31 



L (Load) 
Command 



Purpose: Loads a file or absolute disk sectors into memory. 

Format: L [address [ drive sector sector]] 

Remarks: The maximum number of sectors that can be loaded 
with a single Load command is hex 80. 

Note: DEBUG displays a message if a disk read 
error occurs. You can retry the read operation 
by pressing F3 to re-display the Load command. 
Then, press the Enter key. 

The Load command has two format options: 

Option 1 

Use this option to load data from the disk specified 
by drive, and place the data in memory beginning at 
the specified address. For example: 

L address drive sector sector 

The data is read from the specified starting relative 
sector (first sector) and continues until the requested 
number of sectors is read (second sector). 

Note: If you only enter an offset for the 
beginning address, the L command assumes the 
segment contained in the CS register. 

For example, to load data, you might enter: 

L DS: 100 1 0F 6D 



10-32 



L (Load) 
Command 

The data is loaded from the diskette in drive B and 
placed in memory beginning at DS:100. 6DH (109) 
consecutive sectors of data are transferred, starting 
with relative sector hex OF (15) (the 16th sector on 
the diskette). 

Note: Option 1 cannot be used if the drive 
specified is a network drive. 

Option 2 

When issued without parameters, or with only the 
address parameter, use this option to load the file 
whose filespec is at CS:80. For example: 



or 

L address 

This condition is met by specifying the filespec 
when starting the DEBUG program, or by using the 
Name command. 

Note: If DEBUG was started with a filespec 
and subsequent Name commands were used, 
you may need to enter a new Name command 
for the proper filespec before issuing the Load 
command. 

The file is loaded into memory beginning at CS:100 
(or the location specified by address), and is read 
from the drive specified in the filespec (or from the 
default drive, if none was specified). Note that files 
with extensions of .COM or .EXE are always loaded 
at CS:100-if you specified an address, it is ignored. 



10-33 



L (Load) 
Command 



The BX and CX registers are set to the number of 
bytes read; however, if the file being loaded has an 
extension of .EXE, BX and CX are set to the actual 
program size. The file may be loaded at the high end 
of memory. Refer to the notes in "How to Start the 
DEBUG Program" at the beginning of this chapter 
for the conditions that are in effect when .EXE or 
.HEX files are loaded. 

For example: 

DEBUG 

-N myprog 

-L 



The file named myprog is loaded from the default 
diskette and placed in memory beginning at location 
CS:0100. 



10-34 



Purpose: 



M (Move) 
Command 



Moves the contents of the memory locations 
specified by range to the locations beginning at the 
address specified. 



Format: M range address 



Remarks: 



Example: 



Overlapping moves are always performed without 
loss of data during the transfer. (The source and 
destination areas share some of the same memory 
locations.) 

The data in the source area remains unchanged 
unless overwritten by the move. 

Notes: 

1 . If you enter only an offset for the beginning 
address of the range, the M command assumes 
the segment contained in the DS register. If you 
specify an ending address for the range, enter it 
with only an offset value. 

2. If you enter only an offset for the address of the 
destination area, the M command assumes the 
segment contained in the DS register. 



M CS:100 110 500 

The 17 bytes of data from CS: 100 through CS:110 
are moved to the area of memory beginning at 
DS:500. 



10-35 



N (Name) 
Command 



Purpose: The Name command has two functions: 

• Formats file control blocks for the first two 
filespecs, at CS:5C and CS:6C. (Starting 
DEBUG with a filespec also formats a file 
control block at CS:5C.) 

The file control blocks are set up for the use of 
the Load and Write commands, and to supply 
required filenames for the program being 
debugged. 

• All specified filespecs and other parameters are 
placed exactly as entered, including delimiters, 
in a parameter save area at CS:81, with CS:80 
containing the number of characters entered. 
Register AX is set to indicate the validity of the 
drive specifiers entered with the first two 
filespecs. 

Format: N [d:][path]filename[.ext] 

Remarks: If you start the DEBUG program without a filespec, 
you must use the Name command before a file can 
be loaded with the L command. 



10-36 



Example: 



N (Name) 
Command 



DEBUG 

-N myprog 
-L 



To define filespecs or other parameters required by 
the program being debugged, enter: 

DEBUG myprog 
-N filel file2 



In this example, DEBUG loads the file myprog at 
CS:100, and leaves the file control block at CS:5C 
formatted with the same filespec. Then, the Name 
command formats file control blocks for filel and 
filel at CS:5C and CS:6C, respectively. The file 
control block for myprog is overwritten. The 
parameter area at CS:81 contains all characters 
entered after the N, including all delimiters, and 
CS:80 contains the count of those characters (hex 
OC). 



10-37 



O (Output) 
Command 



Purpose: Sends the byte to the specified output port. 
Format: O portaddress byte 

Example: To send the byte value 4F to output port 2F8, enter: 
2F8 4F 



10-38 



P (Proceed) 
Command 



Purpose: Causes the execution of a subroutine call, a loop 
instruction, an interrupt, or a repeat string 
instruction to stop at the next instruction. 

Format: P[= address] [value] 

Remarks: When at a subroutine call, a loop instruction, an 
interrupt, or a repeat string instruction, issue the 
Proceed command to execute the instruction (as an 
atomic operation), and return control at the next 
instruction. The Proceed command has the same 
syntax as the Trace command. Specifing PO, is the 
same as specifying TO. 

Example: If the following instructions are executed: 

0100 CALL 10000103 JC 



XOR AX, AX 



1XXX RET 

And CS:IP was pointing to the CALL 1000 
instruction, typing P causes the execution of the 
subroutine and returns control to DEBUG at the JC 
instruction. 



10-39 



Q (Quit) 

Command 



Purpose: Ends the DEBUG program. 

Format: Q 

Remarks: The file that you are working on in memory is not 
saved by the Quit command. You must use the 
Write command to save the file. 

DEBUG returns to the command processor which 
then issues the normal command prompt. 

Example: 

-O 
A> 



10-40 



R (Register) 
Command 



Purpose: The Register command has three functions: 

• It displays the hexadecimal contents of a single 
register, with the option of changing those 
contents. 

• It displays the hexadecimal contents of all the 
registers, plus the alphabetic flag settings, and 
the next instruction to be executed. 

• It displays the eight 2-letter alphabetic flag 
settings, with the option of changing any or all 
of them. 



Format: R [registername] 

Remarks: When the DEBUG program starts, the registers and 
flags are set to certain values for the program being 
debugged. (Refer to "How to Start the DEBUG 
Program" at the beginning of this chapter.) 



Display a 


Single Register 


The valid 


registernames are 


AX 


BP 


SS 


BX 


SI 


CS 


CX 


DI 


IP 


DX 


DS 


PC 


SP 


ES 


F 



Both IP and PC refer to the instruction pointer. 



10-41 



R (Register) 
Command 



For example, to display the contents of a single 
register, you might enter: 

R AX 

The system might respond with: 

AX F1E4 

Now you may take one of two actions: 

• Press Enter to leave the contents unchanged, 
or 

• Change the contents of the AX register by 
entering a 1-4 character hexadecimal value, such 
as hex FFF. 

AX F1E4 
:FFF_ 

Now pressing Enter changes the contents of the AX 
register to hex OFFF. 

Display All Registers and Flags 

To display the contents of all registers and flags (and 
the next instruction to be executed), type: 

R 

The system might respond with: 

AX=0E00 BX=00FF CX=0007 DX=01FF 

SP=039D BP=0000 SI=005C DI=0000 

DS=04BA ES=04BA SS=04BA CS=04BA 

IP=011A NV UP DI NG NZ AC PE NC 

04BA:011A CD21 INT 21 



10-42 



R (Register) 
Command 



The first four lines display the hexadecimal contents 
of the registers and the eight alphabetic flag settings. 
The last line indicates the location of the next 
instruction to be executed, and its hexadecimal and 
unassembled formats. This is the instruction pointed 
to by CS:IP. 

Note: A system with an 80-column display 
shows: 

1 st line - 8 registers 

2nd line - 5 registers and 8 flag settings 

3rd line - next instruction information 

A system with a 40-column display shows: 

1st line - 4 registers 

2nd line - 4 registers 

3rd line - 4 registers 

4th line - 1 register and 8 flag settings 

5th line - next instruction information 

Display All Flags 

There are eight flags, each with 2-letter codes to 
indicate either a set condition or a clear condition. 

The flags appear in displays in the same order as 
presented in the following table: 



10-43 



R (Register) 
Command 



Flag Name 


Set 


Clear 


Overflow (yes/no) 


OV 


NV 


Direction (decrement/increment) 


DN 


UP 


Interrupt (enable/disable) 


EI 


DI 


Sign (negative/positive) 


NG 


PL 


Zero (yes/no) 


ZR 


NZ 


Auxiliary carry (yes/no) 


AC 


NA 


Parity (even/odd) 


PE 


PO 


Carry (yes/no) 


CY 


NC 



Figure 10-1 Alphabetic Flag Settings 



To display all flags, enter: 

R F 

If all the flags are in a set condition, the response is: 

OV DN EI NG ZR AC PE CY -_ 

Now you can take one of two actions: 

1 . Press Enter to leave the settings unchanged. 

2. Change any or all of the settings. 



10-44 



R (Register) 
Command 

To change a flag, just enter its opposite code. The 
opposite codes can be entered in any order — with or 
without intervening spaces. For example, to change 
the first, third, fifth, and seventh flags, enter: 

OV DN EI NG ZR AC PE CY - PONZDINV 

They are entered in reverse order in this example. 

Press Enter and the flags are modified as specified, 
the prompt appears, and you can enter the next 
command. 

If you want to see if the new codes are in effect, 
enter: 

R F 

The response is: 

NV DN DI NG NZ AC PO CY -_ 

The first, third, fifth, and seventh flags are changed 
as requested. The second, fourth, sixth, and eighth 
flags are unchanged. 

Note: A single flag can be changed only once 
per R F command. 



10-45 



S (Search) 
Command 



Purpose: Searches the range for the character(s) in the list. 

Format: S range list 

Remarks: All matches are indicated by displaying the addresses 
where matches are found. 

A display of the prompt (-) without an address 
means that no match was found. 

Note: If you enter only an offset for the starting 
address of the range, the S command assumes 
the segment contained in the DS register. 

Example: If you want to search the range of addresses from 
CS: 100 through CS: 1 10 for hex 41 , type: 

S CS:100 110 41 

If two matches are found the response might be: 

04BA:0104 
04BA:010D 

If you want to search the same range of addresses as 
in the previous example for a match with the 
4-byte-long list, enter: 

S CS:100 L 11 41 "AB" E 

The starting addresses of all matches are listed. If 
no match is found, no address is displayed. 



10-46 



T (Trace) 
Command 



Purpose: Executes one or more instructions starting with the 
instruction at CS;IP, or at =address if it is specified. 
The = must be entered. One instruction is assumed, 
but you can specify more than one with value. 
Displays the contents of all registers and flags after 
each instruction executes. For a description of the 
display format, refer to the Register command. 

Format: T [=address][value] 

Remarks: The display caused by the Trace command continues 
until value instructions are executed. Therefore, 
when tracing multiple instructions, remember you 
can suspend the scrolling at any time by pressing 
Ctrl-NumLock. Resume scrolling by entering any 
other character. 

Notes: 

1 . The Trace command disables all hardware 
interrupts before executing the user instruction, 
and then reenables the interrupts when the trap 
interrupt occurs following the execution of the 
instruction. 

2. TRACE should not be used with any steps that 
change the contents of the 8259 interrupt mask 
(ports 20 and 21). 

3. If you trace an INT3 instruction, the breakpoint 
is set at the INT3 location. 



10-47 



T (Trace) 
Command 



Example: T 



If the IP register contains 01 1 A, and that location 
contains B40E (MOV AH,0EH), this might be 
displayed: 

AX=0E00 BX=00FF CX=0007 DX=01FF 
SP=039D BP=0000 SI=005C DI=0000 
DS=04BA ES=04BA SS=04BA CS=04BA 
IP=011C NV UP DI NG NZ AC PE NC 
04BA:011C CD21 INT 21 

This displays the results after the instruction at 

01 1 A is executed, and indicates the next instruction 

to be executed is the INT 21 at location 04BA:01 1C. 

T 10 

Sixteen instructions are executed (starting at 
CS:IP). The contents of all registers and flags are 
displayed after each instruction. The display stops 
after the 16th instruction has been executed. 
Displays may scroll off the screen unless you suspend 
the display by pressing the Ctrl-NumLock keys. 



10-48 



U (Unassemble) 
Command 



Purpose: 



Unassembles instructions (translates the contents of 
memory into assembler-like statements) and displays 
their addresses and hexadecimal values, together 
with assembler-like statements. For example, a 
display might look like this: 



04BA 
04BA 
04BA 



0100 206472 

0103 FC 

0104 7665 



AND [SI+72] ,AH 

CLD 

JBE 016B 



Format: U [address] 

or 

U [range] 

Remarks: The number of bytes unassembled depends on your 
system display format (whether 40 or 80 columns), 
and which option you use with the Unassemble 
command. 



Notes: 



In all cases, the number of bytes unassembled 
and displayed may be slightly more than either 
the amount requested or the default amount. 
This happens because the instructions are of 
variable lengths; therefore, to unassemble the 
last instruction may include more bytes than 
expected. 

Make sure that the address parameters refer to 
locations containing valid 8088 instruction 
codes. If you specify an address that does not 
contain the first byte of a valid instruction, the 
display will be erroneous. 



10-49 



U (Unassemble) 
Command 



3 . If you enter only an offset for the starting 
address, the U command assumes the segment 
contained in the CS register. 

The Unassemble command has two format options: 

Option 1 

Use this option to either unassemble instructions 
without specifying an address, or to unassemble 
instructions beginning with a specified address. For 
example: 

U 

or 

U address 

Sixteen bytes are unassembled with a 40-column 
display. Thirty-two bytes are unassembled while in 
80-column mode. 

Instructions are unassembled beginning with the 
specified address. 

If you do not specify an address, the U command 
assumes the starting address is the location following 
the last instruction unassembled by a previous U 
command. Thus, it is possible to unassemble 
consecutive locations, producing continuous 
unassembled displays, by entering consecutive U 
commands without parameters. 

If no previous U command is entered, the location is 
offset hex 0100 into the segment originally initialized 
in the segment registers by DEBUG. 



10-50 



U (Unassemble) 
Command 

Option 2 

Use this option to unassemble instructions in a 
specified address range. For example: 

U range 

All instructions in the specified address range are 
unassembled, regardless of the system display 
format. 

Note: If you specify an ending address, enter it 
with only an offset value. 

For example: 

U04ba:0100 108 

The display response might be: 

04BA:0100 206472 AND [SI+72],AH 

04BA:0103 FC CLD 

04BA:0104 7665 JBE 016B 

04BA:0106 207370 AND [BP+DI+70] ,DH 

The same display appears if you enter: 

U04BA:100 L 7 

or 
U 04BA:100 L 8 

or 
U 04BA:100 L 9 



10-51 



W (Write) 
Command 



Purpose: Writes the data being debugged to disk. 

Format: W [address [drive sector sector]] 

Remarks: The maximum number of sectors that can be written 
with a single Write command is hex 80. 

DEBUG displays a message if a disk write error 
occurs. You can retry the write operation by 
pressing F3 to redisplay the Write command, then 
press the Enter key. 

The Write command has two format options: 

Option 1 

Use this option to write data to disk beginning at a 
specified address. For example: 

W address drive sector sector 

The data beginning at the specified address is 
written to the disk in the indicated drive. The data is 
written starting at the specified starting relative 
sector (first sector) and continues until the requested 
number of sectors are filled (second sector). 

Notes: 

1 . Be extremely careful when you write data to 
absolute sectors because an erroneous sector 
specification destroys whatever was on the disk 
at that location. 



10-52 



W (Write) 
Command 

2. If only an offset is entered for the beginning 
address, the W command assumes the segment 
contained in the CS register. 

3. Remember, the starting sector and the sector 
count are both specified in hexadecimal. 

4. Option 1 cannot be used if the drive specified is 
a network drive. 

For example: 

W 1FD 1 100 A 

The data beginning at CS:01FD is written to the 
diskette in drive B, starting at relative sector hex 100 
(256) and continuing for hex 0A (10) sectors. 

Option 2 

This option allows you to use the Write command 
without specifying parameters or only specifying the 
address parameter. For example: 

W 

or 

W address 

When issued as shown above, the Write command 
writes the file (whose filespec is at CS:80) to disk. 

This condition is met by specifying the filespec when 
starting the DEBUG program, or by using the Name 
command. 

Note: If DEBUG was started with a filespec 
and subsequent Name commands were used, 



10-53 



W (Write) 
Command 



you may need to enter a new Name command 
for the proper filespec before issuing the Write 
command. 

In addition, the BX and CX registers must be set to 
the number of bytes to be written. They may have 
been set properly by the DEBUG or Load 
commands, but might have been changed by a Go or 
Trace command. You must be certain the BX and 
CX registers contain the correct values. 

The file beginning at CS:100, or at the location 
specified by address, is written to the diskette in the 
drive specified in filespec or the default drive if none 
was specified. 

The debugged file is written over the original file that 
was loaded into memory, or into a new file if the 
filename in the FCB didn't previously exist. 

Note: An error message is issued if you try to 
write a file with an extension of .EXE or .HEX. 
These files must be written in a specific format 
that DEBUG cannot support. 

If you find it necessary to modify a file with an 
extension of .EXE or .HEX, and the exact 
locations to be modified are known, use the 
following procedure: 



10-54 



W (Write) 
Command 



1. RENAME the file to an extension other than 
.EXE or .HEX. 

2. Load the file into memory using the DEBUG or 
Load command. 

3. Modify the file as needed in memory, but do not 
try to execute it with the Go or Trace 
commands. Unpredictable results would occur. 

4. Write the file back using the Write command. 

5. RENAME the file to its correct name. 



10-55 



Notes: 



10-56 



Appendixes 



Contents 

Appendix A. Messages A-3 

Introduction A-3 

Responses A-3 

Device Error Messages A-4 

Other Messages A-l 1 



A-l 



Notes: 



A-2 



Appendix A. Messages 



Introduction 



This appendix contains device errors (the message that DOS uses 
to indicate errors while reading or writing to devices on your 
system), and Other messages (the remainder of the DOS 
messages) in alphabetic order. Messages are listed in bold type 
and the explanation and action follow the message. 

The first word of the description of each message is the name of 
the program or command that generated the message. 

In some cases, the message is generated by several different 
programs or commands. In that case, the first word is command. 
Where the message is generated by an internal DOS file, the first 
word is DOS. 



Responses 

When any of the device error messages are displayed, the system 
waits for you to respond. If you know what caused the problem, 
take corrective action before choosing a response. The system 
waits until you make one of these responses. 

To recover from an error condition, the responses should be 
made in the following order: 

R Retry the operation because the error may not occur 

again. The system tries the disk read or write 
operation again. We strongly recommend that you use 
Retry first. 

A Abort the program. The system ends the program that 

requested the disk read or write. 



A-3 



Ignore the error condition and continue the program. 
(Be careful when choosing this response because data 
may be lost.) If the system determines that the 
condition is not dangerous, it ignores the error and 
continues the program. 



Device Error Messages 



When an error is detected during reading or writing to any of the 
devices (disk drives, printer, etc.) on your system, DOS displays 
a message in the following format: 

<type> error reading <device> 
Abort, Retry, Ignore? 

or 
<type> error writing <device> 
Abort, Retry, Ignore? 



In these messages, <device> is the name of the device in error, 
such as PRN, or B:, and <type> is one of the types listed on the 
following pages: 



A-4 



Bad call format 



Explanation: A device driver was passed an incorrect length 
request header. 

Action: Refer to "Responses" at the beginning of this group 
of device messages. 

. Use DEBUG. 

• Review your programming specifications. Patch and 
reassemble. 

• If you are using a purchased program, contact the 
dealer you purchased the device driver from. 

Bad command 



Explanation: A device driver has issued an invalid command 
to <device>. 

Action: Refer to "Responses" at the beginning of this 
group of device messages. 

• Review your device interface specification and DOS 
driver implementation to make sure everything you are 
trying to do is supported. 

• Check your program to see if you have a coding 
problem that needs debugging. 

Bad unit 



Explanation: A device driver has been passed an invalid 
sub-unit number. 

Action: Refer to "Responses" at the beginning of this 
group of device messages. If you are using a purchased 
program contact the dealer you purchased the device driver 
from. 



A-5 



Data 



Explanation: DOS was unable to read or write the data 
correctly. This message usually means a disk has developed 
a defective spot. 

Action: Refer to "Responses" at the beginning of this 
group of device messages. 

FCB unavailable 



Explanation: With file sharing loaded, you tried to 
concurrently open more file control blocks than were 
specified by the FCBS configuration command. 

Action: Choose Abort as your response. Then, increase the 
value of the FCBS configuration command. 

General failure 



Explanation: An error of a type not described elsewhere in 
this list has occurred. 

Action: Refer to "Responses" at the beginning of this 
group of device messages. Choose Retry first. Then choose 
Abort if this problem requires further investigation by a 
programmer. 

If you are using a purchased program, contact the dealer 
you purchased it from. 

Lock violation 



Explanation: SHARE. The file you tried to access is locked 
by someone else. This is usually a temporary situtation. 

Action: Choose Retry as your first response. If the problem 
still exists, choose Abort. 



A-6 



No paper 



Explanation: The indicated printer is either out of paper or 
not turned on. 

Action: Turn the printer ON, press the ONLINE switch, or 
add paper and retry. 

Refer to "Responses" at the beginning of this group of 
device messages. 

Non-DOS disk 



Explanation: The file allocation table contains invalid 
information. The disk needs to be reformatted. 

Action: Refer to "Responses" at the beginning of this 
group of device messages. 

Try running CHKDSK to see if any corrective action is 
possible. Reformatting will correct the disk, but the files 
are lost forever. 

Not ready 



Explanation: The named device is not ready to accept or 
transmit data. 

Action: Check that the disk drive door is closed and choose 
Retry for your response if this is the problem. 

Refer to "Responses" at the beginning of this group of 
device messages. 



A-7 



Read fault 



Explanation: DOS was unable to read the data from the 
device. 

Action: Refer to "Responses" at the beginning of this group 
of device messages. 

• Make sure the diskette is properly inserted in the drive. 

• If you get the same message, choose Abort and rerun 
the command with a different disk. 

Sector not found 



Explanation: The sector containing the data could not be 
located on the disk. 

Action: Refer to "Responses" at the beginning of this group 
of device messages. 

If you get the same message, choose Abort and rerun the 
command with a different disk. 



Seek 



Explanation: The fixed disk or diskette drive was unable to 
locate the proper track on the disk. 

Action: 

• Make sure the diskette is properly inserted in the drive. 

• Try a different drive 

. Run CHKDSK 

Refer to "Responses" at the beginning of this group of 
device messages. 



A-8 



Sharing violation 



Explanation: SHARE. You tried to access a file using a 
sharing mode not allowed at this time. Normally this occurs 
when someone else is accessing the file in compatibility 
mode for writing, or in a sharing mode that doesn't allow 
you to access the file at the same time. 

Action: Choose Retry as your first response. If that fails, 
choose Abort. 

Write fault 



Explanation: DOS was unable to write the data to the 
device. 

Action: 

• Make sure the diskette is properly inserted in the drive. 

• If the diskette is not the problem, choose Retry. 

• If you get the same message, choose Abort and rerun 
the command with a different disk. 

Refer to "Responses" at the beginning of this group of 
device messages. 

Write protect 



Explanation: An attempt was made to write on a write 
protected diskette. 

Action: Investigate carefully before you decide to write on a 
write protected diskette. 

Important: If you attempt to use a dual-sided diskette in a 
single-sided drive, or if you attempt to use a 9-sector-per-track 
diskette on a version of DOS previous to version 2.00, one of the 



A-9 



preceding messages appears. If any of the preceding messages 
appear for a diskette drive, DO NOT change diskettes before 
responding with Abort, Retry, or Ignore. 



A-10 



Other Messages 



The following messages are in alphabetic order. 

A 

Abort edit (Y/N)? 



Explanation: EDLIN. This message is displayed if you 
specify the /Q command to quit the edit. 

Action: Type a Y to end the edit. Type a N to continue 
editing the file. 

About to generate .EXE file 

Change diskette in drive A: and press < ENTER > 



Explanation: LINK. This message appears before the .EXE 
has been written if the /P switch is given. 

Action: Insert diskette that the .EXE file is to be written to 
into the specified drive (A: for example). 

Access denied 



Explanation: Commands. Executing the requrested 
command violates the access mode of the file, subdirectory, 
or device involved. For example, an attempt was made to 
write to a file marked read-only, or read a file that is 
write-only. Or an attempt was made to open a subdirectory 
as a file. 

Action: Use a different filename. 



A-ll 



All files canceled by operator 

Explanation: PRINT/T. Informational message. You use 
the PRINT command with the /T parameter to cancel the 
printing of all queued files. 

Action: This message appears on the printer. 

All specified file(s) are contiguous 

Explanation: CHKDSK. Informational message. The file or 
files you named are all written sequentially on the disk. 

Action: No action required. 

Allocation error for file, size adjusted 

Explanation: CHKDSK or CHKDSK/F. A filename 
precedes this message. An invalid cluster number was 
found in the file allocation table. 

Action: 

• If you specified the /F parameter, the file is truncated 
at the end of the last valid cluster. 

• If you did not enter the /F parameter, the message is 
for your information and no action is needed. Enter: 

CHKDSK/F 

to correct the file size. 

Amount read less than size in header 



Explanation: EXE2BIN. The program portion of the file 
was smaller than indicated in the file's header. 

Action: Recompile or reassemble the program, and then 



A-12 



reLINK it. 
Array element size mismatch 



Explanation: LINK. A far communal array has been 
declared with two or more different array element sizes (for 
example, declared once as an array of characters and once 
as an array of reals). 

Action: Match definitions and recreate object module. 

Attempt to access data outside 
of segment bounds 



Explanation: LINK. An object file is invalid. 
Action: 

• Review the .ASM file or assembled listing for 
segmentation violations. 

• Look for a bad reference or invalid instruction. 
Attempt to put segment xxxxxx in more than one group in file 

Explanation: LINK. A segment was declared to be part of 
two different groups. 

Action: Correct the source and recreate the object files. 

Attempted write protect violation 



Explanation: FORMAT. The diskette being formatted is 
write protected and cannot be written on. 

Action: In response to the displayed prompt, insert a new 
diskette and press any key to restart formatting. 



A-13 



B 



** Backing up files to target drive x** 
Target Number: x 



Explanation: BACKUP. Informational message telling you 
the sequence of file being backed up. 

Action: No action required. 

Backup file sequence error 



Explanation: RESTORE. A file to be restored was backed 
up on more than one diskette. You did not insert the 
diskette with the first part of the file. 

Action: Rerun RESTORE and start with the correct 
diskette. 

Bad command or filename 



Explanation: DOS. The command you just entered is not a 
valid DOS command. 

Action: Check the spelling of the command and re-enter it. 

If the command name is spelled correctly, check to see that 
the default drive contains the external command or batch 
file you are trying to execute. 

Bad internal reloc table 



Explanation: LINK. Internal linker error. 

Action: Record the scenario that produced this message, and 
contact your IBM dealer. 



A-14 



Bad or missing Command Interpreter 



Explanation: DOS. The disk that DOS is being started from 
does not contain a copy of COMMAND.COM, or an error 
occurred while the disk was being loaded. 

This message also appears if COMMAND.COM has been 
removed from the directory it was in originally when DOS 
was started; or if the COMSPEC= parameter in the 
environment points to a directory not containing 
COMMAND.COM and DOS is trying to reload the 
command processor. 

Action: Do a System Reset. If System Reset fails to solve 
the problem, start DOS with your backup DOS diskette. 
Then copy COMMAND.COM from the backup diskette to 
the root directory of the disk that failed. 

Bad or missing < filename > 



Explanation: DOS. This message appears only at startup 
and indicates one of the following: 

a. The name of a driver named in a DEVICE= 
<filename> parameter in the CONFIG.SYS file was 
not found. 

b. A break address was out of bounds for the machine 
size. 

c. An error occurred while the driver was being loaded. 
That driver is not installed by DOS. 

Action: 

a. For an incorrect device driver name, use the correct 
spelling for the device driver name, or use the diskette 
with the named device driver. 

b. For items B and C, correct the coding in the device 
driver. 



A-15 



c. If you still cannot correct the problem, see your IBM 
Personal Computer dealer. 



Bad Unit 



Explanation: Commands. A disk I/O device driver 
encountered a critical error in or within an unrecognized or 
invalid device. 

Action: Record the environment and sequence of events 
and notify the author of the device driver or your authorized 
IBM dealer. 

Bad tracks found at start of partition 
Partition size adjusted 



Explanation: FDISK. Bad tracks were encountered in the 
area of the fixed disk required by DOS. Some space was 
lost at the beginning of the requested partition. 

Action: No action required. 

Batch file missing 



Explanation: DOS. DOS could not locate the batch file it 
was processing. The file may have been erased or renamed 
by one of the steps within it. Batch processing stops and 
the DOS prompt appears. 

Action: 

1 . If the filename was changed or if the file was deleted, 
correct the command that changed the name(s). 

2. If the file was erased, use your backup copy. If you 
used EDLIN to create the file or make changes, rename 
the .BAK file to .BAT. Correct the command that 
deleted the file. 



A-16 



BF 



Explanation: DEBUG. Bad flag. An invalid flag code 
setting was specified. 

Action: Try the Register (R F) command again with the 
correct code. 



BP 



Explanation: DEBUG. Breakpoints. More than ten 
breakpoints were specified for the GO command. 

Action: Re-enter the GO (G) command again with ten or 
fewer breakpoints. 

BR 

Explanation: DEBUG. Bad register. An invalid register 
name was specified. 

Action: Re-enter the Register (R) command using a correct 
register name. 

BREAK is On|Off 



Explanation: BREAK. This message indicates the status of 
BREAK, either on or off. 

Action: Enter the command you want. For example if 
Break is off is displayed and Break is on is desired, enter the 
command: 

BREAK ON 



A-17 



Buffer size adjusted 



Explanation: VDISK. VDISK found it necessary to adjust 
the buffer size value in the Device = VDISK. SYS in the 
CONFIG.SYS command. 

Action: No action required. 

Buffer size: 
Sector size: 
Directory entries: 
Transfer size: 



Explanation: VDISK. VDISK has successfully installed a 
virtual disk indicating the virtual disk size, the sector size, 
the number of directory entries in use, and the maximum 
transfer size for the virtual disk. 

Action: No action required. 



Cannot CHDIR to root 

Explanation: CHKDSK. CHKDSK, during its scan of the 
disk, attempted to CHDIR to the root but failed. This 
failed attempt is due to a damaged disk. 

Action: No action required. 

Cannot CHKDSK a network drive 



Explanation: You cannot CHKDSK a drive that is either a 
network disk or a disk that is on your computer, but is 
currently being shared on the network. 

Action: If the disk is being shared, you can PAUSE the 
server, do CHKDSK, then CONTINUE the server. 



A-18 



Cannot CHKDSK a SUBSTed or ASSIGNed drive 



Explanation: SUBST. SUBST hides disk/device information 
necessary to CHKDSK. 

Action: Remove the substitution and try again. 

Cannot DISKCOMP to or from 
a Network drive 



Explanation: DISKCOMP. You cannot use DISKCOMP to 
compare files on a network drive or on a drive that is on 
your computer but is currently being shared on the network. 

Action: Use COMP *.* instead of DISKCOMP. If the disk 
is being shared, you can PAUSE the server, do 
DISKCOMP, then CONTINUE the server. 

Cannot DISKCOPY to or from 
a Network drive 



Explanation: DISKCOPY. You cannot use DISKCOPY to 
copy files to or from a network drive or a drive that is on 
your computer but is currently being shared on the network. 

Action: Use COPY *.* instead of DISKCOPY. You can 
also use the COPY command to copy individual files instead 
of the whole diskette. Be sure your diskette is formatted. If 
the disk is being shared, you can PAUSE the server, do 
DISKCOPY, then CONTINUE the server. 

Cannot do binary reads from a device 



Explanation: COPY. You used the /B parameter with a 
device name while trying to copy from the device. The copy 
cannot be performed in binary mode because COPY must 
be able to detect end-of-file from the device. 



A-19 



Action: Re-enter COPY and omit the /B parameter or use 
the /A parameter after the device name. 

Cannot edit .BAK file — rename file 



Explanation: EDLIN. Files with the extension .BAK are 
considered to be backup files, with more up-to-date 
versions of the files assumed to exist. Therefore, .BAK files 
shouldn't ordinarily be edited. 

Action: If it is necessary to edit the .BAK file, rename the 
file giving it an extension other than .BAK. Or else, copy 
the file and give the copy a different filename extension. 

Cannot FDISK a network drive 



Explanation: FDISK. You cannot format the fixed disk 
when the network is loaded. 

Action: No action required. 

Cannot find file object file 

Change diskette and press < ENTER > 



Explanation: LINK. The linker could not locate the 
specified object module on the drive. 

Action: Insert the correct diskette with the object file on it 
and press Enter. 

Warning: If it is necessary to change the diskette that 
contains the open VM.TMP file, you need to exit LINK 
by pressing Ctrl-Break instead of changing diskettes, 
and then restart LINK with the changing drive 
specified to locate the object file. Otherwise, there 
may be a loss of data on the diskette inserted. This 
usually occurs when using default drive value for the 
object file. 



A-20 



Cannot find library library file 
Enter new file spec: 



Explanation: LINK. The specified library could not be 
found on the drive. 

Action: Enter the correct letter for the drive the library is 
on. 

Warning: If it is necessary to change the diskette that 
contains the open VM.TMP file, you need to exit LINK 
by pressing Ctrl-Break instead of changing diskettes, 
and then restart LINK with the changing drive 
specified to locate the object file. Otherwise, there 
may be a loss of data on the diskette inserted. This 
usually occurs when using default drive value for the 
object file. 

Cannot find system files 



Explanation: FORMAT, SYS. The hidden files 
IBMBIO.COM and/or IBMDOS.COM were not found, and 
the current drive is not removable. 

Action: Change the current drive to one that has the system 
files in the root and try again. 

Cannot FORMAT a Network drive 



Explanation: FORMAT. You cannot use the FORMAT 
command to format a network drive or a drive on your 
computer being shared on the network. 

Action: If the drive is being shared, you can PAUSE the 
server, do FORMAT, then CONTINUE the server. 



A-21 



Cannot format a SUBSTed or ASSIGNed drive 



Explanation: FORMAT. The ASSIGN x=y was executed 
prior to the attempted execution of FORMAT. 

Action: Execute ASSIGN to restore the original drive letter 
assignment. Then proceed to execute FORMAT. 

Cannot JOIN to a network drive 



Explanation: You cannot use the JOIN command to join a 
local drive to a network drive or to join a network drive to a 
local drive. 

Action: No action required. 

Cannot LABEL a Network drive 



Explanation: You tried to create a new, or change an 
existing volume label on a redirected block device. 

Action: The suggested action is to retain the existing label 
on that drive. 

Cannot load COMMAND, system halted 



Explanation: DOS. DOS attempted to reload the command 
processor, but the area in which DOS keeps track of 
available memory was destroyed; or the command processor 
was not found in the path specified by the COMSPEC 
parameter. 

Action: Restart DOS. Don't forget to put the DOS diskette 
in the drive. 



A-22 



Cannot nest response file 



Explanation: LINK. You used @filespec within an 
automatic response file. Automatic response files cannot be 
nested. 

Action: 

1 . Change the initial auto response file to eliminate nested 
auto response file. 

2. Or, fix the syntax error if you did not intend this to be 
an auto response file. 

Cannot open list file 



Explanation: LINK. The directory or disk is full. 

Action: Insert another disk, or delete some files from the 
disk that is full. 

Cannot open overlay 



Explanation: LINK. The directory or disk is full. 

Action: Insert another disk, or delete some files from the 
disk that is full. 

Cannot open response file: filename 



Explanation: LINK. The automatic response file could not 
be found. 

Action: Include drive specifier and/or path for the response 
file. Place the file on the proper disk. 



A-23 



Cannot open run file 



Explanation: LINK. The directory or disk is full. 

Action: Insert another diskette, or delete some files from the 
disk that is full. 

Cannot open temporary file 



Explanation: LINK. The directory or disk is full. 

Action: Insert another disk, or delete some files from the 
disk that is full. 

Cannot RECOVER Entry, Processing Continued 



Explanation: CHKDSK. 
Action: No action required. 
Cannot RECOVER to a network drive 



Explanation: RECOVER. You cannot use the RECOVER 
command to recover files from a network drive or from a 
drive on your computer that is being shared on the network. 

Action: If the drive is being shared, you can PAUSE the 
server, do RECOVER, then CONTINUE the server. 

Cannot reopen list file 



Explanation: LINK. The original diskette was not actually 
replaced. 

Action: Restart the linker. 



A-24 



Cannot start COMMAND, exiting 



Explanation: DOS. While DOS was attempting to load 
another copy of the command processor, either the FILES = 
parameter in the configuration file was found to contain too 
small a value, or there is not enough available memory to 
contain the new copy of COMMAND.COM. 

Action: 

Restart DOS. 

• If necessary, increase the parameter value of FILES= 
parameter in CONFIG.SYS. 

Cannot use PRINT - use NET PRINT 



Explanation: PRINT. You cannot use the PRINT command 
on a network server computer. Use NET PRINT. 

Action: Use NET PRINT to print the files. 

CHDIR . . Failed Trying Alternate Method 

Explanation: CHKDSK. 
Action: Restart DOS and CHKDSK again. 
Cannot SUBST to a network drive 



Explanation: SUBST. You cannot use the SUBST command 
to substitute a drive for a network path or substitute a 
network drive for a local path. 

Action: No action required. 



A-25 



Cannot SYS to a network drive 



Explanation: SYS. You cannot use SYS to transfer system 
files to a network drive or to a drive on your computer that 
is currently being shared on the network. 

Action: If the drive is being shared, you can PAUSE the 
server, do SYS, then CONTINUE the server. 

Common area longer than 65536 bytes 



Explanation: LINK. User's program has more than 64K of 
communal variables. Note: At the present time, only 
Microsoft C programs can possibly cause this message to 
appear. 

Action: Rewrite your program using fewer or smaller 
communal variables. 

COMn: bbbb,p,d,s,t initialized 



Explanation: MODE. Informational message. The 
Asynchronous Communications Adapter is initialized. The 
values represent: 



n 


adapter (COM1 or 


bbbb 


baud rate 


P 


parity 




e even 




o odd 




n none 


d 


data bits 


s 


stop bits (1 or 2) 



A-26 



t type of serial device 

p serial printer (serial timeouts will be retried) 

- other serial device (serial timeouts will not be 
retried) 

Action: No action required. The feedback message from 
MODE shows its interpretation of the MODE command 
and the parameters you entered. 

Compare error at offset XXXXXXXX 



Explanation: COMP. Informational message. The files 
being compared contain different values at the displayed 
offset (in hexadecimal) into the file. The differing values 
are also displayed in hexadecimal. 

Action: No action required This message is for your 
information to give you the location that contains 
mismatching information in two files. 

Compare process ended 



Explanation: DISKCOMP. This is an informative message 
indicating that DISKCOMP is finished comparing. 

Action: No action required. 



A-27 



COM: ,e,7,l 
Compare error(s) on 
Track xx, side xx 



Explanation: DISKCOMP. One or more locations on the 
indicated track and side contain different information when 
the diskettes are compared. 

Action: This message is to inform you that there is a 
difference between diskettes. If you want an exact copy of 
a diskette, use DISKCOPY. 

Compare more diskettes (Y/N)? 



Explanation: DISKCOMP. 

• This message indicates completion of DISKCOMP. 

• You may compare more than one set of diskettes 
without re-entering the DISKCOMP command. 

Action: If you wish to compare another pair of diskettes, 
enter Y, and DISKCOMP will ask you to insert the required 
diskettes. If you do not want to compare any more 
diskettes, enter N. 

Compare more files (Y/N)? 



Explanation: COMP. COMP has finished comparing files. 
You may compare more files without re-entering the COMP 
command. 



Action: 



If you wish to compare the contents of two more files, 
enter Y, and COMP will ask you for the names of the 
files to compare. 

If you do not wish to compare more files, enter N. 



A-28 



Comparing x sectors per track, n side(s) 



Explanation: DISKCOMP. The jc indicates the number of 
sectors per track found on the first diskette (8 or 9). If you 
use /8, then the number 8 appears. The n will be either 1 or 
2, indicating the number of sides that DISKCOMP will 
compare on the two diskettes. This number is determined 
by the number of sides DISKCOMP was able to 
successfully read from the first track of the first diskette. 

Action: If x or n is not what you expected, let DISKCOMP 
finish comparing diskettes. Re-enter the DISKCOMP 
command with or without additional parameters. 

Configuration too large 



Explanation: DOS. Occurs when the number specified for 
the FILES or BUFFERS commands in the CONFIG.SYS 
file does not leave enough room for DOS to be loaded. 

Action: Restart DOS with a different diskette, and reduce 
the value specified for the FILES and/or BUFFERS 
commands. 

Contains xxx non-contiguous blocks 



Explanation: CHKDSK. Informational message. The file 
name preceding this message means that the file is not 
written sequentially on the disk — it is written in xxx pieces 
on different areas of the disk. 

This message is for your information and does not indicate a 
problem with the disk. 

Action: Since fragmented files take longer to read, you 
should consider copying badly fragmented files to another 
disk with the COPY command. This will record the file 
sequentially, resulting in better system performance when 
the file is read. 



A-29 



Convert directory to file (Y/N)? 



Explanation: CHKDSK. The directory name preceding this 
message means the directory contains too much invalid 
information to be usable as a directory. 

Action: 

• If you reply Y, CHKDSK will convert the directory to a 
file so that you may examine it with DEBUG. 

• If you reply N, the entry is not changed. 

xxx lost clusters found in yyy chains. 
Convert lost chains to files (Y/N)? 



Explanation: CHKDSK. Ctrl-Break was entered during a 
disk I/O operation. CHKDSK did not clean up the disk 
after encountering the Ctrl-Break. 



Action: 



If you reply Y and you have used the /F parameter, 
CHKDSK will recover each chain into a separate file. 

If you reply N, CHKDSK frees the blocks up so they 
can be allocated to new files. 

If CHKDSK was specified (no /F), then messages 
displayed afterwards are informational (no corrective 
action was taken). 



Copy another (Y/N)? 



Explanation: DISKCOPY. This message allows you to make 
exact images of additional diskettes without re-entering the 
DISKCOPY command. 



A-30 



Action: 

• If you wish to copy another entire diskette, enter Y. 
DISKCOPY asks you to insert the required diskettes. 

• If you do not wish to make any more copies, enter N. 
Copy complete 

Explanation: DISKCOPY. Informational message. 

Action: No action required. The source diskette contents 
have been successfully copied to the target diskette. 



Copying xxx tracks 

x sectors per track, n sides 



Explanation: DISKCOPY. The xxx will be 40 or 80 tracks. 
The jc will be 8, if the diskette was formatted using DOS 
1.1; or 9, if the diskette was formatted with DOS 2.00 or 
2.10; or 15 if the diskette was formatted using DOS 3.00. 
The n is either 1 or 2 indicating the number of sides. If the 
diskette has been formatted double sided and subsequently 
formatted single sided, DISKCOPY will say it is copying 2 
side(s) In this situation, use DISKCOPY /l. 

If the diskette was formatted with FORMAT /8, 
DISKCOPY will say Copying 9 sectors. This is due to the 
fact that FORMAT will format the disk with 9 sectors, but 
initializes 8. DISKCOPY mimics FORMAT in that it says, 
Copying 9 sectors, but the target diskette ends up with 8 
sectors per track. 

Action: No action required. 



A-31 



Current drive is no longer valid 



Explanation: COMMAND. While attempting to get the 
current drive for the DOS prompt ($p), COMMAND found 
that the drive is no longer valid. This can occur if your 
current drive is a network drive and you delete the network 
drive. 



Action: Change your current drive to a valid drive. 



D 



Data record too large 



Explanation: LINK. LEDATA record contains more than 
1024 bytes of data. 

Action: This is a translator error. Note the translator 
(compiler or assembler) that produced the incorrect object 
module and the circumstances under which it was produced, 
and report the information to your dealer. 

Delete current volume label (Y/N)? 



Explanation: LABEL. You can avoid deleting the existing 
label by pressing Enter rather than typing a new volume 
label. 

Action Type n to keep the current label. 

DF 



Explanation: DEBUG. Double flag. Conflicting codes were 
specified for a single flag. 

Action: DEBUG is informing you that a flag can be changed 
only once per Register (R F) command. 



A-32 



Dir path listing for volume xxxxxxx 

Explanation: TREE. Informational message telling you the 
volume label of the disk. 

Action: No action required. 

Directory entries adjusted 



Explanation: VDISK. VDISK found it necessary to adjust 
the number of directory entries in the 
DEVICE=VDISK.SYS in the CONFIG.SYS command. 

Action: No action required. 

Directory is joined, 

tree past this point not processed. 



Explanation: CHKDSK. This is an informative message. 
Joining a drive to another tree will extend the tree. The 
allocation on the joined device is completely separate, and 
there is no reason to CHKDSK across devices. CHKDSK is 
skipping over the joined device. 

Action: No action required. 

Directory is totally empty, no . or .., 
tree past this point not processed. 



Explanation: A subdirectory was found that did not 
properly contain a . or .. entry. This usually happens when 
DOS is not given a chance to update the disk properly. 
During the updating process, the system may have shut 
down, or you may have reloaded the system before DOS 
finished the update. 

Action: Try using the RECOVER command to try to 
recover files on the damaged disk. 



A-33 



Disk boot failure 



Explanation: DOS. An error occurred when you tried to 
load DOS into memory. 

Action: Restart the system. If subsequent attempts to start 
the system also fail, place a backup DOS diskette in drive A 
and restart your system. 

Disk error reading drive x 



Explanation: You tried to read absolute sectors on a 
network drive. This cannot be done. 

Action: If possible, us the Loader Write filespec option of 
this DEBUG command. 

Disk error writing drive x 



Explanation: You tried to write to absolute sectors on a 
network disk. This cannot be done. 

Action: If possible, use the Loader Write filespec option of 
this DEBUG command. 

Disk error reading FAT X 



Explanation: CHKDSK. The File Allocation Table indicated 
is invalid. This can be caused by a power failure while a file 
is open. 

Action: If this message appears twice for FATs 1 and 2, 
format the disk to make it usable again. If FORMAT fails, 
the disk is probably unusable. 



A-34 



Disk error writing FAT X 



Explanation: CHKDSK. A disk error was encountered 
while CHKDSK was attempting to update the file allocation 
table (FAT) on the specified drive. X will be 1 or 2, 
depending on which of the 2 copies of the file allocation 
table could not be written. 

Action: If this message appears twice, for FAT's 1 and 2, 
format the disk to make it usable again. If FORMAT fails, 
discard the disk since it is probably unusable. 

Disk full. Edits lost 



Explanation: EDLIN. An End Edit command ended 
abnormally because the disk is full (not enough free space 
to save the entire file). Any editing done to the file is lost. 

Action: Obtain a fresh diskette, copy the file on to the fresh 
diskette, and start editing again. 

Disk not compatible 



Explanation: FORMAT. You cannot use the DOS 
FORMAT command to format a diskette using the drive 
you specified. This message informs you that the drive you 
specified is not supported by the IBM device interfaces that 
FORMAT requires. 

Action: Obtain a compatible disk drive. 

Disk unsuitable for system disk 



Explanation: FORMAT. A defective track was detected 
where the DOS files were to reside. The diskette can be 
used only for data. 

Action: The diskette can be used only for data. Use another 
disk if you wish to copy DOS files. 



A-35 



Diskette/Drive not compatible 

Explanation:. DISKCOPY, DISKCOMP. The destination 
diskette /drive is different from the source diskette/drive in 
a way that prohibits the copy or compare. For example, you 
cannot DISKCOPY a double-sided diskette to a single-sided 
diskette or DISKCOMP a 96 tpi diskette in a 48 tpi drive 
with a 96 tpi diskette in a 96 tpi drive. 

Action: Match the diskette/drive types and try again. 

Diskettes compare OK 

Explanation: DISKCOMP. Informational message. The 
two diskettes just compared contain identical information. 

Action: No action required. 

Divide overflow 



Explanation: DOS. A program tried to divide a number by 
zero, or a logic error caused an internal malfunction. The 
program ends and you return to DOS. 

Action: Correct the programming error and continue. If this 
is a purchased program, take it back to your dealer. 

Do you see the leftmost 9? (Y/N) 



Explanation: MODE. ,R,T was specified. 

Action: Respond Y or N. This prompt is repeated until you 
respond Y. 



A-36 



Do you see the rightmost 9? (Y/N) 



Explanation: MODE. ,L,T was specified. 

Action: Respond Y or N. This prompt is repeated until you 
respond Y. 

Do you wish to use the entire fixed 
disk for DOS (Y/N) ? [ ] 



Explanation: FDISK. When the "Create DOS Partition" 
option is used on the current fixed disk and the fixed disk 
has never been set up, this question is asked. 

Action: 

• If you enter Y, the entire current fixed disk is used for 
DOS and it will be made active. 

• If you enter N, you are asked to enter the limits of the 
DOS partition you want to create. 

Command format:DISKCOPY d: d: [/l] 



Explanation: DISKCOPY. An invalid parameter or filename 
was typed. 

Action: Check the command format, and re-enter the 
command. 

DOS partition created 



Explanation: FDISK. Informational message. A DOS 
partition has been created on the fixed disk. 

Action: You will need to run the FORMAT command on 
the DOS partition before you can store files on the fixed 
disk. 



A-37 



DOS partition deleted 

Explanation: FDISK. Informational message. A DOS 
partition no longer exists on the fixed disk. 

Action: No action required. 

Drive types or diskette types not compatible 



Explanation: DISKCOMP or DISKCOPY. The source and 
target diskettes or drives are not compatible. 

Action: Refer to the DISKCOMP or DISKCOPY 
commands for the allowable combinations. 

Dup record too complex 



Explanation: LINK. A DUP record in an assembler source 
program is too deeply nested or too complicated for the 
linker to expand. A single DUP requires 1024 bytes before 
expansion. 

Action: Reduce the number of structures or DUP statements 
in the assembler source program, create a new object 
module, and retry LINK. 

Duplicate filename or file not found 



Explanation: RENAME. You tried to rename a file to a 
filename that already exists on the diskette, or the file to be 
renamed could not be found on the specified (or default) 
drive. RENAME is warning you that you are using the 
same name for two files, or else it cannot find the file you 
are trying to rename. 

Action: Did you type the filename correctly? Take a second 
look at the filename you want to change, and re-enter the 
RENAME command. 



A-38 



E 



Enter the number of the partition you 
want to make active : [ 1 



Explanation: FDISK. The "Change Active Partition" option 
is requesting you to enter the number of the partition you 
want to make active. 

Action: Type the number of the partition that you want to 
make active on the current fixed disk. Then press the Enter 
key. 

Note: The partitions are displayed above the prompt. 

Enter partition size : [dddd] 



Explanation: FDISK. The "Create DOS Partition" option is 
requesting that you enter the size of the partition you wish 
to create. 

Action: The number shown in the brackets is the default 
size. If you only press Enter, that size will be used as the 
partition size. Otherwise, enter the desired size, then press 
Enter. 

Enter primary file name 



Explanation: COMP. DOS asks you for primary filename. 

Action: Enter the filespec of the first of two files to be 
compared. 



A-39 



Enter 2nd file name or drive id 



Explanation: COMP. DOS asks you for filespec of second of 
the two files you want compared. 

Action: Enter the filespec of the second of two files to be 
compared, or just enter the drive letter if the filename is the 
same as the primary filename. 

Enter starting cylinder number..: [dddd] 



Explanation: FDISK. The "Create DOS Partition" option is 
requesting that you enter the starting cylinder number for 
the DOS partition you are creating. The value in the 
brackets is the default value. It is the starting cylinder of 
the largest piece of free space on the current fixed disk. 

Action: Type the starting cylinder number and press Enter, 
or just press Enter to use the default value. 

Entry Error 



Explanation: EDLIN. EDLIN has detected a syntax error. 

Action: Correct the syntax error on the last command. 

Entry has a bad attribute 
(or size or link) 



Explanation: CHKDSK. This message may begin with one 
or two periods, indicating which entry in the subdirectory 
was in error. One period indicates the current directory is 
in error. Two periods mean the parent directory is in error. 
If you did not enter the /F parameter, no corrective action is 
taken. 

Action: Enter: CHKDSK /¥. CHKDSK will* then try to 
correct the error. 



A-40 



EOF mark not found 



Explanation: COMP. COMP could not find the end of valid 
data in the last block of the files being compared. This 
message usually occurs when comparing non-text files; it 
should not occur when comparing text files. 

Action: For more details, see the COMP command in 
Chapter 2. 

Error found, F parameter not specified 
Corrections will not be written to disk 



Explanation: CHKDSK. Informational message. An error 
was found and you have not used the /F parameter. 
CHKDSK performs its analysis as though it were going to 
correct any errors detected, so that you can see the results 
of its analysis, but it will not actually write the corrections 
on the disk. 

Action: No action required. 

Error in EXE file 



Explanation: DOS. An error was detected in the relocation 
information placed in the file by the LINK program. This 
may be due to a modification to the file. 

Action: 

• If you are using a purchased program, rerun the 
program using your backup copy. 

• If you still have trouble see your authorized dealer. 

• If you are using a program you wrote yourself, go 
through the LINK procedure again. 



A-41 



Error in EXE or HEX file 



Explanation: DEBUG. The file contained invalid records or 
characters. 

Action: Get another copy of the program, and run DEBUG 
again. 

Error loading operating system 



Explanation: DOS. A disk error occurred while attempting 
to load your operating system from fixed disk. 

Action: Restart the system. If the error persists after several 
tries, restart the system, (you should start DOS from your 
DOS diskette) and use the SYS command to transfer a new 
copy of DOS to your fixed disk. 

Error reading fixed disk 



Explanation: FDISK. The FDISK program was unable to 
read the startup record of the current fixed disk after five 
tries. 

Action: Try the FDISK program again. If after several tries 
you still get the same error, consult the IBM Guide to 
Operations, "Problem Determination" section. If you still 
cannot solve the problem, see your IBM Personal Computer 
Dealer. 

Error writing fixed disk 

Explanation: FDISK. The FDISK program was unable to 
write the startup record of the current fixed disk after five 
tries. 

Action: Try the FDISK program again. If after several tries 



A-42 



you still get the same error, consult the IBM Guide to 
Operations, "Problem Determination" section. If you still 
cannot solve the problem see your IBM Personal Computer, 
Dealer. 

Error writing to device 



Explanation: Commands. Informational message. DOS 
encountered an I/O error when writing output to a device. 
The device is unable to handle the number of bytes 
requested. 

Action: Change amount of data in the file and retry the 
command. 

Errors on list device indicate that 
it may be off-line. Please check. 



Explanation: PRINT. The device being used for background 
printing is off line. This message only appears when the 
device is off line and you enter a new PRINT command. 

Action: Make sure the printing device is connected and 
switched on. 

EXE and HEX files cannot be written 



Explanation: DEBUG. This error normally occurs when you 
load a .HEX or .EXE file, modify it, and then attempt to 
write the file back to a diskette. 

You should understand that .EXE and .HEX files contain 
loading information that is used to load the file. When 
DEBUG is executed, it loads the .EXE file while at the 
same time discarding the information. During direct 
execution of an .EXE file, the same thing happens. When 
you use DEBUG to write an .EXE file, the information is 
gone; therefore, a correct .EXE file cannot be generated. 
That is why you get this error message. 



A-43 



The error might also be caused by the fact that the data 
consists of a .COM file loaded in with DEBUG and you are 
now trying to write it to an .EXE or HEX file. This is not 
possible. The data requires a backward conversion that 
DEBUG doesn't support. 

Action: Rename the file using a different extension, then 
execute DEBUG. DEBUG then reads the file in instead of 
loading it, and the file can now be written out. Reading the 
file in does not alter the records or data in the file. 

Extender card switches do not match the system memory size 



Explanation: VDISK. The Extender card switch settings do 
not reflect the total amount of memory in the system unit. 
Although the extender card switch settings may be set 
correctly for your system, VDISK does not support memory 
in an expansion unit. 

Action: Check the settings on the extender card. 

EXEC failure 



Explanation: Commands. DOS encountered an error while 
reading a command from disk, or the FILES = command in 
the configuration file (CONFIG.SYS) does not specify a 
large enough value. 

Action: Increase the FILES= value. Restart DOS. If 
restarting DOS does not work, then there may be a problem 
with the disk itself. 



A-44 



File allocation table bad, drive x 
Abort, Retry, Ignore? 



Explanation: DOS. 

Action: See the message Disk error reading drive x under 
"Device Error Messages" at the beginning of this appendix. 
If this error persists, the disk is unusable and should be 
formatted again. 

File AND File 



Explanation: COMP. Informational message. This message 
indicates the full path and filenames of the two files being 
compared. 

Action: No action required. 

File xxx canceled by operator 

Explanation: PRINT. Informational message. This message 
appears on the printer after you cancel the printing of a file 
to serve as a reminder that the printout is incomplete. 

Action: No action required. 

File Cannot be Converted 

Explanation: EXE2BIN. 
Action: No action required. 



A-45 



File cannot be copied onto itself 



Explanation: COPY. You tried to COPY a file and place the 
copy (with the same name as the original) in the same 
directory and on the same disk as the original file. 

Action: Change the name given to the copy, or put it in a 
different directory, or put it on another disk. 

File creation error 



Explanation: DOS and commands. An unsuccessful attempt 
was made to add a new filename to the directory or to 
replace a file that was already there. 

Action: If the file was already there, check whether the file 
is marked read only and cannot be replaced. Otherwise, run 
CHKDSK to determine if the directory is full, or if some 
other condition caused the error. 

File is cross-linked: 
on cluster xx 



Explanation: CHKDSK. This message appears twice for 
each cross-linked cluster number, naming the two files in 
error. The same data block is allocated to both files. 

Action: No corrective action is taken automatically. You 
must correct the problem by doing the following: 

1. Make copies of both files (use COPY command). 

2. Delete the original files (use ERASE command). 

3. Review the files for validity and edit as necessary. 



A-46 



filename is currently being printed 
filename is in queue 



Explanation: PRINT. Informational message. These 
messages appear together when you issue a PRINT 
command with no parameters. They occur individually 
when you queue the first or a subsequent file for printing. 

Action: No action required. 

File is READ-ONLY 

Explanation: EDLIN. The file you specified is read-only. 

Action: Use the ATTRIB command to change the attribute 
of the file to read-write. 

File name must be specified 



Explanation: EDLIN. You typed EDLIN without specifying 
the file that you wanted to edit. 

Action: Type the filename on the command line when you 
use EDLIN. 

File not found 



Explanation: DOS and commands. A file named in a 
command or command parameter does not exist in the 
directory of the specified (or default) drive. 

Action: Retry the command using the correct filename. 



A-47 



File not in print queue 

Explanation: PRINT. The file you want to cancel is not in 
the print queue. 

Action: No action required. 

File sharing conflict 

Explanation: COMP. Unable to compare files because one 
file is in use by another process. 

Action: Try the compare again at a later time. 

Files are different sizes 

Explanation: COMP. Informational message. The sizes of 
the files to be compared do not match. This means that a 
comparison cannot be done because one of the files 
contains data which does not match the data in the other 
file. 

Action: No action required. 

Files compare OK 

Explanation: COMP. Informational message. The two files 
just compared contain identical information. 

Action: No action required. 

Files were backed up xx/xx/xx 



Explanation: RESTORE. Informational message telling you 
the date the files were backed up on. 

Action: No action required. 



A-48 



First cluster number is invalid, 
entry truncated 



Explanation: CHKDSK. Informational message. The file 
whose name precedes this message contains an invalid 
pointer to the data area. If you specify /F parameter the 
file will be truncated to a zero length file. 

Action: No action required. 

Fixed Backup device is full 

Explanation: BACKUP. The fixed disk media target is full. 
Therefore, no more files can be backed up onto that device. 

Action: No action required. 

Fixed disk already has a DOS partition. 



Explanation: FDISK. You chose the "Create DOS 
Partition" option for a fixed disk that already has a DOS 
partition. 

Action: Return to the Main Menu and choose option 4, 
Display Partition Data. Read Chapter 3 before continuing. 

Fixup offset exceeds field width near xxxx in 
xxxxxx offset xxxx 

Explanation: LINK. Some possible causes: 1) A group is 
larger than 64K bytes. 2) The linker has been asked to fix 
up an intersegment short jump or intersegment short call. 
3) A data item's name conflicts with that of a subroutine in 
a library included in the link. 4) In an assembly language 
source file, the user has an EXTRN declaration inside the 
body of a segment. 5) A data item (DB, DW, etc.) was 
declared outside all segments. 

Action: Revise the source and recreate the object file. 



A-49 



Fixups needed - base segment (hex): 



Explanation: EXE2BIN. The source (.EXE) file contains 
information indicating that a load segment is required for 
the file. 

Action: Specify the absolute segment address at which the 
finished module is to be loaded. 

Note: We do not recommend using such a program as 
a .COM file because the program is dependent upon 
being loaded at a specific memory location. 

FOR cannot be nested 



Explanation: BATCH. More than one FOR subcommand 
was found on one command line in the batch file. 

Action: Use only one FOR subcommand per command line. 
Then retry command. 

Format failure 



Explanation: FORMAT. A disk error was encountered 
while creating the target disk. 

Action: The disk is unusable. Use another disk and retry the 
command. 

Formatting while copying 



Explanation: DISKCOPY. Informational message. The 
target diskette was found to contain unformatted tracks. 
DISKCOPY will format the remainder of the target diskette 
as it copies data. 

Action: No action required. 



A-50 



Note: If this message is followed by the message 
Incompatible drive types, you tried to copy a dual-sided 
diskette to a drive that does not have dual-sided 
capability. This cannot be done. Processing ends and 
the target diskette contains no useful data. 



H 



Has invalid cluster, file truncated 



Explanation: CHKDSK. The file name preceding this 
message means that the file contains an invalid pointer to 
the data area. 

Action: Use the /F parameter to truncate the file at the last 
valid data block. No corrective action occurs if CHKDSK is 
executed without the /F parameter. 



Illegal Device Name 

Explanation: MODE. The specified printer must be: 

. LPT1: 

. LPT2: 

or, 

. LPT3: 

The specified Asynchronous Communications Adapter must 
exist and be: 

. COM1: 

or, 



A-51 



. COM2: 

There must be no more than one blank between MODE and 
its parameters. 

Action: Use the correct device name and retry the 
command. 

Incompatible system size 



Explanation: SYS. The target diskette contained a copy of 
DOS that is smaller than the one being copied. The system 
transfer does not take place. 

Action: Format a blank diskette (use the FORMAT /S 
command) and then copy any files to the new diskette. 

Incorrect DOS version 



Explanation: Commands. The command you just entered 
requires a different version of DOS than the one you are 
using. 

Action: Obtain correct version of DOS and retry command. 

Incorrect DOS version, use DOS 2.00 or later 



Explanation: LINK. Linker will not run on versions of DOS 
prior to DOS 2.00. 

Action: Reboot your system with DOS 2.00 or a later 
version, and try linking again. 

Incorrect parameter 



Explanation: SHARE. A parameter specified in the SHARE 
command is invalid. 

Action: Check the command syntax and retry the command. 



A-52 



Infinite retry on parallel printer time-out 



Explanation: MODE. "P" was specified in Option 1, 
requesting continuous retry on time-out errors. 

Action: No action required. 

Insert backup diskette xx in drive x: 
Strike any key when ready 



Explanation: RESTORE. 

Action: Insert the backup diskette(s) in sequence in 
accordance with the prompt. Press any key and RESTORE 
will continue. 

Insert backup source diskette in drive x 
Strike any key when ready 



Explanation: BACKUP. Informational prompt telling you to 
insert the source backup. 

Action: Insert the source in drive x and strike any key. 

Insert backup target diskette y in drive x 
Strike any key when ready 



Explanation: BACKUP. Informational prompt telling you to 
insert the target backup diskette. 

Action: Insert the target in drive x and strike any key. 

Insert disk with \ COMMAND.COM in drive A 
and strike any key when ready 



Explanation: DOS. DOS is attempting to reload the 
command processor, but COMMAND.COM is not on the 
drive that DOS was started from. 



A-53 



Action: Insert the DOS diskette in the indicated drive and 
press any key. 

Insert diskette for drive x and press any key 
when ready 



Explanation: DOS. In a single diskette system, Drive A: or 
B:, which is not the current default drive, is being 
referenced, so DOS is asking for the diskette corresponding 
to that drive. 

Action: If the diskette for x is different than the one 
currently in the drive, insert the appropriate diskette and 
press any key. 

Insert disk with batch file 
and strike any key when ready 



Explanation: DOS. The diskette that contained the batch 
file being processed was removed. The batch processor is 
trying to find the next command in the file. 

Action: Insert the diskette in the appropriate drive and press 
any key. Processing will continue. 

Insert DOS disk in x 

and strike any key when ready 



Explanation: FORMAT. FORMAT is trying to load the 
DOS files, but the indicated drive x does not contain the 
DOS diskette. 

Action: Follow the prompt and insert the DOS diskette. 
Press any key and processing continues. 



A-54 



Insert DOS diskette in drive A: 
Press any key when ready . . . 



Explanation: FDISK. You have successfully created the 
DOS partition on the current fixed disk. 

Action: Insert the DOS diskette into drive A and press any 
key. This restarts your IBM Personal Computer. 

The current fixed disk is now assigned a fixed disk letter and 
you can now FORMAT the fixed disk. 

Insert first diskette in drive x 
Insert second diskette in drive x 



Explanation: DISKCOMP. 

Action: Insert the first (or second) of the two diskettes to be 
compared into the indicated drive. One or both of these 
messages is followed by the message Strike any key when 
ready. Press a key and the comparison starts. 

Insert last backup target in drive x 



Explanation: BACKUP. Informational prompt. The /A 
parameter was specified. 

Action: Insert the last backup target used in the previous 
backup. 

Insert new diskette for drive x 
and press ENTER when ready 



Explanation: FORMAT. Prompt asking you to insert the 
diskette you want to format. 

Action: Insert the diskette you want to format and press 
Enter. 



A-55 



Insert source diskette in drive x 
Insert target diskette in drive x 



Explanation: DISKCOPY. 

Action: Insert the appropriate diskette into the indicated 
drive, and press any key when asked. The copying process 
starts. 

Insert restore source xx in drive yy 
Strike any key when ready 



Explanation: RESTORE. This is the informational prompt 
for removable media. 

Action: Insert the source in drive yy and strike any key. No 
action required. 

Insert restore target xx in drive yy 
Strike any key when ready 



Explanation: RESTORE. This is the informational prompt 
for removable media. 

Action: Insert the target in drive yy and strike any key. 

Insert System disk in x 

and strike any key when ready 



Explanation: SYS. SYS is trying to load the DOS files, but 
the indicated drive x does not contain the DOS diskette. 

Action: Follow the prompt and insert the DOS diskette. 
Press any key and processing continues. 



A-56 



Insufficient disk space 



Explanation: DOS and commands. The disk does not 
contain enough free space to contain the file being written. 

Action: If you suspect this condition is invalid, run 
CHKDSK to determine the status of the disk. Otherwise, 
use another disk and retry the command. 

Insufficient memory 



Explanation: Commands. The amount of available memory 
is too small to allow these commands to function. 

Action: Change the BUFFERS = parameter in the 
CONFIG.SYS file to a smaller value (if you have specified 
BUFFERS=), restart the system and try the command 
again. If the message still appears, your system does not 
have enough memory to execute the command. 

Insufficient memory for system transfer 



Explanation: FORMAT and SYS. There is not enough 
memory on the disk. 

Action: No action required. 

Insufficient room in root directory 

Erase files from root and repeat CHKDSK. 



Explanation: CHKDSK. You instructed CHKDSK to create 
files from the "lost" data blocks it has found, but the root 
directory is full, and all of the lost chains could not be 
recovered into files. 

Action: 

1 . Copy some of the recovered files to another disk for 
further examination. 



A-57 



2. Delete the recovered files from the disk you are 
checking. 

3. Run CHKDSK again to recover the remainder of the 
lost data. 

Insufficient space on disk 



Explanation: DEBUG. A write command was issued to a 
disk that doesn't have enough free space to hold the data 
being written. 

Action: If you are writing to a diskette, you can insert a 
diskette that has enough free space, then reissue the write 
command. Otherwise, you should erase files from the disk 
and run DEBUG again. 

Insufficient stack space 



Explanation: LINK. There is not enough memory to run the 
linker. 

Action: Restart the system to free some memory that was 
used by installable device drivers such as VDISK, and 
terminate and stay resident programs such as PRINT and 
GRAPHICS. 

Intermediate file error during pipe 



Explanation: DOS. DOS is unable to create one or both of 
its intermediate files because the default drive's root 
directory was full, or DOS is unable to locate the piping 
files, or the disk does not have enough space to hold the 
data being piped. 

Action: Erase some files from the default drive's root 
directory, and reissue the command that failed. If you get 
the same message, one of the programs in the command line 
has erased one or both of the piping files. Correct the 
program and reissue the command line. 



A-58 



Invalid baud rate specified 



Explanation: MODE. 

Action: Specify the baud rate as 110, 150, 300, 600, 1200, 
2400, 4800, or 9600 (you need specify only the first two 
characters of the number). 

Invalid characters in volume label 



Explanation: FORMAT. One or more of the characters you 
entered in the volume label is not a valid filename character, 
or the name contained a period (volume labels contain 1 to 
1 1 valid characters without a period). 

Action: Retry using valid characters. 

Invalid COMMAND.COM in drive n 



Explanation: DOS. When DOS tried to reload the command 
processor, the copy of COMMAND.COM on the disk was 
found to be an incorrect version. 

Action: Insert the correct DOS diskette and press any key to 
continue. 

Invalid country code 



Explanation: SELECT, COUNTRY. The country code 
specified in COUNTRY= command in CONFIG.SYS or 
input to the SELECT command is not available. 

Action: See SELECT command in Chapter 7 or "Creating 
a CONFIG.SYS File" in Chapter 4 for the correct country 
code and try again. 



A-59 



Invalid current directory 

Explanation: CHKDSK. CHKDSK attempted to read the 
current directory. It found an unrecoverable error on the 
disk. 

Action: No action required. 

Invalid date 

Explanation: DATE. You entered an invalid date or 
delimiter. The only valid delimiters in a date entry are 
hyphens (-) and slashes (/). 

Action: Re-enter valid date. 

Invalid device 

Explanation: CTTY. The device name you specified is an 
invalid name to DOS. 

Action: Retry command using valid device name. 

Invalid directory 

Explanation: DOS and commands. One of the directories in 
the specified path does not exist. 

Action: Retry command using valid directory. 

Invalid disk change 



Explanation: The diskette in the high-capacity drive was 
changed while files were still open on the diskette. 

Action: Reinsert the correct diskette. 



A-60 



Invalid drive in search path 



Explanation: DOS. An invalid drive specifier was found in 
one of the paths specified in the PATH command. 

This message appears when DOS attempts to locate a 
command or batch file, not at the time you issued the 
erroneous PATH command. 

Action: 

1. Enter PATH. This displays the PA THs you previously 
defined. 

2. Find the invalid specifier. 

3. Re-enter the PATH command with the valid drive 
specifier and the paths you desire. 

Invalid drive or filename 



Explanation: RECOVER. The drive or filename specified is 
invalid. 

Action: No action required. 

Invalid drive specification 
Specified drive does not exist, 
or is non-removable 



Explanation: DOS and commands. An invalid drive 
specification was just entered in a command or in one of its 
parameters. 

Action: Re-enter the command using a valid drive specifier. 



A-61 



Invalid drive specification 

Source and Target drives are the same 



Explanation: BACKUP and RESTORE. You cannot have 
the same drive specifiers for the source and target drives. 

Action: Specify a different drive letter for the source and 
target drives. 

Invalid filename or file not found 



Explanation: RENAME or TYPE. You tried to rename a 
file that was either invalid or not found in the specified 
directory. 

TYPE does not allow global filename characters. 

Action: No action required. 

Invalid format file 

Explanation: LINK. A library is in error. 

Action: Restore library file from your backup disk and try 
again. 

Invalid media or track bad - disk unusable 



Explanation: FORMAT. FORMAT was unable to format 
track on the specified media. This error occurs if: 

• Track is unusable. Track is where the boot record, 
file allocation table, and directory must reside. If track 
is bad, the disk is unusable. 

• The diskette type and drive type are incompatible. You 
tried to format a double-sided diskette in a 
high-capacity drive, or a high-capacity diskette in a 
double-sided drive. 



A-62 



Action: For the first case, obtain another disk and retry the 
FORMAT command. For the second case, retry the 
FORMAT command specifying the /4 parameter. 

Invalid number of parameters 



Explanation: Commands. You have specified too few or too 

many parameters for the command you issued. 

Action: Review this command in the "Commands" section 
of this book. 



Invalid numeric parameter 



Explanation: LINK. The numeric value is not in digits. 

Action: Run LINK again and name the numeric parameter 
with values of through 9 for each digit. 

Invalid numeric switch specification 
switch error: "s: xxx" 



Explanation: LINK. Typographical error entering value for 
one of the LINKER switches, such as entering a character 
string for a switch that requires a numeric value. 

Action: No action required. Linker will abort. 

Invalid object module 



Explanation: LINK. Object module(s) was incorrectly 
formed or unobserved errors occurred during compilation. 
The disk may be bad. 

Action: Recompile the module to either the same or a 
different disk. 



A-63 



Invalid parameter 



Explanation: DOS and commands. One or more of the 
parameters entered for these commands is not valid. 

Action: If the program expects a drive specifier, enter a 
colon following the drive letter. In other cases, make sure 
the character following the slash (/) is valid for the program 
being run. For JOIN and SUBST see the specific command 
in Chapter 7 for valid parameters. 

Invalid parameters 



Explanation: MODE. 

• No parameters were entered 

• The first parameter character was other than L, or C 

• The first parameter was other than 40, 80, BW40, 
BW80, CO40, CO80, MONO, L, R 

• The display adapter the parameter refers to is not 
present in the machine. 

Action: Check the preceding list and correct accordingly. 

Invalid partition table 

Explanation: Start-up. While attempting to start DOS from 
your fixed disk, the start-up procedures detected invalid 
information in the disk's partition information. 

Action: 

1 . Start DOS from the diskette. 

2. Use the FDISK command to examine and correct the 
fixed disk partition information. 



A-64 



Invalid path 



Explanation: TREE, BACKUP, RESTORE. The command 
was unable to use a directory whose name was found in 
another directory. 

Action: Run CHKDSK to find out what is wrong with the 
directory structure. 

Invalid path, not directory 
or directory not empty 



Explanation: RMDIR. 

• The specified directory was not removed because one 
of the names you specified in the path was not a valid 
directory name. 

or, 

• The directory you specified still contains entries for 
files or other subdirectories (with the exception of the 
and .. entries). 

• You cannot remove a current directory. 
Action: Try one of the following: 

• Correct the invalid directory name in the path. 

• Delete any files or remove any subdirectories in the 
directory. 

• Change to a different subdirectory and try again. 



A-65 



Invalid path or file name 

Explanation: ATTRIB or COPY. You specified a directory 
or file name that does not exist. 

Action: Use correct name. Check for the following. Then 
retry command: 

• Correct spelling of names 

• Valid directory names 

• Existence of file in the subdirectory specified 
Invalid subdirectory 



Explanation: CHKDSK. Invalid information was detected in 
the subdirectory whose name precedes this message. 

Action: CHKDSK attempts to correct the error if you have 
used the /F parameter. For more specific information 
about the nature of the error, run CHKDSK with the /V 
parameter. 

Invalid switch 



Explanation: LINK. The character indicated on the 
preceding line is not a valid linker parameter (switch). 

Action: Review Chapter 9, "The Linker (Link) Program" to 
determine which characters are a valid link parameters 
(switches). 

Invalid switch character 



Explanation: VDISK. VDISK encountered a forward slash 
in the DEVICE=VDISK.SYS CONFIG.SYS command, but 
the following character was not an E. VDISK will attempt 
to install the virtual disk in low memory. 



A-66 



Action: No action required. 
Invalid time 

Explanation: TIME. An invalid time or delimiter was 
entered. 

Action: Re-enter the correct time. The only valid delimiters 
are: 

• A colon (:) between the hours and minutes 

• A colon (:) between the minutes and seconds 

• A period (.) between the seconds and hundredths of a 
second. 



Label not found 



Explanation: Batch. Informational message. A GOTO 
command named a label that does not exist in the batch file. 
This caused the system to read to the end of the batch file, 
ending batch processing. 

Action: If you do not want the GOTO to exit the batch file, 
edit the batch file and put the label in the desired location. 

Last backup target not inserted 



Explanation: BACKUP. The /A parameter was specified, 
but the removable target was not the last in the backup 
sequence. 

Action: No action required. 



A-67 



*** Last file not backed up *** 

Explanation: BACKUP. The fixed target became full while 
the file was being backed up. There is no room for the 
entire file, so the backup file is deleted and this message is 
issued. 

Action: No action required. 

Line too long 



Explanation: EDLIN. Upon replacing a string, the 
replacement caused the line to expand beyond the 
253-character limit. The REPLACE text command is 
ended abnormally. 

Action: Split the long line into shorter lines; then issue the 
REPLACE text command again. 

List output is not assigned to a device 



Explanation: PRINT. The list device specified is not a valid 
device to PRINT to. 

Action: Invoke PRINT again and specify a valid list device. 
Trailing colon is not needed. 

LPT#: not rerouted. 



Explanation: MODE. Informational message. The parallel 
printer will now receive its own output, even if this printer's 
output had previously been rerouted to a serial device. 

This message is provided for your information and indicates 
cancellation of any previous redirection that may have been 
in effect, because you have set the printer width or vertical 
spacing. 

Action: No action required. 



A-68 



LPT#: rerouted to COM/?: 



Explanation: MODE. Informational message 

This message is provided for your information and indicates 
that any request that would normally have gone to the 
parallel printer LPT# (#= 1, 2, or 3) is sent instead to the 
serial device COMn {n=\ or 2). 

Action: No action required. 

LPT#: set for 80 



Explanation: MODE. Informational message. You tried to 
set the printer line length to 80 characters by requesting 
standard type format. 

This message is provided for your information. If the 
attempt was unsuccessful, an error message will follow this 
message on the screen. 

Action: No action required 

LPT#:setforl32 



Explanation: MODE. Informational message. You tried to 
set the printer line length to 132 characters by requesting 
compressed type format. 

If the attempt is unsuccessful, an error message will follow 
this message on the screen. 

Action: No action required. 



A-69 



M 



Make sure a diskette is inserted into 
the drive and the door is closed 



Explanation: DISKCOMP and DISKCOPY. The drive is 
empty or the drive door is left open. 

Action: Insert a diskette or close the drive door. 

Maximum available space is xxxx 
cylinders at cylinder xxxx. 



Explanation: FDISK. Informational message. The "Create 
DOS Partition" option displays the largest available piece of 
space on the current fixed disk. These numbers are also 
used as the defaults for the two prompts that will follow. 

Action: No action required. 

Memory allocation error 

Cannot load COMMAND, system halted 



Explanation: DOS. A program destroyed the area in which 
DOS keeps track of available memory. 

Action: Restart DOS. 

Mismatch DOS level number 

Explanation: LINK. Internal linker error. 

Action: Record the scenario that produced this message, and 
contact your IBM dealer. 



A-70 



Missing operating system 



Explanation: Startup. When you tried to start DOS from 
fixed disk, the startup procedures determined that the DOS 
partition was marked "bootable" (startable), but that it 
doesn't contain a copy of DOS. 

Action: Start DOS from diskette and use FORMAT with the 
/S parameter to place a copy of DOS on the fixed disk. 
You should back up your files before doing the FORMAT 
or they will be lost. 

Must specify ON or OFF 



Explanation: BREAK. You entered something other than 
on or off. 

Action: Try again, specifying on or off. 

Must specify destination line number 



Explanation: EDLIN. A Move or Copy command was 
entered without a destination line number. 

Action: Re-enter the command with a valid destination line 
number. 



N 



Name of list device [PRNJ: 



Explanation: PRINT. This message appears the first time 
you start print after DOS has been restarted. 

Action: Reply with the reserved device name which is to 
receive the printed output, or simply press Enter if the first 
parallel printer [PRN] is to be used. 



A-71 



NEAR/FAR conflict 



Explanation: LINK. Conflicting near and far definitions for 
a communal variable. 

Action: Revise definitions to be consistent. 

Network support loaded 
Unable to FDISK 



Explanation: FDISK. FDISK cannot modify a remote fixed 
disk. 

Action: Restart system without Network support and try 
FDISK again. 

No DOS partition to delete. 



Explanation: FDISK. You chose the "Delete DOS 
Partition" option but there was no DOS partition on the 
current fixed disk. 

Action: 

1 . Return to the Main Menu. 

2. Select the Display Partition Data to review. 

3. Proceed with your next choice. 

No free file handles 

Cannot start COMMAND, exiting 



Explanation: DOS. An attempt to load a second copy of the 
command processor failed because there are too many files 
open. 

Action: Increase the number in the FILES = command in 
the configuration file (CONFIG.SYS), and restart DOS. 



A-72 



No fixed disks present 



Explanation: FDISK. The FDISK program was run on an 
IBM Personal Computer that: 

• Does not have a fixed disk, or 

• Has a fixed disk in the expansion unit and the 
expansion unit is not powered on, or 

• Has a fixed disk that is not properly installed. 

Action: From the above list find out what caused the 
problem and take appropriate action. Check to make sure 
the expansion unit is powered ON first. 

No object modules specified 



Explanation: LINK. You did not name any object modules 
in the command line or in response to the prompt. 

Action: Name the object modules, since the linker needs 
some files to link. 

No partitions to make active. 



Explanation: FDISK. You chose the "Change Active 
Partition" option but there were no partitions on the current 
fixed disk to be made active. 

Action: Use the "Create DOS Partition" option to create a 
partition, then the "Change Active Partition" option to 
make it the active partition. 



A-73 



No path 

Explanation: PATH. Informational message. There is 
currently no alternate path for DOS to search to find 
commands and batch files if it does not find them in the 
specified (or current directory). 

Action: Informational message unless you want to define a 
set of paths. If so, enter PATH and the set of paths you 
want. Then press Enter. 

No retry on parallel printer time-out 

Explanation: MODE. P was not specified in Option 1, 
requesting no retry on time-out errors. 

Action: No action required. 

No room for system on destination disk 



Explanation: SYS. The destination diskette does not contain 
the required reserved space for DOS; therefore, the system 
cannot be transferred. 

Action: Format a blank diskette (use the FORMAT /S 
command), then copy any other files to the new diskette. 

No room in directory for file 



Explanation: EDLIN. The directory on the specified disk is 
full. Your editing changes are lost. 

Action: Make sure that your disk has available directory 
entries and run EDLIN again. 



A-74 



No room in root directory 



Explanation: LABEL. An error occurred while creating the 
volume label, probably due lack of room in the root 
directory for another entry. 

Action: If the length of the label is less than 1 1 characters, 
and you used only valid filename characters (no periods), 
then delete a file from the root directory to make room for 
another entry. Try LABEL again. 

No space for a xxxx cylinder partition. 



Explanation: FDISK. You entered a "Partition Cylinder 
Size" that is larger than the largest piece of free space on 
the disk. 

Action: Enter a smaller number. 

No space for a xxxx cylinder partition 
at cylinder xxxx 



Explanation: FDISK. You requested a partition to be 
created at a place on the current fixed disk and there is no 
space at that place to create a DOS partition. 

Action: Look for typographical errors. Reinvestigate your 
partitioning requirements. 

No space to create a DOS partition 



Explanation: FDISK. You chose the "Create DOS 
Partition" option on the current fixed disk which has no 
space to create a DOS partition. 

Action: Remove or reduce the size of the existing partition. 
Then run FDISK again to create the DOS partition(s). 



A-75 



No subdirectories exist 

Explanation: TREE. Informational message. The specified 
drive contains only a root directory. Therefore, there is no 
directory path to display. 

Action: No action required. 

Non-DOS diskette 



Explanation: CHKDSK and Commands. The format of the 
diskette accessed was not recognized. 

Action: Format the diskette using the FORMAT command. 

Non-System disk or disk error 
Replace and strike any key when ready 



Explanation: Startup. No entry exists for IBMBIO.COM or 
IBMDOS.COM in the directory; or a disk read error 
occurred when you started up the system. 

Action: Insert a DOS diskette in drive A and then restart 
your system. 

*** Not able to back up file *** 



Explanation: BACKUP. The files cannot be backed up due 
to a file sharing conflict. 

Action: Retry the request at a later time by specifying the 
same backup command but include the /M parameter. 



A-76 



*** Not able to restore file *** 

Explanation: RESTORE. The file you want to restore 
cannot be opened due to a sharing conflict. 

Action: No action required. 

Not enough memory 

Explanation: SHARE,REDIR. The available memory is less 
than what SHARE and REDIR need to start. They 
terminate without installation. 

Action: No action required. 

Not enough room to merge the entire file 



Explanation: EDLIN. Informational message. A Transfer 
command was unable to merge the entire contents of the 
specified file because of insufficient memory. Only part of 
the file was merged. 

Action: Either reduce size of one of the files being merged, 
or install more memory. 

Not found 



Explanation: EDLIN. Informational message. Edlin could 
not find the string specified by the REPLACE text or 
SEARCH text commands within the specified range of 
lines. Or, if a search is resumed by replying N to the OK? 
prompt, no further occurrences of the string were found. 

Action: Check to be sure you properly used upper and lower 
case for the string to be searched. 



A-77 



o 

Out of environment space 

Explanation: DOS. Informational message. DOS was 
unable to accept the SET command you just issued because 
it was unable to expand the area in which the environment 
information is kept. 

This normally occurs when you try to add to the 
environment after loading a program which makes itself 
resident (PRINT, MODE, or GRAPHICS for example). 

Action: No action required. 

Out of space on list file 

Explanation: LINK. There is not enough disk space for the 
list file. 

Action: Use a disk with enough free space to hold the file. 

Out of space on run file 

Explanation: LINK. This error usually occurs when there is 
not enough disk space for the Run file (.EXE). 

Action: Use a disk with enough free space to hold the file. 

Out of space on scratch file 



Explanation: LINK. The disk that the linker is using for 
scratch file is full. 

Action: Delete some files on that disk, or replace with 
another diskette, and restart the linker. 



A-78 



Out of space on VM.TMP 

Explanation: LINK. No more disk space remained to 
expand the VM.TMP file. 

Action: Use a disk with enough free space to hold this file. 

P 

Parameters not compatible 



Explanation: FORMAT. You attempted to use two 
parameters that are not compatible with each other (/B and 
/V for example). 

Action: Review the FORMAT command. Correct 
parameter and re-enter the command. 

Parameter not compatible with fixed disk 



Explanation: FORMAT. You wrongly specified the /l or 
/8 parameter while formatting a fixed disk. Neither of 
these parameters is valid for a fixed disk. 

Action: Review the FORMAT command. Correct 
parameter and re-enter the command. 

Parity error or nonexistent memory error detected 



Explanation: DEBUG. 
Action: No action required. 



A-79 



Partition 1 is already active 

Explanation: FDISK. Informational message. Partition 1 is 
the only partition defined and it is already marked as active. 

Action: No action required. 

Partition xx made active 

Explanation: FDISK. Informational message. Partition xx is 
now marked as bootable. 

Action: No action required. 

Path not found 



Explanation: DOS and commands. A file or path named in a 
command or command parameter does not exist in the 
directory of the specified (or default) drive. 

Action: Retry the command using the correct path and 
filename. 

Pathname too long 



Explanation: PRINT. The path for the file you specified is 
longer than 64 characters. 

Action: No action required. 

Please replace original diskette 
in drive A: and press <ENTER> 



Explanation: LINK. This message appears after the .EXE 
file has been written if the /P switch is given. 

Action: Insert the diskette with the list file so that it can be 
reopened. 



A-80 



Press any key to begin formatting x: 



Explanation: FORMAT. The fixed disk (drive x) is about to 
be formatted. Formatting will lose track of all previously 
existing data on the disk. 

Action: If you do not want the disk formatted, press 
Ctrl-Break. If you do want the disk formatted, press a 
character key. 

Press any key to begin recovery 
of the file(s) on drive x 



Explanation: RECOVER. 

Action: Insert the diskette to be recovered in the indicated 
drive and press any character key. 

Print queue is empty 



Explanation: PRINT. Informational message. There are 
currently no files being processed by PRINT. 

Action: No action required. 

Print queue is full 



Explanation: PRINT. You tried to add more than the limit 
of ten files to the print queue. Ten files is the default. You 
can set the limit to 32 files. See the PRINT command. 

Action: Wait until a file is printed before you add another 
file to the print queue. 



A-81 



Printer error 

Explanation: MODE. The MODE command (option 1) was 
unable to set the printer mode because: 

• There is an I/O error 

• The printer is out of paper (or POWER OFF) 

• There is a printer time out (not ready) condition 

• The printer is offline 

Action: Determine which of above conditions caused the 
error message and take corrective action. 

Printer lines per inch set 



Explanation: MODE. Informational message. You tried to 
set the printer vertical spacing to the specified 6 or 8 lines 
per inch. 

Action: If the attempt was unsuccessful, an error message 
follows this message on the screen. 

Probable non-DOS disk 
Continue (Y/N)? 



Explanation: CHKDSK. The file allocation table 
identification byte contains invalid information. Either the 
disk was not formatted by DOS or has become badly 
damaged. 

Action: If you did not use the /F parameter, and you reply 
Y, CHKDSK will indicate its possible corrective actions 
without actually changing the disk. We recommend doing 
this first, before you consider using the /F switch and 
replying Y. 



A-82 



Processing cannot continue 

Explanation: CHKDSK. Informational message. This 
message is followed by another message which explains why 
CHKDSK cannot continue. 

This message is normally issued when there is not enough 
memory. 

Action: No action required. 

Program size exceeds capacity of LINK, limit 704K 

Explanation: LINK. Load module was too large for 
processing. 

Action: Reduce the size of the program. 

Program terminated normally 

Explanation: DEBUG. This message informs you that the 
program that was executed by issuing G(o),T(race), or 
P(roceed) has completed via an INT 20, INT 27, INT 21, or 
other expected manner. 

Action: No action required. 

Program too big to fit in memory 



Explanation: DOS. The file containing the external 
command cannot be loaded because it is larger than the 
available free memory. 

Action: Reduce the number in the BUFFERS = parameter in 
your CONFIG.SYS file (if you have specified 
BUFFERS=), restart your system, and reissue the 
command. 



A-83 



If the message reappears, your system does not have enough 
memory to execute the command. 



R 



Read error in: 
x:\level 1\ level 2. 



Explanation: EDLIN. An error occurred while reading file 
x:\xxxx\xxxx into memory. 

Action: Copy the file or a backup of the file to a different 
disk and try again. 

Reinsert diskette for drive x 
and strike Enter when ready 



Explanation: FORMAT. This message, which usually 
occurs after you enter FORMAT /S, means: 

• DOS filled the memory with system files, but could not 
read all of the files, into memory because of insufficient 
memory size. 

• After asking for the new diskette, FORMAT started 
formatting it and all of the files in memory on the new 
diskette. 

• FORMAT then asked that the DOS diskette be 
inserted so it could finish loading the rest of the DOS 
files into the memory. 

Action: FORMAT is now asking you to insert the new 
diskette again so it can finish the task of writing the DOS 
files onto the new diskette. 



A-84 



Relocation table overflow 



Explanation: LINK. More than 13000 long calls or long 
jumps or other long pointers in the program. 

Action: Rewrite program replacing long references with 
short references where possible and recreate object module. 
Note: Pascal and FORTRAN users should first try turning 
debugging off. 

Resident part of PRINT installed 



Explanation: PRINT. Informational message. The message 
appears the first time you use the PRINT command. 

This message indicates that a program has been loaded into 
memory to handle subsequent PRINT commands. 
Available memory for your applications has been reduced 
by approximately 3200 bytes. 

Action: No action required. 

Resident portion of MODE loaded 

Explanation: MODE. Informational message. 

This message indicates that when MODE is invoked for a 
non-screen-setting function it is sometimes necessary to 
load a portion of code to be made permanently resident. 

Action: No action required. 

Restore file sequence error 



Explanation: RESTORE. The file was not restored because 
the diskettes were not inserted in sequential order. 

Action: Retry the restore, inserting the diskettes in 
sequential order. 



A-85 



*** Restoring files from drive y *** 
Source: x 



Explanation: RESTORE. This is an informational message 
telling you that the files on the source drive are being 
restored. 



Action: No action required. 



Sector size adjusted 

Explanation: VDISK. VDISK found it necessary to adjust 
the sector size value in the DEVICE = VDISK. SYS in the 
CONFIG.SYS command. 

Action: No action required. 

Sector size too large in file < filename > 

Explanation: Startup. The device driver named in 

< filename > specifies a device sector size larger than the 

devices previously defined to DOS. 

Action: Reduce sector size to conform with the sector size 
of DOS. 

If this is a purchased program, return it to your dealer. 

Segment limit set too high, exceeds 1024 



Explanation: LINK. The count specified for segments in the 
/X: parameter is too large. 

Action: No action required. Linker will abort. 



A-86 



Segment limit too high 



Explanation: LINK. There is insufficient memory for the 
linker to allocate tables to describe the number of segments 
requested (either the value specified with /X or the default: 
256). 

Action: Either try the link again using /X to select a smaller 
number of segments (e.g. 128, if the default was used 
previously) or restart the system to free some memory that 
was used by installable device drivers such as VDISK, 
and terminate and stay resident programs such as PRINT 
and GRAPHICS. 

Segment size exceeds 64K 



Explanation: LINK. This message indicates that you 
attempted to combine identically named segments which 
resulted in a segment requirement of greater than 64K 
bytes. You cannot address more than 64K bytes. 

Action: Change segment names in object modules and try 
link again. 

Source and target drives are the same 



Explanation: BACKUP and RESTORE. The drive specifier 
for the source and target drive cannot be the same. 

Action: Specify a different drive letter for the source and 
target drives. 

Source does not contain backup files 



Explanation: The source media does not contain files created 
by the BACKUP command. 

Action: No action required. 



A-87 



SHARE already installed 

Explanation: SHARE. You have already loaded SHARE. 
SHARE can only be loaded once when you start DOS. 

Action: No action required. 

Sharing buffer exceeded 



Explanation: The buffer area for file sharing and block 
locking was exceeded. 

Action: Choose Retry. If the error reoccurs and you're usin£ 
the PC Network Program, restart the server and increase 
/SHB and /SHL on NET START. If you're not using the 
network, restart DOS and increase /F and /L on SHARE. 

Specified command search directory bad 



Explanation: Commands. Invalid path name specified. 

Action: Specify valid path name containing command 
processor. 

Specified drive does not exist, 
or is non-removable 



Explanation: DISKCOPY and DISKCOMP. The drive 
specifier is for a fixed disk drive, or does not exist on your 
computer. 

Action: Check the drive specifier and reenter the command. 

Source diskette bad or unusable 



Explanation: DISKCOPY. Read errors on the source 
diskette indicate that it may not be suitable for a 
DISKCOPY. 



A-88 



Action: Make sure that there is no necessary data on the bad 
part of the diskette, and compare the files copied to assure 
that the copy was successful. 

Stack size exceeds 65536 bytes 



Explanation: LINK. Informational message. The size 
specified for the stack must be less than or equal to 65536. 

Action: No action required. 

Symbol defined more than once 



Explanation: LINK. The Linker found two or more modules 
that define a single symbol name. 

Action: Make sure you're not linking the same files twice. 
Make sure one of the modules does not have a symbol 
incorrectly identified as public instead of external. Does one 
of the modules being linked have a symbol incorrectly 
identified as public instead of external? 

Symbol table overflow 



Explanation: LINK. The user's program has greater than 
25 6K of symbolic information (publics, externs, segments, 
groups, classes, files). 

Action: Combine modules and/or segments and recreate the 
object files. Eliminate as many public symbols as possible. 

Syntax error 



Explanation: DOS. The command format you typed is 
improper. 

Action: Check to make sure you have used the correct 
format for this command. 



A-89 



System files restored 

The target disk may not be bootable 



Explanation: RESTORE. DOS system files IBMBIO.COM 
or IBMDOS.COM were restored. The diskette may not be 
bootable if the system files from a previous version of DOS 
were restored. 

Action: SYS the disk with DOS Version 3.00 and copy 
COMMAND.COM to the root directory of the target disk. 

System transferred 



Explanation: FORMAT. This message is displayed when 
you specify FORMAT /S. It is an informational message 
telling you that the system files have been installed on the 
formatting disk. 

Action: No action required. 

System will now restart 

Insert DOS diskette in drive A: 

Press any key when ready 



Explanation: FDISK. Informational message. FDISK 
requires the system to restart in order to update the 
partition information. 

Action: Place DOS diskette in drive A: and press any key. 



Target can not be used for backup 



Explanation: BACKUP. Your attempt to create files on the 
target disk failed. 

Action: Replace the disk if it is removable. If not, BACKUP 



A-90 



to a different device or restart the system and try again. 
Target diskette bad or unusable 



Explanation: DISKCOPY. Errors encountered during the 
copy indicate that the target diskette is dirty, damaged or of 
poor quality, or the drive is malfunctioning on some tracks. 

Action: Change the target drive or the diskette and try 
again. 

Target diskette may be unusable 



Explanation: DISKCOPY. This message follows an 
unrecoverable read, write, or verify error message. The 
copy on the target diskette may be incomplete because of 
the unrecoverable I/O error. 



Action: 



If error is on the target diskette, get a fresh diskette for 
your target, and retry the DISKCOPY command. 

If the error is on the source diskette, copy all files from 
the source diskette to another diskette. Then try to 
reformat the source diskette. 



A-91 



Target diskette write protected 
Correct, then strike any key 



Explanation: DISKCOPY. You are trying to produce a copy 
on a diskette that is write protected. 

Action: Either remove the write protect tab, or use another 
diskette that is not write protected. 

Target does not contain backup files 



Explanation: BACKUP. The /A parameter was specified, 
but no previously backed up files were found on the target 
drive. 

Action: No action required. 

Target is full 



Explanation: RESTORE. The disk you are restoring to is 
full. 

Action: Delete any unnecessary files you have and try again, 
or RESTORE to a destination disk with more space. 

Terminate batch job (Y/N)? 



Explanation: DOS. This message appears when you press 
Ctrl-Break while DOS is processing a batch file. 

Action: Press Y to stop processing the batch file. Pressing 
N only ends the command that was executing when 
Ctrl-Break was pressed; processing resumes with the next 
command in the batch file. 



A-92 



Terminated by user 

Explanation: LINK. The user entered Ctrl-Break in 
response to one of the linker prompts. 

Action: No action required. 

The current active partition is x. 

Explanation: FDISK. Informational message. The "Change 
Active Partition" option displays the active partition on the 
current fixed disk. 

Action: No action required. 

The last file was not restored 



Explanation: RESTORE. You stopped RESTORE before it 
completely restored the last file listed, or there was not 
enough room on the fixed disk and RESTORE deleted the 
partially restored file. 

Action: If RESTORE has ended, you can re-enter the 
RESTORE command with the filename of the file(s) not 
restored to continue from the point where RESTORE 
stopped. 

If the problem occurred because you ran out of room on the 
fixed disk, you must evaluate which files to keep and which 
ones to delete. Then continue the execution of RESTORE. 

There was/ were number errors detected 



Explanation: LINK. This message is displayed for your 
information at the end of the link session. 

Action: No action required. 



A-93 



Too many block devices 



Explanation: CONFIG.SYS. You attempted to install more 
than the system limit of 26 block device units. 

Action: Change your CONFIG.SYS "DEVICE=" 

command so that only 26 block device units (including 
those automatically installed by DOS for disk/diskette 
drives) are installed. See Chapter 4, "Configuring Your 
System," of the DOS Reference, and Chapter 2, "Installable 
Device Drivers," of the DOS Technical Reference for more 
information. 

Too many external symbols, limit 510 per module 



Explanation: LINK. More than the limit of 510 external 
symbols were specified in a module. 

Action: Break up the module. 

Too many files open 



Explanation: EDLIN. EDLIN tried to open the specified 
file, but was not able to. 

Action: Increase the FILES= value in the CONFIG.SYS 
file. 

Too many group-, segment-, and class-names, limit 254 per 
module 



Explanation: LINK. User's program contains too many 
group, segment, and class names. 

Action: Reduce the number of groups, segments, or classes 
and recreate the object files. 



A-94 



Too many groups 

Explanation: LINK. The limit is 9 including DGROUP. 
This message indicates that the limit was exceeded. 
Action: Reduce the number of groups. 
Too many GRPDEFs, limit 8 per module. 



Explanation: LINK. Linker encountered more than 8 
GRPDEFs in a single module. 

Action: Reduce the number of groups or split up the 
module. 

Too many libraries, limit is 16 



Explanation: LINK. User tried to open more than 16 
libraries. 

Action: Combine libraries or link modules that require fewer 
libraries. 

Too many overlays 



Explanation: LINK. The limit is 64 overlays. This message 
indicates that the limit was exceeded. 

Action: Reduce the number of overlays. 

Too many public symbols 



Explanation: LINK. The limit is 2048 public symbols. This 
message indicates that the limit was exceeded. 

Action: Reduce the number of public symbols. 



A-95 



Too many segments, limit 255 per module 

Explanation: LINK. The user's object module has more 
than 255 segments. 

Action: Split the modules or combine segments. 

Too many segments, use /X:N (256<N<1025) 



Explanation: LINK. The user has specified more than the 
maximum of 1024 segments. 

Action:Relink using the /X parameter with appropriate 
number of segments specified. 

Too many TYPDEFs, limit 255 per module 



Explanation: LINK. TYPDEFs are records emitted by the 
compiler to describe communal variables. 

Action: Create two sources from the old source, dividing the 
communal variable definitions between them; recompile and 
relink. 

Top level process aborted, cannot continue 



Explanation: During boot, COMMAND detected a disk 
error, and you chose to ABORT. The error is 
unrecoverable and COMMAND has no choice but to halt. 

Action: The recommended course of action is to use another 
disk. 



A-96 



Total disk space is xxxx cylinders. 

Explanation: FDISK. Informational message. This message 
shows the total space on the current fixed disk. 

Action: No action required. 
Transfer size adjusted 



Explanation: VDISK. The maximum number of sectors to 
transfer specified (m) was not in the range 1-8. The value 8 
will be used by VDISK. 

Action: No action required. 

Tree past this point not 
processed 



Explanation: CHKDSK. Informational message. CHKDSK 
is unable to continue processing past the directory path 
currently being examined of the error displayed in the 
previous message. 

Action: No action required. 



A-97 



u 



Unable to create directory 



Explanation: MKDIR. The directory you want to create 
already exists, or one of the directory path names you 
specified could not be found, or you attempted to add a 
directory to the root directory and it is full. Make sure a file 
by that name does not already exist in that directory. 

Action: Do the following: 

• Check to see if a directory by that name exists in the 
parent directory (or current directory) 

• Recheck all your directory names to make sure they are 
valid 

• Use CHKDSK to see if your directory is full 
Unable to write BOOT 



Explanation: FORMAT. The first track of the diskette or 
DOS partition is bad. The BOOT record could not be 
written on it. The diskette or DOS partition is not usable. 

Action: Obtain another diskette and retry the FORMAT 
command. 

Unable to shift screen left 



Explanation: MODE. Shifting the screen further to the left 
would exceed the allowable limit. 

Action: No action required. 



A-98 



Unable to shift screen right 

Explanation: MODE. Shifting the screen further to the right 
would exceed the allowable limit. 

Action: No action required. 

Unexpected end-of-f ile on library 

Explanation: LINK. Informational message. This is caused 
by an error in the library file. 

This usually means that the object file contains bytes that 
are of the same value as end-of-file. If this occurs, LINK 
continues processing to the physical end-of-file as given in 
the directory. 

Action: No action required. 

Unexpected end-of-file on scratch file 

Explanation: LINK. Diskette containing VM.TMP was 
removed. 

Action: Restart linker. 

Unexpected end of file on VM.TMP 



Explanation: LINK. Informational message. The diskette 
containing VM.TMP was removed. 

Action: No action required. 



A-99 



Unrecognized command in CONFIG.SYS 



Explanation: Startup. An invalid command was detected in 
the configuration file CONFIG.SYS. 

Action: Edit the file, correct the invalid command, and 
restart DOS. 

Unrecognized switch error: xxxxxx 



Explanation: LINK. User entered an unrecognized 
character after the switch indicator /. 

Action: No action required. Linker will abort. 

Unrecoverable error on directory 

Explanation: CHKDSK. CHKDSK encountered an error 
while checking the directory. 

Action: No action required. 

Unrecoverable file sharing error 



Explanation: SHARE. A file sharing conflict occurred. 
Therefore, files cannot be restored. 

Action: No action required. 

Unrecoverable read error on drive x 
Track xx, side x 



Explanation: DISKCOMP. Four attempts were made to 
read the data from the diskette in the specified drive. The 
data could not be read from the indicated track and side. 



A- 100 



Action: If the error occurred on the target diskette (just 
created by DISKCOPY) get a fresh diskette and retry the 
DISKCOPY and DISKCOMP commands. Otherwise, use: 

COPY *.* 

to copy all files from the damaged diskette to another 
diskette. Then reformat the bad diskette or else discard it. 

Unrecoverable read error on source 
Track XX, side x 



Explanation: DISKCOPY. Four attempts were made to read 
the data from the source diskette. DISKCOPY continues 
copying, but the copy may contain incomplete data. 



A-101 



Action: Use the following form of the COPY comand: 

COPY *.* 

to copy all files from the damaged diskette to another 
diskette. Reformat the bad diskette, or else discard it. 

Unrecoverable write error on target 
Track xx, side x 



Explanation: DISKCOPY. Several attempts were made to 
write the data to the target diskette. DISKCOPY continues 
copying, but the copy may contain incomplete data. 

Action: Obtain a fresh diskette and re-enter the DISKCOPY 
command. Use FORMAT on the bad diskette to see if can 
be reused. If it is a bad diskette, discard it. 

Unresolved externals: list 



Explanation: LINK. The external symbols listed were not 
defined in the modules or library files that you specified. 

Action: Do not attempt to run the executable file created by 
the linker. 

Make sure you specified all appropriate object modules and 
libraries. Check the source code for the program that 
caused the message and make corrections to that program. 



VDISK not installed - insufficient memory 



Explanation: VDISK. This message occurs if: 

• Less than 64K of available memory would exist even 
after attempting to adjust the virtual disk size and 
number of directory entries. 



A-102 



• You have specified the /E parameter and the computer 
does not contain extended memory. 

• The amount of available extended memory is too small 
to install the virtual virtual disk, even after adjusting 
the parameters. 

Action: No action required. 

VDISK Version 2.0 Virtual Disk x 



Explanation: VDISK. Issued when VDISK receives control 
to install a virtual disk, and x tells you which drive letter is 
being assigned to the virtual disk. 

Action: No action required. 

VERIFY is OFF | ON 

Explanation: VERIFY. Informational message. 
Action: No action required. 
VM.TMP is an illegal file name and has been ignored 

Explanation: LINK.VM.TMP cannot be used for an object 
filename. Informational message that is meant as a a 
warning. 

Action: No action required. 

Volume label (11 characters, ENTER for none) ? 



Explanation: FORMAT. You are requested to enter a 1 to 
1 1 character volume label that will be written on the disk 
being formatted. 

Action: If you do not want a volume label on the disk, press 
only the ENTER key. 



A-103 



Warning! All data on non-removable disk drive x 

will be lost 

Proceed with Format (Y/N)? 



Explanation: FORMAT. Prompt telling you that the fixed 
disk will be formatted. 

Action: If you do not want to format the fixed disk, type n. 
If you want to format the fixed disk, type y. 

Warning! Data in the DOS partition 
could be DESTROYED. Do you wish to 
continue ? [d] 



Explanation: FDISK. The "Delete DOS Partition" option is 
warning you that if you continue, all data in the DOS 
partition on the current fixed disk could be destroyed. 

Action: If you press Enter, the DOS partition will NOT be 
destroyed. If you do wish to delete the DOS partition, type 
Y and press Enter. 

Warning-directory full 
xxx file(s) recovered 



Explanation: RECOVER. There is insufficient directory 
space to recover more files. 

Action: Copy some of the files to another disk, erase them 
from this disk, and run RECOVER again. 



Warning! Diskette is out of sequence 
Replace the diskette or continue 
Strike any key when ready 



Explanation: RESTORE. The backup diskette is not the 
next one in sequence. 



A-104 



Action: Replace the diskette unless you are sure no files on 
the diskette(s) you skipped would be restored. RESTORE 
will continue when you press a key. This message will be 
repeated if you try to skip a diskette that contains part of a 
file being restored. 

Warning! File xx 
is a read only file 
Replace the file (Y/N)? 



Explanation: RESTORE. The indicated file is read-only. 

Action: Enter Y if you want to replace it or N if you do not. 
RESTORE will continue after you press ENTER. You will 
see this message only if you specified the /P option. 

Warning! File xx 

was changed after it was backed up 

Replace the file (Y/N)? 



Explanation: RESTORE. The indicated file on the fixed 
disk has a later date and time than the corresponding file on 
the backup diskette. 

Action: Enter Y if you want to replace it with the backed up 
version or N if you do not. RESTORE will continue after 
you press ENTER. You will see this message only if you 
specified the /P option. 

Warning! Files in the target 
root directory will be erased 
Strike any key when ready 



Explanation: RESTORE. This is a warning prompt to tell 
you that the files in the root directory will be erased. 

Action: If you do not want to proceed, press Ctrl-Break. To 
continue, strike any key. 



A- 105 



Warning! No files were found to back up 

Explanation: BACKUP. Informational message telling you 
that no files were found to back up. 

Action: No action required. 

Warning! No files were found to restore 



Explanation: RESTORE. No backup files were found that 
matched the restore file specification. 

Action: Make sure the criteria you specified for BACKUP is 
what you want. Otherwise, this is an informational 
message. 

Warning: No stack segment 



Explanation: LINK. Informational message. None of the 
object modules specified contain a statement allocating 
stack space. 

Action: No action required. 

Warning! Source is out of sequence 
Replace source and or continue if okay 
Strike any key when ready 



Explanation: RESTORE. Informational prompt telling you 
to that the source diskette is out of sequence. 

Action: Replace the source diskette, and strike any key 
when ready. 



A-106 



Warning! Target is Full 

Explanation: BACKUP or RESTORE. The target device is 
full. No more files can be restored. 

Action: No action required. 

Writing xxx bytes 

Explanation: DEBUG. Informational message telling how 
many bytes are being written. 

Action: No action required. 

X 

x is not a choice. Enter a choice. 

Explanation: FDISK. You entered x which is not a choice 
for this question. 

Action: Enter a valid choice. 

x is not choice. Enter Y or "N" 

Explanation: FDISK. You entered x which is not a choice 
for this question. 

Action: Enter Y or N. 

xxxxxx is not a valid library 

Explanation: LINK. The file specified as a library is invalid. 
Action: No action required. Linker will abort. 



A-107 



xxxxxxxxxx bytes disk space freed 

Explanation: CHKDSK. Informational message. Disk space 
marked as allocated was not associated with a file. If you 
used the /F parameter, the space was freed and made 
available. 

Action: No action required. 

xxxx error on file yyyy 



Explanation: PRINT. This message appears on the printer. 
While attempting to read data from file yyyy for printing, a 
disk error of type xxxx was encountered. Printing of that 
file is stopped. 

Action: Check that disk drive is ready. 

xxx lost clusters found in yyy chains. 
Convert lost chains to files (Y/N)? 



Explanation: CHKDSK. Ctrl-Break was entered during a 
disk I/O operation. CHKDSK did not clean up the disk 
after encountering the Ctrl-Break. 

Action: If you reply Y and you have used the /F parameter, 
CHKDSK will recover each chain into a separate file, 
otherwise, if you reply N, CHKDSK frees the blocks up so 
they can be allocated to new files. If CHKDSK was 
specified (no /F), then messages displayed afterwards are 
informational (no corrective action was taken). 

xxxxxx of xxxxxx bytes recovered 



Explanation: RECOVER. This is an informative message 
indicating the number of bytes of the specified file that were 
recovered. 

Action: No action required. 



A-108 



*** Files were backed up xx/xx/xxxx *** 

Explanation: RESTORE. Informational message. The files 
on the backup diskette were backed up on the indicated 
date. 

Action: No action required. 

*** Restoring files from diskette xx *** 

Explanation: RESTORE. Informational message. This 
message is followed by a list of files that were restored from 
the indicated diskette. 

Action: No action required. 
—More- 
Explanation: MORE. The screen is full and there is more 
data waiting to be displayed. 

Action: Press any character to see the next full screen. 
Numbers 

10 Mismatches - ending compare 



Explanation: COMP. Informational message. Ten 
mismatched locations were detected in the files being 
compared. COMP assumes that the files are so different 
that further comparisons would serve no purpose. 

Action: No action required. 



A-109 



Notes: 



A-110 



Index 



Special Characters A 



.-period 8-8,8-16 
.COM file format 7-99 
+ (plus sign) 

in automatic response 
file 9-21 
$$$ - filename extension 8-5 

EDLIN prompt 8-5, 8-10 
global filename 
character 2-8 

* - EDLIN prompt 8-5, 8-10 

* - global filename 
character 2-8 

- (DEBUG prompt) 10-14 
/P parameter 7-79 
/V parameter 7-61 
/W parameter 7-79 
/l parameter 7-90 
/l parameter, 

DISKCOMP 7-84 
/8 parameter, 

DISKCOMP 7-84 
% (percent sign) 7- 
? - global filename 

character 2-7 

* - pound sign 8-7 
@ symbol (linker) 
= equal sign 7-10 



■28 



A (Append Lines) 

Command 8-11 
A (Assemble) 

Command 10-15 
A> prompt 7-10 
abort read/write 

operation A-3 
about messages 1-8 
absolute sector 10-52 
absolute segment address 

how to determine 9-26 
AC flag set condition 10-44 
accessing a file 4-22 
adding hexadecimal 

values 10-30 
address - DEBUG 

parameter 10-6 
address, disk transfer 10-5 
analyze 

diskettes 7-105 
the directory 7-48 
the File Allocation 
Table 7-48 
Append Lines command 8-11 
applications, 

random/sequential 4-8 
ASCII characters 10-20 
ASCII representation 10-5 
ASCII values 10-11 
Assemble Command 10-15 
assembler 9-4 
ASSIGN (Drive) 

Command 7-14 
ASSIGN drive command 7-14 



Index- 1 



Asynchronous 

Communications 

Adapter 7-132,7-137,7-138 
ATTRIB (Attribute) 

Command 7-17 
ATTRIB command 7-17 
AUTOEXEC.BAT file 7-27, 

7-75 
automatic program 

execution 7-27 
automatic response file 

linker 9-21 
AUX - reserved device 

name 2-5 
auxiliary carry flag 10-44 
AX register 10-4 



boundary, paragraph 9-6 
boundary, 16-byte 10-20 
boundary, 8-byte 10-20 
BP register 10-4 
brackets, square 7-10 
BREAK (Control Break) 

Command 7-43 
BREAK Command 4-6,7-43 
breakpoint 10-27 
buffer, what is a 4-7 
BUFFERS Command 4-7 
BX register 10-4, 10-34 
byte - DEBUG 

parameter 10-7 
byte contents 

display 10-23 

fill 10-26 

replace 10-23 



B 



BACKUP Command 7-19 
backup diskette 7-86 
backup file, edit 8-5 
BAK filename extension 8-6, 

8-18, 8-27 
BAT filename extension 7-24 
Batch commands 

ECHO 7-30 

FOR 7-32 

GOTO 7-33 

IF 7-34 

SHIFT 7-40 
batch file 7-24, 7-38, 7-39, 

7-180 
Batch File Commands 7-24 
batch file, using with 
PATH 5-9 

batch file, where DOS looks 
for 5-15 
batch processing 7-24 
books, about DOS 1-3 



C (Compare) 

Command 10-19 
C (Copy Lines) 

Command 8-12 
carry flag 10-44 
change console, CTTY 7-72 
change date 7-74 
change diskettes 7-38 
change filenames 7-156 
change time 7-180 
changing directories 5-7 
changing the current 

directory 5-14 
CHDIR (Change Directory) 

Command 7-45 
CHDIR command 7-45 
check for break 7-43 
CHKDSK (Check Disk) 

Command 7-48 



Index-2 



CHKDSK command 7-48 
class 9-7 

clear condition 10-43 
clear screen 7-52 
CLS (Clear Screen) 

Command 7-52 
codes, 8088 instruction 10-28 
colon 7-10 

color graphics adapter 7-113 
Color/Graphics Monitor 

Adapter 7-132 
COM filename extension 7-8 
comma 7-10 
COMMAND (Secondary 

Command Processor) 

Command 7-53 
COMMAND command 7-53 
command line 
linker 9-18 
command parameters 
DEBUG 10-6 
EDLIN 8-7 
command prompt, 

DEBUG 10-13 
command prompts, linker 9-8 
COMMAND.COM 7-106, 

10-4 
commands 

DEBUG 10-13 
DOS 7-5 
EDLIN 8-9 
commands for directories 5-10 
commands, end 7-11 
commands, new 1-4 
commands, summary of 
commands, where DOS looks 

for 5-15 
Communications 

Adapter 7-137 
COMP (Compare Files) 

Command 7-55 
COMP command 7-55,7-86 
Compare command 10-19 



comparing diskettes 7-84 
comparing files 7-55 
comparing memory 10-19 
compatibility, 

DISKCOMP 7-88 
compatibility, 

DISKCOPY 7-94 
compatibility, drives and 

diskettes 1-7 
computer, size of your 4-9 
COMSPEC 7-165 
COM1 - reserved device 

name 2-5 
CON - reserved name for 

console/keyboard 2-5 
concatenation 7-60, 7-67 
CONFIG.SYS 4-3 
Configuration Commands 4-5 
BREAK 4-6 
BUFFERS 4-7 
COUNTRY 4-11 
DEVICE 4-13 
FCBS 4-19 
FILES 4-22 
LASTDRIVE 4-24 
SHELL 4-25 
console/keyboard 2-5 
control keys 7-11, 8-9, 10-13 
copy and combine files 7-67 
COPY command 7-24,7-60, 

7-86, 7-92 
Copy Lines command 8-12 
copy with different 

filename 7-65 
copy with same filename 7-63 
copying diskettes 7-90 
copying DOS to DOS 

partition 3-22 
copying files 7-60 
copying your DOS 

diskette 1-3, 7-162 
country code 7-162 
COUNTRY Command 4-11 



Index-3 



creating a .BAT file 7-28 
creating a batch file 7-24 
Creating a CONFIG.SYS 

File 4-4 
creating a new file 8-19 
creating a subdirectory 5-11 
CS register 10-4, 10-27, 

10-29, 10-32, 10-50, 10-53 
Ctrl-Break 9-8 
Ctrl-Break keys 7-11,8-9, 

8-16,8-19, 10-13 
Ctrl-Num Lock keys 7-11, 8-9 
Ctrl-NumLock keys 10-13 
Ctrl-Zkeys 8-29 
Ctrl-Break keys 7-38 
Ctrl-Z character 7-68 
Ctrl— PrtSc keys 7-185 
CTTY (Change Console) 

Command 7-72 
CTTY command 7-72 
current directory 5-6 
current directory, changing or 

displaying 5-14 
CX register 10-4,10-5,10-34, 

10-54 
CY flag set condition 10-44 



D 



d: 

default 2-3 

parameter 2-3 
D (Delete Lines) 
Command 8-13 
D (Dump) Command 10-20 
Date 

change 7-74 

enter 7-74 
DATE Command 7-74 
date format, select 7-162 



DEBUG commands 

A (Assemble) 10-15 

C (Compare) 10-19 

D (Dump) 10-20 

E (Enter) 10-23 

F (Fill) 10-26 

G(Go) 10-27 

H (Hexarithmetic) 10-30 

I (Input) 10-31 

L(Load) 10-32 

M(Move) 10-35 

N(Name) 10-36 

O (Output) 10-38 

P (Proceed) 10-39 

Q (Quit) 10-40 

R (Register) 10-41 

S (Search) 10-46 

T (Trace) 10-47 

U (Unassemble) 10-49 

W (Write) 10-52 
DEBUG program 

command parameters 10-6 

commands 10-13 

common information 10-13 

ending 10-40 

how to start 10-4 

prompt 10-14 

what it does 10-3 
default disk transfer 

address 10-5 
default drive 

linker 9-8 

parameter 2-3 
default segment 10-6 
defective tracks 7-105 
DEL (Delete) Command 7-77 
DEL command 7-77 
Delete Lines command 8-13 
deleting a directory or 
subdirectory 5-13 
deleting a file 7-77 
delimiters 7-11,8-9, 10-13 
destination area 10-35 



Index-4 



DEVICE Command 4-13 
device error messages A-4 
device names, reserved 2-5, 

7-11,7-65 
device redirection 6-3 
DGROUP 9-14 
DI flag clear condition 10-44 
DI register 10-4 
DIR (Directory) 

Command 7-79 
DIR command 2-8,7-79, 

7-108 
direction flag 10-44 
director, analyze 7-48 
directories 5-3 
directories, accessing 5-6 
directories, levels 5-4 
directory commands 5-10 
directory entries 5-5 
directory entries, listing 7-79 
directory names 5-6 
directory search, PATH 7-140 
directory structure, 

displaying 5-15 
directory, current 5-6 
directory, display 7-182 
directory, displaying the 

current 5-14 
directory, how to organize 5-4 
directory, make 7-130 
directory, remove 7-161 
disk transfer address 10-5 
DISKCOMP (Compare 

Diskettes Only) 

Command 7-84 
DISKCOMP command 7-84, 

7-92 
DISKCOMP 

compatibility 7-88 
DISKCOPY (Copy Diskettes 

Only) Command 7-90 
DISKCOPY command 7-84, 

7-90 



DISKCOPY 

compatibility 7-94 
diskette and drive 
compatibility 1-7 
diskette drives, types 1-6 
diskette, naming 7-127 
diskette, restore 7-157 
diskettes 

analyze 7-105 

back up 7-86 

change 7-38 

comparing 7-84 

copying 7-90 

defective tracks 7-105 

filenames 2-4 

fragmented 7-92 

initialize 7-105 

preparing 7-105 

recording format 7-105 

status report 7-48 
diskettes, types 1-6 
display 

byte contents 10-23 

flags 10-42 

lines 8-22 

registers 10-42 

remarks 7-39 
display contents of 

directory 7-182 
display directory entries 7-79 
Display DOS version 

number 7-186 
display instructions 10-49 
displaying a file's 
contents 7-185 
displaying directory 

structure 5-15 
displaying memory 10-20 
displaying the current 

directory 5-14 
DN flag set condition 10-44 
DOS books 1-3 



Index-5 



DOS command, how to 

enter 7-9 
DOS commands 

.bat 7-24 

ASSIGN 7-14 

ATTRIB 7-17 

BACKUP 7-19 

Batch processing 7-24 

BREAK 4-6, 7-43 

CHDIR 7-45 

CHKDSK 7-48 

CLS 7-52 

COMMMAND 7-53 

common information 7-10 

COMP 7-55 

COPY 7-60 

CTTY 7-72 

DATE 7-74 

DEL 7-77 

DIR 7-79 

DISKCOMP 7-84 

DISKCOPY 7-90 

entering a DOS 
command 7-9 

ERASE 7-96 

EXE2BIN 7-98 

external 7-8 

FDISK 7-101 

FIND Filter 7-102 

FORMAT 7-105 

GRAFT ABL 7-113 

GRAPHICS 7-115 

internal 7-8 

JOIN 7-118 

KEYBxx 7-123 

LABEL 7-127 

MKDIR 7-130 

MODE 7-132 

MORE Filter 7-139 

PATH 7-140 

PAUSE 7-38 

PRINT 7-143 

PROMPT 7-149 



RECOVER 7-153 

REM 7-39 

RENAME (or 
REN) 7-156 

RESTORE 7-157 

RMDIR 7-161 

SELECT 7-162 

SET 7-164 

SHARE 7-167 

SHIFT 7-40 

SORT Filter 7-169 

SUBSTITUTE 7-172 

SYS 7-178 

TIME 7-180 

TREE 7-182 

TYPE 7-185 

types of 7-8 

VER 7-186 

VERIFY 7-187 

VOL 7-188 
DOS device names 2-5 
DOS diskette, about your 1-3 
DOS diskette, copying 7-162 
DOS diskette, using 1-3 
DOS Editing Keys 

entering DOS 
commands 7-11 

using DEBUG 10-13 

using EDLIN 8-9 
DOS files 

displaying contents 
of 7-185 

fragmented 7-65 

object 10-3 

object program 7-185 

source 8-3 

text 7-185,8-3 
DOS filters 6-7 
DOS partition, 

formatting 3-18 
DOS version number, 
display 7-186 



Index-6 



DOS, replacing previous 

version 3-3 
drive 2-3 
drive - DEBUG 

parameter 10-7 
drive, assign new 7-14 
DS register 10-4,10-5,10-23, 

10-26, 10-35 
/DSALLOCATION linker 

parameter 9-14 
dummy device 2-5 
dummy parameters 7-28, 7-29 
Dump command 10-20 
DX register 10-4 



E 



E (End Edit) Command 8-18 

E (Enter) Command 10-23 

ECHO Subcommand 7-30 

edit 

backup file 8-5 
existing file 8-5 
partial file 8-11 

Edit Line Command 8-16 

editing a new file 8-6 

editing keys 7-11,8-9, 10-13 

EDLIN 

A (Append Lines) 8-11 
C (Copy Lines) 8-12 
command parameters 8-7 
commands 8-9 
common information 8-9 
creating a batch file 7-24 
D (Delete Lines) 8-13 
E (End Edit) 8-18 
Edit Line 8-16 
how to start 8-5 
I (Insert Lines) 8-19 
L (List Lines) 8-22 



M (Move Lines) 8-25 
P(Page) 8-26 
program 8-3 
prompt 8-5 
Q (Quit Edit) 8-27 
R (Replace Text) 8-28 
S (Search Text) 8-31 
T (Transfer Lines) 8-34 
W (Write Lines) 8-35 
EI flag set condition 10-44 
End Edit command 8-6, 8-18 
end-of-file 7-68 
ending commands 7-11 
Enter command 10-23 
enter date 7-74 
Enter key 2-5, 8-9 
enter time 7-180 
entering a DOS command 7-9 
entries, directory 5-5 
environment, set 7-164 
equal sign ( = ) 7-10 
ERASE Command 7-96 
erasing a file 7-96 
error message, device A-4 
error messages A-3 
error, recover from A-3 
error, syntax 10-13 
ES register 10-4, 10-5 
Esc key 8-16 
EXE filename extension 7-8, 

9-10, 10-5, 10-34, 10-55 
execute instructions 10-47 
execute program 10-27 
executing a .BAT file 7-29 
executing files quickly 7-25 
EXE2BIN Command 7-98 
existing file, edit 8-5 
ext 2-4 
extension 

.BAK 8-6,8-18,8-27 
.COM 7-8 

.EXE 7-8, 10-5, 10-34, 
10-55 



Index-7 



.EXE filename 
extension 9-10 

.HEX 10-5, 10-34, 10-55 

.MAP 9-11 

.OBJ 9-9 

5p5p5p 8-5 
extensions 2-4 
external commands 7-8 



F (Fill) Command 10-26 
FCB (see File Control Block) 
FCBS (File Control Block) 

Command 4-19 
FDISK 3-6 

change active 
partition 3-13 

create DOS partition 3-9 

delete DOS partition 3-15 

display partition 
information 3-17 

loading FDISK 3-7 

next fixed disk 3-18 

partitioning 3-4 
FDISK Command 7-101 
FDISK program, loading 3-7 
FDISK, DOS partition 3-6 
features, DOS 3.10 1-4 
file attribute, read-only 7-17 
File Control Block 

(FCB) 10-36 
file sharing 4-20,7-167 
file specification 2-3 
file, editing a new 8-6 
filename characters, global 2-7 
filename extensions 

.BAK 8-6,8-18,8-27 

.BAT 7-24 

.COM 7-8 



.EXE 7-8, 10-5, 10-34, 
10-55 

.EXE filename 
extension 9-10 

.HEX 10-5, 10-34, 10-55 

.MAP 9-11 

.OBJ 9-9 

5p5p4> 8-5 

characters, valid 2-4 
filenames 

length of 2-4 

renaming 7-156 
FILES Command 4-22 
files, list all 7-81 
files, list selected 7-82 
files, number opened 4-23 
filespec 2-3 
filespec - DEBUG 

parameter 10-7 
Fill command 10-26 
filter commands 

FIND command 7-102 

MORE command 7-139 

SORT Command 7-169 
filtering data 6-7 
FIND Filter Command 7-102 
First Asynchronous 
Communications Adapter 
port 2-5 
fixed disk specifiers 3-4 
fixed disk, formatting 3-18 
fixed disk, partitioning 3-4 
fixed disk, preparing your 3-4 
fixed disk, restore 7-157 
fixups, segment 7-99 
flag values 10-41 
flags 10-4 
flags, display 10-42 
FOR Subcommand 7-32 
FORMAT Command 7-105 
FORMAT compatiblity 7-110 
FORMAT status report 7-109 



Index-8 



formatting, DOS 
partition 3-18 
fragmented diskettes 7-92 
fragmented files 7-65 
F3 key 10-32 
F5 key 8-17 
F6 key 2-5, 7-66, 8-29 



HEX filename extension 10-5, 

10-34, 10-55 
Hexarithmetic 

command 10-30 
hidden files 7-50,7-108 
HIGH 9-14 

HIGH linker parameter 9-6 
high memory 9-14,10-5 



G 



G (Go) Command 10-27 
generating line numbers 8-3 
global filename characters 

* 2-7 

? 2-7 

examples using 2-9 

in command name 7-11 

in COPY 7-62 

in DELETE. 7-78 

inDIR 7-79 

in ERASE 7-97 

in RENAME 7-156 
Go command 10-27,10-54 
GOTO Subcommand 7-33 
GRAFTABL (Load Graphics 
Table) Command 7-113 
GRAFTABL command 7-113 
GRAPHICS (Screen Print) 

Command 7-115 
GRAPHICS command 7-115 
group 9-7 



H 



H (Hexarithmetic) 
Command 10-30 



I (Input) Command 10-31 

I (Insert Lines) 
Command 8-19 

IBMBIO.COM 7-79,7-106 

IBMDOS.COM 7-79,7-106 

IF Subcommand 7-34 

initialize 

diskettes 7-105 

initializing the asynchronous 
adapter 7-137 

Input command 10-31 

input file 
linker 9-4 

input files 

Insert Lines command 

insert mode 8-19 

inserting lines 8-3 

instruction codes, 8088 

Instruction Pointer (IP) 

instructions 

display 10-49 
execute 10-47 
unassemble 10-49 
variable length 10-49 

internal commands 7-8 

interrupt codes 10-28 

interrupt flag 10-44 

invoking a secondary 
processor 7-53 



8-19 



10-28 
10-4 



Index-9 



invoking one batch file from 

another 7-25 
IP (Instruction Pointer) 10-4 
IP register 10-27, 10-41 



JOIN Command 7-118 



K 



keyboard 2-5 
keyboard code 7-162 
keyboard layout, select 7-162 
KEYBxx (Load Keyboard) 

Command 7-123 
KEYBxx Command 7-123 
keys, control 7-11, 8-9, 10-13 
keys, DOS editing 7-11, 8-9, 

10-13 



L (List Lines) Command 8-22 
L (Load) Command 10-32 
LABEL (Volume Label) 

Command 7-127 
LABEL command 7-127 
LASTDRIVE Command 4-24 
LINE 9-15 

line - EDLIN parameter 8-7 
Line Editor Program 8-3 



line numbers 8-3 

lines, renumber 8-13, 8-19 

LINK 

See linker(LINK) Program 
linker files 

automatic response 9-4, 
9-21 

input 9-4 

library 9-4,9-12 

listing 9-4, 9-10 

object 9-4, 9-9 

output 9-4 

run 9-4, 9-10 
linker parameters 9-14 

/DS ALLOCATION 9-14 

/HIGH 9-14 

/LINE 9-15 

/MAP 9-15 

/PAUSE 9-15 

/STACK 9-16 
linker prompts 9-9 
linker(LINK) Program 

command line 9-18 

command prompts 9-7 

example session 9-23 

messages 9-27 

starting 9-17 
list - DEBUG parameter 10-7 
list all files 7-81 
List Lines command 8-22 
list selected files 7-82 
listing data lines 8-26 
listing directory entries 2-8, 

7-79 
Load command 10-32,10-54 
load graphics table 7-113 
load module 9-16,9-26 
loading programs 7-98 
loading standard device 
drivers 4-13 
loading, FDISK program 3-7 

create DOS partition 



Index-10 



entire fixed disk for 
DOS 3-9 
part of fixed disk for 
DOS 3-9 
local v 

LPT1 - reserved name for 
printer 2-5 



M 



M (Move Lines) 
Command 8-25 
M (Move) Command 10-35 
make directory, MKDIR 7-130 
making a file read-only 7-17 
making a subdirectory 5-11 
/MAP linker parameter 9-15 
MAP extension 9-11 
memory 

high 9-14, 10-5 

low 9-14 
memory status report 7-48 
memory, loading files into 8-5 
messages 1-8, A-3 
messages, linker 9-27 
MKDIR (Make Directory) 

Command 7-130 
MKDIR command 7-130 
MODE Command 7-132 
MORE Filter Command 7-139 
Move command 10-35 
Move Lines command 8-25 



N 



N (Name) Command 10-36 
n - EDLIN parameter 8-8 
NA flag clear condition 10-44 
Name command 10-33,10-36 
naming a diskette 7-127 
NC flag set condition 10-44 
new DOS commands 1-4 
NG flag set condition 10-44 
NUL: - reserved device 
name 2-5 
numbers, line 8-3, 8-13 
NV flag clear condition 10-44 
NZ flag clear condition 10-44 



O 



O (Output) Command 10-38 
OBJ extension 9-9 
object files 10-3 
object modules 9-9 
in response to linker 
prompt 9-9 
object program files 7-185 
one-drive system 7-85, 7-92 
operation, suspend 

system 7-38 
optional remarks, PAUSE 

command 7-38 
Output command 10-38 
output files 

linker 9-5 
OV flag set condition 10-44 
overflow flag 10-44 



Index- 11 



P (Page) Command 8-26 
P (Proceed) Command 10-39 
Page command 8-26 
paragraph boundary 9-6 
parallel printer to 

Asynchronous 

Communications 

Adapter 7-138 
parameter 

DEBUG 10-6 
dummy 7-28 
EDLIN 8-7 

testing with different 10-27 
parameters, Linker 9-14 
parity flag 10-44 
partial file, edit 8-11 
partition, FDISK 3-6 
partitioning, fixed disk 3-4 
path 5-6 
PATH (Set Search Directory) 

Command 7-140 
PATH command 5-6,5-8, 

7-140 
path to a file 5-7 
PATH, using in 

AUTOEXEC.BAT 5-9 
PAUSE 9-15, A-ll 
PAUSE command 7-38 
PC register 10-41 
PE flag set condition 10-44 
percent sign (%) 7-28 
period (.) 8-8 
period (.) 8-16 
physical append 7-70 
Piping standard I/O 6-6 
piping, what is 6-6 
PL flag clear condition 10-44 
plus sign 

in automatic response 
file 9-21 



PO flag clear condition 10-44 
portaddress - DEBUG 

parameter 10-8 
pound sign (#) 8-7 
prepare diskettes 7-105 
preparing your fixed disk 3-4 
print buffer size 7-143 
PRINT Command 7-143 
print device, specifying 7-143 
print queue size 7-143 
printer 2-5, 7-132 
printing files 7-143 
printing graphics 7-115 
PRN - reserved name for 

printer 2-5 
Proceed command 10-39 
program execution, stop 10-27 
Program Segment Prefix 10-5 
program, FDISK 3-6 
prompt 

DEBUG 10-14 
EDLIN 8-5 
PROMPT (Set System Prompt) 

Command 7-149 
PROMPT Command 7-149 
protecting a file 7-17 
protocol parameters 7-137 
public symbols 9-25 
punctuation 7-10 



Q 



Q (Quit Edit) Command 8-27 
Q (Quit) Command 10-40 
questions mark 7-10 
queue print files 7-143 
Quit command 10-40 
Quit Edit command 8-27 
quotation marks 10-11 



Index- 12 



R 



R (Register) Command 10-41 
R (Replace Text) 

Command 8-28 
random/sequential 

applications 4-8 
range - DEBUG 

parameter 10-8, 10-9 
read-only 7-17 
read/ write requests 4-8 
read-only attribute 7-17 
recording format, 

diskette 7-105 
RECOVER Command 7-153 
recover from error A-3 
redirection of I/O devices 6-3 
Register command 10-41 
registername - DEBUG 

parameter 10-9 
registernames, valid 10-41 
registers, display 10-42 
relative sector number 10-10 
relative zero 9-25 
relocatable loader 9-4 
REM command 7-39 
remarks, display 7-39 
remarks, PAUSE 

command 7-38 
remote v 
remove directory, 

RMDIR 7-161 
removing a directory 5-13 
REN Command 7-156 
RENAME (or REN) 

Command 7-156 
RENAME Command 7-156, 

10-55 
renumber lines 8-13, 8-19 
replace byte contents 10-23 
Replace Text command 8-28 



replacing previous version of 

DOS 3-3 
reserved device names 2-5, 

7-11,7-65 
responses to the system A-3 
RESTORE Command 7-157 
retry read/write operation A-3 
RMDIR (Remove Directory) 

Command 7-161 
RMDIR Command 7-161 
root directory, getting back 

to 5-7 
run file 9-10 



S (Search Text) 

Command 8-31 
S (Search) Command 10-46 
saving diskette space 7-98 
screen 2-5 

screen print, graphics 7-115 
screen, clear CLS 7-52 
Search command 10-46 
search directory, PATH 7-140 
Search Text command 8-3 1 
secondary command 

processor 7-53 
sector - DEBUG 

parameter 10-10 
sector number, relative 10-10 
sector, absolute 10-52 
sectors 7-92, 10-10 
segment 9-6, 9-9 
SEGMENT command 9-16 
segment fixups 7-99 
segment registers 10-4, 10-50 
segment, default 10-6 
segments, class 9-7 
SELECT Command 7-162 



Index- 13 



SELECT procedure 1-3 
select, date and time 

format 7-162 
select, keyboard layout 7-162 
semicolon delimiter 7-10 
SET (Set Environment) 

Command 7-164 
SET Command 7-164 
set condition 10-43 
set system prompt 

command 7-149 
SHARE Command 7-167 
sharing, file 7-167 
SHELL Command 4-25 
SHIFT Subcommand 7-40 
SI register 10-4 
sign flag 10-44 
slashes 7-10 

SORT Filter Command 7-169 
source area 10-35 
source drive 7-10 
source files 8-3 
SP (Stack Pointer) 10-4 
space delimiter 7-10 
special characters 2-7 
specifying a drive 2-3 
specifying, print device 7-143 
square brackets 7-10 
SS register 10-4 
stack allocation 

statement 9-16 
/STACK linker parameter 
Stack Pointer (SP) 10-4 
standard I/O device 

redirection 6-3 
standard I/O, piping 6-6 
starting DEBUG 10-4 
starting DOS from fixed 

disk 3-23 
starting EDLIN 8-5 
starting the linker 9-17 
status report 7-48 
stop program execution 10-27 



string - DEBUG 

parameter 10-11 
string - EDLIN parameter 8-8, 

8-9 
subdirectories 5-3 
subdirectories, accessing 5-6 
subdirectories, changing 5-6 
subdirectory, creating a 5-11 
SUBST 7-172 
SUBST(Substitute) 

Command 7-172 
SUBSTITUTE 

Command 7-172 
summing files 7-70 
suspend system operation 7-38 
symbols, global and 

public 9-15 
syntax error 10-13 
SYS (System) 

Command 7-178 
SYS Command 7-178 
system configuration 

commands 4-3 
system devices 2-5 
system files, transfer 7-178 
system prompt 7-10 
system prompt command, 

set 7-149 
system prompt, command is 

complete 7-10 



T (Trace) Command 10-47 
T (Transfer Lines) 
Command 8-34 
target drive 7-12 
temporary file, VM.TMP 
terminate commands 7-11 
text files 7-185,8-3 



Index- 14 



Time command 7-180 

enter 7-180 
time format, select 7-162 
time, change 7-180 
top-level command 

processor 4-25 
Trace command 10-47,10-54 
tracks, defective 7-105 
Transfer Lines command 8-34 
transfer system files 7-178 
TREE Command 7-182 
tree-structure, displaying 5-15 
tree-structured directories 5-3 
TYPE Command 7-185 
types of diskette drives 1-6 
double sided 

(320/360K) 1-6 
high capacity ( 1 .2MB) 1 -6 
single sided 
(160/180K) 1-6 
types of diskettes 1-6 
double sided 

(320/360K) 1-6 
high capacity (1.2MB) 1-6 
single sided 
(160/180K) 1-6 
types of DOS commands 7-8 
typing the contents of a 
file 7-185 



UP flag clear condition 10-44 

using applications v 

using your DOS diskettes 1-3 



value 10-12 
variable length 

instructions 10-49 
VDISK.SYS 4-14 

installing in config.sys 4-15 
VER (Version) 

Command 7-186 
VER Command 7-186 
VERIFY Command 7-187 
virtual disk 4-14 
VM.TMP temporary files 
VOL (Volume) 

Command 7-188 
VOLUME Command 7-188 
volume label 7-127 



w 



u 



U (Unassemble) 

Command 10-49 
Unassemble command 10-49 
unassemble instructions 10-49 
unprintable characters 10-20 



W (Write Lines) 

Command 8-35 
W (Write) Command 10-52 
where DOS looks for 

commands and batch 

files 5-15 
Write command 10-52 
Write Lines command 8-35 



Index- 15 



zero flag 10-44 

ZR flag set condition 10-44 



Index- 16 



= ===■ =~= The Personal Computer 

== r = '= Programming Family 

Reader's Comment Form 

DOS Reference 6138519 

Your comments assist us in improving the usefulness of 
our publication; they are an important part of the input 
used for revisions. 

IBM may use and distribute any of the information you 
supply in any way it believes appropriate without 
incurring any obligation whatever. You may, of course, 
continue to use the information you supply. 

Please do not use this form for technical questions 
regarding the IBM Personal Computer or programs for 
the IBM Personal Computer, or for requests for 
additional publications; this only delays the response. 
Instead, direct your inquiries or request to your 
authorized IBM Personal Computer dealer. 

Comments: 




NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 321 BOCA RATON, FLORIDA 33432 

POSTAGE WILL BE PAID BY ADDRESSEE 



IBM PERSONAL COMPUTER 

SALES & SERVICE 

P.O. BOX1328-C 

BOCA RATON, FLORIDA 33432 



ajail pioj 



3|de)s )Ou op asB8|d 



adei 



= == ~= The Personal Computer 

= =r = T = Programming Family 

Reader's Comment Form 

DOS Reference 6138519 

Your comments assist us in improving the usefulness of 
our publication; they are an important part of the input 
used for revisions. 

IBM may use and distribute any of the information you 
supply in any way it believes appropriate without 
incurring any obligation whatever. You may, of course, 
continue to use the information you supply. 

Please do not use this form for technical questions 
regarding the IBM Personal Computer or programs for 
the IBM Personal Computer, or for requests for 
additional publications; this only delays the response. 
Instead, direct your inquiries or request to your 
authorized IBM Personal Computer dealer. 

Comments: 




NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 321 BOCA RATON, FLORIDA 33432 

POSTAGE WILL BE PAID BY ADDRESSEE 

IBM PERSONAL COMPUTER 

SALES & SERVICE 

P.O. BOX1328-C 

BOCA RATON, FLORIDA 33432 



9J8U D|OJ 



3|deis jou op aseaid 



adei 



= = =y= The Personal Computer 

= ==r = ~ = Programming Family 

Reader's Comment Form 

DOS Reference 6138519 

Your comments assist us in improving the usefulness of 
our publication; they are an important part of the input 
used for revisions. 

IBM may use and distribute any of the information you 
supply in any way it believes appropriate without 
incurring any obligation whatever. You may, of course, 
continue to use the information you supply. 

Please do not use this form for technical questions 
regarding the IBM Personal Computer or programs for 
the IBM Personal Computer, or for requests for 
additional publications; this only delays the response. 
Instead, direct your inquiries or request to your 
authorized IBM Personal Computer dealer. 

Comments: 




NO POSTAGE 

NECESSARY 

IF MAILED 

IN THE 

UNITED STATES 



BUSINESS REPLY MAIL 

FIRST CLASS PERMIT NO. 321 BOCA RATON, FLORIDA 33432 

POSTAGE WILL BE PAID BY ADDRESSEE 



IBM PERSONAL COMPUTER 

SALES & SERVICE 

P.O. BOX1328-C 

BOCA RATON, FLORIDA 33432 



9J9M PlOd 



8|dejs iou op eseaid 



sdBi 



©IBM Corp. 1984, 1985 
All rights reserved 

International Business 
Machines Corporation 
P.O. Box 1328-S 
Boca Raton, Florida 33432 

Printed in the 

United States of America - 



6138519