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 code
  • ELIZA/SCRIPT - run time script file
  • ELIZA/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:

  1. It saves the recall information to a file for use in subsequent sessions.
  2. 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.