| 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 | | ;--------------------------------------------------------------- |
|