From af47e574af658854fc28783202980730846df1ec Mon Sep 17 00:00:00 2001 From: Paul Kimpel Date: Sun, 5 Mar 2017 09:21:56 -0800 Subject: [PATCH] 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. --- .../B5500-EMODE/Example-1-B5500.alg_m | 216 +++++++++ .../B5500-EMODE/Example-1-B5500.lst | 397 ++++++++++++++++ .../B5500-EMODE/Example-1-EMODE.alg_m | 209 +++++++++ .../B5500-EMODE/Example-1-EMODE.lst | 439 ++++++++++++++++++ .../B5500-EMODE/Example-1-EMODE.wfl_m | 12 + .../Example-1-BALGOL-Typos.card | 172 +++++++ .../BALGOL-Examples/Example-1-BALGOL.card | 173 +++++++ software/BALGOL/BALGOL-Main.baca | 92 ++-- software/BALGOL/BALGOL-Main.card | Bin 764734 -> 764734 bytes software/BALGOL/README.txt | 27 +- software/tools/BAC-Assembler.html | 95 ++-- 11 files changed, 1746 insertions(+), 86 deletions(-) create mode 100644 software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.alg_m create mode 100644 software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.lst create mode 100644 software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.alg_m create mode 100644 software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.lst create mode 100644 software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.wfl_m create mode 100644 software/BALGOL/BALGOL-Examples/Example-1-BALGOL-Typos.card create mode 100644 software/BALGOL/BALGOL-Examples/Example-1-BALGOL.card diff --git a/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.alg_m b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.alg_m new file mode 100644 index 0000000..a0b8de3 --- /dev/null +++ b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.alg_m @@ -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 diff --git a/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.lst b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.lst new file mode 100644 index 0000000..0d65a1d --- /dev/null +++ b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-B5500.lst @@ -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 diff --git a/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.alg_m b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.alg_m new file mode 100644 index 0000000..03d7279 --- /dev/null +++ b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.alg_m @@ -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 diff --git a/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.lst b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.lst new file mode 100644 index 0000000..7f15889 --- /dev/null +++ b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.lst @@ -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 + diff --git a/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.wfl_m b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.wfl_m new file mode 100644 index 0000000..49cc628 --- /dev/null +++ b/software/BALGOL/BALGOL-Examples/B5500-EMODE/Example-1-EMODE.wfl_m @@ -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 diff --git a/software/BALGOL/BALGOL-Examples/Example-1-BALGOL-Typos.card b/software/BALGOL/BALGOL-Examples/Example-1-BALGOL-Typos.card new file mode 100644 index 0000000..8f4cfa5 --- /dev/null +++ b/software/BALGOL/BALGOL-Examples/Example-1-BALGOL-Typos.card @@ -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)), <>xOO#aZ9!UA!KO_ba5_m zBb5Oo8EN+hhs4<6QvG9@O`)>8WJ$M~#VjT&F$R$k(P{j{Og43yizdcvG3Nep?m79K zobNgJ-29>|zvxO#nO?j(nUBNfw@HP02#=U!WJl5`puHapv!3iX>*x;i6VhWYDBDMS z;L7O&_>x)6f_Pi*7`qywFQZ-N*4S%iw2|i~V!aQrTmI39J2v1D+#SZ{vS%273M|MC~lFvN=UJNs-A>pzLwlN3Jr_IE>l24HV8iCVTh&`-1PyeGa%YY_(nf! zLm?DEe$<3o(5px(R`)jKM0?Oa`2LP~F6rY+KLb~eaCv8zRBSP0Gl8V9=-;S3vPx(JpYRx+zvraz3*=| zhMfjbi!6S|Fb+b~o1~D#<~e(&=>@58&aYF%2j4n@LF z0fJ5}u_}}iUJ8XDnOKS`$V!n5YHlKl72-y=flApjcC$WQ%G!yWnMrBbnZfdfYPLf3 z(fh)*m)QdiY83O8(CA>m^9Nb@PCL4ojv8RI2N}7$2R+L`=eThKeI&>R^AAuuPkDkS zlffNBhOjdyGLIzKUO=tjs?n+-HxBq{6#dOcRbb?*f95@^a*#4jErh$}BG^jB61VTe zDFl`AGkTny#`2DNV92WCSNV9k1AH-@#>W8HrGS1`+o84-c*_(nR3P|;G=epXDgQo? zGcBxcxDi&?)J4xa&J-YfR@;zp$G+lX1@wo-ys$GnPQbm1V`72Etg&ed;9Uth!MnF` zMmtqcEE*fsH%kX2*JR3tUF|1Hjl2vk zgi>BC($Q(wbiF!WHl9$vKs^>xqp9Vy>vV^L&yGxq!JBWiZw!`Sh*$XBJ@FwyW;n5= zI}S|&oWz6u;^YYAW=T%4t?MX^nIzil%aXV+OP5-fC}bFy0?^W`qrFm_j!SLw;sNL$ z7dv5prA*yR3!c(q|DKT-0D^3M!(W@ +
+ + +    + + +
+

 
@@ -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);