Phase 0 - Prepare Work Environment
β William Schaub, Dale Sinder and Steve Zoppi 2025/05/09
Tutorial Phases
Tip
The tutorial phases are arranged in a prescribed order, wherein each phase builds upon the previous. Performing these activities out of order will leave the installation in an inconsistent, or perhaps inoperable state.
Overview
This Multi-phase Tutorial covers all aspects of the PLATO build process and modifies:
- NOS
- PLATO's Core Components
- Condenser
- Framer/Formatter
- Executor
- SYSTEM Lessons
Therefore it is important to have an organized workspace from which these activites can be performed, in order.
Objective
When you have completed this Multi-phase Tutorial these new features will be available for Smart Terminals:
- Support for screens wider than 512 pixels: -fine- command
- In terminal rendering for
- Circles / Arcs
- Boxes
- Windowing / Clipping
- Stylized Graphics and Text: -style- command
- -image- command: copy, save, and restore of areas of the screen
- Pixel resolution pointing (ztouchx, ztouchy)
- Detailed reporting of terminal capabilities to CYBIS.
Procedure
1. Download and Unpack
The files and applications needed for this collection of tutorials is contained in various files zip files:
These files must be downloaded and unpacked into an accessible workspace.
The resulting structure of L1PPMODS.20250527.zip is:
You may optionally download and browse the listing files which accompany these activities. Having these listings readily available may help visualize the final outputs of each of the modification sets applied, in the proper order.
2. Backup
BACKUP NOW
Before starting any of these activities, make a complete backup of:
- the DtCyber
disksdirectory - the deadstart tape for your configuration
- the cyber.ini file for your configuration
This will ensure that there is a βsafe restart pointβ to which you can return if needed.
Perform This Backup Now
These processes (and future work) rely on being prepared for any potential error while learning how to perform these tasks. As such, it is important to understand how to use the cdc.io c.backup (Cluster Backup) function to establish a granular backup of all critical files. This type of backup enables fine-grained restoration of any PLATO file in the course of learning how to modify these systems and structures.
Perform This Backup Now
Once a backup is complete, you may then do a βtestβ restore any file1), such as lesson plato, by doing a simple copy. If you attempted to perform a test copy-back after a backup, nothing would have changed and you can make sure that you have the syntax correct:
Windows Example
3. Create Files
Tip
The files in the distribution should be pre-loaded and verified before beginning any of the subsequent procedures. This will also enable you to follow along with the instructions and familiarize yourself with the code to be deployed.
- Ensure that
cdc.iois properly installed and available in your working path by issuing thecdc.io versioncommand to verify its functionality.
- Using lesson
operatorlogged in as admin/s, create the following files:
Account Master File Type Name Parts Contents retro1 rtra (a)lessonalien 1 A demonstration lesson illustrating the capabilities of the Level 1 Protocol system system (a)lessona0asciidev 14 AID/INFO File system system (a)lessona0style 5 AID/INFO File s0sup s0stuff (e)codecybmods001 3 CYBIL modification sets required for Level 1 Protocol PART B s0sup s0stuff (e)codel1pmods000 18 PLATO modification sets required for Level 1 Protocol PART A s0sup s0stuff (e)codel1pmods001 18 PLATO modification sets required for Level 1 Protocol PART B s0nver develop (a)lessonns0caps 2 New version of NEW system file s0caps s0over system4 (a)lessonoa0aidsvoc 11 Old version of a0aidsvoc s0over system4 (a)lessonoainfo 6 Old version of ainfo s0over system4 (a)lessonoa0usedaid 1 Old version of a0usedaids s0over system4 (a)lessonos0caps 2 Old version of NEW system file s0caps s0sup s0stuff (e)codeplmods000 18 GENERAL PLATO modification sets required PART A s0sup s0stuff (e)codeplmods001 18 GENERAL PLATO modification sets required PART B retro1 rtra (a)lessonptest 5 A small lesson containing the functional tests of the Level 1 Protocol system system (a)lessons0caps 2 Current version of NEW system file s0caps
IMPORTANT: Be sure theUse codeis set toGroup son all three files ns0caps, os0caps and s0caps. Setting these codes may be done directly through the account administrator function for accounts: s0nver s0over and system respectively. - Verify that the following files already exist and are of the type/size indicated. If they are not in the correct place, use lesson
account0System Account Options, optioncMove / Copy files between accounts to position them properly:
Name Account Type Parts Contents fancy retro1 tutor 3 Demonstrations of the graphical primitives enabled by Level 1 Protocol ns0notes develop tutor 9 The system library containing gnotes/pnotes-related terms. ns0terms develop tutor 5 The system library containing support for calc, small terms, etc.
4. Verify Your Work
- In the directory
l1ppmods.20250527, a WINDOWS command filecdc.io.copyover.cmdand a LINUX bash scriptcdc.io.copyover.shhave been supplied. It uses the installedcdc.ioutility to import the patch files from their respective directories onto the target system:
:: :: cdc.io.copyover.cmd "Subdirectory_Name_of_Patch_Files" "Path_To_Target_Cluster" [ WRITE | TEST ] :: :: When applying patches to a PLATO Cluster using CDC.IO, it is best :: to test the changes prior to applying them. :: :: Two files are written: :: :: (STDOUTPUT).txt (The result of STDOUT from CDC.IO) :: (ERROUTPUT).txt (The result of STDERR from CDC.IO) :: :: (These files can be safely erased once processing completes successfully.) :: :: Subdirectory_Name_of_Patch_Files :: :: This is the name of the subdirectory whose patches are to be applied. :: The only permissible values are: :: :: Path_To_Target_Cluster :: :: This is the full path to the target cluster (usually DtCyber's 'disks' :: directory) to which patches are to be applied. :: :: m000.sinder.mods.a :: m001.sinder.mods.b :: m002.sinder.mods.c :: :: The output is then scanned for errors. :: :: *** DO NOT WRITE TO A RUNNING SYSTEM *** :: (Windows Example) cdc.io.copyover.cmd ^ "m000.sinder.mods.a" ^ "C:\Path\To\DtCyber\disks" ^ test Output from the command (if everything above was done correctly): :: Processing "m000.sinder.mods.a\alien.retro1.txt" :: Processing "m000.sinder.mods.a\fancy.retro1.txt" :: Processing "m000.sinder.mods.a\l1pmods000.s0sup.txt" :: Processing "m000.sinder.mods.a\nedit.s0nver.txt" :: Processing "m000.sinder.mods.a\nmem.s0nver.txt" :: Processing "m000.sinder.mods.a\nplato.s0nver.txt" :: Processing "m000.sinder.mods.a\ns0notes.s0nver.txt" :: Processing "m000.sinder.mods.a\ns0terms.s0nver.txt" :: Processing "m000.sinder.mods.a\nuser.s0nver.txt" :: Processing "m000.sinder.mods.a\plmods000.s0sup.txt" :: Processing "m000.sinder.mods.a\ptest.retro1.txt" :: Processing the Results ... ---------- (STDOUTPUT).TXT ---------- (ERROUTPUT).TXT :: :: TEST COMPLETE: :: You may proceed if the only lines that appear above resemble: :: ---------- (STDOUTPUT).txt :: (or) ---------- (ERROUTPUT).txt :: - Repeat the above tests for each of the patch sets:
m001.sinder.mods.bm002.sinder.mods.c
5. Apply Patchset m000.sinder.mods.a
- Quiesce CYBIS Normally.
Take CYBIS Down
Although in this specific circumstance, the following steps can be completed by
cdc.ioon a running CYBIS system. You are never encouraged to do so.
- Now run with the
WRITEoption:
(Windows Example) cdc.io.copyover.cmd ^ "m000.sinder.mods.a" ^ "C:\Path\To\DtCyber\disks" ^ write- Output from the command (if everything above was done correctly):
:: Processing "m000.sinder.mods.a\alien.retro1.txt" :: Processing "m000.sinder.mods.a\fancy.retro1.txt" :: Processing "m000.sinder.mods.a\l1pmods000.s0sup.txt" :: Processing "m000.sinder.mods.a\nedit.s0nver.txt" :: Processing "m000.sinder.mods.a\nmem.s0nver.txt" :: Processing "m000.sinder.mods.a\nplato.s0nver.txt" :: Processing "m000.sinder.mods.a\ns0notes.s0nver.txt" :: Processing "m000.sinder.mods.a\ns0terms.s0nver.txt" :: Processing "m000.sinder.mods.a\nuser.s0nver.txt" :: Processing "m000.sinder.mods.a\plmods000.s0sup.txt" :: Processing "m000.sinder.mods.a\ptest.retro1.txt" :: The contents of (STDOUTPUT).txt and :: (ERROUTPUT).txt :: Should be evaluated for any possible errors :: :: If you mis-allocated a file - those errors will appear here. :: :: (ERROUTPUT).txt contains the following: :: :: :: [End Of Output] - Examining output file (STDOUTPUT).txt should resemble this:
:: ---------------------------------------------------------------------------------------- PLATO Pack 'rtra' has 1 matches. ---------------------------------------------------------------------------------------- alien End of Function. Input file 'E:\Engineering\SZ10101\dtCyber.retro1\Queued.Patches\l1ppmods.20250527\m000.sinder.mods.a\alien.retro1.txt' Contains PLATO file 'alien' Type 'tutor a' From Account 'retro1' (1 part file) Target file 'alien' Found on 'rtra'. (1 Part File). Output file on MF 'rtra' Contains PLATO file 'alien' Type 'tutor a' From Account 'retro1' (1 part file) Block 00001. of 00007. Written ... Block 00002. of 00007. Written ... Block 00003. of 00007. Written ... Block 00004. of 00007. Written ... Block 00005. of 00007. Written ... Block 00006. of 00007. Written ... Block 00007. of 00007. Written ... End of Function. ... MORE OF THE SAME FOR EACH PATCH ... ---------------------------------------------------------------------------------------- PLATO Pack 'rtra' has 1 matches. ---------------------------------------------------------------------------------------- ptest End of Function. Input file 'E:\Engineering\SZ10101\dtCyber.retro1\Queued.Patches\l1ppmods.20250527\m000.sinder.mods.a\ptest.retro1.txt' Contains PLATO file 'ptest' Type 'tutor a' From Account 'retro1' (5 part file) Target file 'ptest' Found on 'rtra'. (5 Part File). Output file on MF 'rtra' Contains PLATO file 'ptest' Type 'tutor a' From Account 'retro1' (5 part file) Block 00001. of 00035. Written ... . . . Block 00035. of 00035. Written ... End of Function. - (ERROUTPUT).txt should contain a line with a
::(double colon) and a blank line.
- Restart CYBIS
- Login as
admin/sto verify that each of the above files is present and has content (as opposed to the original empty container files).
Ready to Begin
You are now ready to start with Phase 1 - Define Terminal Capabilities
1)CDC.IO, by default, does βsimulated writesβ which display exactly what changes would be made if it wrote to disk. The example lacks the-Wswitch which enables writing and is therefore, safe.
- plato/dev.notebook/l1pp/phase.0.txt
- Last modified: 2026/01/25 07:02
- by Site Administrator