1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-04-27 12:30:12 +00:00

Commit initial production release of BALGOL compiler, library, and tools.

1. Finalize compiler helper card decks.
2. Finalize example BALGOL programs.
3. Fix problem with relocation of ERROR library routine buffer address
(issue #1).
4. Update Generator tape build notes.
This commit is contained in:
Paul Kimpel
2018-07-16 15:31:31 -07:00
parent 2d06034237
commit 653cbe98cb
27 changed files with 609 additions and 100 deletions

View File

@@ -0,0 +1,352 @@
?COMPILE DIRCHLT/B5500 XALGOL GO
?DATA CARD
$ CARD LIST SINGLE 00000100
% DIRICHLET PROBLEM FOR A BEAN-SHAPED REGION. FROM P J DAVIS, 00100100
% "ORTHONORMALIZING CODES IN NUMERICAL ANALYSIS" IN J TODD, --SURVEY OF 00100200
% NUMERICAL ANLAYSIS--, MCGRAW-HILL, 1962, P.347. P H KIMPEL 8/15/70 00100300
% MODIFICATION LOG: 00100320
% 92/03/17 P.KIMPEL, PARADIGM CORP, SAN DIEGO, CA 92117. 00100321
% CONVERT FOR UNISYS A-SERIES MCP 3.8.4. 00100322
% 2014-11-15 P.KIMPEL 00100330
% RETRO-CONVERT FROM UNISYS MCP ALGOL BACK TO BURROUGHS B5500 XALGOL. 00100331
00100398
BEGIN 00100400
FILE IN CDS (1,10); 00100500
FILE OUT PR 18 (2,17); 00100600
FORMAT F1 (X30,I3,2F10.3,4F10.5), 00100700
F2 (X40,"X",X9,"Y",X9,"W",X8,"BV",X7,"CBV,",X7,"DEV"), 00100800
FT (///X40,"PROCESSOR TIME: ", F6.2," SEC"); 00100900
DEFINE N = 43#, M = 11#, P = 11#, N1 = 42#, M1 = 10#, P1 = 10#; 00101000
LABEL QUIT; 00101100
INTEGER I, J; 00101200
INTEGER STARTT; 00101210
REAL SUM, GMDT; 00101300
ARRAY 00101400
X, % ABSCISSA VALUES. 00101500
Y, % ORDINATE VALUES. 00101600
W, % WEIGHTS. 00101700
CBV[0:N1], % BOUNDARY VALUES CALCULATED FROM ORTHO COEFS.00101800
BV[0:0, 0:N1+P], % GIVEN BOUNDARY VALUES. 00101900
Z[0:M1, 0:N1+P], % APPROXIMATING VECTORS. 00102000
ORTHV[0:M, 0:N1+P], % ORTHONORMAL VECTORS RETURNED BY "ORTHO" 00102100
DEV[0:0, 0:N1], % DEVIATIONS. 00102200
COF[0:0, 0:P1], % COEFFICIENTS. 00102300
STD[0:0], % STANDARD DEVIATION. 00102400
CV[0:P, 0:P1], % COVARIANCE MATRIX. 00102500
VCV[0:0, 0:P, 0:P1], % VARIANCE/COVARIANCE MATRIX. 00102600
Q[0:0, 0:M], % FOURIER COEFFICIENTS. 00102700
Q2, % SQUARED FOURIER COEFFICIENTS. 00102800
E, % SUM OF SQUARED RESIDUALS. 00102900
EP[0:0, 0:M1], % RESIDUALS. 00103000
A[0:M1, 0:P1], % LOWER TRIANGULAR MATRIX USED TO CALC CV. 00103100
GF[0:M], % GRAM FACTORS. 00103200
ENF[0:M1]; % NORMS OF THE APPROXIMATING VECTORS. 00103300
%***********************************************************************00103400
PROCEDURE ORTHO (W, Y, Z, N, FN, M, P, R, AI, AUI, MUI, ZEI, X, DEV, 00103500
COF, STD, CV, VCV, GMDT, Q, Q2, E, EP, A, GF, ENF); 00103600
VALUE N, M, P, R, AI, AUI, MUI, ZEI; 00103700
REAL FN, GMDT; 00103800
REAL ARRAY STD, GF, W, ENF [1]; 00103900
REAL ARRAY Y, Z, X, DEV, COF, CV, Q, Q2, E, EP, A [1, 1]; 00104000
REAL ARRAY VCV [1, 1, 1]; 00104100
INTEGER N, M, P, R, AI, AUI, ZEI, MUI; 00104200
COMMENT 00104300
ORTHO IS TAKEN FROM ACM ALGORITHM 127 [COMM. ACM, VOL.5, 00104400
OCTOBER 1962, P. 511, AUTHOR: PHILIP J. WALSH]; 00104500
BEGIN 00104600
INTEGER NPP, NPM, M1, N2, M2, R1, RBAR, P2, BEI, RHI, I18, GAI, SII, I,00104700
J, DEI, NUI, E1Z2, E1Z1, K, THI, ALI, OMI, NII; 00104800
REAL ARRAY PK, XP [1:N+P], QK[1:M+1]; 00104900
REAL DENOM, SUM, DK2, DK, FI, SS, SSQ; 00105000
LABEL BOX1, AT1, AT2, BOX2, AU1, AU2, BOX3, BOX4, BOX5, BOX6, MU1, 00105100
MU2, BOX7, OM1, OM2, BOX8, DE1, BOX8A, BOX8B, DE2, BOX8C, BOX8D, 00105200
BOX9, TH1, TH2, TH3, BOX10, AL1, AL2, BOX11, NU1, NU2, BOX12, 00105300
BE1, BE2, BOX13, GA1, GA2, BOX14, RH1, ZE1, ZE2, RH2, SI1, SI2, 00105400
FINAL; 00105500
SWITCH AT := AT1, AT2; SWITCH ZE := ZE1, ZE2; 00105600
SWITCH AU := AU1, AU2; SWITCH MU := MU1, MU2; 00105700
SWITCH BE := BE1, BE2; SWITCH RH := RH1, RH2; SWITCH GA := GA1, GA2;00105800
SWITCH SI := SI1, SI2; SWITCH DE := DE1, DE2; SWITCH NU := NU1, NU200105900
; 00106000
SWITCH TH := TH1, TH2, TH3; SWITCH AL := AL1, AL2; 00106100
SWITCH OM := OM1, OM2; 00106200
NPP := N+P; NPM := N+M; M1 := M-1; N2 := N+1; M2 := M+1; 00106300
R1 := 0; RBAR := R; P2 := P+1; DENOM := IF N=M THEN 1.0 00106400
ELSE SQRT(N-M); BEI := RHI := I18 := 1; 00106500
IF (P NEQ 0) THEN GAI := SII := 2 ELSE GAI := SII := 1; 00106600
BOX1: GO TO AT[AI]; 00106700
AT1: FOR J := 1 STEP 1 UNTIL N DO BEGIN 00106800
X[2,J] := Z[1,J]; X[1,J] := 1.0 END; 00106900
FOR I := 2 STEP 1 UNTIL M1 DO BEGIN 00107000
FOR J := 1 STEP 1 UNTIL N DO 00107100
X[I+1,J] := X[I,J] | X[2,J] END; GO TO BOX2; 00107200
AT2: FOR I := 1 STEP 1 UNTIL M DO BEGIN 00107300
FOR J := 1 STEP 1 UNTIL N DO 00107400
X[I,J] := Z[I,J] END; 00107500
BOX2: IF P = 0 THEN GO TO BOX3 ELSE GO TO AU[AUI]; 00107600
AU1: FOR I := 1 STEP 1 UNTIL M DO BEGIN 00107700
FOR J := N2 STEP 1 UNTIL NPP DO 00107800
X[I,J] := 0.0; X[I,N+I] := 1.0 END; GO TO BOX3; 00107900
AU2: FOR I := 1 STEP 1 UNTIL M DO BEGIN 00108000
FOR J := N2 STEP 1 UNTIL NPP DO 00108100
X[I,J] := Z[I,J] END; 00108200
BOX3: DEI := NUI := E1Z1 := E1Z2 := K := 1; 00108300
BOX4: THI := 1; 00108400
BOX5: ALI := OMI := 1; IF P = 0 THEN GO TO BOX6 ELSE 00108500
FOR J := 1 STEP 1 UNTIL P DO PK[N+J] := 0.0; 00108600
BOX6: GO TO MU[MUI]; 00108700
MU1: FOR I := 1 STEP 1 UNTIL N DO PK[I] := X[K,I]; 00108800
GO TO BOX7; 00108900
MU2: FOR I := 1 STEP 1 UNTIL N DO 00109000
PK[I] := X[K,I] | W[I]; GO TO BOX7; 00109100
BOX7: GO TO OM[OMI]; 00109200
OM1: FOR I := 1 STEP 1 UNTIL K DO BEGIN SUM := 0.0; 00109300
FOR J := 1 STEP 1 UNTIL NPP DO 00109400
SUM := SUM + PK[J] | X[I,J]; QK[I] := SUM END; 00109500
GO TO BOX8; 00109600
OM2: DK2 := 0.0; FOR I := 1 STEP 1 UNTIL NPP DO 00109700
DK2 := DK2 + PK[I] | X[K,I]; 00109800
DK := SQRT(DK2); 00109900
GF[I18] := DK; I18 := I18 + 1; 00110000
FOR I := 1 STEP 1 UNTIL NPP DO 00110100
X[K,I] := X[K,I]/DK; 00110200
OMI := 1; GO TO BOX6; 00110300
BOX8: GO TO DE[DEI]; 00110400
DE1: E1Z1 := -E1Z1; IF E1Z1 < 0 THEN GO TO BOX8B ELSE 00110500
GO TO BOX8A; 00110600
BOX8A: FOR I := 1 STEP 1 UNTIL K-1 DO 00110700
QK[I] := -QK[I]; QK[K] := 1.0; 00110800
FOR I := 1 STEP 1 UNTIL NPP DO BEGIN 00110900
SUM := 0.0; FOR J := 1 STEP 1 UNTIL K DO 00111000
SUM := SUM + X[J,I] | QK[J]; 00111100
XP[I] := SUM END; GO TO BOX9; 00111200
BOX8B: ENF[I18] := SQRT(QK[K]); GO TO BOX8A; 00111300
DE2: E1Z2 := -E1Z2; IF E1Z2 < 0 THEN GO TO BOX8C ELSE 00111400
GO TO BOX8A; 00111500
BOX8C: FOR I := 1 STEP 1 UNTIL M DO BEGIN 00111600
Q[R1,I] := QK[I]; Q2[R1,I] := QK[I] | QK[I] END; 00111700
Q[R1,M2] := QK[M2]; E[R1,1] := Q[R1,M2] - Q2[R1,1]; 00111800
FOR J := 2 STEP 1 UNTIL M DO 00111900
E[R1,J] := E[R1,J-1] - Q2[R1,J]; 00112000
FI := 1.0; 00112100
FOR I := 1 STEP 1 UNTIL M DO BEGIN 00112200
IF (FN - FI) > 0.0 THEN BEGIN IF E[R1,I] < 0.0 THEN 00112300
BEGIN EP[R1,I] := -SQRT(ABS(E[R1,I])/(FN - FI)); 00112400
GO TO BOX8D; END 00112500
ELSE EP[R1,I] := SQRT(E[R1,I]/(FN - FI)); 00112600
GO TO BOX8D; END ELSE E[R1,I] := -1.0; 00112700
BOX8D: FI := FI + 1.0; END; GO TO BOX8A; 00112800
BOX9: GO TO TH[THI]; 00112900
TH1: FOR I := 1 STEP 1 UNTIL NPP DO 00113000
X[K,I] := XP[I]; GO TO BOX10; 00113100
TH2: FOR I := 1 STEP 1 UNTIL N DO 00113200
DEV[R1,I] := XP[I]; 00113300
FOR I := 1 STEP 1 UNTIL P DO 00113400
COF[R1,I] := -XP[N+I]; THI := 3; GO TO TH1; 00113500
TH3: GO TO BOX11; 00113600
BOX10: GO TO AL[ALI]; 00113700
AL1: OMI := ALI := 2; GO TO BOX6; 00113800
AL2: IF K < M THEN BEGIN K := K + 1; GO TO BOX4; END 00113900
ELSE GO TO BOX12; 00114000
BOX11: GO TO NU[NUI]; 00114100
NU1: NUI := 2; GO TO BOX14; 00114200
NU2: SS := DK/DENOM; SSQ := SS | SS; 00114300
STD[R1] := SS; GO TO BOX14; 00114400
BOX12: GO TO BE[BEI]; 00114500
BE1: FOR I := 1 STEP 1 UNTIL M DO BEGIN 00114600
FOR J := 1 STEP 1 UNTIL P DO 00114700
A[I,J] := X[I,N+J] END; 00114800
GMDT := 1.0; FOR I := 1 STEP 1 UNTIL M DO 00114900
GMDT := GMDT | (GF[I]/ENF[I]); 00115000
GMDT := GMDT | GMDT; DEI := BEI := THI := 2; 00115100
K := K + 1; GO TO BOX13; 00115200
BE2: GO TO BOX11; 00115300
BOX13: GO TO GA[GAI]; 00115400
GA1: GO TO BOX11; 00115500
GA2: FOR I := 1 STEP 1 UNTIL P DO BEGIN 00115600
FOR J := I STEP 1 UNTIL P DO BEGIN 00115700
SUM := 0.0; 00115800
FOR NII := 1 STEP 1 UNTIL M DO 00115900
SUM := SUM + A[NII,I] | A[NII,J]; 00116000
CV[I,J] := SUM END END; 00116100
FOR I := 1 STEP 1 UNTIL P DO 00116200
CV[P2,I] := SQRT(CV[I,I]); GAI := 1; GO TO BOX11; 00116300
BOX14: GO TO RH[RHI]; 00116400
RH1: IF RBAR = 0 THEN GO TO FINAL ELSE RBAR := RBAR - 1; 00116500
R1 := R1 + 1; THI := RHI := 2; GO TO ZE[ZEI]; 00116600
ZE1: FOR I := 1 STEP 1 UNTIL N DO 00116700
X[M2,I] := Y[R1,I]; 00116800
FOR I := 1 STEP 1 UNTIL P DO 00116900
X[M2,N+I] := 0.0; GO TO BOX5; 00117000
ZE2: FOR I := 1 STEP 1 UNTIL NPP DO 00117100
X[M2,I] := Y[R1,I]; GO TO BOX5; 00117200
RH2: GO TO SI[SII]; 00117300
SI1: GO TO RH1; 00117400
SI2: FOR I := 1 STEP 1 UNTIL P DO BEGIN 00117500
FOR J := I STEP 1 UNTIL P DO 00117600
VCV[R1,I,J] := SSQ | CV[I,J] END; 00117700
FOR I := 1 STEP 1 UNTIL P DO 00117800
VCV[R1, P2, I] := SS | CV[P2,I]; GO TO RH1; 00117900
FINAL: END ORTHO ; 00118000
%***********************************************************************00118100
REAL PROCEDURE G (I, X, Y); 00118200
VALUE I, X, Y; REAL X, Y; INTEGER I; 00118300
CASE (I - 1) OF 00118400
BEGIN 00118500
G := 1; % 100118600
G := X; % 200118700
G := Y; % 300118800
G := X*2 - Y*2; % 400118900
G := 2.0 | X | Y; % 500119000
G := X*3 - 3.0 | X | Y*2; % 600119100
G := 3.0 | X*2 | Y - Y*3; % 700119200
G := X*4 + Y*4 - 6.0 | X*2 | Y*2; % 800119300
G := 4.0 | X*3 | Y - 4.0 | X | Y*3; % 900119400
G := X*5 - 10.0 | X*3 | Y*2 + 5.0 | X | Y*4; %1000119500
G := Y*5 - 10.0 | Y*3 | X*2 + 5.0 | Y | X*4; %1100119600
G := X*6 - 15.0 | X*4 | Y*2 + 15.0 | X*2 | Y*4 - Y*6; %1200119700
G := 6.0 | X*5 | Y + 6.0 | X | Y*5 - 20.0 | X*3 | Y*3; %1300119800
G := X*7 - 21.0 |X*5 | Y*2 + 35.0 | X*3 | Y*4 - 7.0 | X | %1400119900
Y*6; 00120000
G := 7.0 |X*6 | Y - 35.0 | X*4 | Y*3 + 21.0 | X*2 | Y*5 - %1500120100
Y*7; 00120200
G := X*8 + Y*8 - 28.0 |X*6 | Y*2 + 70.0 | X*4 | Y*4 - 28.0 00120300
| X*2 | Y*6; %1600120400
G := 8.0 | X*7 |Y - 56.0 | X*5 | Y*3 + 56.0 | X*3 | Y*5 00120500
- 8.0 |X | Y*7; %1700120600
END G; 00120700
00120780
STARTT := TIME(1); 00120790
FOR I := 0 STEP 1 UNTIL N1 DO 00120800
BEGIN 00120900
READ (CDS, /, X[I], Y[I], W[I]); 00121000
BV[0,I] := EXP(X[I]) | COS(Y[I]) + LN((1 - Y[I])*2 + X[I]*2); 00121100
FOR J := 0 STEP 1 UNTIL M1 DO 00121200
Z[J,I] := G(J+1, X[I], Y[I]); 00121300
END; 00121400
CLOSE (CDS); 00121500
ORTHO (W, BV, Z, N , N , M , P, 1, 2, 1, 2, 1, ORTHV, DEV, COF, STD, 00121600
CV, VCV, GMDT, Q, Q2, E, EP, A, GF, ENF); 00121700
FOR I := 0 STEP 1 UNTIL N1 DO 00121800
BEGIN SUM := 0; 00121900
FOR J:=0 STEP 1 UNTIL M1 DO SUM := SUM + COF[0,J]|G(J+1, X[I], Y[I]00122000
); 00122100
CBV[I] := SUM; 00122200
END; 00122300
WRITE (PR[DBL], F2); 00122400
WRITE (PR, F1, FOR I := 0 STEP 1 UNTIL N1 DO [I,X[I],Y[I],W[I], BV[0,I],00122500
CBV[I], (CBV[I]-BV[0,I])]); 00122600
WRITE (PR, FT, TIME(2)/60); 00122700
QUIT: 00122800
BEGIN 00122900
COMMENT INNER BLOCK; 00123000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00123100
PROCEDURE DMMP (NAME, ROW, SZ); 00123200
VALUE NAME, SZ; 00123300
ALPHA NAME, SZ; 00123400
ARRAY ROW[0]; 00123500
BEGIN 00123600
REAL 00123700
I, 00123800
UB; 00123900
FORMAT 00124000
F (A6," = ",/*(6E20.11,/)); 00124100
UB := SZ-1; 00124200
WRITE (PR[DBL]); 00124300
WRITE (PR[DBL]); 00124310
WRITE (PR, F, NAME, (SZ+5)DIV 6, 00124400
FOR I:=0 STEP 1 UNTIL UB DO ROW[I]); 00124410
END DMMP; 00124500
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%00124600
ARRAY NR[0:99]; 00124700
FOR I := 0 STEP 1 UNTIL 99 DO 00124800
REPLACE POINTER(NR[I])+6 BY I FOR 2 DIGITS; 00124900
00125000
DMMP ("X ", X, N1+1); 00125100
DMMP ("Y ", Y, N1+1); 00125200
DMMP ("W ", W, N1+1); 00125300
DMMP ("CBV ", CBV, N1+1); 00125400
DMMP ("BV ", BV[0,*], N1+P+1); 00125500
FOR I := 0 STEP 1 UNTIL M1 DO 00125600
BEGIN 00125700
SUM := "Z " & NR[I] [11:12]; 00125800
DMMP (SUM, Z[I,*], N1+P+1); 00125900
END; 00126000
FOR I := 0 STEP 1 UNTIL M DO 00126100
BEGIN 00126200
SUM := "ORTHV " & NR[I] [11:12]; 00126300
DMMP (SUM, ORTHV[I,*], N1+P+1); 00126400
END; 00126500
DMMP ("DEV ", DEV[0,*], N1+1); 00126600
DMMP ("COF ", COF[0,*], P1+1); 00126700
DMMP ("STD ", STD, 1); 00126800
FOR I := 0 STEP 1 UNTIL P DO 00126900
BEGIN 00127000
SUM := "CV " & NR[I] [11:12]; 00127100
DMMP (SUM, CV[I,*], P1+1); 00127200
END; 00127300
FOR I := 0 STEP 1 UNTIL P DO 00127400
BEGIN 00127500
SUM := "VCV " & NR[I] [11:12]; 00127600
DMMP (SUM, VCV[0,I,*], P1+1); 00127700
END; 00127800
DMMP ("EP ", EP[0,*], M1+1); 00127900
FOR I := 0 STEP 1 UNTIL M1 DO 00128000
BEGIN 00128100
SUM := "A " & NR[I] [11:12]; 00128200
DMMP (SUM, A[I,*], P1+1); 00128300
END; 00128400
DMMP ("GF ", GF, M+1); 00128500
DMMP ("Q ", Q[0,*], M+1); 00128600
DMMP ("Q2 ", Q2[0,*], M1+1); 00128700
DMMP ("E ", E[0,*], M1+1); 00128800
DMMP ("ENF ", ENF, M1+1); 00128900
END INNER BLOCK; 00129000
WRITE (PR, </,"ELAPSED=",F8.2,", PROCESSOR=",F8.2,", I/O=",F8.2," SEC">,00129080
(TIME(1)-STARTT)/60, TIME(2)/60, TIME(3)/60); 00129090
END. 00129100
?DATA CDS
0.000, 0.110, 0.01414,
-0.050, 0.108, 0.01427,
-0.100, 0.115, 0.01963,
-0.160, 0.150, 0.02300,
-0.220, 0.205, 0.03897,
-0.320, 0.300, 0.02792,
-0.400, 0.358, 0.03324,
-0.500, 0.420, 0.01483,
-0.550, 0.436, 0.01423,
-0.600, 0.430, 0.01505,
-0.644, 0.400, 0.01483,
-0.660, 0.350, 0.01420,
-0.655, 0.300, 0.02881,
-0.635, 0.200, 0.03043,
-0.595, 0.100, 0.03076,
-0.552, 0.000, 0.03311,
-0.500, -0.105, 0.03175,
-0.440, -0.200, 0.01809,
-0.400, -0.250, 0.01998,
-0.350,-0.300, 0.01882,
-0.300, -0.344, 0.03140,
-0.204, -0.400, 0.03450,
-0.100, -0.436, 0.02846,
0.000, -0.448, 0.02831,
0.100, -0.442, 0.03860,
0.230, -0.400, 0.02431,
0.300, -0.350, 0.02059,
0.353, -0.300, 0.03566,
0.430, -0.200, 0.03122,
0.477, -0.100, 0.02975,
0.510, 0.000, 0.02846,
0.522, 0.100, 0.01696,
0.520, 0.160, 0.02330,
0.500, 0.240, 0.02102,
0.456, 0.300, 0.01795,
0.400, 0.330, 0.01147,
0.360, 0.337, 0.01762,
0.300, 0.320, 0.01648,
0.250, 0.290, 0.01901,
0.300, 0.245, 0.01901,
0.150, 0.200, 0.01809,
0.100, 0.160, 0.01677,
0.050, 0.128, 0.01501,
?END

View File

@@ -0,0 +1,43 @@
0.000, 0.110, 0.01414
-0.050, 0.108, 0.01427
-0.100, 0.115, 0.01963
-0.160, 0.150, 0.02300,
-0.220, 0.205, 0.03897,
-0.320, 0.300, 0.02792,
-0.400, 0.358, 0.03324,
-0.500, 0.420, 0.01483,
-0.550, 0.436, 0.01423
-0.600, 0.430, 0.01505,
-0.644, 0.400, 0.01483,
-0.660, 0.350, 0.01420
-0.655, 0.300, 0.02881,
-0.635, 0.200, 0.03043,
-0.595, 0.100, 0.03076,
-0.552, 0.000, 0.03311
-0.500, -0.105, 0.03175,
-0.440, -0.200, 0.01809,
-0.400, -0.250, 0.01998,
-0.350,-0.300, 0.01882,
-0.300, -0.344, 0.03140,
-0.204, -0.400, 0.03450,
-0.100, -0.436, 0.02846,
0.000, -0.448, 0.02831,
0.100, -0.442, 0.03860,
0.230, -0.400, 0.02431,
0.300, -0.350, 0.02059,
0.353, -0.300, 0.03566,
0.430, -0.200, 0.03122,
0.477, -0.100, 0.02975,
0.510, 0.000, 0.02846,
0.522, 0.100, 0.01696
0.520, 0.160, 0.02330,
0.500, 0.240, 0.02102,
0.456, 0.300, 0.01795,
0.400, 0.330, 0.01147,
0.360, 0.337, 0.01762,
0.300, 0.320, 0.01648,
0.250, 0.290, 0.01901,
0.300, 0.245, 0.01901
0.150, 0.200, 0.01809,
0.100, 0.160, 0.01677,
0.050, 0.128, 0.01501,

View File

@@ -0,0 +1,20 @@
BEGIN JOB MISC/DIRICHLET; 00100100
JOBSUMMARY = UNCONDITIONAL; 00100200
00102000
PRINTDEFAULTS = (PRINTDISPOSITION=EOJ, DESTINATION="PCTEXT"); 00102100
00110000
TASK 00110100
T; 00110200
00900000
COMPILE OBJECT/MISC/DIRICHLET ALGOL [T] LIBRARY; 00900100
ALGOL FILE SOURCE = SRCE/MISC/DIRICHLET ON DISK; 00900200
OPTION = (FAULT, DSED, ARRAY); 00900300
ALGOL DATA 00900400
$ SET MERGE LIST 00900500
? 00900600
IF T IS COMPILEDOK THEN 00900700
BEGIN 00900800
RUN OBJECT/MISC/DIRICHLET; 00900900
FILE CDS (DEPENDENTSPECS, TITLE=DATA/MISC/DIRICHLET ON DISK); 00901000
END; 00901100
? END JOB 00999900

View File

@@ -72,19 +72,19 @@ Reference-Manual/
loadable object program onto cards or paper tape.
The "-Object.card" file is the card deck of object code
generated by running the "BAC-220-Compiled-Object-Dump-
Callout.card" program against "-Object.tape" with Program
generated by running the "BAC-220-Object-Dump-Callout.card"
program against "-Object.tape" with Program
Control Switch 4 off.
The "-Object-WITH-LOADER.card" file is a complete load-and-go
card deck for the program. It consists of:
1. The BAC-220-Compiled-Object-Program-Loader-Bootstrap.card
deck, followed by...
2. The BAC-220-Compiled-Object-Program-Loader.card deck,
generated by running the "BAC-220-Compiled-Object-Dump-
Callout.card" program against "-Object.tape" with Program
Control Switch 4 on, followed by...
1. The BAC-220-Object-Program-Loader-Bootstrap.card deck,
followed by...
2. The BAC-220-Object-Program-Loader.card deck, generated by
running the "BAC-220-Object-Dump-Callout.card" program
against "-Object.tape" with Program Control Switch 4 on,
followed by...
3. A blank card to allow the card reader format bands to be
loaded, followed by...
4. The card deck of object code in the "-Object.card" file
@@ -92,16 +92,15 @@ Reference-Manual/
5. The data for the object program.
The "-Object.pt" file is the paper tape image of object code
generated by running the "BAC-220-Compiled-Object-Dump-
Callout.card" program against "-Object.tape" with Program
Control Switch 3 on and 4 off. This combination generates a tape
with just the object program and no loader. To load and run the
program:
generated by running the "BAC-220-Object-Dump-Callout.card"
program against "-Object.tape" with Program Control Switch 3 on
and 4 off. This combination generates a tape with just the
object program and no loader. To load and run the program:
* Mount the compiler tape on magnetic tape unit 2.
* Set Program Control Switch 3 on and 4 off.
* Load the BAC-220-Compiled-Object-Loader-Callout.card deck
into card reader 1.
* Load the BAC-220-Object-Loader-Callout.card deck into card
reader 1.
* Enter 1000 60 0000 into the C register.
* Set the Execute toggle.
* Click START on the Control Console. Once the program
@@ -116,8 +115,8 @@ Reference-Manual/
run.
The "-Object-WITH-LOADER.pt" file is the paper tape image of
object code generated by running the "BAC-220-Compiled-Object-
Dump-Callout.card" program against "-Object.tape" with Program
object code generated by running the "BAC-220-Object-Dump-
Callout.card" program against "-Object.tape" with Program
Control Switches 3 and 4 on. This combination causes the Object
Program Loader code to be included on the tape. To load and run
the program:
@@ -245,3 +244,4 @@ February 2018
Complete Reference-Manual example programs and update results.

View File

@@ -0,0 +1,3 @@
5 .1 .2 .3 .4 .5 .6 .7 .8 .9 .10 .11 .12 .13 .14 .15 *
5 .16 .17 .18 .19 .20 .21 .22 .23 .24 .25 .26 .27 .28 .29 *
5 10 * NUMBER OF DIMENSIONS, MUST BE LEQ 25

View File

@@ -1,4 +1,4 @@
777 BALGOL COMPILED PROGRAM LOADER BOOTSTRAP, LOAD FROM CR1
777 BALGOL COMPILED PROGRAM LOADER BOOTSTRAP, LOAD FROM CR1, FOLLOW WITH LOADER
666 61000600294
666 600003002900000042029411010600004000052102910000030000000000000250
777 BALGOL OBJECT PROGRAM LOADER DECK, FOLLOW WITH OBJECT DECK
@@ -53,7 +53,7 @@
6 0048 0200463023102006630202020086301730100065001500000300016
6 0049 0000031000802000650008000003000040200065001000000300013
6 0050 0100064000200000300000010016201150100862014405401260080
6 (BLANK CARD - MUST BE PRESENT AFTER OBJECT LOADER)
6 (BLANK CARD - MUST BE PRESENT BEFORE OBJECT DECK)
1 0000 0000000000040950290200000003002210000030040000000102960
1 0001 0000040295900000440218000003002090000010296000000122959
1 0002 0000040295900000132958011113102120000036021400001330214