1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-01-11 23:52:46 +00:00

Corrections to BALGOL MRS-081 sample program:

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.
This commit is contained in:
Paul Kimpel 2020-01-01 14:24:12 -08:00
parent 80d48d356d
commit bf226cd990
9 changed files with 4356 additions and 4270 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -199,7 +199,7 @@
2 X20.. IF TE (20) EQL 1 $ CHDD0167
2 ( MX (8) = 100 $ GO TO FLTMX ) $ CHDD0168
2 T2021 = ( 1000 - ROW (20) - ROW (21) ) $ CHDD0169
2 T22 = ( 1000 0 ROW (22) ) $ CHDD0170
2 T22 = ( 1000 - ROW (22) ) $ CHDD0170
2
2 IF ( TP(20) EQL TP(21) ) AND ( TP(21) EQL TP(22) ) CHDD0171
2 AND ( TP(22) EQL TP(23) ) $ CHDD0172

View File

@ -402,7 +402,7 @@
1143 T2021 = ( 1000 - ROW (20) - ROW (21) ) $ CHDD0169
1147 T22 = ( 1000 0 ROW (22) ) $ CHDD0170
1147 T22 = ( 1000 - ROW (22) ) $ CHDD0170
1147
@ -835,9 +835,8 @@ PROGRAM VARIABLES BEGIN AT 3562
Y10 V S D - V P S .0286
Y11 V S D - I P S .0201
Y12 V P S .7307
Y13 I P S .2154
Y12 V P S .7295
Y13 I P S .2151
@ -856,9 +855,8 @@ PROGRAM VARIABLES BEGIN AT 3562
Y10 V S D - V P S .0297
Y11 V S D - I P S .0209
Y12 V P S .7290
Y13 I P S .2150
Y12 V P S .7278
Y13 I P S .2146
@ -874,12 +872,10 @@ PROGRAM VARIABLES BEGIN AT 3562
DISEASE PROBABILITY
Y02 A S D .0171
Y10 V S D - V P S .1983
Y11 V S D - I P S .2314
Y12 V P S .4245
Y13 I P S .1226
Y10 V S D - V P S .1980
Y11 V S D - I P S .2310
Y12 V P S .4238
Y13 I P S .1224
@ -896,15 +892,11 @@ PROGRAM VARIABLES BEGIN AT 3562
DISEASE PROBABILITY
Y02 A S D .0162
Y10 V S D - V P S .0610
Y11 V S D - I P S .0429
Y12 V P S .6861
Y13 I P S .1982
Y31 V S D - P H .0640
Y02 A S D .0158
Y10 V S D - V P S .0594
Y11 V S D - I P S .0418
Y12 V P S .6689
Y13 I P S .1932
@ -921,14 +913,11 @@ PROGRAM VARIABLES BEGIN AT 3562
DISEASE PROBABILITY
Y02 A S D .0166
Y10 V S D - V P S .0626
Y11 V S D - I P S .0440
Y12 V P S .6761
Y13 I P S .1953
Y31 V S D - P H .0780
Y02 A S D .0163
Y10 V S D - V P S .0616
Y11 V S D - I P S .0433
Y12 V P S .6647
Y13 I P S .1920
@ -944,12 +933,10 @@ PROGRAM VARIABLES BEGIN AT 3562
DISEASE PROBABILITY
Y02 A S D .0113
Y10 V S D - V P S .3490
Y11 V S D - I P S .4072
Y12 V P S .1680
Y13 I P S .0485
Y31 V S D - P H .0163
Y10 V S D - V P S .3477
Y11 V S D - I P S .4057
Y12 V P S .1674
Y13 I P S .0483
@ -965,8 +952,8 @@ PROGRAM VARIABLES BEGIN AT 3562
DISEASE PROBABILITY
Y02 A S D .0113
Y10 V S D - V P S .3490
Y11 V S D - I P S .4072
Y12 V P S .1680
Y13 I P S .0485
Y31 V S D - P H .0163
Y10 V S D - V P S .3477
Y11 V S D - I P S .4057
Y12 V P S .1674
Y13 I P S .0483

View File

@ -7,24 +7,26 @@ 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.
This report was discovered during October 2019 in the Burroughs
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.
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.
The 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.
To run the program, load the following decks into the Cardatron card
reader in the order indicated and compile with the BALGOL compiler:
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.
@ -47,23 +49,23 @@ MRS-081-Code.lst
Compilation and run listing generated from MRS-081.card as above,
but including the object code generated by the compiler.
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 at the end
of MRS-081.card deck when the program is run.
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 the available compiler's parameter-passing scheme. Assemble
with the BAC-Assembler.
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
@ -73,10 +75,11 @@ UNPACK.card
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 (220-21017).
manual (Bulletin 220-21017).
The transcribed object code may never have had an assembler source
and was likely programmed directly in numeric machine language.
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.
@ -84,10 +87,8 @@ UNPACK.lst
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 has been manually reformatted to
match the (mostly) five word-per-card layout shown in the report.
This reformatting was done to match the machine-language deck as
presented in the report.
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.
@ -100,22 +101,24 @@ B5500/
E-MODE/
The BALGOL source, UNPACK subroutine, and data converted to modern
Unisys ClearPath MCP Extended Algol.
Unisys ClearPath MCP Extended Algol. E-mode is the term for the
internal architecture of these systems.
Note that the results from the BALGOL program differ somewhat from those
published in the report. The results from the B5500/ and E-MODE/
versions of the program agree with each other and much more closely with
those in the report. Some variance between the 220 results and those for
the B5500 and modern E-Mode systems is to be expected, as the 220
carries only eight decimal digits of floating-point precision and does
not round floating-point add/subtract, while the latter two systems
carry 11.5 digits (39 bits) and round.
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.
The more significant variance between the BALGOL results and the report
is probably due to the way the arithmetic operators are presently
implemented in the retro-220 emulator, as we do not have complete
information on the way those operators were actually mechanized in a
real 220. These variances remain under investigation.
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
@ -127,4 +130,9 @@ 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.

View File

@ -9,7 +9,7 @@
5 850980980 010020010 300020200 050010900 010400000 *ROW 02@4
5 005 *ROW 03@1
5 300600100 200100200 000990400 300950980 900900980 980050050 *ROW 03@2
5 020570400 010030990 990010020 300150600 990950990 850020200 *ROW 03@3
5 020570400 010030990 990010020 300150600 990950990 850050200 *ROW 03@3
5 700980980 010010010 050010050 600010380 010300000 *ROW 03@4
5 001 *ROW 04@1
5 100200700 300100250 000990200 100950950 850900980 980150200 *ROW 04@2
@ -20,7 +20,7 @@
5 020100200 100010990 990010010 700020600 900900990 050700050 *ROW 05@3
5 850980980 150010850 050020200 020200200 200200000 *ROW 05@4
5 005 *ROW 06@1
5 100400500 010010010 000990850 800990950 950990980 980020020 *ROW 06@2
5 100400500 010010010 000990850 800990950 950990980 980200020 *ROW 06@2
5 020020600 050050990 990100150 400020900 990990990 150020020 *ROW 06@3
5 150980980 020020020 200020020 020020600 020700000 *ROW 06@4
5 001 *ROW 07@1
@ -52,7 +52,7 @@
5 020700200 020020980 980010010 100600800 990950990 950020850 *ROW 13@3
5 100980980 010010010 100010010 680010250 010200000 *ROW 13@4
5 014 *ROW 14@1
5 900090010 100900000 000200100 010950000 950650980 980400050 *ROW 14@2
5 900090010 100900000 000200100 010950900 950650980 980400050 *ROW 14@2
5 050010020 020050980 980100100 010900800 990980990 950020850 *ROW 14@3
5 100980980 020010300 400020050 010010020 020800000 *ROW 14@4
5 001 *ROW 15@1
@ -64,7 +64,7 @@
5 010010050 300020980 980020020 950000700 990900990 950020900 *ROW 16@3
5 050980980 010010010 300150050 020020050 020800000 *ROW 16@4
5 001 *ROW 17@1
5 300600100 050010010 000990900 000950990 900990950 900200050 *ROW 17@2
5 300600100 050010010 000990900 900950990 900990950 900200050 *ROW 17@2
5 600010100 050200980 980020020 700010800 600990990 010150020 *ROW 17@3
5 020400950 100020100 200050020 020020100 050250000 *ROW 17@4
5 072 *ROW 18@1