I: Glossary

Not all of the following terms are explicitly referenced or used within this book. However, as readers further explore DOS, '86 series programming and the 512 it is inevitable that many of these words or abbreviations will be encountered, therefore they are included. That many of the entries are abbreviations or acronyms is unavoidable, as the computer industry continually is forced to invent new terms by which to define or refer to previously non-existent hardware or software features or functions for which no name exists.


ANSI
American National Standards Institution - A body which decides on certain agreed standards and conventions for the computer industry.
ASCII
American Standard Code for Information Interchange - an agreed standard for representing character values by two hexadecimal digits (i.e. a byte)
ASCII (string)
An ASCII character string which is terminated by a null (hex. zero) byte. Such strings are used by many of the DOS interrupts concerned with files and directory paths.
ASCII (string)
A character string which in DOS, by default is terminated by a dollar ($) character. The terminator byte can, if required, be amended to another character. Such strings are used by DOS in string output functions.
Attribute (file)
One of the bytes stored in the directory entry for a file or subdirectory which specifies the actions which can, or cannot be performed on the file. Each bit of the byte indicates the status of each of the possible conditions which may apply, such as 'read only', system and soon.

BAT
The file extension used by DOS to recognise an executable file containing command line commands as text strings, each terminated by a carriage return.
BDOS
The Basic Disc Operating System. That part of the core of DOS which is normally invariant and concerned with memory and program management and device independent input/output.
BIOS
The Basic Input Output System. The part of the DOS operating system which is normally customised by the hardware manufacturer to cater for the specific needs of the type of device controller employed in a particular type of PC.
Block device
An input/output device which normally operates with or on complete blocks of data rather than individual characters. For example, discs are block devices, since a minimum of one cluster will be read by DOS, even though a program may request a specific larger or smaller quantity of information to be passed to it.
Boot record
In PCs, the boot sector on a bootable disc. The first sector of such a disc contains information which enables the machine to load the operating system from a cold start.

CCP
The Console Command processor. that part of DOS which is responsible for translating user commands into DOS function calls.
CHCB
CHaracter Control Block. An area of memory set aside in DOS to describe the attributes and capabilities of of a character device.
Character device
An input output device which operates at individual character level. For example, the keyboard is an input character device, while the screen display is an output character device, as is a printer. A communications port is an input-output character device. In DOS certain functions may appear to read or write such devices in blocks, such as writing a complete text string to the console, but in fact such operations are performed by repeated calls to character routines.
Cluster
The minimum size of the allocation unit when a disc file is either newly created or extended. Clusters may vary in size from disc to disc, but are always 1, 2, 4 or 8 sectors in length. Sector sizes also vary, therefore there is no standard cluster size.
Cold-start
Also called a cold-boot. The process of loading a machine when it is first switched on. See also Warm start.
CMD
The file extension used by CP/M, CCP/M and DOS Plus to recognise an executable file which contains a machine code program. Essentially similar to a COM files, CMD files differ in the way they are loaded and executed at run time.
COM
The file extension used by MSDOS, PCDOS and DOS Plus to recognise an executable file which contains a machine code program. Essentially similar to CMD files, COM files differ in the way they are loaded and executed at run tirne.
Console
The name given to the normal user interface to a PC. It is commonly used to refer to both the input and output devices as though they were a single entity, though in DOS interrupts quite separate functions are provided for input and output, with the exception of INT 21h function 6.
Console mode
The status of the console device. This may be altered to allow or preclude certain automatic processes. For example, in the default mode provided at power-up a tab key depression at the keyboard is automatically expanded on output into eight spaces, while CTRL-S will stop a scrolling screen display. These functions can be enabled or suspended by changing the console mode.
Cooked mode
The term used to describe input or output access to a character device when it is treated as a block device. DOS permits all devices to be treated as files, including the keyboard and the screen. When a character device is opened as a file, subsequent input-output access is referred to as 'cooked mode'.
CCP/M
Literally, Concurrent Control Program for Microprocessors. CCP/M is a Digital Research operating system developed for 16-bit machines from the original 8-bit CP/M. CCP/M allows the user to run several different tasks from the same console simultaneously.
CP/M
Literally, Control Program for Microprocessors. CP/M is the highly successful pre-cursor to DOS and CCP/M developed by Digital Research for 8 bit Intel 8080 and Zilog Z80-based machines in the 1970s.
CP/M86
Another development of CP/M. it was intended to be the direct growth path for users migrating from 8-bit CP/M to 16-bit machines.

Device driver
An extra or separate part of DOS which supplements the BIOS. Loaded as a program after system boot, they are used to provide device control for input\output functions for hardware or software interfaces not catered for by normal, standard DOS interrupt services. For example to drive graphics plotters, or to read data from an IEEE interface, a specffic device driver must be provided, since these devices are not provided for in standard DOS.
DMA
Direct Memory Access. The process of transferring input or output data directly to or from areas of memory and peripheral devices such as discs. Depending upon the type of processor, bulk peripheral transfers are carried cut either by DMA, as in the 80186, or under NMI control, as in the 80286.
DPB
Disc Parameter Block. An area within DOS which is used to describe the characteristics of the particular disc format in a drive at the time. As different formats of disc are used from time to time the contents of the disc parameter block are amended accordingly. These need not be unique and more than one drive may be using a particular DPB at any time if they are both using the same format of disc.
DPH
Disc Parameter Header. An area within DOS used to describe the characteristics of each disc drive. Part of the information in each DPH, for example the pointer to the DPB, will change as different formats of disc are used.
DR-DOS
Digital Research DOS. The successor to DOS plus and the current version of DOS supplied by Digital Research.
DTA
Disc Transfer Area. The area within a program which is set aside to hold data which is to be transferred to or from disc. The DOS interrupts which action such requests require that processor registers are set up to point to the DTA before the call is issued.

Edited mode (Console)
The default mode in which the console operates. Tabs are expanded, CTRL-C abandons input or output, CTRL-S pauses screen display, CTRL-Q resumes it, CTRL-H performs a backspace and so on.
EMS
Extended Memory System. The system employed by DOS and later versions to manage memory outside the normal limit of 640K. Introduced by Intel and the Microsoft Corporation in 1985 to provide a standard under which MSDOS Windows would operate to provide a type of multi-tasking, previously unavailable to MSDOS. In the correct hardware/software system one segment of memory, known as the page frame, is set aside to allow 16k byte blocks to be swapped with the rnemory beyond 640K, in effect giving overlaid memory facilities. This facility requires at least an 80286 processor, since page frame changes must be carried out under a hardware NMI.
EXE
The file extension used by MSDOS, PCDOS and DOS Plus to recognise an executable file which contains a machine code program. Different in concept to CMD or COM files, EXE files permit values to be pre-assigned to various processor registers at load time, hence they are not, like COM or CMD files, limited to a maximum size of 64K at load. EXE files may be produced from a variety of source language modules, but always consist of a number of object modules which are linked to produce the finished program.

FAT
File Allocation Table. An area of disc which contains a table with one entry per cluster for the entire disc. Each directory entry on the disc points into the FAT to give the start cluster for the file or sub-directory. Each of these in turn point to the next (or last) cluster in the chain which makes up the corriplete file or directory. The FAT is used by DOS to permit files to use numerous small, separate areas of disc, rather than having to be contained in one large contiguous area. Over time files may therefore become fragmented, when ideally the disc should be re-organised.
FCB
File Control block. An area of memory within a program which must be set aside and identified to DOS before a file or device may be opened for input or output. On a successful open DOS supplies various information about the file by entering data into the FCB so that it can then be accessed by the program.
File handle
A number returned by DOS interrupts which open a file or device for input and/or output. After such a call the file handle is one of the variables which must be passed to DOS with every call to access the file or device. After opening, the handle therefore uniquely identifies to DOS the device or file to be accessed.
Fragmented (files)
The description given to files which largely or even entirely consist of single or very small numbers of separate clusters scattered, effectively at random, all over a disc. This is an unavoidable consequence of the file management system used by DOS to permit all areas of a disc to be used no matter how small each one rnay be. The minlinurn fragment is one cluster, but these can be as little as 512 bytes depending on the disc format used. Fragmented files usually make themselves known by extended access times, since DOS and the disc drives have to work harder to retrieve or write data. Files can be 'unfragmented' by copying them one at a time to a newly formatted disc.

Intel
The manufacturer of the 80 and '86 series of micoprocessors, including the 512's 80186.
Interrupt
iterally. an interrupt to the norrnal execution of a program. In DOS three types of interrupt exist, internal hardware interrupts, external hardware interrupts and software interrupts. The last of these are generated by applications prograrns by a machine code instruction when requesting one of the services provided in DOS.

MCB
Memory Control Block. This is an area within DOS which is used to allocate a block of memory to a program which is currently executing. If the program is a normal external program the memory block recorded in the memory control block will be freed when the program terminates. Programs which remain resident (TSRs) do not release their memory blocks, hence the number of MCBs determines how many TSR and external programs can run sirnultaneously in DOS Plus this is 32.
MSDOS
Microsoft-DOS. The version of DOS produced by the Microsoft Corporation for use by manufacturers of 16 bit personal computers. (See also PCDOS)

Nibble
Half a byte, or four bits. A nibble is the rninimum amount of data which can express all the hexadecimal digits from 0 to F. When concerned with memory addressing a nibble is also the amount of storage required to fully address one paragraph.
NMI
Non Maskable Interrupt . Literally, an interupt which cannot be deferred. All NMIs are generated by hardware events and consist of two types in 86 series nachines. Internal hardware interrupts are the highest priority of NMI and are generated by the processor because of a catastrophic event such as a store parity error. The second level of NMIs are generated by peripheral hardware requiring attention, such as a key being pressed on the keyboard, a sector being transferred from disc or, in the 512, a tube data transfer pending. NMIs immediately stop all application program execution and non maskable interrupts until the NMI is fully processed.

Offset
The address, expressed in numbers from zero to 65,535 inclusive, which defines a spedfic byte of memory from a given start-point. In '86 series machines the offset can be combined with a segment address to specify any single byte of memory from address zero to address 1,048,575.

Page
An area of memory 256 bytes long. A page is 16 paragraphs, hence a page can be addressed by a single byte, or two nibbles.
Page Frame
The segment of memory designated to be used to swap with extended memory in EMS systems. 16k bytes may be changed on each call, hence four calls can give access to a complete extra segment. Page frame transfers are carried out under NMI and therefore require at least an 80286 processor, since the 80186 and earlier versions do not support NMI memory transfer.
Paragraph
A contiguous 16 byte area of memory. A paragraph can be addressed by a nibble and in cenain DOS interrupts concerned with memory allocation the amount of memory must be specified in paragraphs.
PCDOS
The version of DOS provided with IBM PCs. If is substantially slinilar to, in terms of developments and facilities, MSDOS, with which it usually shares version numbers. PCDOS differs internally to take account of certain functions which are provided in hardware in IBM machines.
PSP
Program Segment Prefix. A one page area of memory which is created to immediately precede a COM file in memory at load time. It contains the contents of the vectors for INTS 20 and 22h to 24h at the time of the load, the far return address to the general function despatcher (INT 21h) pointers to the environment string and the command tail of up to 127 characters given when the program was called.

Raw mode
A term applied to console input/output when no automafic actions are to be performed on the data. This type of I/O may be obtained by changing the console mode, but is much more conveniently available, regardless of the current console mode, through INT 21h function 6. This may be used by programs which wish to process data with no interference from the operating system. In other words, CTRL-C is ignored, tabs are not expanded and so on, but instead the characters are passed directly to the caller as they occur.
ROM BIOS
A mis-nomer outside IBM machines, this is the term applied to a range of interrupts and functions provided by firmware in IBM PCs, but which is otherwise provided by software. ROM BIOS emulation is provided in the 512 to quite a high degree of conipatibility. Functions provided include pixel plotting, cursor positioning and much faster screen output than is possible through the general function despatcher, which execute by repeated calls to ROM BIOS functions. Most commercial applications almost exclusively use ROM BIOS functions for rapid screen handling.
RSX
Resident System Extension. A special type of program only available Digital Research operating systems, prepared originally from a CMD file, RSXs 'attach' themselves to the operating system automatically when loaded to provide permanent extra functions.

Segment
A contiguous area of memory 65,535 bytes long. A segment must always starts on a paragraph boundary. One segment is the largest unit of memory which can be addressed by sixteen bits, two bytes, or a single register in '86 series processors.
System data segment
The area within DOS Plus which holds the operating system variables used to control all aspects of the system. No standard calls are provided to directly alter the contents of this area, though systems programmers may need to access the data to provide special or added functions not normally available.

XFCB
Extended File Control Block. The file control block which must be employed if access to the attributes of a file is required, rather than merely input/output. An XFCB must also be used if the file to be processed has the read only, system or hidden bits set.