Hardware manual
e) A 44-key keyboard, 5-finger keyset, and mouse
f) A Diablo printer interface
g) An Ethernet interface
h) Interfaces for analog-to-digital and digital-to-analog conversion, for TV camera input, and for a
RS-232b (teletype) connection
i) A real-time clock and an interval timer (see table 2.1 for brief descriptions)
3. User-callable procedures
This section describes the operating system facilities provided by procedures which can be called from user
programs using the standard Bcpl calling sequence. All of these procedures are a permanent part of the
operating system, automatically available to any user program.
Although this manual describes a rather extensive set of facilities, which together occupy close to 12K
words of memory, portions of the system can be deactivated (see Junta), thus freeing the memory they use.
When the user program finishes execution, the deactivated portions can be retrieved from the disk and
reinitialized.
Default arguments: Many of the procedures given below have rather long argument lists, but have
convenient defaulting schemes. The documentation decorates argument lists with default values. An
argument followed by [exp] will default if omitted or zero to the value exp; an argument followed by
[...exp] will default if omitted to exp. Although Bcpl allows you to omit procedure arguments by using
"nil," the called procedure cannot detect its use; it therefore cannot be the basis for defaulting arguments.
3.1. Facilities
The facilities of the operating system fall into fairly neat categories; often this is because the operating
system has simply loaded a standard library subroutine as part of its environment. This manual offers
summarized documentation for the functions in the various software "packages;" more documentation can
be found in the "Alto Software Packages Manual." (Note: Appendices to this manual include
documentation of the packages most relevant to the operating system.) In outline, the operating system
provides:
- A "basic" resident that maintains a time-of-day clock, that processes parity error interrupts, and
that contains the resident required to interface to Swat, the debugger.
- The Bcpl runtime support module, which provides several functions (such as a stack frame
allocator) that are necessary to permit Bcpl programs to run.
- Disk drivers for transferring complete pages between memory and existing files on the disk. This
is the
BfsBase package.
- Disk drivers for creating new files, and for extending or shortening existing files. This is the
BfsWrite package.
- A simple storage allocator for managing "zones" of working storage. This is the
Alloc package.
- Disk "streams," which implement sequential byte or word I/O to the disk. This is the DiskStreams
package.
- Disk directory management, which provides facilities for searching directory files for entries that
associate a string name and a disk file.
Alto Operating System May 5, 1980 3
For Xerox Internal Use Only -- December 15, 1980










