.he CP/M Operating System Manual H Glossary .sp 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. .sp .sh filename: \c .qs 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. .sp .mb 5 .fm 1 .sh file specification: \c .qs 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. .sp .sh filetype: \c .qs 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 filetypes. .sp .mb 6 .fm 2 .sp 0 .sh floppy disk: \c .qs Flexible magnetic disk used to store information. Floppy disks come in 5 1/4- and 8-inch diameters. .sp .sh FSC: \c .qs Parameter in the diskdef macro library specifying the first physical sector number. This parameter is used to determine SPT and build XLT. .sp .sh hard disk: \c .qs Rigid, platter-like, magnetic disk sealed in a container. A hard disk stores more information than a floppy disk. .sp .sh hardware: \c .qs Physical components of a computer. .sp .sh hexadecimal notation: \c .qs 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 becomes 0B5H. .sp .sh hex file: \c .qs ASCII-printable representation of a command, machine language, file. .sp .sh hex file format: \c .qs 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. .sp .sh HOME: \c .qs BIOS entry point which sets the disk head of the currently selected drive to the track zero position. .sp .sh host: \c .qs 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 bytes. .sp .sh input: \c .qs Data going into the computer, usually from an operator typing at the terminal or by a program reading from the disk. .sp .sh input/output: \c .qs See \c .sh I/O. .sp .sh interface: \c .qs Object that allows two independent systems to communicate with each other, as an interface between hardware and software in a microcomputer. .sp .sh I/O: \c .qs Abbreviation for input/output. Usually refers to input/output operations or routines handling the input and output of data in the computer system. .sp .sh IOBYTE: \c .qs 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: .sp .ti 8 .nf STAT = .fi .sp 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. .sp .sh K: \c .qs Abbreviation for kilobyte. See \c .sh kilobyte. .sp .sh keyword: \c .qs See \c .sh command keyword. .sp .sh kilobyte (K): \c .qs 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. .sp .sh linker: \c .qs Utility program used to combine relocatable object modules into an absolute file ready for execution. For example, LINK-80 \ \ creates either a COM or PRL file from relocatable REL files, such as those produced by PL/I-80 \ \ . .sp .sh LIST: \c .qs A BIOS entry point to a routine that sends a character to the list device, usually a printer. .sp .sh list device: \c .qs Device such as a printer onto which data can be listed or printed. .sp .sh LISTST: \c .qs BIOS entry point to a routine that returns the ready status of the list device. .sp .sh loader: \c .qs 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. .sp .sh logged in: \c .qs 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. .sp .sh logical: \c .qs 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. .sp .sh logical sector: \c .qs See \c .sh sector. .sp .sh logical-to-physical sector translation table: \c .qs See \c .sh XLT. .sp .sh LSC: \c .qs Diskdef macro library parameter specifying the last physical sector number. .sp .sh LST: \c .qs 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. .sp .sh macro assembler: \c .qs 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 during expansion. .sp .sh megabyte: \c .qs Over one million bytes; 1024 kilobytes. See \c .sh byte, \c .qs and \c .sh kilobyte. .sp .sh microprocessor: \c .qs Silicon chip that is the central processing unit (CPU) of the microcomputer. The Intel 8080 and the Zilog Z80 are microprocessors commonly used in CP/M systems. .sp .sh MOVCPM image: \c .qs 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. .mb 4 .fm 1 .sp .sh MP/M: \c .qs Multi-Programming Monitor control program. A microcomputer operating system supporting multi-terminal access with multi- programming at each terminal. .sp .sh multi-programming: \c .qs 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 \c .sh concurrency. .sp .sh nibble: \c .qs One half of a byte, usually the high-order or low-order 4 bits in a byte. .sp .sh OFF: \c .qs 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. .sp .sh OFS: \c .qs Diskdef macro library parameter specifying the number of reserved system tracks. See \c .sh OFF. .sp .sh operating system: \c .qs 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. .mb 6 .fm 2 .sp .sh option: \c .qs One of many parameters that can be part of a command tail. Use options to specify additional conditions for a command's execution. .sp .sh output: \c .qs Data that is sent to the console, disk, or printer. .sp .sh page: \c .qs 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. .sp .sh page relocatable program: \c .qs See \c .sh PRL. .sp .sh page zero: \c .qs 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. .sp .sh parameter: \c .qs Value in the command tail that provides additional information for the command. Technically, a parameter is a required element of a command. .sp .sh peripheral devices: \c .qs 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. .sp .sh physical: \c .qs Characteristic of computer components, generally hardware, that actually exist. In programs, physical components can be represented by logical components. .sp .sh primary filename: \c .qs 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. .sp .sh PRL: \c .qs 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. .sp .sh program: \c .qs 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. .sp .sh prompt: \c .qs 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 \c .sh CP/M prompt. .qs .sp .mb 5 .fm 1 PUN: 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 a modem. .sp PUNCH: BIOS entry point to a routine that sends a character to the punch device. .sp RDR: Logical CP/M reader device. The reader device is an input-only device accessed through the READER entry point in the BIOS. See PUN:. .sp READ: 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. .sp READER: Entry point to a routine in the BIOS that reads the next character from the currently assigned reader device. .sp 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 \c .sh ROM. .sp .sh Read-Write (R/W): \c .qs 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. .sp .sh record: \c .qs 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 file. .sp .sh recursive procedure: \c .qs Code that can call itself during execution. .sp .mb 6 .fm 2 .sh reentrant procedure: \c .qs 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. .sp .sh restart (RST): \c .qs 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. .sp .sh R/O: \c .qs See \c .sh Read-Only. .sp .sh ROM: \c .qs Read-Only memory. This memory can be read but not written and so is suitable for code and preinitialized data areas only. .sp .sh RST: \c .qs See \c .sh restart. .sp .sh R/W: \c .qs See \c .sh Read-Write. .sp .sh sector: \c .qs 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 I/O. .sp .sh sectors per track (SPT): \c .qs 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. .sp .sh SECTRAN: \c .qs Entry point to a routine in the BIOS that performs logical-to-physical sector translation for the BDOS. .sp .sh SELDSK: \c .qs Entry point to a routine in the BIOS that sets the currently selected drive. .sp .sh SETDMA: \c .qs 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. .sp .sh SETSEC: \c .qs Entry point to a routine in the BIOS that sets the currently selected sector. .sp .sh SETTRK: \c .qs Entry point to a routine in the BIOS that sets the currently selected track. .sp .sh skew factor: \c .qs 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: .sp .nf .in 8 Logical: 0 1 2 3 4 5 6 ... 25 Physical: 1 7 13 19 25 5 11 ... 22 .fi .in 0 .sp 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 \c .sh sector, SKF, \c .qs and \c .sh XLT. .sp .sh SKF: \c .qs 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. .sp .sh software: \c .qs Programs that contain machine-readable instructions, as opposed to hardware, which is the actual physical components of a computer. .sp .sh source file: \c .qs 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. .sp .sh SP: \c .qs Stack pointer. See \c .sh stack. .bp .sh spooling: \c .qs 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 process. .sp .sh SPT: \c .qs See \c .sh sectors per track. .sp .sh stack: \c .qs 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. .sp .sh syntax: \c .qs Format for entering a given command. .sp .sh SYS: \c .qs See \c .sh system attribute. .sp .sh SYSGEN image: \c .qs 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 \c .sh MOVCPM image. .sp .sh system attribute (SYS): \c .qs 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. .sp system prompt: Symbol displayed by the operating system indicating that the system is ready to receive input. See prompt and CP/M prompt. .sp .sh system tracks: \c .qs 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. .sp .sh terminal: \c .qs See \c .sh console. .sp .sh TPA: \c .qs 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. .sp .sh track: \c .qs 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 disk. .sp .sh Transient Program Area: \c .qs See \c .sh TPA. .sp .sh upward compatible: \c .qs 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. .sp .sh USER: \c .qs Term used in CP/M and MP/M systems to distinguish distinct regions of the directory. .sp .sh user number: \c .qs 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. .sp .sh utility: \c .qs 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. .sp .sh vector: \c .qs Location in memory. An entry point into the operating system used for making system calls or interrupt handling. .sp .sh warm start: \c .qs 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. .sp .sh WBOOT: \c .qs 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. .sp .sh wildcard characters: \c .qs 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. .bp .sh word: \c .qs 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. .sp .sh WRITE: \c .qs 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. .sp .sh XLT: \c .qs 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. .sp .sh ZERO PAGE: \c .qs See \c .sh page zero. .qs .sp 2 .ce End of Appendix H .nx appi