Page Numbers: Yes First Page: 2 X: 527 Y: 10.5" Margins: Binding: 13 Odd Heading:x2qjk40(635) Definitions and Interfacesy756qck40\b26B Even Heading: Not-on-first-pagex2qjk40 Definitions and Interfacesy756qck40\b26B 2. Definitions and Interfacesy684x2e24ck792\f5b The following list enumerates the public system modules of interest to Alto/Mesa programmers. The interface name is followed by the title of the section of this document (or other reference material) which describes the facilities the interface provides. The parenthesized names following the DEFINITIONS module identify the programs which implement that interface -- the ultimate documentation, after all.x2e24j\295f7b11f0B AllocDefs (Swapper) Segment Packagex2e12jk80\f6b9f7B1f6 1b7B1f0b16f7B Low level memory allocation functions are defined here. Complete control of segment allocation and swapping can be obtained using this interface. Many of the functions of this interface are also available through the interface SegmentDefs.x2e6jk40\146f7 2f0 81f6b11f0B1f7 AltoDefs (Hardware) Mesa Language Manualx2e12jk80\f6b8f7B11f0i21f7I Contains a number of machine dependent constants describing physical characteristics of the Alto and its basic data types (bits per character, characters per word, etc.).x2e6jk40\170f7 AltoDisplay (Hardware) Alto: A Personal Computer System; Hardware Manualx2e12jk80\f6b11f7B11f0i50f7I Provides a Mesa definition of the properties of the Alto display: its dimensions, Resolution, Background, the DCB chain, and the DCB format.x2e6jk40\83f6b10f0B2f6b10f0B6f6b3f0B16f6b3f0B AltoFileDefs (BCPL) Alto Operating System Reference Manualx2e12jk80\f6b12f7B7f0i39f7I Defines the data structures (but not the operations) used in manipulating the Alto file system. Note that these structures are shared by several software systems running on the Alto.x2e6jk40\183f7 AltoHardware (Hardware) Alto: A Personal Computer System; Hardware Manualx2e12jk80\f6b12f7B11f0i50f7I Defines most structures of the Alto hardware, including the processor, display, keyboard, mouse, keyset, printer interface, disk, and Ethernet.x2e6jk40 Ascii (ANSI) Mesa Language Manualx2e12jk80\f6b5f7B7f0i21f7I Provides names for common character codes, such as SP, CR, ESC, etc. Also contains names for various control characters, ControlA, etc. These declarations are also contained in the older interface IODefs.x2e6jk40\51f6b2f0B2f6b2f0B2f6b3f0B60f6b8f0B69f6b6f0B BitBltDefs (Hardware) Alto: A Personal Computer System; Hardware Manualx2e12jk80\f6b10f7B11f0i50f7I Provides a Mesa definition of the hardware BitBlt (bit boundary block transfer) operation.x2e6jk40 CharIO (CharIOPack) StreamIO Packagex2e12jk80\f6b6f7B1f6 1b10B1f0b17f7B A simple Teletype style I/O interface is provided by these procedures. Minimal editing and input and output conversion routines are included. Similar to IODefs except that an explicit handle must be supplied to each operation.x2e6jk40\155f6b6f0B67f7 DirectoryDefs (Directory) Directory Packagex2e12j\f6b13f7B1f6 1b9B1f0b18f7B Common operations on the Alto's file directory are defined here; they are all based on a single primitive which enumerates entries in a directory.x2e6j DisplayDefs (SystemDisplay, DisplayControl) Display Packagex2e12jk80\f6b11f7B1f6 1b13B1b15B1f0b16f7B Provides device-dependent operations for the display. Simple operations are implemented using the standard stream interface (see StreamDefs).x2e6jk40\130f6b10f0B FontDefs (AlFont) Display Packagex2e12jk80\f6b8f7B1f6 1b6B1f0b16f7B Defines a uniform interface for all font formats. It includes facilities for dynamically swapping font files.x2e6jk40 Format (FormatImpl) Tajo Functional Specificationx2e12jk80\f6b6f7B1f6 1b10B1f0b1Bi29f7I Defines a set of operations for converting numeric values to strings. It is not exported by Mesa.image, but does contain the definition of NumberFormat that is copied into CharIO and IODefs.x2e6jk40\93f8 10f0 37f6b12f0B21f6b6f0B5f6b6f0B FrameDefs (Miscellaneous, Modules, Swapper, UnNewConfig) Modulesx2e12jk80\f6b9f7B1f6 1b22B2b20B1f0b8f7B Provides low level operations on modules and their runtime representation (global frames). It includes facilities for controlling residency of a module's code segment and for loading and unloading configurations.x2e6jk40\213f7 FSPDefs (FSP) Storage Managementx2e12jk80\f6b7f7B2f6b3f7B1f0b19f7B This memory allocation package provides temporary storage for small, transient data structures whose size is not known at compile time.x2e6jk40\135f7 ImageDefs (CheckPoint, MakeImage) Image Filesx2e12jk80\f6b9f7B1f6 1b21B1f0b12f7B Image files are used to save the state of a computation so that it can be restarted later (perhaps in a different environment). Different types of image files can be created using the procedures defined in this interface; each type makes different assumptions about the state of the environment when it is restarted.x2e6jk40\317f7 InlineDefs (InlineDefs) Miscellaneousx2e12jk80\f6b10f7B1f6 1b10B1f0b14f7B Defines a set of instructions not accessible at the language level. Logical operations and some extended precision arithmetic is included.x2e6jk40\139f7 IODefs (StreamIO) StreamIO Packagex2e12jk80\f6b6f7B1f6 1b8B1f0b17f7B A simple Teletype style I/O interface is provided by these procedures. Minimal editing and input and output conversion routines are included.x2e6jk40\142f7 KeyDefs (Keyboard, KeyStreams) Keyboard Packagex2e12jk80\f6b7f7B1f6 1b8B2b10B1f0b17f7B Provides device-dependent operations for the keyboard, keyset, and mouse. Simple operations are implemented using the standard stream interface (see StreamDefs).x2e6jk40\150f6b10f0B2f7 MiscDefs (Miscellaneous) Miscellaneousx2e12jk80\f6b8f7B1f6 1b13B1f0b14f7B A set of miscellaneous but useful procedures that don't obviously belong in any of the other interfaces.x2e6jk40\104f7 OsStaticDefs (BCPL) Alto Operating System Reference Manualx2e12jk80\f6b12f7B7f0i39f7I Defines information available through the Alto Operating System Swat resident.x2e6jk40\78f7 ProcessDefs (OurProcess) Processes and Monitorsx2e12jk80\f6b11f7B1f6 1b10B1f0b23f7B Includes a number of extensions to the language facilities for processes, monitors, and condition variables. Priorities and timeouts can be adjusted, and processes can be detached and aborted.x2e6jk40\193f7 SegmentDefs (SegmentsA, SegmentsB, Files, Swapper) Segment and File Packagesx2e12jk80\f6b11f7B1f6 1b20B2b5B2b7B1f0b26f7B Operations on data and file segments are contained here; this includes virtual memory management and swapping. Basic operations on files and their attributes are also included.x2e6jk40\177f7 Storage (FSP, SegmentsB) Storage Managementx2e12jk80\f6b7f7B1f6 1b3B2b9B1f0b19f7B Provides a simplified interface to the segment and free storage package for allocating and releasing temporary storage.x2e6jk40\119f7 StreamDefs (KeyStreams, StreamsA, StreamsB) Disk, Display, Keyboard, and Streams Packagesx2e12jk80\f6b10f7B1f6 1b10B2b8B1b9B1f0b46f7B Defines the operations common to all streams. It also includes some device-dependent operations unique to the disk, keyboard, and display.x2e6jk40\139f7 StreamScan (StreamsC) Disk Streams Packagex2e12jk80\f6b10f7B1f6 1b8B1f0b21f7B Defines operations for reading a stream at full disk speed.x2e6jk40\59f7 StringDefs (StringsA, StringsB) String Packagex2e12jk80\f6b10f7B1f6 1b8B1b9B1f0b15f7B A utility package for copying, comparing, and converting strings and substrings.x2e6jk40\80f7 SystemDefs (FSP, SegmentsB) Storage Managementx2e12jk80\f6b10f7B1f6 1b3B2b9B1f0b19f7B Provides a simplified interface to the segment and free storage package for allocating and releasing temporary storage. Most of the same functions are available through the newer interface Storage.x2e6jk40\119f7 2f0 69f6b7f0B1f7 TimeDefs (TimeConvert) Time Packagex2e12jk80\f6b8f7B1f6 1b11B1f0b13f7B Includes a number of procedures for converting between internal (32 bit GMT), intermediate (unpacked record) and external (string) time formats.x2e6jk40 TrapDefs (Resident, Faults) Trapsx2e12jk80\f6b8f7B1f6 1b8B2b6B1f0b6f7B Defines the runtime implementation of traps generated by the hardware and software.x2e6jk40 The Alto Mesa System also implements a number of other interfaces for compatibility with other software systems. These include Inline, Process, Runtime, String, System, and Time.x2e18jk40\128f6b6f0B2f6b7f0B2f6b7f0B2f6b6f0B2f6b6f0B6f6b4f0B