COMPILATION LISTING OF SEGMENT cobol_make_link Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 0946.6 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 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 14 15 /****^ HISTORY COMMENTS: 16* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8060), 17* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 18* MCR8060 cobol_make_link.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 07/02/79 by FCH, [4.0-1], more than one size allowed for FSBs */ 23 /* Modified on 12/29/78 by FCH, [3.0-2], size check for initialization data */ 24 /* Modified on 07/18/78 by RAL, [3.0-1], changed linkage_header */ 25 /* Modified since Version 3.0 */ 26 27 /* format: style3 */ 28 cobol_make_link: 29 proc; 30 31 /* this is an improper entry point */ 32 33 type = 0; 34 module_name = "cobol_make_link"; 35 reset_loc = def_wd_off; 36 call error (msg_9); 37 return; 38 39 dcl 1 acc_string aligned based (ds_wrk_ptr), 40 2 nam_lnth bit (9) unaligned, 41 2 char_string char (32) unaligned; 42 43 dcl ds_strng char (ds_lnth) based (def_base_ptr); 44 dcl nam_strng char (32) based (ds_wrk_ptr); 45 46 dcl 1 type_pair aligned based (ds_wrk_ptr), 47 2 link_type bit (18) unaligned, 48 2 trap_relp bit (18) unaligned, 49 2 seg_name_relp bit (18) unaligned, 50 2 ent_name_relp bit (18) unaligned; 51 52 dcl typ_pr_strng char (8) based (ds_wrk_ptr); 53 54 dcl 1 expression_word aligned based (ds_wrk_ptr), 55 2 type_pair_relp bit (18) unaligned, 56 2 expression bit (18) unaligned; 57 58 dcl 1 link aligned based (ls_wrk_ptr), 59 2 header_relp bit (18) unaligned, 60 2 ignore_1 bit (12) unaligned, 61 2 tag bit (6) unaligned, 62 2 expr_word_relp bit (18) unaligned, 63 2 ignore_2 bit (12) unaligned, 64 2 modifier bit (6) unaligned; 65 66 dcl 1 linkage_header aligned based (ls_wrk_ptr), 67 2 pad bit (36), 68 2 def_sect_relp bit (18) unaligned, 69 2 first_ref_relp bit (18) unaligned, 70 2 obsolete_ptr ptr unal, /* [3.0-1] */ 71 2 original_linkage_ptr 72 ptr unal, /* [3.0-1] */ 73 2 unused bit (72), /* [3.0-1] */ 74 2 links_relp bit (18) unaligned, 75 2 link_sect_lgth bit (18) unaligned, 76 2 object_seg bit (18) unaligned, 77 2 obsolete_length bit (18) unaligned; 78 79 dcl 1 initialization_info 80 aligned based (init_ptr), 81 2 n_words fixed bin, 82 2 code fixed bin, 83 2 info (0 refer (n_words)) aligned bit (36); 84 85 dcl init_info char (262144) aligned based; 86 87 dcl 1 error_info aligned, 88 2 module_name char (32), 89 2 err_msg_lnth fixed bin, 90 2 error_msg char (168); 91 92 dcl err_sw fixed bin init (-1); 93 94 /*[4.0-1]*/ 95 declare 1 init_areas static internal, /*[4.0-1]*/ 96 2 size fixed bin, /* table size */ 97 /*[4.0-1]*/ 98 2 entry (16), /*[4.0-1]*/ 99 3 nwords fixed bin, /* area size */ 100 /*[4.0-1]*/ 101 3 def_off fixed bin; /* offset in def section */ 102 103 /*[4.0-1]*/ 104 declare res fixed bin; 105 106 dcl (ds_wrk_ptr, ls_wrk_ptr, init_ptr, type_pr_reloc_ptr) 107 ptr; 108 dcl (init_info_loc, seg_name_loc, ent_name_loc) 109 fixed bin; 110 dcl (lnk_typ, reset_loc, est_init_info_loc, express_loc) 111 fixed bin; 112 dcl (type_pair_loc, expr_word_loc, linkoff) 113 fixed bin; 114 dcl (i, j, type, x, segl, first, seg_code) 115 fixed bin; 116 dcl (nl, nwrds, next_loc, nchar, entl, name_sw) 117 fixed bin; 118 dcl (beg_link_loc, cur_link_loc, end_link_loc) 119 fixed bin; 120 dcl (exp_wd_loc, typ_pr_loc, name_loc, ds_lnth) 121 fixed bin; 122 dcl (n_lnks, n_args, code) 123 fixed bin; 124 dcl (ds_srch_ptr, ls_srch_ptr) 125 ptr; 126 dcl save_name_loc fixed bin; 127 dcl (lnk_offset, ln_lnth) 128 fixed bin init (0); 129 dcl name char (*); 130 dcl (linkoff_char, num_links_char) 131 char (6); 132 dcl (lo_lnth, nl_lnth) fixed bin; 133 dcl lo_char char (lo_lnth) based (lo_ptr); 134 dcl nl_char char (nl_lnth) based (nl_ptr); 135 dcl (lo_ptr, nl_ptr) ptr; 136 dcl ck_name char (64); 137 dcl link_name char (ln_lnth) based (addr (ck_name)); 138 dcl temp fixed bin; 139 140 type_5: 141 entry (linkoff, name, init_ptr, est_init_info_loc); 142 143 type = 5; 144 module_name = "cobol_make_link$type_5 "; 145 reset_loc = def_wd_off; /* ck if space for type-5 link already established */ 146 /*[4.0-1]*/ 147 res = 1; /*[4.0-1]*/ 148 nwrds = initialization_info.n_words; 149 150 /*[4.0-1]*/ 151 if est_init_info_loc = 0 /*[4.0-1]*/ 152 then do; 153 est_init_info_loc = 1; /*[4.0-1]*/ 154 init_areas.size = 0; /*[4.0-1]*/ 155 end; /*[4.0-1]*/ 156 else do i = 1 by 1 to init_areas.size while (res = 1); 157 158 /*[4.0-1]*/ 159 if nwrds = init_areas.entry.nwords (i) 160 then res = 0; 161 162 /*[4.0-1]*/ 163 end; 164 165 /*[4.0-1]*/ 166 if res = 1 /*[4.0-1]*/ 167 then do; 168 init_areas.size = init_areas.size + 1; /*[4.0-1]*/ 169 init_areas.entry.nwords (init_areas.size) = nwrds; 170 /*[4.0-1]*/ 171 init_areas.entry.def_off (init_areas.size) = def_wd_off; 172 /*[4.0-1]*/ 173 init_info_loc = def_wd_off; /*[4.0-1]*/ 174 end; /*[4.0-1]*/ 175 else init_info_loc = init_areas.entry.def_off (i - 1); 176 177 /*[4.0-1]*/ 178 ds_wrk_ptr = addrel (def_base_ptr, init_info_loc); 179 180 /*[4.0-1]*/ 181 nwrds = nwrds + 2; 182 183 call ds_size_ck (nwrds); 184 if (err_sw = 0) 185 then return; 186 187 nchar = fixed (substr (unspec (nwrds), 3, 36), 36); 188 substr (ds_wrk_ptr -> init_info, 1, nchar) = substr (init_ptr -> init_info, 1, nchar); 189 /* ck if init_info structure is being posted */ 190 if (init_info_loc = def_wd_off) 191 then do; /* yes, update def_wd_off and emit relocation info */ 192 def_wd_off = def_wd_off + nwrds; 193 call cobol_reloc (null (), (2 * nwrds), 3003); 194 end; 195 196 type_pr_reloc_ptr = addr (type_pr6_reloc); 197 198 call create_acc_string; 199 200 return; 201 202 type_4: 203 entry (linkoff, name); 204 205 type = 4; 206 module_name = "cobol_make_link$type_4"; 207 reset_loc = def_wd_off; 208 init_info_loc = 0; 209 type_pr_reloc_ptr = addr (type_pr4_reloc); 210 211 call create_acc_string; 212 213 return; 214 215 create_acc_string: 216 proc; 217 218 if type = 5 219 then seg_name_loc = 5; 220 else seg_name_loc = def_wd_off; 221 save_name_loc = def_wd_off; 222 223 nl = index (name, " ") - 1; 224 225 if (nl < 0) 226 then nl = length (name); 227 i = index (name, "$"); 228 229 if (i = 0) 230 then do; 231 entl = 0; 232 segl = nl; 233 end; 234 else do; 235 entl = nl - i; 236 segl = i - 1; 237 end; 238 239 name_sw = 0; 240 nchar = segl; 241 first = 1; 242 243 do while ("1"b); 244 245 ds_wrk_ptr = addrel (def_base_ptr, def_wd_off); 246 nam_lnth = substr (unspec (nchar), 28, 9); 247 nwrds = 1 + fixed (substr (unspec (nchar), 1, 34), 36); 248 /* = 1+(nchar/4) */ 249 250 call ds_size_ck (nwrds); 251 if (err_sw = 0) 252 then return; 253 254 substr (char_string, 1, nchar) = substr (name, first, nchar); 255 /* before posting acc string, search def section to see 256* if an acc string for this "name" already exists */ 257 ds_lnth = def_wd_off * 4; 258 name_loc = index (ds_strng, substr (nam_strng, 1, nchar + 1)) - 1; 259 260 if (name_loc > -1) 261 then do; /* acc strng for this name found, 262* ck whether seg_name or ent_name */ 263 name_loc = divide (name_loc, 4, 17, 0); 264 265 if (name_sw = 0) 266 then if type ^= 5 267 then seg_name_loc = name_loc; 268 else do; 269 seg_name_loc = 5; 270 save_name_loc = name_loc; 271 end; 272 else ent_name_loc = name_loc; 273 274 end; 275 else do; 276 def_wd_off = def_wd_off + nwrds; 277 call cobol_reloc (null (), (2 * nwrds), 3003); 278 end; 279 280 if name_sw ^= 0 281 then do; 282 call create_type_pair; 283 return; 284 end; 285 286 if (entl = 0) 287 then do; /* link requested contains segment name only */ 288 if type = 5 289 then ent_name_loc = save_name_loc; 290 else ent_name_loc = seg_name_loc; 291 292 call create_type_pair; 293 294 return; 295 end; /* link requested contains entry name, 296* reset parameters for entry name processing */ 297 name_sw = 1; 298 nchar = entl; 299 first = i + 1; 300 ent_name_loc = def_wd_off; 301 302 end; 303 304 end; 305 306 type_1: 307 entry (linkoff, seg_code); 308 309 type = 1; 310 module_name = "cobol_make_link$type_1"; 311 reset_loc = def_wd_off; 312 seg_name_loc = seg_code; 313 ent_name_loc, init_info_loc = 0; 314 type_pr_reloc_ptr = addr (type_pr1_reloc); 315 316 call create_type_pair; 317 return; 318 319 create_type_pair: 320 proc; 321 322 /* The following operations are common to ALL link types */ 323 324 ds_wrk_ptr = addrel (def_base_ptr, def_wd_off); 325 type_pair_loc = def_wd_off; 326 327 call ds_size_ck (3); 328 if (err_sw = 0) 329 then return; 330 331 link_type = substr (unspec (type), 19, 18); 332 trap_relp = substr (unspec (init_info_loc), 19, 18); 333 seg_name_relp = substr (unspec (seg_name_loc), 19, 18); 334 ent_name_relp = substr (unspec (ent_name_loc), 19, 18); 335 /* before posting type-pair and expression word to 336* def section, check to see if a type 4 or 5 link 337* has already been made for this "name" */ 338 ds_lnth = def_wd_off * 4; 339 typ_pr_loc = index (ds_strng, typ_pr_strng) - 1; 340 341 if (typ_pr_loc > -1) 342 then do; /* type-pair for this link-type and "name" found, 343* calculate expr wrd loc for this type-pair 344* search link section to find link to this expr word 345* return offset of this already made link */ 346 typ_pr_loc = divide (typ_pr_loc, 4, 17, 0); 347 exp_wd_loc = typ_pr_loc + 2; 348 ls_wrk_ptr = link_base_ptr; 349 beg_link_loc, cur_link_loc = fixed (substr (links_relp, 1, 18), 36); 350 end_link_loc = beg_link_loc + fixed (substr (link_sect_lgth, 1, 18), 36); 351 352 /* bypass search until AFTER 1st link has been made */ 353 354 if ^(link_wd_off = beg_link_loc) 355 then do; 356 357 srch_lp: 358 ls_srch_ptr = addrel (link_base_ptr, cur_link_loc); 359 expr_word_loc = fixed (substr (ls_srch_ptr -> expr_word_relp, 1, 18), 36); 360 361 if (exp_wd_loc = expr_word_loc) 362 then do; /* link found, return offset to this link */ 363 linkoff = cur_link_loc; 364 return; 365 end; 366 367 cur_link_loc = cur_link_loc + 2; 368 369 if (cur_link_loc < end_link_loc) 370 then goto srch_lp; 371 372 end; 373 end; 374 375 /* link not found, post type-pair, update def_wd_off 376* and emit relocation information for this link type */ 377 def_wd_off = def_wd_off + 2; 378 call cobol_reloc (type_pr_reloc_ptr, 4, 3003); 379 380 ds_wrk_ptr = addrel (def_base_ptr, def_wd_off); 381 expr_word_loc = def_wd_off; 382 type_pair_relp = substr (unspec (type_pair_loc), 19, 18); 383 expression = (18)"0"b; 384 def_wd_off = def_wd_off + 1; 385 386 call cobol_reloc (addr (expr_word_reloc), 2, 3003); 387 388 389 ls_wrk_ptr = link_base_ptr; 390 if (link_sect_lgth = "0"b) 391 then link_sect_lgth = links_relp; 392 393 ls_wrk_ptr = addrel (link_base_ptr, link_wd_off); 394 395 linkoff = link_wd_off; 396 397 call ls_size_ck (2); 398 if (err_sw = 0) 399 then return; 400 401 string (link) = "000000000000000000000000000000100110"b; 402 temp = -link_wd_off; 403 header_relp = substr (unspec (temp), 19, 18); 404 expr_word_relp = substr (unspec (expr_word_loc), 19, 18); 405 link_wd_off = link_wd_off + 2; 406 ls_wrk_ptr = link_base_ptr; 407 temp = fixed (link_sect_lgth, 18) + 2; 408 link_sect_lgth = substr (unspec (temp), 19, 18); 409 410 call cobol_reloc (addr (link_reloc), 4, 3002); 411 412 end; 413 414 size_ck: 415 proc; 416 dcl (ds_size_ck, ls_size_ck) 417 entry; 418 dcl block_size fixed bin; 419 420 ds_size_ck: 421 entry (block_size); 422 423 next_loc = def_wd_off + block_size; 424 425 if (next_loc > def_max) 426 then do; 427 call error (msg_5); 428 return; 429 end; 430 return; 431 432 ls_size_ck: 433 entry (block_size); 434 435 next_loc = link_wd_off + block_size; 436 437 if (next_loc > link_max) 438 then do; 439 call error (msg_6); 440 return; 441 end; 442 end size_ck; 443 444 error: 445 proc (err_msg); 446 447 dcl err_msg char (*); 448 dcl l_name char (68); 449 450 if (type = 1) 451 then l_name = "type-1"; 452 else if ((type = 4) | (type = 5)) 453 then l_name = name; 454 else if (type = 0) 455 then l_name = ""; 456 457 call ioa_$rsnnl ("^a ABORTING type ^o link -> ""^a""", error_msg, err_msg_lnth, err_msg, type, l_name); 458 call signal_ ("command_error", null, addr (error_info)); 459 460 linkoff = 0; 461 err_sw = 0; 462 def_wd_off = reset_loc; 463 end error; 464 1 1 /* 1 2* 1 3*function: This procedure causes a Type-1, Type-4, or Type-5 link 1 4* to be located or created in the linkage section, depending 1 5* on the entry at which it is called. 1 6* 1 7* cobol_make_link$type_1 1 8* cobol_make_link$type_4 1 9* cobol_make_link$type_5 1 10* 1 11* The offset of the link that has been found or created 1 12* in the linkage section of the object segment (cobol_link_seg) 1 13* is returned to the caller. 1 14* 1 15* For checkout purposes, an additional entry is provided to 1 16* display these links and their corresponding definitions. 1 17* 1 18* cobol_display_links 1 19* 1 20* NOTE: The main entry (cobol_make_link) is NOT invoked. 1 21* 1 22* 1 23* 1 24*type_5: entry (linkoff, name, init_info_ptr, init_info_loc); 1 25* 1 26*dcl name char (*); 1 27*dcl init_info_ptr ptr; 1 28*dcl (linkoff, init_info_loc) fixed bin; 1 29* 1 30*function: This procedure locates or creates a Type-6 link to "name". 1 31* This external reference ("name") may be in the form of "A" 1 32* or "A$B". If it is in the form of "A", then the reference 1 33* (ie segment) name portion of this external reference and 1 34* the offset (ie entry) name are assumed to be equivalent, 1 35* and BOTH equal to "name". 1 36* If "name" is in the form "A$B", then the reference name is 1 37* taken as "A" and the offset name as "B". 1 38* NOTE: 1 39* The acc_strings for these "names" are entered into the 1 40* definition section ONLY on the first reference to this 1 41* "name". All subsequent references will utilize the 1 42* acc_string previously entered. 1 43* 1 44*where: name (input): 1 45* explained under function (above). 1 46* 1 47* init_info_ptr (input): 1 48* is a pointer to the initialization information to be used. 1 49* This structure is defined as follows: 1 50* 1 51* dcl 1 init_info_struct aligned based (init_info_ptr), 1 52* 2 n_words fixed bin, 1 53* 2 code fixed bin, 1 54* 2 info (0 refer(n_words)) bit (36) aligned; 1 55* 1 56* where: 1 57* n_words is the number of words in the array "info" 1 58* 1 59* code indicates what type of initialization is to be 1 60* performed. Code can have one of the following 1 61* values: 1 62* 1 63* 0 - no initialization is to be performed. 1 64* 1 65* 3 - copy the info array into the newly grown variable. 1 66* 1 67* 4 - initialize the variable as an area. 1 68* 1 69* info is the array of 36 bit words to be copied into the 1 70* new variable. 1 71* (it exists ONLY if code = 3) 1 72* 1 73* init_info_loc (input/output): 1 74* represents a pointer (relative to the base of the defintion 1 75* section) to the area in which the "init_info" structure will 1 76* be stored. (If init_info_loc = 0, then the "init_info" struct- 1 77* ure will be stored beginning at the next available location 1 78* and this offset will be returned in init_info_loc). 1 79* 1 80* linkoff (output): 1 81* the offset of this type-5 link (either found or created) 1 82* is returned in linkoff. 1 83* NOTE: 1 84* In the event an error condition is detected during the 1 85* creation of this link, a value of 0 is returned. 1 86* 1 87* 1 88* type-5 link specifics: 1 89* - set type = 5 1 90* - set module_name to "cobol_make_link$type_5" 1 91* - set reset_loc for error recovery 1 92* - set subject to "init info" 1 93* - ck if space for initialization info already established 1 94* - if yes, re-use this space 1 95* - if not, establish space for init info 1 96* record this loc in est_init_info_loc 1 97* - calculate size of init_info in words 1 98* - check if init_info will fit in def_section 1 99* - calculate size of init_info in characters 1 100* - copy init_info into def_section (via init_ptr) 1 101* - increment def_wd_off by # of words copied (n_words+2) 1 102* - set def_sect reloc bits for (2*(n_words+2)) copied 1 103* - set type_pair relocation for type-5 1 104* - go to create_acc_string to continue processing 1 105* 1 106* 1 107*type_4: entry (linkoff, name); 1 108* 1 109*dcl name char (*); 1 110*dcl linkoff fixed bin; 1 111* 1 112*function: This procedure locates or creates a Type-4 link to "name". 1 113* This external reference ("name") may be in the form of "A" 1 114* or "A$B". If it is in the form of "A", then the reference 1 115* (ie segment) name portion of this external reference and 1 116* the offset (ie entry) name are assumed to be equivalent, 1 117* and BOTH equal to "name". 1 118* If "name" is in the form "A$B", then the reference name is 1 119* taken as "A" and the offset name as "B". 1 120* NOTE: 1 121* The acc_strings for these "names" are entered into the 1 122* definition section ONLY on the first reference to this 1 123* "name". All subsequent references will utilize the 1 124* acc_string previously entered. 1 125* 1 126*where: name (input): 1 127* explained under function (above). 1 128* 1 129* linkoff (input/output): 1 130* the offset of this Type-4 link (either found or created) 1 131* is returned in "linkoff". 1 132* NOTE: 1 133* In the event an error condition is detected during the 1 134* creation of this link, a value of 0 is returned. 1 135* 1 136* 1 137* type-4 link specifics: 1 138* - set type = 4 1 139* - set module_name to "cobol_make_link$type_4" 1 140* - set reset_loc for error recovery 1 141* - set init_info_loc = 0 1 142* - set type pair relocation for type-4 1 143* 1 144* acc_strings are common to BOTH type-4 and type-6 links: 1 145* - record loc of seg_name (in seg_name_loc) 1 146* - calculate parameters of seg_name and ent_name (if any) 1 147* - check seg_name and ent_name (if any) for format errors 1 148* - check seg_name and ent_name (if any) = "blanks" 1 149* - check seg_name and ent_name (if any) for length errors 1 150* - set err_msg subject to "segment name " 1 151* - then, with seg_name parameters: 1 152* :-> - create ds_wrk_ptr from (def_base_ptr + def_wd_off) 1 153* - calculate size of seg_name string in words 1 154* - check if seg_name string will fit in def_section 1 155* - create acc_string of seg_name in def_section 1 156* - increment def_wd_off by # of words in seg_name string 1 157* - if ent_name exists; then: 1 158* - record loc of ent_name (in ent_name_loc) 1 159* - set err_msg subject to "entry name " 1 160* - with ent_name parameters; repeat from :-> (above) 1 161* - after repeat (or if ent_name does not exist) 1 162* - go to create_type_pair to continue processing 1 163* 1 164* 1 165*type_1: entry (linkoff, segcode); 1 166* 1 167*dcl (linkoff, segcode) fixed bin; 1 168* 1 169*function: This procedure locates or creates a Type-1 link in 1 170* accordance with the value of "segcode". 1 171* 1 172*where: segcode (input): 1 173* = 0 :- specifies a self-reference to the program's text 1 174* section; such a reference is symbolically represented 1 175* as "*text". 1 176* 1 177* = 1 :- specifies a self-reference to the program's linkage 1 178* section; such a reference is symbolically represented 1 179* as "*link". 1 180* 1 181* = 2 :- specifies a self-reference to the program's symbol 1 182* section; such a reference is symbolically represented 1 183* as "*symbol". 1 184* 1 185* linkoff (input/output): 1 186* the offset of this type-1 link (either found or created) 1 187* is returned in "linkoff". 1 188* NOTE: 1 189* In the event an error condition is detected during the 1 190* creation of this link, a value of 0 is returned. 1 191* 1 192* 1 193* type-1 link specifics: 1 194* (Note: type-1 links are self-referencing. therefore, 1 195* there are no seg_ or ent_names and the seg_name_relp 1 196* field is used to store the segment_code) 1 197* - set type = 1 1 198* - set module_name = "cobol_make_link$type_1" 1 199* - set reset_loc for error recovery 1 200* - set seg_name_loc = seg_code 1 201* - check seg_code within limits (0<=seg_code<=2) 1 202* - set ent_name_loc = 0 1 203* - set init_info_loc = 0 1 204* - set type pair relocation for type-1 1 205* 1 206* A) create type_pair in def_section: 1 207* 1 208* - create ds_wrk_ptr from (def_base_ptr + def_wd_off) 1 209* - record loc of type_pair (in type_pair_loc) 1 210* - set subject to "typ_pr & expr_word" 1 211* - check if typ_pr/expr_wrd will fit in definition section 1 212* - set link_type = type 1 213* - set trap_relp = init_info_loc (or 0) 1 214* - set seg_name_relp = seg_name_loc (or seg_code) 1 215* - set ent_name_relp = ent_name_loc (or 0) 1 216* - increment def_wd_off by 2 words in type pair 1 217* - set def_section reloc bits for appropriate type_pair 1 218* 1 219* B) create expression: word in def_section: 1 220* 1 221* - create ds_wrk_ptr from (def_base_ptr + def_wd_off) 1 222* - record loc of expr_word (in expr_word_loc) 1 223* - set type_pair_relp = type_pair_loc 1 224* - set expression = 0 1 225* - increment def_wd_off by 1 word in expr_word 1 226* - set def_sect reloc bits for expression word 1 227* 1 228* (NOTE: these 2-word links MUST begin at an even location) 1 229* - set err_msg subject to "the link" 1 230* - ensure that link_wd_off is an even number 1 231* - ensure that link section length is set 1 232* - create ls_wrk_ptr from (link_base_ptr + link_wd_off) 1 233* - record loc of this link (in linkoff) 1 234* - check if link will fit in linkage section 1 235* - set NEGATIVE header_relp = link_base - loc this link 1 236* - set ignore_1, ignore_2 = 0 1 237* - set tag = 46)8 1 238* - set modifier = 0 1 239* - set expr_word_relp = loc of expr_word 1 240* - increment link_wd_off by 2 words in link 1 241* - increment link_sect length by 2 words in link 1 242* - set link_sect reloc bits for link 1 243* - return with loc (offset) of this link in linkoff 1 244* 1 245* cobol_display_links: entry (linkoff_char, num_links_char); 1 246* 1 247* 1 248*cobol_display_links: entry (linkoff_char, num_links_char); 1 249* 1 250*dcl (linkoff_char, num_links_char) char (6); 1 251* 1 252*function: This procedure displays the links which currently exist 1 253* in the linkage section. 1 254* 1 255* Starting from the link at "linkoff", it displays as many 1 256* links as called for by "num_links"; unless "linkoff = 0, 1 257* in which case, ALL links are displayed. 1 258* 1 259* NOTE: The 1st argument is the OCTAL value of the starting link offset. 1 260* 1 261* The corresponding definitions (in cobol_def_seg) are used 1 262* to describe the displayed links in symbolic form. 1 263* 1 264* NOTE: This procedure is callable from MULTICS command level. 1 265* 1 266* 1 267* get # of arguments passed 1 268* call cu_$arg_count (n_args); 1 269* get arg1 (starting link offset or 0) 1 270* call cu_$arg_ptr (1, lo_ptr, lo_lnth, code); 1 271* if (code ^= 0) then do; 1 272* call ioa_$nnl ("^/^-Routine requires 1 argument (starting link offset or 0);"); 1 273*err_exit: call ioa_ ("^-please re-enter^/"); 1 274* return; 1 275* end; 1 276* lnk_offset = cv_oct_check_ (lo_char, code); 1 277* if (code ^= 0) then do; 1 278*conv_err: call ioa_$nnl ("^/^-CONVERSION ERROR"); 1 279* goto err_exit; 1 280* end; 1 281* if it exists, get arg2 (number of links to display) 1 282* if (n_args ^= 1) then do; 1 283* call cu_$arg_ptr (2, nl_ptr, nl_lnth, code); 1 284* n_lnks = cv_dec_check_ (nl_char, code); 1 285* if (code ^= 0) then do; 1 286* goto conv_err; 1 287* end; 1 288* end; 1 289* else n_lnks = 1; 1 290* 1 291* get beginning and ending locations of linkage section 1 292* ls_wrk_ptr = link_base_ptr; 1 293* beg_link_loc = fixed(substr(links_relp,1,18),36); 1 294* end_link_loc = fixed(substr(link_sect_lgth,1,18),36); 1 295* ck if any links were made 1 296* if (end_link_loc = beg_link_loc) then do; 1 297* call ioa_ ("^/^2-No links exist at this time^/"); 1 298* return; 1 299* end; 1 300* if (lnk_offset ^= 0) then do; 1 301* if (lnk_offset >= end_link_loc) then do; 1 302* call ioa_$nnl ("^/^-Link offset out of range (too large);"); 1 303* goto err_exit; 1 304* end; 1 305* else if (lnk_offset < beg_link_loc) then do; 1 306* call ioa_$nnl ("^/^-Link offset out of range (too small);"); 1 307* goto err_exit; 1 308* end; 1 309* else do; 1 310* x = fixed(substr(unspec(lnk_offset),36,1),36); 1 311* if (x ^= 0) then do; 1 312* call ioa_$nnl ("^/^-Link offset MUST BE an even number;"); 1 313* goto err_exit; 1 314* end; 1 315* cur_link_loc = lnk_offset; 1 316* call ioa_ (" "); 1 317* goto prnt_lp; 1 318* end; 1 319* end; 1 320* else do; 1 321* # of links made = (end - beg)/2 1 322* x = end_link_loc - beg_link_loc; 1 323* x = fixed(substr(unspec(x),1,35),36); 1 324* call ioa_ ("^/^-^d links:^/",x); 1 325* cur_link_loc = beg_link_loc; 1 326* end; 1 327*prnt_lp: ls_wrk_ptr = addrel (link_base_ptr, cur_link_loc); 1 328* exp_wd_loc = fixed(substr(ls_wrk_ptr->expr_word_relp,1,18),36); 1 329* ds_wrk_ptr = addrel (def_base_ptr, exp_wd_loc); 1 330* typ_pr_loc = fixed(substr(ds_wrk_ptr->type_pair_relp,1,18),36); 1 331* express_loc = fixed(substr(ds_wrk_ptr->expression,1,18),36); 1 332* ds_wrk_ptr = addrel (def_base_ptr, typ_pr_loc); 1 333* seg_name_loc = fixed(substr(ds_wrk_ptr->seg_name_relp,1,18),36); 1 334* ent_name_loc = fixed(substr(ds_wrk_ptr->ent_name_relp,1,18),36); 1 335* lnk_typ = fixed(substr(ds_wrk_ptr->link_type,1,18),36); 1 336* init_info_loc = fixed(substr(ds_wrk_ptr->trap_relp,1,18),36); 1 337* ds_wrk_ptr = addrel (def_base_ptr, seg_name_loc); 1 338* ln_lnth, segl = fixed(nam_lnth,9); 1 339* substr(link_name,1,segl) = substr(char_string,1,segl); 1 340* if (ent_name_loc ^= seg_name_loc) then do; 1 341* ds_wrk_ptr = addrel (def_base_ptr, ent_name_loc); 1 342* entl = fixed(nam_lnth,9); 1 343* substr(link_name,segl+1,1) = substr("$",1,1); 1 344* substr(link_name,segl+2,entl) = substr(char_string,1,entl); 1 345* ln_lnth = segl + entl + 1; 1 346* end; 1 347* if (lnk_typ = 4) then call ioa_ 1 348* ("^-link|^o ^- ^va",cur_link_loc,ln_lnth,link_name); 1 349* else if (lnk_typ = 5) then call ioa_ 1 350* ("^-link|^o ^- ^va^-Init info at def|^o",cur_link_loc,ln_lnth,link_name,init_info_loc); 1 351* else if (lnk_typ = 1) then do; 1 352* if (seg_name_loc = 0) then call ioa_ ("^-link|^o ^- *text",cur_link_loc); 1 353* else if (seg_name_loc = 1) then call ioa_ ("^-link|^o ^- *link",cur_link_loc); 1 354* else if (seg_name_loc = 2) then call ioa_ ("^-link|^o ^- *symbol",cur_link_loc); 1 355* else call ioa_ ("^-link|^o^-(code = ^o)",cur_link_loc,seg_name_loc); 1 356* end; 1 357* else call ioa_ ("^-link|^o^-(type = ^o^3xseg = def|^o^3xent = def|^o)",cur_link_loc,lnk_typ,seg_name_loc,ent_name_loc); 1 358* 1 359* if (lnk_offset ^= 0) then do; 1 360* n_lnks = n_lnks - 1; 1 361* if (n_lnks = 0) then goto dspl_xit; 1 362* end; 1 363* cur_link_loc = cur_link_loc + 2; 1 364* if (cur_link_loc < end_link_loc) then goto prnt_lp; 1 365* 1 366* all links printed 1 367*dspl_xit: call ioa_ (" "); 1 368* return; 1 369* 1 370* 1 371* 1 372* ERROR CONDITIONS :- 1 373* 1 374* The following error situations can arise in attempting 1 375* to locate or create a link to an external reference name. 1 376* Should any of the following errors be detected, the link 1 377* offset (linkoff) is set set to 0, an error condition is set 1 378* (via signal_), and processing is discontinued. 1 379* 1 380* a) errors pertaining to the external reference (ie link name): 1 381* 1 382* - the external reference name (ie link name) has 0 length 1 383* - either the reference (segment) or offset (entry) name 1 384* portion of the link name exceeds 32 characters in length 1 385* - either the reference (segment) or offset (entry) name 1 386* portion of the link name contains imbedded blanks 1 387* - the link name contains a "$", but no offset (entry) name 1 388* is given 1 389* - the link name contains more than one "$" 1 390* 1 391* b) errors pertaining to the "segcode": 1 392* 1 393* - the given segcode has a value other than 0, 1, or 2 1 394* 1 395* c) errors pertaining to the "init_info" structure: 1 396* 1 397* - the number of words in the "init_info" structure will 1 398* not fit into the area requested (ie init_info_loc ^= 0) 1 399* 1 400* d) errors pertaining to all link types: 1 401* 1 402* - the space remaining in the definition section is NOT 1 403* sufficient to store the definitions for this link 1 404* - the space remaining in the linkage section is NOT 1 405* sufficient to store this link 1 406* - cobol_make_link$type_ has been improperly entered (at cobol_make_link$type_) 1 407* as opposed to the precribed entry points (cobol_make_link$type_1, 1 408* cobol_make_link$type_4 or cobol_make_link$type_5) 1 409* 1 410* e) error conditions detected in "cobol_display_links" 1 411* 1 412* are sent to the caller at his or her terminal and the 1 413* corrected input can be immediately re-entered. 1 414* 1 415* 1 416* on error: 1 417* - set link offset = 0 1 418* - set err_switch = 0 1 419* - reset def_wd_off (ie cancel ALL def_section entries 1 420**/ 1 421 1 422 465 2 1 2 2 /* STATIC DATA */ 2 3 2 4 dcl type_pr1_reloc (4) bit(5) aligned static options(constant) init("00000"b,"00000"b,"00000"b,"00000"b); 2 5 dcl type_pr4_reloc (4) bit(5) aligned static options(constant) init("00000"b,"00000"b,"10101"b,"10101"b); 2 6 dcl type_pr6_reloc (4) bit(5) aligned static options(constant) init("00000"b,"10101"b,"10101"b,"10101"b); 2 7 dcl expr_word_reloc (2) bit(5) aligned static options(constant) init("10101"b,"00000"b); 2 8 dcl link_reloc (4) bit(5) aligned static options(constant) init("11001"b,"00000"b,"10101"b,"00000"b); 2 9 2 10 dcl msg_5 char (40) static options(constant) init("will overflow the definition section;"); 2 11 dcl msg_6 char (36) static options(constant) init("will overflow the linkage section;"); 2 12 dcl msg_9 char (16) static options(constant) options(constant) init("improper entry"); 2 13 dcl msg_10 char (56) static options(constant) init("""n_words"" does NOT match static init_info area requested"); 2 14 2 15 2 16 /* EXTERNAL ENTRY NAMES */ 2 17 2 18 dcl ioa_$rsnnl entry options(variable), 2 19 cobol_reloc entry(ptr,fixed bin,fixed bin), 2 20 signal_ entry(char(*),ptr,ptr); 2 21 dcl cv_oct_check_ entry (char(*),fixed bin) returns (fixed bin(35)); 2 22 dcl cv_dec_check_ entry (char(*),fixed bin) returns (fixed bin(35)); 2 23 dcl cu_$arg_count entry (fixed bin); 2 24 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin); 2 25 2 26 /* BUILTIN FUNCTIONS */ 2 27 2 28 dcl (substr, unspec, addr, addrel) builtin; 2 29 dcl (fixed, length, rel, null) builtin; 2 30 2 31 3 1 3 2 /* BEGIN INCLUDE FILE ... cobol_.incl.pl1 */ 3 3 /* last modified Feb 4, 1977 by ORN */ 3 4 3 5 /* This file defines all external data used in the generator phase of Multics Cobol */ 3 6 3 7 /* POINTERS */ 3 8 dcl cobol_$text_base_ptr ptr ext; 3 9 dcl text_base_ptr ptr defined (cobol_$text_base_ptr); 3 10 dcl cobol_$con_end_ptr ptr ext; 3 11 dcl con_end_ptr ptr defined (cobol_$con_end_ptr); 3 12 dcl cobol_$def_base_ptr ptr ext; 3 13 dcl def_base_ptr ptr defined (cobol_$def_base_ptr); 3 14 dcl cobol_$link_base_ptr ptr ext; 3 15 dcl link_base_ptr ptr defined (cobol_$link_base_ptr); 3 16 dcl cobol_$sym_base_ptr ptr ext; 3 17 dcl sym_base_ptr ptr defined (cobol_$sym_base_ptr); 3 18 dcl cobol_$reloc_text_base_ptr ptr ext; 3 19 dcl reloc_text_base_ptr ptr defined (cobol_$reloc_text_base_ptr); 3 20 dcl cobol_$reloc_def_base_ptr ptr ext; 3 21 dcl reloc_def_base_ptr ptr defined (cobol_$reloc_def_base_ptr); 3 22 dcl cobol_$reloc_link_base_ptr ptr ext; 3 23 dcl reloc_link_base_ptr ptr defined (cobol_$reloc_link_base_ptr); 3 24 dcl cobol_$reloc_sym_base_ptr ptr ext; 3 25 dcl reloc_sym_base_ptr ptr defined (cobol_$reloc_sym_base_ptr); 3 26 dcl cobol_$reloc_work_base_ptr ptr ext; 3 27 dcl reloc_work_base_ptr ptr defined (cobol_$reloc_work_base_ptr); 3 28 dcl cobol_$pd_map_ptr ptr ext; 3 29 dcl pd_map_ptr ptr defined (cobol_$pd_map_ptr); 3 30 dcl cobol_$fixup_ptr ptr ext; 3 31 dcl fixup_ptr ptr defined (cobol_$fixup_ptr); 3 32 dcl cobol_$initval_base_ptr ptr ext; 3 33 dcl initval_base_ptr ptr defined (cobol_$initval_base_ptr); 3 34 dcl cobol_$initval_file_ptr ptr ext; 3 35 dcl initval_file_ptr ptr defined (cobol_$initval_file_ptr); 3 36 dcl cobol_$perform_list_ptr ptr ext; 3 37 dcl perform_list_ptr ptr defined (cobol_$perform_list_ptr); 3 38 dcl cobol_$alter_list_ptr ptr ext; 3 39 dcl alter_list_ptr ptr defined (cobol_$alter_list_ptr); 3 40 dcl cobol_$seg_init_list_ptr ptr ext; 3 41 dcl seg_init_list_ptr ptr defined (cobol_$seg_init_list_ptr); 3 42 dcl cobol_$temp_token_area_ptr ptr ext; 3 43 dcl temp_token_area_ptr ptr defined (cobol_$temp_token_area_ptr); 3 44 dcl cobol_$temp_token_ptr ptr ext; 3 45 dcl temp_token_ptr ptr defined (cobol_$temp_token_ptr); 3 46 dcl cobol_$token_block1_ptr ptr ext; 3 47 dcl token_block1_ptr ptr defined (cobol_$token_block1_ptr); 3 48 dcl cobol_$token_block2_ptr ptr ext; 3 49 dcl token_block2_ptr ptr defined (cobol_$token_block2_ptr); 3 50 dcl cobol_$minpral5_ptr ptr ext; 3 51 dcl minpral5_ptr ptr defined (cobol_$minpral5_ptr); 3 52 dcl cobol_$tag_table_ptr ptr ext; 3 53 dcl tag_table_ptr ptr defined (cobol_$tag_table_ptr); 3 54 dcl cobol_$map_data_ptr ptr ext; 3 55 dcl map_data_ptr ptr defined (cobol_$map_data_ptr); 3 56 dcl cobol_$ptr_status_ptr ptr ext; 3 57 dcl ptr_status_ptr ptr defined (cobol_$ptr_status_ptr); 3 58 dcl cobol_$reg_status_ptr ptr ext; 3 59 dcl reg_status_ptr ptr defined (cobol_$reg_status_ptr); 3 60 dcl cobol_$misc_base_ptr ptr ext; 3 61 dcl misc_base_ptr ptr defined (cobol_$misc_base_ptr); 3 62 dcl cobol_$misc_end_ptr ptr ext; 3 63 dcl misc_end_ptr ptr defined (cobol_$misc_end_ptr); 3 64 dcl cobol_$list_ptr ptr ext; 3 65 dcl list_ptr ptr defined (cobol_$list_ptr); 3 66 dcl cobol_$allo1_ptr ptr ext; 3 67 dcl allo1_ptr ptr defined (cobol_$allo1_ptr); 3 68 dcl cobol_$eln_ptr ptr ext; 3 69 dcl eln_ptr ptr defined (cobol_$eln_ptr); 3 70 dcl cobol_$diag_ptr ptr ext; 3 71 dcl diag_ptr ptr defined (cobol_$diag_ptr); 3 72 dcl cobol_$xref_token_ptr ptr ext; 3 73 dcl xref_token_ptr ptr defined (cobol_$xref_token_ptr); 3 74 dcl cobol_$xref_chain_ptr ptr ext; 3 75 dcl xref_chain_ptr ptr defined (cobol_$xref_chain_ptr); 3 76 dcl cobol_$statement_info_ptr ptr ext; 3 77 dcl statement_info_ptr ptr defined (cobol_$statement_info_ptr); 3 78 dcl cobol_$reswd_ptr ptr ext; 3 79 dcl reswd_ptr ptr defined (cobol_$reswd_ptr); 3 80 dcl cobol_$op_con_ptr ptr ext; 3 81 dcl op_con_ptr ptr defined (cobol_$op_con_ptr); 3 82 dcl cobol_$ntbuf_ptr ptr ext; 3 83 dcl ntbuf_ptr ptr defined (cobol_$ntbuf_ptr); 3 84 dcl cobol_$main_pcs_ptr ptr ext; 3 85 dcl main_pcs_ptr ptr defined (cobol_$main_pcs_ptr); 3 86 dcl cobol_$include_info_ptr ptr ext; 3 87 dcl include_info_ptr ptr defined (cobol_$include_info_ptr); 3 88 3 89 /* FIXED BIN */ 3 90 dcl cobol_$text_wd_off fixed bin ext; 3 91 dcl text_wd_off fixed bin defined (cobol_$text_wd_off); 3 92 dcl cobol_$con_wd_off fixed bin ext; 3 93 dcl con_wd_off fixed bin defined (cobol_$con_wd_off); 3 94 dcl cobol_$def_wd_off fixed bin ext; 3 95 dcl def_wd_off fixed bin defined (cobol_$def_wd_off); 3 96 dcl cobol_$def_max fixed bin ext; 3 97 dcl def_max fixed bin defined (cobol_$def_max); 3 98 dcl cobol_$link_wd_off fixed bin ext; 3 99 dcl link_wd_off fixed bin defined (cobol_$link_wd_off); 3 100 dcl cobol_$link_max fixed bin ext; 3 101 dcl link_max fixed bin defined (cobol_$link_max); 3 102 dcl cobol_$sym_wd_off fixed bin ext; 3 103 dcl sym_wd_off fixed bin defined (cobol_$sym_wd_off); 3 104 dcl cobol_$sym_max fixed bin ext; 3 105 dcl sym_max fixed bin defined (cobol_$sym_max); 3 106 dcl cobol_$reloc_text_max fixed bin(24) ext; 3 107 dcl reloc_text_max fixed bin(24) defined (cobol_$reloc_text_max); 3 108 dcl cobol_$reloc_def_max fixed bin(24) ext; 3 109 dcl reloc_def_max fixed bin(24) defined (cobol_$reloc_def_max); 3 110 dcl cobol_$reloc_link_max fixed bin(24) ext; 3 111 dcl reloc_link_max fixed bin(24) defined (cobol_$reloc_link_max); 3 112 dcl cobol_$reloc_sym_max fixed bin(24) ext; 3 113 dcl reloc_sym_max fixed bin(24) defined (cobol_$reloc_sym_max); 3 114 dcl cobol_$reloc_work_max fixed bin(24) ext; 3 115 dcl reloc_work_max fixed bin(24) defined (cobol_$reloc_work_max); 3 116 dcl cobol_$pd_map_index fixed bin ext; 3 117 dcl pd_map_index fixed bin defined (cobol_$pd_map_index); 3 118 dcl cobol_$cobol_data_wd_off fixed bin ext; 3 119 dcl cobol_data_wd_off fixed bin defined (cobol_$cobol_data_wd_off); 3 120 dcl cobol_$stack_off fixed bin ext; 3 121 dcl stack_off fixed bin defined (cobol_$stack_off); 3 122 dcl cobol_$max_stack_off fixed bin ext; 3 123 dcl max_stack_off fixed bin defined (cobol_$max_stack_off); 3 124 dcl cobol_$init_stack_off fixed bin ext; 3 125 dcl init_stack_off fixed bin defined (cobol_$init_stack_off); 3 126 dcl cobol_$pd_map_sw fixed bin ext; 3 127 dcl pd_map_sw fixed bin defined (cobol_$pd_map_sw); 3 128 dcl cobol_$next_tag fixed bin ext; 3 129 dcl next_tag fixed bin defined (cobol_$next_tag); 3 130 dcl cobol_$data_init_flag fixed bin ext; 3 131 dcl data_init_flag fixed bin defined (cobol_$data_init_flag); 3 132 dcl cobol_$seg_init_flag fixed bin ext; 3 133 dcl seg_init_flag fixed bin defined (cobol_$seg_init_flag); 3 134 dcl cobol_$alter_flag fixed bin ext; 3 135 dcl alter_flag fixed bin defined (cobol_$alter_flag); 3 136 dcl cobol_$sect_eop_flag fixed bin ext; 3 137 dcl sect_eop_flag fixed bin defined (cobol_$sect_eop_flag); 3 138 dcl cobol_$para_eop_flag fixed bin ext; 3 139 dcl para_eop_flag fixed bin defined (cobol_$para_eop_flag); 3 140 dcl cobol_$priority_no fixed bin ext; 3 141 dcl priority_no fixed bin defined (cobol_$priority_no); 3 142 dcl cobol_$compile_count fixed bin ext; 3 143 dcl compile_count fixed bin defined (cobol_$compile_count); 3 144 dcl cobol_$ptr_assumption_ind fixed bin ext; 3 145 dcl ptr_assumption_ind fixed bin defined (cobol_$ptr_assumption_ind); 3 146 dcl cobol_$reg_assumption_ind fixed bin ext; 3 147 dcl reg_assumption_ind fixed bin defined (cobol_$reg_assumption_ind); 3 148 dcl cobol_$perform_para_index fixed bin ext; 3 149 dcl perform_para_index fixed bin defined (cobol_$perform_para_index); 3 150 dcl cobol_$perform_sect_index fixed bin ext; 3 151 dcl perform_sect_index fixed bin defined (cobol_$perform_sect_index); 3 152 dcl cobol_$alter_index fixed bin ext; 3 153 dcl alter_index fixed bin defined (cobol_$alter_index); 3 154 dcl cobol_$list_off fixed bin ext; 3 155 dcl list_off fixed bin defined (cobol_$list_off); 3 156 dcl cobol_$constant_offset fixed bin ext; 3 157 dcl constant_offset fixed bin defined (cobol_$constant_offset); 3 158 dcl cobol_$misc_max fixed bin ext; 3 159 dcl misc_max fixed bin defined (cobol_$misc_max); 3 160 dcl cobol_$pd_map_max fixed bin ext; 3 161 dcl pd_map_max fixed bin defined (cobol_$pd_map_max); 3 162 dcl cobol_$map_data_max fixed bin ext; 3 163 dcl map_data_max fixed bin defined (cobol_$map_data_max); 3 164 dcl cobol_$fixup_max fixed bin ext; 3 165 dcl fixup_max fixed bin defined (cobol_$fixup_max); 3 166 dcl cobol_$tag_table_max fixed bin ext; 3 167 dcl tag_table_max fixed bin defined (cobol_$tag_table_max); 3 168 dcl cobol_$temp_token_max fixed bin ext; 3 169 dcl temp_token_max fixed bin defined (cobol_$temp_token_max); 3 170 dcl cobol_$allo1_max fixed bin ext; 3 171 dcl allo1_max fixed bin defined (cobol_$allo1_max); 3 172 dcl cobol_$eln_max fixed bin ext; 3 173 dcl eln_max fixed bin defined (cobol_$eln_max); 3 174 dcl cobol_$debug_enable fixed bin ext; 3 175 dcl debug_enable fixed bin defined (cobol_$debug_enable); 3 176 dcl cobol_$non_source_offset fixed bin ext; 3 177 dcl non_source_offset fixed bin defined (cobol_$non_source_offset); 3 178 dcl cobol_$initval_flag fixed bin ext; 3 179 dcl initval_flag fixed bin defined (cobol_$initval_flag); 3 180 dcl cobol_$date_compiled_sw fixed bin ext; 3 181 dcl date_compiled_sw fixed bin defined (cobol_$date_compiled_sw); 3 182 dcl cobol_$include_cnt fixed bin ext; 3 183 dcl include_cnt fixed bin defined (cobol_$include_cnt); 3 184 dcl cobol_$fs_charcnt fixed bin ext; 3 185 dcl fs_charcnt fixed bin defined (cobol_$fs_charcnt); 3 186 dcl cobol_$ws_charcnt fixed bin ext; 3 187 dcl ws_charcnt fixed bin defined (cobol_$ws_charcnt); 3 188 dcl cobol_$coms_charcnt fixed bin ext; 3 189 dcl coms_charcnt fixed bin defined (cobol_$coms_charcnt); 3 190 dcl cobol_$ls_charcnt fixed bin ext; 3 191 dcl ls_charcnt fixed bin defined (cobol_$ls_charcnt); 3 192 dcl cobol_$cons_charcnt fixed bin ext; 3 193 dcl cons_charcnt fixed bin defined (cobol_$cons_charcnt); 3 194 dcl cobol_$value_cnt fixed bin ext; 3 195 dcl value_cnt fixed bin defined (cobol_$value_cnt); 3 196 dcl cobol_$cd_cnt fixed bin ext; 3 197 dcl cd_cnt fixed bin defined (cobol_$cd_cnt); 3 198 dcl cobol_$fs_wdoff fixed bin ext; 3 199 dcl fs_wdoff fixed bin defined (cobol_$fs_wdoff); 3 200 dcl cobol_$ws_wdoff fixed bin ext; 3 201 dcl ws_wdoff fixed bin defined (cobol_$ws_wdoff); 3 202 dcl cobol_$coms_wdoff fixed bin ext; 3 203 dcl coms_wdoff fixed bin defined (cobol_$coms_wdoff); 3 204 3 205 /* CHARACTER */ 3 206 dcl cobol_$scratch_dir char (168) aligned ext; 3 207 dcl scratch_dir char (168) aligned defined (cobol_$scratch_dir); /* -42- */ 3 208 dcl cobol_$obj_seg_name char (32) aligned ext; 3 209 dcl obj_seg_name char (32) aligned defined (cobol_$obj_seg_name); /* -8- */ 3 210 3 211 /* BIT */ 3 212 dcl cobol_$xref_bypass bit(1) aligned ext; 3 213 dcl xref_bypass bit(1) aligned defined (cobol_$xref_bypass); /* -1- */ 3 214 dcl cobol_$same_sort_merge_proc bit(1) aligned ext; 3 215 dcl same_sort_merge_proc bit(1) aligned defined (cobol_$same_sort_merge_proc); /* -1- */ 3 216 3 217 3 218 /* END INCLUDE FILE ... cobol_incl.pl1*/ 3 219 3 220 2 32 2 33 466 467 468 end cobol_make_link; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0830.5 cobol_make_link.pl1 >spec>install>MR12.3-1048>cobol_make_link.pl1 465 1 03/27/82 0439.5 cobol_make_link_info.incl.pl1 >ldd>include>cobol_make_link_info.incl.pl1 466 2 03/27/82 0439.5 cobol_make_link_data.incl.pl1 >ldd>include>cobol_make_link_data.incl.pl1 2-32 3 11/11/82 1712.7 cobol_.incl.pl1 >ldd>include>cobol_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. acc_string based structure level 1 dcl 39 addr builtin function dcl 2-28 ref 196 209 314 386 386 410 410 458 458 addrel builtin function dcl 2-28 ref 178 245 324 357 380 393 beg_link_loc 000214 automatic fixed bin(17,0) dcl 118 set ref 349* 350 354 block_size parameter fixed bin(17,0) dcl 418 ref 420 423 432 435 char_string 0(09) based char(32) level 2 packed packed unaligned dcl 39 set ref 254* cobol_$def_base_ptr 000060 external static pointer dcl 3-12 ref 178 178 245 245 258 258 324 324 339 339 380 380 cobol_$def_max 000066 external static fixed bin(17,0) dcl 3-96 ref 425 425 cobol_$def_wd_off 000064 external static fixed bin(17,0) dcl 3-94 set ref 35 35 145 145 171 171 173 173 190 190 192* 192 192 192 207 207 220 220 221 221 245 245 257 257 276* 276 276 276 300 300 311 311 324 324 325 325 338 338 377* 377 377 377 380 380 381 381 384* 384 384 384 423 423 462* 462 cobol_$link_base_ptr 000062 external static pointer dcl 3-14 ref 348 348 357 357 389 389 393 393 406 406 cobol_$link_max 000072 external static fixed bin(17,0) dcl 3-100 ref 437 437 cobol_$link_wd_off 000070 external static fixed bin(17,0) dcl 3-98 set ref 354 354 393 393 395 395 402 402 405* 405 405 405 435 435 cobol_reloc 000054 constant entry external dcl 2-18 ref 193 277 378 386 410 cur_link_loc 000215 automatic fixed bin(17,0) dcl 118 set ref 349* 357 363 367* 367 369 def_base_ptr defined pointer dcl 3-13 ref 178 245 258 324 339 380 def_max defined fixed bin(17,0) dcl 3-97 ref 425 def_off 2 000010 internal static fixed bin(17,0) array level 3 dcl 95 set ref 171* 175 def_wd_off defined fixed bin(17,0) dcl 3-95 set ref 35 145 171 173 190 192* 192 207 220 221 245 257 276* 276 300 311 324 325 338 377* 377 380 381 384* 384 423 462* ds_lnth 000222 automatic fixed bin(17,0) dcl 120 set ref 257* 258 338* 339 ds_strng based char packed unaligned dcl 43 ref 258 339 ds_wrk_ptr 000166 automatic pointer dcl 106 set ref 178* 188 245* 246 254 258 324* 331 332 333 334 339 380* 382 383 end_link_loc 000216 automatic fixed bin(17,0) dcl 118 set ref 350* 369 ent_name_loc 000176 automatic fixed bin(17,0) dcl 108 set ref 272* 288* 290* 300* 313* 334 ent_name_relp 1(18) based bit(18) level 2 packed packed unaligned dcl 46 set ref 334* entl 000212 automatic fixed bin(17,0) dcl 116 set ref 231* 235* 286 298 entry 1 000010 internal static structure array level 2 unaligned dcl 95 err_msg parameter char packed unaligned dcl 447 set ref 444 457* err_msg_lnth 10 000100 automatic fixed bin(17,0) level 2 dcl 87 set ref 457* err_sw 000163 automatic fixed bin(17,0) initial dcl 92 set ref 92* 184 251 328 398 461* error_info 000100 automatic structure level 1 dcl 87 set ref 458 458 error_msg 11 000100 automatic char(168) level 2 dcl 87 set ref 457* est_init_info_loc parameter fixed bin(17,0) dcl 110 set ref 140 151 153* exp_wd_loc 000217 automatic fixed bin(17,0) dcl 120 set ref 347* 361 expr_word_loc 000201 automatic fixed bin(17,0) dcl 112 set ref 359* 361 381* 404 expr_word_reloc 000034 constant bit(5) initial array dcl 2-7 set ref 386 386 expr_word_relp 1 based bit(18) level 2 packed packed unaligned dcl 58 set ref 359 404* expression 0(18) based bit(18) level 2 packed packed unaligned dcl 54 set ref 383* expression_word based structure level 1 dcl 54 first 000205 automatic fixed bin(17,0) dcl 114 set ref 241* 254 299* fixed builtin function dcl 2-29 ref 187 247 349 350 359 407 header_relp based bit(18) level 2 packed packed unaligned dcl 58 set ref 403* i 000202 automatic fixed bin(17,0) dcl 114 set ref 156* 159* 175 227* 229 235 236 299 init_areas 000010 internal static structure level 1 unaligned dcl 95 init_info based char(262144) dcl 85 set ref 188* 188 init_info_loc 000174 automatic fixed bin(17,0) dcl 108 set ref 173* 175* 178 190 208* 313* 332 init_ptr parameter pointer dcl 106 ref 140 148 188 initialization_info based structure level 1 dcl 79 ioa_$rsnnl 000052 constant entry external dcl 2-18 ref 457 l_name 000264 automatic char(68) packed unaligned dcl 448 set ref 450* 452* 454* 457* length builtin function dcl 2-29 ref 225 link based structure level 1 dcl 58 set ref 401* link_base_ptr defined pointer dcl 3-15 ref 348 357 389 393 406 link_max defined fixed bin(17,0) dcl 3-101 ref 437 link_reloc 000027 constant bit(5) initial array dcl 2-8 set ref 410 410 link_sect_lgth 6(18) based bit(18) level 2 packed packed unaligned dcl 66 set ref 350 390 390* 407 408* link_type based bit(18) level 2 packed packed unaligned dcl 46 set ref 331* link_wd_off defined fixed bin(17,0) dcl 3-99 set ref 354 393 395 402 405* 405 435 linkage_header based structure level 1 dcl 66 linkoff parameter fixed bin(17,0) dcl 112 set ref 140 202 306 363* 395* 460* links_relp 6 based bit(18) level 2 packed packed unaligned dcl 66 ref 349 390 ln_lnth 000230 automatic fixed bin(17,0) initial dcl 127 set ref 127* lnk_offset 000227 automatic fixed bin(17,0) initial dcl 127 set ref 127* ls_srch_ptr 000224 automatic pointer dcl 124 set ref 357* 359 ls_wrk_ptr 000170 automatic pointer dcl 106 set ref 348* 349 350 389* 390 390 390 393* 401 403 404 406* 407 408 module_name 000100 automatic char(32) level 2 dcl 87 set ref 34* 144* 206* 310* msg_5 000015 constant char(40) initial packed unaligned dcl 2-10 set ref 427* msg_6 000004 constant char(36) initial packed unaligned dcl 2-11 set ref 439* msg_9 000000 constant char(16) initial packed unaligned dcl 2-12 set ref 36* n_words based fixed bin(17,0) level 2 dcl 79 ref 148 nam_lnth based bit(9) level 2 packed packed unaligned dcl 39 set ref 246* nam_strng based char(32) packed unaligned dcl 44 ref 258 name parameter char packed unaligned dcl 129 ref 140 202 223 225 227 254 452 name_loc 000221 automatic fixed bin(17,0) dcl 120 set ref 258* 260 263* 263 265 270 272 name_sw 000213 automatic fixed bin(17,0) dcl 116 set ref 239* 265 280 297* nchar 000211 automatic fixed bin(17,0) dcl 116 set ref 187* 188 188 240* 246 247 254 254 258 298* next_loc 000210 automatic fixed bin(17,0) dcl 116 set ref 423* 425 435* 437 nl 000206 automatic fixed bin(17,0) dcl 116 set ref 223* 225 225* 232 235 null builtin function dcl 2-29 ref 193 193 277 277 458 458 nwords 1 000010 internal static fixed bin(17,0) array level 3 dcl 95 set ref 159 169* nwrds 000207 automatic fixed bin(17,0) dcl 116 set ref 148* 159 169 181* 181 183* 187 192 193 247* 250* 276 277 res 000164 automatic fixed bin(17,0) dcl 104 set ref 147* 156 159* 166 reset_loc 000177 automatic fixed bin(17,0) dcl 110 set ref 35* 145* 207* 311* 462 save_name_loc 000226 automatic fixed bin(17,0) dcl 126 set ref 221* 270* 288 seg_code parameter fixed bin(17,0) dcl 114 ref 306 312 seg_name_loc 000175 automatic fixed bin(17,0) dcl 108 set ref 218* 220* 265* 269* 290 312* 333 seg_name_relp 1 based bit(18) level 2 packed packed unaligned dcl 46 set ref 333* segl 000204 automatic fixed bin(17,0) dcl 114 set ref 232* 236* 240 signal_ 000056 constant entry external dcl 2-18 ref 458 size 000010 internal static fixed bin(17,0) level 2 dcl 95 set ref 154* 156 168* 168 169 171 substr builtin function dcl 2-28 set ref 187 188* 188 246 247 254* 254 258 331 332 333 334 349 350 359 382 403 404 408 temp 000231 automatic fixed bin(17,0) dcl 138 set ref 402* 403 407* 408 trap_relp 0(18) based bit(18) level 2 packed packed unaligned dcl 46 set ref 332* typ_pr_loc 000220 automatic fixed bin(17,0) dcl 120 set ref 339* 341 346* 346 347 typ_pr_strng based char(8) packed unaligned dcl 52 ref 339 type 000203 automatic fixed bin(17,0) dcl 114 set ref 33* 143* 205* 218 265 288 309* 331 450 452 452 454 457* type_pair based structure level 1 dcl 46 type_pair_loc 000200 automatic fixed bin(17,0) dcl 112 set ref 325* 382 type_pair_relp based bit(18) level 2 packed packed unaligned dcl 54 set ref 382* type_pr1_reloc 001446 constant bit(5) initial array dcl 2-4 set ref 314 type_pr4_reloc 000042 constant bit(5) initial array dcl 2-5 set ref 209 type_pr6_reloc 000036 constant bit(5) initial array dcl 2-6 set ref 196 type_pr_reloc_ptr 000172 automatic pointer dcl 106 set ref 196* 209* 314* 378* unspec builtin function dcl 2-28 ref 187 246 247 331 332 333 334 382 403 404 408 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. allo1_max defined fixed bin(17,0) dcl 3-171 allo1_ptr defined pointer dcl 3-67 alter_flag defined fixed bin(17,0) dcl 3-135 alter_index defined fixed bin(17,0) dcl 3-153 alter_list_ptr defined pointer dcl 3-39 cd_cnt defined fixed bin(17,0) dcl 3-197 ck_name automatic char(64) packed unaligned dcl 136 cobol_$allo1_max external static fixed bin(17,0) dcl 3-170 cobol_$allo1_ptr external static pointer dcl 3-66 cobol_$alter_flag external static fixed bin(17,0) dcl 3-134 cobol_$alter_index external static fixed bin(17,0) dcl 3-152 cobol_$alter_list_ptr external static pointer dcl 3-38 cobol_$cd_cnt external static fixed bin(17,0) dcl 3-196 cobol_$cobol_data_wd_off external static fixed bin(17,0) dcl 3-118 cobol_$compile_count external static fixed bin(17,0) dcl 3-142 cobol_$coms_charcnt external static fixed bin(17,0) dcl 3-188 cobol_$coms_wdoff external static fixed bin(17,0) dcl 3-202 cobol_$con_end_ptr external static pointer dcl 3-10 cobol_$con_wd_off external static fixed bin(17,0) dcl 3-92 cobol_$cons_charcnt external static fixed bin(17,0) dcl 3-192 cobol_$constant_offset external static fixed bin(17,0) dcl 3-156 cobol_$data_init_flag external static fixed bin(17,0) dcl 3-130 cobol_$date_compiled_sw external static fixed bin(17,0) dcl 3-180 cobol_$debug_enable external static fixed bin(17,0) dcl 3-174 cobol_$diag_ptr external static pointer dcl 3-70 cobol_$eln_max external static fixed bin(17,0) dcl 3-172 cobol_$eln_ptr external static pointer dcl 3-68 cobol_$fixup_max external static fixed bin(17,0) dcl 3-164 cobol_$fixup_ptr external static pointer dcl 3-30 cobol_$fs_charcnt external static fixed bin(17,0) dcl 3-184 cobol_$fs_wdoff external static fixed bin(17,0) dcl 3-198 cobol_$include_cnt external static fixed bin(17,0) dcl 3-182 cobol_$include_info_ptr external static pointer dcl 3-86 cobol_$init_stack_off external static fixed bin(17,0) dcl 3-124 cobol_$initval_base_ptr external static pointer dcl 3-32 cobol_$initval_file_ptr external static pointer dcl 3-34 cobol_$initval_flag external static fixed bin(17,0) dcl 3-178 cobol_$list_off external static fixed bin(17,0) dcl 3-154 cobol_$list_ptr external static pointer dcl 3-64 cobol_$ls_charcnt external static fixed bin(17,0) dcl 3-190 cobol_$main_pcs_ptr external static pointer dcl 3-84 cobol_$map_data_max external static fixed bin(17,0) dcl 3-162 cobol_$map_data_ptr external static pointer dcl 3-54 cobol_$max_stack_off external static fixed bin(17,0) dcl 3-122 cobol_$minpral5_ptr external static pointer dcl 3-50 cobol_$misc_base_ptr external static pointer dcl 3-60 cobol_$misc_end_ptr external static pointer dcl 3-62 cobol_$misc_max external static fixed bin(17,0) dcl 3-158 cobol_$next_tag external static fixed bin(17,0) dcl 3-128 cobol_$non_source_offset external static fixed bin(17,0) dcl 3-176 cobol_$ntbuf_ptr external static pointer dcl 3-82 cobol_$obj_seg_name external static char(32) dcl 3-208 cobol_$op_con_ptr external static pointer dcl 3-80 cobol_$para_eop_flag external static fixed bin(17,0) dcl 3-138 cobol_$pd_map_index external static fixed bin(17,0) dcl 3-116 cobol_$pd_map_max external static fixed bin(17,0) dcl 3-160 cobol_$pd_map_ptr external static pointer dcl 3-28 cobol_$pd_map_sw external static fixed bin(17,0) dcl 3-126 cobol_$perform_list_ptr external static pointer dcl 3-36 cobol_$perform_para_index external static fixed bin(17,0) dcl 3-148 cobol_$perform_sect_index external static fixed bin(17,0) dcl 3-150 cobol_$priority_no external static fixed bin(17,0) dcl 3-140 cobol_$ptr_assumption_ind external static fixed bin(17,0) dcl 3-144 cobol_$ptr_status_ptr external static pointer dcl 3-56 cobol_$reg_assumption_ind external static fixed bin(17,0) dcl 3-146 cobol_$reg_status_ptr external static pointer dcl 3-58 cobol_$reloc_def_base_ptr external static pointer dcl 3-20 cobol_$reloc_def_max external static fixed bin(24,0) dcl 3-108 cobol_$reloc_link_base_ptr external static pointer dcl 3-22 cobol_$reloc_link_max external static fixed bin(24,0) dcl 3-110 cobol_$reloc_sym_base_ptr external static pointer dcl 3-24 cobol_$reloc_sym_max external static fixed bin(24,0) dcl 3-112 cobol_$reloc_text_base_ptr external static pointer dcl 3-18 cobol_$reloc_text_max external static fixed bin(24,0) dcl 3-106 cobol_$reloc_work_base_ptr external static pointer dcl 3-26 cobol_$reloc_work_max external static fixed bin(24,0) dcl 3-114 cobol_$reswd_ptr external static pointer dcl 3-78 cobol_$same_sort_merge_proc external static bit(1) dcl 3-214 cobol_$scratch_dir external static char(168) dcl 3-206 cobol_$sect_eop_flag external static fixed bin(17,0) dcl 3-136 cobol_$seg_init_flag external static fixed bin(17,0) dcl 3-132 cobol_$seg_init_list_ptr external static pointer dcl 3-40 cobol_$stack_off external static fixed bin(17,0) dcl 3-120 cobol_$statement_info_ptr external static pointer dcl 3-76 cobol_$sym_base_ptr external static pointer dcl 3-16 cobol_$sym_max external static fixed bin(17,0) dcl 3-104 cobol_$sym_wd_off external static fixed bin(17,0) dcl 3-102 cobol_$tag_table_max external static fixed bin(17,0) dcl 3-166 cobol_$tag_table_ptr external static pointer dcl 3-52 cobol_$temp_token_area_ptr external static pointer dcl 3-42 cobol_$temp_token_max external static fixed bin(17,0) dcl 3-168 cobol_$temp_token_ptr external static pointer dcl 3-44 cobol_$text_base_ptr external static pointer dcl 3-8 cobol_$text_wd_off external static fixed bin(17,0) dcl 3-90 cobol_$token_block1_ptr external static pointer dcl 3-46 cobol_$token_block2_ptr external static pointer dcl 3-48 cobol_$value_cnt external static fixed bin(17,0) dcl 3-194 cobol_$ws_charcnt external static fixed bin(17,0) dcl 3-186 cobol_$ws_wdoff external static fixed bin(17,0) dcl 3-200 cobol_$xref_bypass external static bit(1) dcl 3-212 cobol_$xref_chain_ptr external static pointer dcl 3-74 cobol_$xref_token_ptr external static pointer dcl 3-72 cobol_data_wd_off defined fixed bin(17,0) dcl 3-119 code automatic fixed bin(17,0) dcl 122 compile_count defined fixed bin(17,0) dcl 3-143 coms_charcnt defined fixed bin(17,0) dcl 3-189 coms_wdoff defined fixed bin(17,0) dcl 3-203 con_end_ptr defined pointer dcl 3-11 con_wd_off defined fixed bin(17,0) dcl 3-93 cons_charcnt defined fixed bin(17,0) dcl 3-193 constant_offset defined fixed bin(17,0) dcl 3-157 cu_$arg_count 000000 constant entry external dcl 2-23 cu_$arg_ptr 000000 constant entry external dcl 2-24 cv_dec_check_ 000000 constant entry external dcl 2-22 cv_oct_check_ 000000 constant entry external dcl 2-21 data_init_flag defined fixed bin(17,0) dcl 3-131 date_compiled_sw defined fixed bin(17,0) dcl 3-181 debug_enable defined fixed bin(17,0) dcl 3-175 diag_ptr defined pointer dcl 3-71 ds_size_ck 000000 constant entry external dcl 416 ds_srch_ptr automatic pointer dcl 124 eln_max defined fixed bin(17,0) dcl 3-173 eln_ptr defined pointer dcl 3-69 express_loc automatic fixed bin(17,0) dcl 110 fixup_max defined fixed bin(17,0) dcl 3-165 fixup_ptr defined pointer dcl 3-31 fs_charcnt defined fixed bin(17,0) dcl 3-185 fs_wdoff defined fixed bin(17,0) dcl 3-199 include_cnt defined fixed bin(17,0) dcl 3-183 include_info_ptr defined pointer dcl 3-87 init_stack_off defined fixed bin(17,0) dcl 3-125 initval_base_ptr defined pointer dcl 3-33 initval_file_ptr defined pointer dcl 3-35 initval_flag defined fixed bin(17,0) dcl 3-179 j automatic fixed bin(17,0) dcl 114 link_name based char packed unaligned dcl 137 linkoff_char automatic char(6) packed unaligned dcl 130 list_off defined fixed bin(17,0) dcl 3-155 list_ptr defined pointer dcl 3-65 lnk_typ automatic fixed bin(17,0) dcl 110 lo_char based char packed unaligned dcl 133 lo_lnth automatic fixed bin(17,0) dcl 132 lo_ptr automatic pointer dcl 135 ls_charcnt defined fixed bin(17,0) dcl 3-191 ls_size_ck 000000 constant entry external dcl 416 main_pcs_ptr defined pointer dcl 3-85 map_data_max defined fixed bin(17,0) dcl 3-163 map_data_ptr defined pointer dcl 3-55 max_stack_off defined fixed bin(17,0) dcl 3-123 minpral5_ptr defined pointer dcl 3-51 misc_base_ptr defined pointer dcl 3-61 misc_end_ptr defined pointer dcl 3-63 misc_max defined fixed bin(17,0) dcl 3-159 msg_10 internal static char(56) initial packed unaligned dcl 2-13 n_args automatic fixed bin(17,0) dcl 122 n_lnks automatic fixed bin(17,0) dcl 122 next_tag defined fixed bin(17,0) dcl 3-129 nl_char based char packed unaligned dcl 134 nl_lnth automatic fixed bin(17,0) dcl 132 nl_ptr automatic pointer dcl 135 non_source_offset defined fixed bin(17,0) dcl 3-177 ntbuf_ptr defined pointer dcl 3-83 num_links_char automatic char(6) packed unaligned dcl 130 obj_seg_name defined char(32) dcl 3-209 op_con_ptr defined pointer dcl 3-81 para_eop_flag defined fixed bin(17,0) dcl 3-139 pd_map_index defined fixed bin(17,0) dcl 3-117 pd_map_max defined fixed bin(17,0) dcl 3-161 pd_map_ptr defined pointer dcl 3-29 pd_map_sw defined fixed bin(17,0) dcl 3-127 perform_list_ptr defined pointer dcl 3-37 perform_para_index defined fixed bin(17,0) dcl 3-149 perform_sect_index defined fixed bin(17,0) dcl 3-151 priority_no defined fixed bin(17,0) dcl 3-141 ptr_assumption_ind defined fixed bin(17,0) dcl 3-145 ptr_status_ptr defined pointer dcl 3-57 reg_assumption_ind defined fixed bin(17,0) dcl 3-147 reg_status_ptr defined pointer dcl 3-59 rel builtin function dcl 2-29 reloc_def_base_ptr defined pointer dcl 3-21 reloc_def_max defined fixed bin(24,0) dcl 3-109 reloc_link_base_ptr defined pointer dcl 3-23 reloc_link_max defined fixed bin(24,0) dcl 3-111 reloc_sym_base_ptr defined pointer dcl 3-25 reloc_sym_max defined fixed bin(24,0) dcl 3-113 reloc_text_base_ptr defined pointer dcl 3-19 reloc_text_max defined fixed bin(24,0) dcl 3-107 reloc_work_base_ptr defined pointer dcl 3-27 reloc_work_max defined fixed bin(24,0) dcl 3-115 reswd_ptr defined pointer dcl 3-79 same_sort_merge_proc defined bit(1) dcl 3-215 scratch_dir defined char(168) dcl 3-207 sect_eop_flag defined fixed bin(17,0) dcl 3-137 seg_init_flag defined fixed bin(17,0) dcl 3-133 seg_init_list_ptr defined pointer dcl 3-41 stack_off defined fixed bin(17,0) dcl 3-121 statement_info_ptr defined pointer dcl 3-77 sym_base_ptr defined pointer dcl 3-17 sym_max defined fixed bin(17,0) dcl 3-105 sym_wd_off defined fixed bin(17,0) dcl 3-103 tag_table_max defined fixed bin(17,0) dcl 3-167 tag_table_ptr defined pointer dcl 3-53 temp_token_area_ptr defined pointer dcl 3-43 temp_token_max defined fixed bin(17,0) dcl 3-169 temp_token_ptr defined pointer dcl 3-45 text_base_ptr defined pointer dcl 3-9 text_wd_off defined fixed bin(17,0) dcl 3-91 token_block1_ptr defined pointer dcl 3-47 token_block2_ptr defined pointer dcl 3-49 value_cnt defined fixed bin(17,0) dcl 3-195 ws_charcnt defined fixed bin(17,0) dcl 3-187 ws_wdoff defined fixed bin(17,0) dcl 3-201 x automatic fixed bin(17,0) dcl 114 xref_bypass defined bit(1) dcl 3-213 xref_chain_ptr defined pointer dcl 3-75 xref_token_ptr defined pointer dcl 3-73 NAMES DECLARED BY EXPLICIT CONTEXT. cobol_make_link 000142 constant entry external dcl 28 create_acc_string 000451 constant entry internal dcl 215 ref 198 211 create_type_pair 000712 constant entry internal dcl 319 ref 282 292 316 ds_size_ck 001213 constant entry internal dcl 420 ref 183 250 327 error 001247 constant entry internal dcl 444 ref 36 427 439 ls_size_ck 001231 constant entry internal dcl 432 ref 397 size_ck 001211 constant entry internal dcl 414 srch_lp 001006 constant label dcl 357 ref 369 type_1 000422 constant entry external dcl 306 type_4 000365 constant entry external dcl 202 type_5 000170 constant entry external dcl 140 NAMES DECLARED BY CONTEXT OR IMPLICATION. divide builtin function ref 263 346 index builtin function ref 223 227 258 339 string builtin function ref 401 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1610 1704 1453 1620 Length 2170 1453 74 250 135 42 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_make_link 276 external procedure is an external procedure. create_acc_string internal procedure shares stack frame of external procedure cobol_make_link. create_type_pair internal procedure shares stack frame of external procedure cobol_make_link. size_ck internal procedure shares stack frame of external procedure cobol_make_link. error internal procedure shares stack frame of external procedure cobol_make_link. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 init_areas cobol_make_link STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_make_link 000100 error_info cobol_make_link 000163 err_sw cobol_make_link 000164 res cobol_make_link 000166 ds_wrk_ptr cobol_make_link 000170 ls_wrk_ptr cobol_make_link 000172 type_pr_reloc_ptr cobol_make_link 000174 init_info_loc cobol_make_link 000175 seg_name_loc cobol_make_link 000176 ent_name_loc cobol_make_link 000177 reset_loc cobol_make_link 000200 type_pair_loc cobol_make_link 000201 expr_word_loc cobol_make_link 000202 i cobol_make_link 000203 type cobol_make_link 000204 segl cobol_make_link 000205 first cobol_make_link 000206 nl cobol_make_link 000207 nwrds cobol_make_link 000210 next_loc cobol_make_link 000211 nchar cobol_make_link 000212 entl cobol_make_link 000213 name_sw cobol_make_link 000214 beg_link_loc cobol_make_link 000215 cur_link_loc cobol_make_link 000216 end_link_loc cobol_make_link 000217 exp_wd_loc cobol_make_link 000220 typ_pr_loc cobol_make_link 000221 name_loc cobol_make_link 000222 ds_lnth cobol_make_link 000224 ls_srch_ptr cobol_make_link 000226 save_name_loc cobol_make_link 000227 lnk_offset cobol_make_link 000230 ln_lnth cobol_make_link 000231 temp cobol_make_link 000264 l_name error THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry ext_entry_desc set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_reloc ioa_$rsnnl signal_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cobol_$def_base_ptr cobol_$def_max cobol_$def_wd_off cobol_$link_base_ptr cobol_$link_max cobol_$link_wd_off LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 92 000133 127 000135 28 000141 33 000150 34 000151 35 000154 36 000157 37 000162 140 000163 143 000204 144 000206 145 000211 147 000214 148 000216 151 000222 153 000224 154 000226 155 000227 156 000230 159 000242 163 000252 166 000254 168 000257 169 000261 171 000266 173 000270 174 000271 175 000272 178 000277 181 000303 183 000305 184 000307 187 000311 188 000316 190 000325 192 000331 193 000334 196 000355 198 000357 200 000360 202 000361 205 000401 206 000403 207 000406 208 000411 209 000412 211 000414 213 000415 306 000416 309 000430 310 000432 311 000435 312 000440 313 000443 314 000445 316 000447 317 000450 215 000451 218 000452 220 000460 221 000463 223 000466 225 000501 227 000504 229 000515 231 000516 232 000517 233 000521 235 000522 236 000525 239 000530 240 000531 241 000532 245 000534 246 000542 247 000545 250 000551 251 000553 254 000556 257 000566 258 000572 260 000606 263 000610 265 000612 269 000622 270 000624 271 000626 272 000627 274 000631 276 000632 277 000635 280 000656 282 000660 283 000661 286 000662 288 000664 290 000672 292 000674 294 000675 297 000676 298 000700 299 000702 300 000705 302 000710 304 000711 319 000712 324 000713 325 000721 327 000722 328 000726 331 000731 332 000735 333 000740 334 000744 338 000746 339 000752 341 000762 346 000764 347 000766 348 000770 349 000773 350 000777 354 001003 357 001006 359 001014 361 001017 363 001021 364 001024 367 001025 369 001027 377 001032 378 001034 380 001052 381 001060 382 001061 383 001064 384 001066 386 001070 389 001110 390 001114 393 001123 395 001126 397 001130 398 001134 401 001137 402 001143 403 001146 404 001151 405 001154 406 001157 407 001162 408 001166 410 001170 412 001210 414 001211 420 001212 423 001215 425 001222 427 001224 428 001227 430 001230 432 001231 435 001233 437 001240 439 001242 440 001245 442 001246 444 001247 450 001260 452 001267 454 001302 457 001307 458 001350 460 001400 461 001402 462 001403 463 001406 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved