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

189 lines
3.3 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 BUF,
0200 C,
0200 D,
0200 E,
0200 F,
0200 G,
0200 I,
0200 J$
0200 ARRAY
0200 F(2801),
0200 BUF(20)$
0200 FORMAT
0200 F1 (20(4I1,B1), W2)$
0206 OUTPUT
0208 L1 (FOR J = (1, 1, I-1)$
0222 (MOD(BUF(J)/1000, 10), MOD(BUF(J)/100, 10),
0235 MOD(BUF(J)/10, 10), MOD(BUF(J), 10)))$
0235
0249 A = 10000$
0251 C = 2800$
0253 I = 1$
0253
0255 FOR B = (1, 1, C+1)$
0269 F(B) = A/5$
0269
0276 UNTIL C EQL 0$
0276 BEGIN
0276 G = 2C$
0281 D = 0$
0281
0282 B = C$
0284 UNTIL B EQL 0$
0284 BEGIN
0284 D = D+F(B+1).A$
0292 G = G-1$
0295 F(B+1) = MOD(D, G)$
0301 D = D/G$
0305 G = G-1$
0308 B = B-1$
0311 IF (B NEQ 0)$
0311 D = D.B
0318 END$
0318
0319 C = C-14$
0322 IF I GTR 20$
0322 BEGIN
0331 WRITE ($$ L1, F1)$
0335 I = 1
0337 END$
0337
0337 BUF(I) = E + D/A$
0343 I = I+1$
0346 E = MOD(D, A)
0346 END$
0346
0352 WRITE ($$ L1, F1)$
0360 FINISH$
COMPILED PROGRAM ENDS AT 0361
PROGRAM VARIABLES BEGIN AT 1855
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