COMPILATION LISTING OF SEGMENT cobol_string 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 0953.1 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_string.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 04/14/80 by FCH, [4.2-1], incorrect code if lit is sending field, BUG437(TR5906) */ 23 /* Modified on 03/14/77 by Bob Chang to change the loading of registers after setting of pointer. */ 24 25 /* format: style3 */ 26 cobol_string: 27 proc (sptr); 28 29 dcl sptr ptr; 30 dcl 1 s based (sptr), 31 2 n fixed bin, 32 2 tag fixed bin, 33 2 rtp ptr, /* ptr to receiving item token */ 34 2 ptp ptr, /* ptr to pointer item token (none if null) */ 35 2 str (0 refer (s.n)), 36 3 stp ptr, /* ptr to sending item token */ 37 3 dtp ptr; /* ptr to delimiter item token (none if null) */ 38 39 dcl fixlen_mlr_instr (3) bit (36) static init ("000000000001000000001000000101000000"b, 40 /* mlr (pr),(pr) */ 41 "000000000000000000000000000000000000"b, 42 /* desc9a */ 43 "000000000000000000000000000000000000"b); 44 /* desc9a */ 45 dcl move_instr (3) bit (36) static init ("000000000001101001001000000101100000"b, 46 /* mlr (pr,rl),(pr,rl,x1) */ 47 "010000000000000000000000000000000101"b, 48 /* desc9a pr2|0 (sending item for A chars) */ 49 "001000000000000000000000000000000101"b); 50 /* desc9a pr1|0 (indexed by x1 for A chars) */ 51 dcl scan_instr (3) bit (36) based (scan_instr_ptr); 52 dcl scm_instr (5) bit (36) static init ("000000000000000011001010100101100000"b, 53 /* scm (pr,rl),(du),mask(000) */ 54 "010000000000000000000000000000000101"b, 55 /* desc9a pr2|0 (len in A) */ 56 "000000000000000000000000000000000000"b, 57 /* desc9a literal (len ignored) */ 58 "110000000000110111000000000001000000"b, 59 /* arg pr6|67 (tally) */ 60 "110000000000110111010011101001000000"b); 61 /* lda pr6|67 (tally) */ 62 dcl scd_instr (6) bit (36) static init ("000000000000000011001010000101100000"b, 63 /* scd (pr,rl),(du),mask(000) */ 64 "010000000000000000000000000000000101"b, 65 /* desc9a pr2|0 (len in A) */ 66 "000000000000000000000000000000000000"b, 67 /* desc9a literal (len ignored) */ 68 "110000000000110111000000000001000000"b, 69 /* arg pr6|67 (tally) */ 70 "000000000000000010110000110100000100"b, 71 /* ttn 2,ic (len already in A) */ 72 "110000000000110111010011101001000000"b); 73 /* lda pr6|67 (tally) */ 74 dcl bypass_ovfl_instr (2) bit (36) static init ("110000000000110110010011100001000000"b, 75 /* szn pr6|66 (ovfl) */ 76 "000000000000000000110000000000000100"b); 77 /* tze [tag],ic (bypass ovfl code) */ 78 dcl check_ovfl_instr (5) bit (36) static init ("000000000000010010111011101000000000"b, 79 /* als 22 */ 80 "110000000000110001111101101001000000"b, 81 /* sta pr6|61 (atemp) */ 82 "110000000000110001000110001001000000"b, 83 /* adx1 pr6|61 (atemp) */ 84 "110000000000110110010011100001000000"b, 85 /* szn pr6|66 (ovfl) */ 86 "000000000000000000110000001000000100"b); 87 /* tnz [endtag],ic */ 88 dcl adjust_length_instr (12) bit (36) static init ("110000000000110001111101101001000000"b, 89 /* sta pr6|61 (atemp) */ 90 "110000000000110100100101000001000000"b, 91 /* stz pr6|64 (x1temp) */ 92 "110000000000110100100100001001000000"b, 93 /* sxl1 pr6|64 (x1temp) */ 94 "110000000000110100000111101001000000"b, 95 /* ada pr6|64 (x1temp) */ 96 "110000000000110101001001101001000000"b, 97 /* cmpa pr6|65 (rlen) */ 98 "000000000000000110110000100100000100"b, 99 /* tmoz 6,ic (not ovfl) */ 100 "110000000000110110000101100001000000"b, 101 /* aos pr6|66 (ovfl) */ 102 "110000000000110100011011101001000000"b, 103 /* lca pr6|64 (x1temp) */ 104 "110000000000110101000111101001000000"b, 105 /* ada pr6|65 (rlen) */ 106 "000000000000000000110000000000000100"b, 107 /* tze [endtag],ic (none left) */ 108 "000000000000000010111001000000000100"b, 109 /* tra 2,ic (join) */ 110 "110000000000110001010011101001000000"b); 111 /* lda pr6|61 (atemp) */ 112 dcl scan_loop_instr (16) bit (36) static init ("110000000000110011111010010001000000"b, 113 /* lxl2 pr6|63 (dlen) */ 114 "110000000000110001100101000001000000"b, 115 /* stz pr6|61 (atemp) */ 116 "110000000000110001010011101001000000"b, 117 /* lda pr6|61 (atemp) */ 118 "110000000000110011000111101001000000"b, 119 /* ada pr6|63 (dlen) */ 120 "110000000000110010001001101001000000"b, 121 /* cmpa pr6|62 (slen) */ 122 "000000000000000011110000100100000100"b, 123 /* tmoz 3,ic (still more) */ 124 "110000000000110010010011101001000000"b, 125 /* lda pr6|62 (slen) */ 126 "000000000000001001111001000000000100"b, 127 /* tra 11,ic (no luck, exit) */ 128 "110000000000110001010011101001000000"b, 129 /* lda pr6|61 (atemp) */ 130 "000000000001100101001000110101100000"b, 131 /* cmpc (pr,rl),(pr,rl,al) */ 132 "000000000000000000000000000000001010"b, 133 /* desc9a delimiter (len in A) */ 134 "010000000000000000000000000000001010"b, 135 /* desc9a pr2|0 (len in A) */ 136 "000000000000000100110000000000000100"b, 137 /* tze 4,ic (found it) */ 138 "000000000000000001000111101000000111"b, 139 /* ada 1,dl (bump index) */ 140 "110000000000110001111101101001000000"b, 141 /* sta pr6|61 (atemp) */ 142 "111111111111110100111001000000000100"b); 143 /* tra -14,ic (and again) */ 144 dcl adjust_and_test_x1_instr 145 (8) bit (36) static init ("000000000000000001010011110000000111"b, 146 /* ldq 1,du (in case of ovfl) */ 147 "110000000000110110111101110001000000"b, 148 /* stq pr6|66 (ovfl) */ 149 "110000000000110000111010001001000000"b, 150 /* lxl1 pr6|60 (ptr) */ 151 "000000000000000001001110001000000011"b, 152 /* sbx1 1,du (create offset) */ 153 "000000000000000000110000100000000100"b, 154 /* tmi [endtag],ic ((out of range) */ 155 "110000000000110000001001101001000000"b, 156 /* cmpa pr6|60 (ptr) */ 157 "000000000000000000110000100000000100"b, 158 /* tmi [endtag],ic (out of range) */ 159 "110000000000110110100101000001000000"b); 160 /* stz pr6|66 (ovfl) */ 161 dcl set_x1_instr (2) bit (36) static init ("000000000000000000110010001000000000"b, 162 /* eax1 0 */ 163 "110000000000110110100101000001000000"b); 164 /* stz pr6|66 (ovfl) */ 165 dcl set_pointer_instr (2) bit (36) static init ("000000000000000001000110001000000011"b, 166 /* adx1 1,du */ 167 "110000000000110000100100001001000000"b); 168 /* sxl1 pr6|60 (ptr) */ 169 dcl asa_instr bit (36) static init ("110000000001010000000101101001000000"b) options (constant); 170 /*-05/05/76-*/ 171 dcl tra_instr bit (36) static init ("000000000000000000111001000000000100"b); 172 173 dcl 1 addr_struct static, 174 2 type fixed bin init (4), 175 2 operand_no fixed bin init (2), 176 2 lock fixed bin init (0), 177 2 op1, 178 3 tptr ptr, 179 3 sr fixed bin init (0), 180 3 ic_mod fixed bin, 181 3 size_sw fixed bin init (1), 182 2 op2, 183 3 tptr ptr, 184 3 sr fixed bin init (0), 185 3 ic_mod fixed bin, 186 3 size_sw fixed bin init (1); 187 dcl 1 pr_struct static, 188 2 pr fixed bin, 189 2 pointer_no bit (3), 190 2 lock fixed bin init (1), 191 2 switch fixed bin init (0), 192 2 segno fixed bin, 193 2 offset fixed bin, 194 2 reset fixed bin; 195 dcl 1 reg_struct static, 196 2 what_reg fixed bin, 197 2 reg_no bit (4), 198 2 lock fixed bin init (1), 199 2 already_there fixed bin, 200 2 contains fixed bin init (0), 201 2 pointer ptr init (null ()), 202 2 literal bit (36) init (""b); 203 204 dcl ptr_off fixed bin static init (48); 205 dcl ptr_offx4 fixed bin static init (192); 206 dcl atemp_off fixed bin static init (49); 207 dcl slen_off fixed bin static init (50); 208 dcl dlen_off fixed bin static init (51); 209 dcl x1temp_off fixed bin static init (52); 210 dcl rlen_off fixed bin static init (53); 211 dcl ovfl_off fixed bin static init (54); 212 dcl ovfl_offx4 fixed bin static init (216); 213 214 dcl 1 type3, 215 2 alignment ptr, /* so as to double word align the space */ 216 2 rest char (26); 217 dcl 1 stype9, 218 2 alignment ptr, 219 2 rest char (140); 220 dcl 1 rtype9, 221 2 alignment ptr, 222 2 rest char (140); 223 dcl 1 dtype9, 224 2 alignment ptr, 225 2 rest char (140); 226 dcl type9_chars char (148) aligned based (type9_ptr); 227 228 dcl fixlen (0:255) fixed bin auto; 229 230 dcl endtag fixed bin; 231 dcl (i, j, next) fixed bin; 232 dcl ic fixed bin; 233 dcl temp fixed bin; 234 dcl (from_len, to_len) fixed bin; 235 dcl (varlen, litlen) fixed bin; 236 dcl total_fixlen fixed bin; 237 dcl rlen fixed bin (20); 238 dcl ovfl_no fixed bin; 239 dcl varlen_no fixed bin; 240 241 dcl fill_char char (1); 242 dcl temp_lit char (256); 243 244 dcl pr2set bit (1); 245 dcl lit bit (18); 246 dcl nolimit bit (1); 247 dcl two_in_one bit (1); 248 dcl move_completed bit (1); 249 250 dcl scan_instr_ptr ptr; 251 dcl stptr ptr; 252 dcl dtptr ptr; 253 dcl dn_ptr ptr; 254 dcl pr_struct_ptr ptr; 255 dcl type9_ptr ptr; 256 257 dcl cobol_addr entry (ptr, ptr, ptr); 258 dcl cobol_emit entry (ptr, ptr, fixed bin); 259 dcl cobol_get_size entry (ptr, fixed bin, fixed bin); 260 dcl cobol_set_pr entry (ptr, ptr); 261 dcl cobol_make_type9$type2_3 262 entry (ptr, ptr); 263 dcl cobol_make_type3$type1 264 entry (ptr, ptr); 265 dcl cobol_io_util$move_lit 266 entry (bit (3) aligned, fixed bin, fixed bin, char (*)); 267 dcl cobol_io_util$move entry (bit (3) aligned, fixed bin, fixed bin, bit (3) aligned, fixed bin, fixed bin); 268 dcl cobol_io_util$t9dec_to_bin 269 entry (bit (3) aligned, fixed bin, ptr); 270 dcl cobol_io_util$bin_to_t9dec 271 entry (bit (3) aligned, fixed bin, ptr); 272 dcl cobol_reset_r$in_line 273 entry; 274 dcl cobol_pointer_register$priority 275 entry (fixed bin, fixed bin, bit (3) aligned); 276 dcl cobol_register$load entry (ptr); 277 278 dcl cobol_make_tagref entry (fixed bin, fixed bin, ptr); 279 dcl cobol_define_tag_nc entry (fixed bin, fixed bin); 280 281 282 /*************************************/ 283 start: 284 endtag = cobol_$next_tag; 285 cobol_$next_tag = cobol_$next_tag + 1; 286 total_fixlen = 0; 287 288 if s.rtp -> data_name.item_length = 0 289 then do; /* special case - string into unlimited stack area */ 290 nolimit = "1"b; 291 rlen = 1048575; /* segment size is only limiting factor */ 292 end; 293 else do; 294 nolimit = "0"b; 295 if s.rtp -> data_name.variable_length 296 then rlen = 0; 297 else rlen = s.rtp -> data_name.item_length; 298 end; 299 300 /* varlen_no = 1st sending field whose length can't be 301* predetermined; 0 indicates all fixed */ 302 303 if s.ptp = null () & rlen ^= 0 304 then do; /* try optimizing */ 305 306 ovfl_no, varlen_no = 0; 307 308 do i = 1 to s.n while (varlen_no = 0 & ovfl_no = 0); 309 310 if s.dtp (i) ^= null () /*[4.2-1]*/ 311 then do; 312 varlen_no = i; /*[4.2-1]*/ 313 fixlen (i) = 0; /*[4.2-1]*/ 314 end; 315 else do; 316 dn_ptr = s.stp (i); 317 318 if data_name.type = 9 319 then do; 320 321 if data_name.variable_length 322 then varlen_no = i; 323 else fixlen (i) = data_name.item_length; 324 end; 325 else if data_name.type = 3 326 then fixlen (i) = dn_ptr -> alphanum_lit.lit_size; 327 else if data_name.type = 2 328 then fixlen (i) = dn_ptr -> numeric_lit.places; 329 else fixlen (i) = 1; /* fig-con */ 330 end; 331 332 if varlen_no = 0 333 then do; 334 335 if rlen < total_fixlen + fixlen (i) 336 then do; /* overflow */ 337 338 fixlen (i) = rlen - total_fixlen; 339 ovfl_no = i; 340 end; 341 else do; 342 total_fixlen = total_fixlen + fixlen (i); 343 if rlen = total_fixlen 344 then if s.n > i 345 then ovfl_no = i; 346 end; 347 end; 348 end; 349 350 if varlen_no ^= 1 351 then do; /* at least one fixed length */ 352 353 type9_ptr = addr (rtype9); 354 type9_chars = s.rtp -> type9_chars; 355 addr_struct.op2.tptr = type9_ptr; 356 fixlen (0) = 0; 357 358 end; 359 end; 360 else varlen_no = 1; /* can't optimize */ 361 362 if varlen_no ^= 0 363 then do; /* at least one non-fixed length */ 364 365 /* SET PR1 TO PT TO RECEIVING ITEM */ 366 pr_struct_ptr = addr (pr_struct); 367 pr_struct.pr = 1; 368 369 call cobol_set_pr (pr_struct_ptr, s.rtp); 370 371 do reg_struct.what_reg = 1, 11, 12; /* lock A, X1, and X2 */ 372 373 call cobol_register$load (addr (reg_struct)); 374 375 end; 376 377 /* ESTABLISH SIZE OF RECEIVING ITEM */ 378 379 if ^nolimit 380 then call cobol_get_size (s.rtp, rlen_off, 0); 381 /* INITIALIZE X1 (indexes receiving item) */ 382 383 if s.ptp = null () 384 then do; 385 386 if nolimit 387 then ic = 1; /* no ovfl checking will be done */ 388 else ic = 2; 389 390 substr (set_x1_instr (1), 1, 18) = substr (unspec (total_fixlen), 19, 18); 391 392 call cobol_emit (addr (set_x1_instr), null (), ic); 393 394 end; 395 else do; 396 397 call cobol_io_util$t9dec_to_bin ("110"b, ptr_offx4, ptp); 398 call cobol_emit (addr (adjust_and_test_x1_instr), null (), 8); 399 call cobol_make_tagref (endtag, cobol_$text_wd_off - 4, null ()); 400 call cobol_make_tagref (endtag, cobol_$text_wd_off - 2, null ()); 401 402 end; 403 end; 404 405 do i = 1 to s.n; /* DETERMINE NUMBER OF CHARS TO BE MOVED AND STORE IN A */ 406 dn_ptr = s.stp (i); 407 408 if data_name.type = 9 409 then stptr = dn_ptr; 410 else do; 411 412 if data_name.type = 1 413 then do; 414 415 dn_ptr = addr (type3); 416 417 call cobol_make_type3$type1 (dn_ptr, s.stp (i)); 418 419 end; 420 421 stptr = addr (stype9); 422 423 call cobol_make_type9$type2_3 (stptr, dn_ptr); 424 425 end; 426 427 pr2set = "0"b; 428 429 if varlen_no = 0 | i < varlen_no 430 then do; /* fixed length move */ 431 432 type9_ptr -> data_name.offset = type9_ptr -> data_name.offset + fixlen (i - 1); 433 addr_struct.op1.tptr = stptr; 434 from_len, to_len = fixlen (i); 435 fixlen_mlr_instr (2) = unspec (from_len); 436 fill_char = ""; 437 two_in_one = "0"b; 438 439 if i < s.n & i ^= ovfl_no 440 then do; /* try optimizing with fill char */ 441 442 next = i + 1; 443 dn_ptr = s.stp (next); 444 445 /*[4.2-1]*/ 446 if fixlen (next) ^= 0 & data_name.type < 4 447 then do; /* not a variable */ 448 449 450 if data_name.type = 1 451 then do; 452 453 dn_ptr = addr (type3); 454 455 call cobol_make_type3$type1 (dn_ptr, s.stp (next)); 456 457 end; 458 459 litlen = fixlen (next); 460 461 if data_name.type = 3 462 then substr (temp_lit, 1, litlen) = 463 substr (dn_ptr -> alphanum_lit.string, 1, litlen); 464 else substr (temp_lit, 1, litlen) = 465 substr (dn_ptr -> numeric_lit.literal, 1, litlen); 466 467 fill_char = substr (temp_lit, 1, 1); 468 to_len = from_len + litlen; 469 two_in_one = "1"b; 470 471 do j = 2 to litlen while (two_in_one); 472 473 if substr (temp_lit, j, 1) ^= fill_char 474 then do; 475 476 to_len = from_len; 477 fill_char = ""; 478 two_in_one = "0"b; 479 end; 480 end; 481 482 if two_in_one 483 then do; /* skip next move */ 484 fixlen (next) = fixlen (i) + fixlen (next); 485 i = next; 486 end; 487 end; 488 end; 489 490 fixlen_mlr_instr (3) = unspec (to_len); 491 492 call cobol_addr (addr (addr_struct), addr (fixlen_mlr_instr), null ()); 493 494 move_completed = "0"b; 495 496 if ^two_in_one 497 then do; /* try to optimize */ 498 499 if substr (fixlen_mlr_instr (1), 12, 7) = "1000000"b 500 then do; 501 502 if s.stp (i) -> data_name.type = 3 503 then do; 504 505 call cobol_io_util$move_lit (substr (fixlen_mlr_instr (3), 1, 3), 506 fixed (substr (fixlen_mlr_instr (3), 4, 17)), 507 fixed (substr (fixlen_mlr_instr (3), 25, 12)), 508 substr (s.stp (i) -> alphanum_lit.string, 1, 509 s.stp (i) -> alphanum_lit.lit_size)); 510 511 move_completed = "1"b; 512 end; 513 514 else if substr (fixlen_mlr_instr (1), 30, 7) = "1000000"b 515 then do; 516 517 call cobol_io_util$move (substr (fixlen_mlr_instr (3), 1, 3), 518 fixed (substr (fixlen_mlr_instr (3), 4, 17)), 519 fixed (substr (fixlen_mlr_instr (3), 25, 12)), 520 substr (fixlen_mlr_instr (2), 1, 3), 521 fixed (substr (fixlen_mlr_instr (2), 4, 17)), 522 fixed (substr (fixlen_mlr_instr (2), 25, 12))); 523 524 move_completed = "1"b; 525 end; 526 end; 527 end; /* try to optimize */ 528 529 if ^move_completed 530 then do; 531 532 substr (fixlen_mlr_instr (1), 1, 9) = unspec (fill_char); 533 534 call cobol_emit (addr (fixlen_mlr_instr), null (), 3); 535 536 end; 537 538 if i = ovfl_no 539 then return; /* just like that */ 540 end; 541 542 else do; /* variable length move */ 543 544 if s.dtp (i) = null () 545 then do; /* no delimiter */ 546 547 call cobol_get_size (stptr, 0, 0); 548 549 if nolimit 550 then if stptr -> data_name.type = 9 551 then if stptr -> data_name.variable_length 552 then call cobol_emit (addr (asa_instr), null (), 1); 553 554 end; 555 else do; 556 557 call cobol_get_size (stptr, slen_off, 0); 558 559 dn_ptr = s.dtp (i); 560 litlen, varlen = 0; 561 562 if data_name.type < 4 563 then do; 564 565 if data_name.type = 1 566 then do; 567 568 dn_ptr = addr (type3); 569 570 call cobol_make_type3$type1 (dn_ptr, s.dtp (i)); 571 572 end; 573 574 if data_name.type = 2 575 then do; 576 577 if dn_ptr -> numeric_lit.places < 3 578 then do; 579 580 lit = substr (unspec (dn_ptr -> numeric_lit.literal), 1, 581 18); 582 litlen = dn_ptr -> numeric_lit.places; 583 end; 584 end; 585 586 else if data_name.type = 3 587 then do; 588 589 590 if dn_ptr -> alphanum_lit.lit_size < 3 591 then do; 592 593 lit = substr (unspec (dn_ptr -> alphanum_lit.string), 1, 594 18); 595 litlen = dn_ptr -> alphanum_lit.lit_size; 596 597 end; 598 end; 599 600 if litlen = 0 601 then do; 602 603 dtptr = addr (dtype9); 604 605 call cobol_make_type9$type2_3 (dtptr, dn_ptr); 606 607 end; 608 end; 609 else do; /* type9 token */ 610 611 if ^data_name.variable_length & data_name.item_length < 3 612 then varlen = data_name.item_length; 613 dtptr = dn_ptr; 614 615 end; 616 617 call cobol_pointer_register$priority (2, 0, "010"b); 618 /* unlock pr2 */ 619 620 pr_struct.pr = 2; 621 622 call cobol_set_pr (pr_struct_ptr, stptr); 623 624 pr2set = "1"b; 625 626 if litlen > 0 | varlen > 0 627 then do; 628 629 if litlen = 2 | varlen = 2 630 then do; /* SCD */ 631 scan_instr_ptr = addr (scd_instr); 632 ic = 6; 633 end; 634 else do; /* SCM */ 635 scan_instr_ptr = addr (scm_instr); 636 ic = 5; 637 end; 638 639 if varlen > 0 640 then do; /* scan to variable */ 641 642 addr_struct.op1.tptr = null (); 643 addr_struct.op2.tptr = dtptr; 644 645 call cobol_addr (addr (addr_struct), scan_instr_ptr, null ()); 646 647 end; 648 else do; /* scan to literal */ 649 substr (scan_instr (1), 12, 7) = "0000011"b; 650 /* du */ 651 scan_instr (3) = lit; 652 end; 653 654 call cobol_emit (scan_instr_ptr, null (), ic); 655 656 end; 657 else do; 658 659 call cobol_get_size (dtptr, dlen_off, 0); 660 661 addr_struct.op1.tptr = dtptr; 662 addr_struct.op1.ic_mod = 0; 663 addr_struct.op2.tptr = null (); 664 665 call cobol_addr (addr (addr_struct), addr (scan_loop_instr (10)), null ()); 666 667 if addr_struct.op1.ic_mod = 1 668 then do; 669 670 temp = fixed (substr (scan_loop_instr (11), 1, 18), 18) - 9; 671 substr (scan_loop_instr (11), 1, 18) = 672 substr (unspec (temp), 19, 18); 673 end; 674 675 call cobol_emit (addr (scan_loop_instr), null (), 16); 676 677 end; 678 end; 679 680 /* ADJUST LENGTH IF NECESSARY AND RECORD OVERFLOW */ 681 682 if ^nolimit 683 then do; 684 685 call cobol_emit (addr (adjust_length_instr), null (), 12); 686 call cobol_make_tagref (endtag, cobol_$text_wd_off - 3, null ()); 687 688 end; 689 690 /* MOVE STRING AND CHECK OVERFLOW */ 691 692 if ^pr2set 693 then do; 694 695 addr_struct.op1.tptr = stptr; 696 addr_struct.op2.tptr = null (); 697 698 call cobol_addr (addr (addr_struct), addr (move_instr), null ()); 699 700 end; 701 else do; 702 substr (move_instr (1), 30, 7) = "1100000"b; 703 move_instr (2) = "010000000000000000000000000000000101"b; 704 end; 705 706 call cobol_emit (addr (move_instr), null (), 3); 707 708 if i = s.n 709 then do; 710 711 if s.ptp ^= null () 712 then call cobol_emit (addr (check_ovfl_instr), null (), 3); 713 714 end; 715 716 else if nolimit 717 then call cobol_emit (addr (check_ovfl_instr), null (), 3); 718 719 else do; 720 721 call cobol_emit (addr (check_ovfl_instr), null (), 5); 722 call cobol_make_tagref (endtag, cobol_$text_wd_off - 1, null ()); 723 724 end; 725 end; 726 727 end; 728 729 730 if ^nolimit 731 then do; 732 733 call cobol_define_tag_nc (endtag, cobol_$text_wd_off); 734 735 736 if s.ptp ^= null () 737 then do; /* must set pointer */ 738 739 call cobol_emit (addr (set_pointer_instr), null (), 2); 740 call cobol_io_util$bin_to_t9dec ("110"b, ptr_offx4, s.ptp); 741 742 end; 743 744 if s.tag > 0 745 then do; 746 747 if varlen_no = 0 748 then call cobol_emit (addr (tra_instr), null (), 1); 749 /* overflow impossible */ 750 751 else call cobol_emit (addr (bypass_ovfl_instr), null (), 2); 752 753 call cobol_make_tagref (s.tag, cobol_$text_wd_off - 1, null ()); 754 755 end; 756 end; 757 758 call cobol_reset_r$in_line; 759 760 exit: 761 return; 762 763 764 /*************************************/ 765 766 /***** Declaration for builtin function *****/ 767 768 dcl (substr, mod, binary, fixed, addr, addrel, rel, length, string, unspec, null, index) 769 builtin; 770 771 /***** End of declaration for builtin function *****/ 772 1 1 1 2 /* BEGIN INCLUDE FILE ... cobol_type1.incl.pl1 */ 1 3 /* Last modified on 11/19/76 by ORN */ 1 4 1 5 /* 1 6*A reserved word token is created in the minpral files for each occurrence 1 7*of a reserved word in the source program. The value of the key field 1 8*indicates the specific reserved word which a type 1 token represents. 1 9**/ 1 10 1 11 dcl rw_ptr ptr; 1 12 1 13 /* BEGIN DECLARATION OF TYPE1 (RESERVED WORD) TOKEN */ 1 14 dcl 1 reserved_word based (rw_ptr), 2 1 2 2 /* begin include file ... cobol_TYPE1.incl.pl1 */ 2 3 /* Last modified on 11/17/76 by ORN */ 2 4 /* Last modified on 12/28/76 by FCH */ 2 5 /* Last modified on 12/16/80 by FCH */ 2 6 2 7 /* header */ 2 8 2 size fixed bin, 2 9 2 line fixed bin, 2 10 2 column fixed bin, 2 11 2 type fixed bin, 2 12 /* body */ 2 13 2 key fixed bin, 2 14 /* procedure division class bits */ 2 15 2 verb bit (1), 2 16 2 arith_op bit (1), 2 17 2 figcon bit (1), 2 18 2 terminator bit (1), 2 19 2 end_dec bit (1), 2 20 2 rel_op bit (1), 2 21 2 imper_verb bit (1), 2 22 2 end_cobol bit (1), 2 23 /* data division class bits */ 2 24 2 section_header bit (1), 2 25 2 fs_ind bit (1), 2 26 2 fd_clause bit (1), 2 27 2 dd_clause bit (1), 2 28 2 cd_input bit (1), 2 29 2 cd_output bit (1), 2 30 2 cset_name bit (1), 2 31 2 ss_division bit (1), 2 32 2 repl_jump_ind bit (4), 2 33 2 ided_recovery bit (1), 2 34 2 report_writer bit (5), 2 35 2 ss_desc_entry bit (1), 2 36 2 jump_index fixed bin, 2 37 2 length fixed bin, 2 38 2 name char(0 refer(reserved_word.length)); 2 39 2 40 2 41 2 42 /* end include file ... cobol_TYPE1.incl.pl1 */ 2 43 1 15 1 16 /* END DECLARATION OF TYPE1 (RESERVED WORD) TOKEN */ 1 17 1 18 /* END INCLUDE FILE ... cobol_type1.incl.pl1 */ 1 19 773 3 1 3 2 /* BEGIN INCLUDE FILE ... cobol_type2.incl.pl1 */ 3 3 /* Last modified on 11/19/76 by ORN */ 3 4 3 5 /* 3 6*A type 2 numeric literal token is entered into the minpral file by the 3 7*lexical analysis phase for each numeric literal encountered in the source 3 8*program. 3 9**/ 3 10 3 11 dcl nlit_ptr ptr; 3 12 3 13 /* BEGIN DECLARATION OF TYPE2 (NUMERIC LITERAL) TOKEN */ 3 14 dcl 1 numeric_lit based (nlit_ptr), 4 1 4 2 /* begin include file ... cobol_TYPE2.incl.pl1 */ 4 3 /* Last modified on 12/28/76 by FCH */ 4 4 4 5 /* header */ 4 6 2 size fixed bin, 4 7 2 line fixed bin, 4 8 2 column fixed bin, 4 9 2 type fixed bin, 4 10 /* body */ 4 11 2 integral bit(1), 4 12 2 floating bit(1), 4 13 2 seg_range bit(1), 4 14 2 filler1 bit(4), 4 15 2 subscript bit(1), 4 16 2 sign char(1), 4 17 2 exp_sign char(1), 4 18 2 exp_places fixed bin, 4 19 2 places_left fixed bin, 4 20 2 places_right fixed bin, 4 21 2 places fixed bin, 4 22 2 literal char(0 refer(numeric_lit.places)); 4 23 4 24 4 25 4 26 /* end include file ... cobol_TYPE2.incl.pl1 */ 4 27 3 15 3 16 /* END DECLARATION OF TYPE2 (NUMERIC LITERAL) TOKEN */ 3 17 3 18 /* END INCLUDE FILE ... cobol_type2.incl.pl1 */ 3 19 774 5 1 5 2 /* BEGIN INCLUDE FILE ... cobol_type3.incl.pl1 */ 5 3 /* Last modified on 11/19/76 by ORN */ 5 4 5 5 /* 5 6*A type 3 alphanumeric literal token is entered into the minpral file by the 5 7*lexical analysis phase for each alphanumeric literal encountered in the 5 8*source program. 5 9**/ 5 10 5 11 dcl alit_ptr ptr; 5 12 5 13 /* BEGIN DECLARATION OR TYPE3 (ALPHANUMERIC LITERAL) TOKEN */ 5 14 dcl 1 alphanum_lit based (alit_ptr), 6 1 6 2 /* begin include file ... cobol_TYPE3.incl.pl1 */ 6 3 /* Last modified on 11/17/76 by ORN */ 6 4 /* Last modified on 12/28/76 by FCH */ 6 5 6 6 /* header */ 6 7 2 size fixed bin, 6 8 2 line fixed bin, 6 9 2 column fixed bin, 6 10 2 type fixed bin, 6 11 /* body */ 6 12 2 lit_type bit (1), 6 13 2 all_lit bit (1), 6 14 2 filler1 bit (6), 6 15 2 lit_size fixed bin, 6 16 2 string char(0 refer(alphanum_lit.lit_size)); 6 17 6 18 6 19 6 20 /* end include file ... cobol_TYPE3.incl.pl1 */ 6 21 5 15 5 16 /* END DECLARATION OF TYPE3 (ALPHANUMERIC LITERAL) TOKEN */ 5 17 5 18 /* END INCLUDE FILE ... cobol_type3.incl.pl1 */ 5 19 775 7 1 7 2 /* BEGIN INCLUDE FILE ... cobol_type9.incl.pl1 */ 7 3 /* Last modified on 11/19/76 by ORN */ 7 4 7 5 /* 7 6*A type 9 data name token is entered into the name table by the data 7 7*division syntax phase for each data name described in the data division. 7 8*The replacement phase subsequently replaces type 8 user word references 7 9*to data names in the procedure division minpral file with the corresponding 7 10*type 9 tokens from the name table. 7 11**/ 7 12 7 13 /* dcl dn_ptr ptr; */ 7 14 7 15 /* BEGIN DECLARATION OF TYPE9 (DATA NAME) TOKEN */ 7 16 dcl 1 data_name based (dn_ptr), 8 1 8 2 /* begin include file ... cobol_TYPE9.incl.pl1 */ 8 3 /* Last modified on 06/19/77 by ORN */ 8 4 /* Last modified on 12/28/76 by FCH */ 8 5 8 6 /* header */ 8 7 2 size fixed bin, 8 8 2 line fixed bin, 8 9 2 column fixed bin, 8 10 2 type fixed bin, 8 11 /* body */ 8 12 2 string_ptr ptr, 8 13 2 prev_rec ptr, 8 14 2 searched bit (1), 8 15 2 duplicate bit (1), 8 16 2 saved bit (1), 8 17 2 debug_ind bit (1), 8 18 2 filler2 bit (3), 8 19 2 used_as_sub bit (1), 8 20 2 def_line fixed bin, 8 21 2 level fixed bin, 8 22 2 linkage fixed bin, 8 23 2 file_num fixed bin, 8 24 2 size_rtn fixed bin, 8 25 2 item_length fixed bin(24), 8 26 2 places_left fixed bin, 8 27 2 places_right fixed bin, 8 28 /* description */ 8 29 2 file_section bit (1), 8 30 2 working_storage bit (1), 8 31 2 constant_section bit (1), 8 32 2 linkage_section bit (1), 8 33 2 communication_section bit (1), 8 34 2 report_section bit (1), 8 35 2 level_77 bit (1), 8 36 2 level_01 bit (1), 8 37 2 non_elementary bit (1), 8 38 2 elementary bit (1), 8 39 2 filler_item bit (1), 8 40 2 s_of_rdf bit (1), 8 41 2 o_of_rdf bit (1), 8 42 2 bin_18 bit (1), 8 43 2 bin_36 bit (1), 8 44 2 pic_has_l bit (1), 8 45 2 pic_is_do bit (1), 8 46 2 numeric bit (1), 8 47 2 numeric_edited bit (1), 8 48 2 alphanum bit (1), 8 49 2 alphanum_edited bit (1), 8 50 2 alphabetic bit (1), 8 51 2 alphabetic_edited bit (1), 8 52 2 pic_has_p bit (1), 8 53 2 pic_has_ast bit (1), 8 54 2 item_signed bit(1), 8 55 2 sign_separate bit (1), 8 56 2 display bit (1), 8 57 2 comp bit (1), 8 58 2 ascii_packed_dec_h bit (1), /* as of 8/16/76 this field used for comp8. */ 8 59 2 ascii_packed_dec bit (1), 8 60 2 ebcdic_packed_dec bit (1), 8 61 2 bin_16 bit (1), 8 62 2 bin_32 bit (1), 8 63 2 usage_index bit (1), 8 64 2 just_right bit (1), 8 65 2 compare_argument bit (1), 8 66 2 sync bit (1), 8 67 2 temporary bit (1), 8 68 2 bwz bit (1), 8 69 2 variable_length bit (1), 8 70 2 subscripted bit (1), 8 71 2 occurs_do bit (1), 8 72 2 key_a bit (1), 8 73 2 key_d bit (1), 8 74 2 indexed_by bit (1), 8 75 2 value_numeric bit (1), 8 76 2 value_non_numeric bit (1), 8 77 2 value_signed bit (1), 8 78 2 sign_type bit (3), 8 79 2 pic_integer bit (1), 8 80 2 ast_when_zero bit (1), 8 81 2 label_record bit (1), 8 82 2 sign_clause_occurred bit (1), 8 83 2 okey_dn bit (1), 8 84 2 subject_of_keyis bit (1), 8 85 2 exp_redefining bit (1), 8 86 2 sync_in_rec bit (1), 8 87 2 rounded bit (1), 8 88 2 ad_bit bit (1), 8 89 2 debug_all bit (1), 8 90 2 overlap bit (1), 8 91 2 sum_counter bit (1), 8 92 2 exp_occurs bit (1), 8 93 2 linage_counter bit (1), 8 94 2 rnm_01 bit (1), 8 95 2 aligned bit (1), 8 96 2 not_user_writable bit (1), 8 97 2 database_key bit (1), 8 98 2 database_data_item bit (1), 8 99 2 seg_num fixed bin, 8 100 2 offset fixed bin(24), 8 101 2 initial_ptr fixed bin, 8 102 2 edit_ptr fixed bin, 8 103 2 occurs_ptr fixed bin, 8 104 2 do_rec char(5), 8 105 2 bitt bit (1), 8 106 2 byte bit (1), 8 107 2 half_word bit (1), 8 108 2 word bit (1), 8 109 2 double_word bit (1), 8 110 2 half_byte bit (1), 8 111 2 filler5 bit (1), 8 112 2 bit_offset bit (4), 8 113 2 son_cnt bit (16), 8 114 2 max_red_size fixed bin(24), 8 115 2 name_size fixed bin, 8 116 2 name char(0 refer(data_name.name_size)); 8 117 8 118 8 119 8 120 /* end include file ... cobol_TYPE9.incl.pl1 */ 8 121 7 17 7 18 /* END DECLARATION OF TYPE9 (DATA NAME) TOKEN */ 7 19 7 20 /* END INCLUDE FILE ... cobol_type9.incl.pl1 */ 7 21 776 9 1 9 2 /* BEGIN INCLUDE FILE ... cobol_.incl.pl1 */ 9 3 /* last modified Feb 4, 1977 by ORN */ 9 4 9 5 /* This file defines all external data used in the generator phase of Multics Cobol */ 9 6 9 7 /* POINTERS */ 9 8 dcl cobol_$text_base_ptr ptr ext; 9 9 dcl text_base_ptr ptr defined (cobol_$text_base_ptr); 9 10 dcl cobol_$con_end_ptr ptr ext; 9 11 dcl con_end_ptr ptr defined (cobol_$con_end_ptr); 9 12 dcl cobol_$def_base_ptr ptr ext; 9 13 dcl def_base_ptr ptr defined (cobol_$def_base_ptr); 9 14 dcl cobol_$link_base_ptr ptr ext; 9 15 dcl link_base_ptr ptr defined (cobol_$link_base_ptr); 9 16 dcl cobol_$sym_base_ptr ptr ext; 9 17 dcl sym_base_ptr ptr defined (cobol_$sym_base_ptr); 9 18 dcl cobol_$reloc_text_base_ptr ptr ext; 9 19 dcl reloc_text_base_ptr ptr defined (cobol_$reloc_text_base_ptr); 9 20 dcl cobol_$reloc_def_base_ptr ptr ext; 9 21 dcl reloc_def_base_ptr ptr defined (cobol_$reloc_def_base_ptr); 9 22 dcl cobol_$reloc_link_base_ptr ptr ext; 9 23 dcl reloc_link_base_ptr ptr defined (cobol_$reloc_link_base_ptr); 9 24 dcl cobol_$reloc_sym_base_ptr ptr ext; 9 25 dcl reloc_sym_base_ptr ptr defined (cobol_$reloc_sym_base_ptr); 9 26 dcl cobol_$reloc_work_base_ptr ptr ext; 9 27 dcl reloc_work_base_ptr ptr defined (cobol_$reloc_work_base_ptr); 9 28 dcl cobol_$pd_map_ptr ptr ext; 9 29 dcl pd_map_ptr ptr defined (cobol_$pd_map_ptr); 9 30 dcl cobol_$fixup_ptr ptr ext; 9 31 dcl fixup_ptr ptr defined (cobol_$fixup_ptr); 9 32 dcl cobol_$initval_base_ptr ptr ext; 9 33 dcl initval_base_ptr ptr defined (cobol_$initval_base_ptr); 9 34 dcl cobol_$initval_file_ptr ptr ext; 9 35 dcl initval_file_ptr ptr defined (cobol_$initval_file_ptr); 9 36 dcl cobol_$perform_list_ptr ptr ext; 9 37 dcl perform_list_ptr ptr defined (cobol_$perform_list_ptr); 9 38 dcl cobol_$alter_list_ptr ptr ext; 9 39 dcl alter_list_ptr ptr defined (cobol_$alter_list_ptr); 9 40 dcl cobol_$seg_init_list_ptr ptr ext; 9 41 dcl seg_init_list_ptr ptr defined (cobol_$seg_init_list_ptr); 9 42 dcl cobol_$temp_token_area_ptr ptr ext; 9 43 dcl temp_token_area_ptr ptr defined (cobol_$temp_token_area_ptr); 9 44 dcl cobol_$temp_token_ptr ptr ext; 9 45 dcl temp_token_ptr ptr defined (cobol_$temp_token_ptr); 9 46 dcl cobol_$token_block1_ptr ptr ext; 9 47 dcl token_block1_ptr ptr defined (cobol_$token_block1_ptr); 9 48 dcl cobol_$token_block2_ptr ptr ext; 9 49 dcl token_block2_ptr ptr defined (cobol_$token_block2_ptr); 9 50 dcl cobol_$minpral5_ptr ptr ext; 9 51 dcl minpral5_ptr ptr defined (cobol_$minpral5_ptr); 9 52 dcl cobol_$tag_table_ptr ptr ext; 9 53 dcl tag_table_ptr ptr defined (cobol_$tag_table_ptr); 9 54 dcl cobol_$map_data_ptr ptr ext; 9 55 dcl map_data_ptr ptr defined (cobol_$map_data_ptr); 9 56 dcl cobol_$ptr_status_ptr ptr ext; 9 57 dcl ptr_status_ptr ptr defined (cobol_$ptr_status_ptr); 9 58 dcl cobol_$reg_status_ptr ptr ext; 9 59 dcl reg_status_ptr ptr defined (cobol_$reg_status_ptr); 9 60 dcl cobol_$misc_base_ptr ptr ext; 9 61 dcl misc_base_ptr ptr defined (cobol_$misc_base_ptr); 9 62 dcl cobol_$misc_end_ptr ptr ext; 9 63 dcl misc_end_ptr ptr defined (cobol_$misc_end_ptr); 9 64 dcl cobol_$list_ptr ptr ext; 9 65 dcl list_ptr ptr defined (cobol_$list_ptr); 9 66 dcl cobol_$allo1_ptr ptr ext; 9 67 dcl allo1_ptr ptr defined (cobol_$allo1_ptr); 9 68 dcl cobol_$eln_ptr ptr ext; 9 69 dcl eln_ptr ptr defined (cobol_$eln_ptr); 9 70 dcl cobol_$diag_ptr ptr ext; 9 71 dcl diag_ptr ptr defined (cobol_$diag_ptr); 9 72 dcl cobol_$xref_token_ptr ptr ext; 9 73 dcl xref_token_ptr ptr defined (cobol_$xref_token_ptr); 9 74 dcl cobol_$xref_chain_ptr ptr ext; 9 75 dcl xref_chain_ptr ptr defined (cobol_$xref_chain_ptr); 9 76 dcl cobol_$statement_info_ptr ptr ext; 9 77 dcl statement_info_ptr ptr defined (cobol_$statement_info_ptr); 9 78 dcl cobol_$reswd_ptr ptr ext; 9 79 dcl reswd_ptr ptr defined (cobol_$reswd_ptr); 9 80 dcl cobol_$op_con_ptr ptr ext; 9 81 dcl op_con_ptr ptr defined (cobol_$op_con_ptr); 9 82 dcl cobol_$ntbuf_ptr ptr ext; 9 83 dcl ntbuf_ptr ptr defined (cobol_$ntbuf_ptr); 9 84 dcl cobol_$main_pcs_ptr ptr ext; 9 85 dcl main_pcs_ptr ptr defined (cobol_$main_pcs_ptr); 9 86 dcl cobol_$include_info_ptr ptr ext; 9 87 dcl include_info_ptr ptr defined (cobol_$include_info_ptr); 9 88 9 89 /* FIXED BIN */ 9 90 dcl cobol_$text_wd_off fixed bin ext; 9 91 dcl text_wd_off fixed bin defined (cobol_$text_wd_off); 9 92 dcl cobol_$con_wd_off fixed bin ext; 9 93 dcl con_wd_off fixed bin defined (cobol_$con_wd_off); 9 94 dcl cobol_$def_wd_off fixed bin ext; 9 95 dcl def_wd_off fixed bin defined (cobol_$def_wd_off); 9 96 dcl cobol_$def_max fixed bin ext; 9 97 dcl def_max fixed bin defined (cobol_$def_max); 9 98 dcl cobol_$link_wd_off fixed bin ext; 9 99 dcl link_wd_off fixed bin defined (cobol_$link_wd_off); 9 100 dcl cobol_$link_max fixed bin ext; 9 101 dcl link_max fixed bin defined (cobol_$link_max); 9 102 dcl cobol_$sym_wd_off fixed bin ext; 9 103 dcl sym_wd_off fixed bin defined (cobol_$sym_wd_off); 9 104 dcl cobol_$sym_max fixed bin ext; 9 105 dcl sym_max fixed bin defined (cobol_$sym_max); 9 106 dcl cobol_$reloc_text_max fixed bin(24) ext; 9 107 dcl reloc_text_max fixed bin(24) defined (cobol_$reloc_text_max); 9 108 dcl cobol_$reloc_def_max fixed bin(24) ext; 9 109 dcl reloc_def_max fixed bin(24) defined (cobol_$reloc_def_max); 9 110 dcl cobol_$reloc_link_max fixed bin(24) ext; 9 111 dcl reloc_link_max fixed bin(24) defined (cobol_$reloc_link_max); 9 112 dcl cobol_$reloc_sym_max fixed bin(24) ext; 9 113 dcl reloc_sym_max fixed bin(24) defined (cobol_$reloc_sym_max); 9 114 dcl cobol_$reloc_work_max fixed bin(24) ext; 9 115 dcl reloc_work_max fixed bin(24) defined (cobol_$reloc_work_max); 9 116 dcl cobol_$pd_map_index fixed bin ext; 9 117 dcl pd_map_index fixed bin defined (cobol_$pd_map_index); 9 118 dcl cobol_$cobol_data_wd_off fixed bin ext; 9 119 dcl cobol_data_wd_off fixed bin defined (cobol_$cobol_data_wd_off); 9 120 dcl cobol_$stack_off fixed bin ext; 9 121 dcl stack_off fixed bin defined (cobol_$stack_off); 9 122 dcl cobol_$max_stack_off fixed bin ext; 9 123 dcl max_stack_off fixed bin defined (cobol_$max_stack_off); 9 124 dcl cobol_$init_stack_off fixed bin ext; 9 125 dcl init_stack_off fixed bin defined (cobol_$init_stack_off); 9 126 dcl cobol_$pd_map_sw fixed bin ext; 9 127 dcl pd_map_sw fixed bin defined (cobol_$pd_map_sw); 9 128 dcl cobol_$next_tag fixed bin ext; 9 129 dcl next_tag fixed bin defined (cobol_$next_tag); 9 130 dcl cobol_$data_init_flag fixed bin ext; 9 131 dcl data_init_flag fixed bin defined (cobol_$data_init_flag); 9 132 dcl cobol_$seg_init_flag fixed bin ext; 9 133 dcl seg_init_flag fixed bin defined (cobol_$seg_init_flag); 9 134 dcl cobol_$alter_flag fixed bin ext; 9 135 dcl alter_flag fixed bin defined (cobol_$alter_flag); 9 136 dcl cobol_$sect_eop_flag fixed bin ext; 9 137 dcl sect_eop_flag fixed bin defined (cobol_$sect_eop_flag); 9 138 dcl cobol_$para_eop_flag fixed bin ext; 9 139 dcl para_eop_flag fixed bin defined (cobol_$para_eop_flag); 9 140 dcl cobol_$priority_no fixed bin ext; 9 141 dcl priority_no fixed bin defined (cobol_$priority_no); 9 142 dcl cobol_$compile_count fixed bin ext; 9 143 dcl compile_count fixed bin defined (cobol_$compile_count); 9 144 dcl cobol_$ptr_assumption_ind fixed bin ext; 9 145 dcl ptr_assumption_ind fixed bin defined (cobol_$ptr_assumption_ind); 9 146 dcl cobol_$reg_assumption_ind fixed bin ext; 9 147 dcl reg_assumption_ind fixed bin defined (cobol_$reg_assumption_ind); 9 148 dcl cobol_$perform_para_index fixed bin ext; 9 149 dcl perform_para_index fixed bin defined (cobol_$perform_para_index); 9 150 dcl cobol_$perform_sect_index fixed bin ext; 9 151 dcl perform_sect_index fixed bin defined (cobol_$perform_sect_index); 9 152 dcl cobol_$alter_index fixed bin ext; 9 153 dcl alter_index fixed bin defined (cobol_$alter_index); 9 154 dcl cobol_$list_off fixed bin ext; 9 155 dcl list_off fixed bin defined (cobol_$list_off); 9 156 dcl cobol_$constant_offset fixed bin ext; 9 157 dcl constant_offset fixed bin defined (cobol_$constant_offset); 9 158 dcl cobol_$misc_max fixed bin ext; 9 159 dcl misc_max fixed bin defined (cobol_$misc_max); 9 160 dcl cobol_$pd_map_max fixed bin ext; 9 161 dcl pd_map_max fixed bin defined (cobol_$pd_map_max); 9 162 dcl cobol_$map_data_max fixed bin ext; 9 163 dcl map_data_max fixed bin defined (cobol_$map_data_max); 9 164 dcl cobol_$fixup_max fixed bin ext; 9 165 dcl fixup_max fixed bin defined (cobol_$fixup_max); 9 166 dcl cobol_$tag_table_max fixed bin ext; 9 167 dcl tag_table_max fixed bin defined (cobol_$tag_table_max); 9 168 dcl cobol_$temp_token_max fixed bin ext; 9 169 dcl temp_token_max fixed bin defined (cobol_$temp_token_max); 9 170 dcl cobol_$allo1_max fixed bin ext; 9 171 dcl allo1_max fixed bin defined (cobol_$allo1_max); 9 172 dcl cobol_$eln_max fixed bin ext; 9 173 dcl eln_max fixed bin defined (cobol_$eln_max); 9 174 dcl cobol_$debug_enable fixed bin ext; 9 175 dcl debug_enable fixed bin defined (cobol_$debug_enable); 9 176 dcl cobol_$non_source_offset fixed bin ext; 9 177 dcl non_source_offset fixed bin defined (cobol_$non_source_offset); 9 178 dcl cobol_$initval_flag fixed bin ext; 9 179 dcl initval_flag fixed bin defined (cobol_$initval_flag); 9 180 dcl cobol_$date_compiled_sw fixed bin ext; 9 181 dcl date_compiled_sw fixed bin defined (cobol_$date_compiled_sw); 9 182 dcl cobol_$include_cnt fixed bin ext; 9 183 dcl include_cnt fixed bin defined (cobol_$include_cnt); 9 184 dcl cobol_$fs_charcnt fixed bin ext; 9 185 dcl fs_charcnt fixed bin defined (cobol_$fs_charcnt); 9 186 dcl cobol_$ws_charcnt fixed bin ext; 9 187 dcl ws_charcnt fixed bin defined (cobol_$ws_charcnt); 9 188 dcl cobol_$coms_charcnt fixed bin ext; 9 189 dcl coms_charcnt fixed bin defined (cobol_$coms_charcnt); 9 190 dcl cobol_$ls_charcnt fixed bin ext; 9 191 dcl ls_charcnt fixed bin defined (cobol_$ls_charcnt); 9 192 dcl cobol_$cons_charcnt fixed bin ext; 9 193 dcl cons_charcnt fixed bin defined (cobol_$cons_charcnt); 9 194 dcl cobol_$value_cnt fixed bin ext; 9 195 dcl value_cnt fixed bin defined (cobol_$value_cnt); 9 196 dcl cobol_$cd_cnt fixed bin ext; 9 197 dcl cd_cnt fixed bin defined (cobol_$cd_cnt); 9 198 dcl cobol_$fs_wdoff fixed bin ext; 9 199 dcl fs_wdoff fixed bin defined (cobol_$fs_wdoff); 9 200 dcl cobol_$ws_wdoff fixed bin ext; 9 201 dcl ws_wdoff fixed bin defined (cobol_$ws_wdoff); 9 202 dcl cobol_$coms_wdoff fixed bin ext; 9 203 dcl coms_wdoff fixed bin defined (cobol_$coms_wdoff); 9 204 9 205 /* CHARACTER */ 9 206 dcl cobol_$scratch_dir char (168) aligned ext; 9 207 dcl scratch_dir char (168) aligned defined (cobol_$scratch_dir); /* -42- */ 9 208 dcl cobol_$obj_seg_name char (32) aligned ext; 9 209 dcl obj_seg_name char (32) aligned defined (cobol_$obj_seg_name); /* -8- */ 9 210 9 211 /* BIT */ 9 212 dcl cobol_$xref_bypass bit(1) aligned ext; 9 213 dcl xref_bypass bit(1) aligned defined (cobol_$xref_bypass); /* -1- */ 9 214 dcl cobol_$same_sort_merge_proc bit(1) aligned ext; 9 215 dcl same_sort_merge_proc bit(1) aligned defined (cobol_$same_sort_merge_proc); /* -1- */ 9 216 9 217 9 218 /* END INCLUDE FILE ... cobol_incl.pl1*/ 9 219 9 220 777 778 end cobol_string; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0832.3 cobol_string.pl1 >spec>install>MR12.3-1048>cobol_string.pl1 773 1 03/27/82 0439.8 cobol_type1.incl.pl1 >ldd>include>cobol_type1.incl.pl1 1-15 2 11/11/82 1712.8 cobol_TYPE1.incl.pl1 >ldd>include>cobol_TYPE1.incl.pl1 774 3 03/27/82 0439.8 cobol_type2.incl.pl1 >ldd>include>cobol_type2.incl.pl1 3-15 4 11/11/82 1712.8 cobol_TYPE2.incl.pl1 >ldd>include>cobol_TYPE2.incl.pl1 775 5 03/27/82 0439.8 cobol_type3.incl.pl1 >ldd>include>cobol_type3.incl.pl1 5-15 6 11/11/82 1712.8 cobol_TYPE3.incl.pl1 >ldd>include>cobol_TYPE3.incl.pl1 776 7 03/27/82 0439.9 cobol_type9.incl.pl1 >ldd>include>cobol_type9.incl.pl1 7-17 8 11/11/82 1712.7 cobol_TYPE9.incl.pl1 >ldd>include>cobol_TYPE9.incl.pl1 777 9 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. addr builtin function dcl 768 ref 353 366 373 373 392 392 398 398 415 421 453 492 492 492 492 534 534 549 549 568 603 631 635 645 645 665 665 665 665 675 675 685 685 698 698 698 698 706 706 711 711 716 716 721 721 739 739 747 747 751 751 addr_struct 000114 internal static structure level 1 unaligned dcl 173 set ref 492 492 645 645 665 665 698 698 adjust_and_test_x1_instr 000075 internal static bit(36) initial array packed unaligned dcl 144 set ref 398 398 adjust_length_instr 000041 internal static bit(36) initial array packed unaligned dcl 88 set ref 685 685 alphanum_lit based structure level 1 unaligned dcl 5-14 asa_instr 000000 constant bit(36) initial packed unaligned dcl 169 set ref 549 549 bypass_ovfl_instr 000032 internal static bit(36) initial array packed unaligned dcl 74 set ref 751 751 check_ovfl_instr 000034 internal static bit(36) initial array packed unaligned dcl 78 set ref 711 711 716 716 721 721 cobol_$next_tag 000220 external static fixed bin(17,0) dcl 9-128 set ref 283 285* 285 cobol_$text_wd_off 000216 external static fixed bin(17,0) dcl 9-90 set ref 399 400 686 722 733* 753 cobol_addr 000160 constant entry external dcl 257 ref 492 645 665 698 cobol_define_tag_nc 000214 constant entry external dcl 279 ref 733 cobol_emit 000162 constant entry external dcl 258 ref 392 398 534 549 654 675 685 706 711 716 721 739 747 751 cobol_get_size 000164 constant entry external dcl 259 ref 379 547 557 659 cobol_io_util$bin_to_t9dec 000202 constant entry external dcl 270 ref 740 cobol_io_util$move 000176 constant entry external dcl 267 ref 517 cobol_io_util$move_lit 000174 constant entry external dcl 265 ref 505 cobol_io_util$t9dec_to_bin 000200 constant entry external dcl 268 ref 397 cobol_make_tagref 000212 constant entry external dcl 278 ref 399 400 686 722 753 cobol_make_type3$type1 000172 constant entry external dcl 263 ref 417 455 570 cobol_make_type9$type2_3 000170 constant entry external dcl 261 ref 423 605 cobol_pointer_register$priority 000206 constant entry external dcl 274 ref 617 cobol_register$load 000210 constant entry external dcl 276 ref 373 cobol_reset_r$in_line 000204 constant entry external dcl 272 ref 758 cobol_set_pr 000166 constant entry external dcl 260 ref 369 622 data_name based structure level 1 unaligned dcl 7-16 dlen_off 000155 internal static fixed bin(17,0) initial dcl 208 set ref 659* dn_ptr 001026 automatic pointer dcl 253 set ref 316* 318 321 323 325 325 327 327 406* 408 408 412 415* 417* 423* 443* 446 450 453* 455* 461 461 464 559* 562 565 568* 570* 574 577 580 582 586 590 593 595 605* 611 611 611 613 dtp 10 based pointer array level 3 dcl 30 set ref 310 544 559 570* dtptr 001024 automatic pointer dcl 252 set ref 603* 605* 613* 643 659* 661 dtype9 000226 automatic structure level 1 unaligned dcl 223 set ref 603 endtag 000673 automatic fixed bin(17,0) dcl 230 set ref 283* 399* 400* 686* 722* 733* fill_char 000711 automatic char(1) packed unaligned dcl 241 set ref 436* 467* 473 477* 532 fixed builtin function dcl 768 ref 505 505 505 505 517 517 517 517 517 517 517 517 670 fixlen 000273 automatic fixed bin(17,0) array dcl 228 set ref 313* 323* 325* 327* 329* 335 338* 342 356* 432 434 446 459 484* 484 484 fixlen_mlr_instr 000010 internal static bit(36) initial array packed unaligned dcl 39 set ref 435* 490* 492 492 499 505 505 505 505 505 505 514 517 517 517 517 517 517 517 517 517 517 517 517 532* 534 534 from_len 000701 automatic fixed bin(17,0) dcl 234 set ref 434* 435 468 476 i 000674 automatic fixed bin(17,0) dcl 231 set ref 308* 310 312 313 316 321 323 325 327 329 335 338 339 342 343 343* 405* 406 417 429 432 434 439 439 442 484 485* 502 505 505 505 505 538 544 559 570 708* ic 000677 automatic fixed bin(17,0) dcl 232 set ref 386* 388* 392* 632* 636* 654* ic_mod 7 000114 internal static fixed bin(17,0) level 3 dcl 173 set ref 662* 667 item_length 16 based fixed bin(24,0) level 2 dcl 7-16 ref 288 297 323 611 611 j 000675 automatic fixed bin(17,0) dcl 231 set ref 471* 473* lit 001013 automatic bit(18) packed unaligned dcl 245 set ref 580* 593* 651 lit_size 5 based fixed bin(17,0) level 2 dcl 5-14 ref 325 461 505 505 505 505 590 593 595 literal 11 based char level 2 packed packed unaligned dcl 3-14 ref 464 580 litlen 000704 automatic fixed bin(17,0) dcl 235 set ref 459* 461 461 464 464 468 471 560* 582* 595* 600 626 629 move_completed 001016 automatic bit(1) packed unaligned dcl 248 set ref 494* 511* 524* 529 move_instr 000013 internal static bit(36) initial array packed unaligned dcl 45 set ref 698 698 702* 703* 706 706 n based fixed bin(17,0) level 2 dcl 30 ref 308 343 405 439 708 next 000676 automatic fixed bin(17,0) dcl 231 set ref 442* 443 446 455 459 484 484 485 nolimit 001014 automatic bit(1) packed unaligned dcl 246 set ref 290* 294* 379 386 549 682 716 730 null builtin function dcl 768 ref 303 310 383 392 392 398 398 399 399 400 400 492 492 534 534 544 549 549 642 645 645 654 654 663 665 665 675 675 685 685 686 686 696 698 698 706 706 711 711 711 716 716 721 721 722 722 736 739 739 747 747 751 751 753 753 numeric_lit based structure level 1 unaligned dcl 3-14 offset 24 based fixed bin(24,0) level 2 dcl 7-16 set ref 432* 432 op1 4 000114 internal static structure level 2 unaligned dcl 173 op2 12 000114 internal static structure level 2 unaligned dcl 173 ovfl_no 000707 automatic fixed bin(17,0) dcl 238 set ref 306* 308 339* 343* 439 538 places 10 based fixed bin(17,0) level 2 dcl 3-14 ref 327 464 577 580 582 pr 000133 internal static fixed bin(17,0) level 2 dcl 187 set ref 367* 620* pr2set 001012 automatic bit(1) packed unaligned dcl 244 set ref 427* 624* 692 pr_struct 000133 internal static structure level 1 unaligned dcl 187 set ref 366 pr_struct_ptr 001030 automatic pointer dcl 254 set ref 366* 369* 622* ptp 4 based pointer level 2 dcl 30 set ref 303 383 397* 711 736 740* ptr_offx4 000153 internal static fixed bin(17,0) initial dcl 205 set ref 397* 740* reg_struct 000142 internal static structure level 1 unaligned dcl 195 set ref 373 373 rlen 000706 automatic fixed bin(20,0) dcl 237 set ref 291* 295* 297* 303 335 338 343 rlen_off 000156 internal static fixed bin(17,0) initial dcl 210 set ref 379* rtp 2 based pointer level 2 dcl 30 set ref 288 295 297 354 369* 379* rtype9 000160 automatic structure level 1 unaligned dcl 220 set ref 353 s based structure level 1 unaligned dcl 30 scan_instr based bit(36) array packed unaligned dcl 51 set ref 649* 651* scan_instr_ptr 001020 automatic pointer dcl 250 set ref 631* 635* 645* 649 651 654* scan_loop_instr 000055 internal static bit(36) initial array packed unaligned dcl 112 set ref 665 665 670 671* 675 675 scd_instr 000023 internal static bit(36) initial array packed unaligned dcl 62 set ref 631 scm_instr 000016 internal static bit(36) initial array packed unaligned dcl 52 set ref 635 set_pointer_instr 000110 internal static bit(36) initial array packed unaligned dcl 165 set ref 739 739 set_x1_instr 000106 internal static bit(36) initial array packed unaligned dcl 161 set ref 390* 392 392 slen_off 000154 internal static fixed bin(17,0) initial dcl 207 set ref 557* sptr parameter pointer dcl 29 ref 26 288 295 297 303 308 310 316 343 354 369 379 383 397 405 406 417 439 443 455 502 505 505 505 505 544 559 570 708 711 736 740 744 753 stp 6 based pointer array level 3 dcl 30 set ref 316 406 417* 443 455* 502 505 505 505 505 stptr 001022 automatic pointer dcl 251 set ref 408* 421* 423* 433 547* 549 549 557* 622* 695 str 6 based structure array level 2 unaligned dcl 30 string 6 based char level 2 packed packed unaligned dcl 5-14 ref 461 505 505 593 stype9 000112 automatic structure level 1 unaligned dcl 217 set ref 421 substr builtin function dcl 768 set ref 390* 390 461* 461 464* 464 467 473 499 505 505 505 505 505 505 505 505 514 517 517 517 517 517 517 517 517 517 517 517 517 532* 580 593 649* 670 671* 671 702* tag 1 based fixed bin(17,0) level 2 dcl 30 set ref 744 753* temp 000700 automatic fixed bin(17,0) dcl 233 set ref 670* 671 temp_lit 000712 automatic char(256) packed unaligned dcl 242 set ref 461* 464* 467 473 to_len 000702 automatic fixed bin(17,0) dcl 234 set ref 434* 468* 476* 490 total_fixlen 000705 automatic fixed bin(17,0) dcl 236 set ref 286* 335 338 342* 342 343 390 tptr 12 000114 internal static pointer level 3 in structure "addr_struct" dcl 173 in procedure "cobol_string" set ref 355* 643* 663* 696* tptr 4 000114 internal static pointer level 3 in structure "addr_struct" dcl 173 in procedure "cobol_string" set ref 433* 642* 661* 695* tra_instr 000112 internal static bit(36) initial packed unaligned dcl 171 set ref 747 747 two_in_one 001015 automatic bit(1) packed unaligned dcl 247 set ref 437* 469* 471 478* 482 496 type 3 based fixed bin(17,0) level 2 dcl 7-16 ref 318 325 327 408 412 446 450 461 502 549 562 565 574 586 type3 000100 automatic structure level 1 unaligned dcl 214 set ref 415 453 568 type9_chars based char(148) dcl 226 set ref 354* 354 type9_ptr 001032 automatic pointer dcl 255 set ref 353* 354 355 432 432 unspec builtin function dcl 768 ref 390 435 490 532 580 593 671 variable_length 22(04) based bit(1) level 2 packed packed unaligned dcl 7-16 ref 295 321 549 611 varlen 000703 automatic fixed bin(17,0) dcl 235 set ref 560* 611* 626 629 639 varlen_no 000710 automatic fixed bin(17,0) dcl 239 set ref 306* 308 312* 321* 332 350 360* 362 429 429 747 what_reg 000142 internal static fixed bin(17,0) level 2 dcl 195 set ref 371* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addrel builtin function dcl 768 alit_ptr automatic pointer dcl 5-11 allo1_max defined fixed bin(17,0) dcl 9-171 allo1_ptr defined pointer dcl 9-67 alter_flag defined fixed bin(17,0) dcl 9-135 alter_index defined fixed bin(17,0) dcl 9-153 alter_list_ptr defined pointer dcl 9-39 atemp_off internal static fixed bin(17,0) initial dcl 206 binary builtin function dcl 768 cd_cnt defined fixed bin(17,0) dcl 9-197 cobol_$allo1_max external static fixed bin(17,0) dcl 9-170 cobol_$allo1_ptr external static pointer dcl 9-66 cobol_$alter_flag external static fixed bin(17,0) dcl 9-134 cobol_$alter_index external static fixed bin(17,0) dcl 9-152 cobol_$alter_list_ptr external static pointer dcl 9-38 cobol_$cd_cnt external static fixed bin(17,0) dcl 9-196 cobol_$cobol_data_wd_off external static fixed bin(17,0) dcl 9-118 cobol_$compile_count external static fixed bin(17,0) dcl 9-142 cobol_$coms_charcnt external static fixed bin(17,0) dcl 9-188 cobol_$coms_wdoff external static fixed bin(17,0) dcl 9-202 cobol_$con_end_ptr external static pointer dcl 9-10 cobol_$con_wd_off external static fixed bin(17,0) dcl 9-92 cobol_$cons_charcnt external static fixed bin(17,0) dcl 9-192 cobol_$constant_offset external static fixed bin(17,0) dcl 9-156 cobol_$data_init_flag external static fixed bin(17,0) dcl 9-130 cobol_$date_compiled_sw external static fixed bin(17,0) dcl 9-180 cobol_$debug_enable external static fixed bin(17,0) dcl 9-174 cobol_$def_base_ptr external static pointer dcl 9-12 cobol_$def_max external static fixed bin(17,0) dcl 9-96 cobol_$def_wd_off external static fixed bin(17,0) dcl 9-94 cobol_$diag_ptr external static pointer dcl 9-70 cobol_$eln_max external static fixed bin(17,0) dcl 9-172 cobol_$eln_ptr external static pointer dcl 9-68 cobol_$fixup_max external static fixed bin(17,0) dcl 9-164 cobol_$fixup_ptr external static pointer dcl 9-30 cobol_$fs_charcnt external static fixed bin(17,0) dcl 9-184 cobol_$fs_wdoff external static fixed bin(17,0) dcl 9-198 cobol_$include_cnt external static fixed bin(17,0) dcl 9-182 cobol_$include_info_ptr external static pointer dcl 9-86 cobol_$init_stack_off external static fixed bin(17,0) dcl 9-124 cobol_$initval_base_ptr external static pointer dcl 9-32 cobol_$initval_file_ptr external static pointer dcl 9-34 cobol_$initval_flag external static fixed bin(17,0) dcl 9-178 cobol_$link_base_ptr external static pointer dcl 9-14 cobol_$link_max external static fixed bin(17,0) dcl 9-100 cobol_$link_wd_off external static fixed bin(17,0) dcl 9-98 cobol_$list_off external static fixed bin(17,0) dcl 9-154 cobol_$list_ptr external static pointer dcl 9-64 cobol_$ls_charcnt external static fixed bin(17,0) dcl 9-190 cobol_$main_pcs_ptr external static pointer dcl 9-84 cobol_$map_data_max external static fixed bin(17,0) dcl 9-162 cobol_$map_data_ptr external static pointer dcl 9-54 cobol_$max_stack_off external static fixed bin(17,0) dcl 9-122 cobol_$minpral5_ptr external static pointer dcl 9-50 cobol_$misc_base_ptr external static pointer dcl 9-60 cobol_$misc_end_ptr external static pointer dcl 9-62 cobol_$misc_max external static fixed bin(17,0) dcl 9-158 cobol_$non_source_offset external static fixed bin(17,0) dcl 9-176 cobol_$ntbuf_ptr external static pointer dcl 9-82 cobol_$obj_seg_name external static char(32) dcl 9-208 cobol_$op_con_ptr external static pointer dcl 9-80 cobol_$para_eop_flag external static fixed bin(17,0) dcl 9-138 cobol_$pd_map_index external static fixed bin(17,0) dcl 9-116 cobol_$pd_map_max external static fixed bin(17,0) dcl 9-160 cobol_$pd_map_ptr external static pointer dcl 9-28 cobol_$pd_map_sw external static fixed bin(17,0) dcl 9-126 cobol_$perform_list_ptr external static pointer dcl 9-36 cobol_$perform_para_index external static fixed bin(17,0) dcl 9-148 cobol_$perform_sect_index external static fixed bin(17,0) dcl 9-150 cobol_$priority_no external static fixed bin(17,0) dcl 9-140 cobol_$ptr_assumption_ind external static fixed bin(17,0) dcl 9-144 cobol_$ptr_status_ptr external static pointer dcl 9-56 cobol_$reg_assumption_ind external static fixed bin(17,0) dcl 9-146 cobol_$reg_status_ptr external static pointer dcl 9-58 cobol_$reloc_def_base_ptr external static pointer dcl 9-20 cobol_$reloc_def_max external static fixed bin(24,0) dcl 9-108 cobol_$reloc_link_base_ptr external static pointer dcl 9-22 cobol_$reloc_link_max external static fixed bin(24,0) dcl 9-110 cobol_$reloc_sym_base_ptr external static pointer dcl 9-24 cobol_$reloc_sym_max external static fixed bin(24,0) dcl 9-112 cobol_$reloc_text_base_ptr external static pointer dcl 9-18 cobol_$reloc_text_max external static fixed bin(24,0) dcl 9-106 cobol_$reloc_work_base_ptr external static pointer dcl 9-26 cobol_$reloc_work_max external static fixed bin(24,0) dcl 9-114 cobol_$reswd_ptr external static pointer dcl 9-78 cobol_$same_sort_merge_proc external static bit(1) dcl 9-214 cobol_$scratch_dir external static char(168) dcl 9-206 cobol_$sect_eop_flag external static fixed bin(17,0) dcl 9-136 cobol_$seg_init_flag external static fixed bin(17,0) dcl 9-132 cobol_$seg_init_list_ptr external static pointer dcl 9-40 cobol_$stack_off external static fixed bin(17,0) dcl 9-120 cobol_$statement_info_ptr external static pointer dcl 9-76 cobol_$sym_base_ptr external static pointer dcl 9-16 cobol_$sym_max external static fixed bin(17,0) dcl 9-104 cobol_$sym_wd_off external static fixed bin(17,0) dcl 9-102 cobol_$tag_table_max external static fixed bin(17,0) dcl 9-166 cobol_$tag_table_ptr external static pointer dcl 9-52 cobol_$temp_token_area_ptr external static pointer dcl 9-42 cobol_$temp_token_max external static fixed bin(17,0) dcl 9-168 cobol_$temp_token_ptr external static pointer dcl 9-44 cobol_$text_base_ptr external static pointer dcl 9-8 cobol_$token_block1_ptr external static pointer dcl 9-46 cobol_$token_block2_ptr external static pointer dcl 9-48 cobol_$value_cnt external static fixed bin(17,0) dcl 9-194 cobol_$ws_charcnt external static fixed bin(17,0) dcl 9-186 cobol_$ws_wdoff external static fixed bin(17,0) dcl 9-200 cobol_$xref_bypass external static bit(1) dcl 9-212 cobol_$xref_chain_ptr external static pointer dcl 9-74 cobol_$xref_token_ptr external static pointer dcl 9-72 cobol_data_wd_off defined fixed bin(17,0) dcl 9-119 compile_count defined fixed bin(17,0) dcl 9-143 coms_charcnt defined fixed bin(17,0) dcl 9-189 coms_wdoff defined fixed bin(17,0) dcl 9-203 con_end_ptr defined pointer dcl 9-11 con_wd_off defined fixed bin(17,0) dcl 9-93 cons_charcnt defined fixed bin(17,0) dcl 9-193 constant_offset defined fixed bin(17,0) dcl 9-157 data_init_flag defined fixed bin(17,0) dcl 9-131 date_compiled_sw defined fixed bin(17,0) dcl 9-181 debug_enable defined fixed bin(17,0) dcl 9-175 def_base_ptr defined pointer dcl 9-13 def_max defined fixed bin(17,0) dcl 9-97 def_wd_off defined fixed bin(17,0) dcl 9-95 diag_ptr defined pointer dcl 9-71 eln_max defined fixed bin(17,0) dcl 9-173 eln_ptr defined pointer dcl 9-69 fixup_max defined fixed bin(17,0) dcl 9-165 fixup_ptr defined pointer dcl 9-31 fs_charcnt defined fixed bin(17,0) dcl 9-185 fs_wdoff defined fixed bin(17,0) dcl 9-199 include_cnt defined fixed bin(17,0) dcl 9-183 include_info_ptr defined pointer dcl 9-87 index builtin function dcl 768 init_stack_off defined fixed bin(17,0) dcl 9-125 initval_base_ptr defined pointer dcl 9-33 initval_file_ptr defined pointer dcl 9-35 initval_flag defined fixed bin(17,0) dcl 9-179 length builtin function dcl 768 link_base_ptr defined pointer dcl 9-15 link_max defined fixed bin(17,0) dcl 9-101 link_wd_off defined fixed bin(17,0) dcl 9-99 list_off defined fixed bin(17,0) dcl 9-155 list_ptr defined pointer dcl 9-65 ls_charcnt defined fixed bin(17,0) dcl 9-191 main_pcs_ptr defined pointer dcl 9-85 map_data_max defined fixed bin(17,0) dcl 9-163 map_data_ptr defined pointer dcl 9-55 max_stack_off defined fixed bin(17,0) dcl 9-123 minpral5_ptr defined pointer dcl 9-51 misc_base_ptr defined pointer dcl 9-61 misc_end_ptr defined pointer dcl 9-63 misc_max defined fixed bin(17,0) dcl 9-159 mod builtin function dcl 768 next_tag defined fixed bin(17,0) dcl 9-129 nlit_ptr automatic pointer dcl 3-11 non_source_offset defined fixed bin(17,0) dcl 9-177 ntbuf_ptr defined pointer dcl 9-83 obj_seg_name defined char(32) dcl 9-209 op_con_ptr defined pointer dcl 9-81 ovfl_off internal static fixed bin(17,0) initial dcl 211 ovfl_offx4 internal static fixed bin(17,0) initial dcl 212 para_eop_flag defined fixed bin(17,0) dcl 9-139 pd_map_index defined fixed bin(17,0) dcl 9-117 pd_map_max defined fixed bin(17,0) dcl 9-161 pd_map_ptr defined pointer dcl 9-29 pd_map_sw defined fixed bin(17,0) dcl 9-127 perform_list_ptr defined pointer dcl 9-37 perform_para_index defined fixed bin(17,0) dcl 9-149 perform_sect_index defined fixed bin(17,0) dcl 9-151 priority_no defined fixed bin(17,0) dcl 9-141 ptr_assumption_ind defined fixed bin(17,0) dcl 9-145 ptr_off internal static fixed bin(17,0) initial dcl 204 ptr_status_ptr defined pointer dcl 9-57 reg_assumption_ind defined fixed bin(17,0) dcl 9-147 reg_status_ptr defined pointer dcl 9-59 rel builtin function dcl 768 reloc_def_base_ptr defined pointer dcl 9-21 reloc_def_max defined fixed bin(24,0) dcl 9-109 reloc_link_base_ptr defined pointer dcl 9-23 reloc_link_max defined fixed bin(24,0) dcl 9-111 reloc_sym_base_ptr defined pointer dcl 9-25 reloc_sym_max defined fixed bin(24,0) dcl 9-113 reloc_text_base_ptr defined pointer dcl 9-19 reloc_text_max defined fixed bin(24,0) dcl 9-107 reloc_work_base_ptr defined pointer dcl 9-27 reloc_work_max defined fixed bin(24,0) dcl 9-115 reserved_word based structure level 1 unaligned dcl 1-14 reswd_ptr defined pointer dcl 9-79 rw_ptr automatic pointer dcl 1-11 same_sort_merge_proc defined bit(1) dcl 9-215 scratch_dir defined char(168) dcl 9-207 sect_eop_flag defined fixed bin(17,0) dcl 9-137 seg_init_flag defined fixed bin(17,0) dcl 9-133 seg_init_list_ptr defined pointer dcl 9-41 stack_off defined fixed bin(17,0) dcl 9-121 statement_info_ptr defined pointer dcl 9-77 string builtin function dcl 768 sym_base_ptr defined pointer dcl 9-17 sym_max defined fixed bin(17,0) dcl 9-105 sym_wd_off defined fixed bin(17,0) dcl 9-103 tag_table_max defined fixed bin(17,0) dcl 9-167 tag_table_ptr defined pointer dcl 9-53 temp_token_area_ptr defined pointer dcl 9-43 temp_token_max defined fixed bin(17,0) dcl 9-169 temp_token_ptr defined pointer dcl 9-45 text_base_ptr defined pointer dcl 9-9 text_wd_off defined fixed bin(17,0) dcl 9-91 token_block1_ptr defined pointer dcl 9-47 token_block2_ptr defined pointer dcl 9-49 value_cnt defined fixed bin(17,0) dcl 9-195 ws_charcnt defined fixed bin(17,0) dcl 9-187 ws_wdoff defined fixed bin(17,0) dcl 9-201 x1temp_off internal static fixed bin(17,0) initial dcl 209 xref_bypass defined bit(1) dcl 9-213 xref_chain_ptr defined pointer dcl 9-75 xref_token_ptr defined pointer dcl 9-73 NAMES DECLARED BY EXPLICIT CONTEXT. cobol_string 000015 constant entry external dcl 26 exit 002215 constant label dcl 760 start 000022 constant label dcl 283 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2454 2676 2217 2464 Length 3324 2217 222 412 234 150 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_string 591 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 fixlen_mlr_instr cobol_string 000013 move_instr cobol_string 000016 scm_instr cobol_string 000023 scd_instr cobol_string 000032 bypass_ovfl_instr cobol_string 000034 check_ovfl_instr cobol_string 000041 adjust_length_instr cobol_string 000055 scan_loop_instr cobol_string 000075 adjust_and_test_x1_instr cobol_string 000106 set_x1_instr cobol_string 000110 set_pointer_instr cobol_string 000112 tra_instr cobol_string 000114 addr_struct cobol_string 000133 pr_struct cobol_string 000142 reg_struct cobol_string 000153 ptr_offx4 cobol_string 000154 slen_off cobol_string 000155 dlen_off cobol_string 000156 rlen_off cobol_string STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_string 000100 type3 cobol_string 000112 stype9 cobol_string 000160 rtype9 cobol_string 000226 dtype9 cobol_string 000273 fixlen cobol_string 000673 endtag cobol_string 000674 i cobol_string 000675 j cobol_string 000676 next cobol_string 000677 ic cobol_string 000700 temp cobol_string 000701 from_len cobol_string 000702 to_len cobol_string 000703 varlen cobol_string 000704 litlen cobol_string 000705 total_fixlen cobol_string 000706 rlen cobol_string 000707 ovfl_no cobol_string 000710 varlen_no cobol_string 000711 fill_char cobol_string 000712 temp_lit cobol_string 001012 pr2set cobol_string 001013 lit cobol_string 001014 nolimit cobol_string 001015 two_in_one cobol_string 001016 move_completed cobol_string 001020 scan_instr_ptr cobol_string 001022 stptr cobol_string 001024 dtptr cobol_string 001026 dn_ptr cobol_string 001030 pr_struct_ptr cobol_string 001032 type9_ptr cobol_string THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_addr cobol_define_tag_nc cobol_emit cobol_get_size cobol_io_util$bin_to_t9dec cobol_io_util$move cobol_io_util$move_lit cobol_io_util$t9dec_to_bin cobol_make_tagref cobol_make_type3$type1 cobol_make_type9$type2_3 cobol_pointer_register$priority cobol_register$load cobol_reset_r$in_line cobol_set_pr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cobol_$next_tag cobol_$text_wd_off LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000012 283 000022 285 000024 286 000025 288 000026 290 000034 291 000036 292 000040 294 000041 295 000042 297 000047 303 000050 306 000056 308 000060 310 000073 312 000105 313 000107 314 000110 316 000111 318 000114 321 000117 323 000125 324 000130 325 000131 327 000137 329 000145 332 000150 335 000152 338 000157 339 000162 340 000164 342 000165 343 000167 348 000177 350 000201 353 000204 354 000206 355 000215 356 000217 359 000220 360 000221 362 000223 366 000225 367 000230 369 000232 371 000245 373 000252 375 000263 379 000300 383 000321 386 000330 388 000335 390 000337 392 000343 394 000361 397 000362 398 000377 399 000420 400 000440 405 000460 406 000471 408 000477 412 000505 415 000507 417 000511 421 000523 423 000525 427 000536 429 000537 432 000543 433 000547 434 000552 435 000555 436 000557 437 000561 439 000562 442 000571 443 000573 446 000577 450 000606 453 000610 455 000612 459 000623 461 000626 464 000637 467 000643 468 000646 469 000651 471 000653 473 000665 476 000671 477 000673 478 000675 480 000676 482 000700 484 000702 485 000706 490 000710 492 000713 494 000733 496 000734 499 000736 502 000744 505 000756 511 001022 512 001025 514 001026 517 001032 524 001076 529 001100 532 001102 534 001105 538 001125 540 001130 544 001131 547 001141 549 001156 554 001210 557 001211 559 001225 560 001233 562 001235 565 001240 568 001242 570 001244 574 001255 577 001261 580 001264 582 001267 584 001271 586 001272 590 001274 593 001277 595 001302 600 001304 603 001306 605 001310 608 001321 611 001322 613 001331 617 001332 620 001352 622 001355 624 001365 626 001367 629 001373 631 001401 632 001404 633 001406 635 001407 636 001412 639 001414 642 001416 643 001420 645 001422 647 001440 649 001441 651 001444 654 001447 656 001464 659 001465 661 001501 662 001504 663 001505 665 001507 667 001527 670 001533 671 001537 675 001542 682 001562 685 001564 686 001605 692 001625 695 001627 696 001632 698 001634 700 001654 702 001655 703 001662 706 001664 708 001705 711 001712 714 001740 716 001741 721 001765 722 002006 727 002026 730 002030 733 002032 736 002043 739 002052 740 002073 744 002113 747 002120 751 002144 753 002165 758 002210 760 002215 ----------------------------------------------------------- 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