COMPILATION LISTING OF SEGMENT cobol_divide_bin_gen Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1134.79_Tue_mdt 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_divide_bin_gen.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 06/29/79 by FCH, [4.0-1], not option added for debug */ 23 /* Modified since Version 4.0 */ 24 25 /*{*/ 26 /* format: style3 */ 27 cobol_divide_bin_gen: 28 proc (in_token_ptr, next_stmt_tag); 29 30 /* 31*This procedure generates code for the divide statement 32*which uses the hardware registers ( A and Q ) instead 33*of using EIS instructions. */ 34 35 /* DECLARATION OF THE PARAMETERS */ 36 37 /* dcl in_token_ptr ptr; */ 38 /* Declared below in an include file. */ 39 dcl next_stmt_tag fixed bin; 40 41 /* DESCRIPTION OF THE PARAMETERS */ 42 43 /* 44*PARAMETER DESCRIPTION 45* 46*in_token_ptr Pointer to a structurre that contains data 47* and pointers that describes the divide 48* statement for which code is to be 49* implemented. (input) See description 50* below for more details. 51*next_stmt_tag A tag that is to be defined at the next 52* cobol statement by cobol_gen_driver_. 53* (output) See below for details. 54**/ 55 56 57 /* DECLARATION OF EXTERNAL ENTRIES */ 58 59 dcl cobol_make_bin_const 60 ext entry (ptr, ptr, fixed bin); 61 dcl cobol_short_to_longbin$register 62 ext entry (ptr, ptr); 63 dcl cobol_load_register ext entry (ptr, ptr); 64 dcl cobol_short_to_longbin$temp 65 ext entry (ptr, ptr); 66 dcl cobol_alloc$stack ext entry (fixed bin, fixed bin, fixed bin (24)); 67 dcl cobol_make_type9$long_bin 68 ext entry (ptr, fixed bin, fixed bin (24)); 69 dcl cobol_store_binary ext entry (ptr, ptr, bit (1)); 70 dcl cobol_register$release 71 ext entry (ptr); 72 dcl cobol_addr ext entry (ptr, ptr, ptr); 73 dcl cobol_emit ext entry (ptr, ptr, fixed bin); 74 dcl cobol_fofl_mask$on ext entry; 75 dcl cobol_fofl_mask$off ext entry; 76 dcl cobol_multiply2_binary 77 ext entry (ptr, ptr, ptr, fixed bin); 78 dcl cobol_make_tagref ext entry (fixed bin, fixed bin, ptr); 79 dcl cobol_define_tag ext entry (fixed bin); 80 dcl cobol_register$load ext entry (ptr); 81 dcl cobol_make_reg_token 82 ext entry (ptr, bit (4)); 83 84 /* DECLARATION OF INTERNAL STATIC DATA */ 85 86 dcl STZ bit (10) int static init ("1001010000"b); 87 /* 450(0) */ 88 dcl AOS bit (10) int static init ("0001011000"b); 89 /* 054(0) */ 90 dcl LDA bit (10) int static init ("0100111010"b); 91 /* 235(0) */ 92 dcl LDQ bit (10) int static init ("0100111100"b); 93 /* 236 (0) */ 94 95 dcl tov_inst bit (36) int static init ("000000000000000000110001111000000000"b); 96 ; /* tov 0 */ 97 98 dcl tra_inst bit (36) int static init ("000000000000000000111001000000000000"b); 99 /* tra 0 */ 100 101 dcl tnz_inst bit (36) int static init ("000000000000000000110000001000000000"b); 102 /* tnz 0 */ 103 104 105 dcl tze_inst bit (36) int static init ("000000000000000000110000000000000000"b); 106 /* tze 0 */ 107 dcl 1 dec_zero_token int static, 108 2 size fixed bin (15), 109 2 line fixed bin (15), 110 2 column fixed bin (15), 111 2 type fixed bin (15) init (2), 112 2 integral bit (1) init ("1"b), 113 2 floating bit (1) bit (1) init ("0"b), 114 2 filler1 bit (5), 115 2 subscript bit (1) init ("0"b), 116 2 sign char (1) init (" "), 117 2 exp_sign char (1) init (" "), 118 2 exp_places fixed bin (15), 119 2 places_left fixed bin (15) init (1), 120 2 places_right fixed bin (15) init (0), 121 2 places fixed bin (15) init (1), 122 2 literal char (1) init ("0"); 123 124 /* DECLARATION OF INTERNAL VARIABLES */ 125 126 dcl 1 input_buff, 127 2 buff (1:10) fixed bin; 128 129 dcl 1 reloc_buff, 130 2 buff (1:10) bit (5) aligned; 131 132 133 134 dcl 1 register_struc, 135 2 what_reg fixed bin, 136 2 reg_no bit (4), 137 2 lock fixed bin, 138 2 already_there fixed bin, 139 2 contains fixed bin, 140 2 tok_ptr ptr, 141 2 literal bit (36); 142 dcl result_token_ptr ptr; 143 dcl work_token_ptr ptr; 144 dcl addend_token_ptr ptr; 145 dcl receive_count fixed bin; 146 dcl ret_offset fixed bin (24); 147 dcl ovflo_flag_inst bit (36); 148 dcl ovflo_tag fixed bin; 149 dcl no_ovflo_tag fixed bin; 150 dcl imperative_stmt_tag fixed bin; 151 dcl ix fixed bin; 152 dcl temp_target_code fixed bin; 153 dcl divisor_token_ptr ptr; 154 dcl dividend_token_ptr ptr; 155 dcl remainder_token_ptr ptr; 156 dcl ose_flag bit (1); 157 dcl tlength fixed bin; 158 dcl temp_ptr ptr; 159 dcl skipped_some bit (1); 160 dcl temp_lop_token_ptr ptr; 161 dcl temp_rop_token_ptr ptr; 162 163 164 dcl call_again bit (1); 165 166 167 dcl dn_ptr ptr; 168 169 dcl last_target_index fixed bin; 170 171 /*************************************/ 172 start: /* Extract useful information from the EOS token. */ 173 eos_ptr = in_token.token_ptr (in_token.n); 174 ose_flag = end_stmt.b; 175 176 if ose_flag 177 then do; /* Reserve two tags for on size error processing. */ 178 imperative_stmt_tag = cobol_$next_tag; 179 next_stmt_tag = imperative_stmt_tag + 1; 180 cobol_$next_tag = cobol_$next_tag + 2; 181 end; /* Reserve two tags for on size error processing. */ 182 result_token_ptr = null (); 183 184 if end_stmt.a = "000"b 185 then call format1_divide; 186 else call format2_5_divide; 187 188 189 /*************************************/ 190 format1_divide: 191 proc; 192 193 /* 194*This internal procedure generates code using the hardware 195*registers ( A and Q ) for format 1 divide statements. */ 196 197 receive_count = end_stmt.e; 198 divisor_token_ptr = in_token.token_ptr (2); 199 200 /* Check for zero divisor if on size clause was present in the divide stmt. */ 201 if ose_flag 202 then call zero_divide_check (divisor_token_ptr, imperative_stmt_tag); 203 if (divisor_token_ptr -> data_name.type = rtc_dataname & divisor_token_ptr -> data_name.bin_18) 204 then do; /* Divisor is short binary. */ 205 /* Convert from short binary to long binary into a temp. */ 206 temp_ptr = null (); 207 call cobol_short_to_longbin$temp (divisor_token_ptr, temp_ptr); 208 divisor_token_ptr = temp_ptr; 209 end; /* Divisior is a short binary. */ 210 211 else if (divisor_token_ptr -> data_name.type = rtc_dataname & receive_count > 1) 212 then do; /* Divisor is long binary, and more than one dividend/receiving field. */ 213 /* Generate code to store the divisor into a temp, because if one of 214* the dividends is the divisor (i.e. DIVIDE A INTO A B C) then the original 215* divisor value will be destroyed. */ 216 217 /* Allocate space for the temporary in the stack. */ 218 call cobol_alloc$stack (4, 0, ret_offset); 219 temp_ptr = null; /* Make a data name token for the temp. */ 220 call cobol_make_type9$long_bin (temp_ptr, 1000, ret_offset); 221 /* Store the divisor into the temporary. */ 222 call cobol_store_binary (divisor_token_ptr, temp_ptr, call_again); 223 /* Release the register that was used in storing the divisor. */ 224 register_struc.reg_no = divisor_token_ptr -> cobol_type100.register; 225 call cobol_register$release (addr (register_struc)); 226 divisor_token_ptr = temp_ptr; 227 end; /* Divisor is long binary, and move than one dividend/receiving field. */ 228 229 230 231 /* Generate code to divide the divisor into each dividend/receiving field. */ 232 do ix = 3 to in_token.n - 1; /* Do all the divides. */ 233 234 call cobol_multiply2_binary (in_token.token_ptr (ix), divisor_token_ptr, result_token_ptr, 2); 235 /* Make a register token that describes the result of the divide. */ 236 result_token_ptr = null (); 237 call cobol_make_reg_token (result_token_ptr, "0010"b /* Q */); 238 239 240 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 241 if call_again 242 then do; /* Must call the store procedure again to get the results stored. */ 243 244 245 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 246 end; /* Must call the store procedure again to get the results stored. */ 247 /* Release the register that contains the result of the divide. */ 248 register_struc.reg_no = result_token_ptr -> cobol_type100.register; 249 call cobol_register$release (addr (register_struc)); 250 /* Release the A register, which is locked by the multiply2 procedure. */ 251 register_struc.reg_no = "0001"b; /* A */ 252 call cobol_register$release (addr (register_struc)); 253 254 255 end; /* Do all the divides. */ 256 257 258 if ose_flag 259 then do; /* On size error clause was present. */ 260 261 /*[4.0-1]*/ 262 if end_stmt.f = "01"b /*[4.0-1]*/ 263 then next_stmt_tag = imperative_stmt_tag; 264 /*[4.0-1]*/ 265 else do; 266 267 /* Generate code to transfer to the next cobol statement ( the one 268* following the imperative statement. ) */ 269 call cobol_emit (addr (tra_inst), null (), 1); 270 call cobol_make_tagref (next_stmt_tag, cobol_$text_wd_off - 1, null ()); 271 272 /* Define the imperative statement tag at the next instruction location. */ 273 call cobol_define_tag (imperative_stmt_tag); 274 275 /*[4.0-1]*/ 276 end; 277 278 end; /* On size error clause was present. */ 279 end format1_divide; 280 281 282 /*************************************/ 283 format2_5_divide: 284 proc; 285 286 /* 287*This internal procedure generates code using the hardware 288*registers (A and Q) for format 2,3,4, and 5 divide statements. */ 289 290 if (end_stmt.a = "001"b | end_stmt.a = "011"b) 291 then do; /* Format 2 or Format 4 divide. */ 292 divisor_token_ptr = in_token.token_ptr (2); 293 dividend_token_ptr = in_token.token_ptr (3); 294 end; /* Format 2 or Format 4 divide. */ 295 296 else do; /* Must be Format 3 or Format 5 divide. */ 297 divisor_token_ptr = in_token.token_ptr (3); 298 dividend_token_ptr = in_token.token_ptr (2); 299 end; /* Must be Format 3 or Format 5 divide. */ 300 301 /* Check for zero divisor if on size clause was present. */ 302 if ose_flag 303 then call zero_divide_check (divisor_token_ptr, imperative_stmt_tag); 304 305 /* Generate code to do the division. */ 306 call cobol_multiply2_binary (dividend_token_ptr, divisor_token_ptr, result_token_ptr, 2 /*divide */); 307 308 if (end_stmt.a = "001"b | end_stmt.a = "010"b) 309 then do; /* Format 2 or Format 3 divide. */ 310 /* Release the A register (which is locked during the divide) */ 311 register_struc.reg_no = "0001"b; /* A */ 312 call cobol_register$release (addr (register_struc)); 313 last_target_index = in_token.n - 1; 314 end; /* Format 2 or Format 3 divide. */ 315 316 else do; /* Format 4 or Format 5 divide. */ 317 /* Build a register token for the A register, which contains the remainder. */ 318 remainder_token_ptr = null (); 319 call cobol_make_reg_token (remainder_token_ptr, "0001"b /*A*/); 320 321 last_target_index = in_token.n - 2; 322 end; /* Format 4 or Format 5 divide. */ 323 324 /* Generate code to store the quotient into all long binary receiving fields. */ 325 /* Note that there is no possibliity of overflow, since result is long binary, and so are targets. */ 326 skipped_some = "0"b; 327 328 do ix = 4 to last_target_index; /* Store quotient into all long binary targets. */ 329 330 if in_token.token_ptr (ix) -> data_name.bin_18 331 then skipped_some = "1"b; 332 else call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 333 end; /* Store quotient into all long binary targets. */ 334 335 336 337 if skipped_some 338 then do; /* Store the quotient into all short binary receiving fields. */ 339 if ose_flag 340 then call cobol_fofl_mask$on; 341 342 do ix = 4 to last_target_index; /* Scan the targets. */ 343 344 if in_token.token_ptr (ix) -> data_name.bin_18 345 then do; /* Short binary target. */ 346 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), call_again); 347 if call_again 348 then do; /* REsult has been moved to a temp in an attempt to force 349* overflow. */ 350 351 if ose_flag 352 then do; /* On size error clause present. */ 353 /* Must test for overflow. */ 354 call cobol_emit (addr (tov_inst), null (), 1); 355 call cobol_make_tagref (imperative_stmt_tag, 356 cobol_$text_wd_off - 1, null ()); 357 end; /* On size error clause present. */ 358 359 /* Generate code to store the temp into the target. */ 360 call cobol_store_binary (result_token_ptr, in_token.token_ptr (ix), 361 call_again); 362 end; /* Result has been moved to a temp in an attempt to force 363* overflow. */ 364 365 end; /* Short binary target. */ 366 end; /* Scan the targets. */ 367 368 end; /* Store the quotient into all short binary receiving fields. */ 369 370 if (end_stmt.a = "011"b | end_stmt.a = "100"b) 371 then do; /* Format 4 or Format 5 divide */ 372 /* Store the remainder (now in the a register) into the cobol target. */ 373 if ose_flag & in_token.token_ptr (in_token.n - 1) -> data_name.bin_18 374 then call cobol_fofl_mask$on; /* Turn on the fixed overflow mask. */ 375 call cobol_store_binary (remainder_token_ptr, in_token.token_ptr (in_token.n - 1), call_again); 376 377 if call_again 378 then do; /* Remainder has been stored into a temp in an attempt to force overflow. */ 379 if ose_flag 380 then do; /* On size clause was present. */ 381 /* Test for overflow */ 382 call cobol_emit (addr (tov_inst), null (), 1); 383 call cobol_make_tagref (imperative_stmt_tag, cobol_$text_wd_off - 1, null ()); 384 end; /* On size clause was present. */ 385 386 /* Generate code to store the temp into the target. */ 387 call cobol_store_binary (remainder_token_ptr, in_token.token_ptr (in_token.n - 1), 388 call_again); 389 end; /* Remainder has been stored inot a temp in an attempt to force overflow. */ 390 391 if remainder_token_ptr -> data_name.type = rtc_register 392 then do; /* Remainder token describes a register. */ 393 /* Release the register, since the value there has been stored . */ 394 register_struc.reg_no = remainder_token_ptr -> cobol_type100.register; 395 call cobol_register$release (addr (register_struc)); 396 end; /* Remainder token describes a register. */ 397 398 end; /* Format 4 or Format 5 divide. */ 399 400 if ose_flag 401 then do; /* On size error clause was present. */ 402 /* Generate code to turn off the fixed overflow mask bit. */ 403 call cobol_fofl_mask$off; 404 405 /*[4.0-1]*/ 406 if end_stmt.f = "01"b /*[4.0-1]*/ 407 then next_stmt_tag = imperative_stmt_tag; 408 /*[4.0-1]*/ 409 else do; 410 411 /* Emit code to transfer to the next cobol statement. (The statement 412* following the imperative statement.) */ 413 call cobol_emit (addr (tra_inst), null (), 1); 414 call cobol_make_tagref (next_stmt_tag, cobol_$text_wd_off - 1, null ()); 415 /* Define the imperative statement tag at the next instruction location. */ 416 call cobol_define_tag (imperative_stmt_tag); 417 418 /*[4.0-1]*/ 419 end; 420 421 /* Generate code to turn off the fixed overflow mask bit */ 422 call cobol_fofl_mask$off; 423 424 end; /* On size error clause was present. */ 425 426 if result_token_ptr -> data_name.type = rtc_register 427 then do; /* Result token describes a register. */ 428 /* Release the register, since the value there has been stored into all receiving fields. */ 429 register_struc.reg_no = result_token_ptr -> cobol_type100.register; 430 call cobol_register$release (addr (register_struc)); 431 end; /* Result token describes a register. */ 432 433 end format2_5_divide; 434 435 436 /*************************************/ 437 zero_divide_check: 438 proc (divisor_token_ptr, imperative_stmt_tag); 439 440 /* 441*This internal procedure generates code to 442* a. test whether the divisor is zero 443* b. and transfer immediately to the imperative statement if the divisor is zero. 444**/ 445 446 /* DECLARATION OF THE PARAMETERS */ 447 dcl divisor_token_ptr ptr; 448 dcl imperative_stmt_tag fixed bin; 449 450 /* DECLARATION OF INTERNAL VARIABLES */ 451 dcl work_token_ptr ptr; 452 453 /* Generate code to load the divisor into the A or Q */ 454 work_token_ptr = null (); 455 if divisor_token_ptr -> data_name.type = rtc_resword 456 then divisor_token_ptr = addr (dec_zero_token); 457 if divisor_token_ptr -> data_name.type = rtc_numlit 458 then do; /* Divisor is a numeric literal token. */ 459 call cobol_make_bin_const (divisor_token_ptr, work_token_ptr, 2); 460 divisor_token_ptr = work_token_ptr; 461 work_token_ptr = null (); 462 end; /* Divisor is a numeric literal token. */ 463 if divisor_token_ptr -> data_name.type = rtc_dataname & divisor_token_ptr -> data_name.bin_18 464 /* divisor is short binary */ 465 then call cobol_short_to_longbin$register (divisor_token_ptr, work_token_ptr); 466 else call cobol_load_register (divisor_token_ptr, work_token_ptr); 467 468 /* Emit a TZE instruction. */ 469 call cobol_emit (addr (tze_inst), null (), 1); 470 call cobol_make_tagref (imperative_stmt_tag, cobol_$text_wd_off - 1, null ()); 471 /* Release the register which has been loaded with the divisor. */ 472 register_struc.reg_no = work_token_ptr -> cobol_type100.register; 473 call cobol_register$release (addr (register_struc)); 474 475 end zero_divide_check; 476 477 /* INCLUDE FILES USED IN THIS PROCEDURE */ 478 479 /***** Declaration for builtin function *****/ 480 481 dcl (substr, mod, binary, fixed, addr, addrel, rel, length, string, unspec, null, index) 482 builtin; 483 484 /***** End of declaration for builtin function *****/ 485 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 486 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 487 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 488 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 489 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 490 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 491 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 492 493 494 end cobol_divide_bin_gen; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1134.7 cobol_divide_bin_gen.pl1 >udd>sm>ds>w>ml>cobol_divide_bin_gen.pl1 486 1 03/27/82 0539.9 cobol_type9.incl.pl1 >ldd>incl>cobol_type9.incl.pl1 1-17 2 11/11/82 1812.7 cobol_TYPE9.incl.pl1 >ldd>incl>cobol_TYPE9.incl.pl1 487 3 05/24/89 1159.1 cobol_addr_tokens.incl.pl1 >ldd>incl>cobol_addr_tokens.incl.pl1 488 4 11/11/82 1812.7 cobol_.incl.pl1 >ldd>incl>cobol_.incl.pl1 489 5 11/11/82 1812.7 cobol_in_token.incl.pl1 >ldd>incl>cobol_in_token.incl.pl1 490 6 03/27/82 0539.8 cobol_record_types.incl.pl1 >ldd>incl>cobol_record_types.incl.pl1 491 7 03/27/82 0539.8 cobol_type100.incl.pl1 >ldd>incl>cobol_type100.incl.pl1 492 8 03/27/82 0539.8 cobol_type19.incl.pl1 >ldd>incl>cobol_type19.incl.pl1 8-17 9 03/27/82 0539.6 cobol_TYPE19.incl.pl1 >ldd>incl>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. a 11 based bit(3) level 2 packed packed unaligned dcl 8-16 ref 184 290 290 308 308 370 370 addr builtin function dcl 481 ref 225 225 249 249 252 252 269 269 312 312 354 354 382 382 395 395 413 413 430 430 455 469 469 473 473 b 11(03) based bit(1) level 2 packed packed unaligned dcl 8-16 ref 174 bin_18 21(13) based bit(1) level 2 packed packed unaligned dcl 1-16 ref 203 330 344 373 463 call_again 000133 automatic bit(1) packed unaligned dcl 164 set ref 222* 240* 241 245* 332* 346* 347 360* 375* 377 387* cobol_$next_tag 000066 external static fixed bin(17,0) dcl 4-128 set ref 178 180* 180 cobol_$text_wd_off 000064 external static fixed bin(17,0) dcl 4-90 ref 270 355 383 414 470 cobol_alloc$stack 000036 constant entry external dcl 66 ref 218 cobol_define_tag 000060 constant entry external dcl 79 ref 273 416 cobol_emit 000046 constant entry external dcl 73 ref 269 354 382 413 469 cobol_fofl_mask$off 000052 constant entry external dcl 75 ref 403 422 cobol_fofl_mask$on 000050 constant entry external dcl 74 ref 339 373 cobol_load_register 000032 constant entry external dcl 63 ref 466 cobol_make_bin_const 000026 constant entry external dcl 59 ref 459 cobol_make_reg_token 000062 constant entry external dcl 81 ref 237 319 cobol_make_tagref 000056 constant entry external dcl 78 ref 270 355 383 414 470 cobol_make_type9$long_bin 000040 constant entry external dcl 67 ref 220 cobol_multiply2_binary 000054 constant entry external dcl 76 ref 234 306 cobol_register$release 000044 constant entry external dcl 70 ref 225 249 252 312 395 430 473 cobol_short_to_longbin$register 000030 constant entry external dcl 61 ref 463 cobol_short_to_longbin$temp 000034 constant entry external dcl 64 ref 207 cobol_store_binary 000042 constant entry external dcl 69 ref 222 240 245 332 346 360 375 387 cobol_type100 based structure level 1 dcl 7-12 data_name based structure level 1 unaligned dcl 1-16 dec_zero_token 000013 internal static structure level 1 unaligned dcl 107 set ref 455 dividend_token_ptr 000122 automatic pointer dcl 154 set ref 293* 298* 306* divisor_token_ptr parameter pointer dcl 447 in procedure "zero_divide_check" set ref 437 455 455* 457 459* 460* 463 463 463* 466* divisor_token_ptr 000120 automatic pointer dcl 153 in procedure "cobol_divide_bin_gen" set ref 198* 201* 203 203 207* 208* 211 222* 224 226* 234* 292* 297* 302* 306* e 5 based fixed bin(17,0) level 2 dcl 8-16 ref 197 end_stmt based structure level 1 unaligned dcl 8-16 eos_ptr 000136 automatic pointer dcl 8-13 set ref 172* 174 184 197 262 290 290 308 308 370 370 406 f 11(07) based bit(2) level 2 packed packed unaligned dcl 8-16 ref 262 406 imperative_stmt_tag parameter fixed bin(17,0) dcl 448 in procedure "zero_divide_check" set ref 437 470* imperative_stmt_tag 000116 automatic fixed bin(17,0) dcl 150 in procedure "cobol_divide_bin_gen" set ref 178* 179 201* 262 273* 302* 355* 383* 406 416* in_token based structure level 1 dcl 5-9 in_token_ptr parameter pointer dcl 5-7 ref 27 172 172 198 232 234 240 245 292 293 297 298 313 321 330 332 344 346 360 373 373 375 375 387 387 ix 000117 automatic fixed bin(17,0) dcl 151 set ref 232* 234 240 245* 328* 330 332* 342* 344 346 360* last_target_index 000134 automatic fixed bin(17,0) dcl 169 set ref 313* 321* 328 342 n based fixed bin(17,0) level 2 dcl 5-9 ref 172 232 313 321 373 375 387 next_stmt_tag parameter fixed bin(17,0) dcl 39 set ref 27 179* 262* 270* 406* 414* null builtin function dcl 481 ref 182 206 219 236 269 269 270 270 318 354 354 355 355 382 382 383 383 413 413 414 414 454 461 469 469 470 470 ose_flag 000126 automatic bit(1) packed unaligned dcl 156 set ref 174* 176 201 258 302 339 351 373 379 400 receive_count 000114 automatic fixed bin(17,0) dcl 145 set ref 197* 211 reg_no 1 000100 automatic bit(4) level 2 packed packed unaligned dcl 134 set ref 224* 248* 251* 311* 394* 429* 472* register 4 based bit(4) level 2 packed packed unaligned dcl 7-12 ref 224 248 394 429 472 register_struc 000100 automatic structure level 1 unaligned dcl 134 set ref 225 225 249 249 252 252 312 312 395 395 430 430 473 473 remainder_token_ptr 000124 automatic pointer dcl 155 set ref 318* 319* 375* 387* 391 394 result_token_ptr 000112 automatic pointer dcl 142 set ref 182* 234* 236* 237* 240* 245* 248 306* 332* 346* 360* 426 429 ret_offset 000115 automatic fixed bin(24,0) dcl 146 set ref 218* 220* rtc_dataname constant fixed bin(15,0) initial dcl 6-13 ref 203 211 463 rtc_numlit constant fixed bin(15,0) initial dcl 6-6 ref 457 rtc_register constant fixed bin(15,0) initial dcl 6-36 ref 391 426 rtc_resword constant fixed bin(15,0) initial dcl 6-5 ref 455 skipped_some 000132 automatic bit(1) packed unaligned dcl 159 set ref 326* 330* 337 temp_ptr 000130 automatic pointer dcl 158 set ref 206* 207* 208 219* 220* 222* 226 token_ptr 2 based pointer array level 2 dcl 5-9 set ref 172 198 234* 240* 245* 292 293 297 298 330 332* 344 346* 360* 373 375* 387* tov_inst 000010 internal static bit(36) initial packed unaligned dcl 95 set ref 354 354 382 382 tra_inst 000011 internal static bit(36) initial packed unaligned dcl 98 set ref 269 269 413 413 type 3 based fixed bin(17,0) level 2 dcl 1-16 ref 203 211 391 426 455 457 463 tze_inst 000012 internal static bit(36) initial packed unaligned dcl 105 set ref 469 469 work_token_ptr 000166 automatic pointer dcl 451 set ref 454* 459* 460 461* 463* 466* 472 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. AOS internal static bit(10) initial packed unaligned dcl 88 LDA internal static bit(10) initial packed unaligned dcl 90 LDQ internal static bit(10) initial packed unaligned dcl 92 STZ internal static bit(10) initial packed unaligned dcl 86 addend_token_ptr automatic pointer dcl 144 addrel builtin function dcl 481 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 481 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_addr 000000 constant entry external dcl 72 cobol_data_wd_off defined fixed bin(17,0) dcl 4-119 cobol_register$load 000000 constant entry external dcl 80 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 167 eln_max defined fixed bin(17,0) dcl 4-173 eln_ptr defined pointer dcl 4-69 fixed builtin function dcl 481 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 481 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_buff automatic structure level 1 unaligned dcl 126 input_ptr automatic pointer dcl 3-18 input_struc based structure level 1 unaligned dcl 3-32 input_struc_basic based structure level 1 unaligned dcl 3-23 inst_ptr automatic pointer dcl 3-18 inst_struc based structure level 1 dcl 3-66 inst_struc_basic based structure level 1 dcl 3-51 length builtin function dcl 481 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 481 next_tag defined fixed bin(17,0) dcl 4-129 no_ovflo_tag automatic fixed bin(17,0) dcl 149 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 ovflo_flag_inst automatic bit(36) packed unaligned dcl 147 ovflo_tag automatic fixed bin(17,0) dcl 148 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 481 reloc_buff automatic structure level 1 unaligned dcl 129 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_ptr automatic pointer dcl 3-18 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 481 substr builtin function dcl 481 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_lop_token_ptr automatic pointer dcl 160 temp_rop_token_ptr automatic pointer dcl 161 temp_target_code automatic fixed bin(17,0) dcl 152 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 tlength automatic fixed bin(17,0) dcl 157 tnz_inst internal static bit(36) initial packed unaligned dcl 101 token_block1_ptr defined pointer dcl 4-47 token_block2_ptr defined pointer dcl 4-49 unspec builtin function dcl 481 value_cnt defined fixed bin(17,0) dcl 4-195 work_token_ptr automatic pointer dcl 143 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_divide_bin_gen 000010 constant entry external dcl 27 format1_divide 000050 constant entry internal dcl 190 ref 184 format2_5_divide 000443 constant entry internal dcl 283 ref 186 start 000015 constant label dcl 172 zero_divide_check 001267 constant entry internal dcl 437 ref 201 302 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1714 2004 1454 1724 Length 2404 1454 70 364 237 16 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_divide_bin_gen 180 external procedure is an external procedure. format1_divide internal procedure shares stack frame of external procedure cobol_divide_bin_gen. format2_5_divide internal procedure shares stack frame of external procedure cobol_divide_bin_gen. zero_divide_check internal procedure shares stack frame of external procedure cobol_divide_bin_gen. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 tov_inst cobol_divide_bin_gen 000011 tra_inst cobol_divide_bin_gen 000012 tze_inst cobol_divide_bin_gen 000013 dec_zero_token cobol_divide_bin_gen STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_divide_bin_gen 000100 register_struc cobol_divide_bin_gen 000112 result_token_ptr cobol_divide_bin_gen 000114 receive_count cobol_divide_bin_gen 000115 ret_offset cobol_divide_bin_gen 000116 imperative_stmt_tag cobol_divide_bin_gen 000117 ix cobol_divide_bin_gen 000120 divisor_token_ptr cobol_divide_bin_gen 000122 dividend_token_ptr cobol_divide_bin_gen 000124 remainder_token_ptr cobol_divide_bin_gen 000126 ose_flag cobol_divide_bin_gen 000130 temp_ptr cobol_divide_bin_gen 000132 skipped_some cobol_divide_bin_gen 000133 call_again cobol_divide_bin_gen 000134 last_target_index cobol_divide_bin_gen 000136 eos_ptr cobol_divide_bin_gen 000166 work_token_ptr zero_divide_check THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_alloc$stack cobol_define_tag cobol_emit cobol_fofl_mask$off cobol_fofl_mask$on cobol_load_register cobol_make_bin_const cobol_make_reg_token cobol_make_tagref cobol_make_type9$long_bin cobol_multiply2_binary cobol_register$release cobol_short_to_longbin$register cobol_short_to_longbin$temp 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 27 000004 172 000015 174 000024 176 000030 178 000031 179 000033 180 000035 182 000037 184 000041 186 000046 494 000047 190 000050 197 000051 198 000054 201 000061 203 000065 206 000076 207 000100 208 000111 209 000113 211 000114 218 000121 219 000137 220 000141 222 000156 224 000171 225 000175 226 000206 232 000210 234 000223 236 000247 237 000251 240 000264 241 000302 245 000305 248 000323 249 000327 251 000340 252 000342 255 000353 258 000355 262 000357 269 000371 270 000412 273 000433 279 000442 283 000443 290 000444 292 000454 293 000461 294 000465 297 000466 298 000473 302 000477 306 000503 308 000522 311 000532 312 000534 313 000545 314 000552 318 000553 319 000555 321 000570 326 000575 328 000576 330 000605 332 000621 333 000634 337 000636 339 000640 342 000647 344 000657 346 000670 347 000703 351 000706 354 000710 355 000731 360 000751 366 000767 370 000771 373 001001 375 001021 377 001041 379 001044 382 001046 383 001067 387 001107 391 001127 394 001133 395 001136 400 001147 403 001151 406 001156 413 001170 414 001211 416 001232 422 001241 426 001246 429 001252 430 001255 433 001266 437 001267 454 001271 455 001273 457 001303 459 001310 460 001325 461 001330 463 001332 466 001355 469 001366 470 001407 472 001430 473 001434 475 001445 ----------------------------------------------------------- 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