|
File: lookupid.t2
For general comments see here
Line | Address | Object Code
| Label | F1 | N1 | B | F2 | N2 | Comments | Check
|
---|
1 | 0 | | ; tape1.d/lookupid.t2 |
| 2 | 0 | | ;-------------------- |
| 3 | 0 | | ; |
| 4 | 0 | | ; lookup identifier in id table |
| 5 | 0 | | ; |
| 6 | 0 | | lookupid:: | ; | |
| 7 | 0 | | =1811 | |
| 8 | 1811 | | ; |
| 9 | 1811 | | ; entry point |
| 10 | 1811 | | .ent: | ; | |
| 11 | 1811 | 0602160 | | lod | dicpt | | | | ;start of dictionary | @1811
| 12 | 1811+ | | .1811P: | ; | |
| 13 | 1811+ | 1003441 | | jmp | .1825 | | | | ; |
| 14 | 1812 | | =1825 | |
| 15 | 1825 | | .1825: | ; | |
| 16 | 1825 | 1662142 | | lnk | Link15d | | | | ;set flag to search std procs | @1825
| 17 | 1825+ | | .1825P: | ; | |
| 18 | 1825+ | 0403427 | | sto | idptr | | | | ;pointer into dictionary |
| 19 | 1826 | 1003424 | | jmp | .1812 | | | | ; | @1826
| 20 | 1826+ | | ; |
| 21 | 1826+ | | ; loop comparing ident against entries in list |
| 22 | 1826+ | | ; |
| 23 | 1826+ | | =1812 | |
| 24 | 1812 | | .1812: | ; | |
| 25 | 1812 | 2216136600000 | | inc | idptr | / | lod | 0 | ;get dic entry | @1812
| 26 | 1813 | 1023431 | | jn | .1817 | | | | ;type info, skip |
| 27 | 1813+ | | ; from 1821 |
| 28 | 1813+ | | .1813P: | ; | |
| 29 | 1813+ | 0120576 | | sub | ident | | | | ;compare dic against id |
| 30 | 1814 | 1143435 | | jz | .1821P | | | | ;id matches-> | @1814
| 31 | 1814+ | 1003424 | | jmp | .1812 | | | | ;match failed, try next |
| 32 | 1815 | | ; |
| 33 | 1815 | | ; end of list, identifier not found |
| 34 | 1815 | | =1817 | |
| 35 | 1817 | | .1817: | ; | |
| 36 | 1817 | 0102207 | | add | K1c | | | | ;=1 | @1817
| 37 | 1817+ | 1143442 | | jz | .1826P | | | | ;marker = -1, end of dictionary |
| 38 | 1818 | | .1818: | ; | |
| 39 | 1818 | 2216136600000 | | inc | idptr | / | lod | 0 | ; | @1818
| 40 | 1819 | 1023432 | | jn | .1818 | | | | ;skip over negative entries |
| 41 | 1819+ | 0203427 | | exa | idptr | | | | ;temp save value |
| 42 | 1820 | 0403430 | | sto | W1816 | | | | ;save id pointer | @1820
| 43 | 1820+ | 0203427 | | exa | idptr | | | | ;restore saved value |
| 44 | 1821 | 1103425 | | jmp | .1813P | | | | ;and continue scan |
| 45 | 1821+ | | ; |
| 46 | 1821+ | | ; id matches, get info and return |
| 47 | 1821+ | 0603430 | .1821P: | lod | W1816 | | | | ;id address |
| 48 | 1822 | 0016142077777 | | o00 | W1816 | / | add | -1 | ;plus type info | @1822
| 49 | 1823 | 0523427 | | sbs | idptr | | | | ; |
| 50 | 1823+ | 0603427 | | lod | idptr | | | | ; |
| 51 | 1824 | | .1824: | ; | |
| 52 | 1824 | | | ret | | | | | ; | @1824
| 52+1 | 1824 | 0016113000001 | | o00 | lookupid.lnk | / | jmp | 1 | |
| 53 | 1825 | | ; |
| 54 | 1825 | | ; done top level, now do standard procs |
| 55 | 1825 | | ; |
| 56 | 1825 | | =1826+ | |
| 57 | 1826+ | 0602142 | .1826P: | lod | Link15d | | | | ;procs searched? |
| 58 | 1827 | 1043440 | | jz | .1824 | | | | ;yes, return | @1827
| 59 | 1827+ | 0542142 | | cls | Link15d | | | | ;indicate procs searched |
| 60 | 1828 | 0602146 | | lod | proclistptr | | | | ;pointer to standard proc list | @1828
| 61 | 1828+ | 1103441 | | jmp | .1825P | | | | ; re-enter search |
| 62 | 1829 | | ; |
| 63 | 1829 | | ; data items |
| 64 | 1829 | | ; |
| 65 | 1829 | | =1815 | |
| 66 | 1815 | 6040012000144 | idptr: | +06040012000144 | ;work pointer | @1815
| 67 | 1816 | 0000000016041 | W1816: | +7201 | ; | @1816
|
|