Line | Address | Object Code
| Label | F1 | N1 | B | F2 | N2 | Comments | Check
|
---|
1 | 0 | | ; tape1.d/primary.t2 |
|
2 | 0 | | ;------------------- |
|
3 | 0 | | ; |
|
4 | 0 | | =2420 | |
|
5 | 2420 | | ; |
|
6 | 2420 | | Primary:: | ; | |
|
7 | 2420 | | ; |
|
8 | 2420 | | Primary.ent: | ; | |
|
9 | 2420 | 1661044 | _err22: | lnk | errlnk | | | | ;error 22: bad primary in exprn | @2420
|
10 | 2420+ | 0604502 | | lod | .lnk | | | | ; |
|
11 | 2421 | | | call | | | | | ;stack return address |
|
11+1 | 2421 | 7323731005012 | | lnk | push.lnk | : | jmp | push.ent | |
|
12 | 2422 | 0600600 | | lod | token | | | | ;check token | @2422
|
13 | 2422+ | 0124323 | | sub | K47 | | | | ;=47 [(] |
|
14 | 2423 | 1044610 | | jz | .nest | | | | ;nested expression |
|
15 | 2423+ | | .prim: | ; | |
|
16 | 2423+ | 0603427 | | lod | idptr | | | | ; |
|
17 | 2424 | 0064324 | | and | T_Mask | | | | ;=00700000000000 | @2424
|
18 | 2424+ | | | pad | | | | | ; |
|
18+1 | 2424+ | 0000000 | | 00 | 0 | | | | |
|
19 | 2425 | | | call | | | | | ;add type info to stack |
|
19+1 | 2425 | 7323731005012 | | lnk | push.lnk | : | jmp | push.ent | |
|
20 | 2426 | 0603427 | | lod | idptr | | | | ; | @2426
|
21 | 2426+ | 0064360 | | and | procbit2 | | | | ;=02000000000000 (procedure bit) |
|
22 | 2427 | 1144575 | | jz | .prim1 | | | | ;not a procedure |
|
23 | 2427+ | 0140000 | | cla | 0 | | | | ; |
|
24 | 2428 | | | call | | | | | ;function call |
|
24+1 | 2428 | 7331155010611 | | lnk | CallFunc.lnk | : | jmp | CallFunc.ent | |
|
25 | 2429 | 1005073 | | jmp | Pop1 | | | | ;return via stack |
|
26 | 2429+ | | ; |
|
27 | 2429+ | | .prim1: | ; | |
|
28 | 2429+ | 0603427 | | lod | idptr | | | | ; |
|
29 | 2430 | 0064372 | | and | arrbit1 | | | | ;=01000000000000 array ? | @2430
|
30 | 2430+ | 1144602 | | jz | .prim3 | | | | ;not an array |
|
31 | 2431 | | | call | | | | | ;compile subscript |
|
31+1 | 2431 | 7324375005131 | | lnk | Subscript.lnk | : | jmp | Subscript.ent | |
|
32 | 2432 | | | pad | | | | | ; | @2432
|
32+1 | 2432 | 0000000 | | 00 | 0 | | | | |
|
33 | 2432+ | | .prim2: | ; | |
|
34 | 2432+ | 0603515 | | lod | GPs+40 | | | | ;={GP2M 1,20;GP0F 30,0} |
|
35 | 2433 | | | call | | | | | ; store address of result, fetch it |
|
35+1 | 2433 | 7320121004033 | | lnk | gencode.lnk | : | jmp | gencode.ent | |
|
36 | 2434 | 1005073 | | jmp | Pop1 | | | | ; return via stack | @2434
|
37 | 2434+ | | ; |
|
38 | 2434+ | | ; if it's not an array or proc then it should be a call by name |
|
39 | 2434+ | | ; |
|
40 | 2434+ | | .prim3: | ; | |
|
41 | 2434+ | 0603427 | | lod | idptr | | | | ; |
|
42 | 2435 | 0404031 | | sto | IdInfo | | | | ; |
|
43 | 2435+ | 0064367 | | and | Bit33a | | | | ;=0040000000000 Name flag |
|
44 | 2436 | 1044772 | | jz | error2 | | | | ;error, not CBN! | @2436
|
45 | 2436+ | 0603514 | | lod | GPs+39 | | | | ;={GP1M 00;GP0 73,0;GP1F 40} |
|
46 | 2437 | | | call | | | | | ; code to invoke thunk |
|
46+1 | 2437 | 7320121004033 | | lnk | gencode.lnk | : | jmp | gencode.ent | |
|
47 | 2438 | | | call | | | | | ; | @2438
|
47+1 | 2438 | 7322411004503 | | lnk | advance.lnk | : | jmp | advance.ent | |
|
48 | 2439 | 1104600 | | jmp | .prim2 | | | | ; |
|
49 | 2439+ | | ; |
|
50 | 2439+ | | | pad | | | | | |
|
50+1 | 2439+ | 0000000 | | 00 | 0 | | | | |
|
51 | 2440 | | ;-------------------------------- |
|
52 | 2440 | | ; nested expression as primary |
|
53 | 2440 | | .nest: | ; | |
|
54 | 2440 | 0040000 | | o02 | 0 | | | | ;=1 | @2440
|
55 | 2440+ | 0404300 | | sto | W2240 | | | | ;W2240 := 1 |
|
56 | 2441 | | | call | | | | | ;get nested expression |
|
56+1 | 2441 | 7323131004627 | | lnk | expression.lnk | : | jmp | expression.ent | |
|
57 | 2442 | 0600600 | | lod | token | | | | ;check closing delimiter | @2442
|
58 | 2442+ | 0124327 | | sub | K48 | | | | ;=48 [)] |
|
59 | 2443 | | | jnz | | | | | ;missing ')' |
|
59+1 | 2443 | 1044614 | | jz | .1 | | | | |
|
59+2 | 2443+ | 1105140 | | jmp | _err26 | | | | |
|
59+3 | 2444 | | .1: | ; | |
|
60 | 2444 | | | call | | | | | ;move to next item | @2444
|
60+1 | 2444 | 7322411004503 | | lnk | advance.lnk | : | jmp | advance.ent | |
|
61 | 2445 | 1005073 | | jmp | Pop1 | | | | ;return via stack |
|
62 | 2445+ | | ;-------------------------------------------------------------------- |
|
63 | 2445+ | | =4489 | |
|
64 | 4489 | | CallFunc:: | ; | |
|
65 | 4489 | | ; |
|
66 | 4489 | | ;preliminaries to function call? |
|
67 | 4489 | | ; |
|
68 | 4489 | | .ent: | ; | |
|
69 | 4489 | 0400004 | | sto | 4 | | | | ;save Acc over tests |
|
70 | 4489+ | 0610350 | | lod | errtab+22 | | | | ;error 22 |
|
71 | 4490 | 0401044 | | sto | errlnk | | | | ; | @4490
|
72 | 4490+ | 0603427 | | lod | idptr | | | | ;get id information |
|
73 | 4491 | 0064315 | | and | procbit1 | | | | ;=00300000000000 check not procedure |
|
74 | 4491+ | 1041070 | | jz | Error | | | | ;call error - procedure in expression |
|
75 | 4492 | 0600004 | | lod | 4 | | | | ;re-load save Acc | @4492
|
76 | 4492+ | 1006266 | | jmp | CallProc.ent | | | | ;jump into function/procedure call |
|
77 | 4493 | | ;-------------------------------------------------------------------- |
|