File: variable.t2

For general comments see here
LineAddressObject Code LabelF1N1BF2N2CommentsCheck
1 0  ; tape1.d/variable.t2
2 0  ;--------------------
3 0  ;
4 0  ; compile code for variable in LHS situations
5 0  ;
6 0  Variable::; 
7 0  ;
8 0  =2847 
9 2847  .ent:; 
10 2847 0605436 lod .lnk   ; return address @2847
11 2847+  pad     ;no-op
11+12847+0000000 00 0    
12 2848   call     ; @2848
12+12848 7323731005012 lnk push.lnk:jmp push.ent 
13 2849   call     ; check for id
13+12849 7323761005054 lnk SimpleTerm.lnk:jmp SimpleTerm.ent 
14 2850 1125445 jn .cmplx   ; complex cases @2850
15 2850+0603427 lod idptr   ; id info
16 2851   call     ;
16+12851 7323731005012 lnk push.lnk:jmp push.ent 
17 2852  .advret:; 
18 2852   call     ; @2852
18+12852 7322411004503 lnk advance.lnk:jmp advance.ent 
19 2853 1005073 jmp Pop1   ;return via stack
20 2853+ ;-------
21 2853+ .cmplx:; 
22 2853+0603427 lod idptr   ;
23 2854 0064360 and procbit2   ;=02000000000000 @2854
24 2854+1145450 jz .notproc   ;
25 2855   call     ;
25+12855 7323761005063 lnk L2611.lnk:jmp L2611.ent 
26 2856 1005444 jmp .advret   ; @2856
27 2856+ ;
28 2856+ .notproc:; 
29 2856+0603427 lod idptr   ;
30 2857 0404031 sto IdInfo   ;
31 2857+0064324 and T_Mask   ;=00700000000000
32 2858   call     ; @2858
32+12858 7323731005012 lnk push.lnk:jmp push.ent 
33 2859  _err33:; 
34 2859 1661044 lnk errlnk   ;error 33: inadmissable identifier
35 2859+0603427 lod idptr   ;
36 2860 0064372 and arrbit1   ;=01000000000000 @2860
37 2860+1145461 jz .notarray   ;
38 2861   call     ;compile code to do indexing
38+12861 7324375005131 lnk Subscript.lnk:jmp Subscript.ent 
39 2862  .saveret:; 
40 2862   call     ; @2862
40+12862 7323761005021 lnk SaveTemp.lnk:jmp SaveTemp.ent 
41 2863 0604371 lod W2297   ;
42 2863+  pad     ;
42+12863+0000000 00 0    
43 2864 0010646477777 o00 stkp/ads -1; @2864
44 2865 1005073 jmp Pop1   ;return via stack
45 2865+ ;
46 2865+ .notarray:; 
47 2865+0603427 lod idptr   ;
48 2866 0064367 and Bit33a   ;=0040000000000 @2866
49 2866+1044772 jz error2   ;
50 2867   pad     ;
50+12867 0000000 00 0    
51 2867+0603514 lod GPs+39   ;
52 2868   call     ; @2868
52+12868 7320121004033 lnk gencode.lnk:jmp gencode.ent 
53 2869   call     ;
53+12869 7322411004503 lnk advance.lnk:jmp advance.ent 
54 2870 1005456 jmp .saveret   ; @2870
55 2870+  pad     ;
55+12870+0000000 00 0    
56 2871  ;--------------------------------------------------------------------