1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-04-25 19:51:55 +00:00

Update BALGOL Library and Examples

1. Correct missing relocation pseudo-op in MONIT Library routine.
2. Rebuild Generator and Compiler tapes.
3. Recompile and generate corrected listings for example programs.
4. Add Simpson's Rule example from Algol-58 Preliminary Report.
This commit is contained in:
Paul Kimpel
2018-08-06 17:59:30 -07:00
parent 67958aa65a
commit 83a0b62faf
26 changed files with 10650 additions and 6868 deletions

View File

@@ -1,35 +1,35 @@
0200 BAC-220 STANDARD VERSION 2/1/62
0200 COMMENT FIFTH EXAMPLE PROGRAM - FROM BALGOL MANUAL, JANUARY 1961
0200 EDITION.
0200
0200 THE FOLLOWING PROGRAM FOR OPTICAL RAY-TRACING WAS WRITTEN BY
0200 R. MITCHELL$
0200
0200 COMMENT OPTICAL TRACE PROGRAM, R. F. MITCHELL, VIDYA 1$
0200 INTEGER M, J, K, JA, JB$
0200 ARRAY A(4), B(4), C(4)$
0200
0200 0 0000 11 4987 CONST
0201 0 0000 40 4996 A
0202 0 0000 11 4986 CONST
0203 0 0000 40 4998 A
0200 A(1) = -260.0$ A(3) = -600.0$ A(4) = 0.0$
0204 0 0000 46 4999 A
4980 0 5225 00 0000
@@ -38,7 +38,7 @@
4983 0 5310 00 0000
4984 0 5312 50 0000
4985 0 5315 00 0000
0205 ARRAY G(6) = (25.0, 50.0, 75.0, 100.0, 125.0, 150.0)$
0205 0 0000 10 4979 CONST
0206 0 0000 40 4988 C
@@ -46,7 +46,7 @@
0208 0 0000 40 4989 C
0209 0 0000 10 4979 CONST
0210 0 0000 40 4990 C
0205 C(1) = 1.0$ C(2) = 3.436$ C(3) = 1.0$ C(4) = -1.0$
0211 0 0000 11 4979 CONST
0212 0 0000 40 4991 C
@@ -54,7 +54,7 @@
0214 0 0000 40 4993 B
0215 0 0000 10 4979 CONST
0216 0 0000 40 4994 B
0213 B(2) = 339.75$ B(3) = 1.0$ B(4) = 0.0$
0217 0 0000 46 4995 B
4971 0 5155 00 0000
@@ -63,9 +63,9 @@
4974 0 5162 50 0000
4975 0 5167 50 0000
4976 0 5170 00 0000
0218 ARRAY B1(6) = (5.5, 5.75, 6.0, 6.25, 6.75, 7.0)$
0218
0218 0 0000 10 4970 CONST
0219 0 0000 40 4969 JB
@@ -79,14 +79,14 @@
0226 0 1111 31 0228
0227 0 0000 36
0228 0 0001 33
0218 FOR JB = (1, 1, 6)$
0229 0 0000 30
0228 0230
0227 0230
0229 BEGIN
0229 B(1) = B1(JB)$
0230 0 0000 42 4969 JB
0231 1 0000 10 4970 B1
@@ -98,7 +98,7 @@
0237 0 0002 45 0000
0238 0 0000 25 4967 TEMP
0239 0 0000 22 4979 CONST
0233 A(2) = A(1) - B1(JB)(1.0 - 1.0/C(2).C(2))$
0240 0 0000 42 4969 JB
0241 1 0000 24 4970 B1
@@ -110,7 +110,7 @@
0247 0 0000 01 0000 PARAM
0248 0 4400 28 4727
0249 1 0000 40 0000
0246 WRITE ($$ PARAM, F6)$
0250 0 0000 10 0251
0251 0 0000 01 0000 F6
@@ -149,7 +149,7 @@
0267 0281
0258 0280
0280 0 0000 30
0254 OUTPUT PARAM (FOR K = (1, 1, 4)$ (A(K), B(K), C(K)))$
0281 0 0009 43 0000
0282 0 0000 30 0255
@@ -161,7 +161,7 @@
0286 0 0006 60 0400
0287 1 0000 11 0285
0288 1 0000 00 0284
0283 FORMAT F6 (W3,11(3F20.8,W4))$
0283 0289
0289 0 0000 10 4970 CONST
@@ -176,14 +176,14 @@
0297 0 1111 31 0299
0298 0 0000 36
0299 0 0001 33
0289 FOR M = (1, 1, 6)$
0300 0 0000 30
0299 0301
0298 0301
0300 BEGIN
0300 H1 = G(M)$
0301 0 0000 42 4724 M
0302 1 0000 10 4979 G
@@ -192,7 +192,7 @@
0305 0 0000 01 0000 GVALU
0306 0 4400 28 4727
0307 1 0000 40 0000
0304 WRITE ($$ GVALU, F1)$
0308 0 0000 10 0309
0309 0 0000 01 0000 F1
@@ -201,7 +201,7 @@
0312 0 0000 30
0305 0313
0313 0 0000 30
0312 OUTPUT GVALU (H1)$
0314 0 0000 10 4723 H1
0315 0 0000 42 0315
@@ -216,12 +216,12 @@
0322 0 0006 70 2008
0323 0 0006 60 0600
0324 1 0000 00 0320
0319 FORMAT F1 (B10,*G*,X20.8,W6)$
0319 0325
0325 0 0000 46 4722 SUMD
0326 0 0000 46 4721 E
0325 SUMD = 0.0$ E = 0.0$ P = H1$
0327 0 0000 10 4723 H1
0328 0 0000 40 4720 P
@@ -237,14 +237,14 @@
0337 0 1111 31 0339
0338 0 0000 36
0339 0 0001 33
0329 FOR J = (1, 1, 3)$
0340 0 0000 30
0339 0341
0338 0341
0340 BEGIN
0340 R1 = P/A(J)$
0341 0 0000 10 4720 P
0342 0 0002 45 0000
@@ -252,20 +252,20 @@
0344 1 0000 25 4995 A
0345 0 0000 40 4717 R1
0346 0 0001 10 4717 R1
0346 IF ABS(R1) GTR 0.95$
0347 0 0000 13 4716 CONST
0348 0 1111 31 0350
0349 0 0000 36
0350 0 0001 33
0346 GO TO PRINT$
0346
0351 0 0000 30 0000 PRINT
0350 0352
0349 0352
0352 I = ARCSIN(R1)$
0352 0 0000 10 4717 R1
0353 0 0000 44 4703 ARCSI
@@ -274,32 +274,32 @@
0356 0 0000 10 4717 R1
0357 0 0000 42 4719 J
0358 1 0000 24 4987 C
0356 R2 = R1.C(J)/C(J+1)$
0359 0 0002 45 0000
0360 1 0000 25 4988 C
0361 0 0000 40 4701 R2
0362 0 0001 10 4701 R2
0362 IF ABS(R2) GTR 0.95$
0363 0 0000 13 4716 CONST
0364 0 1111 31 0366
0365 0 0000 36
0366 0 0001 33
0362 GO TO PRINT$
0362
0367 0 0000 30 0000 PRINT
0366 0368
0365 0368
0368 IP = ARCSIN(R2)$
0368 0 0000 10 4701 R2
0369 0 0000 44 4703 ARCSI
0370 0 0000 30 4703
0371 0 0000 40 4700 IP
0372 E = E + I - IP$
0372 0 0000 10 4702 I
0373 0 0000 23 4700 IP
@@ -310,7 +310,7 @@
0378 0 0000 40 4967 TEMP
0379 0 0000 10 4702 I
0380 0 0000 22 4721 E
0376 H2 =(J+1)SIN(E+I)$
0381 0 0000 44 4644 SIN
0382 0 0000 30 4644
@@ -320,45 +320,45 @@
0386 0 0000 30 4629
0387 0 0000 24 4643 TEMP
0388 0 0000 40 4628 H2
0389 R3 = SIN(E)$
0389 0 0000 10 4721 E
0390 0 0000 44 4644 SIN
0391 0 0000 30 4644
0392 0 0000 40 4627 R3
0393 COMMENT IF R3 = SIN(E)$ *APPAREN
0393 IF R3 EQL 0.0$
0393 0 0000 10 4627 R3
0394 0 0000 36 0396
0395 0 0000 30
0393 R3 = 1.0**-20$
0393
0396 0 0000 10 4626 CONST
0397 0 0000 40 4627 R3
0395 0398
0398 0 0000 10 4628 H2
0399 0 0000 23 4723 H1
0398 DL = (H2-H1)/R3$
0400 0 0002 45 0000
0401 0 0000 25 4627 R3
0402 0 0000 40 4625 DL
0403 DU = DL.C(J+1)$
0403 0 0000 10 4625 DL
0404 0 0000 42 4719 J
0405 1 0000 24 4988 C
0406 0 0000 40 4624 DU
0407 SUMD = SUMD + DU$
0407 0 0000 10 4624 DU
0408 0 0000 22 4722 SUMD
0409 0 0000 40 4722 SUMD
0410 H1 = H2$
0410 0 0000 10 4628 H2
0411 0 0000 40 4723 H1
@@ -366,7 +366,7 @@
0413 0 0000 01 0000 EDH
0414 0 4400 28 4727
0415 1 0000 40 0000
0412 WRITE ($$ EDH, F2)$
0416 0 0000 10 0417
0417 0 0000 01 0000 F2
@@ -381,7 +381,7 @@
0425 0 0000 10 4624 DU
0426 0 0000 42 0426
0427 0 0002 20 0421
0420 OUTPUT EDH(E, DU, H1)$
0428 0 0000 10 4723 H1
0429 0 0000 42 0429
@@ -402,22 +402,22 @@
0442 0 0006 70 1508
0443 0 0006 60 0400
0444 1 0000 00 0434
0433 FORMAT F2 (B5,*E*,X15.8,B10,*D*,X15.8,B10,*H*,X15.8,W4)$
0433 0445
0445 0 0000 10 4970 CONST
0446 0 1000 38 0448
0447 0 0001 45 0002
0445 IF (PCS(1))$
0448 0 0000 36
0445 BEGIN
0449 0 0000 10 0450
0450 0 0000 01 0000 ALL
0451 0 4400 28 4727
0452 1 0000 40 0000
0453 WRITE ($$ ALL, F5)$
0453 0 0000 10 0454
0454 0 0000 01 0000 F5
@@ -453,7 +453,7 @@
0483 0 0000 10 4624 DU
0484 0 0000 42 0484
0485 0 0002 20 0458
0457 OUTPUT ALL (R1, R2, I, IP, E, H2, R3, DL, DU, P)$
0486 0 0000 10 4720 P
0487 0 0000 42 0487
@@ -467,18 +467,18 @@
0493 0 0006 60 0400
0494 1 0000 02 0492
0495 1 0000 00 0492
0491 FORMAT F5 (2(5F12.5,W4))
0496 END$
0496
0491 0496
0448 0496
0496 0 0000 42 4719 J
0497 1 0000 10 4995 A
0498 0 0000 24 4701 R2
0496 P = A(J).R2 - R3(A(J+1) = A(J) + B(J))
0499 0 0000 40 4643 TEMP
0500 1 0000 10 4991 B
@@ -489,9 +489,9 @@
0505 0 0000 40 4643 TEMP
0506 0 0000 11 4643 TEMP
0507 0 0000 40 4720 P
0503 END$
0503
0340 0509
0331 0508
@@ -500,11 +500,11 @@
0510 0 0002 45 0000
0511 0 0000 25 4627 R3
0512 0 0000 22 4979 CONST
0509 L = A(3)(1.0 + R2/R3)$
0513 0 0000 24 4998 A
0514 0 0000 40 4623 L
0515 SUMD = SUMD - DU$
0515 0 0000 10 4722 SUMD
0516 0 0000 23 4624 DU
@@ -513,7 +513,7 @@
0519 0 0000 01 0000 LSUMD
0520 0 4400 28 4727
0521 1 0000 40 0000
0518 WRITE ($$ LSUMD, F3)$
0522 0 0000 10 0523
0523 0 0000 01 0000 F3
@@ -525,7 +525,7 @@
0528 0 0000 10 4623 L
0529 0 0000 42 0529
0530 0 0002 20 0527
0526 OUTPUT LSUMD (L, SUMD)$
0531 0 0000 10 4722 SUMD
0532 0 0000 42 0532
@@ -544,14 +544,14 @@
0543 0 0006 60 0600
0544 0 0006 60 0400
0545 1 0000 00 0537
0536 FORMAT F3 (B10,*L*,X20.8,B10,*SUMD*,X20.8,W6,W4)
0536 END
0536 0546
0546 END$
0546
0300 0547
0291 0546
@@ -559,12 +559,12 @@
0229 0548
0220 0547
0547 0 0000 30
0547 STOP$
0547
0548 0 0137 00 7310
0549 PRINT..
0367 0549
0351 0549
@@ -572,7 +572,7 @@
0550 0 0000 01 0000 ERROR
0551 0 4400 28 4727
0552 1 0000 40 0000
0553 WRITE ($$ ERROR, F)$
0553 0 0000 10 0554
0554 0 0000 01 0000 F
@@ -595,7 +595,7 @@
0570 1 0000 10 4988 C
0571 0 0000 42 0571
0572 0 0002 20 0558
0557 OUTPUT ERROR (R1, R2, A(J), C(J+1), P)$
0573 0 0000 10 4720 P
0574 0 0000 42 0574
@@ -617,19 +617,19 @@
0588 3 4314 00 0000
0589 0 0006 70 0906
0590 0 0004 20 0400
0578 FORMAT F (*R1*,X9.4,B4,*R2*,X9.4,B4,*A*,X9.4,B4,*C*,X9.6,B4,
0591 3 5714 00 0000
0592 0 0006 70 0904
0593 0 0006 60 0100
0594 1 0000 00 0579
0578 *P*,X9.4,W1)$
0578 0595
0595 STOP$
0595 0 0137 00 7310
0596 FINISH$
0596 0 9669 00 9669
0597 0 1000 60 0000
@@ -933,7 +933,7 @@
4588 0 0000 42 4609
4589 0 0050 29 0033
4590 0 1106 44 4610 REED
4591 0 0037 30 4610 REED
4591 0 4593 30 4610 REED
4592 0 0000 30 0036
4593 0 0000 00 0000
4594 0 0000 00 0000
@@ -1193,134 +1193,134 @@
4622 0 0000 00 0001
COMPILED PROGRAM ENDS AT 0597
PROGRAM VARIABLES BEGIN AT 4399
-.26000000, 03 .55000000, 01 .10000000, 01
-.26503413, 03 .33975000, 03 .34360000, 01
-.60000000, 03 .10000000, 01 .10000000, 01
.00000000, 00 .00000000, 00 -.10000000, 01
G 25.00000000
E -.06831474 D 1274.89130000 H -.32774976
-.96153,-01 -.27984,-01 -.96302,-01 -.27987,-01 -.68314,-01
-.32774, 00 -.68261,-01 .37103, 03 .12748, 04 .25000, 02
E -.16537255 D .29356608 H -.37607655
.39672,-01 .13631, 00 .39683,-01 .13674, 00 -.16537, 00
-.37607, 00 -.16461, 00 .29356, 00 .29356, 00 -.10096, 02
E -.65489915 D -4.52550560 H -3.13246810
-.24232, 00 .24232, 00 -.24476, 00 .24476, 00 -.65489, 00
-.31324, 01 -.60907, 00 .45255, 01 -.45255, 01 -.20658, 02
L 51.33266500 SUMD 1275.18480000
G 50.00000000
E -.13751546 D 1269.55340000 H -.65003198
-.19230, 00 -.55968,-01 -.19351, 00 -.55997,-01 -.13751, 00
-.65003, 00 -.13708, 00 .36948, 03 .12695, 04 .50000, 02
E -.33564916 D .32976416 H -.75865041
.79904,-01 .27455, 00 .79989,-01 .27812, 00 -.33564, 00
-.75865, 00 -.32938, 00 .32976, 00 .32976, 00 -.20335, 02
E -1.36039550 D -3.12936780 H -3.81900720
-.49024, 00 .49024, 00 -.51237, 00 .51237, 00 -.13603, 01
-.38190, 01 -.97794, 00 .31293, 01 -.31293, 01 -.41793, 02
L 42.51399500 SUMD 1269.88310000
G 75.00000000
E -.20856805 D 1260.51770000 H -.96093506
-.28846, 00 -.83952,-01 -.29261, 00 -.84051,-01 -.20856, 00
-.96093, 00 -.20705, 00 .36685, 03 .12605, 04 .75000, 02
E -.51685446 D .39303495 H -1.15515240
.12129, 00 .41675, 00 .12159, 00 .42987, 00 -.51685, 00
-.11551, 01 -.49414, 00 .39303, 00 .39303, 00 -.30868, 02
E -2.21304160 D 1.04110740 H -.32148266
-.75002, 00 .75002, 00 -.84809, 00 .84809, 00 -.22130, 01
-.32148, 00 -.80075, 00 -.10411, 01 .10411, 01 -.63939, 02
L 5.40105630 SUMD 1260.91070000
G 100.00000000
E -.28261909 D 1247.55250000 H -1.25355430
-.38461, 00 -.11193, 00 -.39479, 00 -.11217, 00 -.28261, 00
-.12535, 01 -.27887, 00 .36308, 03 .12475, 04 .10000, 03
E -.71812001 D .48907616 H -1.57535180
.16451, 00 .56527, 00 .16526, 00 .60076, 00 -.71812, 00
-.15753, 01 -.65797, 00 .48907, 00 .48907, 00 -.41869, 02
R1 -1.0295 R2 .5652 A 85.2500 C-1.000000 P -87.7708