Common source code repository for emulators of the Burroughs B5500 computer system.
Fortran COBOL Visual Basic
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

The B5500-software project maintains source code and software artifacts for the Burroughs B5500 computer system, a 1960s mainframe system designed for high-level languages, and specifically Algol 60. Many of the files haven been transcribed from listings or scans of listings.

Contributions of new material and corrections to existing material are most welcome. Please submit a pull request.

Files are organized in top-level directories by program or application and origin. Each top-level directory contains a README.txt file describing the contents and their provenance.

Source code formats for the B5500 were based on 80-column punched cards and card images stored on disk and magnetic tape. For most languages, a range of columns on the card were reserved for "sequence numbers," which were used by a number of tools for locating lines in the program and merging symbolic patch files. These sequence numbers are a vital part of the source and must be maintained by all contributors.

Source files should be prepared as ordinary ASCII or UTF-8 text files, but should represent card images. They may be blank-trimmed on the right if desired. The B5500 used five character glyphs that are not represented by ASCII. This project and the retro-b5500 emulator use the following convention for ASCII substitution characters:

`~`  left-arrow (Algol assignment operator, "_" is also accepted)
`|`  small-cross (Algol multiply operator)
`{`  less-than-or-equal operator
`}`  greater-than-or-equal operator
`!`  not-equal operator

Source files may also be prepared in Unisys "PWB format," named for the Programmers Workbench editor available with modern Unisys MCP systems. These are ordinary Windows text files, but padded with spaces to the full fixed-length record size used when storing records on disk. PWB understands sequence numbers and maintains the files with proper padding.

In addition to the Unisys PWB Windows application (also known as NX/ Edit), there is an Eclipse plug-in that offers much of the functionality of PWB. To obtain the plug-in, search for "MCP IDE for Eclipse" on the Unisys web site,

File name extensions of the form .*_m denote PWB-format files. For those extensions that imply a sequence number field, the sequence numbers MUST be numeric and MUST be in monotonically ascending sequence. The lines MUST be padded with spaces as necessary to EXACTLY the length specified below. Lines MAY NOT be right-trimmed to a different length. PWB considers files that do not meet these criteria to be corrupt and will not open them, although it has an import tool that will convert most text files to the PWB canonical format.

The following table shows the PWB common extensions used with B5500 source files, the locations of text, sequence, and mark fields with in the record, and the full length to which records should be padded. The length does not include line delimiters. "Mark" fields are used to carry patchmark ("blame") information, but were not used on the B5500, and may be left blank:

File Kind Ext Text Seq Mark Length
ALGOL .alg_m 1-72 73-80 81-90 90
BASIC .bas_m 5-72 1-4 73-80 80
COBOL .cob_m 7-72 1-6 73-80 80
DATA .dat_m all n/a n/a variable
DCP .dcp_m 1-72 73-80 81-90 90
ESPOL .esp_m 1-72 73-80 81-88 88
FORTRAN .for_m 1-72 73-80 81-80 80
JOB .wfl_m 1-80 83-90 91-90 90
NDL .ndl_m 1-72 73-80 81-90 90
PASCAL .pas_m 1-72 73-80 81-90 90
SEQDATA .sqd_m 1-72 73-80 81-90 80
TEXTDATA .txt_m 1-72 73-80 81-90 90
XFORTRAN .xfr_m 1-72 73-80 81-80 80
Card deck .card all n/a n/a n/a

The initial set of files for this repository were extracted from http:// in April 2016.