Line | Address | Object Code
| Label | F1 | N1 | B | F2 | N2 | Comments | Check
|
---|
1 | 0 | | ; tape1.d/lookup.t2 |
|
2 | 0 | | ;------------------ |
|
3 | 0 | | ; |
|
4 | 0 | | =504 | |
|
5 | 504 | | lookupkw:: | ; | |
|
6 | 504 | | ; |
|
7 | 504 | | ; data for lookup routine |
|
8 | 504 | 0000000000000 | .work1: | +0 | ; | @504
|
9 | 505 | 0000000000002 | .work2: | +2 | ; | @505
|
10 | 506 | 0000000000000 | .work3: | +0 | ; | @506
|
11 | 507 | 0000000001234 | .kwtab: | +kwtable-2 | ; | @507
|
12 | 508 | | .kwtabendp: | ; | |
|
13 | 508 | 0000000001406 | | +kwtabend | ;774 ;kwtabend | @508
|
14 | 509 | | ; list of negative increments for binary search |
|
15 | 509 | | ; assume start address = 0 |
|
16 | 509 | | ; values must be even as entries are two words long |
|
17 | 509 | | ; |
|
18 | 509 | | .kwtabptrs: | ; | |
|
19 | 509 | 7777777776456 | | -kwtable-52 | ;starting point in table | @509
|
20 | 510 | 7777777777746 | | -26 | ;increments to above |
|
21 | 511 | 7777777777762 | | -14 | |
|
22 | 512 | 7777777777772 | | -6 | |
|
23 | 513 | 7777777777774 | | -4 | |
|
24 | 514 | 7777777777776 | | -2 | |
|
25 | 515 | 0000000000000 | | +0 | ; | @515
|
26 | 516 | 0000000000000 | | +0 | ; | @516
|
27 | 517 | 0000000000000 | | +0 | ; | @517
|
28 | 518 | 0000000000000 | | +0 | ; | @518
|
29 | 519 | 0000000000000 | | +0 | ; | @519
|
30 | 520 | 0000000000000 | | +0 | ; | @520
|
31 | 521 | 0000000000000 | | +0 | ; | @521
|
32 | 522 | 0000000000000 | | +0 | ; | @522
|
33 | 523 | 0000000001242 | .ptr2: | +674 | ; | @523
|
34 | 524 | 0000000000006 | .ptr1: | +6 | ; | @524
|
35 | 525 | 0000000000576 | .work: | +382 | ; | @525
|
36 | 526 | 0000000000000 | W526: | +0 | ; | @526
|
37 | 527 | 0000000000001 | W527: | +1 | ; | @527
|
38 | 528 | 0000000000000 | W528: | +0 | ; | @528
|
39 | 529 | 0000000000011 | .word: | +9 | ; | @529
|
40 | 530 | | ; |
|
41 | 530 | | =469 | |
|
42 | 469 | 4004110000000 | dfltid: | +04004110000000 | ; default type | @469
|
43 | 470 | | ;------------------------------------------------------------------- |
|
44 | 470 | | ; |
|
45 | 470 | | =470 | |
|
46 | 470 | | .ent: | ; | |
|
47 | 470 | 0003522600001 | | o00 | .lnk | / | lod | 1 | ; get parameter | @470
|
48 | 471 | 2004066600000 | | sto | .work | / | lod | 0 | ; get word to look up | @471
|
49 | 472 | 0401021 | | sto | .word | | | | ; store word |
|
50 | 472+ | 1060731 | | jo | .0 | | | | ; clr oflo |
|
51 | 473 | | .0: | ; | |
|
52 | 473 | 0541014 | | cls | .ptr1 | | | | ; .ptr1=0 |
|
53 | 473+ | 0541013 | | cls | .ptr2 | | | | ; .ptr2=0 |
|
54 | 474 | | .3: | ; | |
|
55 | 474 | 2204062600774 | | inc | .ptr1 | / | lod | .kwtabptrs-1 | ; fetch kwtabendp[++.ptr1] | @474
|
56 | 475 | 1020740 | | jn | .1 | | | | ; if < skip to 480 |
|
57 | 475+ | 0601013 | | lod | .ptr2 | | | | ; |
|
58 | 476 | 0120774 | | sub | .kwtabendp | | | | ; table end pointer |
|
59 | 476+ | 1040737 | | jz | .2 | | | | ; return +2 |
|
60 | 477 | | .5: | ; | |
|
61 | 477 | 0600771 | | lod | .work2 | | | | ;=2 | @477
|
62 | 477+ | | .6: | ; | |
|
63 | 477+ | 0100725 | | add | dfltid | | | | ;=04004110000000 | @477+
|
64 | 478 | | .10: | ; | |
|
65 | 478 | 0101013 | | add | .ptr2 | | | | ; table pointer | @478
|
66 | 478+ | 0120770 | | sub | .work1 | | | | |
|
67 | 479 | | .2: | ; | |
|
68 | 479 | 0003523000002 | | o00 | .lnk | / | jmp | 2 | ;return bypassing param | @479
|
69 | 480 | | ; |
|
70 | 480 | | .1: | ; | |
|
71 | 480 | 2704056600000 | | o27 | .ptr2 | / | lod | 0 | ; subtract and fetch | @480
|
72 | 481 | 0121021 | | sub | .word | | | | ; compare with word |
|
73 | 481+ | 1060755 | | jo | .7 | | | | ; overflow? |
|
74 | 482 | 1020732 | | jn | .3 | | | | ; less than - move down |
|
75 | 482+ | 1040756 | | jz | .8 | | | | ; equal got it |
|
76 | 483 | | .9: | ; | |
|
77 | 483 | 2204062600774 | | inc | .ptr1 | / | lod | .kwtabptrs-1 | ; try next pointer | @483
|
78 | 484 | 1020747 | | jn | .4 | | | | ; still negative? OK |
|
79 | 484+ | 0601013 | | lod | .ptr2 | | | | ; table pointer |
|
80 | 485 | 0120773 | | sub | .kwtab | | | | ; table start |
|
81 | 485+ | 1040735 | | jz | .5 | | | | ; |
|
82 | 486 | 0140000 | | cla | 0 | | | | ; =0 |
|
83 | 486+ | 1100735 | | jmp | .6 | | | | ; |
|
84 | 487 | | ; |
|
85 | 487 | | .4: | ; | |
|
86 | 487 | 2404056600000 | | ads | .ptr2 | / | lod | 0 | ; add to pointer and fetch | @487
|
87 | 488 | 0121021 | | sub | .word | | | | ; compare with word |
|
88 | 488+ | 1060755 | | jo | .7 | | | | ; oflo? |
|
89 | 489 | 1020732 | | jn | .3 | | | | ; back to earlier bit |
|
90 | 489+ | 1040756 | | jz | .8 | | | | ; match - return |
|
91 | 490 | 1000743 | | jmp | .9 | | | | ; back for another go |
|
92 | 490+ | | ; |
|
93 | 490+ | | .11: | ; | |
|
94 | 490+ | 0601013 | | lod | .ptr2 | | | | ; get table pointer | @490+
|
95 | 491 | 0120773 | | sub | .kwtab | | | | ; less table start |
|
96 | 491+ | 1040735 | | jz | .5 | | | | ; at start of table |
|
97 | 492 | 0140000 | | cla | 0 | | | | ; zero |
|
98 | 492+ | 1000736 | | jmp | .10 | | | | ; finish |
|
99 | 493 | | ; |
|
100 | 493 | | .7: | ; | |
|
101 | 493 | 1020743 | | jn | .9 | | | | ; overflow - invert sign test | @493
|
102 | 493+ | 1000732 | | jmp | .3 | | | | ; back into loop |
|
103 | 494 | | ; |
|
104 | 494 | | .8: | ; | |
|
105 | 494 | 0600772 | | lod | .work3 | | | | ; ? | @494
|
106 | 494+ | 1140752 | | jz | .11 | | | | ; back if zero |
|
107 | 495 | 0401020 | | sto | W528 | | | | ;indicate continue not possible |
|
108 | 495+ | 0441020 | | inc | W528 | | | | ;(assuming .work3 != -1) |
|
109 | 496 | 0601013 | | lod | .ptr2 | | | | ; |
|
110 | 496+ | 0401017 | | sto | W527 | | | | ; |
|
111 | 497 | 0601015 | | lod | .work | | | | ; |
|
112 | 497+ | 0401016 | | sto | W526 | | | | ; |
|
113 | 498 | | .13: | ; | |
|
114 | 498 | 2204076600000 | | inc | W527 | / | lod | 0 | ; | @498
|
115 | 499 | 2204072120000 | | inc | W526 | / | sub | 0 | ; |
|
116 | 500 | 1060755 | | jo | .7 | | | | ; |
|
117 | 500+ | 1020732 | | jn | .3 | | | | ; |
|
118 | 501 | 1040766 | | jz | .12 | | | | ; |
|
119 | 501+ | 1000743 | | jmp | .9 | | | | ; |
|
120 | 502 | | ; |
|
121 | 502 | | .12: | ; | |
|
122 | 502 | 0641020 | | lis | W528 | | | | ; | @502
|
123 | 502+ | 1020762 | | jn | .13 | | | | ; |
|
124 | 503 | 1100752 | | jmp | .11 | | | | ; |
|
125 | 503+ | | ; |
|
126 | 503+ | 0000000 | | o00 | 0 | | | | ; | @503+
|
127 | 504 | | ; |
|
128 | 504 | | =530 | |
|
129 | 530 | | ; no refs? |
|
130 | 530 | | ; |
|
131 | 530 | 0003522600001 | | o00 | .lnk | / | lod | 1 | ; | @530
|
132 | 531 | 2004066600003 | | sto | .work | / | lod | 3 | ; |
|
133 | 532 | 0420772 | | stn | .work3 | | | | ; |
|
134 | 532+ | 0440772 | | inc | .work3 | | | | ; |
|
135 | 533 | 0004066600004 | | o00 | .work | / | lod | 4 | ; | @533
|
136 | 534 | 0400770 | | sto | .work1 | | | | ; |
|
137 | 534+ | 0541014 | | cls | .ptr1 | | | | ; |
|
138 | 535 | 0004066600002 | | o00 | .work | / | lod | 2 | ; | @535
|
139 | 536 | 0400771 | | sto | .work2 | | | | ; |
|
140 | 536+ | 0540774 | | cls | .kwtabendp | | | | ; |
|
141 | 537 | 0004066600000 | | o00 | .work | / | lod | 0 | ; |
|
142 | 538 | | .538: | ; | |
|
143 | 538 | 0401013 | | sto | .ptr2 | | | | ; | @538
|
144 | 538+ | | .538P: | ; | |
|
145 | 538+ | 0601013 | | lod | .ptr2 | | | | ; | @538+
|
146 | 539 | 1200001 | | sra | 1 | | | | ; |
|
147 | 539+ | 0361013 | | o17 | .ptr2 | | | | ; |
|
148 | 540 | 1240771 | | mul | .work2 | | | | ; | @540
|
149 | 540+ | 1360000 | | ara | 0 | | | | ; |
|
150 | 541 | 2204062420774 | | inc | .ptr1 | / | stn | .kwtabendp | ; |
|
151 | 542 | 0500774 | | ads | .kwtabendp | | | | ; | @542
|
152 | 542+ | 1141037 | | jz | .543 | | | | ; |
|
153 | 543 | 1101032 | | jmp | .538P | | | | ; |
|
154 | 543+ | | ; |
|
155 | 543+ | | .543: | ; | |
|
156 | 543+ | 0600770 | | lod | .work1 | | | | ; | @543+
|
157 | 544 | 0004066100001 | | o00 | .work | / | add | 1 | ; |
|
158 | 545 | 0120771 | | sub | .work2 | | | | ; |
|
159 | 545+ | 0400773 | | sto | .kwtab | | | | ; |
|
160 | 546 | 0500774 | | ads | .kwtabendp | | | | ; | @546
|
161 | 546+ | 0560775 | | o27 | .kwtabptrs | | | | ; |
|
162 | 547 | 0003523000002 | | o00 | .lnk | / | jmp | 2 | ;return, bypassing param |
|
163 | 548 | | ;--------------------------------------------------------------- |
|