mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-02-28 00:55:39 +00:00
260 lines
11 KiB
Plaintext
260 lines
11 KiB
Plaintext
CUBE Library Version 13 (February 1972)
|
|
|
|
CUBE, the Cooperating Users of Burroughs Equipment, was a U.S. based
|
|
user organization that was active from the 1960s through the early
|
|
1990s. After the merger of Burroughs and Sperry Univac in 1986, CUBE and
|
|
USE (the Sperry user group) eventually merged to form the UNITE
|
|
organization (http://www.unite.org).
|
|
|
|
One of the functions that CUBE performed during the 1960s and early '70s
|
|
was to maintain a library of programs for the B5000 and B5500 computer
|
|
systems. These programs were donated both by Burroughs and by CUBE
|
|
members. The library was freely available to CUBE members and Burroughs
|
|
support staff. The library eventually grew to occupy three reels of
|
|
7-track, odd-parity magnetic tape.
|
|
|
|
Tapes for version 13 of the library were acquired several years ago by
|
|
Jim Haynes from the B5500 site at the University of California at Santa
|
|
Cruz and donated to the Computer History Museum in Mountain View,
|
|
California. The CHM was finally able to read these tapes in May 2018,
|
|
producing binary images in .tap (taput) format. For information on the
|
|
.tap format, see:
|
|
|
|
http://simh.trailing-edge.com/docs/simh_magtape.pdf
|
|
|
|
The .tap format was not originally designed to support the even- and
|
|
odd-parity encoding available on 7-track tapes, and there is some
|
|
difference of opinion on how it should be used for 7-track images. The
|
|
CUBE Library tape images produced by the CHM do not record the parity.
|
|
Each 6-bit character frame is stored right-justified in 8-bit bytes with
|
|
two leading zero bits. The data is encoded in B5500 Internal Code (BIC).
|
|
See Appendix A in:
|
|
|
|
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/
|
|
1021326_B5500_RefMan_May67.pdf
|
|
|
|
The .tap format is not presently supported by the retro-b5500 emulator.
|
|
Using a program I wrote for the modern Unisys MCP systems, I converted
|
|
the .tap files to the .bcd format used by retro-b5500 and several
|
|
others. See /Unisys-Emode-Tools/TAPBCD.alg_m in this repo. For
|
|
information on the .bcd format, see:
|
|
|
|
http://www.piercefuller.com/oldibm-shadow/tool.html
|
|
|
|
Both image formats are included in this repository. The tape images are
|
|
identified as follows:
|
|
|
|
CUBE_LBR labeled CASTC, 56-word (448-character) blocks, 2.8MB
|
|
CUBEA13 labeled CUBEA13/FILE000, B5500 Library/Maintenance, 12.0MB
|
|
CUBEB13 labeled CUBEB13/FILE000, B5500 Library/Maintenance, 10.4MB
|
|
|
|
CUBE_LBR is in CAST format. The tape label has a creation date of
|
|
1976-06-10, but that is probably the date the tape was last copied, and
|
|
it does not appear that any of the files had been updated since the late
|
|
1960s. These tapes are maintained by the standard B5500 utility MAKCAST/
|
|
DISK. The Algol and COBOL compilers understood this format and could
|
|
compile programs and include individual routines directly from CAST
|
|
tapes or a disk file. See the README in the CAST-Examples/ directory for
|
|
details.
|
|
|
|
Imaging of the CUBE_LBR tape detected errors in two areas of the tape.
|
|
The first error was in the PTS041A module, in the block containing
|
|
sequence numbers "KPKP0024"-"KPKP0028". These records are part of a
|
|
large comment. The second error was in the PTS051 module, in the block
|
|
containing sequence numbers "ANTP 11"-"ANTP 13", and including the two
|
|
blank records on either side of those sequence numbers. These records
|
|
occurred at the end of another large comment.
|
|
|
|
There were actually three blocks with errors in this second area of the
|
|
tape, but two appear to be duplicates of the middle one, probably
|
|
introduced by positioning errors during tape error retry, either when
|
|
the tape was written or when it was recently imaged. The two duplicated
|
|
blocks caused module boundaries to be offset by 10 records in all the
|
|
modules after that point.
|
|
|
|
Some research showed that almost identical comments were part of similar
|
|
routines in other modules on the tape. I was able to correct the .tap
|
|
image using a hex editor, drop the two duplicated blocks, and
|
|
reconstruct the corrupted records from the similar comments elsewhere on
|
|
the image. The .bcd image and extracted files were then generated from
|
|
that corrected .tap image.
|
|
|
|
CUBEA13 and CUBEB13 are standard B5500 Library/Maintenance tapes. These
|
|
two tapes were imaged without error. Their tape labels indicate creation
|
|
dates of 1972-08-07 and 1972-08-05 respectively, but none of the files
|
|
on these tapes has a creation date later than February 1972. Files from
|
|
these tapes can be loaded to disk using the ?LOAD and ?ADD control card
|
|
commands. See page 4-15ff in:
|
|
|
|
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/
|
|
1024916_B5500_B5700_OperMan_Sep68.pdf
|
|
|
|
The individual files have been extracted from these tape images and
|
|
converted to standard text file format in the Files/ subdirectory
|
|
discussed below. Directories of the files on each tape are also
|
|
described below.
|
|
|
|
CUBEA13 and CUBEB13 contain identical copies of an index file for the
|
|
library (CUBELIB/INDEX) and an Algol program that can sort and format
|
|
the index in multiple ways (CUBELST/Q000007). This program was used to
|
|
generate the index listings you can view in the CUBELIB.LIST.txt and
|
|
CUBELIB.LIST-1.txt files below. These files appear to match the
|
|
following scans of listings on bitsavers:
|
|
|
|
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/
|
|
CUBE_13_Library_Feb72.pdf
|
|
|
|
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/listing/
|
|
CUBE_Library_Listing.pdf
|
|
|
|
The disk file system for the B5500 used a two-part name, the Multi-file
|
|
identifier (MFID) and the File Identifier (FID), written MFID/FID. In
|
|
the CUBE Library index, the MFID is the name of the program or package.
|
|
The FID is a seven-character string termed the CUBE ID. The first two
|
|
characters of this ID are a letter-number code denoting a classification
|
|
scheme. The remaining characters (usually numeric) are a unique value
|
|
within the classification code. The classifications are shown in
|
|
CUBELIB.LIST.txt.
|
|
|
|
Most files on the CUBEA13 and CUBEB13 tapes use the CUBE ID as the FID,
|
|
but quite a few of the files (especially data files) do not. These are
|
|
noted within the file descriptions in the index. To add to the
|
|
confusion, files on the CUBE_LBR CAST tape have only one name. The CUBE
|
|
ID, where available in the library index, had been appended as the FID
|
|
to the names of these in the Files/ subdirectory.
|
|
|
|
In preparing the files for this repository I noticed a number of
|
|
discrepancies between the files actually on the tape images and the
|
|
entries in the index:
|
|
|
|
The following files are on CUBE_LBR but are not in the index:
|
|
|
|
MRS115, MRS117, MRS125, MRS138, MSS002,
|
|
ORS023, ORS029, ORS033, ORS036, PTS074, URS046
|
|
|
|
The following files are in the index but not on any tape:
|
|
|
|
PTS061/T200023
|
|
SYSX-O400001 (noted in the index as available separately)
|
|
|
|
The following files have different names between CUBE_LBR and the
|
|
index (note that several other files have a different names but they
|
|
are identified as such in the index):
|
|
|
|
DSS029 on tape is DS029/T300001 in index
|
|
DSS030 on tape is DS030/T300002 in index
|
|
DSS031 on tape is DS031/T300003 in index
|
|
PTS024 on tape is PTS024R/E200008 in index
|
|
|
|
Library contents:
|
|
|
|
CAST-Examples/
|
|
Card decks illustrating the MAKCAST/DISK program and use of CAST
|
|
files for the CUBE_LBR tape image. See the embedded README file for
|
|
details.
|
|
|
|
CUBE_LBR.bcd
|
|
Image in .bcd format for the CUBE_LBR tape. CAST format.
|
|
|
|
CUBE_LBR.tap
|
|
Image in .tap format for the CUBE_LBR tape. CAST format.
|
|
|
|
CUBE_LBR-Tape-Directory.txt
|
|
Listing of the files on the CUBE_LBR tape. This was generated by the
|
|
MAKCAST program. The 6-digit number to the left of the program name
|
|
is the 1-relative record number on the tape where that program
|
|
starts. The numbering starts with the fourth block on the tape,
|
|
i.e., after the three directory blocks on the front of the tape.
|
|
|
|
CUBEA13.bcd
|
|
Image in .bcd format for the CUBEA13 tape. B5500 Library/Maintenance
|
|
format.
|
|
|
|
CUBEA13.tap
|
|
Image in .tap format for the CUBEA13 tape. B5500 Library/Maintenance
|
|
format.
|
|
|
|
CUBEA13-Tape-Directory.pdf
|
|
Listing of the files on the CUBEA13 tape. This was generated from
|
|
the .bcd image by a Javascript utility, see https://github.com/
|
|
pkimpel/retro-b5500/blob/master/tools/B5500LibMaintDir.html.
|
|
|
|
CUBEB13.bcd
|
|
Image in .bcd format for the CUBEB13 tape. B5500 Library/Maintenance
|
|
format.
|
|
|
|
CUBEB13.tap
|
|
Image in .tap format for the CUBEB13 tape. B5500 Library/Maintenance
|
|
format.
|
|
|
|
CUBEB13-Tape-Directory.pdf
|
|
Listing of the files on the CUBEB13 tape. This was generated as for
|
|
the CUBEA13 directory.
|
|
|
|
CUBELIB.LIST.txt
|
|
Index of the CUBE Library generated from the CUBELIB/INDEX file
|
|
using the CUBELST/Q000007 program with ?COMMON=0 (the default). This
|
|
listing is organized by the library's classification scheme.
|
|
|
|
CUBELIB.LIST-1.txt
|
|
Index of the CUBE Library generated from the CUBELIB/INDEX file
|
|
using the CUBELST/Q000007 program with ?COMMON=1. This listing is
|
|
sorted by the CUBE ID (second file name).
|
|
|
|
Files/
|
|
Individual files extracted from the three tape images. These are
|
|
named as they are on the tapes, with the exception of the files from
|
|
CUBE_LBR, which have had their CUBE ID appended as a second name
|
|
where that ID is available in the library index.
|
|
|
|
These are plain text files encoded in ASCII. The following
|
|
substitutions were made for the five B5500 character glyphs that do
|
|
not have ASCII equivalents:
|
|
|
|
`~` left-arrow (Algol assignment operator)
|
|
`|` small-cross (Algol multiply operator)
|
|
`{` less-than-or-equal operator
|
|
`}` greater-than-or-equal operator
|
|
`!` not-equal operator
|
|
|
|
On the B5500, these files would be named MFID/FID. In Windows and
|
|
Unix-like file systems, however, treating the MFID as a directory
|
|
name would result in a large number of directories containing a
|
|
single file. This would make the library files a little tedious to
|
|
navigate, and would make it more difficult to find files by the CUBE
|
|
ID in their second name. Therefore, the text files in the Files/
|
|
subdirectory have been named in the form MFID-FID.ext, where ".ext"
|
|
attempts to identify the files by language or usage:
|
|
|
|
.alg B5500 Extended Algol
|
|
.cob B5500 COBOL (not COBOL-68)
|
|
.dat Data or text in ASCII (no binary encoding)
|
|
.for B5500 FORTRAN IV
|
|
.gtl GTL (Georgia Tech Language)
|
|
.mca Westinghouse Research MCALGOL
|
|
.sno SNOBOL
|
|
.wipl WIPL (Wisconsin Interactive Problem-Solving Language)
|
|
.xal B5500 XALGOL (Compatible Algol)
|
|
|
|
Several files were transcribed earlier by Richard Cornwell and me,
|
|
before these tape images became available, and were included
|
|
elsewhere in this repository. These transcriptions have now been
|
|
renamed and moved "underneath" the corresponding files extracted
|
|
from the tape images so that they appear as versioned history to the
|
|
tape files. The renamed files are:
|
|
|
|
/KRUNCH-UNKRNCH/KRUNCH.UTILITY.alg_m => KRUNCH-V0104AA.alg
|
|
/KRUNCH-UNKRNCH/UNKRNCH.UTILITY.alg_m => UNKRNCH-V0107AA.alg
|
|
/RC-Ron-Brody/RCSY94.RON.alg_m => RCSY94-Z100006.alg
|
|
/RC-Ron-Brody/TEACHER.0000094.txt_m => TEACHER-0000094.dat
|
|
/SNOBOL-UW-Chambers/SYMBOL.SNOBOL.alg_m => SNOBOL-L200010.alg
|
|
|
|
__________
|
|
2018-05-27 Paul Kimpel
|
|
Initial creation of the library.
|
|
|
|
|
|
|
|
|
|
|