1 /****^  ***********************************************************
 2         *                                                         *
 3         * Copyright, (C) Honeywell Bull Inc., 1988                *
 4         *                                                         *
 5         * Copyright, (C) Honeywell Information Systems Inc., 1982 *
 6         *                                                         *
 7         * Copyright (c) 1972 by Massachusetts Institute of        *
 8         * Technology and Honeywell Information Systems, Inc.      *
 9         *                                                         *
10         *********************************************************** */
11 
12 
13 pusmb_:
14           procedure( pc, word, relwrd ) ;
15 
16 /* Last modified by NA on June 24, 1970 at 1022 */
17 
18           /* makes calls to stack the symbol words and stack the
19            associated relocation bits in the scratch segment */
20 
21 declare   (pc, word, relwrd) fixed bin (26);
22 declare   (lbits, rbits, itemp, nl, nr, i, ival ) fixed bin ( 17 ) aligned ;
23 
24 % include objnfo ;
25 
26 declare   object_$objst ext entry (fixed bin (26), fixed bin (26)),
27           object_$wrbst ext entry (fixed bin (26), fixed bin (26)),
28           object_$getbst ext entry (fixed bin, fixed bin, fixed bin) ;
29 
30           call object_$objst( pc, word ) ;        /* write the symbol into the scratch segment */
31 
32           call object_$wrbst( pc, relwrd ) ;      /* insert the relocation bits into the proper place in the scratch segment */
33 
34 
35           return ;
36 
37 
38 
39 
40 symcnt:   entry( ival ) ;     /* entry to count the number of relocation bits for the symbol portion */
41 
42           ival = 0 ;
43 
44           itemp = istpc - 1 ;
45 
46 label_1000:
47           do i = 0 to itemp ;
48 
49                     call object_$getbst( i, lbits, rbits ) ;
50 
51                     nl = 1 ;
52 
53                     nr = 1 ;
54 
55                     if lbits ^= 0 then nl = 5 ;
56 
57                     if rbits ^= 0 then nr = 5 ;
58 
59                     ival = nl + nr + ival ;
60 
61 end label_1000 ;
62 
63 
64           istcnt = ival ;
65 
66 end pusmb_ ;