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