1
0
mirror of https://github.com/pkimpel/retro-220.git synced 2026-01-19 09:28:03 +00:00
Paul Kimpel 33c195ae84 Commit release 0.01a:
1. Initial Cardatron implementation with CardatronInput (card reader).
2. Implement default Pi demo program at address 0300.
3. Implement WINTER.PI card-load deck to boot from card reader 1 and run at address 0500.
4. Fix syntax typos in tools/BAC-Assembler.html.
2017-05-20 18:34:01 -07:00

154 lines
7.9 KiB
Plaintext

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