1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-03-07 19:21:53 +00:00
Files
Paul Kimpel a32815073a Commit additional BALGOL example and preliminary paper-tape support.
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.
2018-08-18 11:33:39 -07:00

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