COMPILATION LISTING OF SEGMENT cobol_add_binary_gen 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 0941.2 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_add_binary_gen.pl1 Added Trace statements. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 10/19/84 by FCH, [5.3-1], BUG563, new cobol_addr_tokens.incl.pl1 */ 23 /* Modified on 08/31/83 by FCH, [5.2...], trace added */ 24 /* Modified on 06/29/79 by FCH, [4.0-1], not option added for debug */ 25 /* Modified since Version 4.0 */ 26 /*{*/ 27 28 /* format: style3 */ 29 cobol_add_binary_gen: 30 proc (in_token_ptr, next_stmt_tag, target_code, source_code, operation_code); 31 /* 32*This procedure generates code to do adds and subtracts using 33*the hardware registers. 34**/ 35 36 /* DECLARATION OF THE PARAMETERS */ 37 38 /* dcl in_token_ptr ptr; */ 39 /* Declared below in an include file. */ 40 dcl next_stmt_tag fixed bin; 41 dcl target_code fixed bin; 42 dcl source_code fixed bin; 43 dcl operation_code fixed bin; 44 45 /* DESCRIPTION OF THE PARAMETERS */ 46 47 /* 48*PARAMETER DESCRIPTION 49* 50*in_token_ptr Pointer to a structure that contains pointers 51* and data that describe the add or subtract 52* statement for which code is to be generated. 53* (input) See description below for details. 54*next_stmt_tag A tag that is to be defined at the next 55* Cobol statement by cobol_gen_driver_. (output) 56* See below for details. 57*target_code A code that indicates the data type of the 58* largest receiving field in the statement. 59* (input) This code is defined in the follwoing 60* table: 61* 62* target_code | largest field 63* ========================================= 64* 1 | short fixed binary 65* 2 | long fixed binary 66* ========================================= 67* 68*souce_code A code that indicates the data type of the 69* largest data item in the expression to be 70* evaluated. (input) Thhs code has the 71* same values and meanings as for target_code 72* above. 73*operation_code A code that indicates whether code is to be 74* generated for ADD or SUBTRACT. (input) 75* This code is defined in the following table: 76* 77* operation_code | operation 78* ========================================= 79* 1 | ADDITION 80* 2 | SUBTRACTION 81* ========================================= 82* 83**/ 84 85 /* DECLARATIONS OF EXTERNAL ENTRIES */ 86 87 dcl cobol_make_type9$short_bin 88 ext entry (ptr, fixed bin, fixed bin (24)); 89 dcl cobol_make_type9$long_bin 90 ext entry (ptr, fixed bin, fixed bin (24)); 91 dcl cobol_make_type9$type2_3 92 ext entry (ptr, ptr); 93 dcl cobol_alloc$stack ext entry (fixed bin, fixed bin, fixed bin (24)); 94 dcl cobol_addr ext entry (ptr, ptr, ptr); 95 dcl cobol_emit ext entry (ptr, ptr, fixed bin); 96 dcl cobol_fofl_mask$on ext entry; 97 dcl cobol_fofl_mask$off ext entry; 98 dcl cobol_make_bin_const 99 ext entry (ptr, ptr, fixed bin); 100 dcl cobol_add2_binary_short 101 ext entry (ptr, ptr, ptr, fixed bin); 102 dcl cobol_add2_binary_long 103 ext entry (ptr, ptr, ptr, fixed bin); 104 dcl cobol_make_tagref ext entry (fixed bin, fixed bin, ptr); 105 dcl cobol_store_binary ext entry (ptr, ptr, bit (1)); 106 dcl cobol_define_tag ext entry (fixed bin); 107 dcl cobol_register$load ext entry (ptr); 108 dcl cobol_register$release 109 ext entry (ptr); 110 111 /* DECLARATION OF INTERNAL STATIC DATA */ 112 113 dcl STZ bit (10) int static init ("1001010000"b); 114 /* 450(0) */ 115 dcl AOS bit (10) int static init ("0001011000"b); 116 /* 054(0) */ 117 dcl LDA bit (10) int static init ("0100111010"b); 118 /* 235(0) */ 119 dcl LDQ bit (10) int static init ("0100111100"b); 120 /* 236 (0) */ 121 122 dcl tov_inst bit (36) int static init ("000000000000000000110001111000000000"b); 123 ; /* tov 0 */ 124 125 dcl tra_inst bit (36) int static init ("000000000000000000111001000000000000"b); 126 /* tra 0 */ 127 128 dcl tnz_inst bit (36) int static init ("000000000000000000110000001000000000"b); 129 /* tnz 0 */ 130 131 132 dcl 1 dec_zero_token int static, 133 2 size fixed bin (15), 134 2 line fixed bin (15), 135 2 column fixed bin (15), 136 2 type fixed bin (15) init (2), 137 2 integral bit (1) init ("1"b), 138 2 floating bit (1) bit (1) init ("0"b), 139 2 filler1 bit (5), 140 2 subscript bit (1) init ("0"b), 141 2 sign char (1) init (" "), 142 2 exp_sign char (1) init (" "), 143 2 exp_places fixed bin (15), 144 2 places_left fixed bin (15) init (1), 145 2 places_right fixed bin (15) init (0), 146 2 places fixed bin (15) init (1), 147 2 literal char (1) init ("0"); 148 149 /* DECLARATION OF INTERNAL VARIABLES */ 150 151 dcl 1 input_buff, 152 2 buff (1:10) fixed bin; 153 154 dcl 1 reloc_buff, 155 2 buff (1:10) bit (5) aligned; 156 157 158 159 dcl 1 register_struc, 160 2 what_reg fixed bin, 161 2 reg_no bit (4), 162 2 lock fixed bin, 163 2 already_there fixed bin, 164 2 contains fixed bin, 165 2 tok_ptr ptr, 166 2 literal bit (36); 167 dcl result_token_ptr ptr; 168 dcl work_token_ptr ptr; 169 dcl addend_token_ptr ptr; 170 dcl receive_count fixed bin; 171 dcl ret_offset fixed bin (24); 172 dcl ovflo_flag_inst bit (36); 173 dcl ovflo_tag fixed bin; 174 dcl no_ovflo_tag fixed bin; 175 dcl imperative_stmt_tag fixed bin; 176 dcl ix fixed bin; 177 dcl temp_target_code fixed bin; 178 dcl add_code fixed bin; 179 dcl ose_flag bit (1); 180 dcl tlength fixed bin; 181 dcl temp_ptr ptr; 182 dcl skipped_some bit (1); 183 dcl temp_lop_token_ptr ptr; 184 dcl temp_rop_token_ptr ptr; 185 186 187 dcl call_again bit (1); 188 189 190 dcl dn_ptr ptr; 191 192 193 /**************************************************/ 194 /* START OF EXECUTION */ 195 /* cobol_add_binary_gen */ 196 /**************************************************/ 197 198 start: /* Extract information from the EOS token */ 199 eos_ptr = in_token.token_ptr (in_token.n); 200 ose_flag = end_stmt.b; 201 202 if ose_flag 203 then do; /* Reserve two tags for use in on size error processing. */ 204 imperative_stmt_tag = cobol_$next_tag; 205 next_stmt_tag = imperative_stmt_tag + 1; 206 cobol_$next_tag = cobol_$next_tag + 2; 207 end; /* Reserve two tags for use in on size error processing. */ 208 209 if end_stmt.a = "000"b 210 then call format1; /* Format 1 add or subtract */ 211 else call format2; /* Format 2 add or subtract. */ 212 213 /***..... if Trace_Bit then call cobol_gen_driver_$Tr_End(MY_NAME);/**/ 214 215 exit: 216 return; 217 218 219 format1: 220 proc;/***..... dcl LOCAL_NAME char (9) int static init (": FORMAT1");/**/ 221 /***..... if Trace_Bit then call cobol_gen_driver_$Tr_Beg(MY_NAME||LOCAL_NAME);/**/ 222 223 /* 224*This procedure generates code to do format 1 add or subtract 225*in the hardware registers. 226**/ 227 228 /**************************************************/ 229 /* START OF EXECUTION */ 230 /* format1 */ 231 /**************************************************/ 232 233 start_format1: 234 addend_token_ptr = in_token.token_ptr (2); 235 if addend_token_ptr -> data_name.type = rtc_resword 236 then do /* Addend is the figurative constant ZERO */; 237 if ^ose_flag 238 then return; 239 addend_token_ptr = null (); 240 call cobol_make_type9$type2_3 (addend_token_ptr, addr (dec_zero_token)); 241 end; 242 243 receive_count = end_stmt.h; 244 if ose_flag 245 then do; /* On size error clause was present. */ 246 if receive_count > 1 247 then do; /* Multiple augend/receiving fields. */ 248 /* Allocate space on the stack for an overflow flag, 249* and emit code to initialize it to zero. */ 250 call cobol_alloc$stack (4, 0, ret_offset); 251 252 input_ptr = addr (input_buff); 253 reloc_ptr = addr (reloc_buff); 254 inst_ptr = addr (ovflo_flag_inst); 255 256 input_struc_basic.type = 1; 257 input_struc_basic.operand_no = 0; 258 input_struc_basic.lock = 0; 259 input_struc_basic.segno = 1000; 260 /* stack */ 261 input_struc_basic.char_offset = ret_offset; 262 263 call cobol_addr (input_ptr, inst_ptr, reloc_ptr); 264 inst_struc_basic.fill1_op = STZ; 265 call cobol_emit (inst_ptr, reloc_ptr, 1); 266 267 /* Define some tags to be used in the overflow testing */ 268 ovflo_tag = cobol_$next_tag; 269 no_ovflo_tag = ovflo_tag + 1; 270 cobol_$next_tag = cobol_$next_tag + 2; 271 272 end; /* Multiple augend/receiving fields. */ 273 274 else ovflo_tag = imperative_stmt_tag; 275 276 277 /* Generate code to turn on the fixed overflow mask in the indicator register. */ 278 call cobol_fofl_mask$on; 279 end; /* On size error clause was present. */ 280 281 282 if (addend_token_ptr -> data_name.type = rtc_dataname & receive_count > 1) 283 then do; /* The addend is a cobol data item, and there is more than one receiving field. */ 284 /* Store the addend into a temporary. */ 285 286 /* Allocate space for the temporary. */ 287 if addend_token_ptr -> data_name.bin_18 288 then tlength = 2; 289 else tlength = 3; 290 call cobol_alloc$stack (tlength, 0, ret_offset); 291 292 temp_ptr = null (); 293 if tlength = 2 294 then call cobol_make_type9$short_bin (temp_ptr, 1000, ret_offset); 295 else call cobol_make_type9$long_bin (temp_ptr, 1000, ret_offset); 296 call cobol_store_binary (addend_token_ptr, temp_ptr, call_again); 297 /* Release the register that was used in storing away the addend. */ 298 register_struc.reg_no = addend_token_ptr -> cobol_type100.register; 299 call cobol_register$release (addr (register_struc)); 300 301 addend_token_ptr = temp_ptr; 302 end; /* The addend is a cobol data item, and there is more than one receiving field. */ 303 /* Generate code to add the addend to each augend/receiving field */ 304 305 do ix = 3 to (receive_count + 2); /* Do all the adds/subtracts */ 306 307 /* Determine the type of the augend. */ 308 if in_token.token_ptr (ix) -> data_name.bin_18 309 then temp_target_code = 1; /* short binary */ 310 else temp_target_code = 2; /* long binary */ 311 /* Determine what registers should be used for the computation */ 312 if source_code > temp_target_code 313 then add_code = source_code; 314 else add_code = temp_target_code; 315 316 work_token_ptr = addend_token_ptr; 317 318 /* Generate code to do the add or subtract. */ 319 result_token_ptr = null (); 320 321 /* Note that in the floowing calls, the operands are reversed. This is necessary 322* because the called procedure expects the minuend as the first parameter. 323* Reversing the operands has no effect on addition, because addition is commutative. 324* */ 325 326 if add_code = 1 327 then call cobol_add2_binary_short (in_token.token_ptr (ix), work_token_ptr, result_token_ptr, 328 operation_code); 329 else call cobol_add2_binary_long (in_token.token_ptr (ix), work_token_ptr, result_token_ptr, 330 operation_code + 4); 331 332 if ose_flag 333 then do; /* On size error clause was present. */ 334 /* Emit code to transfer on overflow to the overflow tag. */ 335 call cobol_emit (addr (tov_inst), null (), 1); 336 /* Make a reference to the overflow tag at the instruction just emitted. */ 337 call cobol_make_tagref (ovflo_tag, cobol_$text_wd_off - 1, null ()); 338 end; /* On size error clause was present. */ 339 340 if result_token_ptr ^= null 341 then do; 342 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 343 if call_again 344 then do; /* Must call the store procedure again to get the results stored. */ 345 if ose_flag 346 then do; /* Must test for overflow again. */ 347 call cobol_emit (addr (tov_inst), null (), 1); 348 call cobol_make_tagref (ovflo_tag, cobol_$text_wd_off - 1, null ()); 349 end; /* Must test for overflow again. */ 350 351 352 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 353 end; /* Must call the store procedure again to get the results stored. */ 354 /* Release the register that contains the result of the add or subtract. */ 355 register_struc.reg_no = result_token_ptr -> cobol_type100.register; 356 call cobol_register$release (addr (register_struc)); 357 end; 358 359 if ose_flag & receive_count ^= 1 360 then do; /* On size error and multiple augends. */ 361 /* Emit code to transfer to the next add sequence. */ 362 call cobol_emit (addr (tra_inst), null (), 1); 363 call cobol_make_tagref (no_ovflo_tag, cobol_$text_wd_off - 1, null ()); 364 365 /* Define the ovflo_tag at the next instructiin location. */ 366 call cobol_define_tag (ovflo_tag); /* Emit code to increment the overflow flag. */ 367 inst_struc_basic.fill1_op = AOS; 368 call cobol_emit (inst_ptr, reloc_ptr, 1); 369 370 /* Define the no_ovflo_tag at the next instruction location. */ 371 call cobol_define_tag (no_ovflo_tag); 372 373 374 if ix ^= in_token.n - 1 375 then do; /* Not the last add or subtract, define new ovflo and no_ovflo tags. */ 376 ovflo_tag = cobol_$next_tag; 377 no_ovflo_tag = ovflo_tag + 1; 378 cobol_$next_tag = cobol_$next_tag + 2; 379 end; /* Not the last add or subtract, define new ovflo, no_ovflo tags */ 380 381 end; /* On size error and multiple augends. */ 382 383 end; /* Do add/subtract. */ 384 385 if ose_flag 386 then do; /* On size error clause was present. */ 387 388 /* Generate code to turn off the fixed overflow mask in the indicator registers. */ 389 call cobol_fofl_mask$off; 390 if receive_count > 1 391 then do; /* More that one augend/receiving field. */ 392 /* Generate code to load the overflow flag, and test it for zero. */ 393 register_struc.what_reg = 4; /* A or Q */ 394 register_struc.lock = 0; 395 register_struc.contains = 0; 396 call cobol_register$load (addr (register_struc)); 397 398 if register_struc.reg_no = "0001"b 399 then inst_struc_basic.fill1_op = LDA; 400 else inst_struc_basic.fill1_op = LDQ; 401 call cobol_emit (inst_ptr, reloc_ptr, 1); 402 403 /* Generate code to test for non-zero, and transfer to the imperative statement tag 404* if not zero. */ 405 call cobol_emit (addr (tnz_inst), null (), 1); 406 call cobol_make_tagref (imperative_stmt_tag, cobol_$text_wd_off - 1, null ()); 407 408 end; /* More than one augend/receiving field. */ 409 410 /*[4.0-1]*/ 411 if end_stmt.f = "01"b /*[4.0-1]*/ 412 then next_stmt_tag = imperative_stmt_tag; 413 /*[4.0-1]*/ 414 else do; 415 416 /* Generate code to transfer to the next cobol statement ( the one 417* following the imperative statement. ) */ 418 call cobol_emit (addr (tra_inst), null (), 1); 419 call cobol_make_tagref (next_stmt_tag, cobol_$text_wd_off - 1, null ()); 420 421 /* Define the imperative statement tag at the next instruction location. */ 422 call cobol_define_tag (imperative_stmt_tag); 423 424 /*[4.0-1]*/ 425 end; 426 427 428 end; /* On size error clause was present. */ 429 exit_format1: 430 return; 431 end format1; 432 433 434 format2: 435 proc;/***..... dcl LOCAL_NAME char (9) int static init (": FORMAT2");/**/ 436 /***..... if Trace_Bit then call cobol_gen_driver_$Tr_Beg(MY_NAME||LOCAL_NAME);/**/ 437 438 /* 439*This procedure generates code for format 2 add and subtract statements. 440**/ 441 442 443 start_format2: /* Reverse the operands, because the cobol_add2_binary procedures 444* require that the minuend be the first parameter, and in the 445* in_token structure, the minuend follows the subtrahend. Since 446* addition is commutative, reversing the operands has no effect 447* on addition. 448* */ 449 temp_lop_token_ptr = in_token.token_ptr (3); 450 temp_rop_token_ptr = in_token.token_ptr (2); 451 452 if temp_lop_token_ptr -> data_name.type = rtc_resword 453 then do; /* "Left" operand is the figurative constant ZERO. */ 454 temp_lop_token_ptr = null (); 455 call cobol_make_type9$type2_3 (temp_lop_token_ptr, addr (dec_zero_token)); 456 end; /* "Left" operand is the figurative constant ZERO. */ 457 458 if temp_rop_token_ptr -> data_name.type = rtc_resword 459 then do; /* "Right" operand is the figurative constant ZERO. */ 460 temp_rop_token_ptr = null (); 461 call cobol_make_type9$type2_3 (temp_rop_token_ptr, addr (dec_zero_token)); 462 end; /* "Right" operand is the figurative constant ZERO. */ 463 464 /* Determine the register [ (a or q) or index register] in which 465* the computation is to be performed. */ 466 if source_code > target_code 467 then add_code = source_code; 468 else add_code = target_code; /* Always pick the largest register 469* required for the computation. */ 470 471 if temp_lop_token_ptr -> data_name.type = rtc_numlit 472 then do; /* "Left" operand is a numeric literal. */ 473 /* Convert the numeric literal to a binary constant. */ 474 work_token_ptr = temp_lop_token_ptr; 475 temp_lop_token_ptr = null (); 476 call cobol_make_bin_const (work_token_ptr, temp_lop_token_ptr, add_code); 477 end; /* "Left" operand is a numeric literal. */ 478 479 if temp_rop_token_ptr -> data_name.type = rtc_numlit 480 then do; /* "Right" operand is a numeric literal. */ 481 /* Convert the numeric literal to a binary constant. */ 482 work_token_ptr = temp_rop_token_ptr; 483 temp_rop_token_ptr = null (); 484 call cobol_make_bin_const (work_token_ptr, temp_rop_token_ptr, add_code); 485 end; /* "Right" operand is a numeric literal. */ 486 487 if ose_flag 488 then call cobol_fofl_mask$on; /* Generate code to turn on the fixed overflow 489* mask bit in the indicator register. */ 490 491 /* Generate code to do the add or subtract. */ 492 result_token_ptr = null (); 493 if add_code = 2 494 then call cobol_add2_binary_long (temp_lop_token_ptr, temp_rop_token_ptr, result_token_ptr, operation_code); 495 else call cobol_add2_binary_short (temp_lop_token_ptr, temp_rop_token_ptr, result_token_ptr, operation_code); 496 497 if ose_flag 498 then do; /* On size error clause was present. */ 499 /* Generate code to test for overflow and transfer to the imperative 500* statement if overflow occurred. */ 501 call cobol_emit (addr (tov_inst), null (), 1); 502 call cobol_make_tagref (imperative_stmt_tag, cobol_$text_wd_off - 1, null ()); 503 end; /* On size error clause was present. */ 504 505 /* The result of the add or subtract is now in a hardware register. 506* Now we generate code to store the result into each of the receiving fields, 507* first into all long binary receiving fields, and then into all 508* short binary receiving fields. */ 509 510 skipped_some = "0"b; 511 512 do ix = 4 to in_token.n - 1; /* Try storing into equal size receiving fields. */ 513 514 if (add_code = 2 /* Result is long binary */ 515 & in_token.token_ptr (ix) -> data_name.bin_18 /* target is short bin */) 516 then skipped_some = "1"b; 517 518 else call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 519 end; /* Try storing into equal size receiving fields. */ 520 521 if skipped_some 522 then do; /* Must store the result into short binary receiving fields. */ 523 524 do ix = 4 to in_token.n - 1; /* Scan the receiving field tokens. */ 525 526 if in_token.token_ptr (ix) -> data_name.bin_18 527 then call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 528 529 if call_again 530 then do; /* Result has been moved into a temp in an attempt to force overflow. */ 531 if ose_flag 532 then do; /* On size clause present. */ 533 call cobol_emit (addr (tov_inst), null (), 1); 534 call cobol_make_tagref (imperative_stmt_tag, cobol_$text_wd_off - 1, null ()) 535 ; 536 end; /* On size clause present. */ 537 /* Generate code to move the temp into the receiving field. */ 538 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 539 end; /* Result has been moved into a temp in an attempt to force overflow. */ 540 541 end; /* Scan the receiving field tokens. */ 542 end; /* Must store the result into short binary receiving fields. */ 543 544 if ose_flag 545 then do; /* On size error clause was present. */ 546 /* Generate code to turn off the fixed overflow mask bit. */ 547 call cobol_fofl_mask$off; 548 549 /*[4.0-1]*/ 550 if end_stmt.f = "01"b /*[4.0-1]*/ 551 then next_stmt_tag = imperative_stmt_tag; 552 /*[4.0-1]*/ 553 else do; 554 555 /* Emit code to transfer to the next cobol statement. (The statement 556* following the imperative statement.) */ 557 call cobol_emit (addr (tra_inst), null (), 1); 558 call cobol_make_tagref (next_stmt_tag, cobol_$text_wd_off - 1, null ()); 559 /* Define the imperative statement tag at the next instruction location. */ 560 call cobol_define_tag (imperative_stmt_tag); 561 562 /*[4.0-1]*/ 563 end; 564 565 /* Generate code to turn off the fixed overflow mask bit */ 566 call cobol_fofl_mask$off; 567 568 end; /* On size error clause was present. */ 569 570 if result_token_ptr -> data_name.type = rtc_register 571 then do; /* Result token describes a register. */ 572 /* Release the register, since the value there has been stored into all receiving fields. */ 573 register_struc.reg_no = result_token_ptr -> cobol_type100.register; 574 call cobol_register$release (addr (register_struc)); 575 end; /* Result token describes a register. */ 576 exit_format2: 577 return; 578 end format2; 579 580 581 /***..... dcl cobol_gen_driver_$Tr_Beg entry(char(*));/**/ 582 /***..... dcl cobol_gen_driver_$Tr_End entry(char(*));/**/ 583 584 /***..... dcl Trace_Bit bit(1) static external;/**/ 585 /***..... dcl Trace_Lev fixed bin static external;/**/ 586 /***..... dcl Trace_Line char(36) static external;/**/ 587 /***..... dcl ioa_ entry options(variable); /**/ 588 /***..... dcl MY_NAME char (20) int static init ("COBOL_ADD_BINARY_GEN");/**/ 589 590 /***** Declaration for builtin function *****/ 591 592 dcl (substr, mod, binary, fixed, addr, addrel, rel, length, string, unspec, null, index) 593 builtin; 594 595 /***** End of declaration for builtin function *****/ 596 1 1 1 2 /* BEGIN INCLUDE FILE ... cobol_type9.incl.pl1 */ 1 3 /* Last modified on 11/19/76 by ORN */ 1 4 1 5 /* 1 6*A type 9 data name token is entered into the name table by the data 1 7*division syntax phase for each data name described in the data division. 1 8*The replacement phase subsequently replaces type 8 user word references 1 9*to data names in the procedure division minpral file with the corresponding 1 10*type 9 tokens from the name table. 1 11**/ 1 12 1 13 /* dcl dn_ptr ptr; */ 1 14 1 15 /* BEGIN DECLARATION OF TYPE9 (DATA NAME) TOKEN */ 1 16 dcl 1 data_name based (dn_ptr), 2 1 2 2 /* begin include file ... cobol_TYPE9.incl.pl1 */ 2 3 /* Last modified on 06/19/77 by ORN */ 2 4 /* Last modified on 12/28/76 by FCH */ 2 5 2 6 /* header */ 2 7 2 size fixed bin, 2 8 2 line fixed bin, 2 9 2 column fixed bin, 2 10 2 type fixed bin, 2 11 /* body */ 2 12 2 string_ptr ptr, 2 13 2 prev_rec ptr, 2 14 2 searched bit (1), 2 15 2 duplicate bit (1), 2 16 2 saved bit (1), 2 17 2 debug_ind bit (1), 2 18 2 filler2 bit (3), 2 19 2 used_as_sub bit (1), 2 20 2 def_line fixed bin, 2 21 2 level fixed bin, 2 22 2 linkage fixed bin, 2 23 2 file_num fixed bin, 2 24 2 size_rtn fixed bin, 2 25 2 item_length fixed bin(24), 2 26 2 places_left fixed bin, 2 27 2 places_right fixed bin, 2 28 /* description */ 2 29 2 file_section bit (1), 2 30 2 working_storage bit (1), 2 31 2 constant_section bit (1), 2 32 2 linkage_section bit (1), 2 33 2 communication_section bit (1), 2 34 2 report_section bit (1), 2 35 2 level_77 bit (1), 2 36 2 level_01 bit (1), 2 37 2 non_elementary bit (1), 2 38 2 elementary bit (1), 2 39 2 filler_item bit (1), 2 40 2 s_of_rdf bit (1), 2 41 2 o_of_rdf bit (1), 2 42 2 bin_18 bit (1), 2 43 2 bin_36 bit (1), 2 44 2 pic_has_l bit (1), 2 45 2 pic_is_do bit (1), 2 46 2 numeric bit (1), 2 47 2 numeric_edited bit (1), 2 48 2 alphanum bit (1), 2 49 2 alphanum_edited bit (1), 2 50 2 alphabetic bit (1), 2 51 2 alphabetic_edited bit (1), 2 52 2 pic_has_p bit (1), 2 53 2 pic_has_ast bit (1), 2 54 2 item_signed bit(1), 2 55 2 sign_separate bit (1), 2 56 2 display bit (1), 2 57 2 comp bit (1), 2 58 2 ascii_packed_dec_h bit (1), /* as of 8/16/76 this field used for comp8. */ 2 59 2 ascii_packed_dec bit (1), 2 60 2 ebcdic_packed_dec bit (1), 2 61 2 bin_16 bit (1), 2 62 2 bin_32 bit (1), 2 63 2 usage_index bit (1), 2 64 2 just_right bit (1), 2 65 2 compare_argument bit (1), 2 66 2 sync bit (1), 2 67 2 temporary bit (1), 2 68 2 bwz bit (1), 2 69 2 variable_length bit (1), 2 70 2 subscripted bit (1), 2 71 2 occurs_do bit (1), 2 72 2 key_a bit (1), 2 73 2 key_d bit (1), 2 74 2 indexed_by bit (1), 2 75 2 value_numeric bit (1), 2 76 2 value_non_numeric bit (1), 2 77 2 value_signed bit (1), 2 78 2 sign_type bit (3), 2 79 2 pic_integer bit (1), 2 80 2 ast_when_zero bit (1), 2 81 2 label_record bit (1), 2 82 2 sign_clause_occurred bit (1), 2 83 2 okey_dn bit (1), 2 84 2 subject_of_keyis bit (1), 2 85 2 exp_redefining bit (1), 2 86 2 sync_in_rec bit (1), 2 87 2 rounded bit (1), 2 88 2 ad_bit bit (1), 2 89 2 debug_all bit (1), 2 90 2 overlap bit (1), 2 91 2 sum_counter bit (1), 2 92 2 exp_occurs bit (1), 2 93 2 linage_counter bit (1), 2 94 2 rnm_01 bit (1), 2 95 2 aligned bit (1), 2 96 2 not_user_writable bit (1), 2 97 2 database_key bit (1), 2 98 2 database_data_item bit (1), 2 99 2 seg_num fixed bin, 2 100 2 offset fixed bin(24), 2 101 2 initial_ptr fixed bin, 2 102 2 edit_ptr fixed bin, 2 103 2 occurs_ptr fixed bin, 2 104 2 do_rec char(5), 2 105 2 bitt bit (1), 2 106 2 byte bit (1), 2 107 2 half_word bit (1), 2 108 2 word bit (1), 2 109 2 double_word bit (1), 2 110 2 half_byte bit (1), 2 111 2 filler5 bit (1), 2 112 2 bit_offset bit (4), 2 113 2 son_cnt bit (16), 2 114 2 max_red_size fixed bin(24), 2 115 2 name_size fixed bin, 2 116 2 name char(0 refer(data_name.name_size)); 2 117 2 118 2 119 2 120 /* end include file ... cobol_TYPE9.incl.pl1 */ 2 121 1 17 1 18 /* END DECLARATION OF TYPE9 (DATA NAME) TOKEN */ 1 19 1 20 /* END INCLUDE FILE ... cobol_type9.incl.pl1 */ 1 21 597 3 1 3 2 /* BEGIN INCLUDE FILE ... cobol_addr_tokens.incl.pl1 */ 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8058), 3 7* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 3 8* MCR8058 cobol_addr_tokens.incl.pl1 Change array extents to refer to 3 9* constants rather than variables. 3 10* END HISTORY COMMENTS */ 3 11 3 12 3 13 /* Last modified on 10/1/74 by tg */ 3 14 3 15 3 16 /* parameter list */ 3 17 3 18 dcl (input_ptr, inst_ptr, reloc_ptr) ptr; 3 19 3 20 3 21 /* input_struc_basic is used for type 1 addressing */ 3 22 3 23 dcl 1 input_struc_basic based (input_ptr), 3 24 2 type fixed bin, 3 25 2 operand_no fixed bin, 3 26 2 lock fixed bin, 3 27 2 segno fixed bin, 3 28 2 char_offset fixed bin (24), 3 29 2 send_receive fixed bin; 3 30 3 31 3 32 dcl 1 input_struc based (input_ptr), 3 33 2 type fixed bin, 3 34 2 operand_no fixed bin, 3 35 2 lock fixed bin, 3 36 2 operand (0 refer (input_struc.operand_no)), 3 37 3 token_ptr ptr, 3 38 3 send_receive fixed bin, 3 39 3 ic_mod fixed bin, 3 40 3 size_sw fixed bin; 3 41 3 42 /* reloc_struc is used for all types of addressing * all types */ 3 43 3 44 dcl 1 reloc_struc (input_struc.operand_no + 1) based (reloc_ptr), 3 45 2 left_wd bit (5) aligned, 3 46 2 right_wd bit (5) aligned; 3 47 3 48 /* Instruction format for 1 word instruction */ 3 49 3 50 3 51 dcl 1 inst_struc_basic based (inst_ptr) aligned, 3 52 2 y unaligned, 3 53 3 pr bit (3) unaligned, 3 54 3 wd_offset bit (15) unaligned, 3 55 2 fill1_op bit (10) unaligned, 3 56 2 zero1 bit (1) unaligned, 3 57 2 pr_spec bit (1) unaligned, 3 58 2 tm bit (2) unaligned, 3 59 2 td bit (4) unaligned; 3 60 3 61 3 62 /* The detailed definitions of the fields in this structure 3 63* can be found in the GMAP manual section 8 */ 3 64 /* EIS instruction format for 2_4 word instructions */ 3 65 3 66 dcl 1 inst_struc based (inst_ptr) aligned, 3 67 2 inst unaligned, 3 68 3 zero1 bit (2) unaligned, 3 69 3 mf3 unaligned, 3 70 4 pr_spec bit (1) unaligned, 3 71 4 reg_or_length bit (1) unaligned, 3 72 4 zero2 bit (1) unaligned, 3 73 4 reg_mod bit (4) unaligned, 3 74 3 zero3 bit (2) unaligned, 3 75 3 mf2 unaligned, 3 76 4 pr_spec bit (1) unaligned, 3 77 4 reg_or_length bit (1) unaligned, 3 78 4 zero4 bit (1) unaligned, 3 79 4 reg_mod bit (4) unaligned, 3 80 3 fill1_op bit (10) unaligned, 3 81 3 zero5 bit (1) unaligned, 3 82 3 mf1 unaligned, 3 83 4 pr_spec bit (1) unaligned, 3 84 4 reg_or_length bit (1) unaligned, 3 85 4 zero6 bit (1) unaligned, 3 86 4 reg_mod bit (4) unaligned, 3 87 2 desc_ext unaligned, 3 88 3 desc (512) unaligned, 3 89 4 desc_od bit (36) unaligned; 3 90 3 91 /* The detailed definitions of the fields in this structure 3 92* can be found in the GMAP manual section 8. 3 93* The desc_ext is the descriptor extension of this eis 3 94* instruction. The number of descriptors associated with 3 95* this instruction is equavalent to the operand number. 3 96* Depending on operand data type, the descriptor 3 97* can be alphanumeric or numeric. The structures of the 3 98* alphanumeric and the numeric descriptors are defined 3 99* below. */ 3 100 3 101 /* alphanumeric descriptor format */ 3 102 3 103 dcl 1 desc_an based (desc_an_ptr) unaligned, 3 104 2 desc_f (512) unaligned, 3 105 3 y unaligned, 3 106 4 pr bit (3) unaligned, 3 107 4 wd_offset bit (15) unaligned, 3 108 3 char_n bit (3) unaligned, 3 109 3 zero1 bit (1) unaligned, 3 110 3 ta bit (2), 3 111 3 n bit (12) unaligned; 3 112 3 113 3 114 /* The detailed definitions of the fields in this structure can 3 115* be found in the GMAP manual section 8. */ 3 116 /* numeric descriptor format */ 3 117 3 118 dcl desc_nn_ptr ptr; 3 119 dcl desc_an_ptr ptr; 3 120 3 121 3 122 dcl 1 desc_nn based (desc_nn_ptr) unaligned, 3 123 2 desc_f (512) unaligned, 3 124 3 y unaligned, 3 125 4 pr bit (3) unaligned, 3 126 4 wd_offset bit (15) unaligned, 3 127 3 digit_n bit (3) unaligned, 3 128 3 tn bit (1) unaligned, 3 129 3 sign_type bit (2) unaligned, 3 130 3 scal bit (6) unaligned, 3 131 3 n bit (6) unaligned; 3 132 3 133 3 134 /* The detailed definitions of fields in this structure can 3 135* be found in the GMAP manual section 8. */ 3 136 /* END INCLUDE FILE ... cobol_addr_tokens.incl.pl1 */ 3 137 598 4 1 4 2 /* BEGIN INCLUDE FILE ... cobol_.incl.pl1 */ 4 3 /* last modified Feb 4, 1977 by ORN */ 4 4 4 5 /* This file defines all external data used in the generator phase of Multics Cobol */ 4 6 4 7 /* POINTERS */ 4 8 dcl cobol_$text_base_ptr ptr ext; 4 9 dcl text_base_ptr ptr defined (cobol_$text_base_ptr); 4 10 dcl cobol_$con_end_ptr ptr ext; 4 11 dcl con_end_ptr ptr defined (cobol_$con_end_ptr); 4 12 dcl cobol_$def_base_ptr ptr ext; 4 13 dcl def_base_ptr ptr defined (cobol_$def_base_ptr); 4 14 dcl cobol_$link_base_ptr ptr ext; 4 15 dcl link_base_ptr ptr defined (cobol_$link_base_ptr); 4 16 dcl cobol_$sym_base_ptr ptr ext; 4 17 dcl sym_base_ptr ptr defined (cobol_$sym_base_ptr); 4 18 dcl cobol_$reloc_text_base_ptr ptr ext; 4 19 dcl reloc_text_base_ptr ptr defined (cobol_$reloc_text_base_ptr); 4 20 dcl cobol_$reloc_def_base_ptr ptr ext; 4 21 dcl reloc_def_base_ptr ptr defined (cobol_$reloc_def_base_ptr); 4 22 dcl cobol_$reloc_link_base_ptr ptr ext; 4 23 dcl reloc_link_base_ptr ptr defined (cobol_$reloc_link_base_ptr); 4 24 dcl cobol_$reloc_sym_base_ptr ptr ext; 4 25 dcl reloc_sym_base_ptr ptr defined (cobol_$reloc_sym_base_ptr); 4 26 dcl cobol_$reloc_work_base_ptr ptr ext; 4 27 dcl reloc_work_base_ptr ptr defined (cobol_$reloc_work_base_ptr); 4 28 dcl cobol_$pd_map_ptr ptr ext; 4 29 dcl pd_map_ptr ptr defined (cobol_$pd_map_ptr); 4 30 dcl cobol_$fixup_ptr ptr ext; 4 31 dcl fixup_ptr ptr defined (cobol_$fixup_ptr); 4 32 dcl cobol_$initval_base_ptr ptr ext; 4 33 dcl initval_base_ptr ptr defined (cobol_$initval_base_ptr); 4 34 dcl cobol_$initval_file_ptr ptr ext; 4 35 dcl initval_file_ptr ptr defined (cobol_$initval_file_ptr); 4 36 dcl cobol_$perform_list_ptr ptr ext; 4 37 dcl perform_list_ptr ptr defined (cobol_$perform_list_ptr); 4 38 dcl cobol_$alter_list_ptr ptr ext; 4 39 dcl alter_list_ptr ptr defined (cobol_$alter_list_ptr); 4 40 dcl cobol_$seg_init_list_ptr ptr ext; 4 41 dcl seg_init_list_ptr ptr defined (cobol_$seg_init_list_ptr); 4 42 dcl cobol_$temp_token_area_ptr ptr ext; 4 43 dcl temp_token_area_ptr ptr defined (cobol_$temp_token_area_ptr); 4 44 dcl cobol_$temp_token_ptr ptr ext; 4 45 dcl temp_token_ptr ptr defined (cobol_$temp_token_ptr); 4 46 dcl cobol_$token_block1_ptr ptr ext; 4 47 dcl token_block1_ptr ptr defined (cobol_$token_block1_ptr); 4 48 dcl cobol_$token_block2_ptr ptr ext; 4 49 dcl token_block2_ptr ptr defined (cobol_$token_block2_ptr); 4 50 dcl cobol_$minpral5_ptr ptr ext; 4 51 dcl minpral5_ptr ptr defined (cobol_$minpral5_ptr); 4 52 dcl cobol_$tag_table_ptr ptr ext; 4 53 dcl tag_table_ptr ptr defined (cobol_$tag_table_ptr); 4 54 dcl cobol_$map_data_ptr ptr ext; 4 55 dcl map_data_ptr ptr defined (cobol_$map_data_ptr); 4 56 dcl cobol_$ptr_status_ptr ptr ext; 4 57 dcl ptr_status_ptr ptr defined (cobol_$ptr_status_ptr); 4 58 dcl cobol_$reg_status_ptr ptr ext; 4 59 dcl reg_status_ptr ptr defined (cobol_$reg_status_ptr); 4 60 dcl cobol_$misc_base_ptr ptr ext; 4 61 dcl misc_base_ptr ptr defined (cobol_$misc_base_ptr); 4 62 dcl cobol_$misc_end_ptr ptr ext; 4 63 dcl misc_end_ptr ptr defined (cobol_$misc_end_ptr); 4 64 dcl cobol_$list_ptr ptr ext; 4 65 dcl list_ptr ptr defined (cobol_$list_ptr); 4 66 dcl cobol_$allo1_ptr ptr ext; 4 67 dcl allo1_ptr ptr defined (cobol_$allo1_ptr); 4 68 dcl cobol_$eln_ptr ptr ext; 4 69 dcl eln_ptr ptr defined (cobol_$eln_ptr); 4 70 dcl cobol_$diag_ptr ptr ext; 4 71 dcl diag_ptr ptr defined (cobol_$diag_ptr); 4 72 dcl cobol_$xref_token_ptr ptr ext; 4 73 dcl xref_token_ptr ptr defined (cobol_$xref_token_ptr); 4 74 dcl cobol_$xref_chain_ptr ptr ext; 4 75 dcl xref_chain_ptr ptr defined (cobol_$xref_chain_ptr); 4 76 dcl cobol_$statement_info_ptr ptr ext; 4 77 dcl statement_info_ptr ptr defined (cobol_$statement_info_ptr); 4 78 dcl cobol_$reswd_ptr ptr ext; 4 79 dcl reswd_ptr ptr defined (cobol_$reswd_ptr); 4 80 dcl cobol_$op_con_ptr ptr ext; 4 81 dcl op_con_ptr ptr defined (cobol_$op_con_ptr); 4 82 dcl cobol_$ntbuf_ptr ptr ext; 4 83 dcl ntbuf_ptr ptr defined (cobol_$ntbuf_ptr); 4 84 dcl cobol_$main_pcs_ptr ptr ext; 4 85 dcl main_pcs_ptr ptr defined (cobol_$main_pcs_ptr); 4 86 dcl cobol_$include_info_ptr ptr ext; 4 87 dcl include_info_ptr ptr defined (cobol_$include_info_ptr); 4 88 4 89 /* FIXED BIN */ 4 90 dcl cobol_$text_wd_off fixed bin ext; 4 91 dcl text_wd_off fixed bin defined (cobol_$text_wd_off); 4 92 dcl cobol_$con_wd_off fixed bin ext; 4 93 dcl con_wd_off fixed bin defined (cobol_$con_wd_off); 4 94 dcl cobol_$def_wd_off fixed bin ext; 4 95 dcl def_wd_off fixed bin defined (cobol_$def_wd_off); 4 96 dcl cobol_$def_max fixed bin ext; 4 97 dcl def_max fixed bin defined (cobol_$def_max); 4 98 dcl cobol_$link_wd_off fixed bin ext; 4 99 dcl link_wd_off fixed bin defined (cobol_$link_wd_off); 4 100 dcl cobol_$link_max fixed bin ext; 4 101 dcl link_max fixed bin defined (cobol_$link_max); 4 102 dcl cobol_$sym_wd_off fixed bin ext; 4 103 dcl sym_wd_off fixed bin defined (cobol_$sym_wd_off); 4 104 dcl cobol_$sym_max fixed bin ext; 4 105 dcl sym_max fixed bin defined (cobol_$sym_max); 4 106 dcl cobol_$reloc_text_max fixed bin(24) ext; 4 107 dcl reloc_text_max fixed bin(24) defined (cobol_$reloc_text_max); 4 108 dcl cobol_$reloc_def_max fixed bin(24) ext; 4 109 dcl reloc_def_max fixed bin(24) defined (cobol_$reloc_def_max); 4 110 dcl cobol_$reloc_link_max fixed bin(24) ext; 4 111 dcl reloc_link_max fixed bin(24) defined (cobol_$reloc_link_max); 4 112 dcl cobol_$reloc_sym_max fixed bin(24) ext; 4 113 dcl reloc_sym_max fixed bin(24) defined (cobol_$reloc_sym_max); 4 114 dcl cobol_$reloc_work_max fixed bin(24) ext; 4 115 dcl reloc_work_max fixed bin(24) defined (cobol_$reloc_work_max); 4 116 dcl cobol_$pd_map_index fixed bin ext; 4 117 dcl pd_map_index fixed bin defined (cobol_$pd_map_index); 4 118 dcl cobol_$cobol_data_wd_off fixed bin ext; 4 119 dcl cobol_data_wd_off fixed bin defined (cobol_$cobol_data_wd_off); 4 120 dcl cobol_$stack_off fixed bin ext; 4 121 dcl stack_off fixed bin defined (cobol_$stack_off); 4 122 dcl cobol_$max_stack_off fixed bin ext; 4 123 dcl max_stack_off fixed bin defined (cobol_$max_stack_off); 4 124 dcl cobol_$init_stack_off fixed bin ext; 4 125 dcl init_stack_off fixed bin defined (cobol_$init_stack_off); 4 126 dcl cobol_$pd_map_sw fixed bin ext; 4 127 dcl pd_map_sw fixed bin defined (cobol_$pd_map_sw); 4 128 dcl cobol_$next_tag fixed bin ext; 4 129 dcl next_tag fixed bin defined (cobol_$next_tag); 4 130 dcl cobol_$data_init_flag fixed bin ext; 4 131 dcl data_init_flag fixed bin defined (cobol_$data_init_flag); 4 132 dcl cobol_$seg_init_flag fixed bin ext; 4 133 dcl seg_init_flag fixed bin defined (cobol_$seg_init_flag); 4 134 dcl cobol_$alter_flag fixed bin ext; 4 135 dcl alter_flag fixed bin defined (cobol_$alter_flag); 4 136 dcl cobol_$sect_eop_flag fixed bin ext; 4 137 dcl sect_eop_flag fixed bin defined (cobol_$sect_eop_flag); 4 138 dcl cobol_$para_eop_flag fixed bin ext; 4 139 dcl para_eop_flag fixed bin defined (cobol_$para_eop_flag); 4 140 dcl cobol_$priority_no fixed bin ext; 4 141 dcl priority_no fixed bin defined (cobol_$priority_no); 4 142 dcl cobol_$compile_count fixed bin ext; 4 143 dcl compile_count fixed bin defined (cobol_$compile_count); 4 144 dcl cobol_$ptr_assumption_ind fixed bin ext; 4 145 dcl ptr_assumption_ind fixed bin defined (cobol_$ptr_assumption_ind); 4 146 dcl cobol_$reg_assumption_ind fixed bin ext; 4 147 dcl reg_assumption_ind fixed bin defined (cobol_$reg_assumption_ind); 4 148 dcl cobol_$perform_para_index fixed bin ext; 4 149 dcl perform_para_index fixed bin defined (cobol_$perform_para_index); 4 150 dcl cobol_$perform_sect_index fixed bin ext; 4 151 dcl perform_sect_index fixed bin defined (cobol_$perform_sect_index); 4 152 dcl cobol_$alter_index fixed bin ext; 4 153 dcl alter_index fixed bin defined (cobol_$alter_index); 4 154 dcl cobol_$list_off fixed bin ext; 4 155 dcl list_off fixed bin defined (cobol_$list_off); 4 156 dcl cobol_$constant_offset fixed bin ext; 4 157 dcl constant_offset fixed bin defined (cobol_$constant_offset); 4 158 dcl cobol_$misc_max fixed bin ext; 4 159 dcl misc_max fixed bin defined (cobol_$misc_max); 4 160 dcl cobol_$pd_map_max fixed bin ext; 4 161 dcl pd_map_max fixed bin defined (cobol_$pd_map_max); 4 162 dcl cobol_$map_data_max fixed bin ext; 4 163 dcl map_data_max fixed bin defined (cobol_$map_data_max); 4 164 dcl cobol_$fixup_max fixed bin ext; 4 165 dcl fixup_max fixed bin defined (cobol_$fixup_max); 4 166 dcl cobol_$tag_table_max fixed bin ext; 4 167 dcl tag_table_max fixed bin defined (cobol_$tag_table_max); 4 168 dcl cobol_$temp_token_max fixed bin ext; 4 169 dcl temp_token_max fixed bin defined (cobol_$temp_token_max); 4 170 dcl cobol_$allo1_max fixed bin ext; 4 171 dcl allo1_max fixed bin defined (cobol_$allo1_max); 4 172 dcl cobol_$eln_max fixed bin ext; 4 173 dcl eln_max fixed bin defined (cobol_$eln_max); 4 174 dcl cobol_$debug_enable fixed bin ext; 4 175 dcl debug_enable fixed bin defined (cobol_$debug_enable); 4 176 dcl cobol_$non_source_offset fixed bin ext; 4 177 dcl non_source_offset fixed bin defined (cobol_$non_source_offset); 4 178 dcl cobol_$initval_flag fixed bin ext; 4 179 dcl initval_flag fixed bin defined (cobol_$initval_flag); 4 180 dcl cobol_$date_compiled_sw fixed bin ext; 4 181 dcl date_compiled_sw fixed bin defined (cobol_$date_compiled_sw); 4 182 dcl cobol_$include_cnt fixed bin ext; 4 183 dcl include_cnt fixed bin defined (cobol_$include_cnt); 4 184 dcl cobol_$fs_charcnt fixed bin ext; 4 185 dcl fs_charcnt fixed bin defined (cobol_$fs_charcnt); 4 186 dcl cobol_$ws_charcnt fixed bin ext; 4 187 dcl ws_charcnt fixed bin defined (cobol_$ws_charcnt); 4 188 dcl cobol_$coms_charcnt fixed bin ext; 4 189 dcl coms_charcnt fixed bin defined (cobol_$coms_charcnt); 4 190 dcl cobol_$ls_charcnt fixed bin ext; 4 191 dcl ls_charcnt fixed bin defined (cobol_$ls_charcnt); 4 192 dcl cobol_$cons_charcnt fixed bin ext; 4 193 dcl cons_charcnt fixed bin defined (cobol_$cons_charcnt); 4 194 dcl cobol_$value_cnt fixed bin ext; 4 195 dcl value_cnt fixed bin defined (cobol_$value_cnt); 4 196 dcl cobol_$cd_cnt fixed bin ext; 4 197 dcl cd_cnt fixed bin defined (cobol_$cd_cnt); 4 198 dcl cobol_$fs_wdoff fixed bin ext; 4 199 dcl fs_wdoff fixed bin defined (cobol_$fs_wdoff); 4 200 dcl cobol_$ws_wdoff fixed bin ext; 4 201 dcl ws_wdoff fixed bin defined (cobol_$ws_wdoff); 4 202 dcl cobol_$coms_wdoff fixed bin ext; 4 203 dcl coms_wdoff fixed bin defined (cobol_$coms_wdoff); 4 204 4 205 /* CHARACTER */ 4 206 dcl cobol_$scratch_dir char (168) aligned ext; 4 207 dcl scratch_dir char (168) aligned defined (cobol_$scratch_dir); /* -42- */ 4 208 dcl cobol_$obj_seg_name char (32) aligned ext; 4 209 dcl obj_seg_name char (32) aligned defined (cobol_$obj_seg_name); /* -8- */ 4 210 4 211 /* BIT */ 4 212 dcl cobol_$xref_bypass bit(1) aligned ext; 4 213 dcl xref_bypass bit(1) aligned defined (cobol_$xref_bypass); /* -1- */ 4 214 dcl cobol_$same_sort_merge_proc bit(1) aligned ext; 4 215 dcl same_sort_merge_proc bit(1) aligned defined (cobol_$same_sort_merge_proc); /* -1- */ 4 216 4 217 4 218 /* END INCLUDE FILE ... cobol_incl.pl1*/ 4 219 4 220 599 5 1 5 2 /* BEGIN INCLUDE FILE ... cobol_in_token.incl.pl1 */ 5 3 5 4 /* Last modified August 22, 1974 by AEG */ 5 5 5 6 5 7 declare in_token_ptr ptr; 5 8 5 9 declare 1 in_token aligned based(in_token_ptr), 5 10 2 n fixed bin aligned, 5 11 2 code fixed bin aligned, 5 12 2 token_ptr(0 refer(in_token.n)) ptr aligned; 5 13 5 14 5 15 /* END INCLUDE FILE ... cobol_in_token.incl.pl1 */ 5 16 600 6 1 6 2 /* BEGIN INCLUDE FILE ... cobol_record_types.incl.pl1 */ 6 3 /* <<< LAST MODIFIED ON 09-09-75 by tlf >>> */ 6 4 6 5 dcl rtc_resword fixed bin (15) int static init(1); 6 6 dcl rtc_numlit fixed bin (15) int static init(2); 6 7 dcl rtc_alphalit fixed bin (15) int static init(3); 6 8 dcl rtc_picstring fixed bin (15) int static init(4); 6 9 dcl rtc_diag fixed bin (15) int static init(5); 6 10 dcl rtc_source fixed bin (15) int static init(6); 6 11 dcl rtc_procdef fixed bin (15) int static init(7); 6 12 dcl rtc_userwd fixed bin (15) int static init(8); 6 13 dcl rtc_dataname fixed bin (15) int static init(9); 6 14 dcl rtc_indexname fixed bin (15) int static init(10); 6 15 dcl rtc_condname fixed bin (15) int static init(11); 6 16 dcl rtc_filedef fixed bin (15) int static init(12); 6 17 dcl rtc_commdesc fixed bin (15) int static init(13); 6 18 dcl rtc_debugitems fixed bin (15) int static init(14); 6 19 dcl rtc_savedarea fixed bin (15) int static init(15); 6 20 dcl rtc_sortmerge fixed bin (15) int static init(16); 6 21 dcl rtc_mnemonic fixed bin (15) int static init(17); 6 22 dcl rtc_pararef fixed bin (15) int static init(18); 6 23 dcl rtc_eos fixed bin (15) int static init(19); 6 24 dcl rtc_reportname fixed bin (15) int static init(20); 6 25 dcl rtc_groupname fixed bin (15) int static init(21); 6 26 dcl rtc_reportentry fixed bin (15) int static init(22); 6 27 dcl rtc_unknown1 fixed bin (15) int static init(23); 6 28 dcl rtc_debugenable fixed bin (15) int static init(24); 6 29 dcl rtc_unknown2 fixed bin (15) int static init(25); 6 30 dcl rtc_unknown3 fixed bin (15) int static init(26); 6 31 dcl rtc_unknown4 fixed bin (15) int static init(27); 6 32 dcl rtc_unknown5 fixed bin (15) int static init(28); 6 33 dcl rtc_unknown6 fixed bin (15) int static init(29); 6 34 dcl rtc_internal_tag fixed bin (15) int static init(30); 6 35 dcl rtc_equate_tag fixed bin (15) int static init(31); 6 36 dcl rtc_register fixed bin (15) int static init(100); 6 37 dcl rtc_fdec_temp fixed bin (15) int static init(101); 6 38 dcl rtc_immed_const fixed bin (15) int static init(102); 6 39 6 40 /* END INCLUDE FILE ... cobol_record_types.incl.pl1 */ 6 41 601 7 1 7 2 /* BEGIN INCLUDE FILE ... cobol_type100.incl.pl1 */ 7 3 /* Last modified on 11/19/76 by ORN */ 7 4 7 5 /* 7 6*The internal register token is used only during the code generation phase. 7 7**/ 7 8 7 9 dcl cobol_type100_ptr ptr; 7 10 7 11 /* BEGIN DECLARATION OF TYPE100 (INTERNAL REGISTER) TOKEN */ 7 12 dcl 1 cobol_type100 based (cobol_type100_ptr) aligned, 7 13 /* header */ 7 14 2 size fixed bin (15), 7 15 2 line fixed bin (15), 7 16 2 column fixed bin (7), 7 17 2 type fixed bin (7), 7 18 /* body */ 7 19 2 register bit (4) unaligned; 7 20 /* END DECLARATION OF TYPE100 (INTERNAL REGISTER) TOKEN */ 7 21 7 22 /* 7 23*FIELD CONTENTS 7 24* 7 25*size The total size in bytes of this token. 7 26*line Generated sequence number of source line. 7 27* Always 0. 7 28*column The column number on the source image. 7 29* Always 0. 7 30*type 100 7 31*register The register number in the following form. 7 32* "0001"b - A register. 7 33* "0010"b - Q register. 7 34* "0011"b - A and Q registers. 7 35* "1nnn"b - index register nnn. 7 36**/ 7 37 7 38 /* END INCLUDE FILE ... cobol_type100.incl.pl1 */ 7 39 602 8 1 8 2 /* BEGIN INCLUDE FILE ... cobol_type19.incl.pl1 */ 8 3 /* last modified on 11/19/76 by ORN */ 8 4 8 5 /* 8 6*A type 19 end of statement token is created in the procedure division 8 7*minpral file at the end of each minpral statement generated by the 8 8*procedure division syntax phase. A minpral statement may be a complete or 8 9*partial source language statement. A type 19 token contains information 8 10*describing the statement which it delimits. 8 11**/ 8 12 8 13 dcl eos_ptr ptr; 8 14 8 15 /* BEGIN DECLARATION OF TYPE19 (END STATEMENT) TOKEN */ 8 16 dcl 1 end_stmt based (eos_ptr), 9 1 9 2 /* begin include file ... cobol_TYPE19.incl.pl1 */ 9 3 /* Last modified on 11/17/76 by ORN */ 9 4 9 5 /* header */ 9 6 2 size fixed bin, 9 7 2 line fixed bin, 9 8 2 column fixed bin, 9 9 2 type fixed bin, 9 10 /* body */ 9 11 2 verb fixed bin, 9 12 2 e fixed bin, 9 13 2 h fixed bin, 9 14 2 i fixed bin, 9 15 2 j fixed bin, 9 16 2 a bit (3), 9 17 2 b bit (1), 9 18 2 c bit (1), 9 19 2 d bit (2), 9 20 2 f bit (2), 9 21 2 g bit (2), 9 22 2 k bit (5), 9 23 2 always_an bit (1); 9 24 9 25 /* end include file ... cobol_TYPE19.incl.pl1 */ 9 26 8 17 8 18 /* END DECLARATION OF TYPE19 (END STATEMENT) TOKEN */ 8 19 8 20 /* 8 21*FIELD CONTENTS 8 22* 8 23*size The total size in bytes of this end of statement token. 8 24*line 0 8 25*column 0 8 26*type 19 8 27*verb A value indicating the verb in this statement 8 28* 1 = accept 8 29* 2 = add 8 30* 3 = on size error 8 31* 4 = alter 8 32* 5 = call 8 33* 7 = cancel 8 34* 8 = close 8 35* 9 = divide 8 36* 10 = multiply 8 37* 11 = subtract 8 38* 12 = exit 8 39* 14 = go 8 40* 15 = merge 8 41* 16 = initiate 8 42* 17 = inspect 8 43* 18 = move 8 44* 19 = open 8 45* 20 = perform 8 46* 21 = read 8 47* 23 = receive 8 48* 24 = release 8 49* 25 = return 8 50* 26 = search 8 51* 27 = rewrite 8 52* 29 = seek 8 53* 30 = send 8 54* 31 = set 8 55* 33 = stop 8 56* 34 = string 8 57* 35 = suspend 8 58* 36 = terminate 8 59* 37 = unstring 8 60* 38 = write 8 61* 39 = use 8 62* 40 = compute 8 63* 41 = disable 8 64* 42 = display 8 65* 43 = enable 8 66* 45 = generate 8 67* 46 = hold 8 68* 48 = process 8 69* 49 = sort 8 70* 52 = procedure 8 71* 53 = declaratives 8 72* 54 = section name 8 73* 55 = paragraph name 8 74* 98 = end 8 75*e,h,i,j The significance of these fields differs with each 8 76* statement. These fields are normally used as counters. 8 77*a,b,c,d,f,g,k The significance of these fields differs with each 8 78* statement. These fields are normally used as indicators. 8 79**/ 8 80 8 81 /* END INCLUDE FILE ... cobol_type19.incl.pl1 */ 8 82 603 604 end cobol_add_binary_gen; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0830.4 cobol_add_binary_gen.pl1 >spec>install>MR12.3-1048>cobol_add_binary_gen.pl1 597 1 03/27/82 0439.9 cobol_type9.incl.pl1 >ldd>include>cobol_type9.incl.pl1 1-17 2 11/11/82 1712.7 cobol_TYPE9.incl.pl1 >ldd>include>cobol_TYPE9.incl.pl1 598 3 05/24/89 0811.7 cobol_addr_tokens.incl.pl1 >spec>install>MR12.3-1048>cobol_addr_tokens.incl.pl1 599 4 11/11/82 1712.7 cobol_.incl.pl1 >ldd>include>cobol_.incl.pl1 600 5 11/11/82 1712.7 cobol_in_token.incl.pl1 >ldd>include>cobol_in_token.incl.pl1 601 6 03/27/82 0439.8 cobol_record_types.incl.pl1 >ldd>include>cobol_record_types.incl.pl1 602 7 03/27/82 0439.8 cobol_type100.incl.pl1 >ldd>include>cobol_type100.incl.pl1 603 8 03/27/82 0439.8 cobol_type19.incl.pl1 >ldd>include>cobol_type19.incl.pl1 8-17 9 03/27/82 0439.6 cobol_TYPE19.incl.pl1 >ldd>include>cobol_TYPE19.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. AOS constant bit(10) initial packed unaligned dcl 115 ref 367 LDA constant bit(10) initial packed unaligned dcl 117 ref 398 LDQ constant bit(10) initial packed unaligned dcl 119 ref 400 STZ constant bit(10) initial packed unaligned dcl 113 ref 264 a 11 based bit(3) level 2 packed packed unaligned dcl 8-16 ref 209 add_code 000154 automatic fixed bin(17,0) dcl 178 set ref 312* 314* 326 466* 468* 476* 484* 493 514 addend_token_ptr 000142 automatic pointer dcl 169 set ref 233* 235 239* 240* 282 287 296* 298 301* 316 addr builtin function dcl 592 ref 240 240 252 253 254 299 299 335 335 347 347 356 356 362 362 396 396 405 405 418 418 455 455 461 461 501 501 533 533 557 557 574 574 b 11(03) based bit(1) level 2 packed packed unaligned dcl 8-16 ref 200 bin_18 21(13) based bit(1) level 2 packed packed unaligned dcl 1-16 ref 287 308 514 526 call_again 000170 automatic bit(1) packed unaligned dcl 187 set ref 296* 342* 343 352* 518* 526* 529 538* char_offset 4 based fixed bin(24,0) level 2 dcl 3-23 set ref 261* cobol_$next_tag 000070 external static fixed bin(17,0) dcl 4-128 set ref 204 206* 206 268 270* 270 376 378* 378 cobol_$text_wd_off 000066 external static fixed bin(17,0) dcl 4-90 ref 337 348 363 406 419 502 534 558 cobol_add2_binary_long 000052 constant entry external dcl 102 ref 329 493 cobol_add2_binary_short 000050 constant entry external dcl 100 ref 326 495 cobol_addr 000036 constant entry external dcl 94 ref 263 cobol_alloc$stack 000034 constant entry external dcl 93 ref 250 290 cobol_define_tag 000060 constant entry external dcl 106 ref 366 371 422 560 cobol_emit 000040 constant entry external dcl 95 ref 265 335 347 362 368 401 405 418 501 533 557 cobol_fofl_mask$off 000044 constant entry external dcl 97 ref 389 547 566 cobol_fofl_mask$on 000042 constant entry external dcl 96 ref 278 487 cobol_make_bin_const 000046 constant entry external dcl 98 ref 476 484 cobol_make_tagref 000054 constant entry external dcl 104 ref 337 348 363 406 419 502 534 558 cobol_make_type9$long_bin 000030 constant entry external dcl 89 ref 295 cobol_make_type9$short_bin 000026 constant entry external dcl 87 ref 293 cobol_make_type9$type2_3 000032 constant entry external dcl 91 ref 240 455 461 cobol_register$load 000062 constant entry external dcl 107 ref 396 cobol_register$release 000064 constant entry external dcl 108 ref 299 356 574 cobol_store_binary 000056 constant entry external dcl 105 ref 296 342 352 518 526 538 cobol_type100 based structure level 1 dcl 7-12 contains 4 000124 automatic fixed bin(17,0) level 2 dcl 159 set ref 395* data_name based structure level 1 unaligned dcl 1-16 dec_zero_token 000013 internal static structure level 1 unaligned dcl 132 set ref 240 240 455 455 461 461 end_stmt based structure level 1 unaligned dcl 8-16 eos_ptr 000200 automatic pointer dcl 8-13 set ref 198* 200 209 243 411 550 f 11(07) based bit(2) level 2 packed packed unaligned dcl 8-16 ref 411 550 fill1_op 0(18) based bit(10) level 2 packed packed unaligned dcl 3-51 set ref 264* 367* 398* 400* h 6 based fixed bin(17,0) level 2 dcl 8-16 ref 243 imperative_stmt_tag 000151 automatic fixed bin(17,0) dcl 175 set ref 204* 205 274 406* 411 422* 502* 534* 550 560* in_token based structure level 1 dcl 5-9 in_token_ptr parameter pointer dcl 5-7 ref 29 198 198 233 308 326 329 342 352 374 443 450 512 514 518 524 526 526 538 input_buff 000100 automatic structure level 1 unaligned dcl 151 set ref 252 input_ptr 000172 automatic pointer dcl 3-18 set ref 252* 256 257 258 259 261 263* input_struc_basic based structure level 1 unaligned dcl 3-23 inst_ptr 000174 automatic pointer dcl 3-18 set ref 254* 263* 264 265* 367 368* 398 400 401* inst_struc_basic based structure level 1 dcl 3-51 ix 000152 automatic fixed bin(17,0) dcl 176 set ref 305* 308 326 329 342 352 374* 512* 514 518* 524* 526 526 538* lock 2 based fixed bin(17,0) level 2 in structure "input_struc_basic" dcl 3-23 in procedure "cobol_add_binary_gen" set ref 258* lock 2 000124 automatic fixed bin(17,0) level 2 in structure "register_struc" dcl 159 in procedure "cobol_add_binary_gen" set ref 394* n based fixed bin(17,0) level 2 dcl 5-9 ref 198 374 512 524 next_stmt_tag parameter fixed bin(17,0) dcl 40 set ref 29 205* 411* 419* 550* 558* no_ovflo_tag 000150 automatic fixed bin(17,0) dcl 174 set ref 269* 363* 371* 377* null builtin function dcl 592 ref 239 292 319 335 335 337 337 340 347 347 348 348 362 362 363 363 405 405 406 406 418 418 419 419 454 460 475 483 492 501 501 502 502 533 533 534 534 557 557 558 558 operand_no 1 based fixed bin(17,0) level 2 dcl 3-23 set ref 257* operation_code parameter fixed bin(17,0) dcl 43 set ref 29 326* 329 493* 495* ose_flag 000155 automatic bit(1) packed unaligned dcl 179 set ref 200* 202 237 244 332 345 359 385 487 497 531 544 ovflo_flag_inst 000146 automatic bit(36) packed unaligned dcl 172 set ref 254 ovflo_tag 000147 automatic fixed bin(17,0) dcl 173 set ref 268* 269 274* 337* 348* 366* 376* 377 receive_count 000144 automatic fixed bin(17,0) dcl 170 set ref 243* 246 282 305 359 390 reg_no 1 000124 automatic bit(4) level 2 packed packed unaligned dcl 159 set ref 298* 355* 398 573* register 4 based bit(4) level 2 packed packed unaligned dcl 7-12 ref 298 355 573 register_struc 000124 automatic structure level 1 unaligned dcl 159 set ref 299 299 356 356 396 396 574 574 reloc_buff 000112 automatic structure level 1 unaligned dcl 154 set ref 253 reloc_ptr 000176 automatic pointer dcl 3-18 set ref 253* 263* 265* 368* 401* result_token_ptr 000136 automatic pointer dcl 167 set ref 319* 326* 329* 340 342* 352* 355 492* 493* 495* 518* 526* 538* 570 573 ret_offset 000145 automatic fixed bin(24,0) dcl 171 set ref 250* 261 290* 293* 295* rtc_dataname constant fixed bin(15,0) initial dcl 6-13 ref 282 rtc_numlit constant fixed bin(15,0) initial dcl 6-6 ref 471 479 rtc_register constant fixed bin(15,0) initial dcl 6-36 ref 570 rtc_resword constant fixed bin(15,0) initial dcl 6-5 ref 235 452 458 segno 3 based fixed bin(17,0) level 2 dcl 3-23 set ref 259* skipped_some 000162 automatic bit(1) packed unaligned dcl 182 set ref 510* 514* 521 source_code parameter fixed bin(17,0) dcl 42 ref 29 312 312 466 466 target_code parameter fixed bin(17,0) dcl 41 ref 29 466 468 temp_lop_token_ptr 000164 automatic pointer dcl 183 set ref 443* 452 454* 455* 471 474 475* 476* 493* 495* temp_ptr 000160 automatic pointer dcl 181 set ref 292* 293* 295* 296* 301 temp_rop_token_ptr 000166 automatic pointer dcl 184 set ref 450* 458 460* 461* 479 482 483* 484* 493* 495* temp_target_code 000153 automatic fixed bin(17,0) dcl 177 set ref 308* 310* 312 314 tlength 000156 automatic fixed bin(17,0) dcl 180 set ref 287* 289* 290* 293 tnz_inst 000012 internal static bit(36) initial packed unaligned dcl 128 set ref 405 405 token_ptr 2 based pointer array level 2 dcl 5-9 set ref 198 233 308 326* 329* 342* 352* 443 450 514 518* 526 526* 538* tov_inst 000010 internal static bit(36) initial packed unaligned dcl 122 set ref 335 335 347 347 501 501 533 533 tra_inst 000011 internal static bit(36) initial packed unaligned dcl 125 set ref 362 362 418 418 557 557 type 3 based fixed bin(17,0) level 2 in structure "data_name" dcl 1-16 in procedure "cobol_add_binary_gen" ref 235 282 452 458 471 479 570 type based fixed bin(17,0) level 2 in structure "input_struc_basic" dcl 3-23 in procedure "cobol_add_binary_gen" set ref 256* what_reg 000124 automatic fixed bin(17,0) level 2 dcl 159 set ref 393* work_token_ptr 000140 automatic pointer dcl 168 set ref 316* 326* 329* 474* 476* 482* 484* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addrel builtin function dcl 592 allo1_max defined fixed bin(17,0) dcl 4-171 allo1_ptr defined pointer dcl 4-67 alter_flag defined fixed bin(17,0) dcl 4-135 alter_index defined fixed bin(17,0) dcl 4-153 alter_list_ptr defined pointer dcl 4-39 binary builtin function dcl 592 cd_cnt defined fixed bin(17,0) dcl 4-197 cobol_$allo1_max external static fixed bin(17,0) dcl 4-170 cobol_$allo1_ptr external static pointer dcl 4-66 cobol_$alter_flag external static fixed bin(17,0) dcl 4-134 cobol_$alter_index external static fixed bin(17,0) dcl 4-152 cobol_$alter_list_ptr external static pointer dcl 4-38 cobol_$cd_cnt external static fixed bin(17,0) dcl 4-196 cobol_$cobol_data_wd_off external static fixed bin(17,0) dcl 4-118 cobol_$compile_count external static fixed bin(17,0) dcl 4-142 cobol_$coms_charcnt external static fixed bin(17,0) dcl 4-188 cobol_$coms_wdoff external static fixed bin(17,0) dcl 4-202 cobol_$con_end_ptr external static pointer dcl 4-10 cobol_$con_wd_off external static fixed bin(17,0) dcl 4-92 cobol_$cons_charcnt external static fixed bin(17,0) dcl 4-192 cobol_$constant_offset external static fixed bin(17,0) dcl 4-156 cobol_$data_init_flag external static fixed bin(17,0) dcl 4-130 cobol_$date_compiled_sw external static fixed bin(17,0) dcl 4-180 cobol_$debug_enable external static fixed bin(17,0) dcl 4-174 cobol_$def_base_ptr external static pointer dcl 4-12 cobol_$def_max external static fixed bin(17,0) dcl 4-96 cobol_$def_wd_off external static fixed bin(17,0) dcl 4-94 cobol_$diag_ptr external static pointer dcl 4-70 cobol_$eln_max external static fixed bin(17,0) dcl 4-172 cobol_$eln_ptr external static pointer dcl 4-68 cobol_$fixup_max external static fixed bin(17,0) dcl 4-164 cobol_$fixup_ptr external static pointer dcl 4-30 cobol_$fs_charcnt external static fixed bin(17,0) dcl 4-184 cobol_$fs_wdoff external static fixed bin(17,0) dcl 4-198 cobol_$include_cnt external static fixed bin(17,0) dcl 4-182 cobol_$include_info_ptr external static pointer dcl 4-86 cobol_$init_stack_off external static fixed bin(17,0) dcl 4-124 cobol_$initval_base_ptr external static pointer dcl 4-32 cobol_$initval_file_ptr external static pointer dcl 4-34 cobol_$initval_flag external static fixed bin(17,0) dcl 4-178 cobol_$link_base_ptr external static pointer dcl 4-14 cobol_$link_max external static fixed bin(17,0) dcl 4-100 cobol_$link_wd_off external static fixed bin(17,0) dcl 4-98 cobol_$list_off external static fixed bin(17,0) dcl 4-154 cobol_$list_ptr external static pointer dcl 4-64 cobol_$ls_charcnt external static fixed bin(17,0) dcl 4-190 cobol_$main_pcs_ptr external static pointer dcl 4-84 cobol_$map_data_max external static fixed bin(17,0) dcl 4-162 cobol_$map_data_ptr external static pointer dcl 4-54 cobol_$max_stack_off external static fixed bin(17,0) dcl 4-122 cobol_$minpral5_ptr external static pointer dcl 4-50 cobol_$misc_base_ptr external static pointer dcl 4-60 cobol_$misc_end_ptr external static pointer dcl 4-62 cobol_$misc_max external static fixed bin(17,0) dcl 4-158 cobol_$non_source_offset external static fixed bin(17,0) dcl 4-176 cobol_$ntbuf_ptr external static pointer dcl 4-82 cobol_$obj_seg_name external static char(32) dcl 4-208 cobol_$op_con_ptr external static pointer dcl 4-80 cobol_$para_eop_flag external static fixed bin(17,0) dcl 4-138 cobol_$pd_map_index external static fixed bin(17,0) dcl 4-116 cobol_$pd_map_max external static fixed bin(17,0) dcl 4-160 cobol_$pd_map_ptr external static pointer dcl 4-28 cobol_$pd_map_sw external static fixed bin(17,0) dcl 4-126 cobol_$perform_list_ptr external static pointer dcl 4-36 cobol_$perform_para_index external static fixed bin(17,0) dcl 4-148 cobol_$perform_sect_index external static fixed bin(17,0) dcl 4-150 cobol_$priority_no external static fixed bin(17,0) dcl 4-140 cobol_$ptr_assumption_ind external static fixed bin(17,0) dcl 4-144 cobol_$ptr_status_ptr external static pointer dcl 4-56 cobol_$reg_assumption_ind external static fixed bin(17,0) dcl 4-146 cobol_$reg_status_ptr external static pointer dcl 4-58 cobol_$reloc_def_base_ptr external static pointer dcl 4-20 cobol_$reloc_def_max external static fixed bin(24,0) dcl 4-108 cobol_$reloc_link_base_ptr external static pointer dcl 4-22 cobol_$reloc_link_max external static fixed bin(24,0) dcl 4-110 cobol_$reloc_sym_base_ptr external static pointer dcl 4-24 cobol_$reloc_sym_max external static fixed bin(24,0) dcl 4-112 cobol_$reloc_text_base_ptr external static pointer dcl 4-18 cobol_$reloc_text_max external static fixed bin(24,0) dcl 4-106 cobol_$reloc_work_base_ptr external static pointer dcl 4-26 cobol_$reloc_work_max external static fixed bin(24,0) dcl 4-114 cobol_$reswd_ptr external static pointer dcl 4-78 cobol_$same_sort_merge_proc external static bit(1) dcl 4-214 cobol_$scratch_dir external static char(168) dcl 4-206 cobol_$sect_eop_flag external static fixed bin(17,0) dcl 4-136 cobol_$seg_init_flag external static fixed bin(17,0) dcl 4-132 cobol_$seg_init_list_ptr external static pointer dcl 4-40 cobol_$stack_off external static fixed bin(17,0) dcl 4-120 cobol_$statement_info_ptr external static pointer dcl 4-76 cobol_$sym_base_ptr external static pointer dcl 4-16 cobol_$sym_max external static fixed bin(17,0) dcl 4-104 cobol_$sym_wd_off external static fixed bin(17,0) dcl 4-102 cobol_$tag_table_max external static fixed bin(17,0) dcl 4-166 cobol_$tag_table_ptr external static pointer dcl 4-52 cobol_$temp_token_area_ptr external static pointer dcl 4-42 cobol_$temp_token_max external static fixed bin(17,0) dcl 4-168 cobol_$temp_token_ptr external static pointer dcl 4-44 cobol_$text_base_ptr external static pointer dcl 4-8 cobol_$token_block1_ptr external static pointer dcl 4-46 cobol_$token_block2_ptr external static pointer dcl 4-48 cobol_$value_cnt external static fixed bin(17,0) dcl 4-194 cobol_$ws_charcnt external static fixed bin(17,0) dcl 4-186 cobol_$ws_wdoff external static fixed bin(17,0) dcl 4-200 cobol_$xref_bypass external static bit(1) dcl 4-212 cobol_$xref_chain_ptr external static pointer dcl 4-74 cobol_$xref_token_ptr external static pointer dcl 4-72 cobol_data_wd_off defined fixed bin(17,0) dcl 4-119 cobol_type100_ptr automatic pointer dcl 7-9 compile_count defined fixed bin(17,0) dcl 4-143 coms_charcnt defined fixed bin(17,0) dcl 4-189 coms_wdoff defined fixed bin(17,0) dcl 4-203 con_end_ptr defined pointer dcl 4-11 con_wd_off defined fixed bin(17,0) dcl 4-93 cons_charcnt defined fixed bin(17,0) dcl 4-193 constant_offset defined fixed bin(17,0) dcl 4-157 data_init_flag defined fixed bin(17,0) dcl 4-131 date_compiled_sw defined fixed bin(17,0) dcl 4-181 debug_enable defined fixed bin(17,0) dcl 4-175 def_base_ptr defined pointer dcl 4-13 def_max defined fixed bin(17,0) dcl 4-97 def_wd_off defined fixed bin(17,0) dcl 4-95 desc_an based structure level 1 packed packed unaligned dcl 3-103 desc_an_ptr automatic pointer dcl 3-119 desc_nn based structure level 1 packed packed unaligned dcl 3-122 desc_nn_ptr automatic pointer dcl 3-118 diag_ptr defined pointer dcl 4-71 dn_ptr automatic pointer dcl 190 eln_max defined fixed bin(17,0) dcl 4-173 eln_ptr defined pointer dcl 4-69 fixed builtin function dcl 592 fixup_max defined fixed bin(17,0) dcl 4-165 fixup_ptr defined pointer dcl 4-31 fs_charcnt defined fixed bin(17,0) dcl 4-185 fs_wdoff defined fixed bin(17,0) dcl 4-199 include_cnt defined fixed bin(17,0) dcl 4-183 include_info_ptr defined pointer dcl 4-87 index builtin function dcl 592 init_stack_off defined fixed bin(17,0) dcl 4-125 initval_base_ptr defined pointer dcl 4-33 initval_file_ptr defined pointer dcl 4-35 initval_flag defined fixed bin(17,0) dcl 4-179 input_struc based structure level 1 unaligned dcl 3-32 inst_struc based structure level 1 dcl 3-66 length builtin function dcl 592 link_base_ptr defined pointer dcl 4-15 link_max defined fixed bin(17,0) dcl 4-101 link_wd_off defined fixed bin(17,0) dcl 4-99 list_off defined fixed bin(17,0) dcl 4-155 list_ptr defined pointer dcl 4-65 ls_charcnt defined fixed bin(17,0) dcl 4-191 main_pcs_ptr defined pointer dcl 4-85 map_data_max defined fixed bin(17,0) dcl 4-163 map_data_ptr defined pointer dcl 4-55 max_stack_off defined fixed bin(17,0) dcl 4-123 minpral5_ptr defined pointer dcl 4-51 misc_base_ptr defined pointer dcl 4-61 misc_end_ptr defined pointer dcl 4-63 misc_max defined fixed bin(17,0) dcl 4-159 mod builtin function dcl 592 next_tag defined fixed bin(17,0) dcl 4-129 non_source_offset defined fixed bin(17,0) dcl 4-177 ntbuf_ptr defined pointer dcl 4-83 obj_seg_name defined char(32) dcl 4-209 op_con_ptr defined pointer dcl 4-81 para_eop_flag defined fixed bin(17,0) dcl 4-139 pd_map_index defined fixed bin(17,0) dcl 4-117 pd_map_max defined fixed bin(17,0) dcl 4-161 pd_map_ptr defined pointer dcl 4-29 pd_map_sw defined fixed bin(17,0) dcl 4-127 perform_list_ptr defined pointer dcl 4-37 perform_para_index defined fixed bin(17,0) dcl 4-149 perform_sect_index defined fixed bin(17,0) dcl 4-151 priority_no defined fixed bin(17,0) dcl 4-141 ptr_assumption_ind defined fixed bin(17,0) dcl 4-145 ptr_status_ptr defined pointer dcl 4-57 reg_assumption_ind defined fixed bin(17,0) dcl 4-147 reg_status_ptr defined pointer dcl 4-59 rel builtin function dcl 592 reloc_def_base_ptr defined pointer dcl 4-21 reloc_def_max defined fixed bin(24,0) dcl 4-109 reloc_link_base_ptr defined pointer dcl 4-23 reloc_link_max defined fixed bin(24,0) dcl 4-111 reloc_struc based structure array level 1 unaligned dcl 3-44 reloc_sym_base_ptr defined pointer dcl 4-25 reloc_sym_max defined fixed bin(24,0) dcl 4-113 reloc_text_base_ptr defined pointer dcl 4-19 reloc_text_max defined fixed bin(24,0) dcl 4-107 reloc_work_base_ptr defined pointer dcl 4-27 reloc_work_max defined fixed bin(24,0) dcl 4-115 reswd_ptr defined pointer dcl 4-79 rtc_alphalit internal static fixed bin(15,0) initial dcl 6-7 rtc_commdesc internal static fixed bin(15,0) initial dcl 6-17 rtc_condname internal static fixed bin(15,0) initial dcl 6-15 rtc_debugenable internal static fixed bin(15,0) initial dcl 6-28 rtc_debugitems internal static fixed bin(15,0) initial dcl 6-18 rtc_diag internal static fixed bin(15,0) initial dcl 6-9 rtc_eos internal static fixed bin(15,0) initial dcl 6-23 rtc_equate_tag internal static fixed bin(15,0) initial dcl 6-35 rtc_fdec_temp internal static fixed bin(15,0) initial dcl 6-37 rtc_filedef internal static fixed bin(15,0) initial dcl 6-16 rtc_groupname internal static fixed bin(15,0) initial dcl 6-25 rtc_immed_const internal static fixed bin(15,0) initial dcl 6-38 rtc_indexname internal static fixed bin(15,0) initial dcl 6-14 rtc_internal_tag internal static fixed bin(15,0) initial dcl 6-34 rtc_mnemonic internal static fixed bin(15,0) initial dcl 6-21 rtc_pararef internal static fixed bin(15,0) initial dcl 6-22 rtc_picstring internal static fixed bin(15,0) initial dcl 6-8 rtc_procdef internal static fixed bin(15,0) initial dcl 6-11 rtc_reportentry internal static fixed bin(15,0) initial dcl 6-26 rtc_reportname internal static fixed bin(15,0) initial dcl 6-24 rtc_savedarea internal static fixed bin(15,0) initial dcl 6-19 rtc_sortmerge internal static fixed bin(15,0) initial dcl 6-20 rtc_source internal static fixed bin(15,0) initial dcl 6-10 rtc_unknown1 internal static fixed bin(15,0) initial dcl 6-27 rtc_unknown2 internal static fixed bin(15,0) initial dcl 6-29 rtc_unknown3 internal static fixed bin(15,0) initial dcl 6-30 rtc_unknown4 internal static fixed bin(15,0) initial dcl 6-31 rtc_unknown5 internal static fixed bin(15,0) initial dcl 6-32 rtc_unknown6 internal static fixed bin(15,0) initial dcl 6-33 rtc_userwd internal static fixed bin(15,0) initial dcl 6-12 same_sort_merge_proc defined bit(1) dcl 4-215 scratch_dir defined char(168) dcl 4-207 sect_eop_flag defined fixed bin(17,0) dcl 4-137 seg_init_flag defined fixed bin(17,0) dcl 4-133 seg_init_list_ptr defined pointer dcl 4-41 stack_off defined fixed bin(17,0) dcl 4-121 statement_info_ptr defined pointer dcl 4-77 string builtin function dcl 592 substr builtin function dcl 592 sym_base_ptr defined pointer dcl 4-17 sym_max defined fixed bin(17,0) dcl 4-105 sym_wd_off defined fixed bin(17,0) dcl 4-103 tag_table_max defined fixed bin(17,0) dcl 4-167 tag_table_ptr defined pointer dcl 4-53 temp_token_area_ptr defined pointer dcl 4-43 temp_token_max defined fixed bin(17,0) dcl 4-169 temp_token_ptr defined pointer dcl 4-45 text_base_ptr defined pointer dcl 4-9 text_wd_off defined fixed bin(17,0) dcl 4-91 token_block1_ptr defined pointer dcl 4-47 token_block2_ptr defined pointer dcl 4-49 unspec builtin function dcl 592 value_cnt defined fixed bin(17,0) dcl 4-195 ws_charcnt defined fixed bin(17,0) dcl 4-187 ws_wdoff defined fixed bin(17,0) dcl 4-201 xref_bypass defined bit(1) dcl 4-213 xref_chain_ptr defined pointer dcl 4-75 xref_token_ptr defined pointer dcl 4-73 NAMES DECLARED BY EXPLICIT CONTEXT. cobol_add_binary_gen 000011 constant entry external dcl 29 exit 000046 constant label dcl 215 exit_format1 001170 constant label dcl 429 exit_format2 001756 constant label dcl 576 format1 000047 constant entry internal dcl 219 ref 209 format2 001171 constant entry internal dcl 434 ref 211 start 000016 constant label dcl 198 start_format1 000050 constant label dcl 233 start_format2 001172 constant label dcl 443 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2214 2306 1757 2224 Length 2736 1757 72 414 234 16 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_add_binary_gen 206 external procedure is an external procedure. format1 internal procedure shares stack frame of external procedure cobol_add_binary_gen. format2 internal procedure shares stack frame of external procedure cobol_add_binary_gen. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 tov_inst cobol_add_binary_gen 000011 tra_inst cobol_add_binary_gen 000012 tnz_inst cobol_add_binary_gen 000013 dec_zero_token cobol_add_binary_gen STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_add_binary_gen 000100 input_buff cobol_add_binary_gen 000112 reloc_buff cobol_add_binary_gen 000124 register_struc cobol_add_binary_gen 000136 result_token_ptr cobol_add_binary_gen 000140 work_token_ptr cobol_add_binary_gen 000142 addend_token_ptr cobol_add_binary_gen 000144 receive_count cobol_add_binary_gen 000145 ret_offset cobol_add_binary_gen 000146 ovflo_flag_inst cobol_add_binary_gen 000147 ovflo_tag cobol_add_binary_gen 000150 no_ovflo_tag cobol_add_binary_gen 000151 imperative_stmt_tag cobol_add_binary_gen 000152 ix cobol_add_binary_gen 000153 temp_target_code cobol_add_binary_gen 000154 add_code cobol_add_binary_gen 000155 ose_flag cobol_add_binary_gen 000156 tlength cobol_add_binary_gen 000160 temp_ptr cobol_add_binary_gen 000162 skipped_some cobol_add_binary_gen 000164 temp_lop_token_ptr cobol_add_binary_gen 000166 temp_rop_token_ptr cobol_add_binary_gen 000170 call_again cobol_add_binary_gen 000172 input_ptr cobol_add_binary_gen 000174 inst_ptr cobol_add_binary_gen 000176 reloc_ptr cobol_add_binary_gen 000200 eos_ptr cobol_add_binary_gen THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_add2_binary_long cobol_add2_binary_short cobol_addr cobol_alloc$stack cobol_define_tag cobol_emit cobol_fofl_mask$off cobol_fofl_mask$on cobol_make_bin_const cobol_make_tagref cobol_make_type9$long_bin cobol_make_type9$short_bin cobol_make_type9$type2_3 cobol_register$load cobol_register$release cobol_store_binary 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 29 000004 198 000016 200 000025 202 000031 204 000032 205 000034 206 000036 209 000040 211 000045 215 000046 219 000047 233 000050 235 000055 237 000060 239 000063 240 000065 243 000100 244 000103 246 000105 250 000107 252 000125 253 000127 254 000131 256 000133 257 000135 258 000137 259 000140 261 000142 263 000144 264 000157 265 000163 268 000200 269 000203 270 000205 272 000207 274 000210 278 000212 282 000217 287 000226 289 000234 290 000236 292 000252 293 000254 295 000275 296 000312 298 000325 299 000331 301 000342 305 000344 308 000355 310 000371 312 000373 314 000400 316 000401 319 000403 326 000405 329 000430 332 000452 335 000454 337 000475 340 000515 342 000521 343 000537 345 000542 347 000544 348 000565 352 000605 355 000623 356 000627 359 000640 362 000645 363 000666 366 000706 367 000715 368 000721 371 000736 374 000745 376 000753 377 000756 378 000760 383 000762 385 000764 389 000766 390 000773 393 000776 394 001000 395 001001 396 001002 398 001013 400 001023 401 001027 405 001044 406 001065 411 001105 418 001117 419 001140 422 001161 429 001170 434 001171 443 001172 450 001177 452 001203 454 001207 455 001211 458 001224 460 001230 461 001232 466 001245 468 001253 471 001255 474 001261 475 001262 476 001264 479 001277 482 001303 483 001304 484 001306 487 001321 492 001330 493 001332 495 001354 497 001372 501 001374 502 001415 510 001435 512 001436 514 001451 518 001471 519 001507 521 001511 524 001513 526 001525 529 001551 531 001554 533 001556 534 001577 538 001617 541 001635 544 001637 547 001641 550 001646 557 001660 558 001701 560 001722 566 001731 570 001736 573 001742 574 001745 576 001756 ----------------------------------------------------------- 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