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 0 0000 30 0201 0 0044 90 0100 0202 0 0004 20 0100 0203 1 0000 20 0201 0204 0 0006 60 0200 0205 1 0000 00 0201 0200 F1 (20(4I1,B1), W2)$ 0200 0206 0206 OUTPUT 0206 0 0000 30 0207 0 0000 30 0208 0 0000 10 2178 CONST 0209 0 0000 40 2177 J 0210 0 0000 44 0211 0 0000 30 0212 0 0000 10 2178 CONST 0213 0 0000 12 2177 J 0214 0 0000 40 2177 J 0211 0215 0215 0 0000 40 2176 TEMP 0216 0 0000 10 2175 I 0217 0 0000 13 2178 CONST 0218 0 0000 13 2176 TEMP 0219 0 1111 31 0221 0220 0 0000 36 0221 0 0000 33 0208 L1 (FOR J = (1, 1, I-1)$ 0222 0 0000 30 0221 0223 0220 0223 0223 0 0000 42 2177 J 0224 1 0000 10 2178 BUF 0225 0 0000 48 0003 0226 0 0000 17 2174 CONST 0227 0 0100 42 0227 0228 0 0002 20 0207 0229 0 0000 42 2177 J 0230 1 0000 10 2178 BUF 0231 0 0000 48 0002 0222 (MOD(BUF(J)/1000, 10), MOD(BUF(J)/100, 10), 0232 0 0000 17 2174 CONST 0233 0 0100 42 0233 0234 0 0002 20 0207 0235 0 0000 42 2177 J 0236 1 0000 10 2178 BUF 0237 0 0000 48 0001 0238 0 0000 17 2174 CONST 0239 0 0100 42 0239 0240 0 0002 20 0207 0241 0 0000 42 2177 J 0242 1 0000 10 2178 BUF 0243 0 0000 17 2174 CONST 0244 0 0100 42 0244 0245 0 0002 20 0207 0222 0247 0210 0246 0246 0 0000 30 0235 MOD(BUF(J)/10, 10), MOD(BUF(J), 10)))$ 0235 0247 0 0009 43 0000 0248 0 0000 30 0207 0206 0249 0249 A = 10000$ 0249 0 0000 10 2173 CONST 0250 0 0000 40 2172 A 0251 C = 2800$ 0251 0 0000 10 2171 CONST 0252 0 0000 40 2170 C 0253 I = 1$ 0253 0253 0 0000 10 2178 CONST 0254 0 0000 40 2175 I 0255 0 0000 10 2178 CONST 0256 0 0000 40 2169 B 0257 0 0000 44 0258 0 0000 30 0259 0 0000 10 2178 CONST 0260 0 0000 12 2169 B 0261 0 0000 40 2169 B 0258 0262 0262 0 0000 40 2176 TEMP 0263 0 0000 10 2178 CONST 0264 0 0000 12 2170 C 0265 0 0000 13 2176 TEMP 0266 0 1111 31 0268 0267 0 0000 36 0268 0 0000 33 0255 FOR B = (1, 1, C+1)$ 0269 0 0000 30 0268 0270 0267 0270 0269 F(B) = A/5$ 0269 0270 0 0000 10 2172 A 0271 0 0001 48 0010 0272 0 0000 15 2168 CONST 0273 0 0000 42 2169 B 0274 1 0000 40 2198 F 0269 0276 0257 0275 0275 0 0000 30 0276 UNTIL C EQL 0$ 0276 0 0000 10 2170 C 0277 0 0000 36 0276 BEGIN 0276 G = 2C$ 0278 0 0000 10 2167 CONST 0279 0 0000 14 2170 C 0280 0 0001 49 0010 0280 0 0001 40 2166 G 0281 D = 0$ 0281 0281 0 0000 46 2165 D 0282 B = C$ 0282 0 0000 10 2170 C 0283 0 0000 40 2169 B 0284 UNTIL B EQL 0$ 0284 0 0000 10 2169 B 0285 0 0000 36 0284 BEGIN 0284 D = D+F(B+1).A$ 0286 0 0000 42 2169 B 0287 1 0000 10 2199 F 0288 0 0000 14 2172 A 0289 0 0001 49 0010 0290 0 0000 12 2165 D 0291 0 0000 40 2165 D 0292 G = G-1$ 0292 0 0000 10 2166 G 0293 0 0000 13 2178 CONST 0294 0 0000 40 2166 G 0295 F(B+1) = MOD(D, G)$ 0295 0 0000 10 2165 D 0296 0 0001 48 0010 0297 0 0000 15 2166 G 0298 0 0001 49 0030 0299 0 0000 42 2169 B 0300 1 0000 40 2199 F 0301 D = D/G$ 0301 0 0000 10 2165 D 0302 0 0001 48 0010 0303 0 0000 15 2166 G 0304 0 0000 40 2165 D 0305 G = G-1$ 0305 0 0000 10 2166 G 0306 0 0000 13 2178 CONST 0307 0 0000 40 2166 G 0308 B = B-1$ 0308 0 0000 10 2169 B 0309 0 0000 13 2178 CONST 0310 0 0000 40 2169 B 0311 0 0000 10 2169 B 0312 0 0000 36 0314 0313 0 0000 10 2178 CONST 0311 IF (B NEQ 0)$ 0314 0 0000 36 0311 D = D.B 0315 0 0000 10 2165 D 0316 0 0000 14 2169 B 0317 0 0001 49 0010 0317 0 0001 40 2165 D 0314 0318 0318 END$ 0318 0285 0319 0318 0 0000 30 0284 0319 C = C-14$ 0319 0 0000 10 2170 C 0320 0 0000 13 2164 CONST 0321 0 0000 40 2170 C 0322 IF I GTR 20$ 0322 0 0000 10 2175 I 0323 0 0000 13 2163 CONST 0324 0 1111 31 0326 0325 0 0000 36 0326 0 0001 33 0322 BEGIN 0327 0 0000 10 0328 0328 0 0000 01 0207 L1 0329 0 4400 28 1923 0330 1 0000 40 0000 0331 WRITE ($$ L1, F1)$ 0331 0 0000 10 0332 0332 0 0000 01 0201 F1 0333 0 0000 44 1923 WRITE 0334 0 0100 30 1923 0335 I = 1 0335 0 0000 10 2178 CONST 0336 0 0000 40 2175 I 0337 END$ 0337 0326 0337 0325 0337 0337 BUF(I) = E + D/A$ 0337 0 0000 10 2165 D 0338 0 0001 48 0010 0339 0 0000 15 2172 A 0340 0 0000 12 1922 E 0341 0 0000 42 2175 I 0342 1 0000 40 2178 BUF 0343 I = I+1$ 0343 0 0000 10 2178 CONST 0344 0 0000 12 2175 I 0345 0 0000 40 2175 I 0346 E = MOD(D, A) 0346 0 0000 10 2165 D 0347 0 0001 48 0010 0348 0 0000 15 2172 A 0349 0 0001 49 0030 0350 0 0000 40 1922 E 0346 END$ 0346 0277 0352 0351 0 0000 30 0276 0352 0 0000 10 0353 0353 0 0000 01 0207 L1 0354 0 4400 28 1923 0355 1 0000 40 0000 0352 WRITE ($$ L1, F1)$ 0356 0 0000 10 0357 0357 0 0000 01 0201 F1 0358 0 0000 44 1923 WRITE 0359 0 0100 30 1923 0360 FINISH$ 0360 0 9669 00 9669 0361 0 1000 60 0000 2178 0 0000 00 0001 POOL 2167 0 0000 00 0002 2163 0 0000 00 0020 2173 0 0000 01 0000 2171 0 0000 00 2800 2168 0 0000 00 0005 2164 0 0000 00 0014 2174 1 0000 00 0001 1923 0 0100 01 0000 1924 0 0410 40 1959 1925 0 0000 42 1927 1926 0 0010 29 2159 1927 0 0300 29 0101 1928 0 0000 42 1923 1929 0 0412 40 2008 1930 1 0000 41 9999 1931 0 0009 43 7557 1932 0 2200 37 1936 1933 0 0000 42 0100 1934 1 0000 44 0000 1935 1 2201 37 0001 1936 0 0000 40 0132 1937 0 0412 40 1990 1938 0 0000 41 0130 1939 0 0000 37 1957 1940 0 0000 10 0134 1941 0 0000 46 0133 1942 0 5246 37 2119 1943 0 5267 37 2095 1944 0 5249 37 2033 1945 0 5262 37 2146 1946 0 5241 37 1948 1947 0 0000 30 2134 1948 0 0000 41 1966 1949 0 0001 27 0129 1950 0 0000 44 2091 1951 0 0000 30 2082 1952 0 0000 10 0129 1953 0 0000 36 1973 1954 0 2299 37 1987 1955 0 0001 49 0010 1956 0 0000 30 1949 1957 0 0000 42 1924 1958 0 0000 31 1876 ERROR 1959 0 0000 10 9999 1960 0 0401 26 1959 1961 0 0000 33 1975 1962 0 0000 41 1966 1963 0 0001 33 1991 1964 0 2214 36 1959 1965 0 0000 44 2091 1966 0 9900 30 2082 1967 0 2299 37 1959 1968 0 0001 49 0010 1969 0 0000 30 1964 1970 0 0000 10 0129 1971 0 0000 19 0125 1972 0 0000 19 0125 1973 0 0000 10 0130 1974 0 3300 36 1957 1975 0 3300 36 1977 1976 0 0000 13 2160 1977 0 0000 40 0130 1978 0 0210 40 0131 1979 0 0001 48 0002 1980 0 0310 40 0129 1981 0 7242 36 1970 1982 0 7266 36 2011 1983 0 7257 36 2019 1984 0 7263 36 2021 1985 0 7243 36 2010 1986 0 0300 36 1959 1987 0 0000 10 0132 1988 0 0000 40 0134 1989 0 0009 33 1970 1990 0 0000 30 9999 1991 0 0000 42 1959 1992 0 6600 36 2007 1993 0 0001 49 0003 1994 0 0300 37 2001 1995 0 0000 13 2160 1996 0 3300 36 2003 1997 1 6301 27 9999 1998 1 0000 41 9999 1999 0 0411 40 1959 2000 0 0000 30 1959 2001 1 3310 40 9999 2002 0 0000 30 1995 2003 1 0000 10 9999 2004 0 0001 48 0003 2005 1 6610 40 9999 2006 0 0000 30 1959 2007 0 0000 10 0132 2008 0 0009 33 9999 2009 0 0000 30 1998 2010 0 1008 61 0124 2011 0 0001 48 0003 2012 0 3111 40 2013 2013 0 2408 44 1909 REED 2014 0 0101 30 1909 REED 2015 0 0000 42 2017 2016 0 0010 29 2159 2017 0 0240 29 0101 2018 0 0000 30 1973 2019 0 1008 61 0124 2020 0 0000 30 2015 2021 0 0300 36 2026 2022 0 0010 09 2025 2023 0 0001 12 2003 2024 0 0000 30 2021 2025 2 1602 02 0202 2026 0 0000 10 0125 2027 0 0000 36 1973 2028 0 0000 12 2096 2029 0 0001 48 0004 2030 0 3211 40 2031 2031 0 0990 09 0101 2032 0 0000 30 2015 2033 0 0000 42 2043 2034 0 0000 36 2092 2035 0 1100 36 2093 2036 0 0000 40 0134 2037 0 0003 45 0080 2038 0 0002 40 0128 2039 0 0000 46 0126 2040 0 0410 40 0126 2041 0 0001 40 0127 2042 0 0000 10 0134 2043 0 0002 48 0010 2044 0 0001 43 0023 2045 0 0000 12 0129 2046 0 0000 13 0128 2047 0 0001 33 2134 2048 0 0000 19 0125 2049 0 5000 19 0125 2050 0 0000 10 0134 2051 0 0000 41 2087 2052 0 0000 44 2091 2053 0 0001 33 2081 2054 0 0001 27 0128 2055 0 0000 32 2067 2056 0 0000 41 0127 2057 0 0000 37 1973 2058 0 0000 41 2044 2059 0 0000 44 2091 2060 0 0000 30 2081 2061 0 0000 10 0127 2062 0 0000 13 2049 2063 0 0000 42 1979 2064 0 0000 46 0129 2065 0 0003 26 0129 2066 0 0000 30 2036 2067 0 0001 27 0126 2068 0 0000 41 0126 2069 0 0000 37 2075 2070 0 0000 41 0133 2071 0 0000 37 2077 2072 0 0001 27 0133 2073 0 0000 41 2037 2074 0 0000 30 2081 2075 0 0000 41 2004 2076 0 0000 30 2081 2077 0 0000 10 0134 2078 0 0000 41 2096 2079 0 0001 49 0001 2080 0 0000 40 0134 2081 0 0001 49 0018 2082 0 0001 48 0008 2083 0 0001 42 0125 2084 1 0000 49 0008 2085 0 9400 28 0125 2086 0 0024 21 2091 2087 0 0000 43 0020 2088 1 0000 12 0125 2089 1 0010 40 0125 2090 0 0002 26 0125 2091 0 0000 30 9999 2092 0 0009 21 2037 2093 0 0000 49 0051 2094 0 0001 21 2035 2095 0 0002 45 7557 2096 0 0001 48 0008 2097 0 0410 18 2161 2098 0 0001 40 0134 2099 0 0001 34 2109 2100 0 0410 40 2107 2101 0 0449 27 2107 2102 0 0000 42 2107 2103 0 0000 10 0130 2104 0 0001 48 0004 2105 0 4211 40 2108 2106 0 0000 10 2107 2107 0 0002 45 9999 2108 0 0000 20 2038 2109 0 0000 43 7557 2110 0 0000 13 2161 2111 0 0210 40 0133 2112 0 0211 18 0130 2113 0 0000 35 2116 2114 0 0000 10 2161 2115 0 0000 30 2100 2116 0 0000 10 2093 2117 0 1110 40 0134 2118 0 0000 30 2100 2119 0 0304 27 0129 2120 0 0000 32 2123 2121 0 0000 30 2133 2122 0 0000 10 2162 2123 0 0000 36 2122 2124 0 0002 45 7557 2125 0 2210 40 2048 2126 0 0001 48 0008 2127 0 0001 40 0134 2128 0 0002 48 0010 2129 0 0000 12 0130 2130 0 0000 17 2093 2131 0 0310 18 0129 2132 0 0001 34 2142 2133 0 0004 26 0129 2134 0 0000 10 0129 2135 0 0000 19 0125 2136 0 0000 19 0125 2137 0 0002 27 0125 2138 0 0000 41 2149 2139 0 0000 44 2091 2140 0 0000 30 2081 2141 0 0000 30 1973 2142 0 0000 41 2048 2143 0 0000 10 2079 2144 0 0000 42 0131 2145 0 0001 20 2038 2146 0 0002 45 7557 2147 0 0001 48 0008 2148 0 0001 40 0134 2149 0 0000 43 0014 2150 0 0000 13 2161 2151 0 0002 45 7557 2152 0 0001 33 2157 2153 0 0210 18 0130 2154 0 0000 34 2134 2155 0 0000 12 2079 2156 0 0000 30 2144 2157 0 0010 40 0133 2158 0 0000 30 2143 2159 2 0000 00 0000 2160 0 0010 00 0000 2161 0 0000 00 0050 2162 0 5000 00 0000 1855 0 0000 44 1888 1856 0 0000 30 1884 1857 2 5945 62 6453 1858 2 6300 56 6463 1859 2 0056 46 0059 1860 2 4155 47 4500 1861 2 4955 00 0000 1862 0 0000 44 1888 1863 0 0000 30 1884 1864 2 5945 62 6453 1865 2 6300 64 5544 1866 2 4546 49 5545 1867 2 4400 46 5659 1868 2 0000 00 0000 1869 0 0000 44 1888 1870 0 0000 30 1884 1871 2 5945 62 6453 1872 2 6300 49 5353 1873 2 2044 45 4649 1874 2 5545 44 0046 1875 2 5659 00 0000 1876 0 0000 46 1897 1877 0 0000 44 1888 1878 0 0000 30 1886 1879 0 0000 00 0000 1880 2 0041 59 4963 1881 2 4854 45 6349 1882 2 4300 56 6545 1883 2 5946 53 5666 1884 0 0001 40 1897 1885 0 0003 45 0000 1886 0 0412 40 1891 1887 0 0000 42 1908 1888 0 0050 29 0033 1889 0 1106 44 1909 REED 1890 0 1892 30 1909 REED 1891 0 0000 30 0036 1892 0 0000 00 0000 1893 0 0000 00 0000 1894 0 0000 00 0000 1895 0 0000 00 0000 1896 0 0000 00 0000 1897 0 0000 00 0000 1898 0 0000 00 0000 1899 0 0000 00 0000 1900 0 0000 00 0000 1901 0 0000 00 0000 1902 0 0000 00 0000 1903 0 5000 00 0000 1904 0 0000 00 0000 1905 0 0000 00 0000 1906 0 5110 00 0000 1907 0 0000 00 0000 1908 0 0000 00 1892 1909 0 0000 01 0000 1910 0 0000 42 1909 1911 1 0000 10 9999 1912 0 0000 48 0006 1913 0 0410 40 1919 1914 1 0000 10 9998 1915 0 4210 40 1919 1916 0 0000 48 0008 1917 0 0000 13 1921 1918 0 0000 19 1919 1919 0 2000 61 0000 1920 1 0000 30 0000 1921 0 0000 00 0001 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 Time: 4381.4 sec