Burroughs MCP: Using CANDE
CANDE, (Command And Edit) is the user facing part of time-sharing on Burroughs MCP, similar to a shell.
Logging on
On retro-b5500. halt/load the system, and enable time-sharing by
entering CE
on the operator console. navigate to the terminal (DCA)
window and click connect.
On simh, start the system - time-sharing is already enabled if you used the quick-start - then use telnet to connect to port 5500 on localhost. Then give your user name and password.
B5500 TIME SHARING - 01/00, STATION 02 ENTER USER CODE, PLEASE-RUPERT AND YOUR PASSWORD RUPERT@@ 09/23/25 12:11 PM. GOOD AFTERNOON, RUPERT LANE YOU HAVE STATION 02 #
General usage
Once logged in, you can either edit a work file or issue commands, in an interface similar to Dartmouth DTSS.
Input lines should be less than 72 characters long. You can use backspace to correct mistakes and Enter to terminate a line - this is a convenience of the emulator; on the real system you'd use ' to backspace and ← to finish a line.
A line starting with " is treated as a comment, ie just printed on the teletype but not saved or processed.
More than one command can be given on a single line by separating them
with ;
. Commands can usually be abbreviated, eg LIST
can by typed
as L
.
If you get an error message, typing ?
will often provide more
details.
If you get stuck, eg a program is in an infinite loop, you can interrupt it back to the command level by pressing break, which is Control-E on simh or Control-B on retro-b6600.
Selecting a work file
CANDE has the concept of a work file which is a temporary copy of a program on disk. You can make a work file by creating a new file or loading from an existing disk file.
File names in CANDE are 6 characters long and must start with a letter.
To create a new work file, use CREATE name type
where name
is the
file name and type
is a programming language: BASIC, ALGOL, FORTRAN,
or COBOL. You can also set type to be SEQ (for general line numbered
files) or DATA (for un-numbered line files).
CREATE HELLO BASIC FILE:HELLO - TYPE:BASIC -- CREATED
To load an existing file, use LOAD
LOAD HELLO FILE:HELLO - TYPE:BASIC -- LOADING 4 RECORDS LOADED.
Editing a program
Typing a line starting with a number adds to a program or replaces the line if it already exists. Typing a line number on its own will delete that line. Lines can be entered in any order.
You can use the SEQ
command (or just the abbreviation +
) to
automatically create a line number for each line you enter. Terminate
it by pressing Enter on a blank new line.
SEQ 100FOR I = 1 TO 5 200PRINT "HELLO, WORLD" 300NEXT I 400END 500 #
As well as retyping a line, there is also the FIX
command which can
delete or change part of a line.
FIX's syntax is
FIX line-number delimiter old delimiter [new]
So for the line
200 PRINT "HELLO, WORLD"
you can change this to "HELLO, EARTH" with
FIX 200 /WORLD/EARTH
and delete HELLO with
FIX 200 /HELLO, /
The delimiter used above was /
, but this could be any character.
Note that only two delimiters are used, compared to say Unix sed where
you'd do s/world/earth/
.
Note also that FIX
only makes changes the next time the file is used
(eg on LIST
or RUN
) - so any errors in your FIX
syntax will be
presented then, not immediately.
FIX can also be abbreviated to just *
.
Compiling and running
COMPILE
will compile your work file, printing out any errors if
found. EXECUTE
will run the compiled file. Typing RUN
will compile
and execute, skipping the compile if the program has not changed.
RUN WAIT. COMPILING. END COMPILE .0 SEC. RUNNING HELLO, EARTH HELLO, EARTH HELLO, EARTH HELLO, EARTH HELLO, EARTH END HELLO .0 SEC.
Listing
You can use LIST
to list out your program; rather than listing the
whole file you can give a single line number or a range as parameters,
eg LIST 200-300
. PRINT
is like LIST
but will omit the banner.
PRINT 200-300 200 PRINT "HELLO, EARTH" 300 NEXT I
File management
You can see what files you have in your disk area with FILE
or for
slightly more detail, LIST FILES
.
FILES *HELLO HELLO # LIST FILES 09/23/25 RUPERT 12:57 PM NAME TYPE RECS SEGS CREATED ACCESSED W/R W/B S-F LOCKD BY HELLO BASIC 4 10 09/23/25 * 09/23/25 10 300 7 HELLO OBJ(B) 13 13 09/23/25 * 09/23/25 30 30 7 2 FILES 23 SEGMENTS 17 RECORDS END LFILES .0 SEC.
You can manipulate files with COPY
, RENAME
and REMOVE
, as well
as APPEND
and MERGE
to combine several files.
Logging off
Type BYE
to end your session. If you have modified your work file,
you will get an error; you can either type SAVE
to save it or
DELETE
to discard.
When you log off you will see some statistics
ON FOR 3 MIN, 45.2 SEC. C&E USE .0 SEC. EXECUTE .0 SEC. IO TIME .0 SEC. OFF AT 6:50 PM. GOODBYE GUEST 07/14/25
Some funny responses to commands
If you enter ?
to find out details of an error before you have
submitted any commands at all, you get:
? I AM THE GENIE OF THE DISK--WHAT IS YOUR COMMAND?
If you halt/load the system while still connected to the terminal you will see the following when the system comes back up:
P L o P RESTARTING . . PLEASE WAIT
In the next post I will go into more details on some advanced CANDE commands.
More information
On bitsavers, the Time-sharing System User's Guide is the best first reference; note this is from a different version of MCP so some of the commands may vary. The Georgia Tech B5700 Time-sharing System Manual is a more complete reference, giving examples of each command, but note this also contains extensions added by Georgia Tech not available on the base Burroughs system.
Also of interest is The Complete CANDE Primer in the Charles Babbage Institute Burroughs collection. However this is from 1980 so for a much enhanced version of CANDE compared to what we have today.
Questions, corrections, comments
I welcome any questions or comments, and also especially any corrections if I have got something wrong. Please email me at rupert@timereshared.com and I will add it here and update the main text.