Assembler for the Burroughs 220 BALGOL Compiler & Intrinsics Pass 1 Listing Pass 2 Listing END OF PASS 1, ERRORS = 0 SYMBOL TABLE 363 A 364 B 1 BMOD 365 C 369 COL 377 CR 366 D 316 DO 367 E 370 ECOL 334 ENDDO 362 ENDL1 1000 F 375 FIVE 371 FLIM 368 G 308 L1 376 N80 373 ONE 1 RLO 374 TWO 372 ZERO PRINT FIRST 800 DIGITS OF PI ADAPTED FROM C PROGRAM B DIK WINTER OF CWI, AMSTERDAM 3 0000 LOCN 0300 4 0300 0 0000 10 0371 CAD FLIM 5 0301 0 0000 40 0365 STA C C=FLIM 6 0302 0 0000 10 0363 CAD A 7 0303 0 0001 48 0010 SRT 10 8 0304 0 0000 15 0375 DIV FIVE A DIV 5 9 0305 0 0000 42 0365 LDB C FOR (B=C; B>=0; --B) 10 0306 1 0000 40 1000 STA - F F[B]=A DIV 5 11 0307 0 0001 21 0306 DBB *-1,1 13 0308 0 0000 10 0365 L1 CAD C START OF OUTER LOOP 14 0309 0 0000 14 0374 MUL TWO 15 0310 0 0001 40 0368 STR G G=C*2 16 0311 0 0000 37 0362 BFR ENDL1,00,00 IF G EQL 0, BRANCH OUT OF LOOP 17 0312 0 0000 46 0366 CLL D D=0 18 0313 0 0000 10 0365 CAD C 19 0314 0 0000 40 0364 STA B B=C 20 0315 0 0000 42 0364 LDB B 22 0316 1 0000 10 1000 DO CAD - F START OF INNER LOOP 23 0317 0 0000 14 0363 MUL A F[B]*A 24 0318 0 0001 49 0010 SLT 10 SHIFT PRODUCT TO RA 25 0319 0 0000 12 0366 ADD D 26 0320 0 0000 40 0366 STA D D+=F[B]*A 27 0321 0 0001 48 0010 SRT 10 SAVE NEW D IN RR 28 0322 0 0001 27 0368 DFL G,00,1 G-=1 29 0323 0 0000 15 0368 DIV G D DIV G 30 0324 1 0001 40 1000 STR - F F[B]=D MOD G 31 0325 0 0000 40 0366 STA D D=D DIV G 32 0326 0 0001 27 0368 DFL G,00,1 G-=1 33 0327 0 0000 10 0364 CAD B 34 0328 0 0000 13 0373 SUB ONE 35 0329 0 0000 40 0364 STA B B-=1 36 0330 0 0000 36 0334 BFA ENDDO,00,00 IF B EQL 0, BRANCH OUT OF INNER LOOP 37 0331 0 0000 14 0366 MUL D 38 0332 0 0001 40 0366 STR D D*=B 39 0333 0 0001 21 0316 DBB DO,1 DECREMENT RB, REPEAT INNER LOOP IF >= 0 41 0334 0 0014 27 0365 ENDDO DFL C,00,14 C-=14 42 0335 0 0000 10 0366 CAD D 43 0336 0 0001 48 0010 SRT 10 44 0337 0 0000 15 0363 DIV A D DIV A 45 0338 0 0000 12 0367 ADD E RA=E+D DIV A 46 0339 0 0001 40 0367 STR E E=D MOD A FORMAT 4 DIGITS FOR SPO OUTPUT 49 0340 0 0001 48 0003 SRT 3 ISOLATE HIGH-ORDER DIGIT IN A 50 0341 0 0000 12 0376 ADD N80 CONVERT 1ST DIGIT TO ALPHA 51 0342 0 0000 49 0001 SLA 1 52 0343 0 0001 49 0001 SLT 1 53 0344 0 0000 12 0376 ADD N80 CONVERT 2ND DIGIT TO ALPHA 54 0345 0 0000 49 0001 SLA 1 55 0346 0 0001 49 0001 SLT 1 56 0347 0 0000 12 0376 ADD N80 CONVERT 3RD DIGIT TO ALPHA 57 0348 0 0000 49 0001 SLA 1 58 0349 0 0001 49 0001 SLT 1 59 0350 0 0000 12 0376 ADD N80 CONVERT 4TH DIGIT TO ALPHA 60 0351 0 0000 49 0002 SLA 2 INSERT TRAILING SPACE 61 0352 0 0002 43 0000 LSA 2 SET SIGN TO TWO FOR ALPHA WORD 62 0353 0 0000 40 0364 STA B STORE IN WORD BUFFER 63 0354 0 0010 09 0364 SPO B,1 64 0355 0 0405 26 0369 IFL COL,04,5 CHECK FOR FULL LINE ON SPO 65 0356 0 0000 10 0369 CAD COL 66 0357 0 0000 18 0370 CFA ECOL 67 0358 0 0001 34 0308 BCL L1 IF COL < ECOL, BRANCH 68 0359 0 0010 09 0377 SPO CR,1 OUTPUT NEWLINES 69 0360 0 0000 46 0369 CLL COL CLEAR COLUMN COUNTER 70 0361 0 0000 30 0308 BUN L1 71 0362 0 0000 00 7557 ENDL1 HLT 7557 SCALARS 74 0363 0 0000 01 0000 A CNST 10000 75 0364 0 0000 00 0000 B CNST 0 76 0365 0 0000 00 0000 C CNST 0 77 0366 0 0000 00 0000 D CNST 0 78 0367 0 0000 00 0000 E CNST 0 79 0368 0 0000 00 0000 G CNST 0 80 0369 0 0000 00 0000 COL CNST 0 81 0370 0 0000 00 0050 ECOL CNST 50 82 0371 0 0000 00 2800 FLIM CNST 2800 83 0372 0 0000 00 0000 ZERO CNST 0 84 0373 0 0000 00 0001 ONE CNST 1 85 0374 0 0000 00 0002 TWO CNST 2 86 0375 0 0000 00 0005 FIVE CNST 5 87 0376 0 0000 00 0080 N80 CNST 80 88 0377 2 0202 02 1616 CR CNST 20202021616 NEWLINES 90 0378 LOCN 1000 91 1000 F DEFN * 92 1000 LOCN *+2800 93 3800 FINI 300 END OF PASS 2, ERRORS = 0 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