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:
parent
80d48d356d
commit
bf226cd990
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
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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.
|
||||
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user