1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-04-10 22:51:52 +00:00

1. Commit proofing corrections to BALGOL-Main transcription.

2. Commit initial sample BALGOL programs from BAC-220 manual.
3. Modify BAC-Assembler to allow independent selection of listings from pass 1 and pass 2.
This commit is contained in:
Paul Kimpel
2017-03-05 09:21:56 -08:00
parent a47ea448e2
commit af47e574af
11 changed files with 1746 additions and 86 deletions

View File

@@ -0,0 +1,216 @@
?COMPILE EXAMPLE/BALGOL1 ALGOL GO 00000100170222PK
?DATA CARD 00000200
$CARD LIST SINGLE 00000300
BEGIN 00001000
COMMENT 00001100
BAC-EXAMPLE-1 CONVERTED FROM BALGOL TO BURROUGHS B5500 EXTENDED ALGOL.00001200
2017-02-13 P.KIMPEL 00001300
; 00001400
00010000
FILE IN INPUT (1,10); 00010100
FILE OUT OUTPUT 17 (2,15); 00010200
00011000170222PK
DEFINE 00011100170222PK
DEGREE1 = 0.017453293 #, % PI/180 = 1 DEGREE 00011200170222PK
DEGREE2 = 0.034906585 #, % PI/90 = 2 DEGREES 00011300170222PK
DEGREE5 = 0.087266463 #, % PI/36 = 5 DEGREES 00011400170222PK
DEGREE34 = 0.59341195 #, % 34PI/180 = 34 DEGREES 00011500170222PK
DEGREE45 = 0.78539816 #; % PI/4 = 45 DEGREES 00011600170222PK
00020000
REAL 00050000
AVT, 00050100
CONST, 00050200
SUM; 00050300
LABEL 00080000
FINISH, 00080100
RDIM, 00080200
START; 00080300
00200000
COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963. 00200100170222PK
J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING 00200200
PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES, 00200300
USING ORTHONORMAL FUNCTIONS; 00200400
00200500
COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS 00200600
AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A 00200700
HARMONIC BOUNDARY-VALUE PROBLEM; 00200800
00200900
COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS; 00201000
00201100
INTEGER I, J, K, L, M, N, NU, TH; 00201200
ARRAY R[1:29], HFN[1:29], DSUM[1:24], HFCN[1:5], HFCEN[1:6], 00201300
FA[1:25,1:25], A[1:25,1:25], B[1:25,1:25], HA[1:47], HAA[1:24]; 00201400
LIST DATA (FOR I~1 STEP 1 UNTIL 29 DO R[I]), DIMEN(N); 00201500
LIST FRESULTS (FOR I~1 STEP 1 UNTIL N DO 00201600
FOR J~1 STEP 1 UNTIL N DO FA[I,J]), 00201700
ARESULTS (FOR I~1 STEP 1 UNTIL N DO 00201800
FOR J~1 STEP 1 UNTIL N DO A[I,J]), 00201900
BRESULTS (FOR I~1 STEP 1 UNTIL N DO 00202000
FOR J~1 STEP 1 UNTIL N DO B[I,J]), 00202100
COEFFS (FOR NU~4 STEP 4 UNTIL N-1 DO HA[2|NU-1]), 00202200
HFNRES (FOR K~1 STEP 1 UNTIL 29 DO HFN[K]), 00202300
CRES(CONST), HFCNRES (TH, FOR K~1 STEP 1 UNTIL 5 DO HFCN[K]), 00202400
HFCENRES(TH, FOR K~1 STEP 1 UNTIL 6 DO HFCEN[K]); 00202500
FORMAT VECTOR (X8,6F16.8), 00202600170222PK
FTITLE (/,X48,"FRESULTS,FA[I,J]"), 00202700
BTITLE (/,X48,"BRESULTS,B[I,J]"), 00202800170222PK
ATITLE (/,X48,"ARESULTS,A[I,J]"), 00202900
COEFTITLE (/,X30,"HA[8NU-1]"), 00203000
BDYVALUES (/,X42,"PRELIMINARY BOUNDARY VALUES"), 00203100
CBDYVALUES (/,X43,"CORRECTED BOUNDARY VALUES"), 00203200
CONTITLE (/,X50,"CONSTANT"), 00203300
TABLE (X8,I2,X6,6F16.8), 00203400
TABLEHEAD (/,X40, "THE VALUES OF H(RHO,TH) IN B"), 00203500
TABLELINE (X13,"RHO",X6,"0.5",X13,"1.0",X13,"1.5",X13, 00203600
"2.0",X13,"2.5",X13,"3.0"), 00203700
TABLETH (X8,"TH"); 00203800
START: 00800100
READ (INPUT, /, DATA); 00800200
WRITE (OUTPUT, <"INPUT DATA:",/,6(5F16.4,/)>, DATA); 00800250
RDIM: 00800300
READ (INPUT, /, DIMEN) [FINISH]; 00800400
WRITE (OUTPUT, <"NUMBER OF DIMENSIONS:",I3>, DIMEN); 00800450
FOR I~1 STEP 1 UNTIL N DO 00800500
FOR J~I STEP 4 UNTIL N DO 00800600170222PK
BEGIN 00800700
L ~ I-J; K ~ I+J; 00800800
SUM ~ R[1]*K + 1.5|R[18]*K|COS(DEGREE34|L) 00800900170222PK
+ 0.5|R[29]*K|COS(DEGREE45|L); 00801000170222PK
FOR M~2 STEP 1 UNTIL 17 DO 00801100
SUM ~ SUM + 2.0|R[M]*K|COS((M-1)|DEGREE2|L); 00801200170222PK
FOR M~19 STEP 1 UNTIL 28 DO 00801300
SUM ~ SUM + R[M]*K|COS((DEGREE34 + (M-18)|DEGREE1)|L); 00801400170222PK
FA[I,J] ~ (8.0/K)|DEGREE1|SUM 00801500170222PK
END; 00801600
WRITE (OUTPUT[DBL]); 00801700170222PK
WRITE (OUTPUT, FTITLE); 00801800
WRITE (OUTPUT, VECTOR, FRESULTS); 00801900
FOR J~1 STEP 1 UNTIL N DO 00802000
B[1,J] ~ FA[1,J]; 00802100170222PK
FOR I~2 STEP 1 UNTIL N DO 00802200
BEGIN 00802300
FOR J~1 STEP 1 UNTIL I-1 DO 00802400
B[I,J] ~ -B[J,I]/B[J,J]; 00802500
FOR J~I STEP 1 UNTIL N DO 00802600
BEGIN 00802700
B[I,J] ~ FA[I,J]; 00802800
FOR K~1 STEP 1 UNTIL I-1 DO 00802900
B[I,J] ~ B[I,J] + B[I,K]|B[K,J] 00803000
END; 00803100
FOR J~1 STEP 1 UNTIL I-1 DO 00803200
B[I,J] ~ B[I,J]|SQRT(B[J,J]/B[I,I]) 00803300
END; 00803400
FOR I~1 STEP 1 UNTIL N DO 00803500
B[I,I] ~ 1.0/(SQRT(B[I,I])|I); 00803600
WRITE (OUTPUT, BTITLE); 00803700
WRITE (OUTPUT, VECTOR, BRESULTS); 00803800
FOR I~1 STEP 1 UNTIL N DO 00803900
FOR J~1 STEP 1 UNTIL N DO 00804000
A[I,J] ~ 0; 00804100
A[1,1] ~ B[1,1]; 00804200
FOR I~2 STEP 1 UNTIL N DO 00804300
BEGIN 00804400
FOR J~1 STEP 1 UNTIL I-1 DO 00804500
BEGIN 00804600
A[I,J] ~ 0; 00804700
FOR K~J STEP 1 UNTIL I-1 DO 00804800
A[I,J] ~ A[I,J] + B[I,K]|A[K,J] 00804900
END; 00805000
A[I,I] ~ B[I,I] 00805100
END; 00805200
WRITE (OUTPUT[DBL]); 00805300170222PK
WRITE (OUTPUT, ATITLE); 00805400
WRITE (OUTPUT, VECTOR, ARESULTS); 00805500
00805600
COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION; 00805700
00805800
FOR J~4 STEP 4 UNTIL N-1 DO 00805900
BEGIN 00806000
DSUM[J] ~ 0; 00806100
FOR M~1 STEP 1 UNTIL 17 DO 00806200
DSUM[J] ~ DSUM[J] + (R[M]*2 + R[M+1]*2)| 00806300
(R[M+1]*J|SIN(M|DEGREE2|J) 00806400170222PK
- R[M]*J|SIN((M-1)|DEGREE2|J)); 00806500170222PK
FOR M~18 STEP 1 UNTIL 28 DO 00806600
DSUM[J] ~ DSUM[J] + (R[M]*2 + R[M+1]*2|(R[M+1]*J| 00806700
SIN((DEGREE34 + (M-17)|DEGREE1)|J) 00806800170222PK
- R[M]*J|SIN((DEGREE34 00806900170222PK
+ (M-18)|DEGREE1)|J))) 00807000170222PK
END; 00807100
FOR NU~4 STEP 4 UNTIL N-1 DO 00807200
BEGIN 00807300
HA[2|NU-1] ~ 0; 00807400
FOR J~4 STEP 4 UNTIL NU DO 00807500
HA[2|NU-1] ~ HA[2|NU-1] + A[NU,J]|DSUM[J]; 00807600
HA[2|NU-1] ~ 4.0|HA[2|NU-1] 00807700
END; 00807800
WRITE (OUTPUT, COEFTITLE); 00807900
WRITE (OUTPUT, VECTOR, COEFFS); 00808000
FOR J~4 STEP 4 UNTIL N-1 DO 00808100
BEGIN 00808200
HAA[J] ~ 0; 00808300
FOR NU~J STEP 4 UNTIL N-1 DO 00808400
HAA[J] ~ HAA[J] + HA[2|NU-1]|A[NU,J] 00808500
END; 00808600
FOR M~1 STEP 1 UNTIL 18 DO 00808700
BEGIN 00808800
HFN[M] ~ 0; 00808900
FOR J~4 STEP 4 UNTIL N-1 DO 00809000
HFN[M] ~ HFN[M] + HAA[J]|R[M]*J|COS((M-1)|DEGREE2|J) 00809100170222PK
END; 00809200
FOR M~19 STEP 1 UNTIL 29 DO 00809300
BEGIN 00809400
HFN[M] ~ 0; 00809500
FOR J~4 STEP 4 UNTIL N-1 DO 00809600
HFN[M] ~ HFN[M] + HAA[J]|R[M]*J| 00809700
COS((DEGREE34 + (M-18)|DEGREE1)|J) 00809800170222PK
END; 00809900
WRITE (OUTPUT[DBL]); 00810000170222PK
WRITE (OUTPUT, BDYVALUES); 00810100
WRITE (OUTPUT, VECTOR, HFNRES); 00810200
AVT ~ 0; 00810300
FOR M~1 STEP 1 UNTIL 29 DO 00810400
AVT ~ AVT + R[M]*2 - HFN[M]; 00810500
CONST ~ AVT/29.0; 00810600
WRITE (OUTPUT, CONTITLE); 00810700
WRITE (OUTPUT, VECTOR, CRES); 00810800
FOR M~1 STEP 1 UNTIL 29 DO 00810900
HFN[M] ~ CONST + HFN[M]; 00811000
WRITE (OUTPUT, CBDYVALUES); 00811100
WRITE (OUTPUT, VECTOR, HFNRES); 00811200
FOR I~1 STEP 1 UNTIL 5 DO 00811300
BEGIN 00811400
TH ~ 5|(I-1); 00811500
FOR J~1 STEP 1 UNTIL 5 DO 00811600
BEGIN 00811700
HFCN[J] ~ CONST; 00811800
FOR M~4 STEP 4 UNTIL N-1 DO 00811900
HFCN[J] ~ HFCN[J] + HAA[M]|(0.5|J)*M|COS((I-1)|DEGREE5|M) 00812000170222PK
END; 00812100
WRITE (OUTPUT[DBL]); 00812200170222PK
WRITE (OUTPUT, TABLEHEAD); 00812300
WRITE (OUTPUT, TABLELINE); 00812400
WRITE (OUTPUT, TABLETH); 00812500
WRITE (OUTPUT, TABLE, HFCNRES) 00812600
END; 00812700
FOR I~6 STEP 1 UNTIL 10 DO 00812800
BEGIN 00812900
TH ~ 5|(I-1); 00813000
FOR J~1 STEP 1 UNTIL 6 DO 00813100
BEGIN 00813200
HFCEN[J] ~ CONST; 00813300
FOR M~4 STEP 4 UNTIL N-1 DO 00813400
HFCEN[J] ~ HFCEN[J] + HAA[M]|(0.5|J)*M| 00813500170222PK
COS((I-1)|DEGREE5|M) 00813550170222PK
END; 00813600
WRITE (OUTPUT, TABLE, HFCNRES) 00813700
END; 00813800
GO TO RDIM; 00813900
00899000
FINISH: 00899100
END. 00899800
?DATA INPUT 00900000
.1, .2, .3, .4, .5, .6, .7, .8, .9, .10, .11, .12, .13, .14, .15, / 00900100
.16, .17, .18, .19, .20, .21, .22, .23, .24, .25, .26, .27, .28, .29, / 00900200
10, / NUMBER OF DIMENSIONS <= 25 00900300
?END 00999900

View File

@@ -0,0 +1,397 @@
LABEL 000000000LINE 00187053?COMPILE EXAMPLE/BALGOL1 ALGOL GO ALGOL /EXAMPLE
BURROUGHS B-5700 ALGOL COMPILER MARK XIII.0 SUNDAY, 02/22/87, 9:56 AM.
BEGIN 00001000 0000
START OF SEGMENT ********** 2
COMMENT 00001100 0000
BAC-EXAMPLE-1 CONVERTED FROM BALGOL TO BURROUGHS B5500 EXTENDED ALGOL. 00001200 0000
2017-02-13 P.KIMPEL 00001300 0000
; 00001400 0000
00010000 0000
FILE IN INPUT (1,10); 00010100 0000
FILE OUT OUTPUT 17 (2,15); 00010200 0003
00011000 0007
DEFINE 00011100 0007
DEGREE1 = 0.017453293 #, % PI/180 = 1 DEGREE 00011200 0007
DEGREE2 = 0.034906585 #, % PI/90 = 2 DEGREES 00011300 0007
DEGREE5 = 0.087266463 #, % PI/36 = 5 DEGREES 00011400 0007
DEGREE34 = 0.59341195 #, % 34PI/180 = 34 DEGREES 00011500 0007
DEGREE45 = 0.78539816 #; % PI/4 = 45 DEGREES 00011600 0007
00020000 0007
REAL 00050000 0007
AVT, 00050100 0007
CONST, 00050200 0007
SUM; 00050300 0007
LABEL 00080000 0007
FINISH, 00080100 0007
RDIM, 00080200 0007
START; 00080300 0007
00200000 0007
COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963. 00200100 0007
J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING 00200200 0007
PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES, 00200300 0007
USING ORTHONORMAL FUNCTIONS; 00200400 0007
00200500 0007
COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS 00200600 0007
AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A 00200700 0007
HARMONIC BOUNDARY-VALUE PROBLEM; 00200800 0007
00200900 0007
COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS; 00201000 0007
00201100 0007
INTEGER I, J, K, L, M, N, NU, TH; 00201200 0007
ARRAY R[1:29], HFN[1:29], DSUM[1:24], HFCN[1:5], HFCEN[1:6], 00201300 0007
FA[1:25,1:25], A[1:25,1:25], B[1:25,1:25], HA[1:47], HAA[1:24]; 00201400 0016
LIST DATA (FOR I←1 STEP 1 UNTIL 29 DO R[I]), DIMEN(N); 00201500 0025
LIST FRESULTS (FOR I←1 STEP 1 UNTIL N DO 00201600 0040
FOR J←1 STEP 1 UNTIL N DO FA[I,J]), 00201700 0043
ARESULTS (FOR I←1 STEP 1 UNTIL N DO 00201800 0054
FOR J←1 STEP 1 UNTIL N DO A[I,J]), 00201900 0057
BRESULTS (FOR I←1 STEP 1 UNTIL N DO 00202000 0068
FOR J←1 STEP 1 UNTIL N DO B[I,J]), 00202100 0071
COEFFS (FOR NU←4 STEP 4 UNTIL N-1 DO HA[2×NU-1]), 00202200 0082
HFNRES (FOR K←1 STEP 1 UNTIL 29 DO HFN[K]), 00202300 0094
CRES(CONST), HFCNRES (TH, FOR K←1 STEP 1 UNTIL 5 DO HFCN[K]), 00202400 0104
HFCENRES(TH, FOR K←1 STEP 1 UNTIL 6 DO HFCEN[K]); 00202500 0120
FORMAT VECTOR (X8,6F16.8), 00202600 0131
START OF SEGMENT ********** 3
FTITLE (/,X48,"FRESULTS,FA[I,J]"), 00202700 0131
BTITLE (/,X48,"BRESULTS,B[I,J]"), 00202800 0131
ATITLE (/,X48,"ARESULTS,A[I,J]"), 00202900 0131
COEFTITLE (/,X30,"HA[8NU-1]"), 00203000 0131
BDYVALUES (/,X42,"PRELIMINARY BOUNDARY VALUES"), 00203100 0131
CBDYVALUES (/,X43,"CORRECTED BOUNDARY VALUES"), 00203200 0131
CONTITLE (/,X50,"CONSTANT"), 00203300 0131
TABLE (X8,I2,X6,6F16.8), 00203400 0131
TABLEHEAD (/,X40, "THE VALUES OF H(RHO,TH) IN B"), 00203500 0131
TABLELINE (X13,"RHO",X6,"0.5",X13,"1.0",X13,"1.5",X13, 00203600 0131
"2.0",X13,"2.5",X13,"3.0"), 00203700 0131
TABLETH (X8,"TH"); 00203800 0131
3 IS 102 LONG, NEXT SEG 2
START: 00800100 0131
READ (INPUT, /, DATA); 00800200 0132
WRITE (OUTPUT, <"INPUT DATA:",/,6(5F16.4,/)>, DATA); 00800250 0135
4 IS 10 LONG, NEXT SEG 2
RDIM: 00800300 0138
READ (INPUT, /, DIMEN) [FINISH]; 00800400 0139
WRITE (OUTPUT, <"NUMBER OF DIMENSIONS:",I3>, DIMEN); 00800450 0143
5 IS 8 LONG, NEXT SEG 2
FOR I←1 STEP 1 UNTIL N DO 00800500 0146
FOR J←I STEP 4 UNTIL N DO 00800600 0148
BEGIN 00800700 0149
L ← I-J; K ← I+J; 00800800 0149
SUM ← R[1]*K + 1.5×R[18]*K×COS(DEGREE34×L) 00800900 0151
+ 0.5×R[29]*K×COS(DEGREE45×L); 00801000 0158
FOR M←2 STEP 1 UNTIL 17 DO 00801100 0165
SUM ← SUM + 2.0×R[M]*K×COS((M-1)×DEGREE2×L); 00801200 0171
FOR M←19 STEP 1 UNTIL 28 DO 00801300 0180
SUM ← SUM + R[M]*K×COS((DEGREE34 + (M-18)×DEGREE1)×L); 00801400 0183
FA[I,J] ← (8.0/K)×DEGREE1×SUM 00801500 0192
END; 00801600 0195
WRITE (OUTPUT[DBL]); 00801700 0201
WRITE (OUTPUT, FTITLE); 00801800 0205
WRITE (OUTPUT, VECTOR, FRESULTS); 00801900 0208
FOR J←1 STEP 1 UNTIL N DO 00802000 0211
B[1,J] ← FA[1,J]; 00802100 0216
FOR I←2 STEP 1 UNTIL N DO 00802200 0223
BEGIN 00802300 0224
FOR J←1 STEP 1 UNTIL I-1 DO 00802400 0224
B[I,J] ← -B[J,I]/B[J,J]; 00802500 0228
FOR J←I STEP 1 UNTIL N DO 00802600 0236
BEGIN 00802700 0238
B[I,J] ← FA[I,J]; 00802800 0238
FOR K←1 STEP 1 UNTIL I-1 DO 00802900 0243
B[I,J] ← B[I,J] + B[I,K]×B[K,J] 00803000 0247
END; 00803100 0256
FOR J←1 STEP 1 UNTIL I-1 DO 00803200 0260
B[I,J] ← B[I,J]×SQRT(B[J,J]/B[I,I]) 00803300 0264
END; 00803400 0273
FOR I←1 STEP 1 UNTIL N DO 00803500 0278
B[I,I] ← 1.0/(SQRT(B[I,I])×I); 00803600 0279
WRITE (OUTPUT, BTITLE); 00803700 0287
WRITE (OUTPUT, VECTOR, BRESULTS); 00803800 0290
FOR I←1 STEP 1 UNTIL N DO 00803900 0294
FOR J←1 STEP 1 UNTIL N DO 00804000 0296
A[I,J] ← 0; 00804100 0297
A[1,1] ← B[1,1]; 00804200 0304
FOR I←2 STEP 1 UNTIL N DO 00804300 0309
BEGIN 00804400 0311
FOR J←1 STEP 1 UNTIL I-1 DO 00804500 0311
BEGIN 00804600 0315
A[I,J] ← 0; 00804700 0315
FOR K←J STEP 1 UNTIL I-1 DO 00804800 0318
A[I,J] ← A[I,J] + B[I,K]×A[K,J] 00804900 0323
END; 00805000 0331
A[I,I] ← B[I,I] 00805100 0334
END; 00805200 0338
WRITE (OUTPUT[DBL]); 00805300 0341
WRITE (OUTPUT, ATITLE); 00805400 0345
WRITE (OUTPUT, VECTOR, ARESULTS); 00805500 0348
00805600 0351
COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION; 00805700 0351
00805800 0351
FOR J←4 STEP 4 UNTIL N-1 DO 00805900 0351
BEGIN 00806000 0356
DSUM[J] ← 0; 00806100 0356
FOR M←1 STEP 1 UNTIL 17 DO 00806200 0357
DSUM[J] ← DSUM[J] + (R[M]*2 + R[M+1]*2)× 00806300 0359
(R[M+1]*J×SIN(M×DEGREE2×J) 00806400 0364
- R[M]*J×SIN((M-1)×DEGREE2×J)); 00806500 0369
FOR M←18 STEP 1 UNTIL 28 DO 00806600 0379
DSUM[J] ← DSUM[J] + (R[M]*2 + R[M+1]*2×(R[M+1]*J× 00806700 0381
SIN((DEGREE34 + (M-17)×DEGREE1)×J) 00806800 0390
- R[M]*J×SIN((DEGREE34 00806900 0392
+ (M-18)×DEGREE1)×J))) 00807000 0396
END; 00807100 0399
FOR NU←4 STEP 4 UNTIL N-1 DO 00807200 0406
BEGIN 00807300 0410
HA[2×NU-1] ← 0; 00807400 0410
FOR J←4 STEP 4 UNTIL NU DO 00807500 0413
HA[2×NU-1] ← HA[2×NU-1] + A[NU,J]×DSUM[J]; 00807600 0414
HA[2×NU-1] ← 4.0×HA[2×NU-1] 00807700 0424
END; 00807800 0428
WRITE (OUTPUT, COEFTITLE); 00807900 0431
WRITE (OUTPUT, VECTOR, COEFFS); 00808000 0434
FOR J←4 STEP 4 UNTIL N-1 DO 00808100 0437
BEGIN 00808200 0441
HAA[J] ← 0; 00808300 0441
FOR NU←J STEP 4 UNTIL N-1 DO 00808400 0443
HAA[J] ← HAA[J] + HA[2×NU-1]×A[NU,J] 00808500 0448
END; 00808600 0454
FOR M←1 STEP 1 UNTIL 18 DO 00808700 0456
BEGIN 00808800 0457
HFN[M] ← 0; 00808900 0457
FOR J←4 STEP 4 UNTIL N-1 DO 00809000 0458
HFN[M] ← HFN[M] + HAA[J]×R[M]*J×COS((M-1)×DEGREE2×J) 00809100 0463
END; 00809200 0471
FOR M←19 STEP 1 UNTIL 29 DO 00809300 0477
BEGIN 00809400 0478
HFN[M] ← 0; 00809500 0478
FOR J←4 STEP 4 UNTIL N-1 DO 00809600 0479
HFN[M] ← HFN[M] + HAA[J]×R[M]*J× 00809700 0484
COS((DEGREE34 + (M-18)×DEGREE1)×J) 00809800 0490
END; 00809900 0492
WRITE (OUTPUT[DBL]); 00810000 0499
WRITE (OUTPUT, BDYVALUES); 00810100 0503
WRITE (OUTPUT, VECTOR, HFNRES); 00810200 0506
AVT ← 0; 00810300 0509
FOR M←1 STEP 1 UNTIL 29 DO 00810400 0510
AVT ← AVT + R[M]*2 - HFN[M]; 00810500 0511
CONST ← AVT/29.0; 00810600 0517
WRITE (OUTPUT, CONTITLE); 00810700 0518
WRITE (OUTPUT, VECTOR, CRES); 00810800 0521
FOR M←1 STEP 1 UNTIL 29 DO 00810900 0524
HFN[M] ← CONST + HFN[M]; 00811000 0527
WRITE (OUTPUT, CBDYVALUES); 00811100 0532
WRITE (OUTPUT, VECTOR, HFNRES); 00811200 0535
FOR I←1 STEP 1 UNTIL 5 DO 00811300 0538
BEGIN 00811400 0540
TH ← 5×(I-1); 00811500 0540
FOR J←1 STEP 1 UNTIL 5 DO 00811600 0541
BEGIN 00811700 0543
HFCN[J] ← CONST; 00811800 0543
FOR M←4 STEP 4 UNTIL N-1 DO 00811900 0544
HFCN[J] ← HFCN[J] + HAA[M]×(0.5×J)*M×COS((I-1)×DEGREE5×M) 00812000 0549
END; 00812100 0556
WRITE (OUTPUT[DBL]); 00812200 0563
WRITE (OUTPUT, TABLEHEAD); 00812300 0567
WRITE (OUTPUT, TABLELINE); 00812400 0570
WRITE (OUTPUT, TABLETH); 00812500 0573
WRITE (OUTPUT, TABLE, HFCNRES) 00812600 0576
END; 00812700 0579
FOR I←6 STEP 1 UNTIL 10 DO 00812800 0581
BEGIN 00812900 0583
TH ← 5×(I-1); 00813000 0583
FOR J←1 STEP 1 UNTIL 6 DO 00813100 0584
BEGIN 00813200 0586
HFCEN[J] ← CONST; 00813300 0586
FOR M←4 STEP 4 UNTIL N-1 DO 00813400 0587
HFCEN[J] ← HFCEN[J] + HAA[M]×(0.5×J)*M× 00813500 0592
COS((I-1)×DEGREE5×M) 00813550 0598
END; 00813600 0599
WRITE (OUTPUT, TABLE, HFCNRES) 00813700 0606
END; 00813800 0609
GO TO RDIM; 00813900 0611
00899000 0612
FINISH: 00899100 0612
END. 00899800 0613
2 IS 616 LONG, NEXT SEG 1
PRT(101) = COS INTRINSIC, SEGMENT NUMBER = 6.
PRT(77) = EXP INTRINSIC, SEGMENT NUMBER = 7.
PRT(76) = LN INTRINSIC, SEGMENT NUMBER = 8.
PRT(103) = SIN INTRINSIC, SEGMENT NUMBER = 9.
PRT(102) = SQRT INTRINSIC, SEGMENT NUMBER = 10.
PRT(72) = OUTPUT(W) INTRINSIC, SEGMENT NUMBER = 11.
PRT(5) = BLOCK CONTROL INTRINSIC, SEGMENT NUMBER = 12.
PRT(70) = INPUT(W) INTRINSIC, SEGMENT NUMBER = 13.
PRT(100) = X TO THE I INTRINSIC, SEGMENT NUMBER = 14.
PRT(74) = GO TO SOLVER INTRINSIC, SEGMENT NUMBER = 15.
PRT(14) = ALGOL WRITE INTRINSIC, SEGMENT NUMBER = 16.
PRT(15) = ALGOL READ INTRINSIC, SEGMENT NUMBER = 17.
PRT(16) = ALGOL SELECT INTRINSIC, SEGMENT NUMBER = 18.
1 IS 2 LONG, NEXT SEG 0
19 IS 69 LONG, NEXT SEG 0
NUMBER OF ERRORS DETECTED = 0. COMPILATION TIME = 14 SECONDS.
PRT SIZE = 68; TOTAL SEGMENT SIZE = 807 WORDS; DISK SIZE = 37 SEGS; NO. PGM. SEGS = 19
ESTIMATED CORE STORAGE REQUIRED = 6526 WORDS.
ESTIMATED AUXILIARY MEMORY REQUIRED = 0 WORDS.
LABEL 000000000LINE 00187053?COMPILE EXAMPLE/BALGOL1 ALGOL GO ALGOL /EXAMPLE
LABEL 000000000OUTPUT 00187053?COMPILE EXAMPLE/BALGOL1 ALGOL GO EXAMPLE/BALGOL1
INPUT DATA:
0.1000 0.2000 0.3000 0.4000 0.5000
0.6000 0.7000 0.8000 0.9000 0.1000
0.1100 0.1200 0.1300 0.1400 0.1500
0.1600 0.1700 0.1800 0.1900 0.2000
0.2100 0.2200 0.2300 0.2400 0.2500
0.2600 0.2700 0.2800 0.2900
NUMBER OF DIMENSIONS: 10
FRESULTS,FA[I,J]
0.46363975 0.00000000 0.00000000 0.00000000 0.02376409 0.00000000
0.00000000 0.00000000 -0.00715683 0.00000000 0.00000000 0.10859772
0.00000000 0.00000000 0.00000000 0.01179355 0.00000000 0.00000000
0.00000000 -0.00466756 0.00000000 0.00000000 0.04559661 0.00000000
0.00000000 0.00000000 0.00662809 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.02364557 0.00000000 0.00000000
0.00000000 0.00403492 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.01372359 0.00000000 0.00000000 0.00000000
0.00259449 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00855046 0.00000000 0.00000000 0.00000000 0.00173528
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00559259 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00378860
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00263495 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00187017
BRESULTS,B[I,J]
1.46862078 0.00000000 0.00000000 0.00000000 0.02376409 0.00000000
0.00000000 0.00000000 -0.00715683 0.00000000 0.00000000 1.51725873
0.00000000 0.00000000 0.00000000 0.01179355 0.00000000 0.00000000
0.00000000 -0.00466756 0.00000000 0.00000000 1.56103436 0.00000000
0.00000000 0.00000000 0.00662809 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 1.62579256 0.00000000 0.00000000
0.00000000 0.00403492 0.00000000 0.00000000 -0.31208978 0.00000000
0.00000000 0.00000000 1.78845750 0.00000000 0.00000000 0.00000000
0.00296132 0.00000000 0.00000000 -0.41973584 0.00000000 0.00000000
0.00000000 1.95474707 0.00000000 0.00000000 0.00000000 0.00224217
0.00000000 0.00000000 -0.45621891 0.00000000 0.00000000 0.00000000
2.09968015 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 -0.47127520 0.00000000 0.00000000 0.00000000 2.24504077
0.00000000 0.00000000 0.24615534 0.00000000 0.00000000 0.00000000
-0.62017166 0.00000000 0.00000000 0.00000000 2.60217293 0.00000000
0.00000000 0.45290397 0.00000000 0.00000000 0.00000000 -0.84088528
0.00000000 0.00000000 0.00000000 3.19761985
ARESULTS,A[I,J]
1.46862078 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 1.51725873
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 1.56103436 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 1.62579256 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 -0.45834154 0.00000000
0.00000000 0.00000000 1.78845750 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 -0.63684787 0.00000000 0.00000000
0.00000000 1.95474707 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 -0.71217339 0.00000000 0.00000000 0.00000000
2.09968015 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 -0.76619571 0.00000000 0.00000000 0.00000000 2.24504077
0.00000000 0.00000000 0.64575929 0.00000000 0.00000000 0.00000000
-1.10915066 0.00000000 0.00000000 0.00000000 2.60217293 0.00000000
0.00000000 1.22268850 0.00000000 0.00000000 0.00000000 -1.64371805
0.00000000 0.00000000 0.00000000 3.19761985
HA[8NU-1]
5.05459676 4.22746744
PRELIMINARY BOUNDARY VALUES
0.00049796 0.00791169 0.03929300 0.12059664 0.28013585 0.52195921
0.74267215 0.54385348 -1.08334289 0.00015377 0.00012639 0.00003562
-0.00014939 -0.00046394 -0.00094592 -0.00163344 -0.00256166 -0.00375919
-0.00496748 -0.00643700 -0.00819553 -0.01026852 -0.01267808 -0.01544181
-0.01857169 -0.02207304 -0.02594347 -0.03017200 -0.03473833
CONSTANT
0.09317613
CORRECTED BOUNDARY VALUES
0.09367409 0.10108781 0.13246913 0.21377277 0.37331197 0.61513533
0.83584828 0.63702960 -0.99016676 0.09332990 0.09330251 0.09321175
0.09302673 0.09271219 0.09223020 0.09154268 0.09061446 0.08941694
0.08820865 0.08673912 0.08498060 0.08290760 0.08049804 0.07773432
0.07460443 0.07110308 0.06723265 0.06300412 0.05843780
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
0 0.44141586 14.56267126 268.53739949 2509.40591810 14676.43961760
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
5 0.41397667 12.04198740 210.11008942 1936.17081241 11276.59767970
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
10 0.33798098 5.55511615 61.63905157 483.02016362 2663.82243904
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
15 0.23022241 -2.16291315 -108.92447960 -1174.90468123 -7143.60132270
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
20 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010920
25 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010920
30 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010920
35 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010920
40 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010920
45 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010920
LABEL 000000000OUTPUT 00187053?COMPILE EXAMPLE/BALGOL1 ALGOL GO EXAMPLE/BALGOL1

View File

@@ -0,0 +1,209 @@
$ SET LINEINFO 00000100170222PK
BEGIN 00001000
COMMENT 00001100
BAC-EXAMPLE-1 CONVERTED FROM BALGOL TO BURROUGHS B5500 EXTENDED ALGOL.00001200
2017-02-13 P.KIMPEL 00001300
; 00001400
00010000
FILE INPUT (KIND=READER, MAXRECSIZE=80, FRAMESIZE=8); 00010100170222PK
FILE OUTPUT (KIND=PRINTER, MAXRECSIZE=120, FRAMESIZE=8); 00010200170222PK
00011000170222PK
DEFINE 00011100170222PK
DEGREE1 = 0.017453293 #, % PI/180 = 1 DEGREE 00011200170222PK
DEGREE2 = 0.034906585 #, % PI/90 = 2 DEGREES 00011300170222PK
DEGREE5 = 0.087266463 #, % PI/36 = 5 DEGREES 00011400170222PK
DEGREE34 = 0.59341195 #, % 34PI/180 = 34 DEGREES 00011500170222PK
DEGREE45 = 0.78539816 #; % PI/4 = 45 DEGREES 00011600170222PK
00020000
REAL 00050000
AVT, 00050100
CONST, 00050200
SUM; 00050300
LABEL 00080000
FINISH, 00080100
RDIM, 00080200
START; 00080300
00200000
COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963. 00200100170222PK
J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING 00200200
PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES, 00200300
USING ORTHONORMAL FUNCTIONS; 00200400
00200500
COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS 00200600
AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A 00200700
HARMONIC BOUNDARY-VALUE PROBLEM; 00200800
00200900
COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS; 00201000
00201100
INTEGER I, J, K, L, M, N, NU, TH; 00201200
ARRAY R[1:29], HFN[1:29], DSUM[1:24], HFCN[1:5], HFCEN[1:6], 00201300
FA[1:25,1:25], A[1:25,1:25], B[1:25,1:25], HA[1:47], HAA[1:24]; 00201400
LIST DATA (FOR I:=1 STEP 1 UNTIL 29 DO R[I]), DIMEN(N); 00201500170222PK
LIST FRESULTS (FOR I:=1 STEP 1 UNTIL N DO 00201600170222PK
FOR J:=1 STEP 1 UNTIL N DO FA[I,J]), 00201700170222PK
ARESULTS (FOR I:=1 STEP 1 UNTIL N DO 00201800170222PK
FOR J:=1 STEP 1 UNTIL N DO A[I,J]), 00201900170222PK
BRESULTS (FOR I:=1 STEP 1 UNTIL N DO 00202000170222PK
FOR J:=1 STEP 1 UNTIL N DO B[I,J]), 00202100170222PK
COEFFS (FOR NU:=4 STEP 4 UNTIL N-1 DO HA[2*NU-1]), 00202200170222PK
HFNRES (FOR K:=1 STEP 1 UNTIL 29 DO HFN[K]), 00202300170222PK
CRES(CONST), HFCNRES (TH, FOR K:=1 STEP 1 UNTIL 5 DO HFCN[K]), 00202400170222PK
HFCENRES(TH, FOR K:=1 STEP 1 UNTIL 6 DO HFCEN[K]); 00202500170222PK
FORMAT VECTOR (X8,6F16.8), 00202600170222PK
FTITLE (/,X48,"FRESULTS,FA[I,J]"), 00202700
BTITLE (/,X48,"BRESULTS,B[I,J]"), 00202800170222PK
ATITLE (/,X48,"ARESULTS,A[I,J]"), 00202900
COEFTITLE (/,X30,"HA[8NU-1]"), 00203000
BDYVALUES (/,X42,"PRELIMINARY BOUNDARY VALUES"), 00203100
CBDYVALUES (/,X43,"CORRECTED BOUNDARY VALUES"), 00203200
CONTITLE (/,X50,"CONSTANT"), 00203300
TABLE (X8,I2,X6,6F16.8), 00203400
TABLEHEAD (/,X40, "THE VALUES OF H(RHO,TH) IN B"), 00203500
TABLELINE (X13,"RHO",X6,"0.5",X13,"1.0",X13,"1.5",X13, 00203600
"2.0",X13,"2.5",X13,"3.0"), 00203700
TABLETH (X8,"TH"); 00203800
START: 00800100
READ (INPUT, /, DATA); 00800200
WRITE (OUTPUT, <"INPUT DATA:",/,6(5F16.4,/)>, DATA); 00800250
RDIM: 00800300
READ (INPUT, /, DIMEN) [FINISH]; 00800400
WRITE (OUTPUT, <"NUMBER OF DIMENSIONS:",I3>, DIMEN); 00800450
FOR I:=1 STEP 1 UNTIL N DO 00800500170222PK
FOR J:=I STEP 4 UNTIL N DO 00800600170222PK
BEGIN 00800700
L:= I-J; K:= I+J; 00800800170222PK
SUM:= R[1]**K + 1.5*R[18]**K*COS(DEGREE34*L) 00800900170222PK
+ 0.5*R[29]**K*COS(DEGREE45*L); 00801000170222PK
FOR M:=2 STEP 1 UNTIL 17 DO 00801100170222PK
SUM:= SUM + 2.0*R[M]**K*COS((M-1)*DEGREE2*L); 00801200170222PK
FOR M:=19 STEP 1 UNTIL 28 DO 00801300170222PK
SUM:= SUM + R[M]**K*COS((DEGREE34 + (M-18)*DEGREE1)*L); 00801400170222PK
FA[I,J]:= (8.0/K)*DEGREE1*SUM 00801500170222PK
END; 00801600
WRITE (OUTPUT[SPACE 2]); 00801700170222PK
WRITE (OUTPUT, FTITLE); 00801800
WRITE (OUTPUT, VECTOR, FRESULTS); 00801900
FOR J:=1 STEP 1 UNTIL N DO 00802000170222PK
B[1,J]:= FA[1,J]; 00802100170222PK
FOR I:=2 STEP 1 UNTIL N DO 00802200170222PK
BEGIN 00802300
FOR J:=1 STEP 1 UNTIL I-1 DO 00802400170222PK
B[I,J]:= -B[J,I]/B[J,J]; 00802500170222PK
FOR J:=I STEP 1 UNTIL N DO 00802600170222PK
BEGIN 00802700
B[I,J]:= FA[I,J]; 00802800170222PK
FOR K:=1 STEP 1 UNTIL I-1 DO 00802900170222PK
B[I,J]:= B[I,J] + B[I,K]*B[K,J] 00803000170222PK
END; 00803100
FOR J:=1 STEP 1 UNTIL I-1 DO 00803200170222PK
B[I,J]:= B[I,J]*SQRT(B[J,J]/B[I,I]) 00803300170222PK
END; 00803400
FOR I:=1 STEP 1 UNTIL N DO 00803500170222PK
B[I,I]:= 1.0/(SQRT(B[I,I])*I); 00803600170222PK
WRITE (OUTPUT, BTITLE); 00803700
WRITE (OUTPUT, VECTOR, BRESULTS); 00803800
FOR I:=1 STEP 1 UNTIL N DO 00803900170222PK
FOR J:=1 STEP 1 UNTIL N DO 00804000170222PK
A[I,J]:= 0; 00804100170222PK
A[1,1]:= B[1,1]; 00804200170222PK
FOR I:=2 STEP 1 UNTIL N DO 00804300170222PK
BEGIN 00804400
FOR J:=1 STEP 1 UNTIL I-1 DO 00804500170222PK
BEGIN 00804600
A[I,J]:= 0; 00804700170222PK
FOR K:=J STEP 1 UNTIL I-1 DO 00804800170222PK
A[I,J]:= A[I,J] + B[I,K]*A[K,J] 00804900170222PK
END; 00805000
A[I,I]:= B[I,I] 00805100170222PK
END; 00805200
WRITE (OUTPUT[SPACE 2]); 00805300170222PK
WRITE (OUTPUT, ATITLE); 00805400
WRITE (OUTPUT, VECTOR, ARESULTS); 00805500
00805600
COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION; 00805700
00805800
FOR J:=4 STEP 4 UNTIL N-1 DO 00805900170222PK
BEGIN 00806000
DSUM[J]:= 0; 00806100170222PK
FOR M:=1 STEP 1 UNTIL 17 DO 00806200170222PK
DSUM[J]:= DSUM[J] + (R[M]**2 + R[M+1]**2)* 00806300170222PK
(R[M+1]**J*SIN(M*DEGREE2*J) 00806400170222PK
- R[M]**J*SIN((M-1)*DEGREE2*J)); 00806500170222PK
FOR M:=18 STEP 1 UNTIL 28 DO 00806600170222PK
DSUM[J]:= DSUM[J] + (R[M]**2 + R[M+1]**2*(R[M+1]**J* 00806700170222PK
SIN((DEGREE34 + (M-17)*DEGREE1)*J) 00806800170222PK
- R[M]**J*SIN((DEGREE34 00806900170222PK
+ (M-18)*DEGREE1)*J))) 00807000170222PK
END; 00807100
FOR NU:=4 STEP 4 UNTIL N-1 DO 00807200170222PK
BEGIN 00807300
HA[2*NU-1]:= 0; 00807400170222PK
FOR J:=4 STEP 4 UNTIL NU DO 00807500170222PK
HA[2*NU-1]:= HA[2*NU-1] + A[NU,J]*DSUM[J]; 00807600170222PK
HA[2*NU-1]:= 4.0*HA[2*NU-1] 00807700170222PK
END; 00807800
WRITE (OUTPUT, COEFTITLE); 00807900
WRITE (OUTPUT, VECTOR, COEFFS); 00808000
FOR J:=4 STEP 4 UNTIL N-1 DO 00808100170222PK
BEGIN 00808200
HAA[J]:= 0; 00808300170222PK
FOR NU:=J STEP 4 UNTIL N-1 DO 00808400170222PK
HAA[J]:= HAA[J] + HA[2*NU-1]*A[NU,J] 00808500170222PK
END; 00808600
FOR M:=1 STEP 1 UNTIL 18 DO 00808700170222PK
BEGIN 00808800
HFN[M]:= 0; 00808900170222PK
FOR J:=4 STEP 4 UNTIL N-1 DO 00809000170222PK
HFN[M]:= HFN[M] + HAA[J]*R[M]**J*COS((M-1)*DEGREE2*J) 00809100170222PK
END; 00809200
FOR M:=19 STEP 1 UNTIL 29 DO 00809300170222PK
BEGIN 00809400
HFN[M]:= 0; 00809500170222PK
FOR J:=4 STEP 4 UNTIL N-1 DO 00809600170222PK
HFN[M]:= HFN[M] + HAA[J]*R[M]**J* 00809700170222PK
COS((DEGREE34 + (M-18)*DEGREE1)*J) 00809800170222PK
END; 00809900
WRITE (OUTPUT[SPACE 2]); 00810000170222PK
WRITE (OUTPUT, BDYVALUES); 00810100
WRITE (OUTPUT, VECTOR, HFNRES); 00810200
AVT:= 0; 00810300170222PK
FOR M:=1 STEP 1 UNTIL 29 DO 00810400170222PK
AVT:= AVT + R[M]**2 - HFN[M]; 00810500170222PK
CONST:= AVT/29.0; 00810600170222PK
WRITE (OUTPUT, CONTITLE); 00810700
WRITE (OUTPUT, VECTOR, CRES); 00810800
FOR M:=1 STEP 1 UNTIL 29 DO 00810900170222PK
HFN[M]:= CONST + HFN[M]; 00811000170222PK
WRITE (OUTPUT, CBDYVALUES); 00811100
WRITE (OUTPUT, VECTOR, HFNRES); 00811200
FOR I:=1 STEP 1 UNTIL 5 DO 00811300170222PK
BEGIN 00811400
TH:= 5*(I-1); 00811500170222PK
FOR J:=1 STEP 1 UNTIL 5 DO 00811600170222PK
BEGIN 00811700
HFCN[J]:= CONST; 00811800170222PK
FOR M:=4 STEP 4 UNTIL N-1 DO 00811900170222PK
HFCN[J]:= HFCN[J] + HAA[M]*(0.5*J)**M*COS((I-1)*DEGREE5*M) 00812000170222PK
END; 00812100
WRITE (OUTPUT[SPACE 2]); 00812200170222PK
WRITE (OUTPUT, TABLEHEAD); 00812300
WRITE (OUTPUT, TABLELINE); 00812400
WRITE (OUTPUT, TABLETH); 00812500
WRITE (OUTPUT, TABLE, HFCNRES) 00812600
END; 00812700
FOR I:=6 STEP 1 UNTIL 10 DO 00812800170222PK
BEGIN 00812900
TH:= 5*(I-1); 00813000170222PK
FOR J:=1 STEP 1 UNTIL 6 DO 00813100170222PK
BEGIN 00813200
HFCEN[J]:= CONST; 00813300170222PK
FOR M:=4 STEP 4 UNTIL N-1 DO 00813400170222PK
HFCEN[J]:= HFCEN[J] + HAA[M]*(0.5*J)**M* 00813500170222PK
COS((I-1)*DEGREE5*M) 00813550170222PK
END; 00813600
WRITE (OUTPUT, TABLE, HFCNRES) 00813700
END; 00813800
GO TO RDIM; 00813900
00899000
FINISH: 00899100
END. 00899800

View File

@@ -0,0 +1,439 @@
Wed, Feb 22, 2017 09:19:00, SYSTEM SERIAL: 4448, LX100 MCP: *SYSTEM/511/051-1A-45/DELTA/MCP. 51.190.8474, HOSTNAME: MCPVMMA
W O R K F L O W S T A T E M E N T S
00100100 ?BEGIN JOB BALGOL/EXAMPLE1;
00100200 JOBSUMMARY=UNCONDITIONAL;
00100250 PRINTDEFAULTS=(PRINTDISPOSITION=EOJ);
00100300
00100400 COMPILE OBJECT/BALGOL/EXAMPLE1 ALGOL GO;
00100500 ALGOL FILE CARD=SRCE/DEMO/BALGOL/EXAMPLE1 ON OPS;
00100600 OPTION=(FAULT,DSED,ARRAY);
00100700 DATA INPUT
00999900 ? END JOB
J O B S U M M A R Y
Wed, Feb 22, 2017
09:18:59 BOJ 4900 BALGOL/EXAMPLE1.
JOB ENTERED SYSTEM: 02/22/2017 09:18:59 FROM WFL 51.189
QUEUE: 0, ORIGINATING LSN: 186 MCS: 1
STACK NUMBER: 0B1B, PRIORITY: 50, SOURCENAME: DIGMGX39/CANDE/1.
USERCODE: PAUL. REALUSERCODE: PAUL.
INITIATING MCS: SYSTEM/CANDE.
09:18:59 BOT 4901 *SYSTEM/ALGOL.
CODE COMPILED: 09/07/2005 15:02:44 BY ALGOL 51.190
RELEASE ID: IC ALGOL-051.1A.4 [51.190.004] (51.190.8023)
TASK TYPE: COROUTINE (CALL)
STACK NUMBER: 0B1E, PRIORITY: 50, SOURCENAME: DIGMGX39/CANDE/1.
CODEFILE: OBJECT/BALGOL/EXAMPLE1.
USERCODE: PAUL. REALUSERCODE: PAUL.
INITIATING MCS: SYSTEM/CANDE.
09:18:59 BOT 4902 (PAUL)OBJECT/BALGOL/EXAMPLE1 ON OPS.
CODE COMPILED: 02/22/2017 09:18:59 BY ALGOL 51.190
TASK TYPE: DEPENDENT TASK (PROCESS)
STACK NUMBER: 0B20, PRIORITY: 50, SOURCENAME: DIGMGX39/CANDE/1.
USERCODE: PAUL. REALUSERCODE: PAUL.
INITIATING MCS: SYSTEM/CANDE.
09:18:59 4902 MESSAGE: STACK EXTENDED FROM 1602 TO 1852 WORDS.
09:19:00 EOT 4901 *SYSTEM/ALGOL.
RELEASE ID:IC ALGOL-051.1A.4 [51.190.004] (51.190.8023)
USERCODE: PAUL. REALUSERCODE: PAUL.
STACK NUMBER: 0B1E AVERAGE DISK SECTORS IN USE BY PERMANENT FILES: 1197.
PROCESSOR TIME: 00:00:00.4198 LINES PRINTED: 231.
I/O TIME: 00:00:00.1447 NUMBER OF ARRAY RESIZES: 4.
READYQ TIME: 00:00:00.0303 AVERAGE MEMORY USAGE: CODE=22920, DATA=75186
INITPBIT TIME: 00:00:00.2522 MEMORY INTEGRAL: CODE=12.940, DATA=42.449
ELAPSED TIME: 00:00:00.8738 INITIAL PBITS: 451.
MAXIMUM NUMBER OF ASDS USED: 164.
MAXIMUM SAVE MEMORY USED: 12295.
09:19:00 4902 MESSAGE: STACK EXTENDED FROM 1852 TO 2102 WORDS.
09:19:00 EOT 4902 (PAUL)OBJECT/BALGOL/EXAMPLE1 ON OPS.
USERCODE: PAUL. REALUSERCODE: PAUL.
STACK NUMBER: 0B20 AVERAGE DISK SECTORS IN USE BY PERMANENT FILES: 486.
PROCESSOR TIME: 00:00:00.1376 CARDS READ: 3.
I/O TIME: 00:00:00.0411 LINES PRINTED: 123.
READYQ TIME: 00:00:00.1193 NUMBER OF ARRAY RESIZES: 5.
ELAPSED TIME: 00:00:00.3780 AVERAGE MEMORY USAGE: CODE=930, DATA=4503
MEMORY INTEGRAL: CODE=0.166, DATA=0.805
INITIAL PBITS: 145.
MAXIMUM NUMBER OF ASDS USED: 70.
MAXIMUM SAVE MEMORY USED: 8421.
09:19:00 EOJ 4900 BALGOL/EXAMPLE1.
USERCODE: PAUL. REALUSERCODE: PAUL.
STACK NUMBER: 0B1B NUMBER OF ARRAY RESIZES: 1.
PROCESSOR TIME: 00:00:00.0000 AVERAGE MEMORY USAGE: CODE=88, DATA=1921
I/O TIME: 00:00:00.0007 MEMORY INTEGRAL: CODE=0.000, DATA=0.001
READYQ TIME: 00:00:00.0085 INITIAL PBITS: 38.
ELAPSED TIME: 00:00:01.1283 MAXIMUM NUMBER OF ASDS USED: 10.
MAXIMUM SAVE MEMORY USED: 1808.
Unisys ClearPath LX Series SYSTEMS BDMSALGOL COMPILER, VERSION 51.190.8023, WEDNESDAY, 02/22/2017, 09:18 AM.
( P A U L ) O B J E C T / B A L G O L / E X A M P L E 1 O N O P S
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
$ SET LINEINFO 00000100 0000:0000:0 170222PK
BEGIN 00001000 0000:0000:0
BLOCK#1 IS SEGMENT 0003
COMMENT 1 00001100 0003:0000:1
BAC-EXAMPLE-1 CONVERTED FROM BALGOL TO BURROUGHS B5500 EXTENDED ALGOL. 00001200 0003:0000:1
2017-02-13 P.KIMPEL 00001300 0003:0000:1
; 00001400 0003:0000:1
00010000 0003:0000:1
FILE INPUT (KIND=READER, MAXRECSIZE=80, FRAMESIZE=8); 00010100 0003:0000:1 170222PK
DATA LENGTH IN WORDS IS 000C
FILE OUTPUT (KIND=PRINTER, MAXRECSIZE=120, FRAMESIZE=8); 00010200 0003:0000:1 170222PK
DATA LENGTH IN WORDS IS 000C
00011000 0003:0000:1 170222PK
DEFINE 00011100 0003:0000:1 170222PK
DEGREE1 = 0.017453293 #, % PI/180 = 1 DEGREE 00011200 0003:0000:1 170222PK
DEGREE2 = 0.034906585 #, % PI/90 = 2 DEGREES 00011300 0003:0000:1 170222PK
DEGREE5 = 0.087266463 #, % PI/36 = 5 DEGREES 00011400 0003:0000:1 170222PK
DEGREE34 = 0.59341195 #, % 34PI/180 = 34 DEGREES 00011500 0003:0000:1 170222PK
DEGREE45 = 0.78539816 #; % PI/4 = 45 DEGREES 00011600 0003:0000:1 170222PK
00020000 0003:0000:1
REAL 00050000 0003:0000:1
AVT, 00050100 0003:0000:1
CONST, 00050200 0003:0000:1
SUM; 00050300 0003:0000:1
LABEL 00080000 0003:0000:1
FINISH, 00080100 0003:0000:1
RDIM, 00080200 0003:0000:1
START; 00080300 0003:0000:1
00200000 0003:0000:1
COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963. 00200100 0003:0000:1 170222PK
J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING 00200200 0003:0000:1
PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES, 00200300 0003:0000:1
USING ORTHONORMAL FUNCTIONS; 00200400 0003:0000:1
00200500 0003:0000:1
COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS 00200600 0003:0000:1
AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A 00200700 0003:0000:1
HARMONIC BOUNDARY-VALUE PROBLEM; 00200800 0003:0000:1
00200900 0003:0000:1
COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS; 00201000 0003:0000:1
00201100 0003:0000:1
INTEGER I, J, K, L, M, N, NU, TH; 00201200 0003:0000:1
ARRAY R[1:29], HFN[1:29], DSUM[1:24], HFCN[1:5], HFCEN[1:6], 00201300 0003:0000:1
FA[1:25,1:25], A[1:25,1:25], B[1:25,1:25], HA[1:47], HAA[1:24]; 00201400 0003:0000:1
LIST DATA (FOR I:=1 STEP 1 UNTIL 29 DO R[I]), DIMEN(N); 00201500 0003:0012:3 170222PK
LIST FRESULTS (FOR I:=1 STEP 1 UNTIL N DO 00201600 0003:002F:3 170222PK
FOR J:=1 STEP 1 UNTIL N DO FA[I,J]), 00201700 0003:0030:1 170222PK
ARESULTS (FOR I:=1 STEP 1 UNTIL N DO 00201800 0003:0050:1 170222PK
FOR J:=1 STEP 1 UNTIL N DO A[I,J]), 00201900 0003:0050:5 170222PK
BRESULTS (FOR I:=1 STEP 1 UNTIL N DO 00202000 0003:0070:4 170222PK
FOR J:=1 STEP 1 UNTIL N DO B[I,J]), 00202100 0003:0071:2 170222PK
COEFFS (FOR NU:=4 STEP 4 UNTIL N-1 DO HA[2*NU-1]), 00202200 0003:0091:1 170222PK
HFNRES (FOR K:=1 STEP 1 UNTIL 29 DO HFN[K]), 00202300 0003:00AA:1 170222PK
CRES(CONST), HFCNRES (TH, FOR K:=1 STEP 1 UNTIL 5 DO HFCN[K]), 00202400 0003:00BE:4 170222PK
HFCENRES(TH, FOR K:=1 STEP 1 UNTIL 6 DO HFCEN[K]); 00202500 0003:00E1:1 170222PK
FORMAT VECTOR (X8,6F16.8), 00202600 0003:00FB:1 170222PK
FTITLE (/,X48,"FRESULTS,FA[I,J]"), 00202700 0003:00FB:1
BTITLE (/,X48,"BRESULTS,B[I,J]"), 00202800 0003:00FB:1 170222PK
ATITLE (/,X48,"ARESULTS,A[I,J]"), 00202900 0003:00FB:1
COEFTITLE (/,X30,"HA[8NU-1]"), 00203000 0003:00FB:1
BDYVALUES (/,X42,"PRELIMINARY BOUNDARY VALUES"), 00203100 0003:00FB:1
CBDYVALUES (/,X43,"CORRECTED BOUNDARY VALUES"), 00203200 0003:00FB:1
CONTITLE (/,X50,"CONSTANT"), 00203300 0003:00FB:1
TABLE (X8,I2,X6,6F16.8), 00203400 0003:00FB:1
TABLEHEAD (/,X40, "THE VALUES OF H(RHO,TH) IN B"), 00203500 0003:00FB:1
TABLELINE (X13,"RHO",X6,"0.5",X13,"1.0",X13,"1.5",X13, 00203600 0003:00FB:1
"2.0",X13,"2.5",X13,"3.0"), 00203700 0003:00FB:1
TABLETH (X8,"TH"); 00203800 0003:00FB:1
START: 00800100 0003:00FB:1
READ (INPUT, /, DATA); 00800200 0003:00FB:1
WRITE (OUTPUT, <"INPUT DATA:",/,6(5F16.4,/)>, DATA); 00800250 0003:0104:4
RDIM: 00800300 0003:010B:4
READ (INPUT, /, DIMEN) [FINISH]; 00800400 0003:010B:4
WRITE (OUTPUT, <"NUMBER OF DIMENSIONS:",I3>, DIMEN); 00800450 0003:0116:3
FOR I:=1 STEP 1 UNTIL N DO 00800500 0003:011D:4 170222PK
FOR J:=I STEP 4 UNTIL N DO 00800600 0003:011E:2 170222PK
BEGIN 00800700 0003:011F:1
L:= I-J; K:= I+J; 2 00800800 0003:011F:1 170222PK
SUM:= R[1]**K + 1.5*R[18]**K*COS(DEGREE34*L) 00800900 0003:0122:1 170222PK
+ 0.5*R[29]**K*COS(DEGREE45*L); 00801000 0003:012A:0 170222PK
FOR M:=2 STEP 1 UNTIL 17 DO 00801100 0003:0131:3 170222PK
SUM:= SUM + 2.0*R[M]**K*COS((M-1)*DEGREE2*L); 00801200 0003:0132:2 170222PK
FOR M:=19 STEP 1 UNTIL 28 DO 00801300 0003:013C:5 170222PK
SUM:= SUM + R[M]**K*COS((DEGREE34 + (M-18)*DEGREE1)*L); 00801400 0003:013D:4 170222PK
FA[I,J]:= (8.0/K)*DEGREE1*SUM 00801500 0003:0149:0 170222PK
END; 00801600 0003:014E:1
WRITE (OUTPUT[SPACE 2]); 2 00801700 0003:0153:2 170222PK
WRITE (OUTPUT, FTITLE); 00801800 0003:0159:2
WRITE (OUTPUT, VECTOR, FRESULTS); 00801900 0003:015E:4
FOR J:=1 STEP 1 UNTIL N DO 00802000 0003:0165:4 170222PK
B[1,J]:= FA[1,J]; 00802100 0003:0166:2 170222PK
FOR I:=2 STEP 1 UNTIL N DO 00802200 0003:016B:4 170222PK
BEGIN 00802300 0003:016C:3
FOR J:=1 STEP 1 UNTIL I-1 DO 2 00802400 0003:016C:3 170222PK
B[I,J]:= -B[J,I]/B[J,J]; 00802500 0003:016E:3 170222PK
FOR J:=I STEP 1 UNTIL N DO 00802600 0003:0176:1 170222PK
BEGIN 00802700 0003:0177:0
B[I,J]:= FA[I,J]; 3 00802800 0003:0177:0 170222PK
FOR K:=1 STEP 1 UNTIL I-1 DO 00802900 0003:017B:1 170222PK
B[I,J]:= B[I,J] + B[I,K]*B[K,J] 00803000 0003:017D:1 170222PK
END; 00803100 0003:0185:0
FOR J:=1 STEP 1 UNTIL I-1 DO 3 00803200 0003:0189:0 170222PK
B[I,J]:= B[I,J]*SQRT(B[J,J]/B[I,I]) 00803300 0003:018B:0 170222PK
END; 00803400 0003:0193:2
FOR I:=1 STEP 1 UNTIL N DO 2 00803500 0003:0197:3 170222PK
B[I,I]:= 1.0/(SQRT(B[I,I])*I); 00803600 0003:0198:1 170222PK
WRITE (OUTPUT, BTITLE); 00803700 0003:01A0:5
WRITE (OUTPUT, VECTOR, BRESULTS); 00803800 0003:01A5:4
FOR I:=1 STEP 1 UNTIL N DO 00803900 0003:01AC:4 170222PK
FOR J:=1 STEP 1 UNTIL N DO 00804000 0003:01AD:2 170222PK
A[I,J]:= 0; 00804100 0003:01AE:0 170222PK
A[1,1]:= B[1,1]; 00804200 0003:01B4:4 170222PK
FOR I:=2 STEP 1 UNTIL N DO 00804300 0003:01B6:5 170222PK
BEGIN 00804400 0003:01B7:4
FOR J:=1 STEP 1 UNTIL I-1 DO 2 00804500 0003:01B7:4 170222PK
BEGIN 00804600 0003:01B9:4
A[I,J]:= 0; 3 00804700 0003:01B9:4 170222PK
FOR K:=J STEP 1 UNTIL I-1 DO 00804800 0003:01BC:0 170222PK
A[I,J]:= A[I,J] + B[I,K]*A[K,J] 00804900 0003:01BE:1 170222PK
END; 00805000 0003:01C6:0
A[I,I]:= B[I,I] 3 00805100 0003:01C9:0 170222PK
END; 00805200 0003:01CC:5
WRITE (OUTPUT[SPACE 2]); 2 00805300 0003:01CF:2 170222PK
WRITE (OUTPUT, ATITLE); 00805400 0003:01D5:2
WRITE (OUTPUT, VECTOR, ARESULTS); 00805500 0003:01DA:4
00805600 0003:01E1:4
COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION; 00805700 0003:01E1:4
00805800 0003:01E1:4
FOR J:=4 STEP 4 UNTIL N-1 DO 00805900 0003:01E1:4 170222PK
BEGIN 00806000 0003:01E3:5
DSUM[J]:= 0; 2 00806100 0003:01E3:5 170222PK
FOR M:=1 STEP 1 UNTIL 17 DO 00806200 0003:01E5:2 170222PK
DSUM[J]:= DSUM[J] + (R[M]**2 + R[M+1]**2)* 00806300 0003:01E6:0 170222PK
(R[M+1]**J*SIN(M*DEGREE2*J) 00806400 0003:01EB:2 170222PK
- R[M]**J*SIN((M-1)*DEGREE2*J)); 00806500 0003:01F1:1 170222PK
FOR M:=18 STEP 1 UNTIL 28 DO 00806600 0003:01FA:5 170222PK
DSUM[J]:= DSUM[J] + (R[M]**2 + R[M+1]**2*(R[M+1]**J* 00806700 0003:01FB:4 170222PK
SIN((DEGREE34 + (M-17)*DEGREE1)*J) 00806800 0003:0202:5 170222PK
- R[M]**J*SIN((DEGREE34 00806900 0003:0208:2 170222PK
+ (M-18)*DEGREE1)*J))) 00807000 0003:020C:1 170222PK
END; 00807100 0003:0210:2
FOR NU:=4 STEP 4 UNTIL N-1 DO 2 00807200 0003:0215:3 170222PK
BEGIN 00807300 0003:0217:4
HA[2*NU-1]:= 0; 2 00807400 0003:0217:4 170222PK
FOR J:=4 STEP 4 UNTIL NU DO 00807500 0003:021A:0 170222PK
HA[2*NU-1]:= HA[2*NU-1] + A[NU,J]*DSUM[J]; 00807600 0003:021A:5 170222PK
HA[2*NU-1]:= 4.0*HA[2*NU-1] 00807700 0003:0224:5 170222PK
END; 00807800 0003:0229:3
WRITE (OUTPUT, COEFTITLE); 2 00807900 0003:022B:2
WRITE (OUTPUT, VECTOR, COEFFS); 00808000 0003:0230:4
FOR J:=4 STEP 4 UNTIL N-1 DO 00808100 0003:0237:4 170222PK
BEGIN 00808200 0003:0239:5
HAA[J]:= 0; 2 00808300 0003:0239:5 170222PK
FOR NU:=J STEP 4 UNTIL N-1 DO 00808400 0003:023B:2 170222PK
HAA[J]:= HAA[J] + HA[2*NU-1]*A[NU,J] 00808500 0003:023D:3 170222PK
END; 00808600 0003:0243:4
FOR M:=1 STEP 1 UNTIL 18 DO 2 00808700 0003:0247:0 170222PK
BEGIN 00808800 0003:0247:4
HFN[M]:= 0; 2 00808900 0003:0247:4 170222PK
FOR J:=4 STEP 4 UNTIL N-1 DO 00809000 0003:0249:1 170222PK
HFN[M]:= HFN[M] + HAA[J]*R[M]**J*COS((M-1)*DEGREE2*J) 00809100 0003:024B:2 170222PK
END; 00809200 0003:0254:1
FOR M:=19 STEP 1 UNTIL 29 DO 2 00809300 0003:0258:5 170222PK
BEGIN 00809400 0003:0259:4
HFN[M]:= 0; 2 00809500 0003:0259:4 170222PK
FOR J:=4 STEP 4 UNTIL N-1 DO 00809600 0003:025B:1 170222PK
HFN[M]:= HFN[M] + HAA[J]*R[M]**J* 00809700 0003:025D:2 170222PK
COS((DEGREE34 + (M-18)*DEGREE1)*J) 00809800 0003:0262:0 170222PK
END; 00809900 0003:0268:2
WRITE (OUTPUT[SPACE 2]); 2 00810000 0003:026D:0 170222PK
WRITE (OUTPUT, BDYVALUES); 00810100 0003:0273:2
WRITE (OUTPUT, VECTOR, HFNRES); 00810200 0003:0278:4
AVT:= 0; 00810300 0003:027F:4 170222PK
FOR M:=1 STEP 1 UNTIL 29 DO 00810400 0003:0280:2 170222PK
AVT:= AVT + R[M]**2 - HFN[M]; 00810500 0003:0281:0 170222PK
CONST:= AVT/29.0; 00810600 0003:0287:0 170222PK
WRITE (OUTPUT, CONTITLE); 00810700 0003:0289:0
WRITE (OUTPUT, VECTOR, CRES); 00810800 0003:028D:4
FOR M:=1 STEP 1 UNTIL 29 DO 00810900 0003:0294:4 170222PK
HFN[M]:= CONST + HFN[M]; 00811000 0003:0295:2 170222PK
WRITE (OUTPUT, CBDYVALUES); 00811100 0003:029A:3
WRITE (OUTPUT, VECTOR, HFNRES); 00811200 0003:029F:4
FOR I:=1 STEP 1 UNTIL 5 DO 00811300 0003:02A6:4 170222PK
BEGIN 00811400 0003:02A7:2
TH:= 5*(I-1); 2 00811500 0003:02A7:2 170222PK
FOR J:=1 STEP 1 UNTIL 5 DO 00811600 0003:02A9:1 170222PK
BEGIN 00811700 0003:02A9:5
HFCN[J]:= CONST; 3 00811800 0003:02A9:5 170222PK
FOR M:=4 STEP 4 UNTIL N-1 DO 00811900 0003:02AB:3 170222PK
HFCN[J]:= HFCN[J] + HAA[M]*(0.5*J)**M*COS((I-1)*DEGREE5*M) 00812000 0003:02AD:4 170222PK
END; 00812100 0003:02B7:1
WRITE (OUTPUT[SPACE 2]); 3 00812200 0003:02BB:5 170222PK
WRITE (OUTPUT, TABLEHEAD); 00812300 0003:02C2:2
WRITE (OUTPUT, TABLELINE); 00812400 0003:02C7:4
WRITE (OUTPUT, TABLETH); 00812500 0003:02CC:4
WRITE (OUTPUT, TABLE, HFCNRES) 00812600 0003:02D1:4
END; 00812700 0003:02D6:3
FOR I:=6 STEP 1 UNTIL 10 DO 2 00812800 0003:02DA:5 170222PK
BEGIN 00812900 0003:02DB:4
TH:= 5*(I-1); 2 00813000 0003:02DB:4 170222PK
FOR J:=1 STEP 1 UNTIL 6 DO 00813100 0003:02DD:3 170222PK
BEGIN 00813200 0003:02DE:1
HFCEN[J]:= CONST; 3 00813300 0003:02DE:1 170222PK
FOR M:=4 STEP 4 UNTIL N-1 DO 00813400 0003:02DF:5 170222PK
HFCEN[J]:= HFCEN[J] + HAA[M]*(0.5*J)**M* 00813500 0003:02E2:0 170222PK
COS((I-1)*DEGREE5*M) 00813550 0003:02E6:5 170222PK
END; 00813600 0003:02EB:1
WRITE (OUTPUT, TABLE, HFCNRES) 3 00813700 0003:02EF:5
END; 00813800 0003:02F4:4
GO TO RDIM; 2 00813900 0003:02F8:5
00899000 0003:02F9:2
FINISH: 00899100 0003:02F9:2
END. 00899800 0003:02F9:2
DATA LENGTH IN WORDS IS 007B
DATA LENGTH IN WORDS IS 002B
BLOCK#1(0003) LENGTH IN WORDS IS 02FB
STACKCODE IS SEGMENT 0010
STACKCODE(0010) LENGTH IN WORDS IS 006A
====================================================================================================================================
NUMBER OF ERRORS DETECTED = 0.
NUMBER OF WARNINGS ISSUED = 1.
NUMBER OF SEGMENTS = 14. TOTAL SEGMENT SIZE = 1059 WORDS. CORE ESTIMATE = 2163 WORDS. STACK ESTIMATE = 66
PROGRAM SIZE = 209 CARDS, 2091 SYNTACTIC ITEMS, 68 DISK SECTORS.
PROGRAM FILE NAME: (PAUL)OBJECT/BALGOL/EXAMPLE1 ON OPS.
COMPILATION TIME = 0.467 SECONDS ELAPSED; 0.223 SECONDS PROCESSING; 0.102 SECONDS I/O.
====================================================================================================================================
INPUT DATA:
0.1000 0.2000 0.3000 0.4000 0.5000
0.6000 0.7000 0.8000 0.9000 0.1000
0.1100 0.1200 0.1300 0.1400 0.1500
0.1600 0.1700 0.1800 0.1900 0.2000
0.2100 0.2200 0.2300 0.2400 0.2500
0.2600 0.2700 0.2800 0.2900
NUMBER OF DIMENSIONS: 10
FRESULTS,FA[I,J]
0.46363975 0.00000000 0.00000000 0.00000000 0.02376409 0.00000000
0.00000000 0.00000000 -0.00715683 0.00000000 0.00000000 0.10859772
0.00000000 0.00000000 0.00000000 0.01179355 0.00000000 0.00000000
0.00000000 -0.00466756 0.00000000 0.00000000 0.04559661 0.00000000
0.00000000 0.00000000 0.00662809 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.02364557 0.00000000 0.00000000
0.00000000 0.00403492 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.01372359 0.00000000 0.00000000 0.00000000
0.00259449 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00855046 0.00000000 0.00000000 0.00000000 0.00173528
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00559259 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00378860
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00263495 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00187017
BRESULTS,B[I,J]
1.46862078 0.00000000 0.00000000 0.00000000 0.02376409 0.00000000
0.00000000 0.00000000 -0.00715683 0.00000000 0.00000000 1.51725873
0.00000000 0.00000000 0.00000000 0.01179355 0.00000000 0.00000000
0.00000000 -0.00466756 0.00000000 0.00000000 1.56103436 0.00000000
0.00000000 0.00000000 0.00662809 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 1.62579256 0.00000000 0.00000000
0.00000000 0.00403492 0.00000000 0.00000000 -0.31208978 0.00000000
0.00000000 0.00000000 1.78845750 0.00000000 0.00000000 0.00000000
0.00296132 0.00000000 0.00000000 -0.41973584 0.00000000 0.00000000
0.00000000 1.95474707 0.00000000 0.00000000 0.00000000 0.00224217
0.00000000 0.00000000 -0.45621891 0.00000000 0.00000000 0.00000000
2.09968015 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 -0.47127520 0.00000000 0.00000000 0.00000000 2.24504077
0.00000000 0.00000000 0.24615534 0.00000000 0.00000000 0.00000000
-0.62017166 0.00000000 0.00000000 0.00000000 2.60217293 0.00000000
0.00000000 0.45290397 0.00000000 0.00000000 0.00000000 -0.84088529
0.00000000 0.00000000 0.00000000 3.19761985
ARESULTS,A[I,J]
1.46862078 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 1.51725873
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 1.56103436 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 1.62579256 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 0.00000000 -0.45834154 0.00000000
0.00000000 0.00000000 1.78845750 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 0.00000000 -0.63684787 0.00000000 0.00000000
0.00000000 1.95474707 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 0.00000000 -0.71217340 0.00000000 0.00000000 0.00000000
2.09968015 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000
0.00000000 -0.76619571 0.00000000 0.00000000 0.00000000 2.24504077
0.00000000 0.00000000 0.64575929 0.00000000 0.00000000 0.00000000
-1.10915066 0.00000000 0.00000000 0.00000000 2.60217293 0.00000000
0.00000000 1.22268850 0.00000000 0.00000000 0.00000000 -1.64371805
0.00000000 0.00000000 0.00000000 3.19761985
HA[8NU-1]
5.05459676 4.22746744
PRELIMINARY BOUNDARY VALUES
0.00049796 0.00791169 0.03929300 0.12059664 0.28013585 0.52195921
0.74267215 0.54385348 -1.08334289 0.00015377 0.00012639 0.00003562
-0.00014939 -0.00046394 -0.00094593 -0.00163344 -0.00256166 -0.00375919
-0.00496748 -0.00643700 -0.00819553 -0.01026852 -0.01267808 -0.01544181
-0.01857169 -0.02207304 -0.02594347 -0.03017200 -0.03473833
CONSTANT
0.09317613
CORRECTED BOUNDARY VALUES
0.09367409 0.10108781 0.13246913 0.21377277 0.37331197 0.61513533
0.83584828 0.63702960 -0.99016676 0.09332990 0.09330251 0.09321175
0.09302673 0.09271219 0.09223020 0.09154268 0.09061446 0.08941694
0.08820865 0.08673912 0.08498060 0.08290760 0.08049804 0.07773432
0.07460443 0.07110308 0.06723265 0.06300412 0.05843780
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
0 0.44141586 14.56267126 268.53739949 2509.40591811 14676.43961763
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
5 0.41397667 12.04198740 210.11008942 1936.17081242 11276.59767973
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
10 0.33798098 5.55511615 61.63905157 483.02016362 2663.82243907
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
15 0.23022241 -2.16291316 -108.92447960 -1174.90468122 -7143.60132265
THE VALUES OF H(RHO,TH) IN B
RHO 0.5 1.0 1.5 2.0 2.5 3.0
TH
20 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010918
25 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010918
30 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010918
35 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010918
40 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010918
45 0.11237179 -7.96075825 -224.10072940 -2269.20240586 -13574.64010918

View File

@@ -0,0 +1,12 @@
?BEGIN JOB BALGOL/EXAMPLE1; 00100100
JOBSUMMARY=UNCONDITIONAL; 00100200
PRINTDEFAULTS=(PRINTDISPOSITION=EOJ); 00100250
00100300
COMPILE OBJECT/BALGOL/EXAMPLE1 ALGOL GO; 00100400
ALGOL FILE CARD=SRCE/DEMO/BALGOL/EXAMPLE1 ON OPS; 00100500
OPTION=(FAULT,DSED,ARRAY); 00100600
DATA INPUT 00100700
.1, .2, .3, .4, .5, .6, .7, .8, .9, .10, .11, .12, .13, .14, .15, / 00100800
.16, .17, .18, .19, .20, .21, .22, .23, .24, .25, .26, .27, .28, .29, / 00100900
10, / NUMBER OF DIMENSIONS <= 25 00101000
? END JOB 00999900

View File

@@ -0,0 +1,172 @@
2 COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963.
2 J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING
2 PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES,
2 USING ORTHONORMAL FUNCTIONS;
2
2 COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS
2 AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A
2 HARMONIC BOUNDARY-VALUE PROBLEM;
2
2 COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS;
2
2 INTEGER I, J, K, L, M, N, NU, TH;
2 ARRAY R(29), HFN(29), DSUM(24), HFCN(5), HFCEN(6),
2 FA(25,25), A(25,25), B(25,25), HA(47), HAA(24);
2 INPUT DATA (FOR I=(1,1,29); R(I)), DIMEN(N);
2 OUTPUT FRESULTS (FOR I=(1,1,N); FOR J=(1,1,N); FA(I,J)),
2 ARESULTS (FOR I=(1,1,N); FOR J=(1,1,N); A(I,J)),
2 BRESULTS (FOR I=(1,1,N); FOR J=(1,1,N); B(I,J)),
2 COEFFS (FOR NU=(4,4,N-1); HA(2NU-1)),
2 HFNRES (FOR K=(1,1,29); HFN(K)),
2 CRES(CONST), HFCNRES (TH, FOR K=(115); HFNC(K)), <<TYPOS
2 HFCENRES(TH, FOR K=(1,1,6); HFCEN(K));
2 FORMAT VECTOR (B8,6F16.8,W0),
2 FTITLE (B48,*FRESULTS,FA(I,J)*,W3,W2),
2 ATITLE (B48,*ARESULTS,A(I,J)*,W3,W2),
2 COEFTITLE (B30,*HA(8NU-1)*,W2),
2 BDYVALUES (B42,*PRELIMINARY BOUNDARY VALUES*,W3,W2),
2 CBDYVALUES (B43,*CORRECTED BOUNDARY VALUES*,W2),
2 CONTITLE (B50,*CONSTANT*,W2),
2 TABLE (B8,I2,B6,6F16.8,W0),
2 TABLEHEAD (B40, *THE VALUES OF H(RHO,TH) IN B*, W3,W2),
2 TABLELINE (B13,*RHO*,B6,*0.5*,B13,*1.0*,B13,*1.5*,B13,
2 *2.0*,B13,*2.5*,B13,*3.0*,W0),
2 TABLETH (B8,*TH*,W0);
2 START..
2 READ (;; DATA);
2 RDIM..
2 READ (;; DIMEN);
2 FOR I = (1,1,N);
2 FOR J = (I,4,N);
2 BEGIN
2 L = I-J; K = I+J;
2 SUM = R(1)*K + 1.5R(18)*K.COS(0.59341195.L)
2 + 0.5.R(29)*K.COS(0.78539816.L);
2 FOR M = (2,1,17);
2 SUM = SUM + 2.0.R(M)*K.COS((M-1).0.034906585.L);
2 FOR M = (19,1,28);
2 SUM = SUM + R(M)*K.COS((0.59341195 + (M-18).0.017453293).L);
2 FA(I,J) = (8.0/K).0.017453293.SUM
2 END;
2 WRITE (;; FTITLE);
2 WRITE (;; FRESULTS, VECTOR);
2 FOR J - (1,1,N); <<TYPO
2 B(1,J) = FA(1,J);
2 FOR I = (2,1,N);
2 BEGIN
2 FOR J = (1,1,I-1);
2 B(I,J = -B(J,I)/B(J,J); <<TYPO
2 FOR J = (I,1,N);
2 BEGIN
2 B(I,J) = FA(I,J);
2 FOR K = (1,1,I-1);
2 B(I,J) = B(I,J) + B(I,K).B(K,J)
2 END;
2 FOR J = (1,1,I-1);
2 B(I,J) = B(I,J).SQRT(B(J,J)/B(I,I))
2 END;
2 FOR I = (1,1,N);
2 B(I,I) = 1.0/(SQRT(B(I,I)).I);
2 WRITE (;; BTITLE); <<UNDEC
2 WRITE (;; BRESULTS, VECTOR);
2 FOR I = (1,1,N);
2 FOR J = (1,1,N);
2 A(I,J) = 0;
2 A(1,1) = B(1,1);
2 FOR I = (2,1,N);
2 BEGIN
2 FOR J= (1,1,I-1);
2 BEGIN
2 A(I,J) = 0;
2 FOR K = (J,1,I-1);
2 A(I,J) = A(I,J) + B(I,K).A(K,J)
2 END;
2 A(I,I) = B(I,I)
2 END;
2 WRITE (;; ATITLE);
2 WRITE (;; ARESULT, VECTOR); <<TYPO
2
2 COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION;
2
2 FOR J = (4,4,N-1);
2 BEGIN
2 DSUM(J) = 0;
2 FOR M = (1,1,17);
2 DSUM(J) = DSUM(J) + (R(M)*2 + R(M+1)*2).
2 (R(M+1)*J.SIN(M.0.034906585.J)
2 - R(M)*J.SIN((M-1).0.034906585.J));
2 FOR M = (18,1,28);
2 DSUM(J) = DSUM(J) + (R(M)*2 + R(M+1)*2.(R(M+1)*J.
2 SIN((0.59341195 + (M-17).0.017453293).J)
2 - R(M)*J.SIN((0.59341195
2 + (M-18).0.017453293).J)))
2 END;
2 FOR NU = (4,4,N-1);
2 BEGIN
2 HA(2NU-1) = 0;
2 FOR J = (4,4,NU);
2 HA(2NU-1) = HA(2NU-1) + A(NU,J).DSUM(J);
2 HA(2NU-1) = 4.0.HA(2NU-1)
2 END;
2 WRITE (;; COEFTITLE);
2 WRITE (;; COEFFS, VECTOR);
2 FOR J = (4,4,N-1);
2 BEGIN
2 HAA(J) = 0;
2 FOR NU = (J,4,N-1);
2 HAA(J) = HAA(J) + HA(2NU-1).A(NU,J)
2 END <<SEMI
2 FOR M = (1,1,18);
2 BEGIN
2 HFN(M) = 0;
2 FOR J = (4,4,N-1);
2 HFN(M) = HFN(M) + HAA(J).R(M)*J.COS((M-1).0.034906585.J)
2 END;
2 FOR M = (19,1,29);
2 BEGIN
2 HFN(M) = 0;
2 FOR J = (4,4,N-1);
2 HFN(M) = HFN(M) + HAA(J).R(M)*J.
2 COS((0.59341195 + (M-18).0.017453293).J)
2 END;
2 WRITE (;; BDYVALUES);
2 WRITE (;; HFNRES, VECTOR);
2 AVT = 0;
2 FOR M = (1,1,29);
2 AVT = AVT + R(M)*2 - HFN(M);
2 CONST = AVT/29.0;
2 WRITE (;; CONTITLE);
2 WRITE (;; CRES, VECTOR);
2 FOR M = (1,1,29);
2 HFN(M) = CONST + HFN(M);
2 WRITE (;; CBDYVALUES);
2 WRITE (;; HFNRES, VECTOR);
2 FOR I = (1,1,5);
2 BEGIN
2 TH = 5.(I-1);
2 FOR J = (1,1,5);
2 BEGIN
2 HFCN(J) = CONST;
2 FOR M = (4,4,N-1);
2 HFCN(J) = HFCN(J) + HAA(M).(0.5.J)*M.COS((I-1).0.087266463.M)
2 END;
2 WRITE (;; TABLEHEAD);
2 WRITE (;; TABLELINE);
2 WRITE (;; TABLETH);
2 WRITE (;; HFCNRES, TABLE)
2 END;
2 FOR I = (6,1,10);
2 BEGIN
2 TH = 5.(I-1);
2 FOR J = (1,1,6);
2 BEGIN
2 HFCEN(J) = CONST;
2 FOR M = (4,4,N-1);
2 HFCEN(J) = FHCEN(J) + HAA(M).(0.5.J)*M. <<TYPO
2 COS((I-1).0.087266463.M)
2 END;
2 WRITE (;; HFCNRES, TABLE)
2 END;
2 STOP 1234;
2 GO TO RDIM;
2 FINISH;

View File

@@ -0,0 +1,173 @@
2 COMMENT FIRST EXAMPLE PROGRAM FROM BALGOL MANUAL, MARCH 1963.
2 J.G. HERRIOT, OF STANFORD UNIVERSITY, HAS WRITTEN THE FOLLOWING
2 PROGRAM TO DETERMINE AN APROXIMATION OF HARMONIC-BOUNDARY VALUES,
2 USING ORTHONORMAL FUNCTIONS;
2
2 COMMENT THIS PROGRAM FIRST CONSTRUCTS A SET OF ORTHONORMAL FUNCTIONS
2 AND THEN USES THEM TO FIND AN APPROXIMATION TO THE SOLUTION OF A
2 HARMONIC BOUNDARY-VALUE PROBLEM;
2
2 COMMENT WE FIRST CONSTRUCT THE ORTHONORMAL FUNCTIONS;
2
2 INTEGER I, J, K, L, M, N, NU, TH;
2 ARRAY R(29), HFN(29), DSUM(24), HFCN(5), HFCEN(6),
2 FA(25,25), A(25,25), B(25,25), HA(47), HAA(24);
2 INPUT DATA (FOR I=(1,1,29); R(I)), DIMEN(N);
2 OUTPUT FRESULTS (FOR I=(1,1,N); FOR J=(1,1,N); FA(I,J)),
2 ARESULTS (FOR I=(1,1,N); FOR J=(1,1,N); A(I,J)),
2 BRESULTS (FOR I=(1,1,N); FOR J=(1,1,N); B(I,J)),
2 COEFFS (FOR NU=(4,4,N-1); HA(2NU-1)),
2 HFNRES (FOR K=(1,1,29); HFN(K)),
2 CRES(CONST), HFCNRES (TH, FOR K=(1,1,5); HFCN(K)),
2 HFCENRES(TH, FOR K=(1,1,6); HFCEN(K));
2 FORMAT VECTOR (B8,6F16.8,W0),
2 FTITLE (B48,*FRESULTS,FA(I,J)*,W3,W2),
2 BTITLE (B48,*BRESULTS,B(I,J)*,W3,W2), *ADDED*
2 ATITLE (B48,*ARESULTS,A(I,J)*,W3,W2),
2 COEFTITLE (B30,*HA(8NU-1)*,W2),
2 BDYVALUES (B42,*PRELIMINARY BOUNDARY VALUES*,W3,W2),
2 CBDYVALUES (B43,*CORRECTED BOUNDARY VALUES*,W2),
2 CONTITLE (B50,*CONSTANT*,W2),
2 TABLE (B8,I2,B6,6F16.8,W0),
2 TABLEHEAD (B40, *THE VALUES OF H(RHO,TH) IN B*, W3,W2),
2 TABLELINE (B13,*RHO*,B6,*0.5*,B13,*1.0*,B13,*1.5*,B13,
2 *2.0*,B13,*2.5*,B13,*3.0*,W0),
2 TABLETH (B8,*TH*,W0);
2 START..
2 READ (;; DATA);
2 RDIM..
2 READ (;; DIMEN);
2 FOR I = (1,1,N);
2 FOR J = (I,4,N);
2 BEGIN
2 L = I-J; K = I+J;
2 SUM = R(1)*K + 1.5R(18)*K.COS(0.59341195.L)
2 + 0.5.R(29)*K.COS(0.78539816.L);
2 FOR M = (2,1,17);
2 SUM = SUM + 2.0.R(M)*K.COS((M-1).0.034906585.L);
2 FOR M = (19,1,28);
2 SUM = SUM + R(M)*K.COS((0.59341195 + (M-18).0.017453293).L);
2 FA(I,J) = (8.0/K).0.017453293.SUM
2 END;
2 WRITE (;; FTITLE);
2 WRITE (;; FRESULTS, VECTOR);
2 FOR J = (1,1,N);
2 B(1,J) = FA(1,J);
2 FOR I = (2,1,N);
2 BEGIN
2 FOR J = (1,1,I-1);
2 B(I,J) = -B(J,I)/B(J,J);
2 FOR J = (I,1,N);
2 BEGIN
2 B(I,J) = FA(I,J);
2 FOR K = (1,1,I-1);
2 B(I,J) = B(I,J) + B(I,K).B(K,J)
2 END;
2 FOR J = (1,1,I-1);
2 B(I,J) = B(I,J).SQRT(B(J,J)/B(I,I))
2 END;
2 FOR I = (1,1,N);
2 B(I,I) = 1.0/(SQRT(B(I,I)).I);
2 WRITE (;; BTITLE);
2 WRITE (;; BRESULTS, VECTOR);
2 FOR I = (1,1,N);
2 FOR J = (1,1,N);
2 A(I,J) = 0;
2 A(1,1) = B(1,1);
2 FOR I = (2,1,N);
2 BEGIN
2 FOR J= (1,1,I-1);
2 BEGIN
2 A(I,J) = 0;
2 FOR K = (J,1,I-1);
2 A(I,J) = A(I,J) + B(I,K).A(K,J)
2 END;
2 A(I,I) = B(I,I)
2 END;
2 WRITE (;; ATITLE);
2 WRITE (;; ARESULTS, VECTOR);
2
2 COMMENT NOW CONSTRUCT THE APROXIMATION TO THE SOLUTION;
2
2 FOR J = (4,4,N-1);
2 BEGIN
2 DSUM(J) = 0;
2 FOR M = (1,1,17);
2 DSUM(J) = DSUM(J) + (R(M)*2 + R(M+1)*2).
2 (R(M+1)*J.SIN(M.0.034906585.J)
2 - R(M)*J.SIN((M-1).0.034906585.J));
2 FOR M = (18,1,28);
2 DSUM(J) = DSUM(J) + (R(M)*2 + R(M+1)*2.(R(M+1)*J.
2 SIN((0.59341195 + (M-17).0.017453293).J)
2 - R(M)*J.SIN((0.59341195
2 + (M-18).0.017453293).J)))
2 END;
2 FOR NU = (4,4,N-1);
2 BEGIN
2 HA(2NU-1) = 0;
2 FOR J = (4,4,NU);
2 HA(2NU-1) = HA(2NU-1) + A(NU,J).DSUM(J);
2 HA(2NU-1) = 4.0.HA(2NU-1)
2 END;
2 WRITE (;; COEFTITLE);
2 WRITE (;; COEFFS, VECTOR);
2 FOR J = (4,4,N-1);
2 BEGIN
2 HAA(J) = 0;
2 FOR NU = (J,4,N-1);
2 HAA(J) = HAA(J) + HA(2NU-1).A(NU,J)
2 END;
2 FOR M = (1,1,18);
2 BEGIN
2 HFN(M) = 0;
2 FOR J = (4,4,N-1);
2 HFN(M) = HFN(M) + HAA(J).R(M)*J.COS((M-1).0.034906585.J)
2 END;
2 FOR M = (19,1,29);
2 BEGIN
2 HFN(M) = 0;
2 FOR J = (4,4,N-1);
2 HFN(M) = HFN(M) + HAA(J).R(M)*J.
2 COS((0.59341195 + (M-18).0.017453293).J)
2 END;
2 WRITE (;; BDYVALUES);
2 WRITE (;; HFNRES, VECTOR);
2 AVT = 0;
2 FOR M = (1,1,29);
2 AVT = AVT + R(M)*2 - HFN(M);
2 CONST = AVT/29.0;
2 WRITE (;; CONTITLE);
2 WRITE (;; CRES, VECTOR);
2 FOR M = (1,1,29);
2 HFN(M) = CONST + HFN(M);
2 WRITE (;; CBDYVALUES);
2 WRITE (;; HFNRES, VECTOR);
2 FOR I = (1,1,5);
2 BEGIN
2 TH = 5.(I-1);
2 FOR J = (1,1,5);
2 BEGIN
2 HFCN(J) = CONST;
2 FOR M = (4,4,N-1);
2 HFCN(J) = HFCN(J) + HAA(M).(0.5.J)*M.COS((I-1).0.087266463.M)
2 END;
2 WRITE (;; TABLEHEAD);
2 WRITE (;; TABLELINE);
2 WRITE (;; TABLETH);
2 WRITE (;; HFCNRES, TABLE)
2 END;
2 FOR I = (6,1,10);
2 BEGIN
2 TH = 5.(I-1);
2 FOR J = (1,1,6);
2 BEGIN
2 HFCEN(J) = CONST;
2 FOR M = (4,4,N-1);
2 HFCEN(J) = HFCEN(J) + HAA(M).(0.5.J)*M.
2 COS((I-1).0.087266463.M)
2 END;
2 WRITE (;; HFCNRES, TABLE)
2 END;
2 STOP 1234;
2 GO TO RDIM;
2 FINISH;

View File

@@ -179,7 +179,7 @@
01 86 0 0182 D HLT 0 EXPONENT OF NUMBER
01 87 0 0183 WRTF RTF 4 *,0 RECORD TRANSFER CONSTANT FOR WRITE SUBROUTINE
01 88 0 0184 DESCR HLT 0 OUTPUT INSTRUCTION
01 89 0 0185 EXPLN HLT 0 SYMBOL ADDRESSES OF INSTRUCTION
01 89 0 0185 EXPLN HLT 0 SYMBOLIC ADDRESSES OF INSTRUCTION
01 90 0 0186 DEX HLT 0 CURRENT CONTENTS OF B REGISTER
01 91 0 0187 FP HLT 0 FRACTIONAL PART OF CONSTANT
01 92 0 0188 FRSTP HLT 0 1ST PARAMETER TO PROCEDURE DECLARATION
@@ -564,7 +564,7 @@
05 71 0 0572 CADX1 CNST 00000100004 03
5 72 0 0573 CADF1 CNST 00000100005 04
05 73 0 0574 CADL1 CNST 60000100001 05
05 74 0 0575 CSUV1 CNST 00000110001 06 SIGN OF -,1, OR 3..
05 74 0 0575 CSUV1 CNST 00000110001 06 SIGN OF 0,1, OR 3..
05 75 0 0576 CSUV2 CNST 00000110002 07 ADDRESS I IS TO BE REPLACED BY
05 76 0 0577 ADDV1 CNST 00000120001 08 V(I) AND IF V(I) IS AN
05 77 0 0578 ADDV2 CNST 00000120002 09 ARRAY WE MUST ALSO COMPUTE
@@ -604,7 +604,7 @@
6 11 0 0612 BUN3V CNST 00000300003 43
6 12 0 0613 BUNL2 CNST 60000300002 44
06 13 0 0614 BSALN CNST 60001330003 45
06 14 0 0615 BSALT CNST 60000330003 46
06 14 0 0615 BSALP CNST 60000330003 46
06 15 0 0616 BZAL2 CNST 60000360002 47
06 16 0 0617 BZAL3 CNST 60000360003 48
06 17 0 0618 BZAL4 CNST 60000360004 49
@@ -649,13 +649,13 @@
06 56 0 0657 BUNFR CNST 80000309999 88
06 57 0 0658 STPA F4244 0,44,LODOX 89
06 58 0 0659 BUNA F4244 0,30,LODOV 90
06 59 0 0660 BFILR CNST 60101360002 91
06 59 0 0660 BF1LR CNST 60101360002 91
06 60 0 0661 BUNFB CNST 90000309999 92
06 61 0 0662 STPFR CNST 80000449999 93
06 62 0 0663 STAT3 CNST 10000400003 94
6 63 0 0664 LDBV9 CNST 00000420009 95
6 64 0 0665 CSUV4 CNST 00000110004 96
06 65 0 0666 CLR0 CNST 40002450000 97
06 65 0 0666 CLRO CNST 40002450000 97
06 66 0 0667 BOF2 CNST 61111310002 98
MACRO-OPERATION TABLES
@@ -676,8 +676,8 @@
06 83 0 0681 CNST 21700000000 + A V- F FSUV2
06 84 0 0682 CNST 41700000000 + A- V F- FSUV2
06 85 0 0683 CNST 41200000000 + A- V- F- FADV2
06 86 0 0684 CNST 21100000000 + V A F FADV2
06 87 0 0685 CNST 41600000000 + V A- F- FSUB1
06 86 0 0684 CNST 21100000000 + V A F FADV1
06 87 0 0685 CNST 41600000000 + V A- F- FSUV1
06 88 0 0686 CNST 21600000000 + V- A F FSUV1
06 89 0 0687 CNST 41100000000 + V- A- F- FADV1
06 90 0 0688 CNST 20112000000 + V V F CADV1 FADV2
@@ -729,7 +729,7 @@
07 36 0 0734 CNST 42000000000 . V- A F- FMUV1
07 37 0 0735 CNST 22000000000 . V- A- F FMUV1
07 38 0 0736 CNST 20220000000 . V V F CADV2 FMUV1
07 39 0 0737 CNST 20720000000 . V F- F CSUV2 FMUV1
07 39 0 0737 CNST 20720000000 . V V- F CSUV2 FMUV1
07 40 0 0738 CNST 20720000000 . V- V F CUSV2 FMUV1
07 41 0 0739 CNST 20220000000 . V- V- F CADV2 FMUV1
@@ -820,12 +820,12 @@
08 27 0 0817 CNST 7284007200 (IMPOSSIBLE CASE)
08 28 0 0818 CNST 1224213400 FA XV
08 29 0 0819 CNST 3300000000 FA FV I=1 OR I=2..
08 30 0 0820 CNST 2623330000 FA XC J=1 FLAOT V(I)
08 30 0 0820 CNST 2623330000 FA XC J=1 FLOAT V(I)
08 31 0 0821 CNST 2633000000 FA FC J=2 STORE V(I) IN TEMP
08 32 0 0822 CNST 3100000000 XV XA J=3 FLOAT CONSTANT V(I)
008 33 0 0823 CNST 2214113300 XV FA J=4 BRING V(I) INTO A REGISTER
008 34 0 0824 CNST 3200000000 XV XV J=5 CALC CONST OP CONST$ I=TYPE
008 35 0 0825 CNST 1411330000 XV FV J=6 CHECK IF V(I)=SPACIAL CONST
008 35 0 0825 CNST 1411330000 XV FV J=6 CHECK IF V(I)=SPECIAL CONST
08 36 0 0826 CNST 2632000000 XV XC
08 37 0 0827 CNST 1411263300 XV FC
08 38 0 0828 CNST 2134000000 FV XA I=3..
@@ -863,7 +863,7 @@
08 70 0 0856 SCN3 DEFN *
08 71 0 0856 STFOL CLB
08 72 0 0857 CAD CHAR SET K2 TO THE CODE FOR THIS CHARACTER
08 73 0 0858 DBB 0,999
08 73 0 0858 DBB 0,9999
08 74 0 0859 BFA C+,91,8 NUMBER 1
08 75 0 0860 CFA FORTY,02 ALPHA 0
08 76 0 0861 BCH D+ ) 2
@@ -1033,7 +1033,7 @@
010 40 0 1019 BUN I-
010 41 0 1020 *S IFL - 0,11,5 IN ARRAY DECLARATION, MARK THE PRESENT
010 42 0 1021 STP FRMEX SYMBOL AS AN ARRAY AND SEND IT AND AN
010 43 0 1022 BUN FRME ARRAY-DECLARATION OPERATOR TOEXECUTOR
010 43 0 1022 BUN FRME ARRAY-DECLARATION OPERATOR TO EXECUTOR
010 44 0 1023 CAD CWARD
010 45 0 1024 BUN SCN5
010 46 0 1025 *K SLT 0 IF IT IS A LABEL, THE MODE MUST
@@ -1056,7 +1056,7 @@
010 63 0 1042 IFL M-,62,29 LABEL ITSELF TO EXECUTOR INSTEAD
010 64 0 1043 STP FRMEX
010 65 0 1044 BUN FRME
010 66 0 1045 SC7 BUN SC7
010 66 0 1045 SC7 BUN SCN7
010 69 0 1046 R3K LDR SYMBL AP
@@ -1074,7 +1074,7 @@
010 81 0 1058 STA TEMP3,11
010 82 0 1059 DFL TEMP3,22,22
010 83 0 1060 CAD SSC PUT PREFIX CODE INTO PR3-STACK
010 84 0 1061 SLA 4
010 84 0 1061 SLA 4 IN ALPHABETICAL ORDER
010 85 0 1062 STA TEMP3,64
010 86 0 1063 LDB SSC
010 87 0 1064 CAD SYMBL
@@ -1145,14 +1145,14 @@
011 52 0 1114 R10 CAD RPAR )(
011 53 0 1115 STP SCAN
011 54 0 1116 BUN EXCTR ) TO EXECUTOR
011 55 0 1117 BUN R19P
011 55 0 1117 BUN R19P IMPLIED MULTIPLICATION
011 58 0 1118 R11 STP ALPLX A-
011 59 0 1119 BUN ALPLU LEFTHAND SYMBOL MUST BE A SIMPLE VARIABLE
011 60 0 1120 BFA D+,11,0
011 61 0 1121 BFA C+,11,1
011 62 0 1122 BFA R2P,11,7
011 62 0 1122 BFA R2P,11,7 OR A RESERVED WORD
011 63 0 1123 CLL TAG
011 64 0 1124 STP WEMX
011 65 0 1125 BUN WEM,C+
@@ -1170,9 +1170,9 @@
011 80 0 1134 R13 CLL K BLANK K
011 80 0 1134 R13 CLL K BLANK A
011 81 0 1135 STB SW1,62
011 82 0 1136 IFL SW1,61,01 PREPARE TO BUILD AN IDENTIFIER
011 82 0 1136 IFL SW1,62,01 PREPARE TO BUILD AN IDENTIFIER
011 83 0 1137 LDB SBL
011 84 0 1138 CLL SYMBL
011 85 0 1139 RTF SYMBL,9
@@ -1225,8 +1225,8 @@
012 32 0 1178 BUN SCN5
012 35 0 1179 R20 STP PASSX N.
012 36 0 1180 BUN PASS
012 35 0 1179 R20 STP PASSX N. ORIG. INPTX
012 36 0 1180 BUN PASS ORIG. INPT
012 37 0 1181 LDR CHAR IF THE NEXT CHARATER IS A DOT,WE HAVE
012 38 0 1182 BFR R17R,02,03 A STATEMENT LABEL.
012 39 0 1183 BFR C+,91,08 OTHERWISE IF ITS NOT NUMBERIC
@@ -1309,7 +1309,7 @@
013 16 0 1249 LDB FUNS
013 17 0 1250 IFL - 0,12,10 INCREASE THE SEMICOLON COUNT
013 18 0 1251 CAD - 0
013 19 0 1252 IFL OMCRN,00,I
013 19 0 1252 IFL OMCRN,00,1
013 20 0 1253 BSA SCN1,2
013 21 0 1254 IFL TAG,00,1
013 22 0 1255 BUN SCN1
@@ -1370,7 +1370,7 @@
013 77 0 1305 TRTGX BUN * STATEMENTS IN ITS SCOPE
013 78 0 1306 STP CMPLX
013 79 0 1307 BUN WMG,CRM COMPILE CIRCL-M (THIS WILL COME UP
013 80 0 1308 IFL MU,62,29 WHEN THE SCOPE OF THELABEL IS ENDED)
013 80 0 1308 IFL MU,62,29 WHEN THE SCOPE OF THE LABEL IS ENDED)
013 81 0 1309 BUN TRTGX
@@ -1775,7 +1775,7 @@
017 82 0 1682 WEM CLL MSG WRITE ERROR MESSAGE
017 83 0 1683 LDB C+
017 84 0 1684 IFL MSG,12,20
017 85 0 1685 RTF MSG,6
017 85 0 1685 RTF MSG,6 CLEAR MESSAGE BUFFER
017 86 0 1686 CLL TEMP
017 87 0 1687 WEMX CAD *
017 88 0 1688 *E CLR 0000
@@ -1976,7 +1976,7 @@
019 83 0 1854 STA BREF,64
019 84 0 1855 STP CMPLX PUT OUT A BACKWARD REFERENCE OPERATOR,
019 85 0 1856 BUN WMG,BREF TO THE PRESENT LOCATION
019 86 0 1857 CAD CRU COMPILE A CIRCLE-U OPERATOR
019 86 0 1857 CAD CRU COMPILE A CIRCLE-U OPERATION
019 87 0 1858 *A IFL DELTA,22,1
019 88 0 1859 BUN EXIT
@@ -2164,7 +2164,7 @@
021 71 0 2020 *F STP WEMX
021 72 0 2021 BUN WEM,A+
021 73 0 2022 CNST 30147000000 IMPROPER SUBSCRIPT
021 74 0 2023 DEL0 STP SEMIX SEMICOLON IS )(
021 74 0 2023 DEL0 STP SEMIX SEMICOLON IS )(
021 75 0 2024 BUN SEMIC
021 76 0 2025 DEL4 STP REMX,OPRND ARE THERE ANY OPERANDS ON THE STACK
021 77 0 2026 BUN REM,E- IF SO THEY HAD BETTER BE ACCUM SYMBOLS
@@ -2264,7 +2264,7 @@
022 71 0 2102 BFA C+,02,23 COMMA
022 72 0 2103 BFA S+,02,14 STAR
022 73 0 2104 BFA R+,02,04 RIGHT PARENTHESIS
022 74 0 2105 STR 2
022 74 0 2105 SRT 2
022 75 0 2106 CAD DESCR
022 76 0 2107 SLT 7
022 77 0 2108 STA INSTR,55 INSERT NUMBER(33 FIELD)ALPHA(52FIELD)
@@ -2392,7 +2392,7 @@
023 99 0 2220 BUN INS REFERENCE TOTHIS INCREMENT WORD, WHICH
024 00 0 2221 LDB OPRND IS INITIALIZED TO V 5 R 0000 AAAA
024 01 0 2222 DLB - 0,64,0 V=0 NORMAL V=1 CALL BY NAME V=2 MONITOR
024 02 0 2223 LDR - 0 R-0 FLOATING R=1 FIXED
024 02 0 2223 LDR - 0 R=0 FLOATING R=1 FIXED
024 03 0 2224 *A STR *,23 AAAA=LOCATION OF OTHER INFORMATION
024 04 0 2225 *B STB *,08
024 05 0 2226 LDB OPRND
@@ -2406,7 +2406,7 @@
024 13 0 2234 BUN VRBL INTO THE INPUT STRING
024 14 0 2235 CAD PLUS
024 15 0 2236 IFL PHI,00,1 FINALLY, SET UP TO IGNORE THE LEFT
024 16 0 2237 BUN EXIT
024 16 0 2237 BUN EXIT PARENTHESIS WE LL GET NEXT FROM SCANNER.
024 19 0 2238 NDXCM STP PRSBX,CRY COMMA IN SUBSCRIPT POSITION.
@@ -2673,7 +2673,7 @@
026 80 0 2481 BUN INPT
026 81 0 2482 *A IFL V2,00,2
026 82 0 2483 *B DFL V2,00,1
026 83 0 2484 BRP INPUT
026 83 0 2484 BRP INPT
026 84 0 2485 *C BUN *
@@ -2744,7 +2744,7 @@
027 51 0 2531 ARACM STP NULSX ARRAY DECLARATION COMMA SENSED
027 52 0 2532 BUN NULSB TREAT AS )( BUT PRESERVE ARRAY MODE
027 53 0 2533 LDB IOTA
027 54 0 2534 IBB NORM,9999 IF THIS IS A COMMA BETWEEN DIMENSINOS,
027 54 0 2534 IBB NORM,9999 IF THIS IS A COMMA BETWEEN DIMENSIONS,
027 55 0 2535 CAD CRG IT IS A CIRCLE-G OPERATOR
027 56 0 2536 BUN EXIT
@@ -2755,7 +2755,7 @@
027 65 0 2539 SEMIC STP CMPLX SEMICOLON IS THOUGHT OF A )(
027 65 0 2539 SEMIC STP CMPLX SEMICOLON IS THOUGHT OF AS )(
027 66 0 2540 BUN RIGHT
027 67 0 2541 STP CMPLX THIS INNOCENT-LOOKING THING MAY CAUSE
027 68 0 2542 BUN LEFT ALL SORTS OF THINGS TO HAPPEN.
@@ -3003,13 +3003,13 @@
030 10 0 2758 LDR - V SIGN IS 0,1,2, OR 3
030 11 0 2759 BFR D+,11,5
030 12 0 2760 *E STP LASMX IN ORDINARY CASES, GO TO THE
030 13 0 2761 BUN LASMB LITTLE ASSEMBLER.
030 13 0 2761 BUN LASMB LITTLE ASSEMBLER.
030 14 0 2762 BUN ASMBX
030 15 0 2763 *D DLB - V,64,0 WHOOPS, ITS AN ARRAY NAME.
030 16 0 2764 LDR - 0 WE PROBABLY HAVE TO GET ITS INDEX
030 17 0 2765 STA GP IN REGISTER B
030 18 0 2766 BFR F+,11,7 IF THE ARRAY HAS ALREADY BEEN INDEXED,
030 19 0 2767 BFR E-,11,5 SKIP THIS PHASE, IF THE SUBSCRIPT IS
030 19 0 2767 BFR E-,11,5 SKIP THIS PHASE. IF THE SUBSCRIPT IS
030 20 0 2768 IFL - 0,11,1 CONSTANT,GO TO LITTLE ASSEMBLER
030 21 0 2769 STB TEMP
030 22 0 2770 LDB - 0 GET THE SUBSCRIPT VALUE
@@ -3243,7 +3243,7 @@
032 50 0 2988 BSA GEN3,1 SPECIAL BINARY OP
032 51 0 2989 BSA GRELN,8 RELATIONAL OP
032 52 0 2990 BFA A+,64,0
032 53 0 2991 GENAG STP ARTHX PLUS TIME OR DIVIDE, ETC.
032 53 0 2991 GENAG STP ARTHX PLUS TIMES OR DIVIDE, ETC.
032 54 0 2992 BUN ARTHG
032 55 0 2993 CAD ACCUM
032 56 0 2994 BUN GENXX
@@ -3745,7 +3745,7 @@
037 52 0 3440 *A STB V1,11 IF A CONSTANT, ADD OR SUBTRACT ITS
037 53 0 3441 DLB V1,64,0 VALUE FROM THE ASSIGNMENT OF V2,MOD 10000
037 54 0 3442 LDR - 1
037 55 0 3443 STR 0
037 55 0 3443 SRT 0
037 56 0 3444 SLT 14
037 57 0 3445 EXT EX42 (-11110000)
037 58 0 3446 DLB V2,64,00
@@ -4173,8 +4173,8 @@
041 80 0 3813 STA J,01
041 81 0 3814 BFA ARTHC,91,3 TO ARTHC IF THIS IS THE LAST ENTRY
041 82 0 3815 SRT 1
041 83 0 3816 STA 1
041 84 0 3817 LDB 1
041 83 0 3816 STA I
041 84 0 3817 LDB I
041 85 0 3818 BFR J1,11,1 FLOAT OPERAND V(I)
041 86 0 3819 BFR J2,11,2 STORE V(I) IN TEMP
041 87 0 3820 BFR J3,11,3 FLOAT CONSTANT V(I)
@@ -4184,7 +4184,7 @@
041 91 0 3824 J1 DLB TABSC+82,64,0
041 92 0 3825 STP LINKX CALL IN FLOAT SUBROUTINE
041 93 0 3826 BUN LINK1
041 94 0 3827 LDB 1
041 94 0 3827 LDB I
041 95 0 3828 STB - V,21 FLOAT V(I)
041 96 0 3829 BUN ARTHA
041 97 0 3830 J2 STP ACCX STORE V(I) IN TEMP
@@ -4227,7 +4227,7 @@
042 34 0 3867 BUN ARTHB
042 35 0 3868 *B CFR SOLD,67
042 36 0 3869 BCU ARTHA
042 37 0 3870 SCNXX CLR CLR,FDB
042 37 0 3870 SCNXX CLR CLR,FDV
042 38 0 3871 FDV TEMP2
042 39 0 3872 BUN ARTHB
042 40 0 3873 *X IFL RR0,21,1
@@ -4264,7 +4264,7 @@
042 71 0 3904 BPA X+
042 72 0 3905 LDR OPRTN
042 73 0 3906 BFR X+,21,0
042 74 0 3907 LBC 1
042 74 0 3907 LBC I
042 75 0 3908 CSU - V3
042 76 0 3909 STA - V3
042 77 0 3910 LDB I
@@ -4277,7 +4277,7 @@
042 84 0 3917 BCE D+ IS IT 1.0
042 85 0 3918 *Q CAB
042 86 0 3919 DBB 0,9999 IS IT 10,100,1000,...,1000000000
042 87 0 3920 SLT 10
042 87 0 3920 SLT 19
042 88 0 3921 BFA *-2,11,0
042 89 0 3922 SLT 1
042 90 0 3923 CFR XONE+1,00
@@ -4364,7 +4364,7 @@
043 71 0 4004 ARTHX BUN *
043 74 0 4005 LINK1 LDR - I
043 74 0 4005 LINK1 LDR - 1
043 75 0 4006 STR EXPLN
043 76 0 4007 LINK STP LIBRX MAKE SURE LIBRARY ROUTINE IS IN STORAGE
043 77 0 4008 BUN LIBRF
@@ -4451,7 +4451,7 @@
044 58 0 4079 CAD WRTF
044 59 0 4080 CFA PREV,04
044 60 0 4081 BCH A+ IF WE CAN FIX UP THE INSTRUCTION WHILE
044 61 0 4082 CAD - BUF+I IT SITS IN TEH OUTPUT BUFFER, WE WILL
044 61 0 4082 CAD - BUF+1 IT SITS IN THE OUTPUT BUFFER, WE WILL
044 62 0 4083 BFA A+,04,0 DO IT DIRECTLY
044 63 0 4084 CFA WRTF,04
044 64 0 4085 BCH A+
@@ -4596,8 +4596,8 @@
046 03 0 4219 F244 30,100,30
046 04 0 4220 F244 30,100,40 THE 64-FIELDS OF THESE CODES
046 05 0 4221 F244 30,100,50 ARE FIXED UP TO THE NUMBER
046 06 0 4222 FIX F244 31,100,60 OF LOCATIONS USED BY THE ROUTINES.
046 07 0 4223 CNST $FIX$
046 06 0 4222 FIX F244 31,100,60 OF LOCATIONS USED BY THE ROUTINES,
046 07 0 4223 CNST $FIX$ THE THE LIBRARY PROCESSOR.
046 08 0 4224 FLOAT F244 30,100,71
046 09 0 4225 CNST $FLOAT$
046 10 0 4226 MONTR F244 30,100,80
@@ -4608,7 +4608,7 @@
046 15 0 4231 DUMPR F244 40,DMPER,0
046 16 0 4232 RITE F244 30,10,0
046 17 0 4233 REED F244 30,10,0
046 18 0 4234 SCNT DEFN *
046 18 0 4234 SCNT DEFN * THE BEGINNING OF ASSOCIATIVE MEMORY
046 20 0 4234 LOCN 4500
046 21 0 4500 STACK CRF 4 FR1+28,21,RLO INITIALIZATION OF THE PROGRAM

Binary file not shown.

View File

@@ -12,7 +12,7 @@ format, with carriage-return/line-feed delimiters.
BALGOL-Generator.bacg
Assembly listing of the BALGOL comiler-generator program,
transcribed by Paul Kimpel from
transcribed by Paul Kimpel from:
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
This program is written using a different assembly language than the
@@ -20,10 +20,11 @@ BALGOL-Generator.bacg
BALGOL-Main.baca
Assembly listing of the BALGOL compiler main-line module,
transcribed by Paul Kimpel from
transcribed by Paul Kimpel from:
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
This transcription reflects the corrections hand-coded on the listing.
This transcription reflects the corrections hand-coded on the
listing.
BALGOL-Main.card
Card-image input deck of BALGOL-Main.baca prepared for input to the
@@ -31,10 +32,11 @@ BALGOL-Main.card
BALGOL-Overlay.baca
Assembly listing of the BALGOL compiler overlay module, transcribed
by Paul Kimpel from
by Paul Kimpel from:
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
This transcription reflects the corrections hand-coded on the listing.
This transcription reflects the corrections hand-coded on the
listing.
BALGOL-Overlay.card
Card-image input deck of BALGOL-Overlay.baca prepared for input to
@@ -42,11 +44,22 @@ BALGOL-Overlay.card
BALGOL-Intrinsics/
Assembly listings (.baca) and input card decks (.card) for the
BALGOL intrinsic function library, transcribed by Paul Kimpel from
BALGOL intrinsic function library, transcribed by Paul Kimpel from:
http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/
PDF_index/k-1-pdf/k-1-u2196-balgol220compiler.pdf.
These transcriptions reflect some notations and corrections hand-
coded on the listings.
BALGOL-Examples/
Sample BALGOL programs transcribed from Section 11 of the BAC-220
Burroughs Algebraic Compiler manual, revised edition, March 1963,
Burroughs document 220-21017, available at:
http://bitsavers.org/pdf/burroughs/electrodata/220/
220-21017_B220_BALGOL_Mar63.pdf.
A sub-folder contains copies of these programs converted to run on
the Burroughs B5500 (retro-b5500 emulator) and modern Unisys
ClearPath MCP (E-mode) systems.
Paul Kimpel
January 2017
March 2017

View File

@@ -70,6 +70,11 @@ DIV.heading {
padding: 0;
vertical-align: top}
#OptionsPanel {
position: relative;
margin-top: 4px;
margin-bottom: 4px}
#CRFileSelector {
position: absolute;
top: 8px;
@@ -79,7 +84,7 @@ DIV.heading {
#TextPanel {
position: absolute;
top: 80px;
top: 90px;
left: 0;
bottom: 200px;
width: 640px;
@@ -109,6 +114,14 @@ DIV.heading {
<input id=CRFileSelector type=file size=90>
</div>
<div id=OptionsPanel>
<input id=Pass1ListCheck type=checkbox value=1>
<label for=Pass1ListCheck>Pass 1 Listing</label>
&nbsp;&nbsp;
<input id=Pass2ListCheck type=checkbox value=1 CHECKED>
<label for=Pass2ListCheck>Pass 2 Listing</label>
</div>
<div id=TextDiv>
<pre id=TextPanel></pre>
</div>
@@ -125,6 +138,9 @@ window.addEventListener("load", function() {
var bufferOffset = 0;
var eolRex = /([^\n\r\f]*)((:?\r[\n\f]?)|\n|\f)?/g;
var pass1List = false;
var pass2List = true;
var panel = $$("TextPanel");
var rTrimRex = /\s*$/;
var sprintLimit = 100; // cards processed before yielding control
@@ -1703,16 +1719,19 @@ window.addEventListener("load", function() {
/* Prints a line of output from Pass 1 of the assembly to the text panel */
var text; // formatted line image
if (opCode === null) {
text = padRight(" ", 8+5+4+3, " ");
} else {
text = padLeft(seq, 8, " ") + " " + padLeft(location, 4, "0") + " ";
}
if (pass1List) {
if (opCode === null) {
text = padRight(" ", 8+5+4+3, " ");
} else {
text = padLeft(seq, 8, " ") + " " + padLeft(location, 4, "0") + " ";
}
text += padRight(label, 6) + padRight(opCode || " ", 4) + padRight(sign, 2, " ") + rTrim(operand);
printLine(text);
if (errorTank.length > 0) {
dumpErrorTank();
text += padRight(label, 6) + padRight(opCode || " ", 4) +
padRight(sign, 2, " ") + rTrim(operand);
printLine(text);
if (errorTank.length > 0) {
dumpErrorTank();
}
}
}
@@ -1894,7 +1913,9 @@ window.addEventListener("load", function() {
dumpErrorTank();
printLine("END OF PASS 1, ERRORS = " + errorCount);
dumpSymbolTable();
if (pass1List || pass2List) {
dumpSymbolTable();
}
if (errorCount == 0) { // advance to Pass 2
setTimeout(initializePass2, 100);
@@ -1960,31 +1981,34 @@ window.addEventListener("load", function() {
var w; // scratch variable for word field partitioning
var wordText; // instruction word as text "9 9999 99 9999"
if (opCode === null) {
text = padRight(" ", 8+6+6+4+16+3, " ");
} else {
if (word === null) {
wordText = padRight(" ", 16, " ");
if (pass2List) {
if (opCode === null) {
text = padRight(" ", 8+6+6+4+16+3, " ");
} else {
w = word;
addr = w % 10000;
w = (w-addr)/10000;
op = w % 100;
w = (w-op)/100;
variant = w % 10000;
w = (w-variant)/10000; // should be just the sign digit left
wordText = padLeft(w, 3, " ") + " " + padLeft(variant, 4, "0") + " " +
padLeft(op, 2, "0") + " " + padLeft(addr, 4, "0");
if (word === null) {
wordText = padRight(" ", 16, " ");
} else {
w = word;
addr = w % 10000;
w = (w-addr)/10000;
op = w % 100;
w = (w-op)/100;
variant = w % 10000;
w = (w-variant)/10000; // should be just the sign digit left
wordText = padLeft(w, 3, " ") + " " + padLeft(variant, 4, "0") + " " +
padLeft(op, 2, "0") + " " + padLeft(addr, 4, "0");
}
text = padLeft(seq, 8, " ") + padLeft(serial || " ", 6, " ") +
" " + padLeft(location, 4, "0") + wordText + " ";
}
text = padLeft(seq, 8, " ") + padLeft(serial || " ", 6, " ") +
" " + padLeft(location, 4, "0") + wordText + " ";
}
text += padRight(label, 6) + padRight(opCode || " ", 4) + padRight(sign, 2, " ") + rTrim(operand);
printLine(text);
if (errorTank.length > 0) {
dumpErrorTank();
text += padRight(label, 6) + padRight(opCode || " ", 4) +
padRight(sign, 2, " ") + rTrim(operand);
printLine(text);
if (errorTank.length > 0) {
dumpErrorTank();
}
}
}
@@ -2210,6 +2234,7 @@ window.addEventListener("load", function() {
}
buffer = ""; // release the card buffer area
dumpErrorTank();
printLine("");
printLine("END OF PASS 2, ERRORS = " + errorCount);
$$("TextDiv").removeChild($$("Spinner")); // remove the spinner image
@@ -2244,6 +2269,10 @@ window.addEventListener("load", function() {
$$("CRFileSelector").value = null; // clear any prior file selection
$$("CRFileSelector").addEventListener("change", fileSelector_onChange, false);
pass1List = $$("Pass1ListCheck").checked;
$$("Pass1ListCheck").addEventListener("click", function(ev) {pass1List = ev.target.checked});
pass2List = $$("Pass2ListCheck").checked;
$$("Pass2ListCheck").addEventListener("click", function(ev) {pass2List = ev.target.checked});
}, false);
</script>