.bp 1
.op
.cs 5
.mt 5
.mb 6
.pl 66
.ll 65
.po 10
.hm 2
.fm 2
.he
.ft                                H-%
.pc 1
.tc H  Glossary
.ce 2
.sh
Appendix H
.sp
.sh
Glossary
.qs
.he CP/M Operating System Manual                          H  Glossary
.sp 3
.sh
address:  \c
.qs
Number representing the location of a byte in memory.  Within 
CP/M there are two kinds of addresses:  logical and physical.  A 
physical address refers to an absolute and unique location within 
the computer's memory space.  A logical address refers to the 
offset or displacement of a byte in relation to a base location.  
A standard CP/M program is loaded at address 0100H, the base 
value; the first instruction of a program has a physical address 
of 0100H and a relative address or offset of OH.
.sp
.sh
allocation vector (ALV):  \c
.qs
An allocation vector is maintained in the BIOS for each logged-in 
disk drive.  A vector consists of a string of bits, one for each 
block on the drive.  The bit corresponding to a particular block 
is set to one when the block has been allocated and to zero 
otherwise.  The first two bytes of this vector are initialized 
with the bytes AL0 and AL1 on, thus allocating the directory 
blocks.  CP/M Function 27 returns the allocation vector address.
.sp
.sh
AL0, AL1:  \c
.qs
Two bytes in the disk parameter block that reserve data blocks 
for the directory.  These two bytes are copied into the first two 
bytes of the allocation vector when a drive is logged in.  See \c
.sh
allocation vector.
.sp
.sh
ALV:  \c
.qs
See \c
.sh
allocation vector.
.sp
.sh
ambiguous filename:  \c
.qs
Filename that contains either of the CP/M wildcard characters, ? 
or *, in the primary filename, filetype, or both.  When you 
replace characters in a filename with these wildcard characters, 
you create an ambiguous filename and can easily reference more 
than one CP/M file in a single command line.
.sp
.sh
American Standard Code for Information Interchange:  \c
.qs
See \c
.sh
ASCII.
.sp
.sh
applications program:  \c
.qs
Program designed to solve a specific problem.  Typical 
applications programs are business accounting packages, word 
processing (editing) programs and mailing list programs.
.sp
.sh
archive attribute:  \c
.qs
File attribute controlled by the high-order bit of the t3 byte 
(FCB+11) in a directory element.  This attribute is set if the 
file has been archived.
.sp
.sh
argument:  \c
.qs
Symbol, usually a letter, indicating a place into which you can 
substitute a number, letter, or name to give an appropriate 
meaning to the formula in question.
.sp
.sh
ASCII:  \c
.qs
American Standard Code for Information Interchange.  ASCII is a 
standard set of seven-bit numeric character codes used to 
represent characters in memory.  Each character requires one byte 
of memory with the high-order bit usually set to zero.  
Characters can be numbers, letters, and symbols.  An ASCII file can be 
intelligibly displayed on the video screen or printed on paper.
.sp
.sh
assembler:  \c
.qs
Program that translates assembly language into the binary machine 
code.  Assembly language is simply a set of mnemonics used to 
designate the instruction set of the CPU.  See \c
.sh
ASM \c
.qs
in Section 3 of this manual.
.sp
.sh
back-up:  \c
.qs
Copy of a disk or file made for safekeeping, or the creation of 
the duplicate disk or file.
.sp
.sh
Basic Disk Operating System:  \c
.qs
See \c
.sh
BDOS.
.sp
.sh
BDOS:  \c
.qs
Basic Disk Operating System.  The BDOS module of the CP/M 
operating system provides an interface for a user program to the 
operating system.  This interface is in the form of a set of 
function calls which may be made to the BDOS through calls to 
location 0005H in page zero.  The user program specifies the 
number of the desired function in register C.  User programs 
running under CP/M should use BDOS functions for all I/O 
operations to remain compatible with other CP/M systems and 
future releases.  The BDOS normally resides in high memory 
directly below the BIOS.
.sp
.sh
bias:  \c
.qs
Address value which when added to the origin address of your BIOS 
module produces 1F80H, the address of the BIOS module in the 
MOVCPM image.  There is also a bias value that when added to the 
BOOT module origin produces 0900H, the address of the BOOT module 
in the MOVCPM image.  You must use these bias values with the R 
command under DDT or SID \ \ when you patch a CP/M system.  If you do 
not, the patched system may fail to function.
.sp
.sh
binary:  \c
.qs
Base 2 numbering system.  A binary digit can have one of two 
values:  0 or 1.  Binary numbers are used in computers because 
the hardware can most easily exhibit two states:  off and on. 
Generally, a bit in memory represents one binary digit.
.sp
.sh
Basic Input/Output System:  \c
.qs
See \c
.sh
BIOS.
.sp
.sh
BIOS:  \c
.qs
Basic Input/Output System.  The BIOS is the only hardware-
dependent module of the CP/M system.  It provides the BDOS with a 
set of primitive I/O operations.  The BIOS is an assembly 
language module usually written by the user, hardware 
manufacturer, or independent software vendor, and is the key to 
CP/M's portability.  The BIOS interfaces the CP/M system to its 
hardware environment through a standardized jump table at the 
front of the BIOS routine and through a set of disk parameter 
tables which define the disk environment.  Thus, the BIOS 
provides CP/M with a completely table-driven I/O system.
.sp
.sh
BIOS base:  \c
.qs
Lowest address of the BIOS module in memory, that by definition  
must be the first entry point in the BIOS jump table.
.bp
.sh
bit:  \c
.qs
Switch in memory that can be set to on (1) or off (0).  Bits are 
grouped into bytes, eight bits to a byte, which is the smallest 
directly addressable unit in an Intel 8080 or Zilog Z80.  By 
common convention, the bits in a byte are numbered from right, 0 
for the low-order bit, to left, 7 for the high-order bit.  Bit 
values are often represented in hexadecimal notation by grouping 
the bits from the low-order bit in groups of four.  Each group of 
four bits can have a value from 0 to 15 and thus can easily be 
represented by one hexadecimal digit.
.sp
.sh
BLM:  \c
.qs
See \c
.sh
block mask.
.sp
.sh
block:  \c
.qs
Basic unit of disk space allocation.  Each disk drive has a fixed 
block size (BLS) defined in its disk parameter block in the BIOS.  
A block can consist of 1K, 2K, 4K, 8K, or 16K consecutive bytes.  
Blocks are numbered relative to zero so that each block is unique 
and has a byte displacement in a file equal to the block number 
times the block size.
.sp
.sh
block mask (BLM):  \c
.qs
Byte value in the disk parameter block at DPB + 3.  The block 
mask is always one less than the number of 128 byte sectors that 
are in one block.  Note that BLM = (2 ** BSH) - 1.
.sp
.sh
block shift (BSH):  \c
.qs
Byte parameter in the disk parameter block at DPB + 2.  
Block shift and block mask (BLM) values are determined by the 
block size (BLS).  Note that BLM = (2 ** BSH) - 1.
.sp
.sp 0
.sh
blocking & deblocking algorithm:  \c
.qs
In some disk subsystems the disk sector size is larger than 128 
bytes, usually 256, 512, 1024, or 2048 bytes.  When the host 
sector size is larger than 128 bytes, host sectors must be 
buffered in memory and the 128-byte CP/M sectors must be blocked 
and deblocked by adding an additional module, the blocking and 
deblocking algorithm, between the BIOS disk I/O routines and the 
actual disk I/O.  The host sector size must be an even multiple 
of 128 bytes for the algorithm to work correctly.  The blocking 
and deblocking algorithm allows the BDOS and BIOS to function 
exactly as if the entire disk consisted only of 128-byte sectors, 
as in the standard CP/M installation.
.sp
.sh
BLS:  \c
.qs
Block size in bytes.  See \c
.sh
block.
.sp
.sh
boot:  \c
.qs
Process of loading an operating system into memory.  A boot 
program is a small piece of code that is automatically executed 
when you power-up or reset your computer.  The boot program loads 
the rest of the operating system into memory in a manner similar 
to a person pulling himself up by his own bootstraps.  This 
process is sometimes called a cold boot or cold start.  Bootstrap 
pocedures vary from system to system.  The boot program must be 
customized for the memory size and hardware environment that the 
operating system manages.  Typically, the boot resides on the 
first sector of the system tracks on your system disk.  When 
executed, the boot loads the remaining sectors of the system 
tracks into high memory at the location for which the CP/M system 
has been configured.  Finally, the boot transfers execution to 
the boot entry point in the BIOS jump table so that the system 
can initialize itself.  In this case, the boot program should be 
placed at 900H in the SYSGEN image.  Alternatively, the boot 
program may be located in ROM.
.sp
.sh
bootstrap:  \c
.qs
See \c
.sh
boot.
.sp
.sh
BSH:  \c
.qs
See \c
.sh
block shift.
.sp
.sh
BTREE:  \c
.qs
General purpose file access method that has become the standard 
organization for indexes in large data base systems.  BTREE 
provides near optimum performance over the full range of file 
operations, such as insertion, deletion, search, and search next.
.sp
.sh
buffer:  \c
.qs
Area of memory that temporarily stores data during the transfer 
of information.
.sp
.sh
built-in commands:  \c
.qs
Commands that permanently reside in memory.  They respond quickly 
because they are not accessed from a disk.
.sp
.sh
byte:  \c
.qs
Unit of memory or disk storage containing eight bits.  A byte can 
represent a binary number between 0 and 255, and is the smallest 
unit of memory that can be addressed directly in 8-bit CPUs such 
as the Intel 8080 or Zilog Z80.
.sp
.sh
CCP:  \c
.qs
Console Command Processor.  The CCP is a module of the CP/M 
operating system.  It is loaded directly below the BDOS module 
and interprets and executes commands typed by the console user.  
Usually these commands are programs that the CCP loads and calls.  
Upon completion, a command program may return control to the CCP 
if it has not overwritten it.  If it has, the program can reload 
the CCP into memory by a warm boot operation initiated by either 
a jump to zero, BDOS system reset (Function 0), or a cold boot.  
Except for its location in high memory, the CCP works like any 
other standard CP/M program; that is, it makes only BDOS function 
calls for its I/O operations.
.sp
.sh
CCP base:  \c
.qs
Lowest address of the CCP module in memory.  This term sometimes 
refers to the base of the CP/M system in memory, as the CCP is 
normally the lowest CP/M module in high memory.
.sp
.sh
checksum vector (CSV):  \c
.qs
Contiguous data area in the BIOS, with one byte for each 
directory sector to be checked, that is, CKS bytes.  See \c
.sh
CKS.  \c
.qs
A checksum vector is initialized and maintained for each logged-in
drive.  Each directory access by the system results in a checksum 
calculation that is compared with the one in the checksum vector.  
If there is a discrepancy, the drive is set to Read-Only status.  
This feature prevents the user from inadvertently switching disks 
without logging in the new disk.  If the new disk is not logged-in,
it is treated the same as the old one, and data on it might be 
destroyed if writing is done.
.sp
.mb 5
.fm 1
.sh
CKS:  \c
.qs
Number of directory records to be checked summed on directory 
accesses.  This is a parameter in the disk parameter block 
located in the BIOS.  If the value of CKS is zero, then no 
directory records are checked.  CKS is also a parameter in the 
diskdef macro library, where it is the actual number of directory 
elements to be checked rather than the number of directory 
records.
.sp
.sh
cold boot:  \c
.qs
See \c
.sh
boot.  \c
.qs
Cold boot also refers to a jump to the boot entry point in the 
BIOS jump table.
.sp
.mb 6
.fm 2
.sh
COM:  \c
.qs
Filetype for a CP/M command file.  See \c
.sh
command file.
.sp
.sh
command:  \c
.qs
CP/M command line.  In general, a CP/M command line has three 
parts:  the command keyword, command tail, and a carriage return.  
To execute a command, enter a CP/M command line directly after 
the CP/M prompt at the console and press the carriage return or 
enter key.
.sp
.sh
command file:  \c
.qs
Executable program file of filetype COM.  A command file is a 
machine language object module ready to be loaded and executed at 
the absolute address of 0100H.  To execute a command file, enter 
its primary filename as the command keyword in a CP/M command 
line.
.sp
.sh
command keyword:  \c
.qs
Name that identifies a CP/M command, usually the primary filename 
of a file of type COM, or a built-in command.  The command 
keyword precedes the command tail and the carriage return in the 
command line.
.sp
.sh
command syntax:  \c
.qs
Statement that defines the correct way to enter a command.  The 
correct structure generally includes the command keyword, the 
command tail, and a carriage return.  A syntax line usually 
contains symbols that you should replace with actual values when 
you enter the command.
.sp
.sh
command tail:  \c
.qs
Part of a command that follows the command keyword in the command 
line.  The command tail can include a drive specification, a 
filename and filetype, and options or parameters.  Some 
commands do not require a command tail.
.sp
.sh
CON:  \c
.qs
Mnemonic that represents the CP/M console device.
For example, the CP/M command PIP CON:=TEST.SUB displays the 
file TEST.SUB on the console device.  The explanation of the STAT 
command tells how to assign the logical device CON: to various 
physical devices.  \c
See \c
.sh
console.
.sp
.sh
concatenate:  \c
.qs
Name of the PIP operation that copies two or more separate files 
into one new file in the the specified sequence.
.sp
.sh
concurrency:  \c
.qs
Execution of two processes or operations simultaneously.
.sp
.sh
CONIN:  \c
.qs
BIOS entry point to a routine that reads a character from the 
console device.
.sp
.sh
CONOUT:  \c
.qs
BIOS entry point to a routine that sends a character to the 
console device.
.bp
.sh
console:  \c
.qs
Primary input/output device.  The console consists of a listing 
device, such as a screen or teletype, and a keyboard through 
which the user communicates with the operating system or 
applications program.
.sp
.sh
Console Command Processor:  \c
.qs
See \c
.sh
CCP.
.sp
.sh
CONST:  \c
.qs
BIOS entry point to a routine that returns the status of the 
console device.
.sp
.sh
control character:  \c
.qs
Nonprinting character combination.  CP/M interprets some control 
characters as simple commands such as line editing functions.  To 
enter a control character, hold down the CONTROL key and strike 
the specified character key.
.sp
.sh
Control Program for Microcomputers:  \c
.qs
See \c
.sh
CP/M.
.sp
.sh
CP/M:  \c
.qs
Control Program for Microcomputers.  An operating system that 
manages computer resources and provides a standard systems 
interface to software written for a large variety of 
microprocessor-based computer systems.
.sp
.sh
CP/M 1.4l compatibility:  \c
.qs
For a CP/M 2 system to be able to read correctly single-density 
disks produced under a CP/M 1.4 system, the extent mask must be 
zero and the block size 1K.  This is because under CP/M 2 an FCB 
may contain more than one extent.  The number of extents that may 
be contained by an FCB is EXM+1.  The issue of CP/M 1.4 
compatibility also concerns random file I/O.  To perform random 
file I/O under CP/M 1.4, you must maintain an FCB for each extent 
of the file.  This scheme is upward compatible with CP/M 2 for 
files not exceeding 512K bytes, the largest file size supported 
under CP/M 1.4.  If you wish to implement random I/O for files 
larger than 512K bytes under CP/M 2, you must use the random read 
and random write functions, BDOS functions 33, 34, and 36.  In 
this case, only one FCB is used, and if CP/M 1.4 compatiblity is 
required, the program must use the return version number 
function, BDOS Function 12, to determine which method to employ.
.sp
.sh
CP/M prompt:  \c
.qs
Characters that indicate that CP/M is ready to execute your next 
command.  The CP/M prompt consists of an upper-case letter, A-P, 
followed by a > character; for example, A>.  The letter 
designates which drive is currently logged in as the default 
drive.  CP/M will search this drive for the command file 
specified, unless the command is a built-in command or prefaced 
by a select drive command: for example, B:STAT.
.sp
.sh
CP/NET:  \c
.qs
Digital Research network operating system enabling microcomputers 
to obtain access to common resources via a network.  CP/NET 
consists of MP/M masters and CP/M slaves with a network interface 
between them.
.sp
.sh
CSV:  \c
.qs
See \c
.sh
checksum vector.
.sp
.mb 5
.fm 1
.sh
cursor:  \c
.qs
One-character symbol that can appear anywhere on the console 
screen.  The cursor indicates the position where the next 
keystroke at the console will have an effect.
.sp
.sh
data file:  \c
.qs
File containing information that will be processed by a program.
.sp
.mb 6
.fm 2
.sh
deblocking:  \c
.qs
See \c
.sh
blocking & deblocking algorithm.
.sp
.sh
default:  \c
.qs
Currently selected disk drive and user number.  Any command that 
does not specify a disk drive or a user number references the 
default disk drive and user number.  When CP/M is first invoked, 
the default disk drive is drive A, and the default user number is 
0.
.sp
.sh
default buffer:  \c
.qs
Default 128-byte buffer maintained at 0080H in page zero.  When 
the CCP loads a COM file, this buffer is initialized to the 
command tail; that is, any characters typed after the COM file 
name are loaded into the buffer.  The first byte at 0080H 
contains the length of the command tail, while the command tail 
itself begins at 0081H.  The command tail is terminated by a byte 
containing a binary zero value.  The I command under DDT and SID 
initializes this buffer in the same way as the CCP.
.sp
.sh
default FCB:  \c
.qs
Two default FCBs are maintained by the CCP at 005CH and 006CH in 
page zero.  The first default FCB is initialized from the first 
delimited field in the command tail.  The second default FCB 
is initialized from the next field in the command tail.
.sp
.sp 0
.sh
delimiter:  \c
.qs
Special characters that separate different items in a command 
line; for example, a colon separates the drive specification from 
the filename.  The CCP recognizes the following characters as 
delimiters:  . : = ; < > _, blank, and carriage return.  Several 
CP/M commands also treat the following as delimiter characters:  
, [ ] ( ) $.  It is advisable to avoid the use of delimiter 
characters and lower-case characters in CP/M filenames.
.sp
.sh
DIR:  \c
.qs
Parameter in the diskdef macro library that specifies the number 
of directory elements on the drive.
.sp
.sh
DIR attribute:  \c
.qs
File attribute.  A file with the DIR attribute can be displayed 
by a DIR command.  The file can be accessed from the default user 
number and drive only.
.sp
.sh
DIRBUF:  \c
.qs
128-byte scratchpad area for directory operations, 
usually located at the end of the BIOS.  DIRBUF is used by the 
BDOS during its directory operations.  DIRBUF also refers to the 
two-byte address of this scratchpad buffer in the disk parameter 
header at DPbase + 8 bytes.
.sp
.sh
directory:  \c
.qs
Portion of a disk that contains entries for each file on the 
disk.  In response to the DIR command, CP/M displays the 
filenames stored in the directory.  The directory also contains  
the locations of the blocks allocated to the files.  Each file 
directory element is in the form of a 32-byte FCB, although one 
file can have several elements, depending on its size.  The 
maximum number of directory elements supported is specified by 
the drive's disk parameter block value for DRM.
.bp
.sh
directory element:  \c
.qs
Data structure.  Each file on a disk has one or more 32-byte 
directory elements associated with it.  There are four directory 
elements per directory sector.  Directory elements can also be 
referred to as directory FCBs.
.sp
.sh
directory entry:  \c
.qs
File entry displayed by the DIR command.  Sometimes this term 
refers to a physical directory element.
.sp
.sp 0
.sh
disk, diskette:  \c
.qs
Magnetic media used for mass storage in a computer system.  
Programs and data are recorded on the disk in the same way music 
can be recorded on cassette tape.  The CP/M operating system must 
be initially loaded from disk when the computer is turned on.  
Diskette refers to smaller capacity removable floppy diskettes, 
while disk may refer to either a diskette, removable cartridge  
disk, or fixed hard disk.  Hard disk capacities range from five 
to several hundred megabytes of storage.
.sp
.sh
diskdef macro library:  \c
.qs
Library of code that when used with MAC, the Digital Research 
macro assembler, creates disk definition tables such as the DPB 
and DPH automatically.
.sp
.sh
disk drive:  \c
.qs
Peripheral device that reads and writes information on disk.
CP/M assigns a letter to each drive under its 
control.  For example, CP/M may refer to the drives in a
four-drive system as A, B, C, and D.
.sp
.sh
disk parameter block (DPB):  \c
.qs
Data structure referenced by one or more disk parameter headers.  
The disk parameter block defines disk characteristics in the 
fields listed below:
.sp
.in 5
.nf
SPT is the total number of sectors per track.
BSH is the data allocation block shift factor.
BLM is the data allocation block mask.
EXM is the extent mask determined by BLS and DSM.
DSM is the maximum data block number.
DRM is the maximum number of directory entries--1.
AL0 reserves directory blocks.
AL1 reserves directory blocks.
CKS is the number of directory sectors check summed.
OFF is the number of reserved system tracks.
.fi
.in 0
.sp
The address of the disk parameter block is located in the disk 
parameter header at DPbase +0AH.  CP/M Function 31 returns the 
DPB address.  Drives with the same characteristics can use the 
same disk parameter header, and thus the same DPB.  However, 
drives with different characteristics must each have their own 
disk parameter header and disk parameter blocks.  When the BDOS 
calls the SELDSK entry point in the BIOS, SELDSK must return the 
address of the drive's disk parameter header in register HL.
.sp
.sh
disk parameter header (DPH):  \c
.qs
Data structure that contains information about the disk drive and 
provides a scratchpad area for certain BDOS operations.  The disk 
parameter header contains six bytes of scratchpad area for the 
BDOS, and the following five 2-byte parameters:
.sp
.in 5
.nf
XLT is the sector translation table address.
DIRBUF is the directory buffer address.
DPB is the disk parameter block address.
CSV is the checksum vector address.
ALV is the allocation vector address.
.fi
.in 0
.sp
Given n disk drives, the disk parameter headers are arranged in a 
table whose first row of 16 bytes corresponds to drive 0, with 
the last row corresponding to drive n-1.
.sp
.sh
DKS:  \c
.qs
Parameter in the diskdef macro library specifying the number of 
data blocks on the drive.
.sp
.sh
DMA:  \c
.qs
Direct Memory Access.  DMA is a method of transferring data from 
the disk into memory directly.  In a CP/M system, the BDOS calls 
the BIOS entry point READ to read a sector from the disk into the 
currently selected DMA address.  The DMA address must be the 
address of a 128-byte buffer in memory, either the default buffer 
at 0080H in page zero, or a user-assigned buffer in the TPA.  
Similarly, the BDOS calls the BIOS entry point WRITE to write the 
record at the current DMA address to the disk.
.sp
.sh
DN:  \c
.qs
Parameter in the diskdef macro library specifying the logical 
drive number.
.sp
.sh
DPB:  \c
.qs
See \c
.sh
disk parameter block.
.sp
.sh
DPH:  \c
.qs
See \c
.sh
disk parameter header.
.sp
.sh
DRM:  \c
.qs
2-byte parameter in the disk parameter block at DPB + 7.  DRM is 
one less than the total number of directory entries allowed for 
the drive.  This value is related to DPB bytes AL0 and AL1, which 
allocates up to 16 blocks for directory entries.
.sp
.sh
DSM:  \c
.qs
2-byte parameter of the disk parameter block at DPB + 5.  DSM is 
the maximum data block number supported by the drive.  The 
product BLS times (DSM+1) is the total number of bytes held by 
the drive.  This must not exceed the capacity of the physical 
disk less the reserved system tracks.
.sp
.sh
editor:  \c
.qs
Utility program that creates and modifies text files.  An editor 
can be used for creation of documents or creation of code for 
computer programs.  The CP/M editor is invoked by typing the 
command ED next to the system prompt on the console.
.sp
.sh
EX:  \c
.qs
Extent number field in an FCB.  See \c
.sh
extent.
.sp
.sh
executable:  \c
.qs
Ready to be run by the computer.  Executable code is a series of 
instructions that can be carried out by the computer.  For 
example, the computer cannot execute names and addresses, but it 
can execute a program that prints all those names and addresses 
on mailing labels.
.sp
.sh
execute a program:  \c
.qs
Start the processing of executable code.
.sp
.sh
EXM:  \c
.qs
See \c
.sh
extent mask.
.sp
.sh
extent:  \c
.qs
16K consecutive bytes in a file.  Extents are numbered from 0 to 
31.  One extent can contain 1, 2, 4, 8, or 16 blocks.  EX is the 
extent number field of an FCB and is a one-byte field at FCB + 
12, where FCB labels the first byte in the FCB.  Depending on the 
block size (BLS) and the maximum data block number (DSM), an FCB 
can contain 1, 2, 4, 8, or 16 extents.  The EX field is normally 
set to 0 by the user but contains the current extent number 
during file I/O.  The term FCB folding describes FCBs containing 
more than one extent.  In CP/M version 1.4, each FCB contained 
only one extent.  Users attempting to perform random record I/O 
and maintain CP/M 1.4 compatiblity should be aware of the 
implications of this difference.  See \c
.sh
CP/M 1.4 compatibility.
.sp
.sh
extent mask (EXM):  \c
.qs
A byte parameter in the disk parameter block located at DPB + 3.  
The value of EXM is determined by the block size (BLS) and 
whether the maximum data block number (DSM) exceeds 255.  There 
are EXM + 1 extents per directory FCB.
.sp
.sh
FCB:  \c
.qs
See \c
.sh
File Control Block.
.sp
.sh
file:  \c
.qs
Collection of characters, instructions, or data that can be 
referenced by a unique identifier.  Files are usually stored on 
various types of media, such as disk, or magnetic 
tape.  A CP/M file is identified by a file specification and 
resides on disk as a collection of from zero to 65,536 records.  
Each record is 128 bytes and can contain either binary or ASCII 
data.  Binary files contain bytes of data that can vary in value 
from 0H to 0FFH.  ASCII files contain sequences of character 
codes delineated by a carriage return and line-feed combination; 
normally byte values range from 0H to 7FH.  The directory maps 
the file as a series of physical blocks.  Although files are 
defined as a sequence of consecutive logical records, these 
records can not reside in consecutive sectors on the disk.  See 
also \c
.sh
block, directory, extent, record, \c
.qs
and \c
.sh
sector.
.qs
.nx apph2.tex
