FOCAL8-148 FOCL-S

Order Number: XX-B463A-68

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:

  1. Memory Management & Efficiency:

    • Text, variables, pushdown list (PDL), and extended functions have been moved to Field 1, freeing core in Field 0 for user-defined functions.
    • Improved trade-off between text storage and variables, with variable storage building downwards from the upper limit of Field 1 to prevent erasure when text is modified.
    • Generally, more variables are available for most programs compared to 8K-FOCAL.
  2. Expanded Language Features:

    • Multiple Subscripted Array Variables: Supports up to 8 dimensioned arrays, each with up to 4 subscripts. Managed by LIBRARY OPEN, LIMIT, and CLOSE commands. Arrays are stored efficiently (3-words per variable vs. 5-words for normal variables).
    • 'ON' Command: A three-branch "conditional DO" command, similar to IF but executing a DO (as a subroutine) instead of a GOTO.
    • Arithmetic Expressions for Line Numbers: Allows using arithmetic expressions in DO, IF, GOTO, MODIFY, and ON commands for line number computation (though noted as slower than explicit numbers).
    • Logical 'AND': A new function (FX(3,ARG1,ARG2)) for performing logical AND operations between expressions, useful for masking.
    • Octal/Decimal Conversions: New functions (FX(8,ARG) for Decimal to Octal and FX(10,ARG) for Octal to Decimal).
    • Continuation Character: CONT/K allows long direct or indirect command lines, improving readability by inserting a new line and spaces.
    • Unlimited Direct Command Line Length: Command strings can be appended to the indirect command buffer in STAR (*) mode.
  3. System Interaction and Debugging:

    • Direct Core Access: The FX(1,ARG1,ARG2) function allows reading from and writing to specific core memory locations.
    • Machine Language Instruction Execution: The FX(2,ARG1,ARG2) function enables direct execution of machine language instructions, facilitating control of specialized hardware.
    • XOD Compatibility: The interrupt processor branch has been modified to allow direct use of 'XOD' (a debugging package) with FOCL.S, enabling debugging with interrupts on.
    • TDUMP Modification: The TDUMP command now types variables in reverse order of creation, making recently created variables easier to inspect during debugging.

Differences from FOCAL/69:

  • The LIBRARY EXIT command has been removed (its functionality can be achieved using FX commands).
  • The T $ command types out variables in reverse order of creation.
  • The error diagnostic list is extended and modified.

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.

XX-B463A-68
November 1970
18 pages
Quality

Original
1.0MB

Site structure and layout ©2025 Majenko Technologies