COMPILATION LISTING OF SEGMENT walk_subtree Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/22/85 1423.0 mst Tue Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 walk_subtree: ws: proc; 12 13 /* Initially coded in September 1969 by V. Voydock */ 14 /* Converted to pl1 in May 1970 by V. Voydock */ 15 /* Modified on May 4, 1970 at 12:25 midnight by V. Voydock */ 16 /* Modified on January 4, 1971 (to add pi handler) by V. Voydock */ 17 /* Modified on July 8, 1971 by J. Stern 18* Command name changed from "global" to "execute_in_subdirectories". 19* Command format and options changed ("-bottom_up" option added). */ 20 /* Modified Dec 13 1973 by S. Herbst 21* Converted to Version II 22* Names changed to walk_subtree and ws_recursive. 23* Var. length temporary command line. */ 24 /* Bugs fixed 12/9/75 by Steve Herbst: walking through MSF's and 25* cwd in command line changing walk */ 26 /* By Greenberg 3/8/77 to allow walking MSF's (!) on -msf, 27* and -priv for hphcs_$star_. */ 28 /* By GTWilliams 5/9/78 to eliminate BRS's and RRS's from output, move pi handler functionality to a 29* cleanup handler, explicitly set value of op to addr(original_dir). */ 30 /* Badpath error message fixed 05/12/80 S. Herbst */ 31 /* By R. Kovalcik 9/10/82 to handle security-out-of-service error better */ 32 /* By C Spitzer 7 Nov 83: use include star_structures, attempt to use get_shortest_path_ 33* if the directory length would be > 168 */ 34 /* By Keith Loepere, December 1984: generate good paths for dirs off root. */ 35 36 dcl cleanup condition; 37 38 dcl original_dir char(168), /* directory from which ws was invoked */ 39 command_line char(clng) based(cp), 40 starting_node char(slng) based(sp), /* starting node of subtree of subdirectories */ 41 starting_dir char (168), 42 arg char(lng) based(ap), 43 cstring char(168), /* ioa_ control string passed to com_err_ */ 44 ws char(16) aligned int static init("walk_subtree"), 45 nl char(1) aligned internal static initial(" 46 "); /* new line character */ 47 48 dcl (lng, 49 clng, 50 slng, 51 first_level init(1), /* level of recursion at which to begin executing command line */ 52 last_level init(999), 53 i, 54 nargs, 55 level init(0) /* current level of recursion */ 56 ) fixed bin(17); 57 58 dcl (nnn, code) fixed bin(35); 59 60 dcl (bottom_up_flag init("0"b), 61 (privf, msff) init ("0"b), 62 trace_flag init("1"b), 63 f_option_flag) bit(1) aligned; 64 65 dcl (ap, 66 arp, 67 op, 68 sp, 69 tcp, 70 cp )ptr; 71 72 dcl tem_ area based(arp), 73 tem_com_line char(clng) aligned based(tcp); /* temporary command line to be allocated in tem_ */ 74 dcl error_table_$badopt ext fixed bin(35), 75 error_table_$noarg ext fixed bin(35); 76 77 dcl (addr, fixed, null, rtrim, substr) builtin, 78 absolute_pathname_ entry (char(*), char(*), fixed bin(35)), 79 pathname_ entry (char(*), char(*)) returns(char(168)), 80 cv_dec_check_ external entry(char(*), fixed bin(35)) returns(fixed bin(35)), 81 cu_$arg_ptr ext entry(fixed bin(17),ptr,fixed bin(17),fixed bin(35)), 82 cu_$arg_count ext entry(fixed bin(17)), 83 get_system_free_area_ ext entry returns(ptr), 84 get_wdir_ entry() returns(char(168)), 85 change_wdir_ external entry(char(168), fixed bin(35)), 86 ioa_ ext entry options(variable), 87 com_err_ ext entry options(variable); 88 89 /* */ 90 91 /* Save original working directory */ 92 /* Establish handler for cleanup to reset user's original working_dir */ 93 on condition (cleanup) call change_wdir_(original_dir,code); 94 op = addr(original_dir); 95 original_dir = get_wdir_(); 96 if original_dir="" then return; 97 98 /* Get argument count */ 99 call cu_$arg_count(nargs); 100 if nargs < 2 then do; code = error_table_$noarg; cstring = " "; go to ERROR_EXIT1; end; 101 102 /* Get starting node name */ 103 call cu_$arg_ptr(1, sp, slng, code); 104 if code ^= 0 then do; i = 1; go to ERROR_EXIT3; end; 105 106 /* "-wd" => current working directory */ 107 if starting_node = "-wd" then do; sp = op; slng = 168; end; 108 109 call absolute_pathname_ (starting_node, starting_dir, code); 110 if code ^= 0 then do; 111 cstring = starting_node; 112 goto ERROR_EXIT1; 113 end; 114 115 /* Get command line */ 116 call cu_$arg_ptr(2, cp, clng, code); 117 if code ^= 0 then do; i = 2; go to ERROR_EXIT3; end; 118 119 /* Check for options */ 120 do i = 3 to nargs; 121 call cu_$arg_ptr(i,ap,lng,code); 122 if code ^= 0 then go to ERROR_EXIT3; 123 if substr(arg,1,1) ^= "-" then /* not an option */ 124 do; 125 cstring = "Argument does not have option format as expected. ^a"; 126 go to ERROR_EXIT2; 127 end; 128 129 /* Identify options */ 130 if arg="-ft" | arg="-first" then do; f_option_flag="1"b; go to SETLEVEL; end; 131 else 132 if arg="-lt" | arg="-last" then do; f_option_flag="0"b; go to SETLEVEL; end; 133 else 134 if arg="-msf" then msff = "1"b; 135 else 136 if arg = "-priv" then privf = "1"b; 137 else 138 if arg="-bf" | arg="-brief" then trace_flag="0"b; 139 else 140 if arg="-bu" | arg = "-bottom_up" then bottom_up_flag = "1"b; 141 else 142 do; code = error_table_$badopt; cstring= arg; go to ERROR_EXIT1; end; 143 go to ENDLOOP; 144 145 SETLEVEL: i=i+1; 146 call cu_$arg_ptr(i,ap,lng,code); 147 if code ^= 0 then do; cstring = "Level number missing."; go to ERROR_EXIT2; end; 148 nnn = cv_dec_check_(arg, code); /* convert level number from char to binary */ 149 if code ^= 0 | nnn <= 0 then 150 do; 151 cstring = "Bad level number. ^a"; 152 go to ERROR_EXIT2; 153 end; 154 if f_option_flag then first_level = nnn; 155 else last_level = nnn; 156 ENDLOOP: end; 157 158 159 /* Control comes here when all arguments have been processed. */ 160 CALL_CP: if last_level < first_level then 161 do; 162 code = 0; 163 cstring = "Last level must be >= first level."; 164 go to ERROR_EXIT1; 165 end; 166 167 /* Get area in which star handler can allocate information */ 168 arp = get_system_free_area_(); 169 170 /* Allocate temporary command line in this area */ 171 allocate tem_com_line in(tem_) set(tcp); 172 173 /* Now do the real work */ 174 call ws_recursive(starting_dir); 175 176 /* Free tem_com_line */ 177 free tem_com_line in(tem_); 178 179 180 RETURN_TO_ORIGINAL_DIR: 181 182 /* The real work has been done. Now make the user's working directory 183* be the same as when command was invoked, then return */ 184 call change_wdir_(original_dir,code); 185 if code = 0 then return; 186 cstring = original_dir; 187 188 ERROR_EXIT1: call com_err_(code, ws, cstring); 189 return; 190 191 ERROR_EXIT2: call com_err_(0, ws, cstring, arg); 192 return; 193 194 ERROR_EXIT3: call com_err_(code, ws, "ARG ^d", i); 195 return; 196 197 /* */ 198 199 /* Internal procedure to execute the command line set up in the main body of 200* the program at all specified points of the file system hierarchy */ 201 ws_recursive: proc(nodeP); 202 203 dcl nodeP char(*) parameter; 204 205 dcl (dp, 206 (ep, 207 np) init(null) ) ptr; 208 209 dcl node char (168); 210 dcl dpath char (dlng) based (dp); 211 212 dcl type fixed bin(2); 213 214 dcl (dlng, 215 k, 216 ecount 217 ) fixed bin(17); 218 219 dcl nind fixed bin(18); 220 221 dcl bitcnt fixed bin(24); 222 223 dcl code fixed bin(35); 224 225 dcl cu_$cp ext entry(ptr,fixed bin(17),fixed bin(35)), 226 get_shortest_path_ entry (char(*)) returns(char(168)), 227 pathname_ entry (char(*), char(*)) returns(char(168)), 228 hcs_$star_ ext entry(char(*),char(*),fixed bin(2),ptr,fixed bin(17),ptr,ptr,fixed bin(35)); 229 dcl hphcs_$star_ ext entry (char(*),char(*),fixed bin(2),ptr,fixed bin(17),ptr,ptr,fixed bin(35)); 230 dcl hcs_$status_minf entry(char(*),char(*),fixed bin(1),fixed bin(2),fixed bin(24),fixed bin(35)); 231 232 dcl error_table_$dirlong fixed bin(35) ext static; 233 dcl error_table_$no_s_permission ext fixed bin(35); 234 dcl error_table_$nomatch ext fixed bin(35); 235 dcl error_table_$oosw ext fixed bin(35); 236 1 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 1 2 1 3 /* This include file contains structures for the hcs_$star_, 1 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 1 5* 1 6* Written 23 October 1978 by Monte Davidoff. 1 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 1 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 1 9**/ 1 10 1 11 /* automatic */ 1 12 1 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 1 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 1 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 1 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 1 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 1 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 1 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 1 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 1 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 1 22 1 23 /* based */ 1 24 1 25 /* hcs_$star_ entry structure */ 1 26 1 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 1 28 2 type fixed binary (2) unsigned unaligned, 1 29 /* storage system type */ 1 30 2 nnames fixed binary (16) unsigned unaligned, 1 31 /* number of names of entry that match star_name */ 1 32 2 nindex fixed binary (18) unsigned unaligned; 1 33 /* index of first name in star_names */ 1 34 1 35 /* hcs_$star_ name structure */ 1 36 1 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 1 38 1 39 /* hcs_$star_list_ branch structure */ 1 40 1 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 42 2 type fixed binary (2) unsigned unaligned, 1 43 /* storage system type */ 1 44 2 nnames fixed binary (16) unsigned unaligned, 1 45 /* number of names of entry that match star_name */ 1 46 2 nindex fixed binary (18) unsigned unaligned, 1 47 /* index of first name in star_list_names */ 1 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 1 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 1 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 1 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 1 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 1 53 2 pad bit (7) unaligned, 1 54 2 records fixed binary (18) unsigned unaligned; 1 55 /* records used by branch */ 1 56 1 57 /* hcs_$star_dir_list_ branch structure */ 1 58 1 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 60 2 type fixed binary (2) unsigned unaligned, 1 61 /* storage system type */ 1 62 2 nnames fixed binary (16) unsigned unaligned, 1 63 /* number of names of entry that match star_name */ 1 64 2 nindex fixed binary (18) unsigned unaligned, 1 65 /* index of first name in star_list_names */ 1 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 1 67 2 pad bit (36) unaligned, 1 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 1 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 1 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 1 71 2 bit_count fixed binary (24) unaligned; 1 72 /* bit count of the branch */ 1 73 1 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 1 75 1 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 1 77 2 type fixed binary (2) unsigned unaligned, 1 78 /* storage system type */ 1 79 2 nnames fixed binary (16) unsigned unaligned, 1 80 /* number of names of entry that match star_name */ 1 81 2 nindex fixed binary (18) unsigned unaligned, 1 82 /* index of first name in star_list_names */ 1 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 1 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 1 85 2 pathname_len fixed binary (18) unsigned unaligned, 1 86 /* length of the pathname of the link */ 1 87 2 pathname_index fixed binary (18) unsigned unaligned; 1 88 /* index of start of pathname in star_list_names */ 1 89 1 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 1 91 1 92 declare star_list_names char (32) based (star_list_names_ptr) 1 93 dimension (star_links (star_branch_count + star_link_count).nindex 1 94 + star_links (star_branch_count + star_link_count).nnames 1 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 1 96 * binary ( 1 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 1 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 1 99 1 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 1 101 1 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 1 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 1 104 1 105 /* internal static */ 1 106 1 107 /* star_select_sw values */ 1 108 1 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 1 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 1 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 1 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 1 113 fixed binary (3) internal static options (constant) initial (5); 1 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 1 115 fixed binary (3) internal static options (constant) initial (7); 1 116 1 117 /* storage system types */ 1 118 1 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 1 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 1 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 1 122 1 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 237 238 239 /* */ 240 241 /* Establish cleanup handler */ 242 243 star_entry_ptr, star_names_ptr = null; 244 245 on condition(cleanup) begin; 246 if star_names_ptr ^= null then free star_names in (tem_); 247 if star_entry_ptr ^= null then free star_entries in (tem_); 248 end; 249 250 /* Push level of recursion */ 251 level=level+1; 252 253 node = nodeP; 254 255 /* Change working directory to this node */ 256 call change_wdir_(node, code); 257 if code ^= 0 then go to CALL_COM; 258 259 /* See if top-down trace is wanted */ 260 if bottom_up_flag then go to NEXT; 261 262 /* See if command processor should be called at this level. 263* If so, copy the command line into temporary because the 264* the command processor destroys the input line passed to it */ 265 EXECUTE: if level>=first_level then 266 do; 267 if trace_flag then call ioa_("^-^a",node); /* trace in effect */ 268 tem_com_line=command_line; 269 call cu_$cp(tcp,clng,code); 270 if code^=0 then if code^=100 then do; 271 level = 0; 272 return; 273 end; 274 275 call change_wdir_(node,code); /* restore working dir after command line */ 276 if code^=0 then go to CALL_COM; 277 278 end; 279 if bottom_up_flag then go to FREE; 280 281 /* If this is last level then skip looking for subdirectories */ 282 NEXT: if level >= last_level then go to SKIP; 283 284 /* Get list of all subdirectories */ 285 if privf then call hphcs_$star_(node,"**",2,arp,star_entry_count,star_entry_ptr,star_names_ptr,code); 286 else call hcs_$star_(node,"**",2,arp,star_entry_count,star_entry_ptr,star_names_ptr,code); 287 if code=error_table_$nomatch then go to SKIP; /* no subdirectories */ 288 289 /* Execute command in all subdirectories which are in range */ 290 do k=1 to star_entry_count; 291 nind = fixed(star_entries(k).nindex); 292 if ^msff then do; 293 call hcs_$status_minf(node,star_names(nind),0,type,bitcnt,code); 294 if code^=0 295 then if code^=error_table_$no_s_permission 296 then if code^=error_table_$oosw 297 then go to CALL_COM; 298 if bitcnt ^= 0 then go to ENDLOOP; /* Don't care if its not dir. */ 299 end; 300 if star_entries(k).type ^= 2 then go to ENDLOOP; 301 if length (rtrim (node)) + length (rtrim (star_names(nind))) + 1 > 168 302 then do; /* try to make it fit */ 303 node = get_shortest_path_ (node); 304 if length (rtrim (node)) + length (rtrim (star_names(nind))) + 1 > 168 305 then do; /* still doesn't fit */ 306 call com_err_ (error_table_$dirlong, ws, "^a", pathname_ (node, star_names (nind))); 307 goto ENDLOOP; 308 end; 309 end; 310 call ws_recursive(pathname_ (node, star_names(nind))); 311 /* check for error condition occuring when starting level is greater than one. 312* e.g. "ws spec>temp>41-5>walk_subtree.pl1 237 1 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.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. absolute_pathname_ 000020 constant entry external dcl 77 ref 109 addr builtin function dcl 77 ref 94 ap 000324 automatic pointer dcl 65 set ref 121* 123 130 130 131 131 133 135 137 137 139 139 142 146* 148 191 arg based char unaligned dcl 38 set ref 123 130 130 131 131 133 135 137 137 139 139 142 148* 191* arp 000326 automatic pointer dcl 65 set ref 168* 171 177 246 247 285* 286* 322 324 bitcnt 000161 automatic fixed bin(24,0) dcl 221 set ref 293* 298 bottom_up_flag 000316 automatic bit(1) initial dcl 60 set ref 60* 139* 260 279 320 change_wdir_ 000034 constant entry external dcl 77 ref 93 180 256 275 315 cleanup 000100 stack reference condition dcl 36 ref 93 245 clng 000305 automatic fixed bin(17,0) dcl 48 set ref 116* 171 171 177 177 268 268 269* code 000162 automatic fixed bin(35,0) dcl 223 in procedure "ws_recursive" set ref 256* 257 269* 270 270 275* 276 285* 286* 287 293* 294 294 294 315* 316 327* code 000315 automatic fixed bin(35,0) dcl 58 in procedure "ws" set ref 93* 100* 103* 104 109* 110 116* 117 121* 122 142* 146* 147 148* 149 162* 180* 185 188* 194* com_err_ 000040 constant entry external dcl 77 ref 188 191 194 306 327 command_line based char unaligned dcl 38 ref 268 cp 000336 automatic pointer dcl 65 set ref 116* 268 cstring 000232 automatic char(168) unaligned dcl 38 set ref 100* 111* 125* 142* 147* 151* 163* 186* 188* 191* cu_$arg_count 000026 constant entry external dcl 77 ref 99 cu_$arg_ptr 000024 constant entry external dcl 77 ref 103 116 121 146 cu_$cp 000042 constant entry external dcl 225 ref 269 cv_dec_check_ 000022 constant entry external dcl 77 ref 148 ep 000100 automatic pointer initial dcl 205 set ref 205* error_table_$badopt 000014 external static fixed bin(35,0) dcl 74 ref 142 error_table_$dirlong 000056 external static fixed bin(35,0) dcl 232 set ref 306* error_table_$no_s_permission 000060 external static fixed bin(35,0) dcl 233 ref 294 error_table_$noarg 000016 external static fixed bin(35,0) dcl 74 ref 100 error_table_$nomatch 000062 external static fixed bin(35,0) dcl 234 ref 287 error_table_$oosw 000064 external static fixed bin(35,0) dcl 235 ref 294 f_option_flag 000322 automatic bit(1) dcl 60 set ref 130* 132* 154 first_level 000307 automatic fixed bin(17,0) initial dcl 48 set ref 48* 154* 160 265 fixed builtin function dcl 77 ref 291 get_shortest_path_ 000044 constant entry external dcl 225 ref 303 get_system_free_area_ 000030 constant entry external dcl 77 ref 168 get_wdir_ 000032 constant entry external dcl 77 ref 95 hcs_$star_ 000050 constant entry external dcl 225 ref 286 hcs_$status_minf 000054 constant entry external dcl 230 ref 293 hphcs_$star_ 000052 constant entry external dcl 229 ref 285 i 000311 automatic fixed bin(17,0) dcl 48 set ref 104* 117* 120* 121* 145* 145 146* 194* ioa_ 000036 constant entry external dcl 77 ref 267 k 000157 automatic fixed bin(17,0) dcl 214 set ref 290* 291 300* last_level 000310 automatic fixed bin(17,0) initial dcl 48 set ref 48* 155* 160 282 level 000313 automatic fixed bin(17,0) initial dcl 48 set ref 48* 251* 251 265 271* 282 314 331* 331 lng 000304 automatic fixed bin(17,0) dcl 48 set ref 121* 123 130 130 131 131 133 135 137 137 139 139 142 146* 148 148 191 191 msff 000320 automatic bit(1) initial dcl 60 set ref 60* 133* 292 nargs 000312 automatic fixed bin(17,0) dcl 48 set ref 99* 100 120 nind 000160 automatic fixed bin(18,0) dcl 219 set ref 291* 293 301 304 306 306 310 310 nindex 0(18) based fixed bin(18,0) array level 2 packed unsigned unaligned dcl 1-27 ref 291 nnames 0(02) based fixed bin(16,0) array level 2 packed unsigned unaligned dcl 1-27 ref 246 322 nnn 000314 automatic fixed bin(35,0) dcl 58 set ref 148* 149 154 155 node 000104 automatic char(168) unaligned dcl 209 set ref 253* 256* 267* 275* 285* 286* 293* 301 303* 303* 304 306* 306* 310* 310* 315* 327* nodeP parameter char unaligned dcl 203 ref 201 253 np 000102 automatic pointer initial dcl 205 set ref 205* null builtin function dcl 77 ref 205 205 243 246 247 322 324 op 000330 automatic pointer dcl 65 set ref 94* 107 original_dir 000106 automatic char(168) unaligned dcl 38 set ref 93* 94 95* 96 180* 186 pathname_ 000046 constant entry external dcl 225 ref 306 306 310 310 privf 000317 automatic bit(1) initial dcl 60 set ref 60* 135* 285 rtrim builtin function dcl 77 ref 301 301 304 304 slng 000306 automatic fixed bin(17,0) dcl 48 set ref 103* 107 107* 109 109 111 sp 000332 automatic pointer dcl 65 set ref 103* 107 107* 109 111 star_entries based structure array level 1 dcl 1-27 ref 247 324 star_entry_count 000163 automatic fixed bin(17,0) dcl 1-14 set ref 246 247 285* 286* 290 322 324 star_entry_ptr 000164 automatic pointer dcl 1-15 set ref 243* 246 247 247 285* 286* 291 300 322 324 324 star_names based char(32) array unaligned dcl 1-37 set ref 246 293* 301 304 306* 306* 310* 310* 322 star_names_ptr 000166 automatic pointer dcl 1-19 set ref 243* 246 246 285* 286* 293 301 304 306 306 310 310 322 322 starting_dir 000160 automatic char(168) unaligned dcl 38 set ref 109* 174* starting_node based char unaligned dcl 38 set ref 107 109* 111 substr builtin function dcl 77 ref 123 tcp 000334 automatic pointer dcl 65 set ref 171* 177 268 269* tem_ based area(1024) dcl 72 ref 171 177 246 247 322 324 tem_com_line based char dcl 72 set ref 171 177 268* trace_flag 000321 automatic bit(1) initial dcl 60 set ref 60* 137* 267 type based fixed bin(2,0) array level 2 in structure "star_entries" packed unsigned unaligned dcl 1-27 in procedure "ws_recursive" ref 300 type 000156 automatic fixed bin(2,0) dcl 212 in procedure "ws_recursive" set ref 293* ws 000010 internal static char(16) initial dcl 38 set ref 188* 191* 194* 306* 327* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. dlng automatic fixed bin(17,0) dcl 214 dp automatic pointer dcl 205 dpath based char unaligned dcl 210 ecount automatic fixed bin(17,0) dcl 214 nl internal static char(1) initial dcl 38 pathname_ 000000 constant entry external dcl 77 star_ALL_ENTRIES internal static fixed bin(2,0) initial dcl 1-111 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 1-114 star_BRANCHES_ONLY internal static fixed bin(2,0) initial dcl 1-110 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 1-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 1-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 1-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 1-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 1-120 star_branch_count automatic fixed bin(17,0) dcl 1-13 star_dir_list_branch based structure array level 1 dcl 1-59 star_link_count automatic fixed bin(17,0) dcl 1-17 star_link_pathname based char unaligned dcl 1-102 star_links based structure array level 1 dcl 1-76 star_linkx automatic fixed bin(17,0) dcl 1-18 star_list_branch based structure array level 1 dcl 1-41 star_list_branch_ptr automatic pointer dcl 1-16 star_list_names based char(32) array unaligned dcl 1-92 star_list_names_ptr automatic pointer dcl 1-20 star_select_sw automatic fixed bin(3,0) dcl 1-21 NAMES DECLARED BY EXPLICIT CONTEXT. CALL_COM 001747 constant label dcl 327 ref 257 276 294 316 CALL_CP 000602 constant label dcl 160 ENDLOOP 000600 constant label dcl 156 in procedure "ws" ref 143 ENDLOOP 001700 constant label dcl 317 in procedure "ws_recursive" ref 298 300 307 ERROR_EXIT1 000663 constant label dcl 188 ref 100 112 142 164 ERROR_EXIT2 000705 constant label dcl 191 ref 126 147 152 ERROR_EXIT3 000737 constant label dcl 194 ref 104 117 122 EXECUTE 001117 constant label dcl 265 ref 320 FREE 001705 constant label dcl 322 ref 279 NEXT 001213 constant label dcl 282 ref 260 RETURN 001770 constant label dcl 331 ref 325 RETURN_TO_ORIGINAL_DIR 000645 constant label dcl 180 SETLEVEL 000514 constant label dcl 145 ref 130 132 SKIP 001702 constant label dcl 320 ref 282 287 walk_subtree 000144 constant entry external dcl 11 ws 000134 constant entry external dcl 11 ws_recursive 000770 constant entry internal dcl 201 ref 174 310 NAMES DECLARED BY CONTEXT OR IMPLICATION. length builtin function ref 301 301 304 304 sum builtin function ref 246 322 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2256 2344 1775 2266 Length 2600 1775 66 220 260 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ws 276 external procedure is an external procedure. on unit on line 93 70 on unit ws_recursive 232 internal procedure enables or reverts conditions. on unit on line 245 64 on unit STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 ws ws STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ws 000106 original_dir ws 000160 starting_dir ws 000232 cstring ws 000304 lng ws 000305 clng ws 000306 slng ws 000307 first_level ws 000310 last_level ws 000311 i ws 000312 nargs ws 000313 level ws 000314 nnn ws 000315 code ws 000316 bottom_up_flag ws 000317 privf ws 000320 msff ws 000321 trace_flag ws 000322 f_option_flag ws 000324 ap ws 000326 arp ws 000330 op ws 000332 sp ws 000334 tcp ws 000336 cp ws ws_recursive 000100 ep ws_recursive 000102 np ws_recursive 000104 node ws_recursive 000156 type ws_recursive 000157 k ws_recursive 000160 nind ws_recursive 000161 bitcnt ws_recursive 000162 code ws_recursive 000163 star_entry_count ws_recursive 000164 star_entry_ptr ws_recursive 000166 star_names_ptr ws_recursive THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc call_int_other_desc return mpfx2 enable ext_entry int_entry int_entry_desc alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ change_wdir_ com_err_ cu_$arg_count cu_$arg_ptr cu_$cp cv_dec_check_ get_shortest_path_ get_system_free_area_ get_wdir_ hcs_$star_ hcs_$status_minf hphcs_$star_ ioa_ pathname_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$dirlong error_table_$no_s_permission error_table_$noarg error_table_$nomatch error_table_$oosw CONSTANTS 000000 aa 524000000250 000001 aa 404000000030 000002 aa 404000000001 000003 aa 526000000040 000004 aa 404000000002 000005 aa 524000000002 000006 aa 524000000004 000007 aa 136 055 136 141 ^-^a 000010 aa 526077777777 000011 aa 404000000021 000012 aa 524000000006 000013 aa 404000000005 000014 aa 524000000020 000015 aa 055 142 165 000 -bu 000016 aa 055 142 146 000 -bf 000017 aa 055 155 163 146 -msf 000020 aa 055 154 164 000 -lt 000021 aa 055 146 164 000 -ft 001774 aa 055 000 000 000 - 000022 aa 526000000000 000023 aa 055 167 144 000 -wd 000024 aa 464000000000 000025 aa 404000000043 000026 aa 526000000250 000030 aa 000000000000 000031 aa 000000000000 000032 aa 077777000043 000033 aa 000001000000 000034 aa 101 122 107 040 ARG 000035 aa 136 144 000 000 ^d 000036 aa 055 142 162 151 -bri 000037 aa 145 146 000 000 ef 000040 aa 055 160 162 151 -pri 000041 aa 166 000 000 000 v 000042 aa 055 154 141 163 -las 000043 aa 164 000 000 000 t 000044 aa 055 146 151 162 -fir 000045 aa 163 164 000 000 st 000046 aa 143 154 145 141 clea 000047 aa 156 165 160 000 nup 000050 aa 055 142 157 164 -bot 000051 aa 164 157 155 137 tom_ 000052 aa 165 160 000 000 up 000053 aa 102 141 144 040 Bad 000054 aa 154 145 166 145 leve 000055 aa 154 040 156 165 l nu 000056 aa 155 142 145 162 mber 000057 aa 056 040 040 136 . ^ 000060 aa 141 000 000 000 a 000061 aa 114 145 166 145 Leve 000062 aa 154 040 156 165 l nu 000063 aa 155 142 145 162 mber 000064 aa 040 155 151 163 mis 000065 aa 163 151 156 147 sing 000066 aa 056 000 000 000 . 000067 aa 114 141 163 164 Last 000070 aa 040 154 145 166 lev 000071 aa 145 154 040 155 el m 000072 aa 165 163 164 040 ust 000073 aa 142 145 040 076 be > 000074 aa 075 040 146 151 = fi 000075 aa 162 163 164 040 rst 000076 aa 154 145 166 145 leve 000077 aa 154 056 000 000 l. 000100 aa 101 162 147 165 Argu 000101 aa 155 145 156 164 ment 000102 aa 040 144 157 145 doe 000103 aa 163 040 156 157 s no 000104 aa 164 040 150 141 t ha 000105 aa 166 145 040 157 ve o 000106 aa 160 164 151 157 ptio 000107 aa 156 040 146 157 n fo 000110 aa 162 155 141 164 rmat 000111 aa 040 141 163 040 as 000112 aa 145 170 160 145 expe 000113 aa 143 164 145 144 cted 000114 aa 056 040 040 136 . ^ 000115 aa 141 000 000 000 a BEGIN PROCEDURE ws PROLOGUE SEQUENCE 000116 aa 6 00341 4401 00 sxl0 pr6|225 STATEMENT 1 ON LINE 48 000117 aa 000001 2360 07 ldq 1,dl 000120 aa 6 00307 7561 00 stq pr6|199 first_level 000121 aa 001747 2360 07 ldq 999,dl 000122 aa 6 00310 7561 00 stq pr6|200 last_level 000123 aa 6 00313 4501 00 stz pr6|203 level STATEMENT 1 ON LINE 60 000124 aa 6 00316 4501 00 stz pr6|206 bottom_up_flag 000125 aa 6 00317 4501 00 stz pr6|207 privf 000126 aa 6 00320 4501 00 stz pr6|208 msff 000127 aa 400000 2350 03 lda 131072,du 000130 aa 6 00321 7551 00 sta pr6|209 trace_flag 000131 aa 6 00341 7201 00 lxl0 pr6|225 000132 aa 000000 7100 10 tra 0,0 MAIN SEQUENCE ENTRY TO ws STATEMENT 1 ON LINE 11 walk_subtree: ws: proc; 000133 da 000226200000 000134 aa 000440 6270 00 eax7 288 000135 aa 7 00034 3521 20 epp2 pr7|28,* 000136 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000137 aa 000000000000 000140 aa 000000000000 000141 aa 777755 7000 04 tsx0 -19,ic 000116 000142 aa 000010 7100 04 tra 8,ic 000152 ENTRY TO walk_subtree STATEMENT 1 ON LINE 11 walk_subtree: ws: proc; 000143 da 000231200000 000144 aa 000440 6270 00 eax7 288 000145 aa 7 00034 3521 20 epp2 pr7|28,* 000146 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000147 aa 000000000000 000150 aa 000000000000 000151 aa 777745 7000 04 tsx0 -27,ic 000116 STATEMENT 1 ON LINE 93 on condition (cleanup) call change_wdir_(original_dir,code); 000152 aa 000007 7260 07 lxl6 7,dl 000153 aa 777673 3520 04 epp2 -69,ic 000046 = 143154145141 000154 aa 0 00717 7001 00 tsx0 pr0|463 enable 000155 aa 000004 7100 04 tra 4,ic 000161 000156 aa 000100000000 000157 aa 000021 7100 04 tra 17,ic 000200 BEGIN CONDITION cleanup.1 ENTRY TO cleanup.1 STATEMENT 1 ON LINE 93 on condition (cleanup) call change_wdir_(original_dir,code); 000160 da 000237200000 000161 aa 000120 6270 00 eax7 80 000162 aa 7 00034 3521 20 epp2 pr7|28,* 000163 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 000164 aa 000000000000 000165 aa 000000000000 000166 aa 6 00040 3735 20 epp7 pr6|32,* 000167 aa 7 00106 3521 00 epp2 pr7|70 original_dir 000170 aa 6 00102 2521 00 spri2 pr6|66 000171 aa 7 00315 3521 00 epp2 pr7|205 code 000172 aa 6 00104 2521 00 spri2 pr6|68 000173 aa 6 00100 6211 00 eax1 pr6|64 000174 aa 010000 4310 07 fld 4096,dl 000175 la 4 00034 3521 20 epp2 pr4|28,* change_wdir_ 000176 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 000177 aa 0 00631 7101 00 tra pr0|409 return END CONDITION cleanup.1 STATEMENT 1 ON LINE 94 op = addr(original_dir); 000200 aa 6 00106 3735 00 epp7 pr6|70 original_dir 000201 aa 6 00330 6535 00 spri7 pr6|216 op STATEMENT 1 ON LINE 95 original_dir = get_wdir_(); 000202 aa 6 00106 3521 00 epp2 pr6|70 original_dir 000203 aa 6 00344 2521 00 spri2 pr6|228 000204 aa 6 00342 6211 00 eax1 pr6|226 000205 aa 004000 4310 07 fld 2048,dl 000206 aa 6 00044 3701 20 epp4 pr6|36,* 000207 la 4 00032 3521 20 epp2 pr4|26,* get_wdir_ 000210 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 96 if original_dir="" then return; 000211 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 000212 aa 6 00106 00 0250 desc9a pr6|70,168 original_dir 000213 aa 001563 00 0000 desc9a 883,0 001774 = 055000000000 000214 aa 0 00631 6001 00 tze pr0|409 return STATEMENT 1 ON LINE 99 call cu_$arg_count(nargs); 000215 aa 6 00312 3521 00 epp2 pr6|202 nargs 000216 aa 6 00344 2521 00 spri2 pr6|228 000217 aa 6 00342 6211 00 eax1 pr6|226 000220 aa 004000 4310 07 fld 2048,dl 000221 aa 6 00044 3701 20 epp4 pr6|36,* 000222 la 4 00026 3521 20 epp2 pr4|22,* cu_$arg_count 000223 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 100 if nargs < 2 then do; 000224 aa 6 00312 2361 00 ldq pr6|202 nargs 000225 aa 000002 1160 07 cmpq 2,dl 000226 aa 000010 6050 04 tpl 8,ic 000236 STATEMENT 2 ON LINE 100 code = error_table_$noarg; 000227 aa 6 00044 3701 20 epp4 pr6|36,* 000230 la 4 00016 2361 20 ldq pr4|14,* error_table_$noarg 000231 aa 6 00315 7561 00 stq pr6|205 code STATEMENT 3 ON LINE 100 cstring = " "; 000232 aa 040 100 100 400 mlr (),(pr),fill(040) 000233 aa 000000 00 0000 desc9a 0,0 000234 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 4 ON LINE 100 go to ERROR_EXIT1; 000235 aa 000426 7100 04 tra 278,ic 000663 STATEMENT 5 ON LINE 100 end; STATEMENT 1 ON LINE 103 call cu_$arg_ptr(1, sp, slng, code); 000236 aa 000001 2360 07 ldq 1,dl 000237 aa 6 00346 7561 00 stq pr6|230 000240 aa 6 00346 3521 00 epp2 pr6|230 000241 aa 6 00352 2521 00 spri2 pr6|234 000242 aa 6 00332 3521 00 epp2 pr6|218 sp 000243 aa 6 00354 2521 00 spri2 pr6|236 000244 aa 6 00306 3521 00 epp2 pr6|198 slng 000245 aa 6 00356 2521 00 spri2 pr6|238 000246 aa 6 00315 3521 00 epp2 pr6|205 code 000247 aa 6 00360 2521 00 spri2 pr6|240 000250 aa 6 00350 6211 00 eax1 pr6|232 000251 aa 020000 4310 07 fld 8192,dl 000252 aa 6 00044 3701 20 epp4 pr6|36,* 000253 la 4 00024 3521 20 epp2 pr4|20,* cu_$arg_ptr 000254 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 104 if code ^= 0 then do; 000255 aa 6 00315 2361 00 ldq pr6|205 code 000256 aa 000004 6000 04 tze 4,ic 000262 STATEMENT 2 ON LINE 104 i = 1; 000257 aa 000001 2360 07 ldq 1,dl 000260 aa 6 00311 7561 00 stq pr6|201 i STATEMENT 3 ON LINE 104 go to ERROR_EXIT3; 000261 aa 000456 7100 04 tra 302,ic 000737 STATEMENT 4 ON LINE 104 end; STATEMENT 1 ON LINE 107 if starting_node = "-wd" then do; 000262 aa 6 00332 3735 20 epp7 pr6|218,* sp 000263 aa 6 00306 7271 00 lxl7 pr6|198 slng 000264 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000265 aa 7 00000 00 0017 desc9a pr7|0,x7 starting_node 000266 aa 777537 00 0003 desc9a -161,3 000023 = 055167144000 000267 aa 000005 6010 04 tnz 5,ic 000274 STATEMENT 2 ON LINE 107 sp = op; 000270 aa 6 00330 3715 20 epp5 pr6|216,* op 000271 aa 6 00332 6515 00 spri5 pr6|218 sp STATEMENT 3 ON LINE 107 slng = 168; 000272 aa 000250 2360 07 ldq 168,dl 000273 aa 6 00306 7561 00 stq pr6|198 slng STATEMENT 4 ON LINE 107 end; STATEMENT 1 ON LINE 109 call absolute_pathname_ (starting_node, starting_dir, code); 000274 aa 6 00306 2361 00 ldq pr6|198 slng 000275 aa 526000 2760 03 orq 175104,du 000276 aa 6 00346 7561 00 stq pr6|230 000277 aa 6 00332 3521 20 epp2 pr6|218,* starting_node 000300 aa 6 00364 2521 00 spri2 pr6|244 000301 aa 6 00160 3521 00 epp2 pr6|112 starting_dir 000302 aa 6 00366 2521 00 spri2 pr6|246 000303 aa 6 00315 3521 00 epp2 pr6|205 code 000304 aa 6 00370 2521 00 spri2 pr6|248 000305 aa 6 00346 3521 00 epp2 pr6|230 000306 aa 6 00372 2521 00 spri2 pr6|250 000307 aa 777517 3520 04 epp2 -177,ic 000026 = 526000000250 000310 aa 6 00374 2521 00 spri2 pr6|252 000311 aa 777514 3520 04 epp2 -180,ic 000025 = 404000000043 000312 aa 6 00376 2521 00 spri2 pr6|254 000313 aa 6 00362 6211 00 eax1 pr6|242 000314 aa 014000 4310 07 fld 6144,dl 000315 aa 6 00044 3701 20 epp4 pr6|36,* 000316 la 4 00020 3521 20 epp2 pr4|16,* absolute_pathname_ 000317 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 110 if code ^= 0 then do; 000320 aa 6 00315 2361 00 ldq pr6|205 code 000321 aa 000007 6000 04 tze 7,ic 000330 STATEMENT 1 ON LINE 111 cstring = starting_node; 000322 aa 6 00332 3735 20 epp7 pr6|218,* sp 000323 aa 6 00306 7271 00 lxl7 pr6|198 slng 000324 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000325 aa 7 00000 00 0017 desc9a pr7|0,x7 starting_node 000326 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 1 ON LINE 112 goto ERROR_EXIT1; 000327 aa 000334 7100 04 tra 220,ic 000663 STATEMENT 1 ON LINE 113 end; STATEMENT 1 ON LINE 116 call cu_$arg_ptr(2, cp, clng, code); 000330 aa 000002 2360 07 ldq 2,dl 000331 aa 6 00346 7561 00 stq pr6|230 000332 aa 6 00346 3521 00 epp2 pr6|230 000333 aa 6 00352 2521 00 spri2 pr6|234 000334 aa 6 00336 3521 00 epp2 pr6|222 cp 000335 aa 6 00354 2521 00 spri2 pr6|236 000336 aa 6 00305 3521 00 epp2 pr6|197 clng 000337 aa 6 00356 2521 00 spri2 pr6|238 000340 aa 6 00315 3521 00 epp2 pr6|205 code 000341 aa 6 00360 2521 00 spri2 pr6|240 000342 aa 6 00350 6211 00 eax1 pr6|232 000343 aa 020000 4310 07 fld 8192,dl 000344 aa 6 00044 3701 20 epp4 pr6|36,* 000345 la 4 00024 3521 20 epp2 pr4|20,* cu_$arg_ptr 000346 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 117 if code ^= 0 then do; 000347 aa 6 00315 2361 00 ldq pr6|205 code 000350 aa 000004 6000 04 tze 4,ic 000354 STATEMENT 2 ON LINE 117 i = 2; 000351 aa 000002 2360 07 ldq 2,dl 000352 aa 6 00311 7561 00 stq pr6|201 i STATEMENT 3 ON LINE 117 go to ERROR_EXIT3; 000353 aa 000364 7100 04 tra 244,ic 000737 STATEMENT 4 ON LINE 117 end; STATEMENT 1 ON LINE 120 do i = 3 to nargs; 000354 aa 6 00312 2361 00 ldq pr6|202 nargs 000355 aa 6 00340 7561 00 stq pr6|224 000356 aa 000003 2360 07 ldq 3,dl 000357 aa 6 00311 7561 00 stq pr6|201 i 000360 aa 6 00311 2361 00 ldq pr6|201 i 000361 aa 6 00340 1161 00 cmpq pr6|224 000362 aa 000220 6054 04 tpnz 144,ic 000602 STATEMENT 1 ON LINE 121 call cu_$arg_ptr(i,ap,lng,code); 000363 aa 6 00311 3521 00 epp2 pr6|201 i 000364 aa 6 00352 2521 00 spri2 pr6|234 000365 aa 6 00324 3521 00 epp2 pr6|212 ap 000366 aa 6 00354 2521 00 spri2 pr6|236 000367 aa 6 00304 3521 00 epp2 pr6|196 lng 000370 aa 6 00356 2521 00 spri2 pr6|238 000371 aa 6 00315 3521 00 epp2 pr6|205 code 000372 aa 6 00360 2521 00 spri2 pr6|240 000373 aa 6 00350 6211 00 eax1 pr6|232 000374 aa 020000 4310 07 fld 8192,dl 000375 aa 6 00044 3701 20 epp4 pr6|36,* 000376 la 4 00024 3521 20 epp2 pr4|20,* cu_$arg_ptr 000377 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 122 if code ^= 0 then go to ERROR_EXIT3; 000400 aa 6 00315 2361 00 ldq pr6|205 code 000401 aa 000336 6010 04 tnz 222,ic 000737 STATEMENT 1 ON LINE 123 if substr(arg,1,1) ^= "-" then /* not an option */ do; 000402 aa 6 00324 3735 20 epp7 pr6|212,* ap 000403 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 000404 aa 7 00000 00 0001 desc9a pr7|0,1 arg 000405 aa 001371 00 0001 desc9a 761,1 001774 = 055000000000 000406 aa 000005 6000 04 tze 5,ic 000413 STATEMENT 1 ON LINE 125 cstring = "Argument does not have option format as expected. ^a"; 000407 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000410 aa 777471 00 0065 desc9a -199,53 000100 = 101162147165 000411 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 1 ON LINE 126 go to ERROR_EXIT2; 000412 aa 000273 7100 04 tra 187,ic 000705 STATEMENT 1 ON LINE 127 end; STATEMENT 1 ON LINE 130 if arg="-ft" | arg="-first" then do; 000413 aa 6 00304 7271 00 lxl7 pr6|196 lng 000414 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000415 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000416 aa 777405 00 0003 desc9a -251,3 000021 = 055146164000 000417 aa 000005 6000 04 tze 5,ic 000424 000420 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000421 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000422 aa 777424 00 0006 desc9a -236,6 000044 = 055146151162 000423 aa 000004 6010 04 tnz 4,ic 000427 STATEMENT 2 ON LINE 130 f_option_flag="1"b; 000424 aa 400000 2350 03 lda 131072,du 000425 aa 6 00322 7551 00 sta pr6|210 f_option_flag STATEMENT 3 ON LINE 130 go to SETLEVEL; 000426 aa 000066 7100 04 tra 54,ic 000514 STATEMENT 4 ON LINE 130 end; STATEMENT 1 ON LINE 131 else if arg="-lt" | arg="-last" then do; 000427 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000430 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000431 aa 777371 00 0003 desc9a -263,3 000020 = 055154164000 000432 aa 000005 6000 04 tze 5,ic 000437 000433 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000434 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000435 aa 777407 00 0005 desc9a -249,5 000042 = 055154141163 000436 aa 000003 6010 04 tnz 3,ic 000441 STATEMENT 2 ON LINE 132 f_option_flag="0"b; 000437 aa 6 00322 4501 00 stz pr6|210 f_option_flag STATEMENT 3 ON LINE 132 go to SETLEVEL; 000440 aa 000054 7100 04 tra 44,ic 000514 STATEMENT 4 ON LINE 132 end; STATEMENT 1 ON LINE 133 else if arg="-msf" then msff = "1"b; 000441 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000442 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000443 aa 777356 00 0004 desc9a -274,4 000017 = 055155163146 000444 aa 000004 6010 04 tnz 4,ic 000450 000445 aa 400000 2350 03 lda 131072,du 000446 aa 6 00320 7551 00 sta pr6|208 msff 000447 aa 000131 7100 04 tra 89,ic 000600 STATEMENT 1 ON LINE 135 else if arg = "-priv" then privf = "1"b; 000450 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000451 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000452 aa 777370 00 0005 desc9a -264,5 000040 = 055160162151 000453 aa 000004 6010 04 tnz 4,ic 000457 000454 aa 400000 2350 03 lda 131072,du 000455 aa 6 00317 7551 00 sta pr6|207 privf 000456 aa 000122 7100 04 tra 82,ic 000600 STATEMENT 1 ON LINE 137 else if arg="-bf" | arg="-brief" then trace_flag="0"b; 000457 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000460 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000461 aa 777337 00 0003 desc9a -289,3 000016 = 055142146000 000462 aa 000005 6000 04 tze 5,ic 000467 000463 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000464 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000465 aa 777353 00 0006 desc9a -277,6 000036 = 055142162151 000466 aa 000003 6010 04 tnz 3,ic 000471 000467 aa 6 00321 4501 00 stz pr6|209 trace_flag 000470 aa 000110 7100 04 tra 72,ic 000600 STATEMENT 1 ON LINE 139 else if arg="-bu" | arg = "-bottom_up" then bottom_up_flag = "1"b; 000471 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000472 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000473 aa 777324 00 0003 desc9a -300,3 000015 = 055142165000 000474 aa 000005 6000 04 tze 5,ic 000501 000475 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 000476 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000477 aa 777353 00 0012 desc9a -277,10 000050 = 055142157164 000500 aa 000004 6010 04 tnz 4,ic 000504 000501 aa 400000 2350 03 lda 131072,du 000502 aa 6 00316 7551 00 sta pr6|206 bottom_up_flag 000503 aa 000075 7100 04 tra 61,ic 000600 STATEMENT 1 ON LINE 141 else do; STATEMENT 2 ON LINE 142 code = error_table_$badopt; 000504 aa 6 00044 3701 20 epp4 pr6|36,* 000505 la 4 00014 2361 20 ldq pr4|12,* error_table_$badopt 000506 aa 6 00315 7561 00 stq pr6|205 code STATEMENT 3 ON LINE 142 cstring= arg; 000507 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000510 aa 7 00000 00 0017 desc9a pr7|0,x7 arg 000511 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 4 ON LINE 142 go to ERROR_EXIT1; 000512 aa 000151 7100 04 tra 105,ic 000663 STATEMENT 5 ON LINE 142 end; STATEMENT 1 ON LINE 143 go to ENDLOOP; 000513 aa 000065 7100 04 tra 53,ic 000600 STATEMENT 1 ON LINE 145 SETLEVEL: i=i+1; 000514 aa 6 00311 0541 00 aos pr6|201 i STATEMENT 1 ON LINE 146 call cu_$arg_ptr(i,ap,lng,code); 000515 aa 6 00311 3521 00 epp2 pr6|201 i 000516 aa 6 00352 2521 00 spri2 pr6|234 000517 aa 6 00324 3521 00 epp2 pr6|212 ap 000520 aa 6 00354 2521 00 spri2 pr6|236 000521 aa 6 00304 3521 00 epp2 pr6|196 lng 000522 aa 6 00356 2521 00 spri2 pr6|238 000523 aa 6 00315 3521 00 epp2 pr6|205 code 000524 aa 6 00360 2521 00 spri2 pr6|240 000525 aa 6 00350 6211 00 eax1 pr6|232 000526 aa 020000 4310 07 fld 8192,dl 000527 aa 6 00044 3701 20 epp4 pr6|36,* 000530 la 4 00024 3521 20 epp2 pr4|20,* cu_$arg_ptr 000531 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 147 if code ^= 0 then do; 000532 aa 6 00315 2361 00 ldq pr6|205 code 000533 aa 000005 6000 04 tze 5,ic 000540 STATEMENT 2 ON LINE 147 cstring = "Level number missing."; 000534 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000535 aa 777325 00 0025 desc9a -299,21 000061 = 114145166145 000536 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 3 ON LINE 147 go to ERROR_EXIT2; 000537 aa 000146 7100 04 tra 102,ic 000705 STATEMENT 4 ON LINE 147 end; STATEMENT 1 ON LINE 148 nnn = cv_dec_check_(arg, code); 000540 aa 6 00304 2361 00 ldq pr6|196 lng 000541 aa 526000 2760 03 orq 175104,du 000542 aa 6 00346 7561 00 stq pr6|230 000543 aa 6 00324 3521 20 epp2 pr6|212,* arg 000544 aa 6 00364 2521 00 spri2 pr6|244 000545 aa 6 00315 3521 00 epp2 pr6|205 code 000546 aa 6 00366 2521 00 spri2 pr6|246 000547 aa 6 00314 3521 00 epp2 pr6|204 nnn 000550 aa 6 00370 2521 00 spri2 pr6|248 000551 aa 6 00346 3521 00 epp2 pr6|230 000552 aa 6 00372 2521 00 spri2 pr6|250 000553 aa 777252 3520 04 epp2 -342,ic 000025 = 404000000043 000554 aa 6 00374 2521 00 spri2 pr6|252 000555 aa 6 00376 2521 00 spri2 pr6|254 000556 aa 6 00362 6211 00 eax1 pr6|242 000557 aa 014000 4310 07 fld 6144,dl 000560 aa 6 00044 3701 20 epp4 pr6|36,* 000561 la 4 00022 3521 20 epp2 pr4|18,* cv_dec_check_ 000562 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 149 if code ^= 0 | nnn <= 0 then do; 000563 aa 6 00315 2361 00 ldq pr6|205 code 000564 aa 000003 6010 04 tnz 3,ic 000567 000565 aa 6 00314 2361 00 ldq pr6|204 nnn 000566 aa 000005 6054 04 tpnz 5,ic 000573 STATEMENT 1 ON LINE 151 cstring = "Bad level number. ^a"; 000567 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000570 aa 777264 00 0025 desc9a -332,21 000053 = 102141144040 000571 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 1 ON LINE 152 go to ERROR_EXIT2; 000572 aa 000113 7100 04 tra 75,ic 000705 STATEMENT 1 ON LINE 153 end; STATEMENT 1 ON LINE 154 if f_option_flag then first_level = nnn; 000573 aa 6 00322 2351 00 lda pr6|210 f_option_flag 000574 aa 000003 6000 04 tze 3,ic 000577 000575 aa 6 00307 7561 00 stq pr6|199 first_level 000576 aa 000002 7100 04 tra 2,ic 000600 STATEMENT 1 ON LINE 155 else last_level = nnn; 000577 aa 6 00310 7561 00 stq pr6|200 last_level STATEMENT 1 ON LINE 156 ENDLOOP: end; 000600 aa 6 00311 0541 00 aos pr6|201 i 000601 aa 777557 7100 04 tra -145,ic 000360 STATEMENT 1 ON LINE 160 CALL_CP: if last_level < first_level then do; 000602 aa 6 00310 2361 00 ldq pr6|200 last_level 000603 aa 6 00307 1161 00 cmpq pr6|199 first_level 000604 aa 000006 6050 04 tpl 6,ic 000612 STATEMENT 1 ON LINE 162 code = 0; 000605 aa 6 00315 4501 00 stz pr6|205 code STATEMENT 1 ON LINE 163 cstring = "Last level must be >= first level."; 000606 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000607 aa 777261 00 0042 desc9a -335,34 000067 = 114141163164 000610 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 1 ON LINE 164 go to ERROR_EXIT1; 000611 aa 000052 7100 04 tra 42,ic 000663 STATEMENT 1 ON LINE 165 end; STATEMENT 1 ON LINE 168 arp = get_system_free_area_(); 000612 aa 6 00326 3521 00 epp2 pr6|214 arp 000613 aa 6 00344 2521 00 spri2 pr6|228 000614 aa 6 00342 6211 00 eax1 pr6|226 000615 aa 004000 4310 07 fld 2048,dl 000616 aa 6 00044 3701 20 epp4 pr6|36,* 000617 la 4 00030 3521 20 epp2 pr4|24,* get_system_free_area_ 000620 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 171 allocate tem_com_line in(tem_) set(tcp); 000621 aa 6 00305 2361 00 ldq pr6|197 clng 000622 aa 000003 0760 07 adq 3,dl 000623 aa 000002 7320 00 qrs 2 000624 aa 6 00326 3521 20 epp2 pr6|214,* tem_ 000625 aa 0 01402 7001 00 tsx0 pr0|770 alloc_based 000626 aa 777773 7100 04 tra -5,ic 000621 000627 aa 6 00334 2521 00 spri2 pr6|220 tcp STATEMENT 1 ON LINE 174 call ws_recursive(starting_dir); 000630 aa 6 00160 3521 00 epp2 pr6|112 starting_dir 000631 aa 6 00352 2521 00 spri2 pr6|234 000632 aa 777174 3520 04 epp2 -388,ic 000026 = 526000000250 000633 aa 6 00356 2521 00 spri2 pr6|238 000634 aa 6 00350 6211 00 eax1 pr6|232 000635 aa 004000 4310 07 fld 2048,dl 000636 aa 000132 3520 04 epp2 90,ic 000770 = 000360627000 000637 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 177 free tem_com_line in(tem_); 000640 aa 6 00305 2361 00 ldq pr6|197 clng 000641 aa 000003 0760 07 adq 3,dl 000642 aa 000002 7320 00 qrs 2 000643 aa 6 00334 3715 00 epp5 pr6|220 tcp 000644 aa 0 01404 7001 00 tsx0 pr0|772 free_based STATEMENT 1 ON LINE 180 RETURN_TO_ORIGINAL_DIR: /* The real work has been done. Now make the user's working directory be the same as when command was invoked, then return */ call change_wdir_(original_dir,code); 000645 aa 6 00106 3521 00 epp2 pr6|70 original_dir 000646 aa 6 00352 2521 00 spri2 pr6|234 000647 aa 6 00315 3521 00 epp2 pr6|205 code 000650 aa 6 00354 2521 00 spri2 pr6|236 000651 aa 6 00350 6211 00 eax1 pr6|232 000652 aa 010000 4310 07 fld 4096,dl 000653 aa 6 00044 3701 20 epp4 pr6|36,* 000654 la 4 00034 3521 20 epp2 pr4|28,* change_wdir_ 000655 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 185 if code = 0 then return; 000656 aa 6 00315 2361 00 ldq pr6|205 code 000657 aa 0 00631 6001 00 tze pr0|409 return STATEMENT 1 ON LINE 186 cstring = original_dir; 000660 aa 000 100 100 500 mlr (pr),(pr),fill(000) 000661 aa 6 00106 00 0250 desc9a pr6|70,168 original_dir 000662 aa 6 00232 00 0250 desc9a pr6|154,168 cstring STATEMENT 1 ON LINE 188 ERROR_EXIT1: call com_err_(code, ws, cstring); 000663 aa 6 00315 3521 00 epp2 pr6|205 code 000664 aa 6 00364 2521 00 spri2 pr6|244 000665 aa 6 00044 3701 20 epp4 pr6|36,* 000666 ia 4 00010 3521 00 epp2 pr4|8 ws 000667 aa 6 00366 2521 00 spri2 pr6|246 000670 aa 6 00232 3521 00 epp2 pr6|154 cstring 000671 aa 6 00370 2521 00 spri2 pr6|248 000672 aa 777133 3520 04 epp2 -421,ic 000025 = 404000000043 000673 aa 6 00372 2521 00 spri2 pr6|250 000674 aa 777120 3520 04 epp2 -432,ic 000014 = 524000000020 000675 aa 6 00374 2521 00 spri2 pr6|252 000676 aa 777130 3520 04 epp2 -424,ic 000026 = 526000000250 000677 aa 6 00376 2521 00 spri2 pr6|254 000700 aa 6 00362 6211 00 eax1 pr6|242 000701 aa 014000 4310 07 fld 6144,dl 000702 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 000703 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 189 return; 000704 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 191 ERROR_EXIT2: call com_err_(0, ws, cstring, arg); 000705 aa 6 00304 2361 00 ldq pr6|196 lng 000706 aa 526000 2760 03 orq 175104,du 000707 aa 6 00346 7561 00 stq pr6|230 000710 aa 6 00347 4501 00 stz pr6|231 000711 aa 6 00347 3521 00 epp2 pr6|231 000712 aa 6 00402 2521 00 spri2 pr6|258 000713 aa 6 00044 3701 20 epp4 pr6|36,* 000714 ia 4 00010 3521 00 epp2 pr4|8 ws 000715 aa 6 00404 2521 00 spri2 pr6|260 000716 aa 6 00232 3521 00 epp2 pr6|154 cstring 000717 aa 6 00406 2521 00 spri2 pr6|262 000720 aa 6 00324 3521 20 epp2 pr6|212,* arg 000721 aa 6 00410 2521 00 spri2 pr6|264 000722 aa 777071 3520 04 epp2 -455,ic 000013 = 404000000005 000723 aa 6 00412 2521 00 spri2 pr6|266 000724 aa 777070 3520 04 epp2 -456,ic 000014 = 524000000020 000725 aa 6 00414 2521 00 spri2 pr6|268 000726 aa 777100 3520 04 epp2 -448,ic 000026 = 526000000250 000727 aa 6 00416 2521 00 spri2 pr6|270 000730 aa 6 00346 3521 00 epp2 pr6|230 000731 aa 6 00420 2521 00 spri2 pr6|272 000732 aa 6 00400 6211 00 eax1 pr6|256 000733 aa 020000 4310 07 fld 8192,dl 000734 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 000735 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 192 return; 000736 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 194 ERROR_EXIT3: call com_err_(code, ws, "ARG ^d", i); 000737 aa 777075 2370 04 ldaq -451,ic 000034 = 101122107040 136144000000 000740 aa 6 00422 7571 00 staq pr6|274 000741 aa 6 00315 3521 00 epp2 pr6|205 code 000742 aa 6 00402 2521 00 spri2 pr6|258 000743 aa 6 00044 3701 20 epp4 pr6|36,* 000744 ia 4 00010 3521 00 epp2 pr4|8 ws 000745 aa 6 00404 2521 00 spri2 pr6|260 000746 aa 6 00422 3521 00 epp2 pr6|274 000747 aa 6 00406 2521 00 spri2 pr6|262 000750 aa 6 00311 3521 00 epp2 pr6|201 i 000751 aa 6 00410 2521 00 spri2 pr6|264 000752 aa 777053 3520 04 epp2 -469,ic 000025 = 404000000043 000753 aa 6 00412 2521 00 spri2 pr6|266 000754 aa 777040 3520 04 epp2 -480,ic 000014 = 524000000020 000755 aa 6 00414 2521 00 spri2 pr6|268 000756 aa 777034 3520 04 epp2 -484,ic 000012 = 524000000006 000757 aa 6 00416 2521 00 spri2 pr6|270 000760 aa 777031 3520 04 epp2 -487,ic 000011 = 404000000021 000761 aa 6 00420 2521 00 spri2 pr6|272 000762 aa 6 00400 6211 00 eax1 pr6|256 000763 aa 020000 4310 07 fld 8192,dl 000764 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 000765 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 195 return; 000766 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 339 end walk_subtree; BEGIN PROCEDURE ws_recursive ENTRY TO ws_recursive STATEMENT 1 ON LINE 201 ws_recursive: proc(nodeP); 000767 da 000246200000 000770 aa 000360 6270 00 eax7 240 000771 aa 7 00034 3521 20 epp2 pr7|28,* 000772 aa 2 01050 2721 00 tsp2 pr2|552 int_entry_desc 000773 aa 000002000000 000774 aa 000000000000 000775 aa 6 00042 3735 20 epp7 pr6|34,* 000776 aa 7 00000 2361 20 ldq pr7|0,* 000777 aa 000002 6040 04 tmi 2,ic 001001 001000 aa 777777 3760 07 anq 262143,dl 001001 aa 0 00250 3761 00 anq pr0|168 = 000077777777 001002 aa 6 00204 7561 00 stq pr6|132 STATEMENT 1 ON LINE 205 001003 aa 777027 2370 04 ldaq -489,ic 000032 = 077777000043 000001000000 001004 aa 6 00100 7571 00 staq pr6|64 ep 001005 aa 6 00102 7571 00 staq pr6|66 np STATEMENT 1 ON LINE 243 star_entry_ptr, star_names_ptr = null; 001006 aa 777024 3714 24 epp5 -492,ic* 001007 aa 6 00164 6515 00 spri5 pr6|116 star_entry_ptr 001010 aa 6 00166 6515 00 spri5 pr6|118 star_names_ptr STATEMENT 1 ON LINE 245 on condition(cleanup) begin; 001011 aa 000007 7260 07 lxl6 7,dl 001012 aa 777034 3520 04 epp2 -484,ic 000046 = 143154145141 001013 aa 0 00717 7001 00 tsx0 pr0|463 enable 001014 aa 000004 7100 04 tra 4,ic 001020 001015 aa 000170000000 001016 aa 000053 7100 04 tra 43,ic 001071 BEGIN CONDITION cleanup.2 ENTRY TO cleanup.2 STATEMENT 1 ON LINE 245 on condition(cleanup) begin; 001017 da 000254200000 001020 aa 000100 6270 00 eax7 64 001021 aa 7 00034 3521 20 epp2 pr7|28,* 001022 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 001023 aa 000000000000 001024 aa 000000000000 STATEMENT 1 ON LINE 246 if star_names_ptr ^= null then free star_names in (tem_); 001025 aa 6 00040 3735 20 epp7 pr6|32,* 001026 aa 7 00166 2371 00 ldaq pr7|118 star_names_ptr 001027 aa 777003 6770 04 eraq -509,ic 000032 = 077777000043 000001000000 001030 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001031 aa 000030 6000 04 tze 24,ic 001061 001032 aa 776776 2370 04 ldaq -514,ic 000030 = 000000000000 000000000000 001033 aa 7 00202 7571 00 staq pr7|130 001034 aa 000001 2360 07 ldq 1,dl 001035 aa 7 00177 7561 00 stq pr7|127 001036 aa 6 00040 3735 20 epp7 pr6|32,* 001037 aa 7 00177 7271 00 lxl7 pr7|127 001040 aa 7 00164 3715 20 epp5 pr7|116,* star_entry_ptr 001041 aa 5 77777 2351 17 lda pr5|-1,7 star_entries.nnames 001042 aa 000002 7350 00 als 2 001043 aa 000070 7730 00 lrl 56 001044 aa 000044 7770 00 llr 36 001045 aa 000044 7330 00 lrs 36 001046 aa 7 00202 0771 00 adaq pr7|130 001047 aa 7 00202 7571 00 staq pr7|130 001050 aa 7 00177 2361 00 ldq pr7|127 001051 aa 7 00177 0541 00 aos pr7|127 001052 aa 7 00163 1161 00 cmpq pr7|115 star_entry_count 001053 aa 777763 6040 04 tmi -13,ic 001036 001054 aa 000010 2360 07 ldq 8,dl 001055 aa 7 00202 3521 00 epp2 pr7|130 001056 aa 0 00671 7001 00 tsx0 pr0|441 mpfx2 001057 aa 7 00166 3715 00 epp5 pr7|118 star_names_ptr 001060 aa 0 01404 7001 00 tsx0 pr0|772 free_based STATEMENT 1 ON LINE 247 if star_entry_ptr ^= null then free star_entries in (tem_); 001061 aa 6 00040 3735 20 epp7 pr6|32,* 001062 aa 7 00164 2371 00 ldaq pr7|116 star_entry_ptr 001063 aa 776747 6770 04 eraq -537,ic 000032 = 077777000043 000001000000 001064 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001065 aa 000003 6000 04 tze 3,ic 001070 001066 aa 7 00164 3715 00 epp5 pr7|116 star_entry_ptr 001067 aa 0 01404 7001 00 tsx0 pr0|772 free_based STATEMENT 1 ON LINE 248 end; 001070 aa 0 00631 7101 00 tra pr0|409 return END CONDITION cleanup.2 STATEMENT 1 ON LINE 251 level=level+1; 001071 aa 6 00040 3735 20 epp7 pr6|32,* 001072 aa 7 00313 0541 00 aos pr7|203 level STATEMENT 1 ON LINE 253 node = nodeP; 001073 aa 6 00032 3715 20 epp5 pr6|26,* 001074 aa 5 00002 3535 20 epp3 pr5|2,* 001075 aa 6 00204 2351 00 lda pr6|132 001076 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 001077 aa 3 00000 00 0005 desc9a pr3|0,al nodeP 001100 aa 6 00104 00 0250 desc9a pr6|68,168 node STATEMENT 1 ON LINE 256 call change_wdir_(node, code); 001101 aa 6 00104 3521 00 epp2 pr6|68 node 001102 aa 6 00212 2521 00 spri2 pr6|138 001103 aa 6 00162 3521 00 epp2 pr6|114 code 001104 aa 6 00214 2521 00 spri2 pr6|140 001105 aa 6 00210 6211 00 eax1 pr6|136 001106 aa 010000 4310 07 fld 4096,dl 001107 aa 6 00044 3701 20 epp4 pr6|36,* 001110 la 4 00034 3521 20 epp2 pr4|28,* change_wdir_ 001111 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 257 if code ^= 0 then go to CALL_COM; 001112 aa 6 00162 2361 00 ldq pr6|114 code 001113 aa 000634 6010 04 tnz 412,ic 001747 STATEMENT 1 ON LINE 260 if bottom_up_flag then go to NEXT; 001114 aa 6 00040 3735 20 epp7 pr6|32,* 001115 aa 7 00316 2351 00 lda pr7|206 bottom_up_flag 001116 aa 000075 6010 04 tnz 61,ic 001213 STATEMENT 1 ON LINE 265 EXECUTE: if level>=first_level then do; 001117 aa 6 00040 3735 20 epp7 pr6|32,* 001120 aa 7 00313 2361 00 ldq pr7|203 level 001121 aa 7 00307 1161 00 cmpq pr7|199 first_level 001122 aa 000066 6040 04 tmi 54,ic 001210 STATEMENT 1 ON LINE 267 if trace_flag then call ioa_("^-^a",node); 001123 aa 7 00321 2351 00 lda pr7|209 trace_flag 001124 aa 000020 6000 04 tze 16,ic 001144 001125 aa 776662 2350 04 lda -590,ic 000007 = 136055136141 001126 aa 6 00205 7551 00 sta pr6|133 001127 aa 6 00205 3521 00 epp2 pr6|133 001130 aa 6 00220 2521 00 spri2 pr6|144 001131 aa 6 00104 3521 00 epp2 pr6|68 node 001132 aa 6 00222 2521 00 spri2 pr6|146 001133 aa 776653 3520 04 epp2 -597,ic 000006 = 524000000004 001134 aa 6 00224 2521 00 spri2 pr6|148 001135 aa 776671 3520 04 epp2 -583,ic 000026 = 526000000250 001136 aa 6 00226 2521 00 spri2 pr6|150 001137 aa 6 00216 6211 00 eax1 pr6|142 001140 aa 010000 4310 07 fld 4096,dl 001141 aa 6 00044 3701 20 epp4 pr6|36,* 001142 la 4 00036 3521 20 epp2 pr4|30,* ioa_ 001143 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 268 tem_com_line=command_line; 001144 aa 6 00040 3735 20 epp7 pr6|32,* 001145 aa 7 00334 3715 20 epp5 pr7|220,* tcp 001146 aa 7 00336 3535 20 epp3 pr7|222,* cp 001147 aa 7 00305 7271 00 lxl7 pr7|197 clng 001150 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001151 aa 3 00000 00 0017 desc9a pr3|0,x7 command_line 001152 aa 5 00000 00 0017 desc9a pr5|0,x7 tem_com_line STATEMENT 1 ON LINE 269 call cu_$cp(tcp,clng,code); 001153 aa 7 00334 3521 00 epp2 pr7|220 tcp 001154 aa 6 00220 2521 00 spri2 pr6|144 001155 aa 7 00305 3521 00 epp2 pr7|197 clng 001156 aa 6 00222 2521 00 spri2 pr6|146 001157 aa 6 00162 3521 00 epp2 pr6|114 code 001160 aa 6 00224 2521 00 spri2 pr6|148 001161 aa 6 00216 6211 00 eax1 pr6|142 001162 aa 014000 4310 07 fld 6144,dl 001163 aa 6 00044 3701 20 epp4 pr6|36,* 001164 la 4 00042 3521 20 epp2 pr4|34,* cu_$cp 001165 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 270 if code^=0 then if code^=100 then do; 001166 aa 6 00162 2361 00 ldq pr6|114 code 001167 aa 000006 6000 04 tze 6,ic 001175 001170 aa 000144 1160 07 cmpq 100,dl 001171 aa 000004 6000 04 tze 4,ic 001175 STATEMENT 1 ON LINE 271 level = 0; 001172 aa 6 00040 3735 20 epp7 pr6|32,* 001173 aa 7 00313 4501 00 stz pr7|203 level STATEMENT 1 ON LINE 272 return; 001174 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 273 end; STATEMENT 1 ON LINE 275 call change_wdir_(node,code); 001175 aa 6 00104 3521 00 epp2 pr6|68 node 001176 aa 6 00212 2521 00 spri2 pr6|138 001177 aa 6 00162 3521 00 epp2 pr6|114 code 001200 aa 6 00214 2521 00 spri2 pr6|140 001201 aa 6 00210 6211 00 eax1 pr6|136 001202 aa 010000 4310 07 fld 4096,dl 001203 aa 6 00044 3701 20 epp4 pr6|36,* 001204 la 4 00034 3521 20 epp2 pr4|28,* change_wdir_ 001205 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 276 if code^=0 then go to CALL_COM; 001206 aa 6 00162 2361 00 ldq pr6|114 code 001207 aa 000540 6010 04 tnz 352,ic 001747 STATEMENT 1 ON LINE 278 end; STATEMENT 1 ON LINE 279 if bottom_up_flag then go to FREE; 001210 aa 6 00040 3735 20 epp7 pr6|32,* 001211 aa 7 00316 2351 00 lda pr7|206 bottom_up_flag 001212 aa 000473 6010 04 tnz 315,ic 001705 STATEMENT 1 ON LINE 282 NEXT: if level >= last_level then go to SKIP; 001213 aa 7 00313 2361 00 ldq pr7|203 level 001214 aa 7 00310 1161 00 cmpq pr7|200 last_level 001215 aa 000465 6050 04 tpl 309,ic 001702 STATEMENT 1 ON LINE 285 if privf then call hphcs_$star_(node,"**",2,arp,star_entry_count,star_entry_ptr,star_names_ptr,code); 001216 aa 7 00317 2351 00 lda pr7|207 privf 001217 aa 000051 6000 04 tze 41,ic 001270 001220 aa 052052 2350 03 lda 21546,du 001221 aa 6 00205 7551 00 sta pr6|133 001222 aa 000002 2360 07 ldq 2,dl 001223 aa 6 00230 7561 00 stq pr6|152 001224 aa 6 00104 3521 00 epp2 pr6|68 node 001225 aa 6 00234 2521 00 spri2 pr6|156 001226 aa 6 00205 3521 00 epp2 pr6|133 001227 aa 6 00236 2521 00 spri2 pr6|158 001230 aa 6 00230 3521 00 epp2 pr6|152 001231 aa 6 00240 2521 00 spri2 pr6|160 001232 aa 7 00326 3521 00 epp2 pr7|214 arp 001233 aa 6 00242 2521 00 spri2 pr6|162 001234 aa 6 00163 3521 00 epp2 pr6|115 star_entry_count 001235 aa 6 00244 2521 00 spri2 pr6|164 001236 aa 6 00164 3521 00 epp2 pr6|116 star_entry_ptr 001237 aa 6 00246 2521 00 spri2 pr6|166 001240 aa 6 00166 3521 00 epp2 pr6|118 star_names_ptr 001241 aa 6 00250 2521 00 spri2 pr6|168 001242 aa 6 00162 3521 00 epp2 pr6|114 code 001243 aa 6 00252 2521 00 spri2 pr6|170 001244 aa 776562 3520 04 epp2 -654,ic 000026 = 526000000250 001245 aa 6 00254 2521 00 spri2 pr6|172 001246 aa 776537 3520 04 epp2 -673,ic 000005 = 524000000002 001247 aa 6 00256 2521 00 spri2 pr6|174 001250 aa 776534 3520 04 epp2 -676,ic 000004 = 404000000002 001251 aa 6 00260 2521 00 spri2 pr6|176 001252 aa 776552 3520 04 epp2 -662,ic 000024 = 464000000000 001253 aa 6 00262 2521 00 spri2 pr6|178 001254 aa 6 00266 2521 00 spri2 pr6|182 001255 aa 6 00270 2521 00 spri2 pr6|184 001256 aa 776533 3520 04 epp2 -677,ic 000011 = 404000000021 001257 aa 6 00264 2521 00 spri2 pr6|180 001260 aa 776545 3520 04 epp2 -667,ic 000025 = 404000000043 001261 aa 6 00272 2521 00 spri2 pr6|186 001262 aa 6 00232 6211 00 eax1 pr6|154 001263 aa 040000 4310 07 fld 16384,dl 001264 aa 6 00044 3701 20 epp4 pr6|36,* 001265 la 4 00052 3521 20 epp2 pr4|42,* hphcs_$star_ 001266 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 001267 aa 000050 7100 04 tra 40,ic 001337 STATEMENT 1 ON LINE 286 else call hcs_$star_(node,"**",2,arp,star_entry_count,star_entry_ptr,star_names_ptr,code); 001270 aa 052052 2350 03 lda 21546,du 001271 aa 6 00230 7551 00 sta pr6|152 001272 aa 000002 2360 07 ldq 2,dl 001273 aa 6 00205 7561 00 stq pr6|133 001274 aa 6 00104 3521 00 epp2 pr6|68 node 001275 aa 6 00234 2521 00 spri2 pr6|156 001276 aa 6 00230 3521 00 epp2 pr6|152 001277 aa 6 00236 2521 00 spri2 pr6|158 001300 aa 6 00205 3521 00 epp2 pr6|133 001301 aa 6 00240 2521 00 spri2 pr6|160 001302 aa 7 00326 3521 00 epp2 pr7|214 arp 001303 aa 6 00242 2521 00 spri2 pr6|162 001304 aa 6 00163 3521 00 epp2 pr6|115 star_entry_count 001305 aa 6 00244 2521 00 spri2 pr6|164 001306 aa 6 00164 3521 00 epp2 pr6|116 star_entry_ptr 001307 aa 6 00246 2521 00 spri2 pr6|166 001310 aa 6 00166 3521 00 epp2 pr6|118 star_names_ptr 001311 aa 6 00250 2521 00 spri2 pr6|168 001312 aa 6 00162 3521 00 epp2 pr6|114 code 001313 aa 6 00252 2521 00 spri2 pr6|170 001314 aa 776512 3520 04 epp2 -694,ic 000026 = 526000000250 001315 aa 6 00254 2521 00 spri2 pr6|172 001316 aa 776467 3520 04 epp2 -713,ic 000005 = 524000000002 001317 aa 6 00256 2521 00 spri2 pr6|174 001320 aa 776464 3520 04 epp2 -716,ic 000004 = 404000000002 001321 aa 6 00260 2521 00 spri2 pr6|176 001322 aa 776502 3520 04 epp2 -702,ic 000024 = 464000000000 001323 aa 6 00262 2521 00 spri2 pr6|178 001324 aa 6 00266 2521 00 spri2 pr6|182 001325 aa 6 00270 2521 00 spri2 pr6|184 001326 aa 776463 3520 04 epp2 -717,ic 000011 = 404000000021 001327 aa 6 00264 2521 00 spri2 pr6|180 001330 aa 776475 3520 04 epp2 -707,ic 000025 = 404000000043 001331 aa 6 00272 2521 00 spri2 pr6|186 001332 aa 6 00232 6211 00 eax1 pr6|154 001333 aa 040000 4310 07 fld 16384,dl 001334 aa 6 00044 3701 20 epp4 pr6|36,* 001335 la 4 00050 3521 20 epp2 pr4|40,* hcs_$star_ 001336 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 287 if code=error_table_$nomatch then go to SKIP; 001337 aa 6 00162 2361 00 ldq pr6|114 code 001340 aa 6 00044 3701 20 epp4 pr6|36,* 001341 la 4 00062 1161 20 cmpq pr4|50,* error_table_$nomatch 001342 aa 000340 6000 04 tze 224,ic 001702 STATEMENT 1 ON LINE 290 do k=1 to star_entry_count; 001343 aa 6 00163 2361 00 ldq pr6|115 star_entry_count 001344 aa 6 00176 7561 00 stq pr6|126 001345 aa 000001 2360 07 ldq 1,dl 001346 aa 6 00157 7561 00 stq pr6|111 k 001347 aa 000000 0110 03 nop 0,du 001350 aa 6 00157 2361 00 ldq pr6|111 k 001351 aa 6 00176 1161 00 cmpq pr6|126 001352 aa 000330 6054 04 tpnz 216,ic 001702 STATEMENT 1 ON LINE 291 nind = fixed(star_entries(k).nindex); 001353 aa 6 00164 3735 20 epp7 pr6|116,* star_entry_ptr 001354 aa 7 77777 2361 06 ldq pr7|-1,ql star_entries.nindex 001355 aa 0 00374 3771 00 anaq pr0|252 = 000000000000 000000777777 001356 aa 6 00160 7561 00 stq pr6|112 nind STATEMENT 1 ON LINE 292 if ^msff then do; 001357 aa 6 00040 3715 20 epp5 pr6|32,* 001360 aa 5 00320 2351 00 lda pr5|208 msff 001361 aa 000055 6010 04 tnz 45,ic 001436 STATEMENT 1 ON LINE 293 call hcs_$status_minf(node,star_names(nind),0,type,bitcnt,code); 001362 aa 776421 2360 04 ldq -751,ic 000003 = 526000000040 001363 aa 6 00205 7561 00 stq pr6|133 001364 aa 6 00160 2361 00 ldq pr6|112 nind 001365 aa 000003 7360 00 qls 3 001366 aa 6 00230 4501 00 stz pr6|152 001367 aa 6 00104 3521 00 epp2 pr6|68 node 001370 aa 6 00234 2521 00 spri2 pr6|156 001371 aa 6 00166 3535 20 epp3 pr6|118,* star_names_ptr 001372 aa 3 77770 3521 06 epp2 pr3|-8,ql star_names 001373 aa 6 00236 2521 00 spri2 pr6|158 001374 aa 6 00230 3521 00 epp2 pr6|152 001375 aa 6 00240 2521 00 spri2 pr6|160 001376 aa 6 00156 3521 00 epp2 pr6|110 type 001377 aa 6 00242 2521 00 spri2 pr6|162 001400 aa 6 00161 3521 00 epp2 pr6|113 bitcnt 001401 aa 6 00244 2521 00 spri2 pr6|164 001402 aa 6 00162 3521 00 epp2 pr6|114 code 001403 aa 6 00246 2521 00 spri2 pr6|166 001404 aa 776422 3520 04 epp2 -750,ic 000026 = 526000000250 001405 aa 6 00250 2521 00 spri2 pr6|168 001406 aa 6 00205 3521 00 epp2 pr6|133 001407 aa 6 00252 2521 00 spri2 pr6|170 001410 aa 776372 3520 04 epp2 -774,ic 000002 = 404000000001 001411 aa 6 00254 2521 00 spri2 pr6|172 001412 aa 776372 3520 04 epp2 -774,ic 000004 = 404000000002 001413 aa 6 00256 2521 00 spri2 pr6|174 001414 aa 776365 3520 04 epp2 -779,ic 000001 = 404000000030 001415 aa 6 00260 2521 00 spri2 pr6|176 001416 aa 776407 3520 04 epp2 -761,ic 000025 = 404000000043 001417 aa 6 00262 2521 00 spri2 pr6|178 001420 aa 6 00232 6211 00 eax1 pr6|154 001421 aa 030000 4310 07 fld 12288,dl 001422 aa 6 00044 3701 20 epp4 pr6|36,* 001423 la 4 00054 3521 20 epp2 pr4|44,* hcs_$status_minf 001424 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 294 if code^=0 then if code^=error_table_$no_s_permission then if code^=error_table_$oosw then go to CALL_COM; 001425 aa 6 00162 2361 00 ldq pr6|114 code 001426 aa 000006 6000 04 tze 6,ic 001434 001427 aa 6 00044 3701 20 epp4 pr6|36,* 001430 la 4 00060 1161 20 cmpq pr4|48,* error_table_$no_s_permission 001431 aa 000003 6000 04 tze 3,ic 001434 001432 la 4 00064 1161 20 cmpq pr4|52,* error_table_$oosw 001433 aa 000314 6010 04 tnz 204,ic 001747 STATEMENT 1 ON LINE 298 if bitcnt ^= 0 then go to ENDLOOP; 001434 aa 6 00161 2361 00 ldq pr6|113 bitcnt 001435 aa 000243 6010 04 tnz 163,ic 001700 STATEMENT 1 ON LINE 299 end; STATEMENT 1 ON LINE 300 if star_entries(k).type ^= 2 then go to ENDLOOP; 001436 aa 6 00157 7271 00 lxl7 pr6|111 k 001437 aa 6 00164 3735 20 epp7 pr6|116,* star_entry_ptr 001440 aa 7 77777 2351 17 lda pr7|-1,7 star_entries.type 001441 aa 000106 7730 00 lrl 70 001442 aa 000002 1160 07 cmpq 2,dl 001443 aa 000235 6010 04 tnz 157,ic 001700 STATEMENT 1 ON LINE 301 if length (rtrim (node)) + length (rtrim (star_names(nind))) + 1 > 168 then do; 001444 aa 6 00160 2361 00 ldq pr6|112 nind 001445 aa 000003 7360 00 qls 3 001446 aa 6 00166 3715 20 epp5 pr6|118,* star_names_ptr 001447 aa 5 77770 3715 06 epp5 pr5|-8,ql star_names 001450 aa 6 00205 7561 00 stq pr6|133 001451 aa 000 000 165 500 tctr (pr) 001452 aa 5 00000 00 0040 desc9a pr5|0,32 star_names 001453 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 001454 aa 6 00056 0001 00 arg pr6|46 001455 aa 6 00056 2361 00 ldq pr6|46 001456 aa 0 00242 3761 00 anq pr0|162 = 000777777777 001457 aa 6 00230 7561 00 stq pr6|152 001460 aa 000040 2360 07 ldq 32,dl 001461 aa 6 00230 1761 00 sbq pr6|152 001462 aa 6 00230 7561 00 stq pr6|152 001463 aa 000 000 165 500 tctr (pr) 001464 aa 6 00104 00 0250 desc9a pr6|68,168 node 001465 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 001466 aa 6 00056 0001 00 arg pr6|46 001467 aa 6 00056 2361 00 ldq pr6|46 001470 aa 0 00242 3761 00 anq pr0|162 = 000777777777 001471 aa 6 00231 7561 00 stq pr6|153 001472 aa 000250 2360 07 ldq 168,dl 001473 aa 6 00231 1761 00 sbq pr6|153 001474 aa 6 00230 0761 00 adq pr6|152 001475 aa 000001 0760 07 adq 1,dl 001476 aa 000250 1160 07 cmpq 168,dl 001477 aa 000125 6044 04 tmoz 85,ic 001624 STATEMENT 1 ON LINE 303 node = get_shortest_path_ (node); 001500 aa 6 00104 3521 00 epp2 pr6|68 node 001501 aa 6 00220 2521 00 spri2 pr6|144 001502 aa 6 00222 2521 00 spri2 pr6|146 001503 aa 776323 3520 04 epp2 -813,ic 000026 = 526000000250 001504 aa 6 00224 2521 00 spri2 pr6|148 001505 aa 6 00226 2521 00 spri2 pr6|150 001506 aa 6 00216 6211 00 eax1 pr6|142 001507 aa 010000 4310 07 fld 4096,dl 001510 aa 6 00044 3701 20 epp4 pr6|36,* 001511 la 4 00044 3521 20 epp2 pr4|36,* get_shortest_path_ 001512 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 304 if length (rtrim (node)) + length (rtrim (star_names(nind))) + 1 > 168 then do; 001513 aa 6 00160 2361 00 ldq pr6|112 nind 001514 aa 000003 7360 00 qls 3 001515 aa 6 00166 3735 20 epp7 pr6|118,* star_names_ptr 001516 aa 7 77770 3735 06 epp7 pr7|-8,ql star_names 001517 aa 6 00230 7561 00 stq pr6|152 001520 aa 000 000 165 500 tctr (pr) 001521 aa 7 00000 00 0040 desc9a pr7|0,32 star_names 001522 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 001523 aa 6 00056 0001 00 arg pr6|46 001524 aa 6 00056 2361 00 ldq pr6|46 001525 aa 0 00242 3761 00 anq pr0|162 = 000777777777 001526 aa 6 00231 7561 00 stq pr6|153 001527 aa 000040 2360 07 ldq 32,dl 001530 aa 6 00231 1761 00 sbq pr6|153 001531 aa 6 00231 7561 00 stq pr6|153 001532 aa 000 000 165 500 tctr (pr) 001533 aa 6 00104 00 0250 desc9a pr6|68,168 node 001534 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 001535 aa 6 00056 0001 00 arg pr6|46 001536 aa 6 00056 2361 00 ldq pr6|46 001537 aa 0 00242 3761 00 anq pr0|162 = 000777777777 001540 aa 6 00274 7561 00 stq pr6|188 001541 aa 000250 2360 07 ldq 168,dl 001542 aa 6 00274 1761 00 sbq pr6|188 001543 aa 6 00231 0761 00 adq pr6|153 001544 aa 000001 0760 07 adq 1,dl 001545 aa 000250 1160 07 cmpq 168,dl 001546 aa 000056 6044 04 tmoz 46,ic 001624 STATEMENT 1 ON LINE 306 call com_err_ (error_table_$dirlong, ws, "^a", pathname_ (node, star_names (nind))); 001547 aa 776234 2360 04 ldq -868,ic 000003 = 526000000040 001550 aa 6 00231 7561 00 stq pr6|153 001551 aa 136141 2350 03 lda 48225,du 001552 aa 6 00274 7551 00 sta pr6|188 001553 aa 6 00160 2361 00 ldq pr6|112 nind 001554 aa 000003 7360 00 qls 3 001555 aa 6 00104 3521 00 epp2 pr6|68 node 001556 aa 6 00234 2521 00 spri2 pr6|156 001557 aa 6 00166 3715 20 epp5 pr6|118,* star_names_ptr 001560 aa 5 77770 3521 06 epp2 pr5|-8,ql star_names 001561 aa 6 00236 2521 00 spri2 pr6|158 001562 aa 6 00276 3521 00 epp2 pr6|190 001563 aa 6 00240 2521 00 spri2 pr6|160 001564 aa 776242 3520 04 epp2 -862,ic 000026 = 526000000250 001565 aa 6 00242 2521 00 spri2 pr6|162 001566 aa 6 00246 2521 00 spri2 pr6|166 001567 aa 6 00231 3521 00 epp2 pr6|153 001570 aa 6 00244 2521 00 spri2 pr6|164 001571 aa 6 00232 6211 00 eax1 pr6|154 001572 aa 014000 4310 07 fld 6144,dl 001573 aa 6 00044 3701 20 epp4 pr6|36,* 001574 la 4 00046 3521 20 epp2 pr4|38,* pathname_ 001575 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 001576 aa 6 00044 3701 20 epp4 pr6|36,* 001577 la 4 00056 3521 20 epp2 pr4|46,* error_table_$dirlong 001600 aa 6 00234 2521 00 spri2 pr6|156 001601 ia 4 00010 3521 00 epp2 pr4|8 ws 001602 aa 6 00236 2521 00 spri2 pr6|158 001603 aa 6 00274 3521 00 epp2 pr6|188 001604 aa 6 00240 2521 00 spri2 pr6|160 001605 aa 6 00276 3521 00 epp2 pr6|190 001606 aa 6 00242 2521 00 spri2 pr6|162 001607 aa 776216 3520 04 epp2 -882,ic 000025 = 404000000043 001610 aa 6 00244 2521 00 spri2 pr6|164 001611 aa 776203 3520 04 epp2 -893,ic 000014 = 524000000020 001612 aa 6 00246 2521 00 spri2 pr6|166 001613 aa 776172 3520 04 epp2 -902,ic 000005 = 524000000002 001614 aa 6 00250 2521 00 spri2 pr6|168 001615 aa 776163 3520 04 epp2 -909,ic 000000 = 524000000250 001616 aa 6 00252 2521 00 spri2 pr6|170 001617 aa 6 00232 6211 00 eax1 pr6|154 001620 aa 020000 4310 07 fld 8192,dl 001621 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 001622 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 307 goto ENDLOOP; 001623 aa 000055 7100 04 tra 45,ic 001700 STATEMENT 1 ON LINE 308 end; STATEMENT 1 ON LINE 309 end; STATEMENT 1 ON LINE 310 call ws_recursive(pathname_ (node, star_names(nind))); 001624 aa 776157 2360 04 ldq -913,ic 000003 = 526000000040 001625 aa 6 00231 7561 00 stq pr6|153 001626 aa 6 00160 2361 00 ldq pr6|112 nind 001627 aa 000003 7360 00 qls 3 001630 aa 6 00104 3521 00 epp2 pr6|68 node 001631 aa 6 00234 2521 00 spri2 pr6|156 001632 aa 6 00166 3735 20 epp7 pr6|118,* star_names_ptr 001633 aa 7 77770 3521 06 epp2 pr7|-8,ql star_names 001634 aa 6 00236 2521 00 spri2 pr6|158 001635 aa 6 00276 3521 00 epp2 pr6|190 001636 aa 6 00240 2521 00 spri2 pr6|160 001637 aa 776167 3520 04 epp2 -905,ic 000026 = 526000000250 001640 aa 6 00242 2521 00 spri2 pr6|162 001641 aa 6 00246 2521 00 spri2 pr6|166 001642 aa 6 00231 3521 00 epp2 pr6|153 001643 aa 6 00244 2521 00 spri2 pr6|164 001644 aa 6 00232 6211 00 eax1 pr6|154 001645 aa 014000 4310 07 fld 6144,dl 001646 aa 6 00044 3701 20 epp4 pr6|36,* 001647 la 4 00046 3521 20 epp2 pr4|38,* pathname_ 001650 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc 001651 aa 6 00276 3521 00 epp2 pr6|190 001652 aa 6 00220 2521 00 spri2 pr6|144 001653 aa 776125 3520 04 epp2 -939,ic 000000 = 524000000250 001654 aa 6 00224 2521 00 spri2 pr6|148 001655 aa 000001 7270 07 lxl7 1,dl 001656 aa 6 00216 6211 00 eax1 pr6|142 001657 aa 004000 4310 07 fld 2048,dl 001660 aa 777110 3520 04 epp2 -440,ic 000770 = 000360627000 001661 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 314 if level=0 then return; 001662 aa 6 00040 3735 20 epp7 pr6|32,* 001663 aa 7 00313 2361 00 ldq pr7|203 level 001664 aa 0 00631 6001 00 tze pr0|409 return STATEMENT 1 ON LINE 315 call change_wdir_(node,code); 001665 aa 6 00104 3521 00 epp2 pr6|68 node 001666 aa 6 00212 2521 00 spri2 pr6|138 001667 aa 6 00162 3521 00 epp2 pr6|114 code 001670 aa 6 00214 2521 00 spri2 pr6|140 001671 aa 6 00210 6211 00 eax1 pr6|136 001672 aa 010000 4310 07 fld 4096,dl 001673 aa 6 00044 3701 20 epp4 pr6|36,* 001674 la 4 00034 3521 20 epp2 pr4|28,* change_wdir_ 001675 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 316 if code ^= 0 then go to CALL_COM; 001676 aa 6 00162 2361 00 ldq pr6|114 code 001677 aa 000050 6010 04 tnz 40,ic 001747 STATEMENT 1 ON LINE 317 ENDLOOP: end; 001700 aa 6 00157 0541 00 aos pr6|111 k 001701 aa 777447 7100 04 tra -217,ic 001350 STATEMENT 1 ON LINE 320 SKIP: if bottom_up_flag then go to EXECUTE; 001702 aa 6 00040 3735 20 epp7 pr6|32,* 001703 aa 7 00316 2351 00 lda pr7|206 bottom_up_flag 001704 aa 777213 6010 04 tnz -373,ic 001117 STATEMENT 1 ON LINE 322 FREE: if star_names_ptr ^= null then free star_names in (tem_); 001705 aa 6 00166 2371 00 ldaq pr6|118 star_names_ptr 001706 aa 776124 6770 04 eraq -940,ic 000032 = 077777000043 000001000000 001707 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001710 aa 000030 6000 04 tze 24,ic 001740 001711 aa 776117 2370 04 ldaq -945,ic 000030 = 000000000000 000000000000 001712 aa 6 00200 7571 00 staq pr6|128 001713 aa 000001 2360 07 ldq 1,dl 001714 aa 6 00177 7561 00 stq pr6|127 001715 aa 000000 0110 03 nop 0,du 001716 aa 6 00177 7271 00 lxl7 pr6|127 001717 aa 6 00164 3735 20 epp7 pr6|116,* star_entry_ptr 001720 aa 7 77777 2351 17 lda pr7|-1,7 star_entries.nnames 001721 aa 000002 7350 00 als 2 001722 aa 000070 7730 00 lrl 56 001723 aa 000044 7770 00 llr 36 001724 aa 000044 7330 00 lrs 36 001725 aa 6 00200 0771 00 adaq pr6|128 001726 aa 6 00200 7571 00 staq pr6|128 001727 aa 6 00177 2361 00 ldq pr6|127 001730 aa 6 00177 0541 00 aos pr6|127 001731 aa 6 00163 1161 00 cmpq pr6|115 star_entry_count 001732 aa 777764 6040 04 tmi -12,ic 001716 001733 aa 000010 2360 07 ldq 8,dl 001734 aa 6 00200 3521 00 epp2 pr6|128 001735 aa 0 00671 7001 00 tsx0 pr0|441 mpfx2 001736 aa 6 00166 3715 00 epp5 pr6|118 star_names_ptr 001737 aa 0 01404 7001 00 tsx0 pr0|772 free_based STATEMENT 1 ON LINE 324 if star_entry_ptr ^= null then free star_entries in (tem_); 001740 aa 6 00164 2371 00 ldaq pr6|116 star_entry_ptr 001741 aa 776071 6770 04 eraq -967,ic 000032 = 077777000043 000001000000 001742 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 001743 aa 000025 6000 04 tze 21,ic 001770 001744 aa 6 00164 3715 00 epp5 pr6|116 star_entry_ptr 001745 aa 0 01404 7001 00 tsx0 pr0|772 free_based STATEMENT 1 ON LINE 325 go to RETURN; 001746 aa 000022 7100 04 tra 18,ic 001770 STATEMENT 1 ON LINE 327 CALL_COM: call com_err_(code,ws,node); 001747 aa 6 00162 3521 00 epp2 pr6|114 code 001750 aa 6 00234 2521 00 spri2 pr6|156 001751 aa 6 00044 3701 20 epp4 pr6|36,* 001752 ia 4 00010 3521 00 epp2 pr4|8 ws 001753 aa 6 00236 2521 00 spri2 pr6|158 001754 aa 6 00104 3521 00 epp2 pr6|68 node 001755 aa 6 00240 2521 00 spri2 pr6|160 001756 aa 776047 3520 04 epp2 -985,ic 000025 = 404000000043 001757 aa 6 00242 2521 00 spri2 pr6|162 001760 aa 776034 3520 04 epp2 -996,ic 000014 = 524000000020 001761 aa 6 00244 2521 00 spri2 pr6|164 001762 aa 776044 3520 04 epp2 -988,ic 000026 = 526000000250 001763 aa 6 00246 2521 00 spri2 pr6|166 001764 aa 6 00232 6211 00 eax1 pr6|154 001765 aa 014000 4310 07 fld 6144,dl 001766 la 4 00040 3521 20 epp2 pr4|32,* com_err_ 001767 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 331 RETURN: level=level-1; 001770 aa 000001 3360 07 lcq 1,dl 001771 aa 6 00040 3735 20 epp7 pr6|32,* 001772 aa 7 00313 0561 00 asq pr7|203 level STATEMENT 1 ON LINE 334 return; 001773 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 336 end ws_recursive; END PROCEDURE ws_recursive END PROCEDURE ws ----------------------------------------------------------- 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