mirror of
https://github.com/pkimpel/retro-220.git
synced 2026-03-02 01:40:31 +00:00
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.
481 lines
15 KiB
Plaintext
481 lines
15 KiB
Plaintext
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
|
||
|