Zero Page (CP/M)

The Zero Page (or Base Page) is a data structure used in CP/M systems for programs to communicate with the operating system. In 8-bit CP/M versions it is located in the first 256 bytes of memory, hence its name.

The equivalent structure in MS-DOS is the Program Segment Prefix.

In 8-bit CP/M, it has the following structure:

Offset Size Contents -------------------------------------------------------------------- 00-02 Code Exit program (jumps to the BIOS, and is also used to find BIOS entry points). 03 Byte I/O byte, an optional feature allowing device reassignment in CP/M 2. 04 Byte Current command processor drive (low 4 bits) and user number (high 4 bits). 05-07 Code Jump to CP/M BDOS entry - main system call entry point. This is also the address of the first byte of memory not usable by the program. 08-3A Code 8080 restart/interrupt vectors. 3B-4F Bytes Reserved 50 Byte The drive from which the program was loaded (CP/M 3) 51-52 Word Address of the password for the first FCB (CP/M 3) 53 Byte Length of the password for the first FCB (CP/M 3) 54-55 Word Address of the password for the second FCB (CP/M 3) 56 Byte Length of the password for the second FCB (CP/M 3) 57-5B Bytes Reserved 5C-6B Default FCB 1 6C-7F Default FCB 2 (overwritten if FCB 1 is opened) 80 Byte Number of characters in command tail. 81-FF Bytes Command tail (everything after the program name).

In CP/M-86, the structure is:

Offset Size Contents -------------------------------------------------------------------- 00-02 Bytes Length of code group in bytes 03-04 Word Segment address of code group 05 Byte 8080 model flag - set if program only has one segment 06-08 Bytes Length of data group in bytes 09-0A Word Segment address of data group 0B Byte Reserved 0C-11 Descriptor for extra group - same format as for data 12-17 Descriptor for stack group 18-1D Descriptor for X1 group 1E-23 Descriptor for X2 group 24-29 Descriptor for X3 group 2A-2F Descriptor for X4 group 30-4F Bytes Reserved 50 Byte The drive from which the program was loaded (CP/M 3) 51-52 Word Address of the password for the first FCB (CP/M 3) 53 Byte Length of the password for the first FCB (CP/M 3) 54-55 Word Address of the password for the second FCB (CP/M 3) 56 Byte Length of the password for the second FCB (CP/M 3) 57-5B Bytes Reserved 5C-6B Default FCB 1 6C-7F Default FCB 2 (overwritten if FCB 1 is opened) 80 Byte Number of characters in command tail. 81-FF Bytes Command tail (everything after the program name).

Famous quotes containing the word page:

    It is difficult to read. The page is dark.
    Yet he knows what it is that he expects.
    The page is blank or a frame without a glass
    Or a glass that is empty when he looks.
    Wallace Stevens (1879–1955)