Table of Contents

003 - dtCYBER Operator Interface

CYBIS (R2) Operation and Usage (Virtual Book)

This Virtual Book contains chapters organized in a suggested order but you are free to select whatever topics address your needs best.

Show/Hide The Book's Table of Contents

dtCYBER is a “container” application that simulates a variety of different CDC/CYBER configurations. These articles describe the general operation of the interface and illustrate some of the functionality using NOS 2/871 as an example. Other operating systems executed in this environment may be shown but this should be treated as an exhaustive dive into the operation of each supported operating system.

Overview

The operator interface is command-line based and prompts for commands in its text window. The default prompt is Operator > but may be configured using the displayName= directive.

For these examples, the option configured is displayName=Retro1-0 DEV (Auto) resulting in the command line prompt:

YYYY-MM-DD HH:MM:SS [Retro1-0 DEV (Auto)] Operator>

Commands are Case-Sensitive!

  • All commands are submitted by the Enter key which initiates processing of the command that preceded it.
  • All commands are documented in this article: Console Commands

Initialization (Annotated)

Initialization of dtCYBER begins by invoking the command dtcyber at the appropriate host shell prompt or through a windows shortcut.

If dtCYBER finds the default cyber.ini file in the current working directory, the simulator reads the configuration statements starting with the default section [cyber].

Within the [cyber] section, each directive is processed and all required and optional sections are processed until initialization is complete. Initialization of dtCYBER concludes with deadstart of the desired operating system.

During initialization, status messages are presented to the operator. An annotated (in yellow) example of these messages is shown below. This example shows the initialization of a development machine whose network ports have been offset into the 50,000 port range using the configuration file cybisr2.ini and the initialization section [cyber]. The command to invoke this configuration is: dtcyber cyber cybisr2.ini. Refer to the dtCyber documentation for details.

(init ) Reading Configuration File 'cybisr2.ini' The version and build information is presented first … -------------------------------------------------------------------------------- Desktop CYBER 5.7.x (Release|Debug) Copyright (c) 2011-2017 Tom Hunter Portions Copyright: (c) 2018-2025 Kevin Jordan (c) 2011-2022 Paul Koning (c) 2017-2025 Steven Zoppi (c) 2006-2022 Mark Rustad (c) 2005 Mark Riordan Licensed under the terms of the GNU General Public License version 3 For details see included text file 'license-gpl-3.0.txt' or visit 'http://www.gnu.org/licenses' Starting initialisation The Date of the build and mode of build is presented for defect reporting … [Version Build Date: MMM dd yyyy hh:mm:ss (RELEASE|DEBUG)] Different “root” sections may be specified on the command line … therefore the section being processed is displayed: (init ) Loading root section [cyber] from cyber.ini For each configuration statement processed, a status indicating the validity of the statement is presented. This should be noted with each new release because older statements are superseded by new ones and may be designated as “Invalid” or “Deprecated”. (init ) file 'cybisr2.ini' section [cyber] line 6: displayName Valid (init ) file 'cybisr2.ini' section [cyber] line 7: console Valid (init ) file 'cybisr2.ini' section [cyber] line 8: model Valid (init ) file 'cybisr2.ini' section [cyber] line 9: osType Valid (init ) file 'cybisr2.ini' section [cyber] line 10: deadstart Valid (init ) file 'cybisr2.ini' section [cyber] line 11: equipment Valid (init ) file 'cybisr2.ini' section [cyber] line 12: npuConnections Valid (init ) file 'cybisr2.ini' section [cyber] line 13: operator Valid (init ) file 'cybisr2.ini' section [cyber] line 15: clock Valid (init ) file 'cybisr2.ini' section [cyber] line 16: cpus Valid (init ) file 'cybisr2.ini' section [cyber] line 17: memory Valid (init ) file 'cybisr2.ini' section [cyber] line 18: esmbanks Valid ^^^^^^^ The prefix of each status line contains the name of the dtCYBER module which is responsible for its generation. These messages are needed when diagnosing initialization/configuration issues. vvvvvvv (cpu ) CPU model CYBER875 initialised (2 CPU's, CM: 20000000, ECS: 10000000) (cpu ) CPU1 started2.ini' section [cyber] line 20: osType Valid (init ) Successfully configured model CYBER875 with 2 CPUs and 16 banks of ECS. (pp ) PPs initialised (number of PPUs 24)line 22: persistDir Valid (channel) Initialised (number of channels 40)DEV (Auto)', (init ) 0 MHz set. (rtc ) Using QueryPerformanceCounter() clock at 10.000000 MHz (init ) 0 Clock increment set. (scr_channel) Status/Control Register initialised on channel 16 (scr_channel) Status/Control Register initialised on channel 36 (init ) 0x00000000 Tracing mask set. (init ) IP address is '0.0.0.0' (init ) Idle every 7000 cycles for 1 microseconds. (init ) Operating system type is 'NOS'. The CONSOLE section enables customization of the emulated NOS console display to help distinguish one console from another when running multiple operating system instances. (init ) Loading console section [console.windows] from cybisr2.ini (init ) file 'cybisr2.ini' section [console.windows] line 3: colorBG Valid (init ) file 'cybisr2.ini' section [console.windows] line 4: colorFG Valid (init ) [colorBG]=004400 (init ) [colorFG]=ffffff (init ) [fontSmall]=8 (init ) [fontMedium]=12 (init ) [fontLarge]=24 (init ) [fontSmallHeight]=15 (init ) [fontMediumHeight]=20 (init ) [fontLargeHeight]=30 (init ) [scaleX]=10 (init ) [scaleY]=12 (init ) [heightPX]=800 (init ) [widthPX]=1100 The Deadstart Panel depicts the substitute of “bits” [0|1] representing the switches that would otherwise be on an actual machine. (init ) Loading deadstart section [deadstart.nos287] from cybisr2.ini Row 00 (0000):[000 000 000 000] Row 01 (0000):[000 000 000 000] Row 02 (0000):[000 000 000 000] Row 03 (7553):[111 101 101 011] Row 04 (7713):[111 111 001 011] Row 05 (0120):[000 001 010 000] Row 06 (7413):[111 100 001 011] Row 07 (7113):[111 001 001 011] Row 08 (7301):[111 011 000 001] Row 09 (0000):[000 000 000 000] Row 10 (0001):[000 000 000 001] Row 11 (0000):[000 000 000 000] (init ) Loading NPU section [npu.nos287] from cybisr2.ini The NPU Section is then processed: (init ) file 'cybisr2.ini' section [npu.nos287] line 8: couplerNode Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 9: npuNode Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 10: cdcnetNode Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 17: cdcnetPrivilegedTcpPortOffset Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 18: cdcnetPrivilegedUdpPortOffset Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 23: hostID Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 26: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 36: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 41: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 47: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 54: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 60: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 61: terminals Valid (init ) file 'cybisr2.ini' section [npu.nos287] line 68: terminals Valid (init ) Network host ID is 'R1XM01' (init ) Host coupler node value is 1 (init ) NPU node value is 2 (init ) CDCNet node value is 255 (init ) TCP privileged port offset is 50000 (init ) UDP privileged port offset is 50000 (init ) Idle network buffer threshold is 4 (init ) [npu.nos287] line 26: nje TCP port 50175 CLA port 0x30 port count 1, block size 8192, destination host NCCMAX/64.223.192.208:175, source address 127.0.0.1, ping interval 600 (init ) [npu.nos287] line 36: trunk TCP port 52550 CLA port 0x01 port count 1, coupler node 3, destination host R1XM02/127.0.0.1:2551 (init ) [npu.nos287] line 41: raw TCP port 52552 CLA port 0x03 port count 1 (init ) [npu.nos287] line 47: telnet TCP port 50023 CLA port 0x04 port count 16 (init ) [npu.nos287] line 54: pterm TCP port 58006 CLA port 0x14 port count 16 (init ) [npu.nos287] line 60: hasp TCP port 52553 CLA port 0x24 port count 1, block size 400 (init ) [npu.nos287] line 61: hasp TCP port 52554 CLA port 0x25 port count 1, block size 400 (init ) [npu.nos287] line 68: pterm TCP port 58005 CLA port 0x40 port count 128 The Equipment Section is then processed: (init ) Loading equipment section [equipment.nos287] from 'cybisr2.ini' (init ) file 'cybisr2.ini' section [equipment.nos287] line 12: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 13: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 14: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 15: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 17: DD844 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 20: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 21: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 22: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 23: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 24: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 25: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 26: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 27: DD885 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 30: MDI Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 34: CO6612 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 37: CR3447 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 38: LP512 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 39: CP3446 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 42: MT679 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 43: MT679 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 44: MT679 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 45: MT679 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 50: TPM Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 55: MT5744 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 56: MT5744 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 57: MT5744 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 58: MT5744 Valid (init ) file 'cybisr2.ini' section [equipment.nos287] line 61: DDP Valid Devices specified by the configuration are initialized: (dd8xx ) Disk with 843 cylinders initialised on channel 1 equip 0 unit 0 filename 'disks.r2/DQ10' (dd8xx ) Disk with 843 cylinders initialised on channel 1 equip 0 unit 1 filename 'disks.r2/DQ11' (dd8xx ) Disk with 843 cylinders initialised on channel 2 equip 0 unit 0 filename 'disks.r2/DQ12' (dd8xx ) Disk with 843 cylinders initialised on channel 2 equip 0 unit 1 filename 'disks.r2/DQ13' (dd8xx ) Removable disk initialised on channel 11 equip 0 unit 0 (dd8xx ) Disk with 843 cylinders initialised on channel 3 equip 0 unit 0 filename 'disks.r2/DQ20_BINARY' (dd8xx ) Disk with 843 cylinders initialised on channel 4 equip 0 unit 0 filename 'disks.r2/DQ21_CYB0' (dd8xx ) Disk with 843 cylinders initialised on channel 3 equip 0 unit 1 filename 'disks.r2/DQ22_CYB1' (dd8xx ) Disk with 843 cylinders initialised on channel 4 equip 0 unit 1 filename 'disks.r2/DQ23_PUB0' (dd8xx ) Disk with 843 cylinders initialised on channel 3 equip 0 unit 2 filename 'disks.r2/DQ24_PUB1' (dd8xx ) Disk with 843 cylinders initialised on channel 4 equip 0 unit 2 filename 'disks.r2/DQ25_UOL' (dd8xx ) Disk with 843 cylinders initialised on channel 3 equip 0 unit 3 filename 'disks.r2/DQ26_RTR1' (dd8xx ) Disk with 843 cylinders initialised on channel 4 equip 0 unit 3 filename 'disks.r2/DQ27_GEN1' (mdi ) MDI initialised on channel 5 equipment 7 Host ID: R1XM01 (mdi ) Coupler node: 1 MDI node: 2 (console) Listening for connections on port 56612 (console) Initialised on channel 10 (dcc6681) Attached Channel 12, Equipment 04, Unit 00 (cr3447 ) File watcher was requested (cr3447 ) Card code selected '026' (cr3447 ) Submissions will be preserved in 'CROutput'. (cr3447 ) Filesystem watch thread for 'CRInput' created successfully. (cr3447 ) Initialised on channel 12 equipment 4 type '026' (fsmon ) Watching Directory: Card Reader Directory Path (fsmon ) Waiting ... (lp3000 ) LP512 Output rendering mode 'ANSI' (lp3000 ) LP512 Burst mode 'Bursting' (dcc6681) Attached Channel 12, Equipment 05, Unit 00 (lp3000 ) LP3555/512 initialised on channel 12 equipment 5 mode ANSI filename 'LPOutput/LP5xx_C12_E5' (dcc6681) Attached Channel 12, Equipment 06, Unit 00 (cp3446 ) Card code selected '026' (cp3446 ) Initialised on channel 12 equipment 6 filename 'CPOutput/CP3446_C12_E6' type '026' (mt679 ) Initialised on channel 13 equipment 0 unit 0 (mt679 ) Initialised on channel 13 equipment 0 unit 1 (mt679 ) Initialised on channel 13 equipment 0 unit 2 (mt679 ) Initialised on channel 13 equipment 0 unit 3 (tpmux ) Two port MUX initialised on channel 15, telnet port 56602. (mt5744 ) initialised on channel 23 equipment 0 unit 0, drive M0P0D0 on tape server localhost:54400 (mt5744 ) initialised on channel 23 equipment 0 unit 1, drive M0P0D1 on tape server localhost:54400 (mt5744 ) initialised on channel 23 equipment 0 unit 2, drive M0P0D2 on tape server localhost:54400 (mt5744 ) initialised on channel 23 equipment 0 unit 3, drive M0P0D3 on tape server localhost:54400 (ddp ) Initialised on channel 20 (cpu ) CPU0 started If initialization is successful, the Release and License information is shown: -------------------------------------------------------------------------------- Desktop CYBER 5.7.x (Release|Debug) Copyright (c) 2011-2017 Tom Hunter Portions Copyright: (c) 2018-2025 Kevin Jordan (c) 2011-2022 Paul Koning (c) 2017-2025 Steven Zoppi (c) 2006-2022 Mark Rustad (c) 2005 Mark Riordan Licensed under the terms of the GNU General Public License version 3 For details see included text file 'license-gpl-3.0.txt' or visit 'http://www.gnu.org/licenses' -------------------------------------------------------------------------------- Build date: <date> <time> -------------------------------------------------------------------------------- If initialization is successful, the Release and License information is shown: --------------------------- DTCYBER: Operator interface --------------------------- Please enter 'help' to get a list of commands If automatic operator statements are configured, they are issued: YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> set_operator_port 56662 > Listening for operator connections on port 56662 YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> enter_keys #2000# YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> enter_keys #5000#%year%%mon%%day% YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> enter_keys #3000#%hour%%min%%sec% Control is then relinquished to the human operator. YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator>

Entering Commands

All commands have an abbreviated version of only one or two letters. For example “lt” is the same as “load_tape”, or “st” is the same as “show_tape”.

To get help for the parameters of the individual commands type help and the command name. For example:

YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> help --------------------------- List of available commands: --------------------------- > ccw > d > drc > dm > e > ek > lc > ld > lt > ocw > p > rc > rp > sa > sd > se > ski > skwi > sn > sop > ss > st > starth > stoph > sur > sv > ud > ut > close_console_window > disconnect_remote_console > dump_memory > enter_keys > load_cards > load_disk > load_tape > open_console_window > remove_cards > remove_paper > set_key_interval > set_key_wait_interval > set_operator_port > show_all > show_disk > show_equipment > show_network > show_state > show_tape > show_unitrecord > show_version > start_helpers > stop_helpers > unload_disk > unload_tape > ? > help > ?? > help_all > shutdown > pause > idle > Try 'help <command>' to get a brief description of a command. YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator>

Most commands require parameters which identify the peripheral you want to interact with using the following types of information:

For example, the load_tape command requires these parameters:

YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> help lt > 'load_tape <channel>,<equipment>,<unit>,<r|w>,<filename>' load specified tape. YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator>

Some peripherals require additional parameters:

Some commands (e.g load_tape or load_card) required a file name specifying what file to use.

About File Naming

The path name of the file must not contain spaces.

Termination

To shut down the simulation type the following in the operator window:

YYYY-MM-DD hh:mm:ss [Retro1-0 DEV (Auto)] Operator> shutdown

A Word of Caution

If the guest operating system is not cleanly shutdown prior to terminating the simulation, corruption of some simulated disk files and other persistent structures may occur.

The simulation will terminate cleanly and flush all pending buffers to disk. Do not kill the simulation by any other means.

Windows Operation

Attempted termination by Control-C or ESCape is intercepted and the operator is prompted with a confirmation request.