Overview
A fundamental understanding of memory structures used within the PLATO subsystem is crucial when working with most aspects of not only PLATO, but of related subsystems such as the CONDENSER, FORMATTER and PLATO Disk storage.
Referring to this topology, it is important to note that some structures are omitted to limit confusion. Some of those elements are referenced here as they support inter-subsystem communication.
Extended Memory is used to pass data between components and to store larger blocks of data.
EM is divided into a number of sections:
Concept: Time Slices
In PLATO, all users are given a slice of time (literally “time shared”) in which their 'context' is swapped-in, then swapped-out. This “swap space” is stored in Extended Memory and are loaded into Central Memory ONLY for the duration of the time-slice.
Between time slices ALL user data/buffers are held in Extended Memory.
During a users active time slice, the user's buffers from EM are loaded into Central Memory (CM) for processing:
The Student Bank and Station Bank together are the users execution context.
See file pftext blocks 1-e
to 2-d
for the layout of Station Bank
The Student Bank is divided into two sections: -
See on-line file platxt blocks 4-e
to 6-f
for layout of Student Bank
Other items held in CM:
As Of 2025 May 05
Each MOUT Buffer entry has a header and zero or more words of extra data.
Header:
36/DATA, 12/LENGTH, 12/OUTCODE - Outcodes
LENGTH is the total length of the package (0 or 1 for header only).
Non-header words can contain anything.