This document is a program listing from the DECUS (Digital Equipment Computer Users Society) Program Library, identified as "FOCAL8-52 LISTING". It contains the assembly language source code for the FOCAL interpreter, version 5/69, compiled with the PAL11 assembler in July 1970.
The listing provides detailed internal workings of the FOCAL interpreter, organized into various functional sections:
- Processor and Floating Point Instructions: Defines core machine and mathematical operations.
- Miscellaneous Items: Lists system constants, memory addresses, and pointers.
- Command/Input Driver: Handles parsing of FOCAL commands, input lines, and character processing.
- Recursive Operations: Manages subroutine calls and data saving/restoring.
- Assignment and Loop Control: Routines for program flow and variable assignments.
- Arithmetic Operations: Includes standard arithmetic, floating-point calculations, square root, multiplication, and division routines.
- Input/Output Routines: Manages character input/output, numerical conversions (decimal to binary and vice versa), and output formatting.
- Mathematical Functions: Contains implementations for sine, cosine, arctangent, and logarithm.
- Error Handling: Routines for detecting and responding to various program errors.
The document serves as a comprehensive technical reference for the FOCAL 5/69 interpreter's implementation, detailing its core components and operations.