COMPILATION LISTING OF SEGMENT cobol_register_util Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 0957.4 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_register_util.pl1 Added Trace statements. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 10/19/84 by FCH, [4.3-1], BUG563(phx18381), new cobol_addr_tokens.incl.pl1 */ 23 /* Modified on 09/03/83 by FCH, [5.2...], trace added */ 24 /* Modified on 01/14/77 by ORN to signal command_abort_ rather than cobol_compiler_error */ 25 /* Modified since Version 2.0 */ 26 27 /* format: style3 */ 28 cobol_register_util: 29 proc (bit_reg_code); 30 31 /* 32*This procedure generates code to save and restore the arithmetic 33*registers, and pointer registers. There are four entry points: 34* 1. save - generates code to save A,Q,A and Q, or index. 35* 2. restore- generates code to restore A,Q,A and Q, or index 36* 3. save_pointer - generates code to save a pointer register. 37* 4. restore_pointer - generates code to restore a pointer 38* register. 39*/*}*/ 40 41 /* DECLARATION OF THE PARAMETER */ 42 43 dcl bit_reg_code bit (4); 44 45 /* DESCRIPTION OF THE PARAMETER */ 46 47 /* 48*PARAMETER DESCRIPTION 49* 50*bit_reg_code A code that identifies the register to be 51* saved or restored. The code is defined 52* by the following tables: 53* If this procedure is being called to save 54* or restore A,Q, or index register: 55* 56* 57* code | register 58* ======================================= 59* "0001"b | A 60* "0010"b | Q 61* "0011"b | A and Q 62* "1nnn"b | index register nnn 63* ========================================= 64* 65* If this procedure is being called to save 66* or restore a pointer register the code 67* values are: 68* 69* code | register 70* ======================================== 71* "0nnn"b | pointer register "nnn"b 72* ========================================= 73* 74**/ 75 76 /* DECLARATIONS OF EXTERNAL ENTRIES */ 77 78 dcl signal_ ext entry (char (*), ptr, ptr); 79 dcl cobol_emit ext entry (ptr, ptr, fixed bin); 80 dcl cobol_alloc$stack ext entry (fixed bin, fixed bin, fixed bin); 81 dcl cobol_addr ext entry (ptr, ptr, ptr); /* DECLARATION OF INTERNAL STATIC DATA */ 82 83 dcl STO bit (7) int static init ("1111011"b); 84 /* Leftmost 7 bits of STA,STQ,STAQ opcodes. */ 85 86 dcl STXN bit (6) int static init ("111100"b); 87 /* Leftmost 6 bits of STXN opcode. */ 88 89 dcl LOAD bit (7) int static init ("0100111"b); 90 /* Leftmost 7 bits of LDA,LDQ,LDAQ opcodes. */ 91 92 dcl LDXN bit (6) int static init ("010010"b); 93 /* Leftmost 6 bits of LDXN opcode. */ 94 95 dcl SPRPN bit (6) int static init ("101100"b); 96 /* Leftmost 6 bits of SPRPn */ 97 98 dcl LPRPN bit (6) int static init ("111110"b); 99 /* Leftmost 6 bits of LPRPn */ 100 101 102 /***..... 103*dcl MY_NAME char (19) int static init ("COBOL_REGISTER_UTIL"); 104*dcl SAVE_NAME char (5) int static init ("$SAVE"); 105*dcl RESTORE_NAME char (8) int static init ("$RESTORE"); 106*dcl SAVE_POINTER_NAME char (13) int static init ("$SAVE_POINTER"); 107*dcl RESTORE_POINTER_NAME 108* char (16) int static init ("$RESTORE_POINTER"); 109*/**/ 110 111 112 dcl 1 error_message int static, 113 2 name char (32) init ("cobol_register_util"), 114 2 length fixed bin init (80), 115 2 message char (80); 116 117 118 /* DECLARATIONS OF INTERNAL AUTOMATIC VARIABLES */ 119 120 dcl work_reg_code fixed bin; 121 dcl work_opcode bit (9); 122 dcl fixed_reg_code fixed bin; 123 dcl temp_chars fixed bin; 124 dcl temp_offset fixed bin; 125 dcl binary_reg_code fixed bin; 126 127 dcl 1 input_buff aligned, 128 2 buffer (1:10) fixed bin; 129 130 131 132 /*************************************/ 133 save: 134 entry (bit_reg_code); 135 136 /* 137*This entry point generates code to save a register (A,Q,A-Q, or index) 138*into temporary storage, and saves the address and relocation information 139*in the register save_stack for the register being saved. 140**/ 141 142 /***..... if Trace_Bit then call cobol_gen_driver_$Tr_Beg(MY_NAME||SAVE_NAME);/**/ 143 144 /* Map the bit register code into a fixed binary register code. */ 145 146 fixed_reg_code = get_reg_code (bit_reg_code); 147 148 if reg_status.save_stack_count (fixed_reg_code) = reg_status.save_stack_max (fixed_reg_code) 149 then do; /* SAve stack is full, signal compile time error. */ 150 error_message.message = "save_stack overflow ($save entry)"; 151 stack_overflow: 152 call signal_ ("command_abort_", null (), addr (error_message)); 153 return; 154 end; /* Save stack is full, signal compile time error. */ 155 156 if fixed_reg_code = 10 157 then do; /* Saving A and Q. */ 158 work_reg_code = 8; /* Save address of the temporary into which A-Q 159* is stored into the save stack for the A register. */ 160 temp_chars = 8; 161 end; /* Saving A and Q */ 162 163 else do; 164 work_reg_code = fixed_reg_code; 165 temp_chars = 4; 166 end; 167 168 call get_temp_storage (temp_chars, temp_offset); 169 call establish_address (work_reg_code, temp_offset); 170 171 /* Insert the proper opcode into the save_stack entry. */ 172 if fixed_reg_code > 7 173 then work_opcode = STO || substr (bit_reg_code, 3, 2); 174 /* Store A,Q,A-Q */ 175 else work_opcode = STXN || substr (bit_reg_code, 2, 3); 176 /* Store index n */ 177 178 temp_stack_count = reg_status.save_stack_count (fixed_reg_code); 179 substr (reg_status.save_stack (fixed_reg_code, temp_stack_count), 19, 9) = work_opcode; 180 181 /* Emit the store instruction. */ 182 call cobol_emit (inst_ptr, reloc_ptr, 1); 183 184 go to exit_save; 185 186 187 /*************************************/ 188 restore: 189 entry (bit_reg_code); 190 191 /* 192*This entry point generates code to restore a register from a 193*saved value in the stack. 194**/ 195 196 /***.....if Trace_Bit then call cobol_gen_driver_$Tr_Beg(MY_NAME||RESTORE_NAME);/**/ 197 198 /* Map the bit code into a fixed binary code. */ 199 200 work_reg_code = get_reg_code (bit_reg_code); 201 202 if work_reg_code = 10 /* A and Q */ 203 then fixed_reg_code = 8; /* Address of the temp in which A and Q is stored is 204* saved in the A register save_stack. */ 205 else fixed_reg_code = work_reg_code; 206 207 if reg_status.save_stack_count (fixed_reg_code) = 0 208 then do; /* No register is saved..none can be restored. */ 209 error_message.message = "save stack underflow ($restore entry)"; 210 stack_underflow: 211 call signal_ ("command_abort_", null (), addr (error_message)); 212 return; 213 end; /* No register is saved..non can be restored. */ 214 215 temp_stack_count = reg_status.save_stack_count (fixed_reg_code); 216 inst_ptr = addr (reg_status.save_stack (fixed_reg_code, temp_stack_count)); 217 218 reloc_ptr = addr (reg_status.reloc_stack (fixed_reg_code, temp_stack_count)); 219 220 221 if work_reg_code > 7 222 then work_opcode = LOAD || substr (bit_reg_code, 3, 2); 223 /* Load A,Q or A-Q */ 224 else work_opcode = LDXN || substr (bit_reg_code, 2, 3); 225 /* Load index n */ 226 227 temp_stack_count = reg_status.save_stack_count (fixed_reg_code); 228 substr (reg_status.save_stack (fixed_reg_code, temp_stack_count), 19, 9) = work_opcode; 229 230 /* Decrement the top of stack pointer for the save_stack. */ 231 reg_status.save_stack_count (fixed_reg_code) = reg_status.save_stack_count (fixed_reg_code) - 1; 232 call cobol_emit (inst_ptr, reloc_ptr, 1); 233 234 exit_save: 235 exit_save_pointer: 236 exit_restore_pointer: 237 /***.....if Trace_Bit then call cobol_gen_driver_$Tr_End(MY_NAME);/**/ 238 return; 239 240 241 /*************************************/ 242 243 save_pointer: 244 entry (bit_reg_code); 245 246 /* 247*This entry point generates code to save a pointer register 248*into temporary storage, and saves the address at which the pointer 249*register is stored, and relocation information in the pointer register 250*save statck for the pointer register being saved. 251**/ 252 253 /***.....if Trace_Bit then call cobol_gen_driver_$Tr_Beg(MY_NAME||SAVE_POINTER_NAME);/**/ 254 255 start_save_pointer: /* Convert the bit pointer register code to fixed binary. */ 256 fixed_reg_code = fixed (bit_reg_code, 17); 257 258 temp_stack_count = ptr_status.save_stack_max (fixed_reg_code); 259 if ptr_status.save_stack_count (fixed_reg_code) = temp_stack_count 260 then do; /* Pointer save stack for this pointer register is full. */ 261 error_message.message = "save_stack overflow ($save_pointer entry)"; 262 pointer_stack_overflow: 263 call signal_ ("command_abort_", null (), addr (error_message)); 264 return; 265 end; /* Pointer save stack for this pointer register is full. */ 266 267 call get_temp_storage (4 /* number of bytes */, temp_offset); 268 call establish_address (fixed_reg_code + 10, temp_offset); 269 270 /* Insert the opcode into the save stack entry. */ 271 temp_stack_count = ptr_status.save_stack_count (fixed_reg_code); 272 substr (ptr_status.save_stack (fixed_reg_code, temp_stack_count), 19, 9) = SPRPN || substr (bit_reg_code, 2, 3); 273 274 /* Emit the instruction to store the pointer register into the temporary. */ 275 call cobol_emit (inst_ptr, reloc_ptr, 1); 276 277 go to exit_save_pointer; 278 279 280 /*************************************/ 281 282 restore_pointer: 283 entry (bit_reg_code); 284 285 /* 286*This entry point generates code to restore a pointer register 287*from a saved value in a temporary (in the stack). 288**/ 289 /***..... dcl RESTORE_POINTER char (15) int static init ("RESTORE_POINTER");/**/ 290 /***.....if Trace_Bit then call cobol_gen_driver_$Tr_Beg(MY_NAME||RESTORE_POINTER);/**/ 291 292 start_restore_pointer: 293 fixed_reg_code = fixed (bit_reg_code, 17); /* Check for stack underflow. */ 294 if ptr_status.save_stack_count (fixed_reg_code) = 0 295 then do; /* No pointer is saved...none can be restored. */ 296 error_message.message = "save_stack underflow ($save_pointer entry)"; 297 pointer_stack_underflow: 298 call signal_ ("command_abort_", null (), addr (error_message)); 299 return; 300 end; /* No pointer is saved...none can be restored. */ 301 302 temp_stack_count = ptr_status.save_stack_count (fixed_reg_code); 303 inst_ptr = addr (ptr_status.save_stack (fixed_reg_code, temp_stack_count)); 304 temp_stack_count = ptr_status.save_stack_count (fixed_reg_code); 305 reloc_ptr = addr (ptr_status.reloc_stack (fixed_reg_code, temp_stack_count)); 306 307 inst_struc_basic.fill1_op = LPRPN || substr (bit_reg_code, 2, 3); 308 309 /* Emit the instruction to restore the pointer register from the saved value in temporary storage. */ 310 call cobol_emit (inst_ptr, reloc_ptr, 1); 311 312 /* Decrement the top of stack pointer (counter) for the save stack. */ 313 ptr_status.save_stack_count (fixed_reg_code) = ptr_status.save_stack_count (fixed_reg_code) - 1; 314 315 go to exit_restore_pointer; 316 317 get_reg_code: 318 proc (reg_bit_code) returns (fixed bin); 319 320 /* 321*This internal procedure maps a four bit register code into a fixed binary 322*register code. 323**/ 324 325 dcl reg_bit_code bit (4); 326 327 dcl binary_code fixed bin; 328 329 if reg_bit_code = "0001"b 330 then binary_reg_code = 8; /* A */ 331 else if reg_bit_code = "0010"b 332 then binary_reg_code = 9; /* Q */ 333 else if reg_bit_code = "0011"b 334 then binary_reg_code = 10; /* A and Q */ 335 else binary_reg_code = fixed (reg_bit_code, 17, 0) - 8; 336 /* Index register. */ 337 338 return (binary_reg_code); 339 340 end get_reg_code; 341 342 get_temp_storage: 343 proc (byte_length, char_offset); 344 345 /* 346*This internal procedure allocates space on the stack for a temporary 347*in which a register is to be stored. 348**/ 349 350 /* DECLARATION OF THE PARAMETERS */ 351 352 dcl byte_length fixed bin; 353 dcl char_offset fixed bin; 354 355 /* DESCRIPTION OF THE PARAMETERS */ 356 357 /* 358*PARAMETER DESCRIPTION 359* 360*byte_length The number of bytes to allocate in the stack. 361* This length will be 4 if the register being 362* stored is A,Q,any index register or any 363* pointer register, and 8 if the register being 364* stored is the A-Q. (input) 365*char_offset The character offset of the leftmost character 366* of the stack temporary. (output) 367* 368**/ 369 370 /* Allocate space, aligned on a double word boundary. */ 371 call cobol_alloc$stack (byte_length, 2, char_offset); 372 373 /* Convert the returned word offset to a character offset. */ 374 char_offset = char_offset * 4; 375 376 end get_temp_storage; 377 378 establish_address: 379 proc (binary_reg_code, temp_char_offset); 380 381 /* 382*This internal procedure establishes the address of the temporary 383*in the stack to receive a stored register. 384**/ 385 386 /* DECLARATION OF THE PARAMETERS */ 387 388 dcl binary_reg_code fixed bin; 389 dcl temp_char_offset fixed bin; 390 391 /* DESCRIPTION OF THE PARAMETERS */ 392 393 /* 394*PARAMETER DESCRIPTION 395* 396*binary_reg_code A code that identifies the register being 397* stored, and that indicates 398* the subscript of the register status structure 399* entry in which the address is to be stored. 400* This code specifies either a register (A,Q, 401* or index) or a pointer register, as shown 402* in the folllowing table: 403* 404* code | register identified 405* ========================================= 406* 0-7 | index register 0-7 407* 8 | A 408* 9 | Q 409* 10-17 | pointer register 0-7 410* ========================================== 411* 412* 413*temp_char_offset The character offset of the leftmost byte 414* of the word in the stack into whichh the registe 415* is to be stored. (input) 416* 417**/ 418 419 if binary_reg_code < 10 420 then do; /* Storing a register (A,Q,A-Q, or index) */ 421 422 reg_status.save_stack_count (binary_reg_code) = reg_status.save_stack_count (binary_reg_code) + 1; 423 temp_stack_count = reg_status.save_stack_count (binary_reg_code); 424 inst_ptr = addr (reg_status.save_stack (binary_reg_code, temp_stack_count)); 425 426 temp_stack_count = reg_status.save_stack_count (binary_reg_code); 427 reloc_ptr = addr (reg_status.reloc_stack (binary_reg_code, temp_stack_count)); 428 end; /* Storing a register (A,Q,A-Q, or index) */ 429 430 else do; /* Storing a pointer register. */ 431 temp_stack_count = ptr_status.save_stack_count (binary_reg_code - 10); 432 ptr_status.save_stack_count (binary_reg_code - 10) = temp_stack_count + 1; 433 temp_stack_count = ptr_status.save_stack_count (binary_reg_code - 10); 434 inst_ptr = addr (ptr_status.save_stack (binary_reg_code - 10, temp_stack_count)); 435 436 temp_stack_count = ptr_status.save_stack_count (binary_reg_code - 10); 437 reloc_ptr = addr (ptr_status.reloc_stack (binary_reg_code - 10, temp_stack_count)); 438 end; /* Storing a pointer register. */ 439 440 /* Set up to call the addressability utility to establish the address 441* of the stack temporary. Note that the address and reloc information are stored into the 442* proper save_stack for the register being stored. */ 443 444 input_ptr = addr (input_buff); 445 input_struc_basic.type = 1; 446 input_struc_basic.operand_no = 0; 447 input_struc_basic.lock = 0; 448 input_struc_basic.segno = 1000; /* Stack */ 449 input_struc_basic.char_offset = temp_offset; 450 451 call cobol_addr (input_ptr, inst_ptr, reloc_ptr); 452 453 454 end establish_address; 455 456 457 458 /***..... dcl cobol_gen_driver_$Tr_Beg entry(char(*));/**/ 459 /***..... dcl cobol_gen_driver_$Tr_End entry(char(*));/**/ 460 461 /***..... dcl Trace_Bit bit(1) static external;/**/ 462 /***..... dcl Trace_Lev fixed bin static external;/**/ 463 /***..... dcl Trace_Line char(36) static external;/**/ 464 /***..... dcl ioa_ entry options(variable); /**/ 465 466 467 dcl temp_stack_count fixed bin; 468 469 /* INCLUDE FILES USED BY THIS PROCEDURE */ 470 /***** Declaration for builtin function *****/ 471 472 dcl (substr, mod, binary, fixed, addr, addrel, rel, length, string, unspec, null, index) 473 builtin; 474 475 /***** End of declaration for builtin function *****/ 476 1 1 1 2 /* BEGIN INCLUDE FILE ... cobol_addr_tokens.incl.pl1 */ 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8058), 1 7* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 1 8* MCR8058 cobol_addr_tokens.incl.pl1 Change array extents to refer to 1 9* constants rather than variables. 1 10* END HISTORY COMMENTS */ 1 11 1 12 1 13 /* Last modified on 10/1/74 by tg */ 1 14 1 15 1 16 /* parameter list */ 1 17 1 18 dcl (input_ptr, inst_ptr, reloc_ptr) ptr; 1 19 1 20 1 21 /* input_struc_basic is used for type 1 addressing */ 1 22 1 23 dcl 1 input_struc_basic based (input_ptr), 1 24 2 type fixed bin, 1 25 2 operand_no fixed bin, 1 26 2 lock fixed bin, 1 27 2 segno fixed bin, 1 28 2 char_offset fixed bin (24), 1 29 2 send_receive fixed bin; 1 30 1 31 1 32 dcl 1 input_struc based (input_ptr), 1 33 2 type fixed bin, 1 34 2 operand_no fixed bin, 1 35 2 lock fixed bin, 1 36 2 operand (0 refer (input_struc.operand_no)), 1 37 3 token_ptr ptr, 1 38 3 send_receive fixed bin, 1 39 3 ic_mod fixed bin, 1 40 3 size_sw fixed bin; 1 41 1 42 /* reloc_struc is used for all types of addressing * all types */ 1 43 1 44 dcl 1 reloc_struc (input_struc.operand_no + 1) based (reloc_ptr), 1 45 2 left_wd bit (5) aligned, 1 46 2 right_wd bit (5) aligned; 1 47 1 48 /* Instruction format for 1 word instruction */ 1 49 1 50 1 51 dcl 1 inst_struc_basic based (inst_ptr) aligned, 1 52 2 y unaligned, 1 53 3 pr bit (3) unaligned, 1 54 3 wd_offset bit (15) unaligned, 1 55 2 fill1_op bit (10) unaligned, 1 56 2 zero1 bit (1) unaligned, 1 57 2 pr_spec bit (1) unaligned, 1 58 2 tm bit (2) unaligned, 1 59 2 td bit (4) unaligned; 1 60 1 61 1 62 /* The detailed definitions of the fields in this structure 1 63* can be found in the GMAP manual section 8 */ 1 64 /* EIS instruction format for 2_4 word instructions */ 1 65 1 66 dcl 1 inst_struc based (inst_ptr) aligned, 1 67 2 inst unaligned, 1 68 3 zero1 bit (2) unaligned, 1 69 3 mf3 unaligned, 1 70 4 pr_spec bit (1) unaligned, 1 71 4 reg_or_length bit (1) unaligned, 1 72 4 zero2 bit (1) unaligned, 1 73 4 reg_mod bit (4) unaligned, 1 74 3 zero3 bit (2) unaligned, 1 75 3 mf2 unaligned, 1 76 4 pr_spec bit (1) unaligned, 1 77 4 reg_or_length bit (1) unaligned, 1 78 4 zero4 bit (1) unaligned, 1 79 4 reg_mod bit (4) unaligned, 1 80 3 fill1_op bit (10) unaligned, 1 81 3 zero5 bit (1) unaligned, 1 82 3 mf1 unaligned, 1 83 4 pr_spec bit (1) unaligned, 1 84 4 reg_or_length bit (1) unaligned, 1 85 4 zero6 bit (1) unaligned, 1 86 4 reg_mod bit (4) unaligned, 1 87 2 desc_ext unaligned, 1 88 3 desc (512) unaligned, 1 89 4 desc_od bit (36) unaligned; 1 90 1 91 /* The detailed definitions of the fields in this structure 1 92* can be found in the GMAP manual section 8. 1 93* The desc_ext is the descriptor extension of this eis 1 94* instruction. The number of descriptors associated with 1 95* this instruction is equavalent to the operand number. 1 96* Depending on operand data type, the descriptor 1 97* can be alphanumeric or numeric. The structures of the 1 98* alphanumeric and the numeric descriptors are defined 1 99* below. */ 1 100 1 101 /* alphanumeric descriptor format */ 1 102 1 103 dcl 1 desc_an based (desc_an_ptr) unaligned, 1 104 2 desc_f (512) unaligned, 1 105 3 y unaligned, 1 106 4 pr bit (3) unaligned, 1 107 4 wd_offset bit (15) unaligned, 1 108 3 char_n bit (3) unaligned, 1 109 3 zero1 bit (1) unaligned, 1 110 3 ta bit (2), 1 111 3 n bit (12) unaligned; 1 112 1 113 1 114 /* The detailed definitions of the fields in this structure can 1 115* be found in the GMAP manual section 8. */ 1 116 /* numeric descriptor format */ 1 117 1 118 dcl desc_nn_ptr ptr; 1 119 dcl desc_an_ptr ptr; 1 120 1 121 1 122 dcl 1 desc_nn based (desc_nn_ptr) unaligned, 1 123 2 desc_f (512) unaligned, 1 124 3 y unaligned, 1 125 4 pr bit (3) unaligned, 1 126 4 wd_offset bit (15) unaligned, 1 127 3 digit_n bit (3) unaligned, 1 128 3 tn bit (1) unaligned, 1 129 3 sign_type bit (2) unaligned, 1 130 3 scal bit (6) unaligned, 1 131 3 n bit (6) unaligned; 1 132 1 133 1 134 /* The detailed definitions of fields in this structure can 1 135* be found in the GMAP manual section 8. */ 1 136 /* END INCLUDE FILE ... cobol_addr_tokens.incl.pl1 */ 1 137 477 478 dcl 1 reg_status (0:9) based (cobol_$reg_status_ptr) aligned, 2 1 2 2 /* BEGIN INCLUDE FILE ... cobol_reg_status.incl.pl1 */ 2 3 /* last modified Oct. 31,75 by tlf */ 2 4 2 5 /* 2 6*1. This structure maintains the status of the object 2 7* time A,Q and index registers. 2 8*2. The caller should provide a dcl statement in the form. 2 9* dcl 1 reg_status (0:9) based ( cobol_$reg_status_ptr) aligned, 2 10**/ 2 11 2 12 2 register_num bit (4), 2 13 2 r_lock fixed bin, 2 14 2 r_priority fixed bin, 2 15 02 save_stack_max fixed bin, 2 16 02 save_stack_count fixed bin, 2 17 02 save_stack (1:10) bit (36), 2 18 02 reloc_stack (1:10), 2 19 03 left_reloc_info bit (5) aligned, 2 20 03 right_reloc_info bit (5) aligned; 2 21 2 22 2 23 2 24 /* END INCLUDE FILE ... cobol_reg_status.incl.pl1 */ 2 25 479 480 dcl 1 ptr_status (0:9) based (cobol_$ptr_status_ptr) aligned, 3 1 3 2 /* BEGIN INCLUDE FILE ... cobol_ptr_status.incl.pl1 */ 3 3 /* Last modified June 3, 76 by bc */ 3 4 /* last modified Oct. 31,75 by tlf */ 3 5 3 6 /* 3 7*1. This structure contains the status of the object time 3 8* pointer registers. 3 9*2. The caller should provide a dcl statement in the form: 3 10* dcl 1 ptr_status (0:7) based ( cobol_$ptr_status_ptr) aligned, 3 11**/ 3 12 3 13 2 pointer_num bit (3), 3 14 2 usage fixed bin, 3 15 2 contents_sw fixed bin, 3 16 2 seg_num fixed bin, 3 17 2 wd_offset fixed bin (24), 3 18 2 p_lock fixed bin, 3 19 2 p_priority fixed bin, 3 20 2 p_reset fixed bin, 3 21 2 reset_seg_num fixed bin, 3 22 2 reset_wd_offset fixed bin (24), 3 23 02 save_stack_max fixed bin, 3 24 02 save_stack_count fixed bin, 3 25 02 save_stack (1:10) bit (36), 3 26 02 reloc_stack (1:10), 3 27 03 left_reloc_info bit (5) aligned, 3 28 03 right_reloc_info bit (5) aligned; 3 29 3 30 3 31 3 32 /* END INCLUDE FILE ... cobol_ptr_status.incl.pl1 */ 3 33 481 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 482 483 484 end cobol_register_util; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0832.7 cobol_register_util.pl1 >spec>install>MR12.3-1048>cobol_register_util.pl1 477 1 05/24/89 0811.7 cobol_addr_tokens.incl.pl1 >spec>install>MR12.3-1048>cobol_addr_tokens.incl.pl1 479 2 11/11/82 1712.8 cobol_reg_status.incl.pl1 >ldd>include>cobol_reg_status.incl.pl1 481 3 11/11/82 1712.8 cobol_ptr_status.incl.pl1 >ldd>include>cobol_ptr_status.incl.pl1 482 4 11/11/82 1712.7 cobol_.incl.pl1 >ldd>include>cobol_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. LDXN constant bit(6) initial packed unaligned dcl 92 ref 224 LOAD constant bit(7) initial packed unaligned dcl 89 ref 221 LPRPN constant bit(6) initial packed unaligned dcl 98 ref 307 SPRPN constant bit(6) initial packed unaligned dcl 95 ref 272 STO constant bit(7) initial packed unaligned dcl 83 ref 172 STXN constant bit(6) initial packed unaligned dcl 86 ref 175 addr builtin function dcl 472 ref 151 151 210 210 216 218 262 262 297 297 303 305 424 427 434 437 444 binary_reg_code parameter fixed bin(17,0) dcl 388 in procedure "establish_address" ref 378 419 422 422 423 424 426 427 431 432 433 434 436 437 binary_reg_code 000105 automatic fixed bin(17,0) dcl 125 in procedure "cobol_register_util" set ref 329* 331* 333* 335* 338 bit_reg_code parameter bit(4) packed unaligned dcl 43 set ref 28 133 146* 172 175 188 200* 221 224 243 255 272 282 292 307 byte_length parameter fixed bin(17,0) dcl 352 set ref 342 371* char_offset 4 based fixed bin(24,0) level 2 in structure "input_struc_basic" dcl 1-23 in procedure "cobol_register_util" set ref 449* char_offset parameter fixed bin(17,0) dcl 353 in procedure "get_temp_storage" set ref 342 371* 374* 374 cobol_$ptr_status_ptr 000056 external static pointer dcl 4-56 ref 258 259 271 272 294 302 303 304 305 313 313 431 432 433 434 436 437 cobol_$reg_status_ptr 000060 external static pointer dcl 4-58 ref 148 148 178 179 207 215 216 218 227 228 231 231 422 422 423 424 426 427 cobol_addr 000054 constant entry external dcl 81 ref 451 cobol_alloc$stack 000052 constant entry external dcl 80 ref 371 cobol_emit 000050 constant entry external dcl 79 ref 182 232 275 310 error_message 000010 internal static structure level 1 unaligned dcl 112 set ref 151 151 210 210 262 262 297 297 fill1_op 0(18) based bit(10) level 2 packed packed unaligned dcl 1-51 set ref 307* fixed builtin function dcl 472 ref 255 292 335 fixed_reg_code 000102 automatic fixed bin(17,0) dcl 122 set ref 146* 148 148 156 164 172 178 179 202* 205* 207 215 216 218 227 228 231 231 255* 258 259 268 271 272 292* 294 302 303 304 305 313 313 input_buff 000106 automatic structure level 1 dcl 127 set ref 444 input_ptr 000122 automatic pointer dcl 1-18 set ref 444* 445 446 447 448 449 451* input_struc_basic based structure level 1 unaligned dcl 1-23 inst_ptr 000124 automatic pointer dcl 1-18 set ref 182* 216* 232* 275* 303* 307 310* 424* 434* 451* inst_struc_basic based structure level 1 dcl 1-51 lock 2 based fixed bin(17,0) level 2 dcl 1-23 set ref 447* message 11 000010 internal static char(80) level 2 packed packed unaligned dcl 112 set ref 150* 209* 261* 296* null builtin function dcl 472 ref 151 151 210 210 262 262 297 297 operand_no 1 based fixed bin(17,0) level 2 dcl 1-23 set ref 446* ptr_status based structure array level 1 dcl 480 reg_bit_code parameter bit(4) packed unaligned dcl 325 ref 317 329 331 333 335 reg_status based structure array level 1 dcl 478 reloc_ptr 000126 automatic pointer dcl 1-18 set ref 182* 218* 232* 275* 305* 310* 427* 437* 451* reloc_stack 26 based structure array level 2 in structure "ptr_status" dcl 480 in procedure "cobol_register_util" set ref 305 437 reloc_stack 17 based structure array level 2 in structure "reg_status" dcl 478 in procedure "cobol_register_util" set ref 218 427 save_stack 5 based bit(36) array level 2 in structure "reg_status" dcl 478 in procedure "cobol_register_util" set ref 179* 216 228* 424 save_stack 14 based bit(36) array level 2 in structure "ptr_status" dcl 480 in procedure "cobol_register_util" set ref 272* 303 434 save_stack_count 13 based fixed bin(17,0) array level 2 in structure "ptr_status" dcl 480 in procedure "cobol_register_util" set ref 259 271 294 302 304 313* 313 431 432* 433 436 save_stack_count 4 based fixed bin(17,0) array level 2 in structure "reg_status" dcl 478 in procedure "cobol_register_util" set ref 148 178 207 215 227 231* 231 422* 422 423 426 save_stack_max 12 based fixed bin(17,0) array level 2 in structure "ptr_status" dcl 480 in procedure "cobol_register_util" ref 258 save_stack_max 3 based fixed bin(17,0) array level 2 in structure "reg_status" dcl 478 in procedure "cobol_register_util" ref 148 segno 3 based fixed bin(17,0) level 2 dcl 1-23 set ref 448* signal_ 000046 constant entry external dcl 78 ref 151 210 262 297 substr builtin function dcl 472 set ref 172 175 179* 221 224 228* 272* 272 307 temp_char_offset parameter fixed bin(17,0) dcl 389 ref 378 temp_chars 000103 automatic fixed bin(17,0) dcl 123 set ref 160* 165* 168* temp_offset 000104 automatic fixed bin(17,0) dcl 124 set ref 168* 169* 267* 268* 449 temp_stack_count 000120 automatic fixed bin(17,0) dcl 467 set ref 178* 179 215* 216 218 227* 228 258* 259 271* 272 302* 303 304* 305 423* 424 426* 427 431* 432 433* 434 436* 437 type based fixed bin(17,0) level 2 dcl 1-23 set ref 445* work_opcode 000101 automatic bit(9) packed unaligned dcl 121 set ref 172* 175* 179 221* 224* 228 work_reg_code 000100 automatic fixed bin(17,0) dcl 120 set ref 158* 164* 169* 200* 202 205 221 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. addrel builtin function dcl 472 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 472 binary_code automatic fixed bin(17,0) dcl 327 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_$next_tag external static fixed bin(17,0) dcl 4-128 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_$reg_assumption_ind external static fixed bin(17,0) dcl 4-146 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_$text_wd_off external static fixed bin(17,0) dcl 4-90 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 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 1-103 desc_an_ptr automatic pointer dcl 1-119 desc_nn based structure level 1 packed packed unaligned dcl 1-122 desc_nn_ptr automatic pointer dcl 1-118 diag_ptr defined pointer dcl 4-71 eln_max defined fixed bin(17,0) dcl 4-173 eln_ptr defined pointer dcl 4-69 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 472 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 1-32 inst_struc based structure level 1 dcl 1-66 length builtin function dcl 472 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 472 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 472 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 1-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 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 472 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 472 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_register_util 000066 constant entry external dcl 28 establish_address 001001 constant entry internal dcl 378 ref 169 268 exit_restore_pointer 000432 constant label dcl 234 ref 315 exit_save 000432 constant label dcl 234 ref 184 exit_save_pointer 000432 constant label dcl 234 ref 277 get_reg_code 000721 constant entry internal dcl 317 ref 146 200 get_temp_storage 000754 constant entry internal dcl 342 ref 168 267 pointer_stack_overflow 000466 constant label dcl 262 pointer_stack_underflow 000621 constant label dcl 297 restore 000257 constant entry external dcl 188 restore_pointer 000572 constant entry external dcl 282 save 000076 constant entry external dcl 133 save_pointer 000435 constant entry external dcl 243 stack_overflow 000130 constant label dcl 151 stack_underflow 000316 constant label dcl 210 start_restore_pointer 000577 constant label dcl 292 start_save_pointer 000442 constant label dcl 255 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1272 1354 1142 1302 Length 1644 1142 62 254 127 36 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_register_util 154 external procedure is an external procedure. get_reg_code internal procedure shares stack frame of external procedure cobol_register_util. get_temp_storage internal procedure shares stack frame of external procedure cobol_register_util. establish_address internal procedure shares stack frame of external procedure cobol_register_util. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 error_message cobol_register_util STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_register_util 000100 work_reg_code cobol_register_util 000101 work_opcode cobol_register_util 000102 fixed_reg_code cobol_register_util 000103 temp_chars cobol_register_util 000104 temp_offset cobol_register_util 000105 binary_reg_code cobol_register_util 000106 input_buff cobol_register_util 000120 temp_stack_count cobol_register_util 000122 input_ptr cobol_register_util 000124 inst_ptr cobol_register_util 000126 reloc_ptr cobol_register_util THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_addr cobol_alloc$stack cobol_emit signal_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cobol_$ptr_status_ptr cobol_$reg_status_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 28 000063 133 000073 146 000103 148 000114 150 000125 151 000130 153 000157 156 000160 158 000163 160 000165 161 000166 164 000167 165 000170 168 000172 169 000174 172 000176 175 000213 178 000224 179 000233 182 000240 184 000254 188 000255 200 000264 202 000275 205 000303 207 000304 209 000313 210 000316 212 000345 215 000346 216 000347 218 000353 221 000361 224 000376 228 000407 231 000413 232 000416 234 000432 243 000433 255 000442 258 000452 259 000461 261 000463 262 000466 264 000515 267 000516 268 000522 271 000527 272 000537 275 000553 277 000567 282 000570 292 000577 294 000607 296 000616 297 000621 299 000650 302 000651 303 000652 305 000656 307 000663 310 000676 313 000712 315 000720 317 000721 329 000723 331 000735 333 000742 335 000747 338 000752 342 000754 371 000756 374 000774 376 001000 378 001001 419 001003 422 001006 423 001013 424 001020 426 001023 427 001030 428 001034 431 001035 432 001044 433 001046 434 001053 436 001062 437 001066 444 001072 445 001074 446 001076 447 001077 448 001100 449 001102 451 001104 454 001116 ----------------------------------------------------------- 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