This document, the "VAX LISP/VMS System Access Programming Guide" (May 1986), is a manual for LISP language programmers, enabling them to utilize the programming interface and facilities of the VAX/VMS operating system (Version 4.2) from within the VAX LISP (Version 2.0) environment.
The guide's primary objective is to provide LISP programmers with access to system routines and capabilities not typically available directly from the LISP environment. It is intended for programmers familiar with both LISP and the VMS operating system's programming interface.
The document is divided into two main parts:
Part I: Guide to System Access Programming explains how to use the VAX LISP interface to operating system routines:
- The Call-Out Facility: Details the process of defining and calling external routines (including VMS system services, Run-Time Library routines, and routines written in other VAX languages like C or FORTRAN) from LISP. This includes VAX calling conventions, argument passing mechanisms, and data type conversions between LISP and VAX.
- Alien Structures: Explains how to define and create data structures that allow for the efficient exchange of data between LISP programs and external routines written in other languages, providing precise control over memory layout and data interpretation.
- Interrupt Functions: Describes how to define and establish LISP functions to handle asynchronous events in the operating system (e.g., I/O completion, timer expiration, user input), often in response to Asynchronous System Traps (ASTs).
- Controlling Interruptions and Synchronizing Execution: Covers mechanisms for managing interrupt priorities using interrupt levels, protecting sections of code from interruption via "critical sections," and synchronizing program execution by waiting for specific events or information availability using the WAIT function.
Part II: Object Descriptions serves as a reference, providing full descriptions of the specific functions, macros, variables, and constants used for system access, detailing their formats, arguments, return values, and examples.