Quick CYBIS operator's guide

Posted by admgroup-s

Quick CYBIS operator's guide				2005/08/20.

Here are some quick notes for common operator actions on CYBIS.
This version describes procedures for CYBIS running on NOS 2.8.7 on
the DtCyber emulator.

1. Startup.

The default is for Level 0 deadstart.  That is generally a good
choice.  If you use the autostart feature of dtcyber.sh, this is what
you get.  You can also get it manually as follows:
        ./dtcyber.sh cybis871
	[bring up the dd60 window which is the Cyber console]
	
	["cmrinst" display appears, lots of text]
	GO. 
NOS will now start; it takes a minute or so.  When it is done, you'll
see the A and B displays on the console.  You can then start PLATO as
follows: 
        x.cybis. 

and all the pieces will start.

You can use level 3 deadstart under certain circumstances; that will
save a little time.  Level 3 deadstart is ONLY valid if:
     - starting the SAME deadstart tape as last time, and
     - last shutdown must have been a clean shutdown.

To do level 3 deadstart, enter the following at the first screen after
dtcyber startup (the *A* screen):

	O	 (*O* screen appears)
	P	 (*P* screen appears)
	I=3      (I = 0 line changes to I = 3)
	

You will then get a screen with level 3 deadstart options, not the
usual *cmrinst* screen.  At this screen, enter "go."  NOS will start
up, and you can then start up PLATO as above.

1.1 Reinitializing ECS.

If the system (NOS or DtCyber) has crashed or is otherwise suspect
from the last time, it's a good idea to reinitialize ECS.  Similarly,
it is sometimes necessary when changing deadstart tapes, so it is good
practice to do it in all cases when changing deadstart tapes.  ECS
initialization is done as part of a level 0 deadstart.  

Begin by starting DtCyber WITHOUT autostart:

        ./dtcyber.sh cybis871
	[bring up the dd60 window which is the Cyber console]
	
	["cmrinst" display appears, lots of text]
        next. 
	["eqpinst" display appears, again lots of text]
        initialize,al,05. 
        go. 

The initial NOS display will then be "TESTING EXTENDED MEMORY" and
rapidly changing numbers, indicating that ECS is being initialized.
Once NOS startup is complete, start up PLATO as usual.

If you've done a clean shutdown, ECS does not need to be initialized
(but there is no harm in doing so).

2. Shutdown.

First back out PLATO (1 3 from author mode).  Then, at the console:

      k,mas1. 
      k.stop  
      [	      (to erase the "k.")
      unlock. 
      check point system. 
IMPORTANT!  WAIT FOR "check point complete" message (at the B display 
line for "system").
      step. 

Now go to the DtCyber operator window.  At that window, enter:
      unlock. 
      shutdown. 
      end. 

2.1 Shutdown failures

Sometimes, if a PPU program is misbehaving, the "check point system"
step does not complete normally.  (Give it 30 seconds or so, but it
should complete fairly quickly.)  If that happens, do the following.
Do this right away, you get only ONE chance to do this and you
wouldn't want to wait till later and forget...

Now go to the DtCyber operator window.  At that window, enter:
        unlock. 
	shutdown. 
	end. 
	
	O P I=3 			(level 3 deadstart)

The Level 3 deadstart options display will appear.  Enter:
	abort. 
	(I don't believe you enter "go." after that, but if nothing
	happens, do that next.)
	
You should get a display that says "check point complete" somewhere.
Now go to the DtCyber operator window.  At that window, enter:
        unlock. 
	shutdown. 
	end. 

Finally, restart DtCyber WITH A LEVEL 0 DEADSTART.  Initializing ECS
is probably a good idea if things got this messed up.

3. Crashes.

If PLATO (CYBIS) dies, you will get the dreaded "plato off" display on
all the terminals.  A memory dump will be generated and sent to the
printer.  Mastor will automatically restart things.

If Conden dies, you may be able to restart it from the menu from 1 at
author mode.

If Framat dies, enter:
	  drop,pla1. 
(which will produce "plato off") and things should restart.

If Mastor dies, shut down the system and restart, as follows:

On the console, enter:
      unlock. 
      check point system. 
IMPORTANT!  WAIT FOR "check point complete" message (at the B display 
line for "system").
      step. 

Now go to the DtCyber operator window.  At that window, enter:
      unlock. 
      shutdown. 
      end. 

Then restart DtCyber (Level 0 deadstart; initializing ECS is
recommended). 

In any of the above crash cases, wait for any line printer output to
stop (BIO status is IDLE).  Then enter this command into the DtCyber
operator window: unload,12,5. 

You'll get a message saying that LP was unloaded to some long file
name.  That's the line printer output up to this point; save it for
analysis. 

If DtCyber dies, hopefully we'll have a corefile; save that for
analysis.  In all cases, if you do a restart, make it a level zero
deadstart, with ECS initialized.

4. The "black box"

Some PLATO systems had a black box (earlier, a tape, if I remember
right) that would transmit a fixed message periodically to all
terminals.  This is useful if the system is down for some reason; that
might be backups, or some planned (or unplanned) downtime of another
kind.

The DtCyber equivalent is the utility program "blackbox".  You can run
this when DtCyber is NOT running.  It takes one argument, which is the
message to be displayed.  It accepts connections from pterms, just as
DtCyber does.  It will ignore any input, and send the supplied message
to every connected terminal every 5 seconds. 

For example:

    ./blackbox "Backups in progress, expect PLATO back at 9:00 PST"

If no argument is given, the default is: "PLATO is down for the moment".

The black box runs until terminated (by control/C).  It takes very
little CPU time, so it can easily be used while the system is busy
doing backups or the like.

If you use "blackbox" be sure to stop it before restarting DtCyber.
If you forget, you should see some messages saying "can't bind to
socket" from DtCyber.  If that happens, let startup complete normally,
shut down DtCyber, kill blackbox, and restart.  Since the NIU (PLATO
terminal interface) couldn't start up in this situation, you'll need
the console PLATO terminal (x.console.) to shut down PLATO if you had
done an autostart.