1
2
3
4
5
6
7
8
9
10
11
12
13 pulnk_:
14 procedure( pc, word, relwrd ) ;
15
16
17
18
19
20
21
22 declare (pc, word, relwrd) fixed bin (26);
23 declare (lbits, rbits, itemp, nl, nr, i, ik, ival ) fixed bin ( 17 ) aligned ;
24
25 declare eb_data_$stat_len ext fixed bin(26);
26 declare eb_data_$separate_static ext bit(1) aligned;
27
28 % include objnfo ;
29
30
31 declare object_$objlk ext entry (fixed bin (26), fixed bin (26)),
32 object_$wrblk ext entry (fixed bin (26), fixed bin (26)),
33 object_$gtblk ext entry (fixed bin, fixed bin, fixed bin) ;
34
35
36
37 call object_$objlk( pc, word ) ;
38
39 call object_$wrblk( pc, relwrd ) ;
40
41
42 return ;
43
44
45
46
47 lnkcnt: entry( ival ) ;
48
49 ival = 0 ;
50
51 if eb_data_$separate_static
52 then do;
53 itemp = (eb_data_$stat_len + ilkpc) - 1;
54 ik = eb_data_$stat_len;
55 end;
56 else do;
57 itemp = ilkpc - 1;
58 ik = 0;
59 end;
60
61 label_1000:
62 do i = ik to itemp ;
63
64 call object_$gtblk( i, lbits, rbits ) ;
65
66 nl = 1 ;
67
68 nr = 1 ;
69
70 if lbits ^= 0 then nl = 5 ;
71
72 if rbits ^= 0 then nr = 5 ;
73
74 ival = nl + nr + ival ;
75
76 end label_1000 ;
77
78 ilkcnt = ival ;
79
80 end pulnk_ ;