mirror of
https://github.com/pkimpel/retro-220.git
synced 2026-03-07 19:21:53 +00:00
1. Add WINTER-PI example programs for output to line printer and SPO. 2. Add BALGOL-INPUTMEDIA-OUTPUTMEDIA directory for eventual support of paper tape I/O in the compiler and run-time library.
206 lines
3.2 KiB
Plaintext
206 lines
3.2 KiB
Plaintext
0200 BAC-220 STANDARD VERSION 2/1/62
|
|
|
|
0200 COMMENT -- WINTER-PI
|
|
|
|
0200
|
|
|
|
0200 PROGRAM TO COMPUTE PI TO 800 DIGITS. CONVERTED TO BURROUGHS 220
|
|
|
|
0200 BALGOL FROM THE ONE-LINE C PROGRAM WRITTEN BY DIK T. WINTER AT CWI,
|
|
|
|
0200 AS REPORTED IN
|
|
|
|
0200 HTTPS2//CS.UWATERLOO.CA/7ALOPEZ-O/MATH-FAQ/MATHTEXT/NODE12.HTML
|
|
|
|
0200
|
|
|
|
0200 THE PROGRAM OUTPUTS FOUR DECIMAL DIGITS AT A TIME TO THE SPO.
|
|
|
|
0200 IT CONVERTS EACH FOUR-DIGIT RESULT TO FOUR 1-DIGIT NUMBERS,
|
|
|
|
0200 OUTPUTTING AS BALGOL I-FORMAT, THUS ENSURING ANY LEADING ZERO
|
|
|
|
0200 DIGITS ARE FORMATTED AS ZEROES AND NOT AS SPACES.
|
|
|
|
0200
|
|
|
|
0200 2016-01-13 P.KIMPEL
|
|
|
|
0200 ORIGINAL VERSION, FOR UNISYS MCP EXTENDED ALGOL.
|
|
|
|
0200 2016-01-16 P.KIMPEL
|
|
|
|
0200 ADAPTED FROM UNISYS MCP ALGOL TO B5500 EXTENDED ALGOL.
|
|
|
|
0200 2018-08-09 P.KIMPEL
|
|
|
|
0200 ADAPTED FROM B5500 EXTENDED ALGOL TO BURROUGHS 220 BALGOL.
|
|
|
|
0200 $
|
|
|
|
0200
|
|
|
|
0200 INTEGER
|
|
|
|
0200 A,
|
|
|
|
0200 B,
|
|
|
|
0200 C,
|
|
|
|
0200 D,
|
|
|
|
0200 E,
|
|
|
|
0200 F,
|
|
|
|
0200 G,
|
|
|
|
0200 I,
|
|
|
|
0200 J$
|
|
|
|
0200 ARRAY
|
|
|
|
0200 F(2801)$
|
|
|
|
0200 FORMAT
|
|
|
|
0200 F1 (4I1, B1, T0),
|
|
|
|
0200 F2 (T2)$
|
|
|
|
0207 OUTPUT
|
|
|
|
0211 L1 (MOD(E/1000, 10), MOD(E/100, 10), MOD(E/10, 10), MOD(E, 10))$
|
|
|
|
0211
|
|
|
|
0230 A = 10000$
|
|
|
|
0232 C = 2800$
|
|
|
|
0234 I = 0$
|
|
|
|
0234
|
|
|
|
0235 FOR B = (1, 1, C+1)$
|
|
|
|
0249 F(B) = A/5$
|
|
|
|
0249
|
|
|
|
0256 UNTIL C EQL 0$
|
|
|
|
0256 BEGIN
|
|
|
|
0256 G = 2C$
|
|
|
|
0261 D = 0$
|
|
|
|
0261
|
|
|
|
0262 B = C$
|
|
|
|
0264 UNTIL B EQL 0$
|
|
|
|
0264 BEGIN
|
|
|
|
0264 D = D+F(B+1).A$
|
|
|
|
0272 G = G-1$
|
|
|
|
0275 F(B+1) = MOD(D, G)$
|
|
|
|
0281 D = D/G$
|
|
|
|
0285 G = G-1$
|
|
|
|
0288 B = B-1$
|
|
|
|
0291 IF (B NEQ 0)$
|
|
|
|
0291 D = D.B
|
|
|
|
0298 END$
|
|
|
|
0298
|
|
|
|
0299 C = C-14$
|
|
|
|
0302 E = E + D/A$
|
|
|
|
0307 I = I+1$
|
|
|
|
0310 WRITE ($$ L1, F1)$
|
|
|
|
0318 IF I GEQ 10$
|
|
|
|
0318 BEGIN
|
|
|
|
0323 WRITE($$ F2)$
|
|
|
|
0327 I = 0
|
|
|
|
0328 END$
|
|
|
|
0328
|
|
|
|
0328 E = MOD(D, A)
|
|
|
|
0328 END$
|
|
|
|
0328
|
|
|
|
0334 WRITE ($$ F2)$
|
|
|
|
0338 FINISH$
|
|
COMPILED PROGRAM ENDS AT 0339
|
|
PROGRAM VARIABLES BEGIN AT 1876
|
|
|
|
|
|
|
|
|
|
3141 5926 5358 9793 2384 6264 3383 2795 0288 4197
|
|
|
|
1693 9937 5105 8209 7494 4592 3078 1640 6286 2089
|
|
|
|
9862 8034 8253 4211 7067 9821 4808 6513 2823 0664
|
|
|
|
7093 8446 0955 0582 2317 2535 9408 1284 8111 7450
|
|
|
|
2841 0270 1938 5211 0555 9644 6229 4895 4930 3819
|
|
|
|
6442 8810 9756 6593 3446 1284 7564 8233 7867 8316
|
|
|
|
5271 2019 0914 5648 5669 2346 0348 6104 5432 6648
|
|
|
|
2133 9360 7260 2491 4127 3724 5870 0660 6315 5881
|
|
|
|
7488 1520 9209 6282 9254 0917 1536 4367 8925 9036
|
|
|
|
0011 3305 3054 8820 4665 2138 4146 9519 4151 1609
|
|
|
|
4330 5727 0365 7595 9195 3092 1861 1738 1932 6117
|
|
|
|
9310 5118 5480 7446 2379 9627 4956 7351 8857 5272
|
|
|
|
4891 2279 3818 3011 9491 2983 3673 3624 4065 6643
|
|
|
|
0860 2139 4946 3952 2473 7190 7021 7986 0943 7027
|
|
|
|
7053 9217 1762 9317 6752 3846 7481 8467 6694 0513
|
|
|
|
2000 5681 2714 5263 5608 2778 5771 3427 5778 9609
|
|
|
|
1736 3717 8721 4684 4090 1224 9534 3014 6549 5853
|
|
|
|
7105 0792 2796 8925 8923 5420 1995 6112 1290 2196
|
|
|
|
0864 0344 1815 9813 6297 7477 1309 9605 1870 7211
|
|
|
|
3499 9999 8372 9780 4995 1059 7317 3281 6096 3185
|
|
|
|
|
|
|