mirror of
https://github.com/pkimpel/retro-220.git
synced 2026-04-28 20:58:56 +00:00
1. Correct transcription error in BALGOL source, MRS-081.card. 2. Correct transcription errors in SYMPTOM-DATA.card. 3. Add sequence numbers to B5500 and E-mode source files. 4. Generate new set of listings for all versions.
Index of folder retro-220/software/BALGOL/BALGOL-Examples/MRS-081:
Source, object, and compilation listings for a BALGOL program from
Burroughs Technical Bulletin 156, 8 June 1961, Mathematical Report
Series MRS-081, "Diagnosis of Congenital Heart Disease from Clinical
Data Using the Burroughs 220 Computer". The program listing is included
in the report and is noted as having been written by Fred B. Fielding of
the Burroughs San Francisco District office in May 1961.
The program and report are based on a paper, "A Mathematical Approach to
Medical Diagnosis Applied to Congenital Heart Disease" by H. R. Warner,
A. F. Toronto, L.G. Veasy, and R. Stevenson; Journal of the American
Medical Association, 22 July 1961: 177(3), pp. 171-183;
doi:10.1001/jama.1961.03040290005002.
This report describes a program for computing the probability of a set
of congenital heart diseases occurring in a patient given the presence
of a set of symptoms observed in the patient. It includes sample data
and an example of using a machine-language subroutine with a BALGOL
program.
The report was discovered during October 2019 in the Burroughs
Corporation Records, Product Literature (CBI 90), Charles Babbage
Institute, University of Minnesota, Minneapolis, Series 74, Box 43,
Folder 8.
To run the program, load the following decks into the Cardatron card
reader in the order indicated and compile with a BALGOL compiler
configured for at least a 5000-word 220 system:
1. BALGOL compiler call-out card.
2. MRS-081.card deck -- BALGOL source and machine-language cards.
3. SYMPTOM-DATA.card deck.
4. Case-data card deck, e.g., CASE-DATA.card.
MRS-081.card
The BALGOL source deck, including the object deck for the machine-
language subprogram. This is the original version of the BALGOL
program, as transcribed from the report, but with a corrected
version of the machine-language code for the UNPACK subroutine as
discussed below.
MRS-081.lst
Compilation and run listing generated from MRS-081.card with the
SYMPTOM-DATA.card and CASE-DATA.card decks appended.
MRS-081-Code.lst
Compilation and run listing generated from MRS-081.card as above,
but including the object code generated by the compiler.
SYMPTOM-DATA.card
Card deck for the symptom-disease probability matrix used by the
program. This must be inserted after the cards in the MRS-081.card
deck and before any case-data cards.
CASE-DATA.card
Sample case-data card deck for input to the program, derived from
sample run data in the report. This data must be inserted after the
of SYMPTOM-DATA.card deck when the program is run.
UNPACK.card
Source deck for the machine-language UNPACK subprogram used by the
BALGOL program to unpack rows from the symptom-disease probability
matrix during execution. This deck was reverse-engineered from the
numeric object code in the MRS-081.card deck and then modified to
support parameter-passing scheme for a later version of the
compiler. Assemble with the BAC-Assembler.
As published, the machine-language routine was written for the
BALGOL parameter-passing sequence used in the compiler dated
1961-02-20 -- the one used in the report. The compiler available to
and recovered as part of the retro-220 project (dated 1962-02-01)
passes parameters in the reverse order. Thus, this version of the
subprogram was modified to use the recovered compiler's scheme. See
Appendix F, "Construction of Machine Language Programs" in the March
1963 Revised Edition of the BAC-220 Burroughs Algebraic Compiler
manual (Bulletin 220-21017).
The object code for this routine published in the report may never
have had an assembler source and was likely programmed directly in
numeric machine language.
UNPACK.lst
Assembly listing generated from UNPACK.card.
UNPACK-ML.card
Object machine-language card deck generated by assembling
UNPACK.card. The BAC-Assembler produces a machine-language deck with
six words per card. That output was manually reformatted to match
the (mostly) five word-per-card layout shown in the report.
ORIGINAL-1961/
Directory containing the original version of the UNPACK subroutine.
See the included README file for details.
B5500/
The BALGOL source, UNPACK subroutine, and data converted to
Burroughs B5500 Extended Algol, as supported by the retro-b5500
emulator.
E-MODE/
The BALGOL source, UNPACK subroutine, and data converted to modern
Unisys ClearPath MCP Extended Algol. E-mode is the term for the
internal architecture of these systems.
Note that the results from the B5500 and E-mode programs differ slightly
from those of the BALGOL program. The results from the BALGOL program
agree with the report, and the results from the B5500 and E-mode
versions of the program agree with each other. Some variance between the
220 results and those for the B5500 and modern E-Mode systems may be
expected, as the 220 carries only eight decimal digits of floating-point
precision and does not round after floating-point add/subtract, while
the latter two systems carry 11.5 digits (39 bits) and round after
floating add/subtract.
In this case, however, the B5500/E-mode results, where they differ, are
always one greater in the last (fourth) digit printed. This appears not
to be due to any computational difference at that level of precision,
but to the fact that the 220 BALGOL formatter routines truncate
formatted values while the other two round them.
Paul Kimpel
December 2019
Original version, transcribe program listing and data, disassemble
machine-language routine to BAC-Assembler notation, prepare sample
data deck.
27 December 2019
Revise UNPACK subroutine for parameter-passing sequence used by
1962-02-01 compiler, archive original UNPACK subroutine files,
include additional listings.
1 January 2020
Correct transcription errors in BALGOL source and SYMPTOM-DATA card
decks, resolve cause of differences between the report and the
BALGOL, and B5500/E-mode results.