COMPILATION LISTING OF SEGMENT cobol_io_util 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 0948.8 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_io_util.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 3/18/81 by FCH, [4.4-1], entries set_fsb_loc and fsb_key_loc added, BUG470 */ 23 /* Modified on 11/17/78 by FCH, [3.0-1], entry file_desc added */ 24 /*Modified since Version 3.0 */ 25 26 27 28 /* format: style3 */ 29 cobol_io_util: 30 proc; 31 32 dcl treg bit (3) aligned; /* register for target field */ 33 dcl toff fixed bin; /* char offset from treg of target field */ 34 dcl tlen fixed bin; /* number of characters of target */ 35 36 /*[3.0-1]*/ 37 dcl desc_off fixed bin (24), 38 keynum fixed bin; /*[3.0-1]*/ 39 dcl (mode, offset) fixed bin; 40 41 /*[4.4-1]*/ 42 declare 1 op_codes static internal, /*[4.4-1]*/ 43 2 epp1 bit (18) init ("011101001101000000"b), 44 /*[4.4-1]*/ 45 2 spri1 bit (18) init ("010101001101000000"b); 46 47 dcl 1 move_tokens static, 48 2 n fixed bin init (4), 49 2 fill fixed bin, 50 2 move_token_ptr (4) ptr init ((4) null ()); 51 dcl 1 type19 static, 52 2 size fixed bin init (38), 53 2 line fixed bin init (0), 54 2 column fixed bin init (0), 55 2 type fixed bin init (19), 56 2 verb fixed bin init (18), /* MOVE */ 57 2 e fixed bin init (1), 58 2 h fixed bin, 59 2 j fixed bin, 60 2 a bit (3), 61 2 b bit (1), 62 2 c bit (1), 63 2 d bit (2), 64 2 f bit (2), 65 2 g bit (2), 66 2 k bit (5); 67 dcl 1 type9 static, 68 2 header (4) fixed bin init (112, 0, 0, 9), 69 2 repl_ptr (2) ptr init ((2) null ()), 70 2 fill1 bit (108) init (""b), 71 2 file_key_info, 72 3 fb (6) fixed bin init (0, 0, 0, 4, 0, 0), 73 3 flags1 bit (36) init (""b), 74 3 flags2 bit (36) init (""b), 75 3 seg fixed bin init (1000), 76 3 off fixed bin, 77 2 fill2 (7) fixed bin init (0, 0, 0, 0, 0, 0, 0); 78 79 dcl 1 btd_struct static, 80 2 type fixed bin init (4), 81 2 operand_no fixed bin init (2), 82 2 lock fixed bin init (0), 83 2 operand1, 84 3 token_ptr ptr init (null ()), 85 3 send_receive fixed bin init (0), 86 3 ic_mod fixed bin, 87 3 size_sw fixed bin init (0), 88 2 operand2, 89 3 token_ptr ptr, 90 3 send_receive fixed bin init (1), 91 3 ic_mod fixed bin, 92 3 size_sw fixed bin init (0); 93 dcl 1 dtb_struct static, 94 2 type fixed bin init (4), 95 2 operand_no fixed bin init (2), 96 2 lock fixed bin init (0), 97 2 operand1, 98 3 token_ptr ptr, 99 3 send_receive fixed bin init (0), 100 3 ic_mod fixed bin, 101 3 size_sw fixed bin init (0), 102 2 operand2, 103 3 token_ptr ptr init (null ()), 104 3 send_receive fixed bin init (0), 105 3 ic_mod fixed bin, 106 3 size_sw fixed bin init (0); 107 dcl instr (32) bit (36); 108 109 /*[3.0-1]*/ 110 dcl descoff fixed bin; /*[3.0-1]*/ 111 dcl ndx bit (3), 112 addrs bit (15); 113 dcl litlen fixed bin; /* char length of sending literal */ 114 dcl litoff fixed bin; /* word offset from current instr to literal */ 115 dcl swdoff fixed bin; /* word offset in stack of sending field */ 116 dcl twdoff fixed bin; /* word offset in stack of target field */ 117 dcl tmodoff fixed bin; /* char offset from twdoff */ 118 dcl smodoff fixed bin; /* char offset from swdoff */ 119 dcl dmodoff fixed bin; /* delta smodoff and tmodoff */ 120 dcl sal fixed bin; /* 0 = sending field even word aligned */ 121 dcl tal fixed bin; /* 0 = target field even word aligned */ 122 dcl modlen fixed bin; 123 dcl i fixed bin; 124 dcl off fixed bin; 125 dcl ic fixed bin; 126 dcl lensw fixed bin; 127 dcl (tlensw, slensw) fixed bin; 128 dcl fromsw fixed bin; 129 dcl adjustsw fixed bin; 130 dcl boundary fixed bin; 131 dcl temp fixed bin; 132 dcl temp_off fixed bin; 133 dcl ttlen fixed bin; /* target length used by move_unaligned subtrn */ 134 dcl regsw fixed bin; /* 0=sending field has IC modification; 1=sreg or ssreg contains sending register */ 135 dcl curlen fixed bin; 136 dcl adj fixed bin; 137 dcl init_count fixed bin static init (0); 138 139 dcl ssreg bit (3) aligned; /* sending register used by move_aligned and move_unaligned subrtns */ 140 dcl talsw bit (1); 141 dcl give_up bit (1); 142 dcl temp_tag bit (6); 143 dcl temp_instr bit (12); 144 145 dcl instr_ptr ptr; 146 147 dcl nothing char (3) static options (constant) init (""); 148 149 /*************************************/ 150 move_direct: 151 entry (treg, toff, tlen, dudl, dval); 152 153 dcl dudl fixed bin; /* 0=du; 1=dl */ 154 dcl dval bit (18) aligned; /* direct value */ 155 156 start_move_direct: 157 twdoff = divide (toff, 4, 17, 0); 158 tmodoff = mod (toff, 4); 159 160 if tlen + tmodoff > 4 161 then return; /* error */ 162 163 if tlen = 4 & dval = ""b & tmodoff = 0 164 then do; 165 166 instr (1) = treg || substr (unspec (twdoff), 22, 15) || stz_; 167 ic = 1; 168 end; 169 else do; 170 171 instr (1) = dval || lda || dmod (dudl); 172 instr (2) = treg || substr (unspec (twdoff), 22, 15); 173 174 if tlen = 4 & tmodoff = 0 175 then substr (instr (2), 19, 18) = sta_; 176 else substr (instr (2), 19, 18) = stba_ || tagarray (tmodoff, tlen); 177 ic = 2; 178 end; 179 180 call cobol_reloc$cobol_emit (addr (instr), null (), ic); 181 182 return; 183 184 185 /*************************************/ 186 move_lit: 187 entry (treg, toff, tlen, lit); 188 189 dcl lit char (*); /* sending literal */ 190 191 start_move_lit: 192 ic = 0; 193 litlen = length (lit); 194 twdoff = divide (toff, 4, 17, 0); 195 tal = mod (twdoff, 2); 196 smodoff, tmodoff = mod (toff, 4); 197 198 if litlen > tlen 199 then litlen = tlen; /* take care of truncation */ 200 /*-05/15/76-*/ 201 202 if tlen = litlen & tlen <= 2 203 then do; 204 205 ic = 2; 206 fromsw = divide (tmodoff, 2, 17, 0); /* fix bug */ 207 /*-05/15/76-*/ 208 adjustsw = mod (tmodoff, 2); 209 instr (1) = unspec (lit); 210 substr (instr (1), 19, 18) = lda || dmod (fromsw); 211 212 if tlen = 1 213 then if adjustsw ^= 0 214 then substr (instr (1), 1, 18) = (9)"0"b || unspec (lit); 215 else ; 216 else if adjustsw ^= 0 217 then do; 218 219 instr (2) = "000000000000001001"b || rs (fromsw); 220 ic = 3; 221 end; 222 223 instr (ic) = treg || substr (unspec (twdoff), 22, 15) || stba_ || tagarray (tmodoff, tlen); 224 225 if fromsw = 1 & adjustsw = 1 & tlen = 2 226 then do; 227 228 ic = ic + 1; 229 temp = twdoff + 1; 230 instr (ic) = treg || substr (unspec (temp), 22, 15) || stbq_ || "100000"b; 231 232 end; 233 end; 234 else if tmodoff = 0 & tlen = 4 & lit = "" 235 then do; 236 237 ic = 1; 238 instr (1) = treg || substr (unspec (twdoff), 22, 15) || stz_; 239 end; 240 else do; 241 242 if tlen = litlen & tlen + tmodoff <= max_noshift_chars (tal) 243 then do; 244 245 temp = tlen + tmodoff; 246 if temp > 8 247 then do; 248 sal = tal; 249 boundary = 2 + tal; 250 end; 251 else if temp > 4 252 then do; 253 sal = 0; 254 boundary = 2; 255 end; 256 else do; 257 sal = 1; 258 boundary = 1; 259 end; 260 261 call cobol_pool$search_op_byte (lit, boundary, litoff, regsw, smodoff); 262 263 if regsw = 0 264 then litoff = cobol_$text_wd_off + litoff; 265 else do; 266 ssreg = "000"b; 267 swdoff = litoff; /*-06/17/76-*/ 268 end; 269 270 call move_aligned; 271 272 end; 273 else do; 274 275 call cobol_pool$search_op (lit, 4, litoff, regsw); 276 277 if regsw = 0 278 then do; /* IC modification */ 279 280 temp = mod (litoff, 4); 281 litoff = -(cobol_$text_wd_off + divide (litoff, 4, 17, 0)); 282 instr (1) = mlr_ic_to_reg; 283 instr (2) = 284 substr (unspec (litoff), 19, 18) || substr (unspec (temp), 35, 2) 285 || substr (unspec (litlen), 21, 16); 286 end; 287 else do; /* PR0 Register modification */ 288 instr (1) = mlr_reg_to_reg; 289 instr (2) = 290 "000"b || substr (unspec (litoff), 20, 17) 291 || substr (unspec (litlen), 21, 16); 292 end; 293 instr (3) = 294 treg || substr (unspec (twdoff), 22, 15) || substr (unspec (tmodoff), 35, 2) 295 || substr (unspec (tlen), 21, 16); 296 ic = 3; 297 298 end; 299 end; 300 301 call cobol_reloc$cobol_emit (addr (instr), null (), ic); 302 303 return; 304 305 306 /*************************************/ 307 move: 308 entry (treg, toff, tlen, sreg, soff, slen); 309 310 dcl sreg bit (3) aligned; /* register for sending field */ 311 dcl soff fixed bin; /* char offset from sreg of sending field */ 312 dcl slen fixed bin; /* char length of sending field */ 313 314 start_move: 315 ic = 0; 316 swdoff = divide (soff, 4, 17, 0); 317 sal = mod (swdoff, 2); 318 smodoff = mod (soff, 4); 319 twdoff = divide (toff, 4, 17, 0); 320 tal = mod (twdoff, 2); 321 tmodoff = mod (toff, 4); 322 323 if slen > tlen 324 then slen = tlen; /* take care of truncation */ 325 /*-05/15/76-*/ 326 327 give_up = "1"b; /* be pessimistic */ 328 329 if tlen = slen 330 then do; 331 332 regsw = 1; 333 ssreg = sreg; 334 temp = tal + sal; /* 0=both even word aligned;2=both odd word aligned */ 335 336 if tmodoff = smodoff 337 then do; /* no shift required */ 338 339 if tlen + tmodoff <= max_noshift_chars (temp) 340 then do; 341 give_up = "0"b; 342 call move_aligned; 343 344 end; 345 346 end; 347 else if tlen + max (tmodoff, smodoff) <= max_shift_chars (temp) 348 then do; 349 350 give_up = "0"b; 351 curlen = tlen; 352 353 do while (curlen > 0); 354 temp_off = max (smodoff, tmodoff); 355 temp = 8 - temp_off; 356 if sal ^= 0 357 then if curlen > temp 358 then temp = 4 - temp_off; 359 ttlen = min (temp, curlen); 360 call move_unaligned; 361 temp = smodoff + ttlen; 362 swdoff = swdoff + divide (temp, 4, 17, 0); 363 sal = mod (swdoff, 2); 364 smodoff = mod (temp, 4); 365 temp = tmodoff + ttlen; 366 twdoff = twdoff + divide (temp, 4, 17, 0); 367 tal = mod (twdoff, 2); 368 tmodoff = mod (temp, 4); 369 curlen = curlen - ttlen; 370 371 end; 372 end; 373 end; 374 375 if give_up 376 then do; /* oh well */ 377 instr (1) = mlr_reg_to_reg; 378 instr (2) = 379 sreg || substr (unspec (swdoff), 22, 15) || substr (unspec (smodoff), 35, 2) 380 || substr (unspec (slen), 21, 16); 381 instr (3) = 382 treg || substr (unspec (twdoff), 22, 15) || substr (unspec (tmodoff), 35, 2) 383 || substr (unspec (tlen), 21, 16); 384 ic = 3; 385 end; 386 387 call cobol_reloc$cobol_emit (addr (instr), null (), ic); 388 389 return; 390 391 392 /*************************************/ 393 fixed_add: 394 entry (treg, toff, tlen, sreg, soff); 395 396 if tlen ^= 0 397 then do; /* tlen contains value */ 398 temp = abs (tlen); 399 instr (1) = substr (unspec (temp), 19, 18) || lda || dmod (1); 400 end; 401 else do; /* value to be added is at sreg|soff */ 402 temp = soff * 4; 403 instr (1) = sreg || substr (unspec (temp), 22, 15) || ld_ (0); 404 end; 405 406 if tlen < 0 407 then instr (2) = treg || substr (unspec (toff), 20, 15) || ssa_; 408 else instr (2) = treg || substr (unspec (toff), 20, 15) || asa_; 409 410 call cobol_reloc$cobol_emit (addr (instr), null (), 2); 411 412 return; 413 414 415 /*************************************/ 416 dec_add: 417 entry (treg, toff, tlen, lit); 418 419 litlen = length (lit); 420 421 call cobol_pool (lit, 2, litoff); 422 423 litoff = -(cobol_$text_wd_off + litoff); 424 instr (1) = ad2d_ic_to_reg; 425 instr (2) = substr (unspec (litoff), 19, 18) || "000011000000"b || substr (unspec (litlen), 31, 6); 426 instr (3) = treg || substr (unspec (toff), 20, 17) || "0011000000"b || substr (unspec (tlen), 31, 6); 427 428 call cobol_reloc$cobol_emit (addr (instr), null (), 3); 429 430 return; 431 432 433 /*************************************/ 434 dec_to_bin: 435 entry (treg, toff, tlen, sreg, soff, slen); 436 437 instr (1) = dtb_instr; 438 instr (2) = sreg || substr (unspec (soff), 20, 17) || "0011000000"b || substr (unspec (slen), 31, 6); 439 instr (3) = treg || substr (unspec (toff), 20, 27) || (10)"0"b || substr (unspec (tlen), 31, 6); 440 441 call cobol_reloc$cobol_emit (addr (instr), null (), 3); 442 443 return; 444 445 446 /*************************************/ 447 bin_to_dec: 448 entry (treg, toff, tlen, sreg, soff, slen); 449 450 instr (1) = btd_instr; 451 instr (2) = sreg || substr (unspec (soff), 20, 17) || (10)"0"b || substr (unspec (slen), 31, 6); 452 instr (3) = treg || substr (unspec (toff), 20, 17) || "0011000000"b || substr (unspec (tlen), 31, 6); 453 454 call cobol_reloc$cobol_emit (addr (instr), null (), 3); 455 456 return; 457 458 459 /*************************************/ 460 t9dec_to_bin: 461 entry (breg, boff, dptr); 462 463 dcl breg bit (3) aligned; /* register of the binary 4 byte data */ 464 dcl boff fixed bin aligned; /* character offset of the binary data */ 465 dcl dptr ptr; /* pts to type 9 token for unsigned decimal data */ 466 467 /* instr(1) = dtb_instr; 468*/* instr(2) = (20)"0"b||"0011000000"b||(6)"0"b; /* to be filled by cobol_addr */ 469 /* instr(3) = breg||substr(unspec(boff),20,17)||"0000000000000100"b; 470*/* dtb_struct.operand1.token_ptr = dptr; 471*/* instr_ptr = addr(instr); 472*/* call cobol_addr(addr(dtb_struct),instr_ptr,null()); 473*/* call cobol_reloc$cobol_emit(instr_ptr,null(),3); 474**/ 475 if init_count ^= cobol_$compile_count 476 then do; 477 move_token_ptr (4) = addr (type19); 478 call cobol_make_type9$long_bin (addr (type9), 0, 0); 479 /* segno and offset filled in later */ 480 init_count = cobol_$compile_count; 481 end; 482 483 type9.seg = 5000 + fixed (breg, 3); 484 type9.off = boff; 485 move_token_ptr (2) = dptr; 486 move_token_ptr (3) = addr (type9); 487 488 call cobol_move_gen (addr (move_tokens)); 489 490 return; 491 492 493 /*************************************/ 494 bin_to_t9dec: 495 entry (breg, boff, dptr); 496 497 /* instr(1) = btd_instr; 498*/* instr(2) = breg||substr(unspec(boff),20,27)||"000100"b; 499*/* instr(3) = (20)"0"b||"0011000000"b||(6)"0"b; /* to be filled by cobol_addr */ 500 /* btd_struct.operand2.token_ptr = dptr; 501*/* instr_ptr = addr(instr); 502*/* call cobol_addr(addr(btd_struct),instr_ptr,null()); 503*/* call cobol_reloc$cobol_emit(instr_ptr,null(),3); 504**/ 505 506 if init_count ^= cobol_$compile_count 507 then do; 508 move_token_ptr (4) = addr (type19); 509 510 call cobol_make_type9$long_bin (addr (type9), 0, 0); 511 /* segno and offset filled in later */ 512 513 init_count = cobol_$compile_count; 514 end; 515 516 type9.seg = 5000 + fixed (breg, 3); 517 type9.off = boff; 518 move_token_ptr (2) = addr (type9); 519 move_token_ptr (3) = dptr; 520 521 call cobol_move_gen (addr (move_tokens)); 522 523 return; 524 525 526 /*************************************/ 527 bypass_error: 528 entry (tra_tag, def_tag); 529 530 dcl tra_tag fixed bin; /* tagno which to transfer to */ 531 dcl def_tag fixed bin; /* tagno which to define */ 532 533 call cobol_reloc$cobol_emit (addr (tra), null (), 1); 534 535 call cobol_define_tag (def_tag); 536 537 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 538 539 return; 540 541 542 /*************************************/ 543 bypass_readkey: 544 entry (tra_tag); 545 546 call cobol_reloc$cobol_emit (addr (bypass_readkey_instr), null (), 4); 547 548 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 549 550 return; 551 552 553 /*************************************/ 554 bypass_seqerror: 555 entry (tra_tag); 556 557 call cobol_reloc$cobol_emit (addr (bypass_seqerror_instr), null (), 2); 558 559 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 560 561 return; 562 563 564 /*************************************/ 565 bypass_mode_error: 566 entry (tra_tag, mode_bits); 567 568 dcl mode_bits bit (2) aligned; 569 570 substr (bypass_mode_error_instr (3), 13, 2) = mode_bits; 571 572 call cobol_reloc$cobol_emit (addr (bypass_mode_error_instr), null (), 4); 573 574 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 575 576 return; 577 578 579 /*************************************/ 580 compare_word: 581 entry (tra_tag, creg1, coff1, creg2, coff2, eqne); 582 583 dcl creg1 bit (3) aligned; 584 dcl coff1 fixed bin; 585 dcl creg2 bit (3) aligned; 586 dcl coff2 fixed bin; 587 dcl eqne fixed bin; /* 0 - tra on equal; 1 - tra on ^equal */ 588 589 instr (1) = creg1 || substr (unspec (coff1), 20, 15) || lda_; 590 instr (2) = creg2 || substr (unspec (coff2), 20, 15) || cmpa_; 591 instr (3) = tze_tnz (eqne); 592 call cobol_reloc$cobol_emit (addr (instr), null (), 3); 593 594 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 595 596 return; 597 598 599 /****************************************/ 600 compare_zero_word: 601 entry (tra_tag, creg1, coff1, creg2, coff2, eqne); 602 603 /* creg2 and coff2 are not used - compare made to a single word equal to zero */ 604 605 instr (1) = creg1 || substr (unspec (coff1), 20, 15) || szn_; 606 instr (2) = tze_tnz (eqne); 607 608 call cobol_reloc$cobol_emit (addr (instr), null (), 2); 609 610 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 611 612 return; 613 614 615 /*************************************/ 616 compare_varying: 617 entry (tra_tag, creg1, coff1, creg2, coff2, eqne); 618 619 temp = divide (coff1, 4, 17, 0) - 1; 620 instr (1) = creg1 || substr (unspec (temp), 22, 15) || lda_; 621 temp = divide (coff2, 4, 17, 0) - 1; 622 instr (2) = creg2 || substr (unspec (temp), 22, 15) || ldq_; 623 instr (3) = cmpc_instr; 624 instr (4) = creg1 || substr (unspec (coff1), 20, 17) || "0000000000000101"b; 625 instr (5) = creg2 || substr (unspec (coff2), 20, 17) || "0000000000000110"b; 626 instr (6) = tze_tnz (eqne); 627 628 call cobol_reloc$cobol_emit (addr (instr), null (), 6); 629 630 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 631 632 return; 633 634 635 /*************************************/ 636 compare_key: 637 entry (tra_tag, sptr); 638 639 dcl sptr ptr; /* ptr to type9 token for alpha-numeric data */ 640 641 instr (1) = "001000000000000110"b || lda_; 642 instr_ptr = addr (instr); 643 644 call cobol_reloc$cobol_emit (instr_ptr, null (), 1); 645 646 instr (1) = cmpc_instr; 647 instr (2) = ""b; 648 instr (3) = "001000000000000111000000000000000101"b; 649 instr (4) = tze_tnz (0); 650 dtb_struct.operand1.token_ptr = sptr; 651 652 call cobol_addr (addr (dtb_struct), instr_ptr, null ()); 653 654 substr (instr (1), 1, 9) = "001111111"b; /* pad character */ 655 656 call cobol_reloc$cobol_emit (instr_ptr, null (), 4); 657 658 call cobol_make_tagref (tra_tag, cobol_$text_wd_off - 1, null ()); 659 660 return; 661 662 663 /*************************************/ 664 move_from_varlen: 665 entry (lreg, loff, dptr, sreg, soff); 666 667 dcl lreg bit (3) aligned; /* register for length */ 668 dcl loff fixed bin; /* wd offset for length (fixed bin) */ 669 670 instr (1) = lreg || substr (unspec (loff), 20, 15) || lda_; 671 instr (2) = "000000000000000001"b || sba_dlmod; 672 instr (3) = mlr_reg_to_reg; 673 instr (4) = sreg || substr (unspec (soff), 20, 17) || "0000000000000101"b; 674 instr (5) = ""b; 675 btd_struct.operand2.token_ptr = dptr; 676 677 call cobol_addr (addr (btd_struct), addr (instr (3)), null ()); 678 679 substr (instr (3), 1, 9) = "000100000"b; /* blank fill */ 680 substr (instr (3), 31, 1) = "1"b; /* length in a reg */ 681 682 call cobol_reloc$cobol_emit (addr (instr), null (), 5); 683 684 return; 685 686 /****************************************/ 687 688 /*[3.0-1]*/ 689 690 file_desc: 691 entry (desc_off); /*[3.0-1]*/ 692 /* epp7 OFFSET,ic,du */ 693 694 /*[3.0-1]*/ 695 descoff = -(cobol_$text_wd_off + desc_off); 696 697 /*[3.0-1]*/ 698 ic = 1; /*[3.0-1]*/ 699 instr (1) = substr (unspec (descoff), 19, 18) || epp7_ic_du; 700 701 /*[3.0-1]*/ 702 call cobol_reloc$cobol_emit (addr (instr), null (), ic); 703 704 /*[3.0-1]*/ 705 return; 706 707 set_fsb_loc: 708 entry; 709 710 /*[4.4-1]*/ 711 ndx = "110"b; /*[4.4-1]*/ 712 addrs = "000000001010110"b; 713 714 /*[4.4-1]*/ 715 call emit_instr (op_codes.spri1); /* spri1 pr6|86 */ 716 717 /*[4.4-1]*/ 718 return; 719 720 key_num: 721 entry (keynum); /* epp2 KEY_NUMBER,du */ 722 723 /*[3.0-1]*/ 724 ic = 1; /*[3.0-1]*/ 725 instr (1) = substr (unspec (keynum), 19, 18) || lda_dl; 726 727 /*[3.0-1]*/ 728 call cobol_reloc$cobol_emit (addr (instr), null (), ic); 729 730 /*[3.0-1]*/ 731 return; 732 733 fsb_key_loc: 734 entry (offset); 735 736 /*[4.4-1]*/ 737 ndx = "001"b; /*[4.4-1]*/ 738 addrs = substr (unspec (offset), 22, 15); 739 740 /*[4.4-1]*/ 741 call emit_instr (op_codes.epp1); /* epp1 pr1|offset */ 742 743 /*[4.4-1]*/ 744 return; 745 746 747 key_loc: 748 entry (mode, offset); 749 750 /*[3.1-1]*/ 751 if mode = 1 /*[3.0-1]*/ 752 then do; 753 ndx = "110"b; /* epp1 p6|offset */ 754 /*[3.0-1]*/ 755 addrs = substr (unspec (offset), 22, 15); 756 /*[3.0-1]*/ 757 end; /*[3.0-1]*/ 758 else do; 759 ndx = "001"b; /* epp1 pr1|6 */ 760 /*[3.0-1]*/ 761 addrs = "000000000000110"b; /*[3.0-1]*/ 762 end; 763 764 /*[4.4-1]*/ 765 call emit_instr (op_codes.epp1); 766 767 /*[4.4-1]*/ 768 return; 769 770 emit_instr: 771 proc (op); 772 773 /*[4.4-1]*/ 774 declare op bit (18); 775 776 /*[3.0-1]*/ 777 ic = 1; /*[3.0-1]*/ 778 instr (1) = ndx || addrs || op; /*[3.0-1]*/ 779 call cobol_reloc$cobol_emit (addr (instr), null (), ic); 780 781 /*[4.4-1]*/ 782 end; 783 784 785 /*************************************/ 786 /* INTERNAL PROCEDURES */ 787 /*************************************/ 788 move_aligned: 789 proc; /* move x words where both operands start at same byte offset */ 790 791 adj = 0; 792 793 if tmodoff > 0 794 then do; /* not word aligned */ 795 talsw = "0"b; 796 temp = 8 - tmodoff; 797 798 if tal ^= 0 799 then if tlen > temp 800 then if tlen + tmodoff >= 8 801 then do; 802 temp = 4 - tmodoff; 803 talsw = "1"b; 804 end; 805 806 ttlen = min (temp, tlen); 807 808 call move_unaligned; 809 810 if talsw 811 then do; 812 tal = 0; 813 if sal = 0 814 then sal = 1; 815 else sal = 0; 816 end; 817 818 819 adj = adj + ttlen; 820 end; 821 822 if tlen - adj >= 4 & tal ^= 0 823 then do; /* get started on an even word boundary */ 824 off = divide (adj + 3, 4, 17, 0); 825 tal = 0; 826 827 if sal = 0 828 then sal = 1; 829 else sal = 0; 830 831 ic = ic + 1; 832 833 if regsw = 0 834 then do; 835 temp = -litoff + off - ic + 1; 836 instr (ic) = substr (unspec (temp), 19, 18) || lda_icmod; 837 end; 838 839 else do; 840 temp = swdoff + off; 841 instr (ic) = ssreg || substr (unspec (temp), 22, 15) || lda_; 842 end; 843 844 ic = ic + 1; 845 temp = twdoff + off; 846 instr (ic) = treg || substr (unspec (temp), 22, 15) || sta_; 847 adj = adj + 4; 848 end; 849 850 do i = 0 to tlen - adj - 8 by 8; 851 ic = ic + 1; 852 off = divide (i + tmodoff + adj, 4, 17, 0); 853 854 if regsw = 0 855 then do; 856 temp = -litoff + off - ic + 1; 857 substr (instr (ic), 1, 18) = substr (unspec (temp), 19, 18); 858 859 if sal = 0 860 then substr (instr (ic), 19, 18) = ldaq_icmod; 861 else do; /* shouldn't happen (in the current implementation) */ 862 substr (instr (ic), 19, 18) = lda_icmod; 863 ic = ic + 1; 864 instr (ic) = substr (unspec (temp), 19, 18) || ldq_icmod; 865 end; 866 end; 867 else do; 868 temp = swdoff + off; 869 870 if sal = 0 871 then instr (ic) = ssreg || substr (unspec (temp), 22, 15) || ldaq_; 872 else do; 873 instr (ic) = ssreg || substr (unspec (temp), 22, 15) || lda_; 874 ic = ic + 1; 875 temp = temp + 1; 876 instr (ic) = ssreg || substr (unspec (temp), 22, 15) || ldq_; 877 end; 878 end; 879 880 ic = ic + 1; 881 temp = twdoff + off; 882 883 if tal = 0 884 then instr (ic) = treg || substr (unspec (temp), 22, 15) || staq_; 885 else do; 886 instr (ic) = treg || substr (unspec (temp), 22, 15) || sta_; 887 ic = ic + 1; 888 temp = temp + 1; 889 instr (ic) = treg || substr (unspec (temp), 22, 15) || stq_; 890 end; 891 end; 892 893 off = divide (tlen - adj, 8, 17, 0) * 2 + divide (adj + 3, 4, 17, 0); 894 modlen = mod (tlen - adj, 8); 895 896 if modlen > 0 897 then do; 898 ic = ic + 1; 899 900 if modlen > 4 901 then lensw = 1; 902 else lensw = 0; 903 904 if regsw = 0 905 then do; 906 temp = -litoff + off - ic + 1; 907 substr (instr (ic), 1, 18) = substr (unspec (temp), 19, 18); 908 909 if sal = 0 910 then substr (instr (ic), 19, 18) = ld_icmod (lensw); 911 else do; 912 substr (instr (ic), 19, 18) = lda_icmod; 913 if lensw ^= 0 914 then do; 915 ic = ic + 1; 916 instr (ic) = substr (unspec (temp), 19, 18) || ldq_icmod; 917 end; 918 end; 919 end; 920 else do; 921 temp = swdoff + off; 922 instr (ic) = ssreg || substr (unspec (temp), 22, 15); 923 924 if sal = 0 925 then substr (instr (ic), 19, 18) = ld_ (lensw); 926 else do; 927 substr (instr (ic), 19, 18) = lda_; 928 929 if lensw ^= 0 930 then do; 931 ic = ic + 1; 932 temp = temp + 1; 933 instr (ic) = ssreg || substr (unspec (temp), 22, 15) || ldq_; 934 end; 935 end; 936 end; 937 938 ic = ic + 1; 939 temp = twdoff + off; 940 instr (ic) = treg || substr (unspec (temp), 22, 15); 941 942 if modlen = 4 943 then substr (instr (ic), 19, 18) = sta_; 944 else do; 945 946 if modlen < 4 947 then substr (instr (ic), 19, 18) = stba_ || tagarray (0, modlen); 948 else do; 949 substr (instr (ic), 19, 18) = sta_; 950 ic = ic + 1; 951 temp = temp + 1; 952 instr (ic) = 953 treg || substr (unspec (temp), 22, 15) || stbq_ || tagarray (0, modlen - 4); 954 end; 955 end; 956 end; 957 end move_aligned; 958 959 960 move_unaligned: 961 proc; /* move up to one word where operands do not start at same byte offset */ 962 963 if ttlen <= 4 - smodoff 964 then slensw = 0; /* fix bug */ 965 /*-05/15/76-*/ 966 else slensw = 1; 967 968 if ttlen <= 4 - tmodoff 969 then tlensw = 0; 970 else tlensw = 1; 971 972 if slensw = 1 | tlensw = 1 973 then lensw = 1; 974 else lensw = 0; 975 976 ic = ic + 1; 977 978 if regsw = 0 979 then do; 980 temp = -litoff - ic + 1; 981 substr (instr (ic), 1, 18) = substr (unspec (temp), 19, 18); 982 983 if sal = 0 984 then substr (instr (ic), 19, 18) = ld_icmod (slensw); 985 else do; 986 substr (instr (ic), 19, 18) = lda_icmod; 987 if slensw ^= 0 988 then do; 989 ic = ic + 1; 990 instr (ic) = substr (unspec (temp), 19, 18) || ldq_icmod; 991 end; 992 end; 993 end; 994 else do; 995 substr (instr (ic), 1, 18) = ssreg || substr (unspec (swdoff), 22, 15); 996 997 if sal = 0 998 then substr (instr (ic), 19, 18) = ld_ (slensw); 999 else do; 1000 substr (instr (ic), 19, 18) = lda_; 1001 1002 if slensw ^= 0 1003 then do; 1004 ic = ic + 1; 1005 temp = swdoff + 1; 1006 instr (ic) = ssreg || substr (unspec (temp), 22, 15) || ldq_; 1007 end; 1008 end; 1009 end; 1010 dmodoff = tmodoff - smodoff; 1011 1012 if dmodoff ^= 0 1013 then do; 1014 ic = ic + 1; 1015 if dmodoff > 0 1016 then do; 1017 temp = 9 * dmodoff; 1018 instr (ic) = substr (unspec (temp), 19, 18) || rs (lensw); 1019 end; 1020 else do; 1021 temp = -9 * dmodoff; 1022 instr (ic) = substr (unspec (temp), 19, 18) || ls (lensw); 1023 end; 1024 end; 1025 ic = ic + 1; 1026 temp_tag = tagarray (tmodoff, ttlen); 1027 1028 if temp_tag = ""b 1029 then temp_instr = sta_; 1030 else temp_instr = stba_; 1031 1032 instr (ic) = treg || substr (unspec (twdoff), 22, 15) || temp_instr || temp_tag; 1033 1034 if tlensw ^= 0 1035 then do; 1036 ic = ic + 1; 1037 i = ttlen + tmodoff - 4; 1038 temp = twdoff + 1; 1039 instr (ic) = treg || substr (unspec (temp), 22, 15); 1040 if i = 4 1041 then substr (instr (ic), 19, 18) = stq_; 1042 else substr (instr (ic), 19, 18) = stbq_ || tagarray (0, i); 1043 end; 1044 1045 return; 1046 end move_unaligned; 1047 1048 1 1 1 2 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 1 3 /* TIMING DATA (based on average instruction execution times for the 6070/80 processor non-interlaced) */ 1 4 /* 1 5*DAI = double-word alignment is identical, i.e. both operands start on either an even or odd numbered word 1 6*BAI = byte alignment is identical, i.e. both operands have the same byte offset within the word (no shift required) 1 7*Number of words moved EIS(MLR) NON-EIS 1 8* DAI&BAI ^DAI&BAI DAI&^BAI ^DAI&^BAI 1 9* 1 10*1 (or 2 even word aligned) 4.0 1.7 2.4 2.8 3_._5_ (1) 1 11*3 (or 4 even word aligned) 6.3 3.4 4.8 5_._6_ (2) 6.3 1 12*5 (or 6 even word aligned) 7.3 5.1 7_._2_ (3) 8.4 9.1 1 13*7 (or 8 even word aligned) 8.3 6.8 9.6 11.1 11.8 1 14*9 (or 10 even word aligned) 9.3 8_._5_ (4) 11.8 14.0 14.7 1 15*11 (or 12 even word aligned) 10.3 10.2 14.2 16.8 17.5 1 16* 1 17*(1) max_shift_chars(1) -> 2_ *4 = 8 1 18*(2) max_shift_chars(2) -> 3_ *4 = 12 1 19* max_shift_chars(0) -> 4_ *4 = 16 1 20*(3) max_noshift_chars(1) -> 6_ *4 = 24 1 21*(4) max_noshift_chars(2) -> 9_ *4 = 36 1 22* max_noshift_chars(0) -> 1_0_ *4 = 40 1 23**/ 1 24 1049 2 1 2 2 /* STATIC DATA */ 2 3 dcl max_noshift_chars(0:2) static options(constant) init( 40 /*(4)*/, 24 /*(3)*/, 36 /*(4)*/); 2 4 dcl max_shift_chars(0:2) static options(constant) init( 16 /*(2)*/, 8 /*(1)*/, 12 /*(2)*/); 2 5 /* 0 -> both operands are even word aligned (sal+tal=0) 2 6* 1 -> operands are aligned on conflicting double word boundaries (sal+tal=1) 2 7* 2 -> both operands are odd word aligned (sal+tal=2) */ 2 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 9 2 10 dcl bypass_readkey_instr(4) bit(36) static init( 2 11 "001000000000000010010011101001000000"b, /* lda pr1|2 (fsb.open_mode) */ 2 12 "000000000000110000011111101000000111"b, /* ana 60,dl */ 2 13 "000000000000100000001001101000000111"b, /* cmpa 40,dl (i-o mode) */ 2 14 "000000000000000000110000001000000100"b); /* tnz [tra_tag],ic */ 2 15 dcl bypass_seqerror_instr(2) bit(36) static init( 2 16 "001000000000000110010011100001000000"b, /* szn pr1|6 (fsb.keylen_sw) */ 2 17 "000000000000000000110000001000000100"b); /* tnz [tra_tag],ic */ 2 18 dcl bypass_mode_error_instr(4) bit(36) static init( 2 19 "001000000000000010010011101001000000"b, /* lda pr1|2 (fsb.open_mode) */ 2 20 "000000000000110000011111101000000111"b, /* ana 60,dl */ 2 21 "000000000000110000001001101000000111"b, /* cmpa 60,dl (output) */ 2 22 "000000000000000000110000001000000100"b); /* tnz [tra_tag],ic */ 2 23 2 24 /* [3.0-1] */ dcl epp7_ic_du bit(18) static init("011111011100000100"b); 2 25 /* [3.0-1] */ dcl lda_dl bit(18) static init("010011101000000111"b); 2 26 2 27 dcl tra bit(36) static init( "000000000000000000111001000000000100"b); 2 28 dcl ad2d_ic_to_reg bit(36) static init( "000000000001000000010000010100000100"b); 2 29 dcl mlr_ic_to_reg bit(36) static init( "000100000001000000001000000100000100"b); 2 30 dcl mlr_reg_to_reg bit(36) static init( "000100000001000000001000000101000000"b); 2 31 dcl btd_instr bit(36) static init( "000000000001000000011000001101000000"b); 2 32 dcl dtb_instr bit(36) static init( "000000000001000000011000101101000000"b); 2 33 dcl cmpc_instr bit(36) static init( "000100000001100000001000110101100000"b); 2 34 dcl tze_tnz (0:1) bit(36) static init( "000000000000000000110000000000000100"b, 2 35 "000000000000000000110000001000000100"b); 2 36 dcl cmpa_ bit(12) static init( "001001101001"b); 2 37 dcl asa_ bit(12) static init( "000101101001"b); 2 38 dcl ssa_ bit(12) static init( "001101101001"b); 2 39 dcl staq_ bit(12) static init( "111101111001"b); 2 40 dcl sta_ bit(12) static init( "111101101001"b); 2 41 dcl stq_ bit(12) static init( "111101110001"b); 2 42 dcl stba_ bit(12) static init( "101101001001"b); 2 43 dcl stbq_ bit(12) static init( "101101010001"b); 2 44 dcl stz_ bit(12) static init( "100101000001"b); 2 45 dcl szn_ bit(12) static init( "010011100001"b); 2 46 dcl lda bit(12) static init( "010011101000"b); 2 47 dcl lda_ bit(12) static init( "010011101001"b); 2 48 dcl lda_icmod bit(18) static init( "010011101000000100"b); 2 49 dcl ldq_ bit(12) static init( "010011110001"b); 2 50 dcl ldq_icmod bit(18) static init( "010011110000000100"b); 2 51 dcl ldaq_ bit(12) static init( "010011111001"b); 2 52 dcl ldaq_icmod bit(18) static init( "010011111000000100"b); 2 53 dcl sba_dlmod bit(18) static init( "001111101000000111"b); 2 54 dcl ld_ (0:1) bit(12) static init( "010011101001"b, 2 55 "010011111001"b); 2 56 dcl ld_icmod (0:1) bit(18) static init( "010011101000000100"b, 2 57 "010011111000000100"b); 2 58 dcl rs (0:1) bit(9) static init( "111011001"b, 2 59 "111011011"b); 2 60 dcl ls (0:1) bit(9) static init( "111011101"b, 2 61 "111011111"b); 2 62 2 63 dcl dmod (0:1) bit(6) static init ("000011"b, 2 64 "000111"b); 2 65 dcl tagarray (0:3,7) bit(6) static init("100000"b,"110000"b,"111000"b,""b,""b,""b,""b, 2 66 "010000"b,"011000"b,"011100"b,"011100"b,"011100"b,"011100"b,"011100"b, 2 67 "001000"b,"001100"b,"001100"b,"001100"b,"001100"b,"001100"b,""b, 2 68 "000100"b,"000100"b,"000100"b,"000100"b,"000100"b,""b,""b); 2 69 2 70 /* EXTERNAL ENTRY NAMES */ 2 71 2 72 dcl cobol_move_gen entry(ptr); 2 73 dcl cobol_make_type9$long_bin entry(ptr,fixed bin,fixed bin); 2 74 dcl cobol_define_tag entry(fixed bin); 2 75 dcl cobol_make_tagref entry(fixed bin,fixed bin,ptr); 2 76 dcl cobol_addr entry(ptr,ptr,ptr); 2 77 dcl cobol_pool entry(char(*),fixed bin,fixed bin); 2 78 dcl cobol_pool$search_op entry(char(*),fixed bin,fixed bin,fixed bin); 2 79 dcl cobol_pool$search_op_byte entry(char(*),fixed bin,fixed bin,fixed bin,fixed bin); 2 80 dcl cobol_reloc$cobol_emit entry(ptr,ptr,fixed bin); 2 81 2 82 2 83 /* BUILTIN FUNCTIONS */ 2 84 2 85 /***** Declaration for builtin function *****/ 2 86 2 87 dcl (substr,mod,binary,fixed,addr,addrel,rel,length, 2 88 string,unspec,null,index,max,min) builtin; 2 89 2 90 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 91 1050 1051 end cobol_io_util; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0830.8 cobol_io_util.pl1 >spec>install>MR12.3-1048>cobol_io_util.pl1 1049 1 03/27/82 0439.5 cobol_io_util_info.incl.pl1 >ldd>include>cobol_io_util_info.incl.pl1 1050 2 03/27/82 0439.5 cobol_io_util_data.incl.pl1 >ldd>include>cobol_io_util_data.incl.pl1 2-91 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. ad2d_ic_to_reg 000021 constant bit(36) initial packed unaligned dcl 2-28 ref 424 addr builtin function dcl 2-87 ref 180 180 301 301 387 387 410 410 428 428 441 441 454 454 477 478 478 486 488 488 508 510 510 518 521 521 533 533 546 546 557 557 572 572 592 592 608 608 628 628 642 652 652 677 677 677 677 682 682 702 702 728 728 779 779 addrs 000142 automatic bit(15) packed unaligned dcl 111 set ref 712* 738* 755* 761* 778 adj 000173 automatic fixed bin(17,0) dcl 136 set ref 791* 819* 819 822 824 847* 847 850 852 893 893 894 adjustsw 000164 automatic fixed bin(17,0) dcl 129 set ref 208* 212 216 225 asa_ constant bit(12) initial packed unaligned dcl 2-37 ref 408 boff parameter fixed bin(17,0) dcl 464 ref 460 484 494 517 boundary 000165 automatic fixed bin(17,0) dcl 130 set ref 249* 254* 258* 261* breg parameter bit(3) dcl 463 ref 460 483 494 516 btd_instr 000016 constant bit(36) initial packed unaligned dcl 2-31 ref 450 btd_struct 000072 internal static structure level 1 unaligned dcl 79 set ref 677 677 bypass_mode_error_instr 000140 internal static bit(36) initial array packed unaligned dcl 2-18 set ref 570* 572 572 bypass_readkey_instr 000132 internal static bit(36) initial array packed unaligned dcl 2-10 set ref 546 546 bypass_seqerror_instr 000136 internal static bit(36) initial array packed unaligned dcl 2-15 set ref 557 557 cmpa_ constant bit(12) initial packed unaligned dcl 2-36 ref 590 cmpc_instr 000014 constant bit(36) initial packed unaligned dcl 2-33 ref 623 646 cobol_$compile_count 000172 external static fixed bin(17,0) dcl 3-142 ref 475 480 506 513 cobol_$text_wd_off 000170 external static fixed bin(17,0) dcl 3-90 ref 263 281 423 537 548 559 574 594 610 630 658 695 cobol_addr 000156 constant entry external dcl 2-76 ref 652 677 cobol_define_tag 000152 constant entry external dcl 2-74 ref 535 cobol_make_tagref 000154 constant entry external dcl 2-75 ref 537 548 559 574 594 610 630 658 cobol_make_type9$long_bin 000150 constant entry external dcl 2-73 ref 478 510 cobol_move_gen 000146 constant entry external dcl 2-72 ref 488 521 cobol_pool 000160 constant entry external dcl 2-77 ref 421 cobol_pool$search_op 000162 constant entry external dcl 2-78 ref 275 cobol_pool$search_op_byte 000164 constant entry external dcl 2-79 ref 261 cobol_reloc$cobol_emit 000166 constant entry external dcl 2-80 ref 180 301 387 410 428 441 454 533 546 557 572 592 608 628 644 656 682 702 728 779 coff1 parameter fixed bin(17,0) dcl 584 ref 580 589 600 605 616 619 624 coff2 parameter fixed bin(17,0) dcl 586 ref 580 590 600 616 621 625 creg1 parameter bit(3) dcl 583 ref 580 589 600 605 616 620 624 creg2 parameter bit(3) dcl 585 ref 580 590 600 616 622 625 curlen 000172 automatic fixed bin(17,0) dcl 135 set ref 351* 353 356 359 369* 369 def_tag parameter fixed bin(17,0) dcl 531 set ref 527 535* desc_off parameter fixed bin(24,0) dcl 37 ref 690 695 descoff 000140 automatic fixed bin(17,0) dcl 110 set ref 695* 699 dmod 000005 constant bit(6) initial array packed unaligned dcl 2-63 ref 171 210 399 dmodoff 000151 automatic fixed bin(17,0) dcl 119 set ref 1010* 1012 1015 1017 1021 dptr parameter pointer dcl 465 ref 460 485 494 519 664 675 dtb_instr 000015 constant bit(36) initial packed unaligned dcl 2-32 ref 437 dtb_struct 000112 internal static structure level 1 unaligned dcl 93 set ref 652 652 dudl parameter fixed bin(17,0) dcl 153 ref 150 171 dval parameter bit(18) dcl 154 ref 150 163 171 epp1 000010 internal static bit(18) initial level 2 packed packed unaligned dcl 42 set ref 741* 765* epp7_ic_du constant bit(18) initial packed unaligned dcl 2-24 ref 699 eqne parameter fixed bin(17,0) dcl 587 ref 580 591 600 606 616 626 file_key_info 13 000036 internal static structure level 2 unaligned dcl 67 fixed builtin function dcl 2-87 ref 483 516 fromsw 000163 automatic fixed bin(17,0) dcl 128 set ref 206* 210 219 225 give_up 000176 automatic bit(1) packed unaligned dcl 141 set ref 327* 341* 350* 375 i 000155 automatic fixed bin(17,0) dcl 123 set ref 850* 852* 1037* 1040 1042 ic 000157 automatic fixed bin(17,0) dcl 125 set ref 167* 177* 180* 191* 205* 220* 223 228* 228 230 237* 296* 301* 314* 384* 387* 698* 702* 724* 728* 777* 779* 831* 831 835 836 841 844* 844 846 851* 851 856 857 859 862 863* 863 864 870 873 874* 874 876 880* 880 883 886 887* 887 889 898* 898 906 907 909 912 915* 915 916 922 924 927 931* 931 933 938* 938 940 942 946 949 950* 950 952 976* 976 980 981 983 986 989* 989 990 995 997 1000 1004* 1004 1006 1014* 1014 1018 1022 1025* 1025 1032 1036* 1036 1039 1040 1042 init_count 000131 internal static fixed bin(17,0) initial dcl 137 set ref 475 480* 506 513* instr 000100 automatic bit(36) array packed unaligned dcl 107 set ref 166* 171* 172* 174* 176* 180 180 209* 210* 212* 219* 223* 230* 238* 282* 283* 288* 289* 293* 301 301 377* 378* 381* 387 387 399* 403* 406* 408* 410 410 424* 425* 426* 428 428 437* 438* 439* 441 441 450* 451* 452* 454 454 589* 590* 591* 592 592 605* 606* 608 608 620* 622* 623* 624* 625* 626* 628 628 641* 642 646* 647* 648* 649* 654* 670* 671* 672* 673* 674* 677 677 679* 680* 682 682 699* 702 702 725* 728 728 778* 779 779 836* 841* 846* 857* 859* 862* 864* 870* 873* 876* 883* 886* 889* 907* 909* 912* 916* 922* 924* 927* 933* 940* 942* 946* 949* 952* 981* 983* 986* 990* 995* 997* 1000* 1006* 1018* 1022* 1032* 1039* 1040* 1042* instr_ptr 000202 automatic pointer dcl 145 set ref 642* 644* 652* 656* keynum parameter fixed bin(17,0) dcl 37 ref 720 725 ld_ 000011 constant bit(12) initial array packed unaligned dcl 2-54 ref 403 924 997 ld_icmod 000010 constant bit(18) initial array packed unaligned dcl 2-56 ref 909 983 lda constant bit(12) initial packed unaligned dcl 2-46 ref 171 210 399 lda_ constant bit(12) initial packed unaligned dcl 2-47 ref 589 620 641 670 841 873 927 1000 lda_dl constant bit(18) initial packed unaligned dcl 2-25 ref 725 lda_icmod constant bit(18) initial packed unaligned dcl 2-48 ref 836 862 912 986 ldaq_ constant bit(12) initial packed unaligned dcl 2-51 ref 870 ldaq_icmod constant bit(18) initial packed unaligned dcl 2-52 ref 859 ldq_ constant bit(12) initial packed unaligned dcl 2-49 ref 622 876 933 1006 ldq_icmod constant bit(18) initial packed unaligned dcl 2-50 ref 864 916 990 length builtin function dcl 2-87 ref 193 419 lensw 000160 automatic fixed bin(17,0) dcl 126 set ref 900* 902* 909 913 924 929 972* 974* 1018 1022 lit parameter char packed unaligned dcl 189 set ref 186 193 209 212 234 261* 275* 416 419 421* litlen 000143 automatic fixed bin(17,0) dcl 113 set ref 193* 198 198* 202 242 283 289 419* 425 litoff 000144 automatic fixed bin(17,0) dcl 114 set ref 261* 263* 263 267 275* 280 281* 281 283 289 421* 423* 423 425 835 856 906 980 loff parameter fixed bin(17,0) dcl 668 ref 664 670 lreg parameter bit(3) dcl 667 ref 664 670 ls 000006 constant bit(9) initial array packed unaligned dcl 2-60 ref 1022 max builtin function dcl 2-87 ref 347 354 max_noshift_chars 000025 constant fixed bin(17,0) initial array dcl 2-3 ref 242 339 max_shift_chars 000022 constant fixed bin(17,0) initial array dcl 2-4 ref 347 min builtin function dcl 2-87 ref 359 806 mlr_ic_to_reg 000020 constant bit(36) initial packed unaligned dcl 2-29 ref 282 mlr_reg_to_reg 000017 constant bit(36) initial packed unaligned dcl 2-30 ref 288 377 672 mod builtin function dcl 2-87 ref 158 195 196 208 280 317 318 320 321 363 364 367 368 894 mode parameter fixed bin(17,0) dcl 39 ref 747 751 mode_bits parameter bit(2) dcl 568 ref 565 570 modlen 000154 automatic fixed bin(17,0) dcl 122 set ref 894* 896 900 942 946 946 952 move_token_ptr 2 000012 internal static pointer initial array level 2 dcl 47 set ref 477* 485* 486* 508* 518* 519* move_tokens 000012 internal static structure level 1 unaligned dcl 47 set ref 488 488 521 521 ndx 000141 automatic bit(3) packed unaligned dcl 111 set ref 711* 737* 753* 759* 778 null builtin function dcl 2-87 ref 180 180 301 301 387 387 410 410 428 428 441 441 454 454 533 533 537 537 546 546 548 548 557 557 559 559 572 572 574 574 592 592 594 594 608 608 610 610 628 628 630 630 644 644 652 652 656 656 658 658 677 677 682 682 702 702 728 728 779 779 off 24 000036 internal static fixed bin(17,0) level 3 in structure "type9" dcl 67 in procedure "cobol_io_util" set ref 484* 517* off 000156 automatic fixed bin(17,0) dcl 124 in procedure "cobol_io_util" set ref 824* 835 840 845 852* 856 868 881 893* 906 921 939 offset parameter fixed bin(17,0) dcl 39 ref 733 738 747 755 op parameter bit(18) packed unaligned dcl 774 ref 770 778 op_codes 000010 internal static structure level 1 packed packed unaligned dcl 42 operand1 4 000112 internal static structure level 2 unaligned dcl 93 operand2 12 000072 internal static structure level 2 unaligned dcl 79 regsw 000171 automatic fixed bin(17,0) dcl 134 set ref 261* 263 275* 277 332* 833 854 904 978 rs 000007 constant bit(9) initial array packed unaligned dcl 2-58 ref 219 1018 sal 000152 automatic fixed bin(17,0) dcl 120 set ref 248* 253* 257* 317* 334 356 363* 813 813* 815* 827 827* 829* 859 870 909 924 983 997 sba_dlmod constant bit(18) initial packed unaligned dcl 2-53 ref 671 seg 23 000036 internal static fixed bin(17,0) initial level 3 dcl 67 set ref 483* 516* slen parameter fixed bin(17,0) dcl 312 set ref 307 323 323* 329 378 434 438 447 451 slensw 000162 automatic fixed bin(17,0) dcl 127 set ref 963* 966* 972 983 987 997 1002 smodoff 000150 automatic fixed bin(17,0) dcl 118 set ref 196* 261* 318* 336 347 354 361 364* 378 963 1010 soff parameter fixed bin(17,0) dcl 311 ref 307 316 318 393 402 434 438 447 451 664 673 spri1 0(18) 000010 internal static bit(18) initial level 2 packed packed unaligned dcl 42 set ref 715* sptr parameter pointer dcl 639 ref 636 650 sreg parameter bit(3) dcl 310 ref 307 333 378 393 403 434 438 447 451 664 673 ssa_ constant bit(12) initial packed unaligned dcl 2-38 ref 406 ssreg 000174 automatic bit(3) dcl 139 set ref 266* 333* 841 870 873 876 922 933 995 1006 sta_ constant bit(12) initial packed unaligned dcl 2-40 ref 174 846 886 942 949 1028 staq_ constant bit(12) initial packed unaligned dcl 2-39 ref 883 stba_ constant bit(12) initial packed unaligned dcl 2-42 ref 176 223 946 1030 stbq_ constant bit(12) initial packed unaligned dcl 2-43 ref 230 952 1042 stq_ constant bit(12) initial packed unaligned dcl 2-41 ref 889 1040 stz_ constant bit(12) initial packed unaligned dcl 2-44 ref 166 238 substr builtin function dcl 2-87 set ref 166 172 174* 176* 210* 212* 223 230 238 283 283 283 289 289 293 293 293 378 378 378 381 381 381 399 403 406 408 425 425 426 426 438 438 439 439 451 451 452 452 570* 589 590 605 620 622 624 625 654* 670 673 679* 680* 699 725 738 755 836 841 846 857* 857 859* 862* 864 870 873 876 883 886 889 907* 907 909* 912* 916 922 924* 927* 933 940 942* 946* 949* 952 981* 981 983* 986* 990 995* 995 997* 1000* 1006 1018 1022 1032 1039 1040* 1042* swdoff 000145 automatic fixed bin(17,0) dcl 115 set ref 267* 316* 317 362* 362 363 378 840 868 921 995 1005 szn_ constant bit(12) initial packed unaligned dcl 2-45 ref 605 tagarray 000000 constant bit(6) initial array packed unaligned dcl 2-65 ref 176 223 946 952 1026 1042 tal 000153 automatic fixed bin(17,0) dcl 121 set ref 195* 242 248 249 320* 334 367* 798 812* 822 825* 883 talsw 000175 automatic bit(1) packed unaligned dcl 140 set ref 795* 803* 810 temp 000166 automatic fixed bin(17,0) dcl 131 set ref 229* 230 245* 246 251 280* 283 334* 339 347 355* 356 356* 359 361* 362 364 365* 366 368 398* 399 402* 403 619* 620 621* 622 796* 798 802* 806 835* 836 840* 841 845* 846 856* 857 864 868* 870 873 875* 875 876 881* 883 886 888* 888 889 906* 907 916 921* 922 932* 932 933 939* 940 951* 951 952 980* 981 990 1005* 1006 1017* 1018 1021* 1022 1038* 1039 temp_instr 000200 automatic bit(12) packed unaligned dcl 143 set ref 1028* 1030* 1032 temp_off 000167 automatic fixed bin(17,0) dcl 132 set ref 354* 355 356 temp_tag 000177 automatic bit(6) packed unaligned dcl 142 set ref 1026* 1028 1032 tlen parameter fixed bin(17,0) dcl 34 ref 150 160 163 174 176 186 198 198 202 202 212 223 225 234 242 242 245 293 307 323 323 329 339 347 351 381 393 396 398 406 416 426 434 439 447 452 798 798 806 822 850 893 894 tlensw 000161 automatic fixed bin(17,0) dcl 127 set ref 968* 970* 972 1034 tmodoff 000147 automatic fixed bin(17,0) dcl 117 set ref 158* 160 163 174 176 196* 206 208 223 234 242 245 293 321* 336 339 347 354 365 368* 381 793 796 798 802 852 968 1010 1026 1037 toff parameter fixed bin(17,0) dcl 33 ref 150 156 158 186 194 196 307 319 321 393 406 408 416 426 434 439 447 452 token_ptr 12 000072 internal static pointer level 3 in structure "btd_struct" dcl 79 in procedure "cobol_io_util" set ref 675* token_ptr 4 000112 internal static pointer level 3 in structure "dtb_struct" dcl 93 in procedure "cobol_io_util" set ref 650* tra 000144 internal static bit(36) initial packed unaligned dcl 2-27 set ref 533 533 tra_tag parameter fixed bin(17,0) dcl 530 set ref 527 537* 543 548* 554 559* 565 574* 580 594* 600 610* 616 630* 636 658* treg parameter bit(3) dcl 32 ref 150 166 172 186 223 230 238 293 307 381 393 406 408 416 426 434 439 447 452 846 883 886 889 940 952 1032 1039 ttlen 000170 automatic fixed bin(17,0) dcl 133 set ref 359* 361 365 369 806* 819 963 968 1026 1037 twdoff 000146 automatic fixed bin(17,0) dcl 116 set ref 156* 166 172 194* 195 223 229 238 293 319* 320 366* 366 367 381 845 881 939 1032 1038 type19 000024 internal static structure level 1 unaligned dcl 51 set ref 477 508 type9 000036 internal static structure level 1 unaligned dcl 67 set ref 478 478 486 510 510 518 tze_tnz 000012 constant bit(36) initial array packed unaligned dcl 2-34 ref 591 606 626 649 unspec builtin function dcl 2-87 ref 166 172 209 212 223 230 238 283 283 283 289 289 293 293 293 378 378 378 381 381 381 399 403 406 408 425 425 426 426 438 438 439 439 451 451 452 452 589 590 605 620 622 624 625 670 673 699 725 738 755 836 841 846 857 864 870 873 876 883 886 889 907 916 922 933 940 952 981 990 995 1006 1018 1022 1032 1039 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addrel builtin function dcl 2-87 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 binary builtin function dcl 2-87 cd_cnt defined fixed bin(17,0) dcl 3-197 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_$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_$def_base_ptr external static pointer dcl 3-12 cobol_$def_max external static fixed bin(17,0) dcl 3-96 cobol_$def_wd_off external static fixed bin(17,0) dcl 3-94 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_$link_base_ptr external static pointer dcl 3-14 cobol_$link_max external static fixed bin(17,0) dcl 3-100 cobol_$link_wd_off external static fixed bin(17,0) dcl 3-98 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_$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 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 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 def_base_ptr defined pointer dcl 3-13 def_max defined fixed bin(17,0) dcl 3-97 def_wd_off defined fixed bin(17,0) dcl 3-95 diag_ptr defined pointer dcl 3-71 eln_max defined fixed bin(17,0) dcl 3-173 eln_ptr defined pointer dcl 3-69 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 index builtin function dcl 2-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 link_base_ptr defined pointer dcl 3-15 link_max defined fixed bin(17,0) dcl 3-101 link_wd_off defined fixed bin(17,0) dcl 3-99 list_off defined fixed bin(17,0) dcl 3-155 list_ptr defined pointer dcl 3-65 ls_charcnt defined fixed bin(17,0) dcl 3-191 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 next_tag defined fixed bin(17,0) dcl 3-129 non_source_offset defined fixed bin(17,0) dcl 3-177 nothing internal static char(3) initial packed unaligned dcl 147 ntbuf_ptr defined pointer dcl 3-83 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-87 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 string builtin function dcl 2-87 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 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. bin_to_dec 001620 constant entry external dcl 447 bin_to_t9dec 001777 constant entry external dcl 494 bypass_error 002064 constant entry external dcl 527 bypass_mode_error 002275 constant entry external dcl 565 bypass_readkey 002147 constant entry external dcl 543 bypass_seqerror 002221 constant entry external dcl 554 cobol_io_util 000045 constant entry external dcl 29 compare_key 002721 constant entry external dcl 636 compare_varying 002561 constant entry external dcl 616 compare_word 002361 constant entry external dcl 580 compare_zero_word 002467 constant entry external dcl 600 dec_add 001371 constant entry external dcl 416 dec_to_bin 001517 constant entry external dcl 434 emit_instr 003412 constant entry internal dcl 770 ref 715 741 765 file_desc 003174 constant entry external dcl 690 fixed_add 001241 constant entry external dcl 393 fsb_key_loc 003325 constant entry external dcl 733 key_loc 003354 constant entry external dcl 747 key_num 003265 constant entry external dcl 720 move 000754 constant entry external dcl 307 move_aligned 003452 constant entry internal dcl 788 ref 270 342 move_direct 000060 constant entry external dcl 150 move_from_varlen 003054 constant entry external dcl 664 move_lit 000234 constant entry external dcl 186 move_unaligned 004244 constant entry internal dcl 960 ref 360 808 set_fsb_loc 003240 constant entry external dcl 707 start_move 000761 constant label dcl 314 start_move_direct 000065 constant label dcl 156 start_move_lit 000247 constant label dcl 191 t9dec_to_bin 001714 constant entry external dcl 460 NAMES DECLARED BY CONTEXT OR IMPLICATION. abs builtin function ref 398 divide builtin function ref 156 194 206 281 316 319 362 366 619 621 824 852 893 893 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5162 5356 4567 5172 Length 5732 4567 174 340 373 136 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_io_util 214 external procedure is an external procedure. emit_instr internal procedure shares stack frame of external procedure cobol_io_util. move_aligned internal procedure shares stack frame of external procedure cobol_io_util. move_unaligned internal procedure shares stack frame of external procedure cobol_io_util. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 op_codes cobol_io_util 000012 move_tokens cobol_io_util 000024 type19 cobol_io_util 000036 type9 cobol_io_util 000072 btd_struct cobol_io_util 000112 dtb_struct cobol_io_util 000131 init_count cobol_io_util 000132 bypass_readkey_instr cobol_io_util 000136 bypass_seqerror_instr cobol_io_util 000140 bypass_mode_error_instr cobol_io_util 000144 tra cobol_io_util STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_io_util 000100 instr cobol_io_util 000140 descoff cobol_io_util 000141 ndx cobol_io_util 000142 addrs cobol_io_util 000143 litlen cobol_io_util 000144 litoff cobol_io_util 000145 swdoff cobol_io_util 000146 twdoff cobol_io_util 000147 tmodoff cobol_io_util 000150 smodoff cobol_io_util 000151 dmodoff cobol_io_util 000152 sal cobol_io_util 000153 tal cobol_io_util 000154 modlen cobol_io_util 000155 i cobol_io_util 000156 off cobol_io_util 000157 ic cobol_io_util 000160 lensw cobol_io_util 000161 tlensw cobol_io_util 000162 slensw cobol_io_util 000163 fromsw cobol_io_util 000164 adjustsw cobol_io_util 000165 boundary cobol_io_util 000166 temp cobol_io_util 000167 temp_off cobol_io_util 000170 ttlen cobol_io_util 000171 regsw cobol_io_util 000172 curlen cobol_io_util 000173 adj cobol_io_util 000174 ssreg cobol_io_util 000175 talsw cobol_io_util 000176 give_up cobol_io_util 000177 temp_tag cobol_io_util 000200 temp_instr cobol_io_util 000202 instr_ptr cobol_io_util THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_bit_temp call_ext_out_desc call_ext_out return_mac mdfx1 shorten_stack ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_addr cobol_define_tag cobol_make_tagref cobol_make_type9$long_bin cobol_move_gen cobol_pool cobol_pool$search_op cobol_pool$search_op_byte cobol_reloc$cobol_emit THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cobol_$compile_count cobol_$text_wd_off LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000044 150 000052 156 000065 158 000071 160 000075 163 000100 166 000117 167 000132 168 000134 171 000135 172 000151 174 000161 176 000170 177 000206 180 000210 182 000226 186 000227 191 000247 193 000250 194 000252 195 000256 196 000261 198 000266 202 000273 205 000302 206 000304 208 000307 209 000313 210 000321 212 000334 215 000356 216 000360 219 000362 220 000373 223 000375 225 000427 228 000440 229 000441 230 000444 233 000460 234 000461 237 000474 238 000476 239 000511 242 000512 245 000521 246 000524 248 000526 249 000530 250 000532 251 000533 253 000535 254 000536 255 000540 257 000541 258 000543 261 000544 263 000573 266 000601 267 000602 270 000604 272 000605 275 000606 277 000634 280 000636 281 000642 282 000651 283 000653 286 000667 288 000670 289 000672 293 000702 296 000724 301 000726 303 000745 307 000746 314 000761 316 000762 317 000766 318 000771 319 000775 320 001000 321 001003 323 001007 327 001014 329 001016 332 001021 333 001023 334 001026 336 001031 339 001034 341 001040 342 001041 346 001042 347 001043 350 001052 351 001053 353 001055 354 001060 355 001065 356 001070 359 001100 360 001105 361 001106 362 001111 363 001113 364 001117 365 001123 366 001126 367 001130 368 001134 369 001140 371 001142 375 001143 377 001145 378 001147 381 001171 384 001212 387 001214 389 001233 393 001234 396 001246 398 001251 399 001255 400 001271 402 001272 403 001275 406 001312 408 001331 410 001345 412 001366 416 001367 419 001404 421 001406 423 001432 424 001440 425 001442 426 001454 428 001474 430 001514 434 001515 437 001524 438 001526 439 001546 441 001574 443 001615 447 001616 450 001625 451 001627 452 001647 454 001666 456 001707 460 001710 475 001721 477 001725 478 001727 480 001745 483 001750 484 001755 485 001757 486 001762 488 001764 490 001774 494 001775 506 002004 508 002010 510 002012 513 002030 516 002033 517 002040 518 002042 519 002044 521 002047 523 002057 527 002060 533 002071 535 002112 537 002122 539 002143 543 002144 546 002154 548 002175 550 002216 554 002217 557 002226 559 002247 561 002270 565 002271 570 002302 572 002311 574 002331 576 002352 580 002353 589 002366 590 002403 591 002417 592 002422 594 002443 596 002464 600 002465 605 002474 606 002511 608 002514 610 002535 612 002556 616 002557 619 002566 620 002573 621 002606 622 002612 623 002625 624 002627 625 002637 626 002647 628 002652 630 002673 632 002714 636 002715 641 002726 642 002731 644 002733 646 002752 647 002754 648 002755 649 002757 650 002761 652 002766 654 003004 656 003006 658 003025 660 003046 664 003047 670 003061 671 003076 672 003101 673 003103 674 003116 675 003117 677 003123 679 003143 680 003145 682 003147 684 003170 690 003171 695 003201 698 003210 699 003212 702 003220 705 003236 707 003237 711 003245 712 003247 715 003251 718 003262 720 003263 724 003272 725 003274 728 003303 731 003322 733 003323 737 003335 738 003337 741 003342 744 003351 747 003352 751 003364 753 003370 755 003372 757 003375 759 003376 761 003400 765 003402 768 003411 770 003412 777 003414 778 003416 779 003432 782 003451 788 003452 791 003453 793 003454 795 003456 796 003457 798 003462 802 003473 803 003476 806 003500 808 003506 810 003507 812 003511 813 003512 815 003517 819 003520 822 003522 824 003531 825 003535 827 003536 829 003543 831 003544 833 003545 835 003547 836 003554 837 003563 840 003564 841 003567 844 003600 845 003601 846 003604 847 003620 850 003622 851 003633 852 003634 854 003640 856 003642 857 003647 859 003654 862 003663 863 003666 864 003667 866 003673 868 003674 870 003677 873 003713 874 003724 875 003725 876 003726 880 003737 881 003740 883 003743 886 003763 887 004000 888 004001 889 004002 891 004013 893 004016 894 004032 896 004036 898 004037 900 004040 902 004045 904 004046 906 004050 907 004055 909 004062 912 004076 913 004101 915 004103 916 004104 919 004110 921 004111 922 004114 924 004122 927 004135 929 004140 931 004142 932 004143 933 004144 938 004155 939 004156 940 004161 942 004172 946 004201 949 004215 950 004220 951 004221 952 004222 957 004243 960 004244 963 004245 966 004253 968 004255 970 004263 972 004265 974 004276 976 004277 978 004300 980 004302 981 004306 983 004313 986 004327 987 004332 989 004334 990 004335 993 004341 995 004342 997 004351 1000 004364 1002 004367 1004 004371 1005 004372 1006 004375 1010 004406 1012 004411 1014 004412 1015 004413 1017 004415 1018 004417 1019 004434 1021 004435 1022 004437 1025 004454 1026 004455 1028 004467 1030 004474 1032 004476 1034 004520 1036 004522 1037 004523 1038 004527 1039 004532 1040 004540 1042 004547 1045 004561 ----------------------------------------------------------- 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