COMPILATION LISTING OF SEGMENT cobol_seginit_gen Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 0955.7 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_seginit_gen.pl1 Reformatted code to new Cobol standard. 19* END HISTORY COMMENTS */ 20 21 22 /* Modified on 5/19/76 by Bob Chang to interface with prologue_gen changes. */ 23 /* Modified on 5/18/76 by Bob Chang to interface with prologue_gen changes. */ 24 /*{*/ 25 /* format: style3 */ 26 cobol_seginit_gen: 27 proc (fxs_locno, last_decl_proc); 28 29 /* 30*The procedure cobol_seginit_gen is called by cobol_gen_driver_ only if 31*data and/or segment initialization is required for the program 32*being compiled. The primary function of cobol_seginit_gen is to 33*generate code sequences to initialize explicit and implicit al- 34*terable GO's, if any, contained in the program. (An explicit al- 35*terable GO is one resulting from the implementation of an ALTER 36*statement. An implicit alterable GO is one introduced at the end 37*of a procedure which terminates a perform range.) In addition, 38*however, this procedure always updates stat.call_cnt from zero to 39*one to indicate that initialization has been accomplished and 40*generates the transfer instruction at the end of the data/fixed- 41*segment initialization code sequence necessary to transfer con- 42*trol to the first instruction generated to implement the first 43*non-DECLARATIVE statement of the program. 44* 45* 46*U__s_a_g_e:_ 47* 48* declare cobol_seginit_gen entry (fixed bin, fixed bin); 49* 50* call cobol_seginit_gen (fxs_locno, last_decl_proc); 51* 52* */ 53 declare fxs_locno fixed bin parameter, 54 last_decl_proc fixed bin parameter; 55 56 /* 57*fxs_locno is the compile time offset of the first instruc- 58* tion of the first executable statement of the pro- 59* gram. (Input) 60* 61*last_decl_proc is the procedure (tag) number of the last section 62* of the DECLARATIVES. (Input) 63* 64* */ 65 66 /* 67*G__e_n_e_r_a_t_e_d_C__o_d_e:_ 68* 69*The following code is generated to initialize implicit alterable 70*GO's (alterable GO's introduced at the end of perform ranges): 71* 72* eaxn t_relp,ic 73* sxln target_a_PNn 74* 75*where: 76* 77*n designates an index reqister number. Any may be 78* used but two is reserved and used in the generated 79* code. 80* 81*t_relp is the offset, relative to the instruction in which 82* it appears, of an instruction defined by a tag uni- 83* quely associated with target_a_PNn. (Usually, this 84* is the instruction immediately following the end-of- 85* perform range alterable GO.) 86* 87*target_a_PNn is a 36-bit variable allocated in the program's 88* COBOL data segment. It is uniquely associated with 89* procedure-name-n which has been specified in a PER- 90* FORM statement as defining the end of a PERFORM 91* range. 92* 93*Explicit Alterable GO's 94* 95*Format 1 GO's with optional procedure-name present 96* 97*Code Sequence 1, below, is generated if the COBOL segment con- 98*taining procedure-name-2 does not require initialization before 99*control is transferred to procedure-name-2. Code Sequence 2, be- 100*low, is generated if initialization is required. Initialization 101*is not required if procedure-name-1 and procedure-name-2 are in 102*the same COBOL segment, if procedure-name-2 is in a fixed COBOL 103*segment, or if procedure-name-2 is in an independent COBOL seg- 104*ment which contains no alterable GO's. The term "alterable GO" 105*is used here to designate a GO that is referenced by an ALTER 106*statement. Procedure_name_1 is the procedure which conatins the 107*the GO statement and procedure-name-2 is the procedure to which 108*control is to be transferred. 109* 110* Sequence 1 111* 112* eaxn pn2_relp,ic 113* sxln target_a_pn1 114* 115* Sequence 2 116* 117* eaxn s(pn2)_init_relp,ic 118* sxln target_a_pn1 119* eaxn pn2_relp,ic 120* stxn target_a_pn1 121* 122*where: 123* 124*n designates an index reqister number. Any may be 125* used but two is reserved and used in the genera- 126* ted code. 127* 128*pn2_relp is the offset, relative to the instruction in 129* which it appears, of the first instruction of 130* procedure-name-2. 131* 132*target_a_pn1 is a 36-bit variable, allocated in COBOL data on 133* a word boundary and uniquely associated with 134* procedure-name-1 (see alter_list), which con- 135* tains transfer address data. 136* 137*s(pn2)_init_relp is the offset, relative to the instruction in 138* which it appears, of the first instruction of a 139* code sequence provided to initialize the alter- 140* able GO's in the segment containing procedure- 141* name-2. 142* 143*Format 1 GO's with optional procedure-name absent 144* 145*The following code initializes target_a_pn1 such that control is 146*transferred to the first instruction of a call to cobol_error_ 147*which informs the user at execution time that no procedure has 148*been named to which control can be transferred. 149* 150* eaxn er_relp,ic 151* sxln target_a_pn1 152* 153*where: 154* 155*er_relp is the offset, relative to the instruction in which 156* it appears, of the first instruction of a call to 157* cobol_error_. 158* 159*target_a_pn1 is a 36-bit variable, allocated in the program's 160* COBOL data segment and uniquely associated with the 161* procedure containing the GO statement being initia- 162* lized (see alter_list), which contains transfer ad- 163* dress data. 164* 165* 166*Transfer instructions 167* 168*An unconditional transfer instruction is generated at the end of 169*each initialization sequence. The following instruction is gen- 170*erated at the end of the initialization sequence for fixed seg- 171*ments and is preceded by an instruction to update stat.call_cnt 172*from 0 to 1 (see fixed_static.incl.pl1 for a description of the 173*stat structure): 174* 175* aos stat.call_cnt 176* tra 0,0 177* 178*where: 179* 180*fxs_relp is the offset, relative to the transfer instruction, of 181* the first instruction of the first executable statement 182* of the program. 183* 184*The following instruction is generated at the end of each code 185*sequence generated to initialize independent COBOL segments: 186* 187* tra 0,au 188* 189*Prior to making the transfer to the initialization sequence, reg- 190*ister a, bits(0-17), will have been loaded with the offset within 191*the Text Section of the instruction to which control is to be 192*transferred subsequent to initialization. 193* 194* */ 195 196 /* 197*R__e_l_o_c_a_t_i_o_n_I__n_f_o_r_m_a_t_i_o_n:_ 198* 199*All instructions generated directly by cobol_seginit_gen except 200*those referencing data in the Linkage Section of the Object Seg- 201*ment are non-relocatable. The relocation code generated for each 202*half of each non-relocatable instruction is "00000"b. 203* 204*Instructions generated directly by cobol_seginit_gen that reference 205*data in the Linkage Section i.e. those instructions in the code 206*sequence of the form 207* pr4| 208*are relocatable with respect to their left hand half and non-re- 209*locatable with respect to thier right hand half. The relocation 210*code generated for the relocatable half of each such instruction 211*is "11001"b, when the operand referenced by the instruction is 212*internal data, and "10100"b, when it is a link. In either case, 213*the code generated for the non_relocatable half is "00000"b. 214* */ 215 216 /* 217*D__a_t_a:_ 218* 219* 220* % include cobol_; 221* 222* Items in cobol_$incl.pl1 used (u) and/or set (s) by 223* cobol_seginit_gen: 224* 225* cobol_ptr (u) 226* text_wd_off (u) 227* perform_list_ptr (u) 228* seg_init_flag (u) 229* seg_init_list_ptr (u) 230* 231* */ 232 1 1 1 2 /* BEGIN INCLUDE FILE ... cobol_seg_init_list.incl.pl1 */ 1 3 1 4 /* Last modified July 17, 1974 by AEG */ 1 5 1 6 1 7 declare 1 seg_init_list aligned based( cobol_$seg_init_list_ptr), 1 8 2 n fixed bin aligned, 1 9 2 extra fixed bin aligned, 1 10 2 seg (0 refer(seg_init_list.n)) aligned, 1 11 3 priority fixed bin aligned, 1 12 3 int_tag_no fixed bin aligned, 1 13 3 no_gos fixed bin aligned, 1 14 3 next_init_no fixed bin aligned, 1 15 3 init_ptr ptr aligned; 1 16 1 17 1 18 /* 1 19*seg_init_list_ptr is a pointer upon which the structure 1 20* seg_init_list is based. It is declared in 1 21* cobol_.incl.pl1 1 22* 1 23*n is the number of COBOL segments containing 1 24* alterable GO's. All fixed segments are counted 1 25* as one segment and assigned segment number 0. 1 26* 1 27*extra available for future use. 1 28* 1 29*seg is an array of seg_init_list.n structures which 1 30* contain information about the segments contain- 1 31* ing alterable GO's. seg(1) always conatins 1 32* information about fixed segments if there are 1 33* any in the procedure. 1 34* 1 35*priority is the COBOL segment number associated with 1 36* the "alterable" segment. 1 37* 1 38*int_tag_no is an internal tag number associated with the 1 39* first instruction of the code sequence generat- 1 40* ed to initialize the alterable GO's in the seg- 1 41* ment whose segment number is priority. For 1 42* priority = 0, int_tag_no = 0 since initializa- 1 43* tion of alterable GO's in fixed segments is 1 44* accomplished by cobol_prologue_gen. 1 45* 1 46*no_gos is the number of alterable GO's in the segment 1 47* whose segment number is priority. 1 48* 1 49*next_init_no is the number of the next alterable GO in the 1 50* segment whose segment number is priority for 1 51* which initialization data entries are to be 1 52* made in an area reserved for that purpose. The 1 53* base of this area is located by init_ptr. 1 54* 1<_next_init_no<_no_gos. 1 55* 1 56*init_ptr is a pointer to a block of 3 times no_gos words 1 57* reserved for the storage of initialization data 1 58* for the alterable GO's in the segment whose 1 59* segment number is priority. 1 60* 1 61* 1 62* */ 1 63 /* END INCLUDE FILE ... cobol_seg_init_list.incl.pl1 */ 1 64 233 2 1 2 2 /* BEGIN INCLUDE FILE ... cobol_perform_list.incl.pl1 */ 2 3 /* Last modified July 17, 1974 by AEG */ 2 4 2 5 2 6 declare 1 perform_list aligned based( cobol_$perform_list_ptr), 2 7 2 n fixed bin aligned, 2 8 2 perf (0 refer(perform_list.n)) aligned, 2 9 3 proc_num fixed bin aligned, 2 10 3 priority fixed bin aligned, 2 11 3 target_a_segno fixed bin aligned, 2 12 3 target_a_offset fixed bin(24) aligned, 2 13 3 int_tag_no fixed bin aligned; 2 14 2 15 2 16 /* 2 17*perform_list_ptr is a pointer upon which the structure 2 18* perform_list is based. It is declared in 2 19* cobol_.incl.pl1. 2 20* 2 21*n is the number of COBOL procedures which 2 22* terminate perform ranges. 2 23* 2 24*perf is an array of perform_list.n structures which 2 25* contain information about end of perform range 2 26* procedures. 2 27* 2 28*proc_num is a tag number by which the end of perform 2 29* range procedure is identified. 2 30* 2 31*priority is the COBOL segment number of the section con- 2 32* taining COBOL procedure proc_num. 2 33* 2 34*target_a_segno and target_a_offset are the artificial MCOBOL seg- 2 35* ment number and character offset, respectively, 2 36* of a 36-bit variable, allocated in the COBOL 2 37* data segment on a word boundary, which contains 2 38* transfer address information for the alterable 2 39* GO contained in COBOL procedure proc_num. 2 40* 2 41*int_tag_no is an internal tag number assigned to the in- 2 42* struction to which control is transferred by the 2 43* end of perform range alterable GO when the pro- 2 44* cedure which it terminates is not being performed. 2 45* 2 46* 2 47* */ 2 48 /* END INCLUDE FILE ... cobol_perform_list.incl.pl1 */ 2 49 234 235 236 /* Input structure for cobol_register$load */ 237 238 declare 1 register_request aligned static, 239 2 requested_reg fixed bin aligned init (12), 240 2 assigned_reg bit (4) aligned, 241 2 lock fixed bin aligned init (1), 242 2 reg_set_now fixed bin aligned, 243 2 use_code fixed bin aligned init (0), 244 2 adjust_ptr_addr fixed bin aligned init (0), 245 2 content_ptr ptr aligned init (null), 246 2 literal_content bit (36) aligned init ((36)"0"b); 247 248 /* 249*requested_reg is a code designating the register requested; 250* 0 - a- or q- or any index-register 251* 1 - a-register 252* 2 - q-register 253* 3 - a- and q-register 254* 4 - a- or q-register 255* 5 - any index-register 256* 1n - index-register n 257* 258*assigned_reg is a code designating the register assigned. It 259* has no significance if a specific register is 260* requested. 261* 262*lock indicates locking requirements; 1 requests that 263* the register be locked. 264* 265*reg_set_now not applicable for use_code = 0. 266* 267*use_code specifies how the register is to be used by the 268* requester; 0 signifies that such information is 269* not meaningful for register optimization. 270* 271*adjust_ptr_addr inserted to make evident that since all pointers 272* must be allocated on even word boundaries, the 273* pl1 compiler will allocate structures containing 274* pointers and all pointers therein on even word 275* boundaries leaving "gaps" where necessary. 276* 277*content_ptr not applicable for use_code = 0. 278* 279*literal_content not applicable for use_code = 0. 280* */ 281 282 /* Input structure for cobol_addr */ 283 284 declare 1 target aligned static, 285 2 type fixed bin aligned init (1), 286 2 operand_no fixed bin aligned init (0), 287 2 lock fixed bin aligned init (0), 288 2 segno fixed bin aligned, 289 2 char_offset fixed bin (24) aligned, 290 2 send_receive fixed bin aligned init (0); 291 292 /* 293*type indicates type of addressing requested. Type 1 294* indicates basic; i.e., data to be addressed is 295* specified by segno and char_offset. 296* 297*operand_no not applicable to type 1. 298* 299*lock indicates lock requirements for registers used in 300* addressing; 301* 0 - do not lock registers used. 302* 1 - lock registers used. 303* 304*segno is the compiler designation of the segment in which 305* the data to be addressed is located. 306* 307*char_offset is the character offset within segno of the data to 308* be addressed. 309* 310*send_receive indicates whether the data being addressed is a 311* sending or receiving field for the instruction whose 312* address field is being set; 0 indicates sending. 313* */ 314 315 /* Equate tag token */ 316 317 declare 1 equate_tags aligned static, 318 2 size fixed bin aligned init (0), 319 2 line fixed bin aligned init (0), 320 2 column fixed bin aligned init (0), 321 2 type fixed bin aligned init (31), 322 2 filler1 fixed bin aligned init (0), 323 2 equated_tag fixed bin aligned, 324 2 true_tag fixed bin aligned, 325 2 filler2 fixed bin aligned init (0), 326 2 filler3 fixed bin aligned init (0), 327 2 filler4 bit (16) aligned init ((16)"0"b); 328 329 /* 330*where: 331*type is the token type. 332* 333*equated_tag is the tag number to be equated to true_tag. 334* 335*true_tag is a tag which has been or will be associated with 336* an instruction location in the text. 337* 338*No other fields of the token are used. 339* 340* */ 341 342 /* Instruction declarations */ 343 344 dcl init_perf_go (4) bit (18) unaligned static init ("000000000000000000"b, "110010010000000100"b, 345 /* eax2 0,ic */ 346 "000000000000000000"b, "100100010001000000"b); 347 /* sxl2 pr0|0 */ 348 349 dcl init_alt_go (8) bit (18) unaligned static init ("000000000000000000"b, "110010010000000100"b, 350 /* eax2 0,ic */ 351 "000000000000000000"b, "100100010001000000"b, 352 /* sxl2 pr0|0 */ 353 "000000000000000000"b, "110010010000000100"b, 354 /* eax2 0,ic */ 355 "000000000000000000"b, "111100010001000000"b); 356 /* stx2 pr0|0 */ 357 358 dcl tra_ic_inst (4) bit (18) unaligned static init ("100000000000001110"b, "000101100001000000"b, 359 /* aos pr4|14 */ 360 "000000000000000000"b, "111001000000001000"b); 361 /* tra 0,0 */ 362 /* -5-18-76-*/ 363 364 dcl tra_a_inst (2) bit (18) unaligned static init ("000000000000000000"b, "111001000000000001"b); 365 /* tra 0,au */ 366 367 dcl tra_ic_reloc (4) bit (5) aligned static init ("11001"b, "00000"b, "00000"b, "00000"b); 368 369 /* Local data */ 370 371 declare index fixed bin, /* Do loop index. */ 372 jndex fixed bin, /* Do loop index. */ 373 init_ptr ptr, /* Ptr to initialization data in */ 374 /* seg_init_list. */ 375 no_inst fixed bin, /* No of instructions emitted. */ 376 tag fixed bin, /* Tag number. */ 377 temp fixed bin; /* Temporary qualtity. */ 378 379 /* Based structure used to extract initialization data from */ 380 /* seg_init_list. */ 381 382 declare 1 init_data aligned based (init_ptr), 383 2 target_a_segno fixed bin aligned, 384 2 target_a_offset fixed bin aligned, 385 2 pn2 fixed bin unaligned, 386 2 init fixed bin unaligned; 387 388 /* 389*P__r_o_c_e_d_u_r_e_s_C__a_l_l_e_d:_ 390* */ 391 392 dcl cobol_addr entry (ptr, ptr, ptr), 393 cobol_define_tag entry (fixed bin), 394 cobol_emit entry (ptr, ptr, fixed bin), 395 cobol_equate_tag entry (ptr), 396 cobol_make_tagref entry (fixed bin, fixed bin, ptr), 397 cobol_register$load entry (ptr), 398 cobol_reset_r$in_line 399 entry; 400 401 402 /* 403*B__u_i_l_t-__i_n_F__u_n_c_t_i_o_n_s_U__s_e_d:_ 404* */ 405 406 dcl addr builtin, 407 addrel builtin, 408 null builtin, 409 substr builtin, 410 unspec builtin; 411 412 /*}*/ 413 3 1 3 2 /* BEGIN INCLUDE FILE ... cobol_.incl.pl1 */ 3 3 /* last modified Feb 4, 1977 by ORN */ 3 4 3 5 /* This file defines all external data used in the generator phase of Multics Cobol */ 3 6 3 7 /* POINTERS */ 3 8 dcl cobol_$text_base_ptr ptr ext; 3 9 dcl text_base_ptr ptr defined (cobol_$text_base_ptr); 3 10 dcl cobol_$con_end_ptr ptr ext; 3 11 dcl con_end_ptr ptr defined (cobol_$con_end_ptr); 3 12 dcl cobol_$def_base_ptr ptr ext; 3 13 dcl def_base_ptr ptr defined (cobol_$def_base_ptr); 3 14 dcl cobol_$link_base_ptr ptr ext; 3 15 dcl link_base_ptr ptr defined (cobol_$link_base_ptr); 3 16 dcl cobol_$sym_base_ptr ptr ext; 3 17 dcl sym_base_ptr ptr defined (cobol_$sym_base_ptr); 3 18 dcl cobol_$reloc_text_base_ptr ptr ext; 3 19 dcl reloc_text_base_ptr ptr defined (cobol_$reloc_text_base_ptr); 3 20 dcl cobol_$reloc_def_base_ptr ptr ext; 3 21 dcl reloc_def_base_ptr ptr defined (cobol_$reloc_def_base_ptr); 3 22 dcl cobol_$reloc_link_base_ptr ptr ext; 3 23 dcl reloc_link_base_ptr ptr defined (cobol_$reloc_link_base_ptr); 3 24 dcl cobol_$reloc_sym_base_ptr ptr ext; 3 25 dcl reloc_sym_base_ptr ptr defined (cobol_$reloc_sym_base_ptr); 3 26 dcl cobol_$reloc_work_base_ptr ptr ext; 3 27 dcl reloc_work_base_ptr ptr defined (cobol_$reloc_work_base_ptr); 3 28 dcl cobol_$pd_map_ptr ptr ext; 3 29 dcl pd_map_ptr ptr defined (cobol_$pd_map_ptr); 3 30 dcl cobol_$fixup_ptr ptr ext; 3 31 dcl fixup_ptr ptr defined (cobol_$fixup_ptr); 3 32 dcl cobol_$initval_base_ptr ptr ext; 3 33 dcl initval_base_ptr ptr defined (cobol_$initval_base_ptr); 3 34 dcl cobol_$initval_file_ptr ptr ext; 3 35 dcl initval_file_ptr ptr defined (cobol_$initval_file_ptr); 3 36 dcl cobol_$perform_list_ptr ptr ext; 3 37 dcl perform_list_ptr ptr defined (cobol_$perform_list_ptr); 3 38 dcl cobol_$alter_list_ptr ptr ext; 3 39 dcl alter_list_ptr ptr defined (cobol_$alter_list_ptr); 3 40 dcl cobol_$seg_init_list_ptr ptr ext; 3 41 dcl seg_init_list_ptr ptr defined (cobol_$seg_init_list_ptr); 3 42 dcl cobol_$temp_token_area_ptr ptr ext; 3 43 dcl temp_token_area_ptr ptr defined (cobol_$temp_token_area_ptr); 3 44 dcl cobol_$temp_token_ptr ptr ext; 3 45 dcl temp_token_ptr ptr defined (cobol_$temp_token_ptr); 3 46 dcl cobol_$token_block1_ptr ptr ext; 3 47 dcl token_block1_ptr ptr defined (cobol_$token_block1_ptr); 3 48 dcl cobol_$token_block2_ptr ptr ext; 3 49 dcl token_block2_ptr ptr defined (cobol_$token_block2_ptr); 3 50 dcl cobol_$minpral5_ptr ptr ext; 3 51 dcl minpral5_ptr ptr defined (cobol_$minpral5_ptr); 3 52 dcl cobol_$tag_table_ptr ptr ext; 3 53 dcl tag_table_ptr ptr defined (cobol_$tag_table_ptr); 3 54 dcl cobol_$map_data_ptr ptr ext; 3 55 dcl map_data_ptr ptr defined (cobol_$map_data_ptr); 3 56 dcl cobol_$ptr_status_ptr ptr ext; 3 57 dcl ptr_status_ptr ptr defined (cobol_$ptr_status_ptr); 3 58 dcl cobol_$reg_status_ptr ptr ext; 3 59 dcl reg_status_ptr ptr defined (cobol_$reg_status_ptr); 3 60 dcl cobol_$misc_base_ptr ptr ext; 3 61 dcl misc_base_ptr ptr defined (cobol_$misc_base_ptr); 3 62 dcl cobol_$misc_end_ptr ptr ext; 3 63 dcl misc_end_ptr ptr defined (cobol_$misc_end_ptr); 3 64 dcl cobol_$list_ptr ptr ext; 3 65 dcl list_ptr ptr defined (cobol_$list_ptr); 3 66 dcl cobol_$allo1_ptr ptr ext; 3 67 dcl allo1_ptr ptr defined (cobol_$allo1_ptr); 3 68 dcl cobol_$eln_ptr ptr ext; 3 69 dcl eln_ptr ptr defined (cobol_$eln_ptr); 3 70 dcl cobol_$diag_ptr ptr ext; 3 71 dcl diag_ptr ptr defined (cobol_$diag_ptr); 3 72 dcl cobol_$xref_token_ptr ptr ext; 3 73 dcl xref_token_ptr ptr defined (cobol_$xref_token_ptr); 3 74 dcl cobol_$xref_chain_ptr ptr ext; 3 75 dcl xref_chain_ptr ptr defined (cobol_$xref_chain_ptr); 3 76 dcl cobol_$statement_info_ptr ptr ext; 3 77 dcl statement_info_ptr ptr defined (cobol_$statement_info_ptr); 3 78 dcl cobol_$reswd_ptr ptr ext; 3 79 dcl reswd_ptr ptr defined (cobol_$reswd_ptr); 3 80 dcl cobol_$op_con_ptr ptr ext; 3 81 dcl op_con_ptr ptr defined (cobol_$op_con_ptr); 3 82 dcl cobol_$ntbuf_ptr ptr ext; 3 83 dcl ntbuf_ptr ptr defined (cobol_$ntbuf_ptr); 3 84 dcl cobol_$main_pcs_ptr ptr ext; 3 85 dcl main_pcs_ptr ptr defined (cobol_$main_pcs_ptr); 3 86 dcl cobol_$include_info_ptr ptr ext; 3 87 dcl include_info_ptr ptr defined (cobol_$include_info_ptr); 3 88 3 89 /* FIXED BIN */ 3 90 dcl cobol_$text_wd_off fixed bin ext; 3 91 dcl text_wd_off fixed bin defined (cobol_$text_wd_off); 3 92 dcl cobol_$con_wd_off fixed bin ext; 3 93 dcl con_wd_off fixed bin defined (cobol_$con_wd_off); 3 94 dcl cobol_$def_wd_off fixed bin ext; 3 95 dcl def_wd_off fixed bin defined (cobol_$def_wd_off); 3 96 dcl cobol_$def_max fixed bin ext; 3 97 dcl def_max fixed bin defined (cobol_$def_max); 3 98 dcl cobol_$link_wd_off fixed bin ext; 3 99 dcl link_wd_off fixed bin defined (cobol_$link_wd_off); 3 100 dcl cobol_$link_max fixed bin ext; 3 101 dcl link_max fixed bin defined (cobol_$link_max); 3 102 dcl cobol_$sym_wd_off fixed bin ext; 3 103 dcl sym_wd_off fixed bin defined (cobol_$sym_wd_off); 3 104 dcl cobol_$sym_max fixed bin ext; 3 105 dcl sym_max fixed bin defined (cobol_$sym_max); 3 106 dcl cobol_$reloc_text_max fixed bin(24) ext; 3 107 dcl reloc_text_max fixed bin(24) defined (cobol_$reloc_text_max); 3 108 dcl cobol_$reloc_def_max fixed bin(24) ext; 3 109 dcl reloc_def_max fixed bin(24) defined (cobol_$reloc_def_max); 3 110 dcl cobol_$reloc_link_max fixed bin(24) ext; 3 111 dcl reloc_link_max fixed bin(24) defined (cobol_$reloc_link_max); 3 112 dcl cobol_$reloc_sym_max fixed bin(24) ext; 3 113 dcl reloc_sym_max fixed bin(24) defined (cobol_$reloc_sym_max); 3 114 dcl cobol_$reloc_work_max fixed bin(24) ext; 3 115 dcl reloc_work_max fixed bin(24) defined (cobol_$reloc_work_max); 3 116 dcl cobol_$pd_map_index fixed bin ext; 3 117 dcl pd_map_index fixed bin defined (cobol_$pd_map_index); 3 118 dcl cobol_$cobol_data_wd_off fixed bin ext; 3 119 dcl cobol_data_wd_off fixed bin defined (cobol_$cobol_data_wd_off); 3 120 dcl cobol_$stack_off fixed bin ext; 3 121 dcl stack_off fixed bin defined (cobol_$stack_off); 3 122 dcl cobol_$max_stack_off fixed bin ext; 3 123 dcl max_stack_off fixed bin defined (cobol_$max_stack_off); 3 124 dcl cobol_$init_stack_off fixed bin ext; 3 125 dcl init_stack_off fixed bin defined (cobol_$init_stack_off); 3 126 dcl cobol_$pd_map_sw fixed bin ext; 3 127 dcl pd_map_sw fixed bin defined (cobol_$pd_map_sw); 3 128 dcl cobol_$next_tag fixed bin ext; 3 129 dcl next_tag fixed bin defined (cobol_$next_tag); 3 130 dcl cobol_$data_init_flag fixed bin ext; 3 131 dcl data_init_flag fixed bin defined (cobol_$data_init_flag); 3 132 dcl cobol_$seg_init_flag fixed bin ext; 3 133 dcl seg_init_flag fixed bin defined (cobol_$seg_init_flag); 3 134 dcl cobol_$alter_flag fixed bin ext; 3 135 dcl alter_flag fixed bin defined (cobol_$alter_flag); 3 136 dcl cobol_$sect_eop_flag fixed bin ext; 3 137 dcl sect_eop_flag fixed bin defined (cobol_$sect_eop_flag); 3 138 dcl cobol_$para_eop_flag fixed bin ext; 3 139 dcl para_eop_flag fixed bin defined (cobol_$para_eop_flag); 3 140 dcl cobol_$priority_no fixed bin ext; 3 141 dcl priority_no fixed bin defined (cobol_$priority_no); 3 142 dcl cobol_$compile_count fixed bin ext; 3 143 dcl compile_count fixed bin defined (cobol_$compile_count); 3 144 dcl cobol_$ptr_assumption_ind fixed bin ext; 3 145 dcl ptr_assumption_ind fixed bin defined (cobol_$ptr_assumption_ind); 3 146 dcl cobol_$reg_assumption_ind fixed bin ext; 3 147 dcl reg_assumption_ind fixed bin defined (cobol_$reg_assumption_ind); 3 148 dcl cobol_$perform_para_index fixed bin ext; 3 149 dcl perform_para_index fixed bin defined (cobol_$perform_para_index); 3 150 dcl cobol_$perform_sect_index fixed bin ext; 3 151 dcl perform_sect_index fixed bin defined (cobol_$perform_sect_index); 3 152 dcl cobol_$alter_index fixed bin ext; 3 153 dcl alter_index fixed bin defined (cobol_$alter_index); 3 154 dcl cobol_$list_off fixed bin ext; 3 155 dcl list_off fixed bin defined (cobol_$list_off); 3 156 dcl cobol_$constant_offset fixed bin ext; 3 157 dcl constant_offset fixed bin defined (cobol_$constant_offset); 3 158 dcl cobol_$misc_max fixed bin ext; 3 159 dcl misc_max fixed bin defined (cobol_$misc_max); 3 160 dcl cobol_$pd_map_max fixed bin ext; 3 161 dcl pd_map_max fixed bin defined (cobol_$pd_map_max); 3 162 dcl cobol_$map_data_max fixed bin ext; 3 163 dcl map_data_max fixed bin defined (cobol_$map_data_max); 3 164 dcl cobol_$fixup_max fixed bin ext; 3 165 dcl fixup_max fixed bin defined (cobol_$fixup_max); 3 166 dcl cobol_$tag_table_max fixed bin ext; 3 167 dcl tag_table_max fixed bin defined (cobol_$tag_table_max); 3 168 dcl cobol_$temp_token_max fixed bin ext; 3 169 dcl temp_token_max fixed bin defined (cobol_$temp_token_max); 3 170 dcl cobol_$allo1_max fixed bin ext; 3 171 dcl allo1_max fixed bin defined (cobol_$allo1_max); 3 172 dcl cobol_$eln_max fixed bin ext; 3 173 dcl eln_max fixed bin defined (cobol_$eln_max); 3 174 dcl cobol_$debug_enable fixed bin ext; 3 175 dcl debug_enable fixed bin defined (cobol_$debug_enable); 3 176 dcl cobol_$non_source_offset fixed bin ext; 3 177 dcl non_source_offset fixed bin defined (cobol_$non_source_offset); 3 178 dcl cobol_$initval_flag fixed bin ext; 3 179 dcl initval_flag fixed bin defined (cobol_$initval_flag); 3 180 dcl cobol_$date_compiled_sw fixed bin ext; 3 181 dcl date_compiled_sw fixed bin defined (cobol_$date_compiled_sw); 3 182 dcl cobol_$include_cnt fixed bin ext; 3 183 dcl include_cnt fixed bin defined (cobol_$include_cnt); 3 184 dcl cobol_$fs_charcnt fixed bin ext; 3 185 dcl fs_charcnt fixed bin defined (cobol_$fs_charcnt); 3 186 dcl cobol_$ws_charcnt fixed bin ext; 3 187 dcl ws_charcnt fixed bin defined (cobol_$ws_charcnt); 3 188 dcl cobol_$coms_charcnt fixed bin ext; 3 189 dcl coms_charcnt fixed bin defined (cobol_$coms_charcnt); 3 190 dcl cobol_$ls_charcnt fixed bin ext; 3 191 dcl ls_charcnt fixed bin defined (cobol_$ls_charcnt); 3 192 dcl cobol_$cons_charcnt fixed bin ext; 3 193 dcl cons_charcnt fixed bin defined (cobol_$cons_charcnt); 3 194 dcl cobol_$value_cnt fixed bin ext; 3 195 dcl value_cnt fixed bin defined (cobol_$value_cnt); 3 196 dcl cobol_$cd_cnt fixed bin ext; 3 197 dcl cd_cnt fixed bin defined (cobol_$cd_cnt); 3 198 dcl cobol_$fs_wdoff fixed bin ext; 3 199 dcl fs_wdoff fixed bin defined (cobol_$fs_wdoff); 3 200 dcl cobol_$ws_wdoff fixed bin ext; 3 201 dcl ws_wdoff fixed bin defined (cobol_$ws_wdoff); 3 202 dcl cobol_$coms_wdoff fixed bin ext; 3 203 dcl coms_wdoff fixed bin defined (cobol_$coms_wdoff); 3 204 3 205 /* CHARACTER */ 3 206 dcl cobol_$scratch_dir char (168) aligned ext; 3 207 dcl scratch_dir char (168) aligned defined (cobol_$scratch_dir); /* -42- */ 3 208 dcl cobol_$obj_seg_name char (32) aligned ext; 3 209 dcl obj_seg_name char (32) aligned defined (cobol_$obj_seg_name); /* -8- */ 3 210 3 211 /* BIT */ 3 212 dcl cobol_$xref_bypass bit(1) aligned ext; 3 213 dcl xref_bypass bit(1) aligned defined (cobol_$xref_bypass); /* -1- */ 3 214 dcl cobol_$same_sort_merge_proc bit(1) aligned ext; 3 215 dcl same_sort_merge_proc bit(1) aligned defined (cobol_$same_sort_merge_proc); /* -1- */ 3 216 3 217 3 218 /* END INCLUDE FILE ... cobol_incl.pl1*/ 3 219 3 220 414 415 416 417 start: /* Initialize alterable GO's in fixed segments. */ 418 if cobol_$seg_init_flag ^= 0 419 then do; 420 call cobol_register$load (addr (register_request)); 421 422 /* Initialize end-of-perform range alterable GO's in all segments. */ 423 424 if cobol_$perform_list_ptr ^= null 425 then do; 426 if last_decl_proc ^= 0 427 then do; 428 equate_tags.true_tag = last_decl_proc; 429 430 do index = 1 to perform_list.n 431 while (perform_list.perf.proc_num (index) < last_decl_proc); 432 if perform_list.perf.int_tag_no (index) < 0 433 then do; 434 perform_list.perf.int_tag_no (index) = 435 -perform_list.perf.int_tag_no (index); 436 equate_tags.equated_tag = perform_list.perf.int_tag_no (index); 437 call cobol_equate_tag (addr (equate_tags)); 438 end; 439 440 end; 441 442 end; 443 444 445 do index = 1 to perform_list.n; 446 target.segno = perform_list.perf.target_a_segno (index); 447 target.char_offset = perform_list.perf.target_a_offset (index); 448 call cobol_addr (addr (target), addr (init_perf_go (3)), null); 449 call cobol_emit (addr (init_perf_go), null, 2); 450 call cobol_make_tagref (perform_list.perf.int_tag_no (index), cobol_$text_wd_off - 2, 451 null); 452 end; 453 454 call cobol_reset_r$in_line; 455 end; 456 457 /* Initialize explicit GO's. */ 458 459 if cobol_$seg_init_list_ptr ^= null 460 then do; 461 if seg_init_list.seg.priority (1) = 0 462 then do; 463 index = 1; 464 call initialize_go; 465 index = 2; 466 end; 467 468 end; 469 470 end; 471 472 else index = 1; 473 474 /* Generate transfer to first executable instruction of program. */ 475 476 temp = fxs_locno - cobol_$text_wd_off - 1; 477 call cobol_emit (addr (tra_ic_inst), addr (tra_ic_reloc), 2); 478 479 /* Initialize alterable GO's in independent segments. */ 480 481 if cobol_$seg_init_list_ptr ^= null 482 then do index = index to seg_init_list.n; 483 call cobol_define_tag (seg_init_list.seg.int_tag_no (index)); 484 call initialize_go; 485 call cobol_emit (addr (tra_a_inst), null, 1); 486 end; 487 488 return; 489 490 initialize_go: 491 proc; 492 493 do jndex = 0 to seg_init_list.seg.no_gos (index) - 1; 494 init_ptr = addrel (seg_init_list.seg.init_ptr (index), 3 * jndex); 495 target.segno = init_data.target_a_segno; 496 target.char_offset = init_data.target_a_offset; 497 call cobol_addr (addr (target), addr (init_alt_go (3)), null); 498 if init_data.init = 0 499 then no_inst = 2; 500 501 else do; 502 init_alt_go (7) = init_alt_go (3); 503 tag = init_data.init; 504 call cobol_make_tagref (tag, cobol_$text_wd_off, addr (init_alt_go)); 505 no_inst = 4; 506 end; 507 508 call cobol_emit (addr (init_alt_go), null, no_inst); 509 tag = init_data.pn2; 510 call cobol_make_tagref (tag, cobol_$text_wd_off - 2, null); 511 512 end; 513 514 return; 515 516 end initialize_go; 517 518 end cobol_seginit_gen; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0830.0 cobol_seginit_gen.pl1 >spec>install>MR12.3-1048>cobol_seginit_gen.pl1 233 1 03/27/82 0439.8 cobol_seg_init_list.incl.pl1 >ldd>include>cobol_seg_init_list.incl.pl1 234 2 03/27/82 0439.8 cobol_perform_list.incl.pl1 >ldd>include>cobol_perform_list.incl.pl1 414 3 11/11/82 1712.7 cobol_.incl.pl1 >ldd>include>cobol_.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. addr builtin function dcl 406 ref 420 420 437 437 448 448 448 448 449 449 477 477 477 477 485 485 497 497 497 497 504 504 508 508 addrel builtin function dcl 406 ref 494 char_offset 4 000021 internal static fixed bin(24,0) level 2 dcl 284 set ref 447* 496* cobol_$perform_list_ptr 000076 external static pointer dcl 3-36 ref 424 430 430 432 434 434 436 445 446 447 450 cobol_$seg_init_flag 000104 external static fixed bin(17,0) dcl 3-132 ref 417 cobol_$seg_init_list_ptr 000100 external static pointer dcl 3-40 ref 459 461 481 481 483 493 494 cobol_$text_wd_off 000102 external static fixed bin(17,0) dcl 3-90 set ref 450 476 504* 510 cobol_addr 000060 constant entry external dcl 392 ref 448 497 cobol_define_tag 000062 constant entry external dcl 392 ref 483 cobol_emit 000064 constant entry external dcl 392 ref 449 477 485 508 cobol_equate_tag 000066 constant entry external dcl 392 ref 437 cobol_make_tagref 000070 constant entry external dcl 392 ref 450 504 510 cobol_register$load 000072 constant entry external dcl 392 ref 420 cobol_reset_r$in_line 000074 constant entry external dcl 392 ref 454 equate_tags 000027 internal static structure level 1 dcl 317 set ref 437 437 equated_tag 5 000027 internal static fixed bin(17,0) level 2 dcl 317 set ref 436* fxs_locno parameter fixed bin(17,0) dcl 53 ref 26 476 index 000100 automatic fixed bin(17,0) dcl 371 set ref 430* 430* 432 434 434 436* 445* 446 447 450* 463* 465* 472* 481* 481* 483* 493 494 init 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 382 ref 498 503 init_alt_go 000044 internal static bit(18) initial array packed unaligned dcl 349 set ref 497 497 502* 502 504 504 508 508 init_data based structure level 1 dcl 382 init_perf_go 000042 internal static bit(18) initial array packed unaligned dcl 344 set ref 448 448 449 449 init_ptr 6 based pointer array level 3 in structure "seg_init_list" dcl 1-7 in procedure "cobol_seginit_gen" ref 494 init_ptr 000102 automatic pointer dcl 371 in procedure "cobol_seginit_gen" set ref 494* 495 496 498 503 509 int_tag_no 5 based fixed bin(17,0) array level 3 in structure "perform_list" dcl 2-6 in procedure "cobol_seginit_gen" set ref 432 434* 434 436 450* int_tag_no 3 based fixed bin(17,0) array level 3 in structure "seg_init_list" dcl 1-7 in procedure "cobol_seginit_gen" set ref 483* jndex 000101 automatic fixed bin(17,0) dcl 371 set ref 493* 494* last_decl_proc parameter fixed bin(17,0) dcl 53 ref 26 426 428 430 n based fixed bin(17,0) level 2 in structure "perform_list" dcl 2-6 in procedure "cobol_seginit_gen" ref 430 445 n based fixed bin(17,0) level 2 in structure "seg_init_list" dcl 1-7 in procedure "cobol_seginit_gen" ref 481 no_gos 4 based fixed bin(17,0) array level 3 dcl 1-7 ref 493 no_inst 000104 automatic fixed bin(17,0) dcl 371 set ref 498* 505* 508* null builtin function dcl 406 ref 424 448 448 449 449 450 450 459 481 485 485 497 497 508 508 510 510 perf 1 based structure array level 2 dcl 2-6 perform_list based structure level 1 dcl 2-6 pn2 2 based fixed bin(17,0) level 2 packed packed unaligned dcl 382 ref 509 priority 2 based fixed bin(17,0) array level 3 dcl 1-7 ref 461 proc_num 1 based fixed bin(17,0) array level 3 dcl 2-6 ref 430 register_request 000010 internal static structure level 1 dcl 238 set ref 420 420 seg 2 based structure array level 2 dcl 1-7 seg_init_list based structure level 1 dcl 1-7 segno 3 000021 internal static fixed bin(17,0) level 2 dcl 284 set ref 446* 495* tag 000105 automatic fixed bin(17,0) dcl 371 set ref 503* 504* 509* 510* target 000021 internal static structure level 1 dcl 284 set ref 448 448 497 497 target_a_offset 1 based fixed bin(17,0) level 2 in structure "init_data" dcl 382 in procedure "cobol_seginit_gen" ref 496 target_a_offset 4 based fixed bin(24,0) array level 3 in structure "perform_list" dcl 2-6 in procedure "cobol_seginit_gen" ref 447 target_a_segno 3 based fixed bin(17,0) array level 3 in structure "perform_list" dcl 2-6 in procedure "cobol_seginit_gen" ref 446 target_a_segno based fixed bin(17,0) level 2 in structure "init_data" dcl 382 in procedure "cobol_seginit_gen" ref 495 temp 000106 automatic fixed bin(17,0) dcl 371 set ref 476* tra_a_inst 000052 internal static bit(18) initial array packed unaligned dcl 364 set ref 485 485 tra_ic_inst 000050 internal static bit(18) initial array packed unaligned dcl 358 set ref 477 477 tra_ic_reloc 000053 internal static bit(5) initial array dcl 367 set ref 477 477 true_tag 6 000027 internal static fixed bin(17,0) level 2 dcl 317 set ref 428* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. allo1_max defined fixed bin(17,0) dcl 3-171 allo1_ptr defined pointer dcl 3-67 alter_flag defined fixed bin(17,0) dcl 3-135 alter_index defined fixed bin(17,0) dcl 3-153 alter_list_ptr defined pointer dcl 3-39 cd_cnt defined fixed bin(17,0) dcl 3-197 cobol_$allo1_max external static fixed bin(17,0) dcl 3-170 cobol_$allo1_ptr external static pointer dcl 3-66 cobol_$alter_flag external static fixed bin(17,0) dcl 3-134 cobol_$alter_index external static fixed bin(17,0) dcl 3-152 cobol_$alter_list_ptr external static pointer dcl 3-38 cobol_$cd_cnt external static fixed bin(17,0) dcl 3-196 cobol_$cobol_data_wd_off external static fixed bin(17,0) dcl 3-118 cobol_$compile_count external static fixed bin(17,0) dcl 3-142 cobol_$coms_charcnt external static fixed bin(17,0) dcl 3-188 cobol_$coms_wdoff external static fixed bin(17,0) dcl 3-202 cobol_$con_end_ptr external static pointer dcl 3-10 cobol_$con_wd_off external static fixed bin(17,0) dcl 3-92 cobol_$cons_charcnt external static fixed bin(17,0) dcl 3-192 cobol_$constant_offset external static fixed bin(17,0) dcl 3-156 cobol_$data_init_flag external static fixed bin(17,0) dcl 3-130 cobol_$date_compiled_sw external static fixed bin(17,0) dcl 3-180 cobol_$debug_enable external static fixed bin(17,0) dcl 3-174 cobol_$def_base_ptr external static pointer dcl 3-12 cobol_$def_max external static fixed bin(17,0) dcl 3-96 cobol_$def_wd_off external static fixed bin(17,0) dcl 3-94 cobol_$diag_ptr external static pointer dcl 3-70 cobol_$eln_max external static fixed bin(17,0) dcl 3-172 cobol_$eln_ptr external static pointer dcl 3-68 cobol_$fixup_max external static fixed bin(17,0) dcl 3-164 cobol_$fixup_ptr external static pointer dcl 3-30 cobol_$fs_charcnt external static fixed bin(17,0) dcl 3-184 cobol_$fs_wdoff external static fixed bin(17,0) dcl 3-198 cobol_$include_cnt external static fixed bin(17,0) dcl 3-182 cobol_$include_info_ptr external static pointer dcl 3-86 cobol_$init_stack_off external static fixed bin(17,0) dcl 3-124 cobol_$initval_base_ptr external static pointer dcl 3-32 cobol_$initval_file_ptr external static pointer dcl 3-34 cobol_$initval_flag external static fixed bin(17,0) dcl 3-178 cobol_$link_base_ptr external static pointer dcl 3-14 cobol_$link_max external static fixed bin(17,0) dcl 3-100 cobol_$link_wd_off external static fixed bin(17,0) dcl 3-98 cobol_$list_off external static fixed bin(17,0) dcl 3-154 cobol_$list_ptr external static pointer dcl 3-64 cobol_$ls_charcnt external static fixed bin(17,0) dcl 3-190 cobol_$main_pcs_ptr external static pointer dcl 3-84 cobol_$map_data_max external static fixed bin(17,0) dcl 3-162 cobol_$map_data_ptr external static pointer dcl 3-54 cobol_$max_stack_off external static fixed bin(17,0) dcl 3-122 cobol_$minpral5_ptr external static pointer dcl 3-50 cobol_$misc_base_ptr external static pointer dcl 3-60 cobol_$misc_end_ptr external static pointer dcl 3-62 cobol_$misc_max external static fixed bin(17,0) dcl 3-158 cobol_$next_tag external static fixed bin(17,0) dcl 3-128 cobol_$non_source_offset external static fixed bin(17,0) dcl 3-176 cobol_$ntbuf_ptr external static pointer dcl 3-82 cobol_$obj_seg_name external static char(32) dcl 3-208 cobol_$op_con_ptr external static pointer dcl 3-80 cobol_$para_eop_flag external static fixed bin(17,0) dcl 3-138 cobol_$pd_map_index external static fixed bin(17,0) dcl 3-116 cobol_$pd_map_max external static fixed bin(17,0) dcl 3-160 cobol_$pd_map_ptr external static pointer dcl 3-28 cobol_$pd_map_sw external static fixed bin(17,0) dcl 3-126 cobol_$perform_para_index external static fixed bin(17,0) dcl 3-148 cobol_$perform_sect_index external static fixed bin(17,0) dcl 3-150 cobol_$priority_no external static fixed bin(17,0) dcl 3-140 cobol_$ptr_assumption_ind external static fixed bin(17,0) dcl 3-144 cobol_$ptr_status_ptr external static pointer dcl 3-56 cobol_$reg_assumption_ind external static fixed bin(17,0) dcl 3-146 cobol_$reg_status_ptr external static pointer dcl 3-58 cobol_$reloc_def_base_ptr external static pointer dcl 3-20 cobol_$reloc_def_max external static fixed bin(24,0) dcl 3-108 cobol_$reloc_link_base_ptr external static pointer dcl 3-22 cobol_$reloc_link_max external static fixed bin(24,0) dcl 3-110 cobol_$reloc_sym_base_ptr external static pointer dcl 3-24 cobol_$reloc_sym_max external static fixed bin(24,0) dcl 3-112 cobol_$reloc_text_base_ptr external static pointer dcl 3-18 cobol_$reloc_text_max external static fixed bin(24,0) dcl 3-106 cobol_$reloc_work_base_ptr external static pointer dcl 3-26 cobol_$reloc_work_max external static fixed bin(24,0) dcl 3-114 cobol_$reswd_ptr external static pointer dcl 3-78 cobol_$same_sort_merge_proc external static bit(1) dcl 3-214 cobol_$scratch_dir external static char(168) dcl 3-206 cobol_$sect_eop_flag external static fixed bin(17,0) dcl 3-136 cobol_$stack_off external static fixed bin(17,0) dcl 3-120 cobol_$statement_info_ptr external static pointer dcl 3-76 cobol_$sym_base_ptr external static pointer dcl 3-16 cobol_$sym_max external static fixed bin(17,0) dcl 3-104 cobol_$sym_wd_off external static fixed bin(17,0) dcl 3-102 cobol_$tag_table_max external static fixed bin(17,0) dcl 3-166 cobol_$tag_table_ptr external static pointer dcl 3-52 cobol_$temp_token_area_ptr external static pointer dcl 3-42 cobol_$temp_token_max external static fixed bin(17,0) dcl 3-168 cobol_$temp_token_ptr external static pointer dcl 3-44 cobol_$text_base_ptr external static pointer dcl 3-8 cobol_$token_block1_ptr external static pointer dcl 3-46 cobol_$token_block2_ptr external static pointer dcl 3-48 cobol_$value_cnt external static fixed bin(17,0) dcl 3-194 cobol_$ws_charcnt external static fixed bin(17,0) dcl 3-186 cobol_$ws_wdoff external static fixed bin(17,0) dcl 3-200 cobol_$xref_bypass external static bit(1) dcl 3-212 cobol_$xref_chain_ptr external static pointer dcl 3-74 cobol_$xref_token_ptr external static pointer dcl 3-72 cobol_data_wd_off defined fixed bin(17,0) dcl 3-119 compile_count defined fixed bin(17,0) dcl 3-143 coms_charcnt defined fixed bin(17,0) dcl 3-189 coms_wdoff defined fixed bin(17,0) dcl 3-203 con_end_ptr defined pointer dcl 3-11 con_wd_off defined fixed bin(17,0) dcl 3-93 cons_charcnt defined fixed bin(17,0) dcl 3-193 constant_offset defined fixed bin(17,0) dcl 3-157 data_init_flag defined fixed bin(17,0) dcl 3-131 date_compiled_sw defined fixed bin(17,0) dcl 3-181 debug_enable defined fixed bin(17,0) dcl 3-175 def_base_ptr defined pointer dcl 3-13 def_max defined fixed bin(17,0) dcl 3-97 def_wd_off defined fixed bin(17,0) dcl 3-95 diag_ptr defined pointer dcl 3-71 eln_max defined fixed bin(17,0) dcl 3-173 eln_ptr defined pointer dcl 3-69 fixup_max defined fixed bin(17,0) dcl 3-165 fixup_ptr defined pointer dcl 3-31 fs_charcnt defined fixed bin(17,0) dcl 3-185 fs_wdoff defined fixed bin(17,0) dcl 3-199 include_cnt defined fixed bin(17,0) dcl 3-183 include_info_ptr defined pointer dcl 3-87 init_stack_off defined fixed bin(17,0) dcl 3-125 initval_base_ptr defined pointer dcl 3-33 initval_file_ptr defined pointer dcl 3-35 initval_flag defined fixed bin(17,0) dcl 3-179 link_base_ptr defined pointer dcl 3-15 link_max defined fixed bin(17,0) dcl 3-101 link_wd_off defined fixed bin(17,0) dcl 3-99 list_off defined fixed bin(17,0) dcl 3-155 list_ptr defined pointer dcl 3-65 ls_charcnt defined fixed bin(17,0) dcl 3-191 main_pcs_ptr defined pointer dcl 3-85 map_data_max defined fixed bin(17,0) dcl 3-163 map_data_ptr defined pointer dcl 3-55 max_stack_off defined fixed bin(17,0) dcl 3-123 minpral5_ptr defined pointer dcl 3-51 misc_base_ptr defined pointer dcl 3-61 misc_end_ptr defined pointer dcl 3-63 misc_max defined fixed bin(17,0) dcl 3-159 next_tag defined fixed bin(17,0) dcl 3-129 non_source_offset defined fixed bin(17,0) dcl 3-177 ntbuf_ptr defined pointer dcl 3-83 obj_seg_name defined char(32) dcl 3-209 op_con_ptr defined pointer dcl 3-81 para_eop_flag defined fixed bin(17,0) dcl 3-139 pd_map_index defined fixed bin(17,0) dcl 3-117 pd_map_max defined fixed bin(17,0) dcl 3-161 pd_map_ptr defined pointer dcl 3-29 pd_map_sw defined fixed bin(17,0) dcl 3-127 perform_list_ptr defined pointer dcl 3-37 perform_para_index defined fixed bin(17,0) dcl 3-149 perform_sect_index defined fixed bin(17,0) dcl 3-151 priority_no defined fixed bin(17,0) dcl 3-141 ptr_assumption_ind defined fixed bin(17,0) dcl 3-145 ptr_status_ptr defined pointer dcl 3-57 reg_assumption_ind defined fixed bin(17,0) dcl 3-147 reg_status_ptr defined pointer dcl 3-59 reloc_def_base_ptr defined pointer dcl 3-21 reloc_def_max defined fixed bin(24,0) dcl 3-109 reloc_link_base_ptr defined pointer dcl 3-23 reloc_link_max defined fixed bin(24,0) dcl 3-111 reloc_sym_base_ptr defined pointer dcl 3-25 reloc_sym_max defined fixed bin(24,0) dcl 3-113 reloc_text_base_ptr defined pointer dcl 3-19 reloc_text_max defined fixed bin(24,0) dcl 3-107 reloc_work_base_ptr defined pointer dcl 3-27 reloc_work_max defined fixed bin(24,0) dcl 3-115 reswd_ptr defined pointer dcl 3-79 same_sort_merge_proc defined bit(1) dcl 3-215 scratch_dir defined char(168) dcl 3-207 sect_eop_flag defined fixed bin(17,0) dcl 3-137 seg_init_flag defined fixed bin(17,0) dcl 3-133 seg_init_list_ptr defined pointer dcl 3-41 stack_off defined fixed bin(17,0) dcl 3-121 statement_info_ptr defined pointer dcl 3-77 substr builtin function dcl 406 sym_base_ptr defined pointer dcl 3-17 sym_max defined fixed bin(17,0) dcl 3-105 sym_wd_off defined fixed bin(17,0) dcl 3-103 tag_table_max defined fixed bin(17,0) dcl 3-167 tag_table_ptr defined pointer dcl 3-53 temp_token_area_ptr defined pointer dcl 3-43 temp_token_max defined fixed bin(17,0) dcl 3-169 temp_token_ptr defined pointer dcl 3-45 text_base_ptr defined pointer dcl 3-9 text_wd_off defined fixed bin(17,0) dcl 3-91 token_block1_ptr defined pointer dcl 3-47 token_block2_ptr defined pointer dcl 3-49 unspec builtin function dcl 406 value_cnt defined fixed bin(17,0) dcl 3-195 ws_charcnt defined fixed bin(17,0) dcl 3-187 ws_wdoff defined fixed bin(17,0) dcl 3-201 xref_bypass defined bit(1) dcl 3-213 xref_chain_ptr defined pointer dcl 3-75 xref_token_ptr defined pointer dcl 3-73 NAMES DECLARED BY EXPLICIT CONTEXT. cobol_seginit_gen 000010 constant entry external dcl 26 initialize_go 000342 constant entry internal dcl 490 ref 464 484 start 000015 constant label dcl 417 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 672 1000 517 702 Length 1256 517 106 241 153 50 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cobol_seginit_gen 116 external procedure is an external procedure. initialize_go internal procedure shares stack frame of external procedure cobol_seginit_gen. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 register_request cobol_seginit_gen 000021 target cobol_seginit_gen 000027 equate_tags cobol_seginit_gen 000042 init_perf_go cobol_seginit_gen 000044 init_alt_go cobol_seginit_gen 000050 tra_ic_inst cobol_seginit_gen 000052 tra_a_inst cobol_seginit_gen 000053 tra_ic_reloc cobol_seginit_gen STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cobol_seginit_gen 000100 index cobol_seginit_gen 000101 jndex cobol_seginit_gen 000102 init_ptr cobol_seginit_gen 000104 no_inst cobol_seginit_gen 000105 tag cobol_seginit_gen 000106 temp cobol_seginit_gen THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cobol_addr cobol_define_tag cobol_emit cobol_equate_tag cobol_make_tagref cobol_register$load cobol_reset_r$in_line THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cobol_$perform_list_ptr cobol_$seg_init_flag cobol_$seg_init_list_ptr cobol_$text_wd_off LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000004 417 000015 420 000017 424 000027 426 000034 428 000037 430 000040 432 000062 434 000065 436 000067 437 000070 440 000100 445 000102 446 000113 447 000122 448 000124 449 000145 450 000166 452 000210 454 000212 459 000217 461 000224 463 000230 464 000232 465 000233 470 000235 472 000236 476 000240 477 000246 481 000266 483 000303 484 000315 485 000316 486 000337 488 000341 490 000342 493 000343 494 000357 495 000372 496 000374 497 000376 498 000416 502 000427 503 000432 504 000433 505 000447 508 000451 509 000470 510 000474 512 000514 514 000516 ----------------------------------------------------------- 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