This document describes FOCL.S (FOCL.S, An Expanded Language for Small Computers, Based on FOCAL), a one-user version of FOCAL/69 designed for 8K PDP-8/12 computers. Developed by D. E. Wrege and submitted by John Alderman from Georgia Tech in November 1970, FOCL.S is a superset of FOCAL/69, maintaining syntactic compatibility while introducing significant enhancements and internal optimizations.
Key Features and Enhancements:
Memory Management & Efficiency:
Expanded Language Features:
LIBRARY OPEN, LIMIT, and CLOSE commands. Arrays are stored efficiently (3-words per variable vs. 5-words for normal variables).IF but executing a DO (as a subroutine) instead of a GOTO.DO, IF, GOTO, MODIFY, and ON commands for line number computation (though noted as slower than explicit numbers).FX(3,ARG1,ARG2)) for performing logical AND operations between expressions, useful for masking.FX(8,ARG) for Decimal to Octal and FX(10,ARG) for Octal to Decimal).CONT/K allows long direct or indirect command lines, improving readability by inserting a new line and spaces.System Interaction and Debugging:
FX(1,ARG1,ARG2) function allows reading from and writing to specific core memory locations.FX(2,ARG1,ARG2) function enables direct execution of machine language instructions, facilitating control of specialized hardware.TDUMP command now types variables in reverse order of creation, making recently created variables easier to inspect during debugging.Differences from FOCAL/69:
LIBRARY EXIT command has been removed (its functionality can be achieved using FX commands).T $ command types out variables in reverse order of creation.The document also includes a detailed Core Map illustrating the memory allocation for FOCL.S components in both Field 0 and Field 1, and an extensive list of Error Diagnostics with their meanings.
Site structure and layout ©2025 Majenko Technologies