CYBIS Developer Notebook
This notebook contains mini-assignments intended to orient developers and hobbyists in the maintenance and use of dtCyber and PLATO / CYBIS. Because this work performed in these articles was specifically applied to CYBIS, this section is named accordingly.
Requirements
Use of these tutorials assumes that you have at a minimum:
- A working installation of dtCyber including Cybis Release 1 found on Kevin Jordan's github repository.
Follow the instructions found in the NOS 2.8.7 Installation guide on the operating system of your choice.- dtCyber requires the installation of NODE.JS (and NPM is highly recommended).
- dtCyber on distributions other than Windows require a functioning installation of
gccandmake.
- Are running on one of the supported platforms:
- Linux (Debian 24.04 or greater)
- Redhat/RHEL or Rocky Linux (9.4 or greater)
- Windows 11 (no previous version of Windows is supported)
- Installation of Visual Studio Community Edition
- MacOS Sequoia (15.3.2 or greater)
- RaspberryPI (4B or greater) with
Debian GNU/Linux 11 (bullseye)
- A working version of PTerm
About Apple Silicon
Developers using hardware built upon Apple Silicon must use the JAVA version of PTerm referenced on the cyber1.org web page. The next version of PTerm will support Apple Silicon.
Exercises
The aspiring systems programmer should perform these exercises in this prescribed order to ensure proper familiarity with the general operations tasks needed during and between development phases.
- Install and Learn CDC.IO . Install, Test, and Study the CDC.IO utility.
- Cluster Backup . Having a proper cluster backup will enable the restoration of PLATO files which may become corrupted through human or other errors. This is the developer's baseline configuration.
- Patching System Lessons. Carefully study the Patch/Modification conventions used by the Retro1.Org project using
CDC.IO; CDC Modify; and PLATO.
These learning objectives may be done in any order but a fundamental understanding of the above concepts and tools is needed to successfully perform these low-level system enhancements.
- Modify Courseware Limits . The objective of this is to learn how to modify a
commonblock using the PLATO Lesson Editor so that the console error message arising during first start of CYBIS will be addressed. The NCC system identifier is not known by the PLATO/CYBIS system during initialization because it does not appear in the courseware commoncacwof file0cacom. This exercise will provide the learner with experience modifiying sensitive system files. This is a BEGINNER level exercise. - Extend the INFO (AID) Concepts Limits . As distributed, the CYBIS system is nearly at the configured capacity of adding
conceptsto the PLATO Help System infrastructure underlying lessoninfo(AID). This exercise will extend the capacity of these help structures to the maximum possible in the final release of CYBIS (1499 entries). This is an INTERMEDIATE level exercise. - Modifying the System Lesson List . As distributed, the system lesson list did not have the proper configuration to support the enhanced
NOTESsystem fixes. These modifications correct this problem and properly modify the system lessons0syslstto correctly manage the system common needed during initialization. This is an ADVANCED procedure and involves the rebuild of the deadstart tape, and modification of a system lesson. - Implement a portion of the Level 1 PLATO Protocol. As distributed, PLATO/CYBIS only supports the LEVEL ZERO PLATO Protocol commonly implemented in PTerm and other emulators. NovaNET extended this protocol in the form of the JAVA Portal to support a greatly enhanced version of the ASCII protocol. This is an EXPERT procedure and involves all aspects of the operating system, PLATO/CYBIS, NOS, and the use of the JAVA Portal. Although the implemented features are a subset of those implemented by NovaNET, this exercise fully illustrates the complexity involved in making such changes with a learning outcome of understanding the full communication path between PLATO and the end user.