- 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 0H.
- allocation vector (ALV)
- 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.
- AL0, AL1
- 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 allocation vector.
- See allocation vector.
- ambiguous filename
- 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
- American Standard Code for Information Interchange
- See ASCII.
- applications program
- Program designed to solve a specific
problem. Typical applications programs are business accounting
packages, word processing (editing) programs and mailing list
- archive attribute
- 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.
- 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.
- 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.
- 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
ASM in Section 3 of this manual.
- Copy of a disk or file made for safekeeping, or the
creation of the duplicate disk or file.
- Basic Disk Operating System
- See BDOS.
- Basic Disk Operating System. The BDOS module of the CP/M
operating systemprovides an interface for a user program to the
operating. 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.
- Address value which when added to the origin address
of your BIOS module produces lF80H, 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 mu'st 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 fall to
- 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.
- Basic Input/Output System
- See BIOS.
- 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.
- BIOS base
- Lowest address of the BIOS module in memory, that by
definition must be the first entry point in the BIOS jump table.
- 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.
- See block mask.
- 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.
- block mask (BLM)
- 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.
- block shift (BSH)
- 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.
- blocking & deblocking algorithm
- 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.
- Block size in bytes. See block.
- 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.
- See boot.
- See block shift.
- 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
- Area of memory that temporarily stores data during the
transfer of information.
- built-in commands
- Commands that permanently reside in memory.
They respond quickly because they are not accessed from a disk.
- 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.
- 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.
- CCP base
- 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.
- checksum vector (CSV)
- Contiguous data area in the BIOS, with one
byte for each directory sector to be checked, that is, CKS bytes.
See CKS. 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.
- 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
- cold boot
- See boot. Cold boot also refers to a jump to the boot
entry. point in the BIOS jump table.
- Filetype for a CP/M command file. See command file.
- 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.
- command file
- 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 keyword
- 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.
- command syntax
- 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.
- command tail
- 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.
- 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. See console.
- Name of the PIP operation that copies two or more
separate files into one new file in the specified sequence.
- Execution of two processes or operations
- BIOS entry point to a routine that reads a character from
the console device.
- BIOS entry point to a routine that sends a character to
the console device.
- 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
- Console Command Processor
- See CCP.
- BIOS entry point to a routine that returns the status of
the console device.
- control character
- 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.
- Control Program for Microcomputers
- See CP/M.
- 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.
- CP/M 1.4 compatibility
- 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 is 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.
- CP/M prompt
- 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.
- 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.
- See checksum vector.
- 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.
- data file
- File containing information that will be processed by
- See blocking & deblocking algorithm.
- 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.
- default buffer
- Default 128-byte buffer maintained at 0080H in
page zero. When the CCP loads a COM file, this buffer is
initialized to the command tall; 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 tall, 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.
- default FCB
- 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.
- 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
- Parameter in the diskdef macro library that specifies the
number of directory elements on the drive.
- DIR attribute
- 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.
- 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.
- 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.
- directory element
- 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.
- directory entry
- File entry displayed by the DIR command.
Sometimes this term refers to a physical directory element.
- disk, diskette
- 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
- diskdef macro library
- Library of code that when used with MAC,
the Digital Research macro assembler, creates disk definition
tables such as the DPB and DPH automatically.
- disk drive
- 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.
- disk parameter block (DPB)
- Data structure referenced by one or
more disk parameter headers. The disk parameter block defines
disk characteristics in the fields listed below:
- 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.
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.
- disk parameter header (DPH)
- 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
- 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.
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.
- Parameter in the diskdef macro library specifying the number
of data blocks on the drive.
- 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.
- Parameter in the diskdef macro library specifying the logical
- See disk parameter block.
- See disk parameter header.
- 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.
- 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.
- 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.
- Extent number field in an FCB. See extent.
- 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.
- execute a program
- Start the processing of executable code.
- See extent mask.
- 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 CP/M
- extent mask (EXM)
- 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.
- See File Control Block.
- 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 block, directory,
extent, record, and sector.
- File Control Block (FCB)
- Structure used for accessing files on
disk. Contains the drive, filename, filetype, and other
information describing a file to be accessed or created on the
disk. A file control block consists of 36 consecutive bytes
specified by the user for file I/O functions. FCB can also refer
to a directory element in the directory portion of the allocated
disk space. These contain the same first 32 bytes of the FCB, but
lack the current record and random record number bytes.
- Name assigned to a file. A filename can include a
primary filename of one to eight characters; a filetype of zero
to three characters. A period separates the primary filename
from the filetype.
- file specification
- Unique file identifier. A complete CP/M file
specification includes a disk drive specification followed by a
colon, d:, a primary filename of one to eight characters, a
period, and a filetype of zero to three characters. For example,
b:example.tex is a complete CP/M file specification.
- Extension to a filename. A filetype can be from zero to
three characters and must be separated from the primary filename
by a period. A filetype can tell something about the file. Some
programs require that files to be processed have specific
- floppy disk
- Flexible magnetic disk used to store information.
Floppy disks come in 5 1/4- and 8-inch diameters.
- Parameter in the diskdef macro library specifying the first
physical sector number. This parameter is used to determine SPT
and build XLT.
- hard disk
- Rigid, platter-like, magnetic disk sealed in a
container. A hard disk stores more information than a floppy
- Physical components of a computer.
- hexadecimal notation
- Notation for base 16 values using the
decimal digits and letters A, B, C, D, E, and F to represent the
16 digits. Hexadecimal notation is often used to refer to binary
numbers. A binary number can be easily expressed as a hexadecimal
value by taking the bits in groups of 4, starting with the least
significant bit, and expressing each group as a hexadecimal
digit, 0-F. Thus the bit value 1011 becomes 0BH and 10110101
- hex file
- ASCII-printable representation of a command, machine
- hex file format
- Absolute output of ASM and MAC for the Intel
8080 is a hex format file, containing a sequence of absolute
records that give a load address and byte values to be stored,
starting at the load address.
- BIOS entry point which sets the disk head of the currently
selected drive to the track zero position.
- Physical characteristics of a hard disk drive in a system
using the blocking and deblocking algorithm. The term, host,
helps distinguish physical hardware characteristics from CP/M's
logical characteristics. For example, CP/M sectors are always 128
bytes, although the host sector size can be a multiple of 128
- Data going into the computer, usually from an operator
typing at the terminal or by a program reading from the disk.
- See I/O.
- Object that allows two independent systems to
communicate with each other, as an interface between hardware and
software in a microcomputer.
- Abbreviation for input/output. Usually refers to
input/output operations or routines handling the input and output
of data in the computer system.
- A one-byte field in page zero, currently at location
0003H, that can support a logical-to-physical device mapping for
I/O. However, its implementation in your BIOS is purely optional
and might or might not be supported in a given CP/M system. The
IOBYTE is easily set using the command:
STAT <logical device> = <physical device>
The CP/M logical devices are CON:, RDR:, PUN:, and LST:; each of
these can be assigned to one of four physical devices. The IOBYTE
can be initialized by the BOOT entry point of the BIOS and
interpreted by the BIOS I/O entry points CONST, CONIN, CONOUT,
LIST, PUNCH, and READER. Depending on the setting of the IOBYTE,
different I/O drivers can be selected by the BIOS. For example,
setting LST:=TTY: might cause LIST output to be directed to a
serial port, while setting LST:=LPT: causes LIST output to be
directed to a parallel port.
- Abbreviation for kilobyte. See kilobyte.
- See command keyword.
- kilobyte (K)
- 1024 bytes or 0400H bytes of memory. This is a
standard unit of memory. For example, the Intel 8080 supports up
to 64K of memory address space or 65,536 bytes. 1024 kilobytes
equal one megabyte, or over one million bytes.
- Utility program used to combine relocatable object
modules into an absolute file ready for execution. For example,
LINK-80(TM) creates either a COM or PRL file from relocatable REL
files, such as those produced by PL/1-80(TM).
- A BIOS entry point to a routine that sends a character to
the list device, usually a printer.
- list device
- Device such as a printer onto which data can be
listed or printed.
- BIOS entry point to a routine that returns the ready
status of the list device.
- Utility program that brings an absolute program image
into memory ready for execution under the operating system, or a
utility used to make such an image. For example, LOAD prepares an
absolute COM file from the assembler hex file output that is
ready to be executed under CP/M.
- logged in
- Made known to the operating system, in reference to
drives. A drive is logged in when it is selected by the user or
an executing process. It remains selected or logged in until you
change disks in a floppy disk drive or enter CTRL-C at the
command level, or until a BDOS Function 0 is executed.
- Representation of something that might or might not be
the same in its actual physical form. For example, a hard disk
can occupy one physical drive, yet you can divide the available
storage on it to appear to the user as if it were in several
different drives. These apparent drives are the logical drives.
- logical sector
- See sector.
- logical-to-physical sector translation table
- See XLT.
- Diskdef macro library parameter specifying the last
physical sector number.
- Logical CP/M list device, usually a printer. The CP/M list
device is an output-only device referenced through the LIST and
LISTST entry points of the BIOS. The STAT command allows
assignment of LST: to one of the physical devices: TTY:, CRT:,
LPT:, or UL1:, provided these devices and the IOBYTE are
implemented in the LIST and LISTST entry points of your CP/M BIOS
module. The CP/NET command NETWORK allows assignment of LST: to a
list device on a network master. For example, PIP LST:=TEST.SUB
prints the file TEST.SUB on the list device.
- macro assembler
- Assembler code translator providing macro
processing facilities. Macro definitions allow groups of
instructions to be stored and substituted in the source program
as the macro names are encountered. Definitions and invocations
can be nested and macro parameters can be formed to pass
arbitrary strings of text to a specific macro for substitution
- Over one million bytes; 1024 kilobytes. See byte, and
- Silicon chip that is the central processing unit microprocessor: microprocessor:
(CPU) of the microcomputer. The Intel 8080 and the Zilog Z80 are
microprocessors commonly used in CP/M systems.
- MOVCPM image
- Memory image of the CP/M system created by MOVCPM.
This image can be saved as a disk file using the SAVE command or
placed on the system tracks using the SYSGEN command without
specifying a source drive. This image varies, depending on the
presence of a one-sector or two-sector boot. If the boot is less
than 128 bytes (one sector), the boot begins at 0900H, the CP/M
system at 0980H, and the BIOS at 1F80H. Otherwise, the boot is at
0900H, the CP/M system at 1000H, and the BIOS at 2000H. In a CP/M
1.4 system with a one-sector boot, the addresses are the same as
for the CP/M 2 system-except that the BIOS begins at 1E80H
instead of 1F80H.
- Multi-Programming Monitor control program. A microcomputer
operating system supporting multi-terminal access with multi-
programming at each terminal.
- The capability of initiating and executing
more than one program at a time. These programs, usually called
processes, are time-shared, each receiving a slice of CPU time on
a round-robin basis. See concurrency.
- One half of a byte, usually the high-order or low-order
4 bits in a byte.
- Two-byte parameter in the disk parameter block at DPB + 13
bytes. This value specifies the number of reserved system tracks.
The disk directory begins in the first sector of track OFF.
- Diskdef macro library parameter specifying the number of
reserved system tracks. See OFF.
- operating system
- Collection of programs that supervises the
execution of other programs and the management of computer
resources. An operating system provides an orderly input/output
environment between the computer and its peripheral devices. It
enables user-written programs to execute safely. An operating
system standardizes the use of computer resources for the
programs running under it.
- One of many parameters that can be part of a command
tall. Use options to specify additional conditions for a
- Data that is sent to the console, disk, or printer.
- 256 consecutive bytes in memory beginning on a page
boundary, whose base address is a multiple of 256 (100H) bytes.
In hex notation, pages always begin at an address with a least
significant byte of zero.
- page relocatable program
- See PRL.
- page zero
- Memory region between 0000H and 0100H used to hold
critical system parameters. Page zero functions primarily as an
interface region between user programs and the CP/M BDOS module.
Note that in non-standard systems this region is the base page of
the system and represents the first 256 bytes of memory used by
the CP/M system and user programs running under it.
- Value in the command tail that provides additional
information for the command. Technically, a parameter is a
required element of a command.
- peripheral devices
- Devices external to the CPU. For example,
terminals, printers, and disk drives are common peripheral
devices that are not part of the processor but are used in
conjunction with it.
- Characteristic of computer components, generally
hardware, that actually exist. In programs, physical components
can be represented by logical components.
- primary filename
- First 8 characters of a filename. The primary
filename is a unique name that helps the user identify the file
contents. A primary filename contains one to eight characters and
can include any letter or number and some special characters. The
primary filename follows the optional drive specification and
precedes the optional filetype.
- Page relocatable program. A page relocatable program is
stored on disk with a PRL filetype. Page relocatable programs
are easily relocated to any page boundary and thus are suitable
for execution in a nonbanked MP/M system.
- Series of coded Instructions that performs specific
tasks when executed by a computer. A program can be written in a
processor-specific language or a high-level language that can be
implemented on a number of different processors.
- Any characters displayed on the video screen to help the
user decide what the next appropriate action is. A system prompt
is a special prompt displayed by the operating system. The
alphabetic character indicates the default drive. Some
applications programs have their own special prompts. See CP/M
- Logical CP/M punch device. The punch device is an
output-only device accessed through the PUNCH entry point of the BIOS.
In certain implementations, PUN: can be a serial device such as
- BIOS entry point to a routine that sends a character to
the punch device.
- Logical CP/M reader device. The reader device is an
input-only device accessed through the READER entry point in the BIOS.
- Entry point in the BIOS to a routine that reads 128 bytes
from the currently selected drive, track, and sector into the
current DMA address.
- Entry point to a routine in the BIOS that reads the next
character from the currently assigned reader device.
- Read-Only (R/O)
- Attribute that can be assigned to a disk file or
a disk drive. When assigned to a file, the Read-Only attribute
allows you to read from that file but not write to it. When
assigned to a drive, the Read-Only attribute allows you to read
any file on the disk, but prevents you from adding a new file,
erasing or changing a file, renaming a file, or writing on the
disk. The STAT command can set a file or a drive to Read-Only.
Every file and drive is either Read-Only or Read-Write. The
default setting for drives and files is Read-Write, but an error
in resetting the disk or changing media automatically sets the
drive to Read-Only until the error is corrected. See also ROM.
- Read-Write (R/W)
- Attribute that can be assigned to a disk file
or a disk drive. The Read-Write attribute allows you to read from
and write to a specific Read-Write file or to any file on a disk
that is in a drive set to Read-Write. A file or drive can be set
to either Read-Only or Read-Write.
- Group of bytes in a file. A physical record consists of
128 bytes and is the basic unit of data transfer between the
operating system and the application program. A logical record
might vary in length and is used to represent a unit of
information. Two 64-byte employee records can be stored in one
128-byte physical record. Records are grouped together to form a
- recursive procedure
- Code that can call itself during execution.
- reentrant procedure
- Code that can be called by one process while
another is already executing it. Thus, reentrant code can be
shared between different users. Reentrant procedures must not be
self-modifying; that is, they must be pure code and not contain
data. The data for reentrant procedures can be kept in a separate
data area or placed on the stack.
- restart (RST)
- One-byte call instruction usually used during
interrupt sequences and for debugger break pointing. There are
eight restart locations, RST 0 through RST 7, whose addresses are
given by the product of 8 times the restart number.
- See Read-Only.
- Read-Only memory. This memory can be read but not written
and so is suitable for code and preinitialized data areas only.
- See restart.
- See Read-Write.
- In a CP/M system, a sector is always 128 consecutive
bytes. A sector is the basic unit of data read and written on the
disk by the BIOS. A sector can be one 128-byte record in a file
or a sector of the directory. The BDOS always requests a logical
sector number between 0 and (SPT-1). This is typically translated
into a physical sector by the BIOS entry point SECTRAN. In some
disk subsystems, the disk sector size is larger than 128 bytes,
usually a power of two, such as 256, 512, 1024, or 2048 bytes.
These disk sectors are always referred to as host sectors in CP/M
documentation and should not be confused with other references to
sectors, in which cases the CP/M 128-byte sectors should be
assumed. 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 from them. This can be done by
adding an additional module, the blocking and deblocking
algorithm, between the BIOS disk I/O routines and the actual disk
- sectors per track (SPT)
- A two-byte parameter in the disk
parameter block at DPB + 0. The BDOS makes calls to the BIOS
entry point SECTRAN with logical sector numbers ranging between 0
and (SPT - 1) in register BC.
- Entry point to a routine in the BIOS that performs
logical-to-physical sector translation for the BDOS.
- Entry point to a routine in the BIOS that sets the
currently selected drive.
- Entry point to a routine in the BIOS that sets the
currently selected DMA address. The DMA address is the address of
a 128-byte buffer region in memory that is used to transfer data
to and from the disk in subsequent reads and writes.
- Entry point to a routine in the BIOS that sets the
currently selected sector.
- Entry point to a routine in the BIOS that sets the
currently selected track.
- skew factor
- Factor that defines the logical-to-physical sector
number translation in XLT. Logical sector numbers are used by the
BDOS and range between 0 and (SPT - 1). Data is written in
consecutive logical 128-byte sectors grouped in data blocks. The
number of sectors per block is given by BLS/128. Physical sectors
on the disk media are also numbered consecutively. If the
physical sector size is also 128 bytes, a one-to-one relationship
exists between logical and physical sectors. The logical-to-
physical translation table (XLT) maps this relationship, and a
skew factor is typically used in generating the table entries.
For instance, if the skew factor is 6, XLT will be:
The skew factor allows time for program processing without
missing the next sector. Otherwise, the system must wait for an
entire disk revolution before reading the next logical sector.
The skew factor can be varied, depending on hardware speed and
application processing overhead. Note that no sector translation
is done when the physical sectors are larger than 128 bytes, as
sector deblocking is done in this case. See also sector, SKF, and
- A diskdef macro library parameter specifying the skew factor
to be used in building XLT. If SKF is zero, no translation table
is generated and the XLT byte in the DPH will be 0000H.
- Programs that contain machine-readable instructions, as
opposed to hard-ware, which is the actual physical components
of a computer.
- source file
- ASCII text file usually created with an editor that
is an input file to a system program, such as a language
translator or text formatter.
- Stack pointer. See stack.
- Process of accumulating printer output in a file while
the printer is busy. The file is printed when the printer becomes
free; a program does not have to wait for the slow printing
- See sectors per track.
- Reserved area of memory where the processor saves the
return address when a call instruction is received. When a return
instruction is encountered, the processor restores the current
address on the stack to the program counter. Data such as the
contents of the registers can also be saved on the stack. The
push instruction places data on the stack and the pop instruction
removes it. An item is pushed onto the stack by decrementing the
stack pointer (SP) by 2 and writing the item at the SP address.
In other words, the stack grows downward in memory.
- Format for entering a given command.
- See system attribute.
- SYSGEN image
- Memory image of the CP/M system created by SYSGEN
when a destination drive is not specified. This is the same as
the MOVCPM image that can be read by SYSGEN if a source drive is
not specified. See MOVCPM image.
- system attribute (SYS)
- File attribute. You can give a file the
system attribute by using the SYS option in the STAT command or
by using the set file attributes function, BDOS Function 12. A
file with the SYS attribute is not displayed in response to a DIR
command. If you give a file with user number 0 the SYS attribute,
you can read and execute that file from any user number on the
same drive. Use this feature to make your commonly used programs
available under any user number.
- system prompt
- Symbol displayed by the operating system
indicating that the system is ready to receive input. See prompt
and CP/M prompt.
- system tracks
- Tracks reserved on the disk for the CP/M system.
The number of system tracks is specified by the parameter OFF in
the disk parameter block (DPB). The system tracks for a drive
always precede its data tracks. The command SYSGEN copies the
CP/M system from the system tracks to memory, and vice versa.
The standard SYSGEN utility copies 26 sectors from track 0 and 26
sectors from track 1. When the system tracks contain additional
sectors or tracks to be copied, a customized SYSGEN must be used.
- See console.
- Transient Program Area. Area in memory where user programs
run and store data. This area is a region of memory beginning at
0100H and extending to the base of the CP/M system in high
memory. The first module of the CP/M system is the CCP, which can
be overwritten by a user program. If so, the TPA is extended to
the base of the CP/M BDOS module. If the CCP is overwritten, the
user program must terminate with either a system reset (Function
0) call or a jump to location zero in page zero. The address of
the base of the CP/M BDOS is stored in location 0006H in page
zero least significant byte first.
- Data on the disk media is accessed by combination of track
and sector numbers. Tracks form concentric rings on the disk; the
standard IBM single-density disks have 77 tracks. Each track
consists of a fixed number of numbered sectors. Tracks are
numbered from zero to one less than the number of tracks on the
- Transient Program Area
- See TPA.
- upward compatible
- Term meaning that a program created for the
previously released operating system, or compiler, runs under the
newly released version of the same operating system.
- Term used in CP/M and MP/M systems to distinguish distinct
regions of the directory.
- user number
- Number assigned to files in the disk directory so
that different users need only deal with their own files and have
their own directories, even though they are all working from the
same disk. In CP/M, files can be divided into 16 user groups.
- Tool. Program that enables the user to perform certain
operations, such as copying files, erasing files, and editing
files. The utilities are created for the convenience of
programmers and users.
- Location in memory. An entry point into the operating
system used for making system calls or interrupt handling.
- warm start
- Program termination by a jump to the warm start
vector at location 0000H, a system reset (BDOS Function 0), or a
CTRL-C typed at the keyboard. A warm start reinitializes the disk
subsystem and returns control to the CP/M operating system at the
CCP level. The warm start vector is simply a jump to the WBOOT
entry point in the BIOS.
- Entry point to a routine in the BIOS used when a warm
start occurs. A warm start is performed when a user program
branches to location 0000H, when the CPU is reset from the front
panel, or when the user types CTRL-C. The CCP and BDOS are
reloaded from the system tracks of drive A.
- wildcard characters
- Special characters that match certain
specified items. In CP/M there are two wildcard characters: ? and
*. The ? can be substituted for any single character in a
filename, and the * can be substituted for the primary filename,
the filetype, or both. By placing wildcard characters in
filenames, the user creates an ambiguous filename and can quickly
reference one or more files.
- 16-bit or two-byte value, such as an address value.
Although the Intel 8080 is an 8-bit CPU, addresses occupy two
bytes and are called word values.
- Entry point to a routine in the BIOS that writes the
record at the currently selected DMA address to the currently
selected drive, track, and sector.
- Logical-to-physical sector translation table located in the
BIOS. SECTRAN uses XLT to perform logical-to-physical sector
number translation. XLT also refers to the two-byte address in
the disk parameter header at DPBASE + 0. If this parameter is
zero, no sector translation takes place. Otherwise this parameter
is the address of the translation table.
- ZERO PAGE
- See page zero.
Back to title page