1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-03-02 01:40:31 +00:00
Files
Paul Kimpel 2d06034237 Commit latest BALGOL compiler debugging and examples.
1. Supply runnable examples for all five sample programs in the BALGOL
reference manual.
2. Regenerate the Generator and Compiler listings and tape images.
3. Fix assembler bugs with "S" format code on input.
4. Fix BAC-Assembler bug generating a machine-language deck for the
LABEL intrinsic.
5. Note that some of these changes require retro-220 version 0.08 in
order to work properly.
2018-07-08 18:48:05 -07:00

481 lines
15 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
0200 BAC-220 STANDARD VERSION 2/1/62
0200 COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963.
0200
0200 J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING
0200 PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES,
0200 USING ORTHONORMAL FUNCTIONS$
0200
0200 COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS
0200 AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A
0200 HARMONIC BOUNDARY-VALUE PROBLEM$
0200
0200 COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS$
0200
0200 INTEGER I, J, K, L, M, N, NU, TH$
0200 ARRAY R(29), HFN(29), DSUM(24), HFCN(5), HFCEN(6),
0200 FA(25,25), A(25,25), B(25,25), HA(47), HAA(24)$
0200 INPUT DATA (FOR I=(1,1,29)$ R(I)), DIMEN(N)$
0228 OUTPUT FRESULTS (FOR I=(1,1,N)$ FOR J=(1,1,N)$ FA(I,J)),
0267 ARESULTS (FOR I=(1,1,N)$ FOR J=(1,1,N)$ A(I,J)),
0306 BRESULTS (FOR I=(1,1,N)$ FOR J=(1,1,N)$ B(I,J)),
0345 COEFFS (FOR NU=(4,4,N-1)$ HA(2NU-1)),
0372 HFNRES (FOR K=(1,1,29)$ HFN(K)),
0393 CRES(CONST), HFCNRES (TH, FOR K=(1,1,5)$ HFCN(K)),
0424 HFCENRES(TH, FOR K=(1,1,6)$ HFCEN(K))$
0448 FORMAT VECTOR (B8,6F16.8,W0),
0448 FTITLE (B48,*FRESULTS,FA(I,J)*,W3,W2),
0448 BTITLE (B48,*BRESULTS,B(I,J)*,W3,W2),
0448 ATITLE (B48,*ARESULTS,A(I,J)*,W3,W2),
0448 COEFTITLE (B30,*HA(8NU-1)*,W2),
0448 BDYVALUES (B42,*PRELIMINARY BOUNDARY VALUES*,W3,W2),
0448 CBDYVALUES (B43,*CORRECTED BOUNDARY VALUES*,W2),
0448 CONTITLE (B50,*CONSTANT*,W2),
0448 TABLE (B8,I2,B6,6F16.8,W0),
0448 TABLEHEAD (B40, *THE VALUES OF H(RHO,TH) IN B*, W3,W2),
0448 TABLELINE (B13,*RHO*,B6,*0.5*,B13,*1.0*,B13,*1.5*,B13,
0448 *2.0*,B13,*2.5*,B13,*3.0*,W0),
0448 TABLETH (B8,*TH*,W0)$
0542 START..
0542 READ ($$ DATA)$
0546 RDIM..
0546 READ ($$ DIMEN)$
0550 FOR I = (1,1,N)$
0561 FOR J = (I,4,N)$
0573 BEGIN
0577 L = I-J$ K = I+J$
0580 SUM = R(1)*K + 1.5R(18)*K.COS(0.59341195.L)
0595 + 0.5.R(29)*K.COS(0.78539816.L)$
0615 FOR M = (2,1,17)$
0626 SUM = SUM + 2.0.R(M)*K.COS((M-1).0.034906585.L)$
0650 FOR M = (19,1,28)$
0661 SUM = SUM + R(M)*K.COS((0.59341195 + (M-18).0.017453293).L)$
0685 FA(I,J) = (8.0/K).0.017453293.SUM
0701 END$
0703 WRITE ($$ FTITLE)$
0707 WRITE ($$ FRESULTS, VECTOR)$
0715 FOR J = (1,1,N)$
0726 B(1,J) = FA(1,J)$
0731 FOR I = (2,1,N)$
0742 BEGIN
0743 FOR J = (1,1,I-1)$
0757 B(I,J) = -B(J,I)/B(J,J)$
0781 FOR J = (I,1,N)$
0792 BEGIN
0793 B(I,J) = FA(I,J)$
0807 FOR K = (1,1,I-1)$
0821 B(I,J) = B(I,J) + B(I,K).B(K,J)
0851 END$
0852 FOR J = (1,1,I-1)$
0866 B(I,J) = B(I,J).SQRT(B(J,J)/B(I,I))
0892 END$
0900 FOR I = (1,1,N)$
0911 B(I,I) = 1.0/(SQRT(B(I,I)).I)$
0938 WRITE ($$ BTITLE)$
0942 WRITE ($$ BRESULTS, VECTOR)$
0950 FOR I = (1,1,N)$
0961 FOR J = (1,1,N)$
0973 A(I,J) = 0$
0983 A(1,1) = B(1,1)$
0985 FOR I = (2,1,N)$
0996 BEGIN
0997 FOR J= (1,1,I-1)$
1011 BEGIN
1012 A(I,J) = 0$
1019 FOR K = (J,1,I-1)$
1033 A(I,J) = A(I,J) + B(I,K).A(K,J)
1063 END$
1064 A(I,I) = B(I,I)
1078 END$
1079 WRITE ($$ ATITLE)$
1083 WRITE ($$ ARESULTS, VECTOR)$
1083
1091 COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION$
1091
1091 FOR J = (4,4,N-1)$
1105 BEGIN
1105 DSUM(J) = 0$
1108 FOR M = (1,1,17)$
1119 DSUM(J) = DSUM(J) + (R(M)*2 + R(M+1)*2).
1119 (R(M+1)*J.SIN(M.0.034906585.J)
1142 - R(M)*J.SIN((M-1).0.034906585.J))$
1173 FOR M = (18,1,28)$
1184 DSUM(J) = DSUM(J) + (R(M)*2 + R(M+1)*2.(R(M+1)*J.
1199 SIN((0.59341195 + (M-17).0.017453293).J)
1208 - R(M)*J.SIN((0.59341195
1220 + (M-18).0.017453293).J)))
1235 END$
1242 FOR NU = (4,4,N-1)$
1256 BEGIN
1256 HA(2NU-1) = 0$
1262 FOR J = (4,4,NU)$
1273 HA(2NU-1) = HA(2NU-1) + A(NU,J).DSUM(J)$
1294 HA(2NU-1) = 4.0.HA(2NU-1)
1305 END$
1306 WRITE ($$ COEFTITLE)$
1310 WRITE ($$ COEFFS, VECTOR)$
1318 FOR J = (4,4,N-1)$
1332 BEGIN
1332 HAA(J) = 0$
1335 FOR NU = (J,4,N-1)$
1349 HAA(J) = HAA(J) + HA(2NU-1).A(NU,J)
1366 END$
1367 FOR M = (1,1,18)$
1378 BEGIN
1378 HFN(M) = 0$
1381 FOR J = (4,4,N-1)$
1395 HFN(M) = HFN(M) + HAA(J).R(M)*J.COS((M-1).0.034906585.J)
1414 END$
1422 FOR M = (19,1,29)$
1433 BEGIN
1433 HFN(M) = 0$
1436 FOR J = (4,4,N-1)$
1450 HFN(M) = HFN(M) + HAA(J).R(M)*J.
1461 COS((0.59341195 + (M-18).0.017453293).J)
1470 END$
1478 WRITE ($$ BDYVALUES)$
1482 WRITE ($$ HFNRES, VECTOR)$
1490 AVT = 0$
1491 FOR M = (1,1,29)$
1502 AVT = AVT + R(M)*2 - HFN(M)$
1510 CONST = AVT/29.0$
1514 WRITE ($$ CONTITLE)$
1518 WRITE ($$ CRES, VECTOR)$
1526 FOR M = (1,1,29)$
1537 HFN(M) = CONST + HFN(M)$
1543 WRITE ($$ CBDYVALUES)$
1547 WRITE ($$ HFNRES, VECTOR)$
1555 FOR I = (1,1,5)$
1566 BEGIN
1569 TH = 5.(I-1)$
1571 FOR J = (1,1,5)$
1582 BEGIN
1582 HFCN(J) = CONST$
1586 FOR M = (4,4,N-1)$
1600 HFCN(J) = HFCN(J) + HAA(M).(0.5.J)*M.COS((I-1).0.087266463.M)
1621 END$
1629 WRITE ($$ TABLEHEAD)$
1633 WRITE ($$ TABLELINE)$
1637 WRITE ($$ TABLETH)$
1641 WRITE ($$ HFCNRES, TABLE)
1645 END$
1650 FOR I = (6,1,10)$
1661 BEGIN
1664 TH = 5.(I-1)$
1666 FOR J = (1,1,6)$
1677 BEGIN
1677 HFCEN(J) = CONST$
1681 FOR M = (4,4,N-1)$
1695 HFCEN(J) = HFCEN(J) + HAA(M).(0.5.J)*M.
1708 COS((I-1).0.087266463.M)
1716 END$
1724 WRITE ($$ HFCNRES, TABLE)
1728 END$
1733 STOP 1234$
1735 GO TO RDIM$
1736 FINISH$
COMPILED PROGRAM ENDS AT 1737
PROGRAM VARIABLES BEGIN AT 2308
FRESULTS,FA(I,J)
.46363974, 00 .00000000, 00 .00000000, 00 .00000000, 00 .23764104,-01 .00000000, 00
.00000000, 00 .00000000, 00 -.71568347,-02 .00000000, 00 .00000000, 00 .10859770, 00
.00000000, 00 .00000000, 00 .00000000, 00 .11793551,-01 .00000000, 00 .00000000, 00
.00000000, 00 -.46675578,-02 .00000000, 00 .00000000, 00 .45596588,-01 .00000000, 00
.00000000, 00 .00000000, 00 .66280898,-02 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .23645548,-01 .00000000, 00 .00000000, 00
.00000000, 00 .40349226,-02 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .13723587,-01 .00000000, 00 .00000000, 00 .00000000, 00
.25944878,-02 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .85504586,-02 .00000000, 00 .00000000, 00 .00000000, 00 .17352776,-02
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.55925943,-02 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .37885967,-02
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .26349488,-02 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .18701734,-02
BRESULTS,B(I,J)
.14686208, 01 .00000000, 00 .00000000, 00 .00000000, 00 .23764104,-01 .00000000, 00
.00000000, 00 .00000000, 00 -.71568347,-02 .00000000, 00 .00000000, 00 .15172589, 01
.00000000, 00 .00000000, 00 .00000000, 00 .11793551,-01 .00000000, 00 .00000000, 00
.00000000, 00 -.46675578,-02 .00000000, 00 .00000000, 00 .15610347, 01 .00000000, 00
.00000000, 00 .00000000, 00 .66280898,-02 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .16257932, 01 .00000000, 00 .00000000, 00
.00000000, 00 .40349226,-02 .00000000, 00 .00000000, 00 -.31208993, 00 .00000000, 00
.00000000, 00 .00000000, 00 .17884578, 01 .00000000, 00 .00000000, 00 .00000000, 00
.29613152,-02 .00000000, 00 .00000000, 00 -.41973587, 00 .00000000, 00 .00000000, 00
.00000000, 00 .19547473, 01 .00000000, 00 .00000000, 00 .00000000, 00 .22421675,-02
.00000000, 00 .00000000, 00 -.45621904, 00 .00000000, 00 .00000000, 00 .00000000, 00
.20996803, 01 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 -.47127538, 00 .00000000, 00 .00000000, 00 .00000000, 00 .22450411, 01
.00000000, 00 .00000000, 00 .24615538, 00 .00000000, 00 .00000000, 00 .00000000, 00
-.62017180, 00 .00000000, 00 .00000000, 00 .00000000, 00 .26021732, 01 .00000000, 00
.00000000, 00 .45290409, 00 .00000000, 00 .00000000, 00 .00000000, 00 -.84088537, 00
.00000000, 00 .00000000, 00 .00000000, 00 .31976202, 01
ARESULTS,A(I,J)
.14686208, 01 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .15172589, 01
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .15610347, 01 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .16257932, 01 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 -.45834176, 00 .00000000, 00
.00000000, 00 .00000000, 00 .17884578, 01 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 .00000000, 00 -.63684798, 00 .00000000, 00 .00000000, 00
.00000000, 00 .19547473, 01 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 .00000000, 00 -.71217375, 00 .00000000, 00 .00000000, 00 .00000000, 00
.20996803, 01 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00 .00000000, 00
.00000000, 00 -.76619630, 00 .00000000, 00 .00000000, 00 .00000000, 00 .22450411, 01
.00000000, 00 .00000000, 00 .64575954, 00 .00000000, 00 .00000000, 00 .00000000, 00
-.11091510, 01 .00000000, 00 .00000000, 00 .00000000, 00 .26021732, 01 .00000000, 00
.00000000, 00 .12226889, 01 .00000000, 00 .00000000, 00 .00000000, 00 -.16437184, 01
.00000000, 00 .00000000, 00 .00000000, 00 .31976202, 01
HA(8NU-1)
.50545980, 01 .42274664, 01
PRELIMINARY BOUNDARY VALUES
.49796109,-03 .79116912,-02 .39293030,-01 .12059672, 00 .28013604, 00 .52195968, 00
.74267286, 00 .54385490, 00 -.10833408, 01 .15377240,-03 .12638557,-03 .35622571,-04
-.14939181,-03 -.46393693,-03 -.94592558,-03 -.16334454,-02 -.25616621,-02 -.37591919,-02
-.49674820,-02 -.64370066,-02 -.81955319,-02 -.10268529,-01 -.12678090,-01 -.15441817,-01
-.18571706,-01 -.22073060,-01 -.25943490,-01 -.30172023,-01 -.34738354,-01
CONSTANT
.93175934,-01
CORRECTED BOUNDARY VALUES
.93673895,-01 .10108762, 00 .13246896, 00 .21377265, 00 .37331197, 00 .61513561, 00
.83584879, 00 .63703083, 00 -.99016490, 00 .93329706,-01 .93302319,-01 .93211556,-01
.93026543,-01 .92711998,-01 .92230009,-01 .91542489,-01 .90614272,-01 .89416743,-01
.88208452,-01 .86738928,-01 .84980403,-01 .82907405,-01 .80497844,-01 .77734117,-01
.74604228,-01 .71102874,-01 .67232444,-01 .63003911,-01 .58437580,-01
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
0 .44141586, 00 .14562673, 02 .26853738, 03 .25094056, 04 .14676438, 05
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
5 .41397669, 00 .12041991, 02 .21011010, 03 .19361709, 04 .11276597, 05
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
10 .33798099, 00 .55551219, 01 .61639132, 02 .48302088, 03 .26638265, 04
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
15 .23022240, 00 -.21629082, 01 -.10892441, 03 -.11749041, 04 -.71435976, 04
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
20 .11237168, 00 -.79607559, 01 -.22410068, 03 -.22692020, 04 -.13574638, 05
25 .11237168, 00 -.79607559, 01 -.22410068, 03 -.22692020, 04 -.13574638, 05
30 .11237168, 00 -.79607559, 01 -.22410068, 03 -.22692020, 04 -.13574638, 05
35 .11237168, 00 -.79607559, 01 -.22410068, 03 -.22692020, 04 -.13574638, 05
40 .11237168, 00 -.79607559, 01 -.22410068, 03 -.22692020, 04 -.13574638, 05
45 .11237168, 00 -.79607559, 01 -.22410068, 03 -.22692020, 04 -.13574638, 05