include "hdr1.html"; ?>
| Line | Address | Object Code | Label | F1 | N1 | B | F2 | N2 | Comments | Check |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 0 | ; tape1.d/stack.t2 | ||||||||
| 2 | 0 | ;----------------- | ||||||||
| 3 | 0 | ; addtodic | ||||||||
| 4 | 0 | ; add item to dictionary | ||||||||
| 5 | 0 | ; | ||||||||
| 6 | 0 | stack:: | ; | |||||||
| 7 | 0 | ; | ||||||||
| 8 | 0 | =1287 | ||||||||
| 9 | 1287 | ; | ||||||||
| 10 | 1287 | addtodic.ent: | ; | |||||||
| 11 | 1287 | 0010702400000 | o00 | dicpt | / | sto | 0 | ;store in list | @1287 | |
| 12 | 1288 | 0040000 | o02 | 0 | ;=1 | |||||
| 13 | 1288+ | 0762160 | o37 | dicpt | ;decrement pointer | |||||
| 14 | 1289 | 1002416 | jmp | .1294 | ; | @1289 | ||||
| 15 | 1289+ | ; | ||||||||
| 16 | 1289+ | ; test for overlap between stack and list | ||||||||
| 17 | 1289+ | 1022413 | .1289P: | jn | .1291 | ;test for out of space | ||||
| 18 | 1290 | .ret: | ret | ;OK, return | @1290 | |||||
| 18+1 | 1290 | 0012033000001 | o00 | stack.lnk | / | jmp | 1 | |||
| 19 | 1291 | ;; out of free space, abort compilation | ||||||||
| 20 | 1291 | ; | ||||||||
| 21 | 1291 | .1291: | call | ;call 1070 - report oflo | ||||||
| 21+1 | 1291 | 7306145002056 | lnk | L1070.lnk | : | jmp | L1070.ent | |||
| 22 | 1292 | 1002412 | jmp | .ret | ;return | @1292 | ||||
| 23 | 1292+ | ; | ||||||||
| 24 | 1292+ | 0000000 | o00 | 0 | ;no-op | |||||
| 25 | 1293 | ; | ||||||||
| 26 | 1293 | ; stack - add a word to the stack, increment stkp and check for overflow | ||||||||
| 27 | 1293 | ; | ||||||||
| 28 | 1293 | stack.ent: | ; | |||||||
| 29 | 1293 | 2210646377777 | inc | stkp | / | sto | -1 | ;store word | @1293 | |
| 30 | 1294 | 0602160 | .1294: | lod | dicpt | ;stack limit | @1294 | |||
| 31 | 1294+ | ; from 2572+ | ||||||||
| 32 | 1294+ | 0124336 | .test: | sub | K5b | ;=5 allowance - elbow room! | ||||
| 33 | 1295 | 0122151 | sub | stkp | ;stack ptr | @1295 | ||||
| 34 | 1295+ | 1102411 | jmp | .1289P | ;test and return if OK | |||||
| 35 | 1296 | ;--------------------------------------------------------------------- | ||||||||
| 36 | 1296 | =2570 | ||||||||
| 37 | 2570 | ; | ||||||||
| 38 | 2570 | ; push - add item to forward stack | ||||||||
| 39 | 2570 | ; | ||||||||
| 40 | 2570 | ; | ||||||||
| 41 | 2570 | push.ent: | ; | |||||||
| 42 | 2570 | 2210646337777 | inc | stkp | / | stc | -1 | ; | @2570 | |
| 43 | 2571 | 0104766 | add | push.lnk | ; return address | |||||
| 44 | 2571+ | StkCheck: | ; | |||||||
| 45 | 2571+ | .2571P: | ; | |||||||
| 46 | 2571+ | 0342406 | stc | stack.lnk | ; store for return | |||||
| 47 | 2572 | 0104304 | add | constptr | ; | @2572 | ||||
| 48 | 2572+ | 1102416 | jmp | stack.test | ; check for oflo | |||||
| 49 | 2573 | ;-------------------------------------------------------------------- | ||||||||
| 50 | 2573 | ; pop top stack element (A), pop return address to lnk, | ||||||||
| 51 | 2573 | ; push A, return via lnk | ||||||||
| 52 | 2573 | ; | ||||||||
| 53 | 2573 | =2619 | ||||||||
| 54 | 2619 | ;L2619: | ||||||||
| 55 | 2619 | Pop1: | ; | |||||||
| 56 | 2619 | 0040000 | .pop1: | o02 | 0 | ;=1 | ||||
| 57 | 2619+ | 0562151 | o27 | stkp | ;decrement stack ptr | |||||
| 58 | 2620 | 0010646600000 | o00 | stkp | / | lod | 0 | ;get return value | @2620 | |
| 59 | 2621 | 0010646177777 | o00 | stkp | / | exa | -1 | ;get return address | ||
| 60 | 2622 | 2023733000001 | sto | term.lnk | / | jmp | 1 | ;return | @2622 | |
| 61 | 2623 | ;------------------------------------------------------ | ||||||||