COMPILATION LISTING OF SEGMENT plio2_gdt_ Compiled by: Multics PL/I Compiler, Release 28d, of September 14, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/03/83 1413.1 mst Mon Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 plio2_gdt_: 11 get_data_temp_:proc(pspp) options(support); 12 13 /* Modified: 4 April 1978 by RAB to more properly determine time to call stu_$get_implicit_qualifier */ 14 15 16 dcl (pspp,psp) ptr; 17 18 dcl ( oklist_p, val_p, sym_p, new_sp , ldip,new_block_p, p) ptr; 19 dcl (text_p, link_p, ref_p) ptr init(null); 20 dcl ( i, n, isteps, icode, nsubs ) fixed bin; 21 dcl isize fixed bin(35); 22 dcl bbit36 bit(36) based; 23 dcl (addr, addrel, bit, binary, fixed, null, rel, substr) builtin; 24 dcl based_bit36 bit (36) aligned based; 25 dcl new_ST_sw bit(1) aligned; 26 27 dcl stu_$find_runtime_symbol ext entry(ptr,char(*) aligned, ptr , fixed bin) returns(ptr); 28 dcl stu_$get_runtime_address ext entry(ptr,ptr,ptr,ptr,ptr,ptr,ptr) returns (ptr); 29 dcl stu_$decode_runtime_value ext entry (fixed bin(35),ptr,ptr,ptr,ptr,ptr,fixed bin) returns(fixed bin(35)); 30 dcl stu_$get_implicit_qualifier ext entry (ptr,ptr,ptr,ptr,ptr) returns(ptr); 31 dcl plio2_sym_to_desc ext entry(ptr,ptr,ptr,ptr) returns(bit(36)aligned); 32 33 34 35 dcl 1 val_struct based, 36 2 flag bit(2) unal, 37 2 type bit(4) unal, 38 2 rest bit(30) unal; 39 40 dcl 1 oklist aligned based(oklist_p), 41 2 okln fixed bin(15), 42 2 offset(128) bit(18) unaligned; 43 44 dcl oklistlength fixed bin(17); 45 dcl delta bit(18); 46 dcl sym_q ptr; 47 dcl erno fixed bin(35); 48 49 dcl 1 ldi aligned based(ldip), 50 2 l fixed bin(15), 51 2 chars char(256) aligned, 52 2 name_l fixed bin(15), 53 2 (isub,sub(128)) fixed bin(15); 54 55 dcl ( jsub,jlower,jupper ) fixed bin(35); 56 1 1 /* BEGIN INCLUDE FILE...pl1_stack_frame.incl.pl1 */ 1 2 /* This is an overlay for a stack frame giving pointers 1 3** set and used by pl/I programs only. 1 4**/ 1 5 1 6 dcl 1 pl1_stack_frame based aligned, 1 7 2 pad(32) fixed bin, 1 8 2 display_ptr ptr, /* pointer to stack frame of parent block */ 1 9 2 descriptor_ptr ptr, /* pointer to argument descriptor list */ 1 10 2 linkage_ptr ptr, /* pointer to base of linkage section */ 1 11 2 text_base_ptr ptr; /* pointer to base of text */ 1 12 1 13 /* END INCLUDE FILE ... pl1_stack_frame.incl.pl1 */ 57 2 1 dcl 1 symbol_node aligned based, 2 2 2 type unal bit(12), /* data type */ 2 3 2 level unal bit(6), /* structure level */ 2 4 2 ndims unal bit(6), /* number of dimensions */ 2 5 2 bits unal, 2 6 3 aligned bit(1), 2 7 3 packed bit(1), 2 8 3 simple bit(1), 2 9 3 decimal bit(1), 2 10 2 scale unal bit(8), /* arithmetic scale factor */ 2 11 2 name unal bit(18), /* rel ptr to acc name */ 2 12 2 brother unal bit(18), /* rel ptr to brother entry */ 2 13 2 father unal bit(18), /* rel ptr to father entry */ 2 14 2 son unal bit(18), /* rel ptr to son entry */ 2 15 2 address unal, 2 16 3 offset bit(18), /* offset in storage class */ 2 17 3 class bit(4), /* storage class */ 2 18 3 next bit(14), /* rel ptr to next of same class */ 2 19 2 size fixed bin(35), /* encoded string|arith size */ 2 20 2 word_offset fixed bin(35), /* encoded offset from address */ 2 21 2 bit_offset fixed bin(35), 2 22 2 virtual_org fixed bin(35), 2 23 2 bounds(1), 2 24 3 lower fixed bin(35), /* encoded lower bound */ 2 25 3 upper fixed bin(35), /* encoded upper bound */ 2 26 3 multiplier fixed bin(35); /* encoded multiplier */ 2 27 2 28 dcl 1 sym_bound based, 2 29 2 lower fixed bin(35), 2 30 2 upper fixed bin(35), 2 31 2 multiplier fixed bin(35); 2 32 2 33 dcl 1 symbol_block aligned based, 2 34 2 type unal bit(12), /* = 0 for a block node */ 2 35 2 number unal bit(6), /* begin block number */ 2 36 2 start unal bit(18), /* rel ptr to start of symbols */ 2 37 2 name unal bit(18), /* rel ptr to name of proc */ 2 38 2 brother unal bit(18), /* rel ptr to brother block */ 2 39 2 father unal bit(18), /* rel ptr to father block */ 2 40 2 son unal bit(18), /* rel ptr to son block */ 2 41 2 map unal, 2 42 3 first bit(18), /* rel ptr to first word of map */ 2 43 3 last bit(18), /* rel ptr to last word of map */ 2 44 2 bits unal bit(18), 2 45 2 header unal bit(18), /* rel ptr to symbol header */ 2 46 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 2 47* on start list with length >= 2**i */ 2 48 2 class_list(0:15) unal bit(18); /* rel ptrs to first symbol of given 2 49* storage class */ 58 3 1 /* BEGIN INCLUDE FILE ... runtime_symbol.incl.pl1 ... Modified 07/79 */ 3 2 3 3 dcl 1 runtime_symbol aligned based, 3 4 2 flag unal bit(1), /* always "1"b for Version II */ 3 5 2 use_digit unal bit(1), /* if "1"b and units are half words units are really digits */ 3 6 2 array_units unal bit(2), 3 7 2 units unal bit(2), /* addressing units */ 3 8 2 type unal bit(6), /* data type */ 3 9 2 level unal bit(6), /* structure level */ 3 10 2 ndims unal bit(6), /* number of dimensions */ 3 11 2 bits unal, 3 12 3 aligned bit(1), 3 13 3 packed bit(1), 3 14 3 simple bit(1), 3 15 2 skip unal bit(1), 3 16 2 scale unal bit(8), /* arithmetic scale factor */ 3 17 2 name unal bit(18), /* rel ptr to acc name */ 3 18 2 brother unal bit(18), /* rel ptr to brother entry */ 3 19 2 father unal bit(18), /* rel ptr to father entry */ 3 20 2 son unal bit(18), /* rel ptr to son entry */ 3 21 2 address unal, 3 22 3 location bit(18), /* location in storage class */ 3 23 3 class bit(4), /* storage class */ 3 24 3 next bit(14), /* rel ptr to next of same class */ 3 25 2 size fixed bin(35), /* encoded string|arith size */ 3 26 2 offset fixed bin(35), /* encoded offset from address */ 3 27 2 virtual_org fixed bin(35), 3 28 2 bounds(1), 3 29 3 lower fixed bin(35), /* encoded lower bound */ 3 30 3 upper fixed bin(35), /* encoded upper bound */ 3 31 3 multiplier fixed bin(35); /* encoded multiplier */ 3 32 3 33 dcl 1 runtime_bound based, 3 34 2 lower fixed bin(35), 3 35 2 upper fixed bin(35), 3 36 2 multiplier fixed bin(35); 3 37 3 38 dcl 1 runtime_block aligned based, 3 39 2 flag unal bit(1), /* always "1"b for Version II */ 3 40 2 quick unal bit(1), /* "1"b if quick block */ 3 41 2 fortran unal bit(1), /* "1"b if fortran program */ 3 42 2 standard unal bit(1), /* "1"b if program has std obj segment */ 3 43 2 owner_flag unal bit(1), /* "1"b if block has valid owner field */ 3 44 2 skip unal bit(1), 3 45 2 type unal bit(6), /* = 0 for a block node */ 3 46 2 number unal bit(6), /* begin block number */ 3 47 2 start unal bit(18), /* rel ptr to start of symbols */ 3 48 2 name unal bit(18), /* rel ptr to name of proc */ 3 49 2 brother unal bit(18), /* rel ptr to brother block */ 3 50 2 father unal bit(18), /* rel ptr to father block */ 3 51 2 son unal bit(18), /* rel ptr to son block */ 3 52 2 map unal, 3 53 3 first bit(18), /* rel ptr to first word of map */ 3 54 3 last bit(18), /* rel ptr to last word of map */ 3 55 2 entry_info unal bit(18), /* info about entry of quick block */ 3 56 2 header unal bit(18), /* rel ptr to symbol header */ 3 57 2 chain(4) unal bit(18), /* chain(i) is rel ptr to first symbol 3 58* on start list with length >= 2**i */ 3 59 2 token(0:5) unal bit(18), /* token(i) is rel ptr to first token 3 60* on list with length >= 2 ** i */ 3 61 2 owner unal bit(18); /* rel ptr to owner block */ 3 62 3 63 dcl 1 runtime_token aligned based, 3 64 2 next unal bit(18), /* rel ptr to next token */ 3 65 2 dcl unal bit(18), /* rel ptr to first dcl of this token */ 3 66 2 name, /* ACC */ 3 67 3 size unal unsigned fixed bin (9), /* number of chars in token */ 3 68 3 string unal char(n refer(runtime_token.size)); 3 69 3 70 dcl 1 encoded_value aligned based, 3 71 2 flag bit (2) unal, 3 72 2 code bit (4) unal, 3 73 2 n1 bit (6) unal, 3 74 2 n2 bit (6) unal, 3 75 2 n3 bit (18) unal; 3 76 3 77 /* END INCLUDE FILE ... runtime_symbol.incl.pl1 */ 59 4 1 /* BEGIN INCLUDE FILE ... plio2_ps.incl.pl1 */ 4 2 /* Stream I/O data block used by PL/I I/O runtime routines. 4 3* 4 4* Modified: 31 January 1978 by RAB to change plio2_data_$fsb_thread to plio2_data_fsb_thread_ 4 5**/ 4 6 /* format: style3,idind30 */ 4 7 4 8 /* based */ 4 9 4 10 declare 1 ps aligned based (psp),/* items set NORMALLY by compiled procedures */ 4 11 2 stack_frame_p ptr, /* items set in block prologue */ 4 12 2 ST_top_p ptr, 4 13 2 ST_block_p ptr, 4 14 2 format_area_p ptr, 4 15 2 ss_list_p ptr, 4 16 2 ab_return, /* items set in prep call */ 4 17 3 abret (3) ptr, 4 18 2 source_p ptr, /* addr(fakefsb) for string option, 4 19* addr(file) for explicit file option */ 4 20 2 special_list_p ptr, /* addr(OKlist) for get data, addr(format_list) for edit */ 4 21 2 copy_file_p ptr, 4 22 2 job aligned, 4 23 3 explicit_file bit (1) unal, 4 24 3 string bit (1) unal, 4 25 3 varying_string bit (1) unal, 4 26 3 data bit (1) unal, 4 27 3 edit bit (1) unal, 4 28 3 list bit (1) unal, 4 29 3 get bit (1) unal, 4 30 3 put bit (1) unal, 4 31 3 page bit (1) unal, 4 32 3 line bit (1) unal, 4 33 3 skip bit (1) unal, 4 34 3 copy bit (1) unal, 4 35 3 p1p2 bit (1) unal, 4 36 3 bit_string bit (1) unal, /* for environment(stringvalue) */ 4 37 3 char_string bit (1) unal, 4 38 3 read bit (1) unal, 4 39 3 write bit (1) unal, 4 40 3 rewrite bit (1) unal, 4 41 3 delete bit (1) unal, 4 42 3 locate bit (1) unal, 4 43 3 key bit (1) unal, 4 44 3 keyto bit (1) unal, 4 45 3 keyfrom bit (1) unal, 4 46 3 set bit (1) unal, 4 47 3 into bit (1) unal, 4 48 3 ignore bit (1) unal, 4 49 3 from bit (1) unal, 4 50 3 version bit (6) unal, 4 51 3 not_byte_buffer bit (1) unal, 4 52 3 pad1 bit (1) unal, 4 53 3 packed_ptr bit (1) unal, 4 54 2 number fixed bin (15), 4 55 2 value_p ptr, /* items set NORMALLY by compiled procedures per transmission */ 4 56 2 descriptor bit (36) aligned, 4 57 2 length fixed bin (15), /* may be swallowed into descriptor */ 4 58 2 top_half bit (18) unal, 4 59 2 offset bit (18) unal, 4 60 2 prep fixed bin (15), /* items treated ABNORMALLY, written by user and PLIO */ 4 61 2 new_format fixed bin (15), 4 62 2 switch aligned, /* items used by PLIO and not touched by compiled procedures */ 4 63 3 first_field bit (1) unal, 4 64 3 file bit (1) unal, 4 65 3 transmit_error bit (1) unal, 4 66 3 semi_sep bit (1) unal, 4 67 3 pad2 bit (32) unal, 4 68 2 file_p ptr, 4 69 2 fsbp ptr, 4 70 2 auxp ptr, /* used as addr(ldidata) for GETs */ 4 71 2 fabp ptr, 4 72 2 fab2p ptr, 4 73 2 vp ptr, 4 74 2 descr bit (36) aligned, 4 75 2 start_copy fixed bin (15), 4 76 2 quick_stream_storage, 4 77 3 a_stored fixed bin (35), 4 78 3 q_stored fixed bin (35); 4 79 4 80 /* external static */ 4 81 4 82 declare ( 4 83 plio2_data_$pspstat, 4 84 plio2_data_$fsbpstat, 4 85 plio2_data_$badfsbp, 4 86 plio2_data_$fabpstat, 4 87 plio2_data_$fab2pstat, 4 88 plio2_data_$pliostringfsbp 4 89 ) ptr external static; 4 90 4 91 dcl plio2_data_fsb_thread_ ptr ext static initial (null); 4 92 /* *system var */ 4 93 4 94 declare ( 4 95 plio2_data_$badjob bit (36) aligned, 4 96 plio2_data_$undef_file_sw bit (1) aligned 4 97 ) external static; 4 98 4 99 /* END INCLUDE FILE ... plio2_ps.incl.pl1 */ 60 61 62 63 64 65 /* */ 66 /* NOTE WELL on SymTab: I use the old symtab whenever it seems 67* to agree with the new. 68**/ 69 70 start: 71 psp=pspp; 72 ldip=ps.auxp; 73 74 sym_p=stu_$find_runtime_symbol(ps.ST_block_p,substr(ldi.chars,1,ldi.name_l),new_block_p,isteps); 75 if sym_p=null then goto err72; 76 if isteps<0 then goto err72; 77 /* isteps is now used to report errors; 78* -5 means a partial name which is ambiguous (sym_p is NOT null in this case) 79* -1 means a null block ptr 80* -2,-3 mean th name is too long or has too many parts 81* -4 means the symbol has been searched for but not found */ 82 83 if sym_p->runtime_symbol.flag then new_ST_sw = "1"b; 84 else new_ST_sw = "0"b; 85 86 oklist_p=ps.special_list_p; 87 oklistlength=oklist.okln; 88 if ps.job.p1p2 then oklistlength=oklistlength+oklistlength; 89 /* since, in version one, oklist is stored one per word */ 90 91 if oklistlength>0 then 92 do; 93 sym_q=sym_p; 94 95 okloop: delta=bit(fixed(binary(rel(sym_q),18,0)-binary(rel(ps.ST_top_p),18,0),18,0),18); 96 do i=1 to oklistlength; 97 if delta=oklist.offset(i) then go to ok_exit; 98 end; 99 100 if fixed(sym_q->symbol_node.level,6)<2 then goto err73; /* SAME */ 101 sym_q=addrel(sym_q,sym_q->symbol_node.father); /* SAME */ 102 go to okloop; 103 104 ok_exit: end; 105 106 107 108 nsubs=fixed(sym_p->symbol_node.ndims,6); /* SAME */ 109 if nsubs^=ldi.isub then goto err74; 110 111 new_sp=ps.stack_frame_p; 112 do i=1 to isteps; 113 new_sp=new_sp->pl1_stack_frame.display_ptr; 114 /* Here's an OPERATING SYSTEM 115* interface for you. son's SF 116* points to parent's SF 117* in this fashion in MULTICS */ 118 119 120 end; 121 122 123 /* check subscript ranges */ 124 125 do i=1 to nsubs; 126 127 jsub=ldi.sub(i); 128 if new_ST_sw then 129 do; 130 jlower=sym_p->runtime_symbol.bounds(i).lower; 131 jupper=sym_p->runtime_symbol.bounds(i).upper; 132 end; 133 else do; 134 jlower=sym_p->symbol_node.bounds(i).lower; 135 jupper=sym_p->symbol_node.bounds(i).upper; 136 end; 137 138 icode=0; 139 140 if jlower<0 141 then do; 142 if ref_p = null & sym_p -> runtime_symbol.class = "0011"b 143 then ref_p = stu_$get_implicit_qualifier(new_block_p,sym_p,new_sp,link_p,text_p); 144 else; 145 jlower=stu_$decode_runtime_value((jlower),new_block_p,new_sp,null,null,ref_p,icode); 146 end; 147 148 if icode^=0 then goto err76; 149 if jupper<0 150 then do; 151 if ref_p = null & sym_p -> runtime_symbol.class = "0011"b 152 then ref_p = stu_$get_implicit_qualifier(new_block_p,sym_p,new_sp,link_p,text_p); 153 else; 154 jupper=stu_$decode_runtime_value((jupper),new_block_p,new_sp,null,null,ref_p,icode); 155 end; 156 157 if icode^=0 then goto err76; 158 if jsubjupper then goto err77; 159 end; /* end of do-loop on all subscripts */ 160 161 val_p=stu_$get_runtime_address(new_block_p,sym_p,new_sp,null,null,null,addr(ldi.sub(1))); 162 if val_p=null then goto err75; 163 164 if sym_p->runtime_symbol.type="111111"b 165 then do; 166 ps.top_half = bit(fixed(sym_p->runtime_symbol.size,18),18); 167 ps.descr = "0"b; 168 end; 169 else ps.descr=plio2_sym_to_desc(sym_p,null,psp,new_sp); 170 171 ps.vp=val_p; 172 173 if substr(ps.descr,1, 7)="1010100"b then goto varstrret; 174 if substr(ps.descr,1, 7)="1010110"b then goto varstrret; 175 /* 176* if substr(ps.descr,1,15)="000001000001001"b then goto varstrret; 177* if substr(ps.descr,1,15)="000001000001010"b then goto varstrret; 178* */ 179 180 181 return; 182 183 varstrret: 184 ps.vp=addrel(ps.vp,1); /* PLIO2 needs to have the pointer "as an argument" */ 185 return; 186 187 188 err72: erno=72; 189 goto error_exit; 190 191 err73: erno=73; 192 goto error_exit; 193 194 err74: erno=74; 195 goto error_exit; 196 197 err75: erno=75; 198 goto error_exit; 199 200 err76: erno=76; 201 goto error_exit; 202 203 err77: erno=77; 204 goto error_exit; 205 206 error_exit: 207 addr(ps.descr)->based_bit36=addr(erno)->based_bit36; 208 /* returns erno to which 63 will be added: 209* 210* 72 135 identifier not found in S.T. 211* 73 136 identifier not found in (or under) data list of get-data statement 212* 74 137 number of subscripts in identifier not equal number specified in S.T. 213* 75 138 error return from stu_$get_runtime_address 214* 76 139 error return from stu_$decode_runtime_value 215* 77 140 subscript range error, info from S.T. 216* 217* */ 218 ps.vp=null; 219 return; 220 221 end plio2_gdt_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/03/83 1005.4 plio2_gdt_.pl1 >spec>on>pl128d>plio2_gdt_.pl1 57 1 05/06/74 1742.6 pl1_stack_frame.incl.pl1 >ldd>include>pl1_stack_frame.incl.pl1 58 2 05/06/74 1752.6 symbol_node.incl.pl1 >ldd>include>symbol_node.incl.pl1 59 3 11/26/79 1320.6 runtime_symbol.incl.pl1 >ldd>include>runtime_symbol.incl.pl1 60 4 08/13/81 2043.5 plio2_ps.incl.pl1 >ldd>include>plio2_ps.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. ST_block_p 4 based pointer level 2 dcl 4-10 set ref 74* ST_top_p 2 based pointer level 2 dcl 4-10 ref 95 addr builtin function dcl 23 ref 161 161 206 206 addrel builtin function dcl 23 ref 101 183 address 3 based structure level 2 packed unaligned dcl 3-3 auxp 44 based pointer level 2 dcl 4-10 ref 72 based_bit36 based bit(36) dcl 24 set ref 206* 206 binary builtin function dcl 23 ref 95 95 bit builtin function dcl 23 ref 95 166 bounds 7 based structure array level 2 in structure "runtime_symbol" dcl 3-3 in procedure "get_data_temp_" bounds 10 based structure array level 2 in structure "symbol_node" dcl 2-1 in procedure "get_data_temp_" chars 1 based char(256) level 2 dcl 49 ref 74 74 class 3(18) based bit(4) level 3 packed unaligned dcl 3-3 ref 142 151 delta 000132 automatic bit(18) unaligned dcl 45 set ref 95* 97 descr 54 based bit(36) level 2 dcl 4-10 set ref 167* 169* 173 174 206 display_ptr 40 based pointer level 2 dcl 1-6 ref 113 erno 000136 automatic fixed bin(35,0) dcl 47 set ref 188* 191* 194* 197* 200* 203* 206 father 2 based bit(18) level 2 packed unaligned dcl 2-1 ref 101 fixed builtin function dcl 23 ref 95 100 108 166 flag based bit(1) level 2 packed unaligned dcl 3-3 ref 83 i 000124 automatic fixed bin(17,0) dcl 20 set ref 96* 97* 112* 125* 127 130 131 134 135* icode 000126 automatic fixed bin(17,0) dcl 20 set ref 138* 145* 148 154* 157 isteps 000125 automatic fixed bin(17,0) dcl 20 set ref 74* 76 112 isub 102 based fixed bin(15,0) level 2 dcl 49 ref 109 jlower 000140 automatic fixed bin(35,0) dcl 55 set ref 130* 134* 140 145* 145 158 job 26 based structure level 2 dcl 4-10 jsub 000137 automatic fixed bin(35,0) dcl 55 set ref 127* 158 158 jupper 000141 automatic fixed bin(35,0) dcl 55 set ref 131* 135* 149 154* 154 158 ldi based structure level 1 dcl 49 ldip 000112 automatic pointer dcl 18 set ref 72* 74 74 74 74 109 127 161 161 level 0(12) based bit(6) level 2 packed unaligned dcl 2-1 ref 100 link_p 000120 automatic pointer initial dcl 19 set ref 19* 142* 151* lower 10 based fixed bin(35,0) array level 3 in structure "symbol_node" dcl 2-1 in procedure "get_data_temp_" ref 134 lower 7 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 3-3 in procedure "get_data_temp_" ref 130 name_l 101 based fixed bin(15,0) level 2 dcl 49 ref 74 74 ndims 0(18) based bit(6) level 2 packed unaligned dcl 2-1 ref 108 new_ST_sw 000130 automatic bit(1) dcl 25 set ref 83* 84* 128 new_block_p 000114 automatic pointer dcl 18 set ref 74* 142* 145* 151* 154* 161* new_sp 000110 automatic pointer dcl 18 set ref 111* 113* 113 142* 145* 151* 154* 161* 169* nsubs 000127 automatic fixed bin(17,0) dcl 20 set ref 108* 109 125 null builtin function dcl 23 ref 19 19 19 75 142 145 145 145 145 151 154 154 154 154 161 161 161 161 161 161 162 169 169 218 offset 1 based bit(18) array level 2 packed unaligned dcl 40 ref 97 oklist based structure level 1 dcl 40 oklist_p 000102 automatic pointer dcl 18 set ref 86* 87 97 oklistlength 000131 automatic fixed bin(17,0) dcl 44 set ref 87* 88* 88 88 91 96 okln based fixed bin(15,0) level 2 dcl 40 ref 87 p1p2 26(12) based bit(1) level 3 packed unaligned dcl 4-10 ref 88 pl1_stack_frame based structure level 1 dcl 1-6 plio2_sym_to_desc 000020 constant entry external dcl 31 ref 169 ps based structure level 1 dcl 4-10 psp 000100 automatic pointer dcl 16 set ref 70* 72 74 86 88 95 111 166 167 169 169* 171 173 174 183 183 206 218 pspp parameter pointer dcl 16 ref 10 10 70 ref_p 000122 automatic pointer initial dcl 19 set ref 19* 142 142* 145* 151 151* 154* rel builtin function dcl 23 ref 95 95 runtime_symbol based structure level 1 dcl 3-3 size 4 based fixed bin(35,0) level 2 dcl 3-3 ref 166 special_list_p 22 based pointer level 2 dcl 4-10 ref 86 stack_frame_p based pointer level 2 dcl 4-10 ref 111 stu_$decode_runtime_value 000014 constant entry external dcl 29 ref 145 154 stu_$find_runtime_symbol 000010 constant entry external dcl 27 ref 74 stu_$get_implicit_qualifier 000016 constant entry external dcl 30 ref 142 151 stu_$get_runtime_address 000012 constant entry external dcl 28 ref 161 sub 103 based fixed bin(15,0) array level 2 dcl 49 set ref 127 161 161 substr builtin function dcl 23 ref 74 74 173 174 sym_p 000106 automatic pointer dcl 18 set ref 74* 75 83 93 108 130 131 134 135 142 142* 151 151* 161* 164 166 169* sym_q 000134 automatic pointer dcl 46 set ref 93* 95 100 101* 101 101 symbol_node based structure level 1 dcl 2-1 text_p 000116 automatic pointer initial dcl 19 set ref 19* 142* 151* top_half 34 based bit(18) level 2 packed unaligned dcl 4-10 set ref 166* type 0(06) based bit(6) level 2 packed unaligned dcl 3-3 ref 164 upper 10 based fixed bin(35,0) array level 3 in structure "runtime_symbol" dcl 3-3 in procedure "get_data_temp_" ref 131 upper 11 based fixed bin(35,0) array level 3 in structure "symbol_node" dcl 2-1 in procedure "get_data_temp_" ref 135 val_p 000104 automatic pointer dcl 18 set ref 161* 162 171 vp 52 based pointer level 2 dcl 4-10 set ref 171* 183* 183 218* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. bbit36 based bit(36) unaligned dcl 22 encoded_value based structure level 1 dcl 3-70 isize automatic fixed bin(35,0) dcl 21 n automatic fixed bin(17,0) dcl 20 p automatic pointer dcl 18 plio2_data_$badfsbp external static pointer dcl 4-82 plio2_data_$badjob external static bit(36) dcl 4-94 plio2_data_$fab2pstat external static pointer dcl 4-82 plio2_data_$fabpstat external static pointer dcl 4-82 plio2_data_$fsbpstat external static pointer dcl 4-82 plio2_data_$pliostringfsbp external static pointer dcl 4-82 plio2_data_$pspstat external static pointer dcl 4-82 plio2_data_$undef_file_sw external static bit(1) dcl 4-94 plio2_data_fsb_thread_ external static pointer initial dcl 4-91 runtime_block based structure level 1 dcl 3-38 runtime_bound based structure level 1 unaligned dcl 3-33 runtime_token based structure level 1 dcl 3-63 sym_bound based structure level 1 unaligned dcl 2-28 symbol_block based structure level 1 dcl 2-33 val_struct based structure level 1 packed unaligned dcl 35 NAMES DECLARED BY EXPLICIT CONTEXT. err72 000604 constant label dcl 188 ref 75 76 err73 000607 constant label dcl 191 ref 100 err74 000612 constant label dcl 194 ref 109 err75 000615 constant label dcl 197 ref 162 err76 000620 constant label dcl 200 ref 148 157 err77 000623 constant label dcl 203 ref 158 error_exit 000626 constant label dcl 206 ref 189 192 195 198 201 204 get_data_temp_ 000022 constant entry external dcl 10 ok_exit 000212 constant label dcl 104 ref 97 okloop 000143 constant label dcl 95 set ref 102 plio2_gdt_ 000034 constant entry external dcl 10 start 000043 constant label dcl 70 varstrret 000600 constant label dcl 183 ref 173 174 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 744 766 634 754 Length 1226 634 22 223 107 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME get_data_temp_ 134 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME get_data_temp_ 000100 psp get_data_temp_ 000102 oklist_p get_data_temp_ 000104 val_p get_data_temp_ 000106 sym_p get_data_temp_ 000110 new_sp get_data_temp_ 000112 ldip get_data_temp_ 000114 new_block_p get_data_temp_ 000116 text_p get_data_temp_ 000120 link_p get_data_temp_ 000122 ref_p get_data_temp_ 000124 i get_data_temp_ 000125 isteps get_data_temp_ 000126 icode get_data_temp_ 000127 nsubs get_data_temp_ 000130 new_ST_sw get_data_temp_ 000131 oklistlength get_data_temp_ 000132 delta get_data_temp_ 000134 sym_q get_data_temp_ 000136 erno get_data_temp_ 000137 jsub get_data_temp_ 000140 jlower get_data_temp_ 000141 jupper get_data_temp_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry set_support THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. plio2_sym_to_desc stu_$decode_runtime_value stu_$find_runtime_symbol stu_$get_implicit_qualifier stu_$get_runtime_address NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000011 10 000017 70 000043 72 000047 74 000051 75 000107 76 000114 83 000116 84 000124 86 000125 87 000130 88 000132 91 000137 93 000141 95 000143 96 000157 97 000167 98 000175 100 000177 101 000204 102 000211 108 000212 109 000216 111 000221 112 000224 113 000233 120 000236 125 000240 127 000247 128 000252 130 000254 131 000262 132 000264 134 000265 135 000273 138 000275 140 000276 142 000300 145 000332 148 000364 149 000366 151 000370 154 000423 157 000455 158 000457 159 000464 161 000466 162 000522 164 000526 166 000533 167 000542 168 000543 169 000544 171 000566 173 000571 174 000576 183 000600 185 000603 188 000604 189 000606 191 000607 192 000611 194 000612 195 000614 197 000615 198 000617 200 000620 201 000622 203 000623 204 000625 206 000626 218 000631 219 000633 ----------------------------------------------------------- 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