Burroughs MCP: The b5500-software archive
Apart from the preserved operating system tapes, the other major source of software for the Burroughs B5500 is retro-software/B5500-software on Github. This was assembled by Paul Kimpel, Richard Cornwell, Nigel Williams and many other contributors from a number of digital and physical sources. It contains around 100MB of compilers, interpreters, utilities and source code routines.
The centre of this collection is the CUBE library tape. CUBE, the Cooperating Users of Burroughs Equipment, was a user group that shared source code donated by users to other sites - similar to IBM's SHARE.
The other directories contain transcriptions of listings found elsewhere, along with some modern software.
In this article I will describe the highlights of the collection and show how to get APL and ELIZA working under time-sharing.
Interactive interpreters
- APL\B5500, an APL interpreter from the University of Washington adapted for time-sharing.
- WIPL, the (University of) Wisconsin Interactive Problem-solving Language - a JOSS clone.
- A LISP interpreter reported to come from Fort Monmouth, New Jersey.
- A 1970s era BASIC interpreter called XBASIC from the University of West Scotland
Read on for a brief look at APL. I will cover WIPL in a future article.
For LISP, I could get this running but it crashed on all input. XBASIC also runs but seems to require a tape to do anything useful. Let me know if you have success with these.
Other programming languages
- EULER, an early language developed by Niklaus Wirth.
- PASCAL as implemented at Heriot-Watt University in around 1975.
- SNOBOL3 as implemented at the University of Wisconsin.
- GTL, the Georgia Tech Language, created at the university of the same name. An enhanced version of Algol 60.
- MCALGOL, an enhanced version of Burroughs Enhanced Algol, developed at Westinghouse.
- OMNITAB, a statistics language developed by NIST.
Apart from OMBITAB, which is in Fortran, these are all written in Algol. All were designed to run under batch (although CANDE could be customised to run them, as Georgia Tech did) so I will not look at these further.
Other archived software
As top level directories in the collection:
- R/C (Remote/Card), a remote job editor/submit package from Burroughs Defence.
- A Burroughs B6500 simulator and accompanying early MCP for the B5500
- Fragments of Mark-XIV and Mark-XVI MCP
- KRUNCH and UNKRNCH utilities - compress your Algol card deck by removing whitespace and comments.
The CUBE tape has many Algol source code routines. mostly for mathematical/engineering problems, a computer aided teaching system from GT, ELIZA, a tic-tac-toe game, an Algol to Fortran translator written in GTL and many other small programs. The library index is a good place to start exploring these.
More recent software
Finally, the archive contains a few more recently developed programs
- A Sudoku solver by Paul Cumberworth
- Burroughs B5500-related utility programs for "Emode"
- Utilities from Paul Kimpel and Richard Cornwell
Installing the software
All of the above is in source form. To get them individually installed on your system you will need to compile them and install associated files as per the techniques described in the batch and data transfer posts.
However, a much easier way has been provided by Richard Cornwell, who
has made a virtual tape file containing compiled files for many of
the above. This is included in the simh distribution and can also be
installed on retro-b5500 by getting extras.bin from here, mounting
it on the tape drive as a BCD file and entering the command
? LOAD FROM EXTRAS =/=; END
on the console. The file extra.job at the same location also contains a script for building this tape if you want to find out how each component was constructed.
APL
This implementation was created in Burroughs Extended Algol at the Computer Science Group at the University of Washington by Gary Kildall, Leroy Smith, Sally Swedine and Mary Zosel. Gary Kildall became famous later as the creator of the CP/M operating system. The source code was originally found as a printed listing and transcribed to a source file; this was supplanted later by a digital copy found in the CUBE tapes.
This APL was designed to be as compatible as possible with the
original APL for the IBM System/360. As typewriters with the APL
glyphs did not exist for the Burroughs, alphanumerical
transliterations are used, eg Δ is written as $ and ⍴ as RHO.
If you install the contents of the extras tape as described above, you
can then start APL from a CANDE prompt by typing RUN APL/DISK. Below
is an sample session where I start APL, use calculator mode to do some
work, then quit and return to CANDE.
RUN APL/DISK
RUNNING
APL/B5500 UW COMPUTER SCIENCE # 3-05-71
LOGGED IN THURSDAY 11-05-25 06:33
X := 30
Y := 12
X + Y
42
)OFF
END OF RUN
END APL .0 SEC.
I plan to add a project-tpk run of TPK using APL at a later date.
ELIZA
Created by Joseph Weizenbaum at MIT in 1964-6, ELIZA could be called the world's first AI chatbot. I was especially interested to see a version for the Burroughs B5500 having worked on the reconstruction of the CTSS/MAD original.
This version is written in Georgia Tech Language which was mentioned above. GTL incorporated Lisp features into Algol, and the code looks like it was a port of Cosell's Lisp version rather than Weizenbaum's original. The source code is dated 1970-1 and was written by Charles Fricks and John Covert, presumably at Georgia Tech.
Assuming you have installed the extras tape as per the previous section, you will have three files on your system
ELIZA/SYMBOL- source codeELIZA/SCRIPT- run time script fileELIZA/ELIZA- executable
In order to run under time-sharing, you will need to rename the
executable as CANDE expects runnable code to have a 0 as its first
character. Switch over to the operator console, press Escape and type:
? CHANGE ELIZA/ELIZA TO 0ELIZA/ELIZA; END
ELIZA can now be run under CANDE by typing RUN ELIZA/ELIZA. After it
starts up, you can interact with ELIZA by typing single lines of text.
Type *QUIT to exit. Here's a sample run, using the conversation in
Weizenbaum's 1966 ACM paper:
RUN ELIZA/ELIZA
RUNNING
ONE MOMENT PLEASE...
HELLO. HOW ARE YOU TODAY?
?MEN ARE ALL ALIKE.
HOW?
?THEY ARE ALWAYS BUGGING US ABOUT SOMETHING OR OTHER.
WHAT INCIDENT ARE YOU THINKING OF?
?WELL, MY BOYFRIEND MADE ME COME HERE.
DOES THAT SUGGEST ANYTHING ELSE OF YOURS?
?*QUIT
GOODBYE
END ELIZA .0 SEC.
It has some interesting features that distinguish itself from the original ELIZA:
- It saves the recall information to a file for use in subsequent sessions.
- After a certain amount of CPU time is used it will automatically quit with:
I AM VERY SORRY, BUT YOU HAVE USED UP YOUR TIME.
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.