A quick tour of Burroughs MCP using simh

In this post we will turn our attention to Richard Cornwell's B5500 emulator running on simh. Along with the emulator, Richard has created a package of tapes, cards and config files to run MCP on it, and even rebuild the OS from source. Unlike retro-b5500 this is a command line program; by using the simh core it brings in its flexibility and automation capabilities. It also supports more than one time-sharing terminal via telnet.

You can follow the instructions on Richard's site to set this up - start on this page and note the PDF link which gives a great summary.

I have also created a quick start that allows you to build and run the time-sharing system with two commands.

Before you start

Install required software

You will need a Unix-like environment capable of running a shell, git, make, a C compiler, wget and unzip. You will also need the telnet command line program or a GUI telnet client.

Clone the quick start repo

git clone https://github.com/timereshared/burroughs-mcp-simh-quickstart

Get the operating system tape file

The MCP operating system is free for non-commercial use under a license from Unisys, but cannot be redistributed here. You will need to get it from Paul Kimpel's site as follows:

If you omit this step, the build command will refuse to continue.

Define time-sharing users

Edit the file tss-setup.card. Copy the 4 lines starting with $USER "GUEST" and ending with NO CHARGE and insert just before $END. Edit these copied lines to define your own user account. For example, I might do:

$USER "RUPERT"
PASSWORD "SECRET"
NAME "RUPERT LANE"
NO CHARGE

You can add as many users as you want, and remove the GUEST user if you like.

If you omit this step, the build command will only create the GUEST user with password GUEST.

Build the system

Type ./build.sh. This will download simh and the mcp-kit under packages/, build the simh b5500 binary and copy files. The file structure on your PC will now look like

bin/ simh binary
disks/ virtual disks for MCP
tapes/ tape files for MCP
units/ printer and card images

It will then proceed to

  • cold boot the B5500 from a punched card image
  • set up the virtual disks and install MCP files
  • add extra software that has been collected.
  • set up time-sharing and create users

/images/mcp/simh-mcp-cold-start.png Installing MCP on simh. Source: Rupert Lane. License: CC0.

This will take around 5 minutes and will only need to be done once. If you ever need to rebuild the system, run build.sh again; it will not re-download the package files.

Start MCP

Type ./run.sh. After a few seconds the system will say it is ready for connection. Using a telnet client, connect to port 5500 (eg via telnet 0 5500.)

In the telnet session, type your username and password. Your screen will look something like this, with the window on top being the console and the one below the user session.

/images/mcp/simh-mcp-cande-login.png Login to CANDE on MCP under simh. Source: Rupert Lane. License: CC0.

Create and run a hello world program

Here's an example of a complete session.

$ telnet 0 5500
Trying 0.0.0.0...
Connected to 0.
Escape character is '^]'.


Connected to the B5500 simulator DTC device, line 0


B5500 TIME SHARING - 01/00, STATION 02
ENTER USER CODE, PLEASE-GUEST
AND YOUR PASSWORD
GUEST@@@
09/02/25  6:04 PM.
GOOD EVENING, GUEST USER      YOU HAVE STATION 02

#
CREATE HELLO BASIC
FILE:HELLO - TYPE:BASIC  -- CREATED
100 FOR I = 1 TO 5
200 PRINT "HELLO, WORLD"
300 NEXT I
400 END
RUN
 WAIT.

 COMPILING.


 END COMPILE .0 SEC.

 RUNNING
        

HELLO, WORLD
HELLO, WORLD
HELLO, WORLD
HELLO, WORLD
HELLO, WORLD


 END HELLO .0 SEC.

LIST


FILE:HELLO - TYPE:BASIC  --09/02/25  6:08 PM.

100  FOR I = 1 TO 5
200  PRINT "HELLO, WORLD"
300  NEXT I
400  END


 END QUIKLST .0 SEC.

SAVE
FILE:HELLO - TYPE:BASIC  -- SAVED.

BYE
 ON FOR  4 MIN, 00.4 SEC.
 C&E USE .0 SEC.
 EXECUTE .0 SEC.
 IO TIME 2.9 SEC.
 OFF AT   6:08 PM.
 GOODBYE GUEST
09/02/25

After we login, we create a new BASIC file called HELLO, and type in the program using line numbers. RUN will compile and execute it, LIST will display a listing.

Finishing your session

Type BYE to log out. If it complains about unsaved work, you can either type SAVE to keep it on disk or DELETE to discard your work.

There is no shutdown process for the operating system itself. Go to the emulator window and type Control-E to interrupt it, then q to quit.

You can restart MCP with ./run.sh as needed.

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.