User Tools

Site Tools


plato:architecture:terminal.dataflow

Table of Contents

General Data Flow

Overview

This article illustrates how a TUTOR Lesson interacts with the PLATO Terminal or emulator.

Refer to this illustration while following the explanations below.

Output

  • When a lesson is requested by a user, PLATO first looks in memory to see if a lesson binary is already available. If not it then looks at the system binary packs to see if the lesson has been put through the CONDENSER.
    • If the condensed lesson is found, it is loaded from the binary pack into Extended Memory (EM) 1)
    • If the lesson is not found PLATO asks the CONDENSER to prepare one. PLATO causes the user to wait while the lesson is being condensed.
  • After a lesson binary is read from disk to EM the current unit is transferred to Central Memory (CM) for execution by the PLATO (executor) control point PLAn.
  • When the lesson has output ready to be delivered to the terminal, an entry is made in the MOUT buffer. At the end of the user's time slice, the MOUT buffer is copied to EM.
  • The FORMATTER picks up MOUT buffers for stations and transforms the data to fit the protocol of the target terminal and places this output into EM.
  • For ASCII terminals, PNI picks up the data and passes it to NAM which sends the data on its way. For Communications Interface Unit (CIU)2) connected terminals, PIO picks up the data and sends it out via an interface in DtCyber.

Input

  • When input is made by a user or otherwise initiated by the terminal the data is transferred to the component to which the terminal is connected - NAM for ASCII and PIO (DtCyber) for CIU (Classic).
  • If NAM is used the data is transferred to PNI and PNI places the data into EM.
  • If PIO is used, PIO places the data obtained directly into EM.
  • In either case, PLATO picks up the data from EM, begins a new time slice and resumes processing.

Key Concept

It may not be obvious but PLATO lessons (lessons executing in the PLATO Control Point) are entirely keystroke driven. Nothing happens in PLATO without a key being pressed. Even Disk I/O will not be initiated by PLATO without being initiated by a keystroke.

This is not true for other parts of the system but the PLATO subsystem is optimized around key-based “interrupt servicing”. 3)

1)
Think of Extended Memory (EM) as a very fast I/O Caching Device.
2)
CIU Connected terminals are otherwise thought of as “classic PLATO terminals”
3)
This is ironic because PLATO runs on a system that doesn't have “interrupts” as found on other architectures.
plato/architecture/terminal.dataflow.txt · Last modified: 2025/05/04 18:17 by Site Administrator