COMPILATION LISTING OF SEGMENT bce_exec_com_input Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-06-29_1718.03_Thu_mdt Options: optimize list 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 bce_exec_com_input: proc (bce_sw_data_ptr, P_buffer_ptr, P_buffer_len, P_actual_len, P_status); 9 10 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 11 12 /* major part of v1 exec_com converted for bootload Multics by 13*Keith Loepere April 1983 */ 14 /* Modified August 1983 for new bce switches */ 15 16 declare bce_sw_data_ptr ptr, 17 P_buffer char (P_actual_len) based (P_buffer_ptr), 18 P_buffer_ptr ptr, 19 P_buffer_len fixed bin (21), 20 P_actual_len fixed bin (21), /* length of data actually returned */ 21 P_status fixed bin (35); /* standard system error code */ 22 23 declare (addr, binary, char, codeptr, copy, divide, index, length, ltrim, max, min, mod, null, rank, rtrim, search, 24 string, substr, unspec, verify) 25 builtin; 26 27 declare (area, cleanup, request_abort_, sub_request_abort_) 28 condition; 29 30 declare 1 bce_switch aligned based, /* bce i/o switch */ 31 2 routine_entry entry, 32 2 data_ptr ptr; 33 34 declare 1 bce_get_line_entry aligned based (addr (bce_data$get_line)), /* template for an entry variable */ 35 2 proc ptr, 36 2 env ptr; 37 38 declare IS char (input_string.len) based (input_string.ptr), 39 old_IS_pos fixed bin (21); 40 41 declare CL_len fixed bin (21), 42 CL_pos fixed bin (21), 43 CL_ptr ptr, 44 CL char (CL_len) based (CL_ptr), 45 not_in_CL bit (1) aligned, 46 old_CL_pos fixed bin (21); 47 48 declare RS_len fixed bin (21), 49 RS_pos fixed bin (21), 50 RS_ptr ptr, 51 RS char (RS_len) based (RS_ptr), 52 old_RS_len fixed bin (21); 53 54 declare arg_idx fixed bin, 55 break fixed bin, 56 buffer_allocated bit (1) aligned, 57 buffer_len fixed bin (21), 58 buffer_ptr ptr, 59 control fixed bin, 60 copy_len fixed bin (21), 61 from_sw bit (1) aligned, 62 get_next_line local label variable, 63 hash fixed bin, 64 input_reset_sw bit (1) aligned, 65 len fixed bin (21), 66 quote_modifier fixed bin, 67 start fixed bin (21), 68 state fixed bin, 69 saved_hash fixed bin, 70 saved_label_ptr ptr, 71 saved_state fixed bin, 72 scanning_clause bit (1) aligned, 73 status fixed bin (35), 74 test bit (1) aligned, 75 twoL fixed bin (21), 76 width fixed bin; 77 78 declare 1 ready_mode aligned, 79 2 flag bit (1) unaligned, 80 2 pad bit (35) unaligned; 81 82 declare ec_name char (arg_info.ec_name_len) based (arg_info.ec_name_ptr), 83 return_arg char (ec_data.return_len) varying based (ec_data.return_ptr); 84 85 declare arg_string char (arg_array (arg_idx).len) based (arg_array (arg_idx).ptr); 86 87 declare 1 arg_array (abs_data.arg_count) aligned based (abs_data.arg_ptr), 88 2 ptr ptr, 89 2 len fixed bin (21), 90 2 quotes fixed bin (21); 91 92 declare NL char (1) static options (constant) initial (" 93 "); 94 95 declare NL_THEN_AMP char (2) static options (constant) initial (" 96 &"); 97 98 declare SPACE char (1) static options (constant) initial (" "), 99 TRUE char (4) static options (constant) initial ("true"), 100 FALSE char (5) static options (constant) initial ("false"), 101 TRACE_THEN char (6) static options (constant) initial ("&then "), 102 TRACE_ELSE char (6) static options (constant) initial ("&else "); 103 104 declare RANK_ZERO fixed bin static options (constant) initial (48), 105 RANK_AMP_ADJ fixed bin static options (constant) initial (-10), 106 RANK_F_ADJ fixed bin static options (constant) initial (54); 107 108 declare NONE fixed bin static options (constant) initial (0), 109 QUOTE fixed bin static options (constant) initial (1), 110 REQUOTE fixed bin static options (constant) initial (2); 111 112 declare NORMAL fixed bin static options (constant) initial (0), 113 SEARCHING_FOR_LABEL fixed bin static options (constant) initial (1), 114 MUST_BE_LABEL fixed bin static options (constant) initial (2), 115 MUST_BE_THEN fixed bin static options (constant) initial (3), 116 SKIPPING_CLAUSE fixed bin static options (constant) initial (4); 117 118 declare DATA fixed bin static options (constant) initial (-1), 119 COMMENT fixed bin static options (constant) initial (0), 120 ELSE fixed bin static options (constant) initial (6), 121 GOTO fixed bin static options (constant) initial (7), 122 LABEL fixed bin static options (constant) initial (10), 123 THEN fixed bin static options (constant) initial (16); 124 125 declare LOW (12) fixed bin static options (constant) 126 initial (1, 2, 5, 6, 7, 8, 10, 11, 12, 13, 16, 17); 127 128 declare HIGH (12) fixed bin static options (constant) 129 initial (1, 4, 5, 6, 7, 9, 10, 11, 12, 15, 16, 17); 130 131 declare KEYWORD (17) char (12) varying static options (constant) 132 initial ("attach", "command_line", "comment_line", "control_line", "detach", 133 "else", "goto", "if", "input_line", "label", "print", "quit", "ready", 134 "ready_proc", "return", "then", "version"); 135 136 declare TRACE (-1:17) bit (1) aligned static options (constant) 137 initial ("0"b, "0"b, (5) ("1"b), "0"b, "1"b, "0"b, (7) ("1"b), "0"b, "0"b); 138 139 declare SKIPABLE (-1:17) bit (1) aligned static options (constant) 140 initial ("1"b, "0"b, (5) ("1"b), "0"b, "1"b, "0"b, "1"b, "0"b, (5) ("1"b), "0"b, 141 "1"b); 142 143 declare WHITE char (5) static options (constant) initial (" 144 "); /* FF VT NL HT SP */ 145 146 declare ( 147 error_table_$noalloc, 148 error_table_$command_line_overflow, 149 error_table_$end_of_info, 150 error_table_$long_record 151 ) fixed bin (35) external, 152 bce_data$command_abs_data_ptr pointer external, 153 bce_data$get_line_data_ptr pointer external, 154 bce_data$subsys_info_ptr pointer external, 155 bce_data$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)) variable ext, 156 bce_data$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)) variable ext; 157 158 declare active_fnc_err_ entry () options (variable), 159 bce_check_abort entry, 160 com_err_ entry () options (variable), 161 cu_$arg_list_ptr entry () returns (ptr), 162 cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)), 163 command_processor_$subsys_eval_string 164 entry (char (*), ptr, entry, ptr, char (*), fixed bin, char (*) var, fixed bin (35)), 165 bce_execute_command_ entry (ptr, char (*), ptr, fixed bin (35)), 166 ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin, bit (1), bit (1)), 167 ioa_$nnl entry options (variable); 168 1 1 /* START OF: bce_abs_io_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 1 2 /* Stolen and shrunk from abs_io_data by Keith Loepere sometime in '83 */ 1 3 /* Initial coding: 25 June 79 by J. Spencer Love */ 1 4 /* login_channel option flag BIM 11/81 */ 1 5 /* Added this_action and next_action 04/20/82 S. Herbst */ 1 6 /* Added on_info, goto_statement_(pos len) 01/06/83 S. Herbst */ 1 7 /* Added output_file.turn_of_ssw 05/16/83 S. Herbst */ 1 8 /* Added attach.trim_whitespace_sw 06/02/83 S. Herbst */ 1 9 1 10 declare abs_data_ptr ptr; 1 11 1 12 declare 1 abs_data aligned based (abs_data_ptr), 1 13 2 ec_data_ptr ptr, /* -> communication area for exec_com */ 1 14 2 arg_info, /* */ 1 15 3 ec_name_ptr ptr, /* Ptr to allocated &ec_name string */ 1 16 3 ec_name_len fixed bin (21), /* Length of allocated &ec_name string */ 1 17 3 arg_ptr ptr, /* pointer to allocated structure containing args */ 1 18 3 arg_count fixed bin, /* number of arguments passed */ 1 19 2 input_string, /* data about input segment or archive component */ 1 20 3 ptr ptr, /* pointer to input file */ 1 21 3 len fixed bin (21), /* number of characters in input file */ 1 22 3 start fixed bin (21), /* initial value for input_pos, set beyond &version, if any */ 1 23 3 position fixed bin (21), /* current index into input file */ 1 24 3 limit fixed bin (21), /* farthest point yet reached...begin &label search here */ 1 25 /* */ 1 26 2 command_line, /* substructure dealing with tracing command lines */ 1 27 3 on bit (1), /* 1 to print tracing information */ 1 28 3 expand fixed bin (2), /* 1 to print unexpanded, 2 expanded, 3 all, 4 both */ 1 29 2 comment_line like command_line, /* for tracing comments..always unexpanded */ 1 30 2 control_line like command_line, /* for tracing control lines */ 1 31 2 input_line like command_line, /* for tracing input lines in &attach mode */ 1 32 /* */ 1 33 2 attach, /* */ 1 34 3 victim_ptr ptr, /* -> IOCB affected by &attach (usually iox_$user_input */ 1 35 3 target_ptr ptr, /* -> IOCB &attached to (created by exec_com command) */ 1 36 3 save_ptr ptr, /* -> IOCB used to save previous victim_ptr -> IOCB */ 1 37 2 allocated_chars_ptr ptr, /* -> allocated buffer for freeing */ 1 38 2 chars_ptr ptr, /* -> characters in buffer waiting to be returned */ 1 39 2 else_clause_ptr ptr, /* -> characters in deferred else clause */ 1 40 2 allocated_chars_len fixed bin (21), /* total length of allocated buffer */ 1 41 2 chars_len fixed bin (21), /* characters left in buffer to be returned */ 1 42 2 else_clause_len fixed bin (21), /* length of deferred else clause */ 1 43 /* */ 1 44 2 active bit (1), /* 1 indicates get_line is busy, for recursion check */ 1 45 2 eof bit (1), /* 1 indicates &quit found or no more input */ 1 46 2 nest_level fixed bin, /* V1: depth of &if-&then-&else nesting */ 1 47 2 expected_nest_level fixed bin, /* V1: depth that must be reached to resume execution */ 1 48 /* */ 1 49 2 goto_statement_pos fixed bin (21), /* position of last &goto stmt, for error msgs */ 1 50 2 goto_statement_len fixed bin (21), /* length of the &goto stmt */ 1 51 1 52 2 if_info aligned, /* &if-&then-&else nesting info */ 1 53 3 if_sw bit (1), /* ON if inside an &if-&then-&else construct */ 1 54 3 true_sw bit (1), /* ON after "&if true" */ 1 55 3 got_then_sw bit (1), /* ON after the &then has been seen */ 1 56 3 got_else_sw bit (1), /* ON after the &else has been seen */ 1 57 3 clause_type fixed bin, /* previous &then or &else */ 1 58 3 skip_sw bit (1), /* ON if skipping a &then or &else clause */ 1 59 3 skip_block_level fixed bin, /* how many levels of &do we are inside while skipping */ 1 60 3 prev_if_ptr ptr, /* ptr to if_info (saved) of &if we are nested inside */ 1 61 3 this_action fixed bin, /* copy of expand_data.this_statement.action */ 1 62 3 next_action fixed bin, /* copy of expand_data.next_statement.action */ 1 63 2 labels_ptr ptr, /* hash table ptr for label hash table */ 1 64 2 work_area_ptr ptr, /* area for args, etc. */ 1 65 2 work_area_len fixed bin; 1 66 1 67 declare abs_data_work_area area (abs_data.work_area_len) based (abs_data.work_area_ptr); 1 68 1 69 declare abs_data_version_1 fixed bin static options (constant) initial (1), 1 70 Work_area_size fixed bin static options (constant) initial (800); 1 71 1 72 dcl (UNEXPANDED init (1), EXPANDED init (2), ALL init (3), BOTH init (4)) 1 73 fixed bin int static options (constant); 1 74 1 75 /* END OF: bce_abs_io_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 169 170 2 1 /* START OF: abs_io_hash.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 2 2 2 3 /* Written: 10 June 1980 by J. Spencer Love */ 2 4 2 5 declare hash_table (0:60) ptr unaligned based initial ((61) (null ())); 2 6 2 7 declare label_ptr ptr, 2 8 current_label_len fixed bin (21), 2 9 current_label_ptr ptr, 2 10 current_label char (current_label_len) based (current_label_ptr); 2 11 2 12 declare 1 label aligned based (label_ptr), 2 13 2 next_ptr ptr unaligned, 2 14 2 statement_pos fixed bin (21), 2 15 2 statement_len fixed bin (21), 2 16 2 len fixed bin (21), 2 17 2 lex_block_ptr ptr unaligned, 2 18 2 name char (current_label_len refer (label.len)) initial (current_label); 2 19 2 20 /* END OF: abs_io_hash.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 171 172 3 1 /* START OF: ec_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 3 2 3 3 declare ec_data_ptr ptr; 3 4 3 5 declare 1 ec_data aligned based (ec_data_ptr), 3 6 2 version_id char (4), /* " ec " */ 3 7 2 version fixed bin, /* 1 */ 3 8 2 active_function bit (1), /* This affects &is_af and &return */ 3 9 2 return_len fixed bin (21), /* maximum length and pointer to varying character string */ 3 10 2 return_ptr ptr, /* for active function return value */ 3 11 2 execute_line entry (ptr, fixed bin (21), fixed bin (35)), 3 12 2 eval_string entry (ptr, char (*), fixed bin, char (*) var, fixed bin (35)), 3 13 2 set_ready_mode entry (1 aligned, 2 bit (1) unal, 2 bit (35) unal), 3 14 2 error entry () options (variable), 3 15 2 switch_ptr ptr, /* switch affected by &attach */ 3 16 2 id_string char (19), /* name string for &attach save switch should contain this */ 3 17 2 input_line bit (1), /* this makes the command_line/input_line distinction */ 3 18 2 call_ready_proc bit (1), /* this implements the &ready_proc keyword */ 3 19 2 who_am_i char (72) varying; /* for error messages. It's 72 chars for subsystem requests */ 3 20 3 21 declare ec_data_version_id char (4) aligned static options (constant) initial (" ec "), 3 22 ec_data_version_1 fixed bin static options (constant) initial (1); 3 23 3 24 /* END OF: ec_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 173 174 175 /* bce_exec_com_input: procedure (bce_sw_data_ptr, P_buffer_ptr, P_buffer_len, P_actual_len, P_status); */ 176 177 abs_data_ptr = bce_sw_data_ptr -> bce_switch.data_ptr; 178 ec_data_ptr = abs_data.ec_data_ptr; 179 buffer_ptr = P_buffer_ptr; 180 buffer_len = P_buffer_len; 181 input_reset_sw = "0"b; 182 183 /* recursion check. used to protect against &if [] */ 184 185 if abs_data.active then 186 if attachedp () 187 then do; /* Not our problem; we can offload this request to attachee */ 188 call bce_data$get_line (addr (bce_data$get_line), P_buffer_ptr, P_buffer_len, P_actual_len, P_status); 189 return; 190 end; 191 else do; 192 call com_err_ (0, "bce_exec_com_", "Attempt to invoke parser recursively. Check for invalid ""&if"" test."); 193 signal request_abort_; 194 end; 195 196 on cleanup abs_data.active = "0"b; /* Protect against non-local goto */ 197 198 abs_data.active = "1"b; /* Prevent recursive invocation of this I/O switch */ 199 200 /* Handle abnormal situations: no data left, or partial line remaining. Initialize for exit paths as needed. */ 201 202 if abs_data.eof then go to END_OF_FILE; /* No data left, just exit without doing any work */ 203 204 if abs_data.chars_len > 0 then go to CONTINUE_LONG_RECORD; 205 206 /* Now initialize variables for the scan... */ 207 208 width = 0; /* width of modifier field, e.g., f, q, r, qf, rf, f&n, etc */ 209 quote_modifier = NONE; /* quote processing to be done to current parameter */ 210 from_sw = "0"b; /* current parameter doesn't (yet) have f as in &f */ 211 saved_hash = -1; /* used by &goto... valid range 0:60 */ 212 213 /* Hack nested &if statements where we returned something and have to skip the rest of a compound statement */ 214 215 if abs_data.nest_level > abs_data.expected_nest_level 216 then state = SKIPPING_CLAUSE; /* In the middle of an &if: if we're here, skip the rest */ 217 else state = NORMAL; 218 219 if abs_data.else_clause_len > 0 then go to CONTINUE_WITH_PENDING_ELSE_CLAUSE; 220 /* not finished with last line, can't expand another yet */ 221 222 buffer_allocated = "0"b; /* Initially expanding into P_buffer */ 223 get_next_line = EXPAND_NEXT_LINE; /* Normal setting. Used by &if nesting get control back. */ 224 CL_len = 0; /* No statements scanned yet, so don't skip anything */ 225 226 EXPAND_NEXT_LINE: 227 input_string.position = input_string.position + CL_len; 228 /* Position to the beginning of the next statement */ 229 if input_string.position >= input_string.len then go to END_OF_FILE; 230 /* If we've gone too far, punt now */ 231 232 CL_ptr = addr (substr (IS, input_string.position + 1)); 233 CL_len = index (substr (IS, input_string.position + 1), NL); 234 if CL_len = 0 then go to NO_NEW_LINE; /* Must be at end of file, print warning and &quit */ 235 236 not_in_CL = "0"b; /* Use original line in input seg, no expansions so far */ 237 scanning_clause = "0"b; /* We are not currently within an &then or &else clause */ 238 239 CL_pos = index (CL, "&") - 1; /* Find the first ampersand in the current line */ 240 if CL_pos < 0 then go to COPY_REST; /* No ampersands in line. Skip expansion loop. */ 241 242 RS_len, old_CL_pos, old_RS_len = 0; /* So far we've expanded nothing */ 243 RS_ptr = buffer_ptr; /* We will expand to here, if necessary */ 244 twoL = 1; /* This is 2**(quote depth), used for requoting */ 245 246 if CL_pos = 0 247 then do; /* First char is ampersand. Special case for fast comments */ 248 break = index ("0123456789efinqracdglptv", substr (CL, 2, 1)) - 1; 249 if break < 0 then go to COMMENT_LINE; /* If it's a comment, we needn't expand it or return it */ 250 if break < 10 then go to EXPAND_ARG_NUMBER; 251 /* A digit. Get whole number and expand argument */ 252 if break < 16 then go to EXPAND (break); /* Might be expandable, investigate further */ 253 go to EXPAND_AGAIN; /* This might be a keyword, but we can't handle it now. */ 254 end; 255 256 /* This is the loop which expands lines from the input segment. It is entered here if the first character on the line 257* is not an ampersand. If the first character is an ampersand, it will have been handled on the previous page as a 258* performance hack to not expand comment lines. If no expandable constructs are encountered, the line will still be 259* in the input segment. If expansion is done, it is initially into the caller-provided buffer, but if that is too 260* small, a larger buffer will be allocated and expansion will use it until the next line is returned to the caller. */ 261 262 EXPAND_LOOP: 263 break = index ("0123456789efinqr", substr (CL, CL_pos + 2, 1)) - 1; 264 if break < 0 then go to EXPAND_AGAIN; /* Not expandable. skip it */ 265 if break < 10 then go to EXPAND_ARG_NUMBER; /* A digit. Get whole number and expand argument */ 266 go to EXPAND (break); /* Might be expandable... investigate further */ 267 268 EXPAND (10): /* &e */ 269 if substr (CL, CL_pos + 3, 1) ^= "c" then go to EXPAND_AGAIN; 270 /* performance hack for &else */ 271 272 if substr (CL, CL_pos + 4, min (CL_len, 5)) = "_name" then call emit_ec_name (); 273 274 go to EXPAND_AGAIN; 275 276 EXPAND (11): /* &f */ 277 from_sw = "1"b; 278 279 go to EXPAND_MODIFIER; 280 281 EXPAND (12): /* &i */ 282 if substr (CL, CL_pos + 3, 1) ^= "s" then go to EXPAND_AGAIN; 283 /* Performance hack for &if */ 284 285 if substr (CL, CL_pos + 4, min (CL_len - 3, 16)) = "_active_function" 286 then call predicate (functionp (), 18); 287 else if substr (CL, CL_pos + 4, min (CL_len - 3, 3)) = "_af" then call predicate (functionp (), 5); 288 else if substr (CL, CL_pos + 4, min (CL_len - 3, 9)) = "_attached" then call predicate (attachedp (), 11); 289 else if substr (CL, CL_pos + 4, min (CL_len - 3, 11)) = "_input_line" then call predicate (input_linep (), 13); 290 291 go to EXPAND_AGAIN; 292 293 EXPAND (13): /* &n: The number of arguments given for substitution */ 294 call emit_arg_count (); 295 296 go to EXPAND_AGAIN; 297 298 EXPAND (14): /* &q */ 299 quote_modifier = QUOTE; 300 301 go to EXPAND_MODIFIER; 302 303 EXPAND (15): /* &r */ 304 quote_modifier = REQUOTE; 305 306 EXPAND_MODIFIER: 307 width = width + 1; 308 break = rank (substr (CL, CL_pos + width + 2, 1)) - RANK_ZERO; 309 if break = RANK_F_ADJ & ^from_sw 310 then do; 311 from_sw = "1"b; 312 go to EXPAND_MODIFIER; 313 end; 314 if break = RANK_AMP_ADJ 315 then if substr (CL, CL_pos + width + 3, 1) = "n" 316 then do; /* &..&n: Appropriately modified last argument */ 317 arg_idx = abs_data.arg_count; 318 width = width + 2; 319 go to COPY_ARG; 320 end; 321 if break < 0 | break > 9 322 then do; /* Construct isn't really a parameter, skip it */ 323 width = 0; /* Reset these to default values, save the work elsewhere */ 324 quote_modifier = NONE; 325 from_sw = "0"b; 326 go to EXPAND_AGAIN; 327 end; 328 329 EXPAND_ARG_NUMBER: 330 arg_idx = 0; 331 do break = break repeat (rank (substr (CL, CL_pos + width + 2, 1)) - RANK_ZERO) while (break >= 0 & break <= 9); 332 if arg_idx <= abs_data.arg_count then arg_idx = 10 * arg_idx + break; 333 width = width + 1; 334 end; 335 336 COPY_ARG: 337 call copy_up_to_ampersand (width); /* Skip construct (width chars long) */ 338 width = 0; 339 if from_sw 340 then do; /* User specified range of arguments to expand */ 341 from_sw = "0"b; 342 do arg_idx = max (1, arg_idx) to abs_data.arg_count; 343 call copy_string (arg_string, quote_modifier); 344 if arg_idx ^= abs_data.arg_count then call copy_string (SPACE, NONE); 345 end; 346 end; 347 else if arg_idx = 0 then call copy_string (ec_name, quote_modifier); 348 else if arg_idx <= abs_data.arg_count then call copy_string (arg_string, quote_modifier); 349 quote_modifier = NONE; 350 351 EXPAND_AGAIN: 352 CL_pos = CL_pos + 1; /* Skip ampersand */ 353 break = index (substr (CL, CL_pos + 1), "&") - 1; 354 if break >= 0 355 then do; /* Any more ampersands in line? */ 356 CL_pos = CL_pos + break; 357 go to EXPAND_LOOP; 358 end; 359 360 COPY_REST: 361 if not_in_CL 362 then do; /* Copy rest of line if any expansions */ 363 copy_len = CL_len - old_CL_pos; 364 call check_len (copy_len); 365 substr (RS, RS_len - copy_len + 1, copy_len) = substr (CL, old_CL_pos + 1, copy_len); 366 end; 367 else do; /* Use unexpanded string, we may not need to copy it */ 368 RS_len = CL_len; 369 RS_ptr = CL_ptr; 370 end; 371 372 /* We come here to identify the current request line as a statement, command, or expansion to be returned. 373* We can get here by falling through from expansion, or to identify an &then or &else clause. */ 374 375 CHECK_CONTROL: 376 if substr (RS, 1, min (1, RS_len)) = "&" 377 then do; /* If first char is ampersand, hash on second char */ 378 on sub_request_abort_ go to ABORT; 379 call bce_check_abort; /* allow to break out of possible loop in exec_com land */ 380 revert sub_request_abort_; 381 break = index ("acdegilpqrtv", substr (RS, 2, 1)); 382 if break = 0 then go to COMMENT_LINE; 383 len = search (substr (RS, 3), WHITE); /* Get length of possible keyword */ 384 do control = LOW (break) to HIGH (break); 385 if KEYWORD (control) = substr (RS, 2, len) 386 then do; /* Got a match! so just space RS_pos over it */ 387 RS_pos = verify (substr (RS, len + 3), WHITE) + len + 1; 388 if RS_pos = len + 1 then RS_pos = RS_len; 389 go to STATE (state); /* And we're off to an action routine (of some sort) */ 390 end; 391 end; 392 393 if len > 4 394 then if break = 4 395 then if substr (RS, 2, 4) = "else" 396 then call warning (0, 397 "Whitespace must follow the ""&else"" keyword or the line is a comment."); 398 else ; 399 else if break = 11 400 then if substr (RS, 2, 4) = "then" 401 then call warning (0, 402 "Whitespace must follow the ""&then"" keyword or the line is a comment."); 403 404 COMMENT_LINE: 405 control = COMMENT; /* We have a leading ampersand but no keyword. Ignore it */ 406 end; 407 else control = DATA; /* No ampersand so this line can be returned to user */ 408 409 go to STATE (state); /* Off to the wars (someone will handle this line) */ 410 411 STATE (0): /* NORMAL: we come here if not in search or conditional */ 412 if TRACE (control) then call trace_output (abs_data.control_line, RS); 413 414 go to CONTROL (control); /* This is where we really head off to the action routine */ 415 416 CONTINUE_LONG_RECORD: 417 buffer_allocated = "1"b; /* Tell exit routine to take data out of buffer */ 418 CL_len = 0; /* Don't skip over statement since we did no expansion */ 419 scanning_clause = "0"b; /* Init this for tastefulness sake */ 420 not_in_CL = "1"b; /* Not from input segment */ 421 RS_len = abs_data.chars_len; /* set RS to pending string */ 422 RS_ptr = abs_data.chars_ptr; 423 424 CONTROL (-1): /* DATA = data to return to caller */ 425 if not_in_CL & ^buffer_allocated & ^scanning_clause 426 then P_actual_len = RS_len; /* All done since all data is already in caller's buffer */ 427 else do; /* Otherwise copy as much as will fit */ 428 P_actual_len = min (P_buffer_len, RS_len); 429 P_buffer = RS_ptr -> P_buffer; /* If it doesn't all fit, stash the rest for later calls */ 430 if P_actual_len < RS_len 431 then if not_in_CL 432 then do; /* We have an allocated buffer, and characters in it */ 433 abs_data.chars_ptr = addr (substr (RS, P_actual_len + 1)); 434 abs_data.chars_len = RS_len - P_actual_len; 435 end; 436 else do; /* this means no pending &else clause or full buffer */ 437 RS_ptr = addr (substr (RS, P_actual_len + 1)); 438 abs_data.chars_len, RS_len = RS_len - P_actual_len; 439 call allocate_buffer (RS_len); 440 abs_data.chars_ptr = RS_ptr; 441 end; 442 else abs_data.chars_len = 0; 443 end; 444 445 input_string.position = input_string.position + CL_len; 446 /* Step over statement so we will get next one later */ 447 448 if input_linep () 449 then call trace_output (abs_data.input_line, P_buffer); 450 else call trace_output (abs_data.command_line, P_buffer); 451 452 if abs_data.chars_len > 0 453 then P_status = error_table_$long_record; /* Pending chars exist so tell caller */ 454 else P_status = 0; 455 456 EGRESS: 457 abs_data.active = "0"b; 458 return; 459 460 NO_NEW_LINE: 461 if state = SEARCHING_FOR_LABEL then go to STATE (SEARCHING_FOR_LABEL); 462 /* &goto should field this */ 463 464 if state = MUST_BE_LABEL then go to UNSTUCK_LABEL;/* User has edited his ec */ 465 466 call warning (0, "The last line did not end in a newline and was ignored."); 467 468 END_OF_FILE: 469 if state = MUST_BE_LABEL then go to UNSTUCK_LABEL;/* User has edited his ec. */ 470 471 if state = MUST_BE_THEN 472 then call error (0, "The end of file was encountered when a ""&then"" statement was expected."); 473 474 ABORT: abs_data.eof = "1"b; /* Make sure that end of file is remembered */ 475 476 if ^input_reset_sw 477 then do; /* Mustn't leave &attach in effect */ 478 input_reset_sw = "1"b; 479 480 call reset_input (); 481 end; 482 483 P_actual_len = 0; /* Tell user what happened and how much data he got */ 484 P_status = error_table_$end_of_info; 485 486 go to EGRESS; /* Only one exit allowed for cleanup purposes */ 487 488 /* The following small serving of spaghetti is used to implement &goto and &label. Labels are kept in chained buckets 489* in a small hash table. Buckets are allocated the first time a label is seen, whether it it in a &label or a &goto. 490* There is no limit on the length of labels and the characters in a label, except that leading and trailing whitespace 491* are removed from them. The blank label is allowed. Label search is defined to find the first instance of a label 492* starting from the top of the file, so duplicate instances of the same label are ignored. The hashed label scheme is 493* a large performance improvement in big exec_coms. */ 494 495 CONTROL (7): /* &goto */ 496 abs_data.nest_level = 0; /* reset nest state, so parser doesn't think we are */ 497 abs_data.else_clause_len = 0; /* still in if statement or have else clause pending. */ 498 get_next_line = EXPAND_NEXT_LINE; /* also set scanner back to normal */ 499 500 input_string.limit = max (input_string.limit, input_string.position + CL_len); 501 /* save farthest point in case backward branch */ 502 go to GET_CURRENT_LABEL; /* now go parse statement */ 503 504 CONTROL (10): /* &label */ 505 if scanning_clause then call error (0, "A label may not follow ""&then"" or ""&else""."); 506 507 if input_string.limit > input_string.position then go to get_next_line; 508 /* Have we seen this label already? */ 509 510 GET_CURRENT_LABEL: 511 current_label_ptr = addr (substr (RS, RS_pos + 1)); 512 current_label_len = length (rtrim (substr (RS, RS_pos + 1), WHITE)); 513 hash = 514 mod (binary (unspec (char (substr (current_label, 1, min (2, current_label_len)), 2)), 18) 515 + current_label_len, 61); 516 517 if hash = saved_hash /* cheap test -- saved_hash = -1 if not looking */ 518 then if current_label = saved_label_ptr -> label.name 519 then do; 520 saved_hash = -1; /* reset saved_hash to illegal value for test */ 521 if state = MUST_BE_LABEL 522 then do; /* Label found in hash table has been verified */ 523 state = NORMAL; 524 go to get_next_line; 525 end; 526 state = NORMAL; /* reset from SEARCHING_FOR_LABEL */ 527 label_ptr = saved_label_ptr; /* so saved block will be threaded properly */ 528 go to THREAD_IN_LABEL; 529 end; 530 531 if state = MUST_BE_LABEL then go to UNSTUCK_LABEL;/* User has edited the input file. */ 532 533 if abs_data.labels_ptr = null () then call allocate_hash_table (); 534 535 do label_ptr = abs_data.labels_ptr -> hash_table (hash) repeat (label.next_ptr) while (label_ptr ^= null ()); 536 if current_label = label.name /* if match then three possible actions */ 537 then if control = LABEL /* for label we just go to next line, which in */ 538 then if state = NORMAL /* search mode calls for special action to */ 539 then go to get_next_line; /* only scan control lines for efficiency */ 540 else go to GET_NEXT_LABEL_LINE; 541 else do; 542 saved_hash = hash; 543 saved_label_ptr = label_ptr; 544 old_IS_pos = input_string.position; 545 input_string.position = label.statement_pos; 546 if input_string.position > 0 547 then if substr (IS, input_string.position, 1) ^= NL then go to UNSTUCK_LABEL; 548 state = MUST_BE_LABEL; 549 CL_len = 0; 550 go to get_next_line; 551 end; 552 end; 553 554 on area call error (error_table_$noalloc, "Allocating label ""^a"".", current_label); 555 556 allocate label in (abs_data_work_area); /* we need a new label cell since we now know this label */ 557 /* has never been seen before. length is arbitrary */ 558 revert area; 559 560 if control = GOTO 561 then do; 562 saved_hash = hash; /* we do this for cheap compare above */ 563 saved_label_ptr = label_ptr; /* we will need this later for compare and threading in */ 564 old_IS_pos = input_string.position; /* this is for line number in error message */ 565 state = SEARCHING_FOR_LABEL; /* set state to ignore everything but labels */ 566 input_string.position = input_string.limit - CL_len; 567 go to GET_NEXT_LABEL_LINE; /* start search beyond what we've already seen */ 568 end; 569 570 THREAD_IN_LABEL: 571 label.statement_pos = input_string.position; /* set label to beginning of its line */ 572 label.next_ptr = abs_data.labels_ptr -> hash_table (hash); 573 abs_data.labels_ptr -> hash_table (hash) = label_ptr; 574 575 if state = NORMAL then go to get_next_line; /* We are done unless still skipping */ 576 577 GET_NEXT_LABEL_LINE: 578 input_string.position = input_string.position + CL_len; 579 CL_len = index (substr (IS, input_string.position), NL_THEN_AMP) - 1; 580 /* search for next control string */ 581 if CL_len >= 0 then go to get_next_line; /* Found something; check it out */ 582 583 input_string.position = old_IS_pos; /* Restore position for error message. */ 584 call error (0, "Label ""^a"" not found.", saved_label_ptr -> label.name); 585 586 STATE (1): /* SEARCHING_FOR_LABEL */ 587 if control = LABEL 588 then go to GET_CURRENT_LABEL; /* in this state we ignore everything but &label lines */ 589 else go to GET_NEXT_LABEL_LINE; /* since efficient label search is critical */ 590 591 STATE (2): /* MUST_BE_LABEL */ 592 if control = LABEL then go to GET_CURRENT_LABEL; 593 594 UNSTUCK_LABEL: 595 input_string.position = old_IS_pos; 596 state = NORMAL; 597 call error (0, "Label ""^a"" is unstuck. Active programs may not be edited.", saved_label_ptr -> label.name); 598 599 CONTROL (0): /* COMMENT LINE */ 600 if scanning_clause then call error (0, "A comment may not follow ""&then"" or ""&else""."); 601 602 call trace_output (abs_data.comment_line, CL); 603 604 go to get_next_line; 605 606 CONTROL (11): /* &print */ 607 call ioa_$nnl (substr (RS, min (RS_pos + 1, RS_len))); 608 go to get_next_line; 609 610 CONTROL (12): /* &quit */ 611 if RS_pos ^= RS_len then call warning (0, "No arguments are required by ""&quit""."); 612 613 go to END_OF_FILE; 614 615 CONTROL (15): /* &return */ 616 if RS_pos = RS_len then RS_pos = RS_pos - 1; /* Newline at end of null return string is not white space */ 617 618 RS_ptr = addr (substr (RS, RS_pos + 1)); /* Adjust RS to only be argument of statement */ 619 RS_len = RS_len - RS_pos; 620 621 if functionp () 622 then do; 623 RS_len = RS_len - 1; /* Don't return newline at end for active function */ 624 if RS_len > ec_data.return_len 625 then call warning (error_table_$command_line_overflow, 626 "Expanded value length of ^d characters exceeds return argument length of ^d characters.", 627 RS_len, ec_data.return_len); 628 return_arg = RS; 629 end; 630 else call bce_data$put_chars (addr (bce_data$put_chars), addr (RS), length (RS), status); 631 632 go to END_OF_FILE; 633 634 CONTROL (17): 635 call error (0, "The ""&version"" statement may only be the first line of the program."); 636 637 CONTROL (1): /* &attach */ 638 if RS_pos ^= RS_len then call warning (0, "No arguments are required by ""&attach""."); 639 640 if ec_data_ptr ^= null () & ^attachedp () 641 then do; 642 bce_data$command_abs_data_ptr -> abs_data.save_ptr = bce_data$get_line_data_ptr; 643 bce_data$command_abs_data_ptr -> abs_data.victim_ptr = codeptr (bce_data$get_line); 644 bce_data$get_line_data_ptr = bce_data$command_abs_data_ptr; 645 bce_data$get_line = bce_exec_com_input; 646 end; 647 648 go to get_next_line; 649 650 CONTROL (5): /* &detach */ 651 if RS_pos ^= RS_len then call warning (0, "No arguments are required by ""&detach""."); 652 653 input_string.position = input_string.position + CL_len; 654 /* Adjust position in case call to reset_input fails */ 655 CL_len = 0; /* Make sure that it isn't adjusted twice if it doesn't */ 656 657 call reset_input (); /* Do &detach, call get_line for saved switch if input line */ 658 659 go to get_next_line; 660 661 reset_input: 662 procedure (); 663 664 if attachedp () 665 then do; 666 bce_get_line_entry.env = null (); 667 bce_get_line_entry.proc = bce_data$command_abs_data_ptr -> abs_data.victim_ptr; 668 bce_data$get_line_data_ptr = bce_data$command_abs_data_ptr -> abs_data.save_ptr; 669 if input_linep () then do; 670 call bce_data$get_line (addr (bce_data$get_line), P_buffer_ptr, P_buffer_len, P_actual_len, P_status); 671 go to EGRESS; 672 end; 673 end; 674 return; 675 end; 676 677 CONTROL (13): /* &ready */ 678 string (ready_mode) = ""b; 679 ready_mode.flag = trace_mode (); /* don't do anything, though */ 680 681 go to get_next_line; 682 683 CONTROL (14): /* &ready_proc */ 684 test = trace_mode (); 685 if ec_data_ptr ^= null () then ec_data.call_ready_proc = test; 686 go to get_next_line; 687 688 trace_mode: 689 procedure () returns (bit (1) aligned); 690 691 if RS_len = RS_pos 692 then do; 693 call warning (0, "Missing keyword in mode statement. ""on"" assumed."); 694 return ("1"b); 695 end; 696 697 RS_len = length (rtrim (RS, WHITE)); 698 699 if substr (RS, RS_pos + 1) = "on" | substr (RS, RS_pos + 1) = "true" then return ("1"b); 700 if substr (RS, RS_pos + 1) = "off" | substr (RS, RS_pos + 1) = "false" then return ("0"b); 701 call warning (0, "Illegal keyword in mode statement. ""on"" assumed."); 702 703 return ("1"b); 704 end; 705 706 CONTROL (2): /* &command_line */ 707 call trace_control (abs_data.command_line); 708 go to get_next_line; 709 710 CONTROL (3): /* &comment_line */ 711 call trace_control (abs_data.comment_line); 712 go to get_next_line; 713 714 CONTROL (4): /* &control_line */ 715 call trace_control (abs_data.control_line); 716 go to get_next_line; 717 718 CONTROL (9): /* &input_line */ 719 call trace_control (abs_data.input_line); 720 go to get_next_line; 721 722 trace_control: 723 procedure (trace_structure); 724 725 declare 1 trace_structure aligned like abs_data.command_line; 726 727 if RS_len = RS_pos 728 then do; 729 call warning (0, "Missing keyword in tracing statement. ""on"" assumed."); 730 trace_structure.on = "1"b; 731 return; 732 end; 733 734 len = search (substr (RS, RS_pos + 2), WHITE); /* Find end of keyword */ 735 RS_len = length (rtrim (RS, WHITE)); /* Find end of tokens on line */ 736 737 if substr (RS, RS_pos + 1) = "on" | substr (RS, RS_pos + 1) = "true" then trace_structure.on = "1"b; 738 else if substr (RS, RS_pos + 1) = "off" | substr (RS, RS_pos + 1) = "false" then trace_structure.on = "0"b; 739 else do; 740 call warning (0, "Invalid keyword in tracing statement. ""on"" assumed."); 741 trace_structure.on = "1"b; 742 end; 743 744 return; 745 746 end trace_control; 747 748 trace_output: 749 procedure (trace_structure, line); 750 751 declare 1 trace_structure aligned like abs_data.command_line, 752 line char (*); 753 754 755 do while (trace_structure.on); /* Do this only if tracing is enabled. */ 756 call bce_data$put_chars (addr (bce_data$put_chars), addr (line), length (line), status); 757 if status = 0 then return; /* Exit if line successfully traced */ 758 759 call com_err_ (status, "bce_exec_com_", "Unable to do trace output."); 760 signal request_abort_; 761 end; 762 763 return; 764 765 end trace_output; 766 767 CONTROL (8): /* &if */ 768 start = find_clause ("&then"); 769 770 if RS_len = RS_pos | start = RS_pos then call error (0, "Missing conditional in ""&if"" statement."); 771 772 if start >= 0 773 then do; 774 old_RS_len = RS_len; /* Save for locating &then clause */ 775 RS_len = start; /* Delay assignment for benefit of error message routine. */ 776 end; 777 778 RS_len = length (rtrim (RS, WHITE)); 779 780 abs_data.nest_level = abs_data.nest_level + 1; 781 782 if state = NORMAL 783 then do; 784 call trace_output (abs_data.control_line, RS); 785 call trace_output (abs_data.control_line, NL); 786 abs_data.expected_nest_level = abs_data.nest_level; 787 if ^conditional () then state = SKIPPING_CLAUSE; 788 end; 789 790 if start < 0 791 then do; 792 saved_state = state; 793 state = MUST_BE_THEN; 794 go to EXPAND_NEXT_LINE; /* Go direct, don't mess around. This state is indivisible */ 795 end; 796 797 RS_ptr = addr (substr (RS, start + 1)); 798 RS_len = old_RS_len - start; 799 800 RS_pos = verify (substr (RS, 6), WHITE) + 4; /* Find beginning of clause beyond "&then" */ 801 if RS_pos = 4 then RS_pos = RS_len; 802 803 CONTINUE_THEN: 804 if abs_data.else_clause_len <= 0 805 then do; /* maybe we even have the &else */ 806 start = find_clause ("&else"); 807 if start >= 0 808 then do; /* We do. Copy the whole line into an allocated buffer */ 809 if ^not_in_CL | ^buffer_allocated then call allocate_buffer (RS_len); 810 abs_data.else_clause_len = RS_len - start; 811 abs_data.else_clause_ptr = addr (substr (RS, start + 1)); 812 RS_len = length (rtrim (substr (RS, 1, start), WHITE)) + 1; 813 substr (RS, RS_len, 1) = NL; /* Break the line. We'll get rest of the line next time */ 814 get_next_line = GET_PENDING_ELSE_CLAUSE; 815 end; 816 end; 817 818 if RS_pos >= RS_len then RS_pos = RS_len - 1; /* Newline at end of null line is not white space */ 819 820 RS_ptr = addr (substr (RS, RS_pos + 1)); /* Step over &then or &else and following whitespace */ 821 RS_len = RS_len - RS_pos; 822 823 if state = NORMAL 824 then do; /* This clause will be executed. First, we trace ourself. */ 825 if control = THEN 826 then call trace_output (abs_data.control_line, TRACE_THEN); 827 else call trace_output (abs_data.control_line, TRACE_ELSE); 828 829 abs_data.expected_nest_level = 0; /* After taking this clause we skip until back at top level */ 830 831 if abs_data.else_clause_len = 0 & abs_data.nest_level > 0 832 then get_next_line = ENTER_SKIPPING_CLAUSE_STATE; 833 end; /* Arrange to set state to skipping after taking clause */ 834 835 scanning_clause = "1"b; /* Comments and labels are forbidden in clauses */ 836 837 go to CHECK_CONTROL; /* Prepare to execute clause */ 838 839 STATE (3): /* MUST_BE_THEN */ 840 if control = COMMENT then go to get_next_line; /* comments are allowed between &if and &else statements */ 841 842 if control ^= THEN then call error (0, "Missing ""&then"" keyword following ""&if"" statement."); 843 844 state = saved_state; /* pop state saved in &if (NORMAL or SKIPPING_CLAUSE) */ 845 846 go to CONTINUE_THEN; 847 848 CONTROL (16): /* &then: this can't be reached by a legitimate clause */ 849 call error (0, "Unexpected ""&then"" statement."); 850 851 CONTINUE_WITH_PENDING_ELSE_CLAUSE: 852 buffer_allocated = "1"b; /* We have just reentered, so initialize--this must be */ 853 CL_len = 0; /* We haven't done any expansion this time, so don't skip */ 854 not_in_CL = "1"b; /* in an allocated buffer, not in the input file */ 855 856 GET_PENDING_ELSE_CLAUSE: 857 RS_len = abs_data.else_clause_len; /* Set RS to pending &else clause in allocated buffer */ 858 RS_ptr = abs_data.else_clause_ptr; 859 abs_data.else_clause_len = 0; /* Unmark pending &else clause storage */ 860 861 RS_pos = verify (substr (RS, 6), WHITE) + 4; /* Set RS_pos as if we came from CHECK_CONTROL */ 862 if RS_pos = 4 then RS_pos = RS_len; /* Locate it at first non-white char or at end of line */ 863 864 get_next_line = EXPAND_NEXT_LINE; /* Reset this since we don't want to come back here */ 865 866 control = ELSE; /* This is the only kind of statement that is ever pending */ 867 868 CONTROL (6): /* &else */ 869 if abs_data.nest_level <= 0 then call error (0, "Unexpected ""&else"" statement."); 870 871 abs_data.nest_level = abs_data.nest_level - 1; /* Implement nesting here */ 872 if abs_data.nest_level < abs_data.expected_nest_level 873 then state = NORMAL; 874 else state = SKIPPING_CLAUSE; 875 876 go to CONTINUE_THEN; 877 878 STATE (4): /* SKIPPING_CLAUSE */ 879 if ^scanning_clause 880 then if control = ELSE | control = COMMENT 881 then go to CONTROL (control); /* &else or comments are part of nested compound statement */ 882 else do; /* anything else ends compound statement */ 883 scanning_clause = "0"b; /* comments and &labels are legal again */ 884 state = NORMAL; /* nested statement must end here */ 885 abs_data.nest_level = 0; /* so reset back to top level */ 886 go to STATE (NORMAL); 887 end; 888 889 if SKIPABLE (control) 890 then go to get_next_line; 891 else go to CONTROL (control); 892 893 ENTER_SKIPPING_CLAUSE_STATE: 894 state = SKIPPING_CLAUSE; /* We have taken a clause, so we skip rest of if statement */ 895 896 get_next_line = EXPAND_NEXT_LINE; /* Reset this, we don't need to come here again */ 897 898 go to EXPAND_NEXT_LINE; 899 900 /* This function is called from &if to find &then and from &then or &else to find an &else which follows on the same 901* line. The contract of the function is to return the length of the string preceding the keyword, which must be 902* delimited on BOTH sides by whitespace. If it is followed by a newline, that is considered whitespace. If the 903* clause is not found, the -1 is returned. */ 904 905 find_clause: 906 procedure (keyword) returns (fixed bin (21)); 907 908 declare keyword char (*), 909 keyword_pos fixed bin (21), 910 start_keyword fixed bin (21); 911 912 keyword_pos = RS_pos; /* start with first unidentified character */ 913 914 start_keyword = index (substr (RS, RS_pos + 1), keyword) - 1; 915 916 if start_keyword < 0 then return (-1); 917 918 keyword_pos = RS_pos + start_keyword; 919 920 if index (WHITE, substr (RS, keyword_pos + length (keyword) + 1, 1)) - 1 < 0 921 | index (WHITE, substr (RS, keyword_pos, 1)) - 1 < 0 922 then call warning (0, "Whitespace must surround the ""^a"" keyword.", keyword); 923 924 return (keyword_pos); 925 926 end find_clause; 927 928 929 /* This procedure implements knowledge of the syntax of &if conditionals (except for detection of missing conditionals, 930* which is done in &if). The forms accepted are "true", "false", "[...]", "|[...]", and "||[...]". The forms 931* containing brackets are evaluated by calling command_processor_$subsys_eval_string with the string contained between them. A 932* zero error code must be returned, and the returned value must be either "true" or "false". */ 933 934 conditional: 935 procedure () returns (bit (1) aligned); 936 937 declare AF_len fixed bin (21), 938 AF_ptr ptr, 939 AF char (AF_len) based (AF_ptr), 940 bars_len fixed bin, 941 value char (8) varying; 942 943 if substr (RS, RS_pos + 1) = "true" then return ("1"b); 944 945 if substr (RS, RS_pos + 1) = "false" then return ("0"b); 946 947 if substr (RS, RS_pos + 1, 1) = "|" 948 then if substr (RS, RS_pos + 2, 1) = "|" 949 then bars_len = 2; 950 else bars_len = 1; 951 else bars_len = 0; 952 953 if substr (RS, RS_pos + bars_len + 1, 1) ^= "[" | substr (RS, RS_len) ^= "]" 954 then call error (0, "Malformed conditional in ""&if"" statement."); 955 956 AF_ptr = addr (substr (RS, RS_pos + bars_len + 2)); 957 AF_len = RS_len - RS_pos - bars_len - 2; /* do not pass brackets surrounding if expression */ 958 959 on request_abort_ call error (0, "request_abort_ signalled while evaluating ""&if"" clause."); 960 call command_processor_$subsys_eval_string ("bce", bce_data$subsys_info_ptr, bce_execute_command_, null (), AF, (bars_len + 1), value, status); 961 revert request_abort_; 962 963 if status ^= 0 then call error (status, "Evaluating ""&if"" clause."); 964 965 if value = "true" then return ("1"b); 966 967 if value = "false" then return ("0"b); 968 969 call error (0, "Illegal value ""^a"" returned by active function.", value); 970 971 end conditional; 972 973 /* This utility predicate knows how to determine if some switch is &attached. */ 974 975 attachedp: 976 procedure () returns (bit (1) aligned); 977 978 return (bce_data$command_abs_data_ptr = bce_data$get_line_data_ptr); 979 980 end attachedp; 981 982 /* This utility predicate knows how to determine if the current line is an input line */ 983 984 input_linep: 985 procedure () returns (bit (1) aligned); 986 987 if ec_data_ptr = null () then return ("0"b); /* Can't be input unless someone tells us so */ 988 989 return (ec_data.input_line); 990 991 end input_linep; 992 993 /* This utility predicate knows how to tell if we were invoked as an active function */ 994 995 functionp: 996 procedure () returns (bit (1) aligned); 997 998 if ec_data_ptr = null () 999 then return ("0"b); /* Can't return a value if we don't have a place to put it */ 1000 else return (ec_data.active_function); 1001 1002 end functionp; 1003 1004 emit_ec_name: 1005 procedure (); /* &ec_name: The entryname of the input file, sans suffix */ 1006 1007 call copy_up_to_ampersand (7); 1008 call copy_string (ec_name, QUOTE); 1009 1010 end emit_ec_name; 1011 1012 emit_arg_count: 1013 procedure (); 1014 1015 declare arg_count_pic picture "zzzzzzzz9", 1016 arg_count_len fixed bin, 1017 arg_count char (arg_count_len) based (addr (substr (arg_count_pic, 10 - arg_count_len))); 1018 1019 call copy_up_to_ampersand (1); 1020 arg_count_pic = abs_data.arg_count; 1021 arg_count_len = length (ltrim (arg_count_pic)); 1022 call copy_string (arg_count, NONE); 1023 1024 end emit_arg_count; 1025 1026 predicate: 1027 procedure (test, width); 1028 1029 declare test bit (1) aligned, 1030 width fixed bin; 1031 1032 call copy_up_to_ampersand (width); 1033 if test 1034 then call copy_string (TRUE, NONE); 1035 else call copy_string (FALSE, NONE); 1036 1037 return; 1038 1039 end predicate; 1040 1041 copy_up_to_ampersand: 1042 procedure (width); 1043 1044 declare width fixed bin; 1045 1046 len = CL_pos - old_CL_pos; 1047 if len > 0 1048 then do; 1049 call check_len (len); 1050 substr (RS, RS_len - len + 1, len) = substr (CL, old_CL_pos + 1, len); 1051 end; 1052 1053 CL_pos = CL_pos + width; 1054 old_CL_pos = CL_pos + 1; 1055 1056 not_in_CL = "1"b; /* Make sure that we know some expansion was encountered */ 1057 1058 return; 1059 1060 end copy_up_to_ampersand; 1061 1062 copy_string: 1063 procedure (arg_string, quote_modifier); 1064 1065 declare arg_string char (*), 1066 quote_modifier fixed bin; 1067 1068 declare (arg_pos, quote_pos, quote_len) 1069 fixed bin (21); 1070 1071 if quote_modifier = NONE 1072 then do; 1073 call check_len (length (arg_string)); 1074 substr (RS, RS_len - length (arg_string) + 1) = arg_string; 1075 return; 1076 end; 1077 1078 arg_pos = 0; 1079 1080 QLOOP: 1081 quote_len = index (substr (RS, old_RS_len + 1), """") - 1; 1082 if quote_len >= 0 1083 then do; 1084 old_RS_len = old_RS_len + quote_len; 1085 quote_len = verify (substr (RS, old_RS_len + 1), """") - 1; 1086 if quote_len < 0 then quote_len = RS_len - old_RS_len; 1087 old_RS_len = old_RS_len + quote_len; 1088 if mod (quote_len, twoL) = 0 1089 then do while (mod (quote_len, 2 * twoL) ^= 0); 1090 quote_len = quote_len - twoL; 1091 twoL = 2 * twoL; 1092 end; 1093 else do while (quote_len ^= 0); 1094 twoL = divide (twoL, 2, 17, 0); 1095 quote_len = mod (quote_len, twoL); 1096 end; 1097 go to QLOOP; 1098 end; 1099 else old_RS_len = RS_len; 1100 1101 if quote_modifier = REQUOTE 1102 then do; /* insert quotes if requoting */ 1103 call check_len (twoL); 1104 substr (RS, RS_len - twoL + 1, twoL) = copy ("""", twoL); 1105 twoL = 2 * twoL; /* increase quote depth by one */ 1106 end; 1107 1108 DBL_LOOP: 1109 quote_pos = index (substr (arg_string, arg_pos + 1), """") - 1; 1110 if quote_pos >= 0 1111 then do; 1112 call check_len (quote_pos); 1113 substr (RS, RS_len - quote_pos + 1, quote_pos) = substr (arg_string, arg_pos + 1, quote_pos); 1114 arg_pos = arg_pos + quote_pos + 1; 1115 call check_len (twoL); 1116 substr (RS, RS_len - twoL + 1, twoL) = copy ("""", twoL); 1117 if arg_pos < length (arg_string) 1118 then go to DBL_LOOP; 1119 else go to APPEND; 1120 end; 1121 1122 quote_pos = length (arg_string) - arg_pos; 1123 if quote_pos > 0 1124 then do; /* something after last quote in arg */ 1125 call check_len (quote_pos); 1126 substr (RS, RS_len - quote_pos + 1, quote_pos) = substr (arg_string, arg_pos + 1, quote_pos); 1127 end; 1128 1129 APPEND: 1130 if quote_modifier = REQUOTE 1131 then do; /* append quotes if requoting */ 1132 twoL = divide (twoL, 2, 17, 0); 1133 call check_len (twoL); 1134 substr (RS, RS_len - twoL + 1, twoL) = copy ("""", twoL); 1135 end; 1136 old_RS_len = RS_len; 1137 1138 return; 1139 1140 end copy_string; 1141 1142 check_len: 1143 proc (len); /* routine to make sure we don't overflow input buffer */ 1144 1145 declare len fixed bin (21), 1146 new_RS_len fixed bin (21); 1147 1148 new_RS_len = RS_len + len; 1149 1150 if new_RS_len > buffer_len then call allocate_buffer (new_RS_len); 1151 1152 RS_len = new_RS_len; 1153 1154 return; 1155 1156 end check_len; 1157 1158 allocate_buffer: 1159 procedure (required_len); 1160 1161 declare required_len fixed bin (21); 1162 1163 not_in_CL = "1"b; /* RS will not be eq to CL after this */ 1164 buffer_allocated = "1"b; 1165 1166 if required_len <= abs_data.allocated_chars_len 1167 then do; /* Reuse allocated buffer if possible */ 1168 abs_data.allocated_chars_ptr -> RS = RS; 1169 buffer_ptr, RS_ptr = abs_data.allocated_chars_ptr; 1170 return; 1171 end; 1172 else call error (0, "Expanded line exceeds implementation restriction of ^d characters in length.", abs_data.allocated_chars_len); 1173 return; 1174 1175 end allocate_buffer; 1176 1177 allocate_hash_table: 1178 procedure (); 1179 1180 on area call error (error_table_$noalloc, "Allocating label hash table."); 1181 1182 allocate hash_table set (abs_data.labels_ptr) in (abs_data_work_area); 1183 1184 revert area; 1185 1186 end allocate_hash_table; 1187 1188 error: 1189 procedure () options (variable); 1190 1191 declare complain entry () variable options (variable), 1192 line_len fixed bin (21), 1193 line_number fixed bin (21), 1194 line_ptr ptr, 1195 line_start fixed bin (21), 1196 line char (line_len) based (line_ptr), 1197 message char (256), 1198 severity bit (1), 1199 status_ptr ptr, 1200 status fixed bin (25) based (status_ptr), 1201 who char (72) varying; 1202 1203 severity = "1"b; 1204 go to ERROR_COMMON; 1205 1206 warning: 1207 entry options (variable); 1208 1209 severity = "0"b; 1210 1211 ERROR_COMMON: 1212 call cu_$arg_ptr (1, status_ptr, (0), (0)); 1213 call ioa_$general_rs (cu_$arg_list_ptr (), 2, 3, message, (0), "1"b, "0"b); 1214 1215 line_number = 0; 1216 do line_start = 0 repeat (line_start + line_len + 1) 1217 while ((line_start <= input_string.position) & (line_start < input_string.len)); 1218 1219 line_len = index (substr (IS, line_start + 1), NL) - 1; 1220 if line_len < 0 then line_len = input_string.len - line_start; 1221 line_number = line_number + 1; 1222 line_ptr = addr (substr (IS, line_start + 1)); 1223 end; 1224 1225 if ec_data.active_function 1226 then complain = active_fnc_err_; 1227 else complain = com_err_; 1228 who = ec_data.who_am_i; 1229 1230 call complain (status, who, "^[^/^]^[Error^;Warning^] on line #^d of ^a:^/^a^/SOURCE:^-^a", status ^= 0, 1231 severity, line_number, ec_name, message, line); 1232 1233 if ^severity then return; 1234 1235 state = NORMAL; /* Prevent looping if state is a MUST_BE state. */ 1236 1237 go to END_OF_FILE; 1238 1239 end error; 1240 end bce_exec_com_input; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 06/29/00 1718.0 bce_exec_com_input.pl1 >udd>sm>ds>w>ml>bce_exec_com_input.pl1 169 1 07/11/84 1037.3 bce_abs_io_data.incl.pl1 >ldd>incl>bce_abs_io_data.incl.pl1 171 2 06/24/81 1844.4 abs_io_hash.incl.pl1 >ldd>incl>abs_io_hash.incl.pl1 173 3 04/13/82 1720.2 ec_data.incl.pl1 >ldd>incl>ec_data.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. AF based char packed unaligned dcl 937 set ref 960* AF_len 000100 automatic fixed bin(21,0) dcl 937 set ref 957* 960 960 AF_ptr 000102 automatic pointer dcl 937 set ref 956* 960 CL based char packed unaligned dcl 41 set ref 239 248 262 268 272 281 285 287 288 289 308 314 334 353 365 602* 1050 CL_len 000131 automatic fixed bin(21,0) dcl 41 set ref 224* 226 233* 234 239 248 262 268 272 272 281 285 285 287 287 288 288 289 289 308 314 334 353 363 365 368 418* 445 500 549* 566 577 579* 581 602 602 653 655* 853* 1050 CL_pos 000132 automatic fixed bin(21,0) dcl 41 set ref 239* 240 246 262 268 272 281 285 287 288 289 308 314 334 351* 351 353 356* 356 1046 1053* 1053 1054 CL_ptr 000134 automatic pointer dcl 41 set ref 232* 239 248 262 268 272 281 285 287 288 289 308 314 334 353 365 369 602 1050 COMMENT constant fixed bin(17,0) initial dcl 118 ref 404 839 878 DATA constant fixed bin(17,0) initial dcl 118 ref 407 ELSE constant fixed bin(17,0) initial dcl 118 ref 866 878 FALSE 000246 constant char(5) initial packed unaligned dcl 98 set ref 1035* GOTO constant fixed bin(17,0) initial dcl 118 ref 560 HIGH 000212 constant fixed bin(17,0) initial array dcl 128 ref 384 IS based char packed unaligned dcl 38 set ref 232 233 546 579 1219 1222 KEYWORD 000106 constant varying char(12) initial array dcl 131 ref 385 LABEL constant fixed bin(17,0) initial dcl 118 ref 536 586 591 LOW 000226 constant fixed bin(17,0) initial array dcl 125 ref 384 MUST_BE_LABEL constant fixed bin(17,0) initial dcl 112 ref 464 468 521 531 548 MUST_BE_THEN constant fixed bin(17,0) initial dcl 112 ref 471 793 NL 000250 constant char(1) initial packed unaligned dcl 92 set ref 233 546 785* 813 1219 NL_THEN_AMP constant char(2) initial packed unaligned dcl 95 ref 579 NONE 000331 constant fixed bin(17,0) initial dcl 108 set ref 209 324 344* 349 1022* 1033* 1035* 1071 NORMAL constant fixed bin(17,0) initial dcl 112 ref 217 523 526 536 575 596 782 823 872 884 886 1235 P_actual_len parameter fixed bin(21,0) dcl 16 set ref 8 188* 424* 428* 429 429 430 433 434 437 438 448 448 450 450 483* 670* P_buffer based char packed unaligned dcl 16 set ref 429* 429 448* 450* P_buffer_len parameter fixed bin(21,0) dcl 16 set ref 8 180 188* 428 670* P_buffer_ptr parameter pointer dcl 16 set ref 8 179 188* 429 448 450 670* P_status parameter fixed bin(35,0) dcl 16 set ref 8 188* 452* 454* 484* 670* QUOTE 000336 constant fixed bin(17,0) initial dcl 108 set ref 298 1008* RANK_AMP_ADJ 010002 constant fixed bin(17,0) initial dcl 104 ref 314 RANK_F_ADJ constant fixed bin(17,0) initial dcl 104 ref 309 RANK_ZERO constant fixed bin(17,0) initial dcl 104 ref 308 334 REQUOTE constant fixed bin(17,0) initial dcl 108 ref 303 1101 1129 RS based char packed unaligned dcl 48 set ref 365* 375 381 383 385 387 393 399 411* 433 437 510 512 606 606 618 628 630 630 630 630 697 699 699 700 700 734 735 737 737 738 738 778 784* 797 800 811 812 813* 820 861 914 920 920 943 945 947 947 953 953 956 1050* 1074* 1080 1085 1104* 1113* 1116* 1126* 1134* 1168* 1168 RS_len 000140 automatic fixed bin(21,0) dcl 48 set ref 242* 365 365 368* 375 375 381 383 385 387 388 393 399 411 411 421* 424 428 430 433 434 437 438 438* 439* 510 512 606 606 606 606 610 615 618 619* 619 623* 623 624 624* 628 630 630 630 630 637 650 691 697* 697 699 699 700 700 727 734 735* 735 737 737 738 738 770 774 775* 778* 778 784 784 797 798* 800 801 809* 810 811 812* 812 813 813 818 818 820 821* 821 856* 861 862 914 920 920 943 945 947 947 953 953 953 956 957 1050 1050 1074 1074 1080 1085 1086 1099 1104 1104 1113 1113 1116 1116 1126 1126 1134 1134 1136 1148 1152* 1168 1168 RS_pos 000141 automatic fixed bin(21,0) dcl 48 set ref 387* 388 388* 510 512 606 606 610 615 615* 615 618 619 637 650 691 699 699 700 700 727 734 737 737 738 738 770 770 800* 801 801* 818 818* 820 821 861* 862 862* 912 914 918 943 945 947 947 953 956 957 RS_ptr 000142 automatic pointer dcl 48 set ref 243* 365 369* 375 381 383 385 387 393 399 411 422* 429 433 437* 437 440 510 512 606 606 618* 618 628 630 630 630 630 697 699 699 700 700 734 735 737 737 738 738 778 784 797* 797 800 811 812 813 820* 820 858* 861 914 920 920 943 945 947 947 953 953 956 1050 1074 1080 1085 1104 1113 1116 1126 1134 1168 1169* SEARCHING_FOR_LABEL constant fixed bin(17,0) initial dcl 112 ref 460 460 565 SKIPABLE 000040 constant bit(1) initial array dcl 139 ref 889 SKIPPING_CLAUSE constant fixed bin(17,0) initial dcl 112 ref 215 787 874 893 SPACE constant char(1) initial packed unaligned dcl 98 set ref 344* THEN constant fixed bin(17,0) initial dcl 118 ref 825 842 TRACE 000063 constant bit(1) initial array dcl 136 ref 411 TRACE_ELSE 000242 constant char(6) initial packed unaligned dcl 98 set ref 827* TRACE_THEN 000244 constant char(6) initial packed unaligned dcl 98 set ref 825* TRUE constant char(4) initial packed unaligned dcl 98 set ref 1033* WHITE 000036 constant char(5) initial packed unaligned dcl 143 ref 383 387 512 697 734 735 778 800 812 861 920 920 abs_data based structure level 1 dcl 1-12 abs_data_ptr 000206 automatic pointer dcl 1-10 set ref 177* 178 185 196 198 202 204 215 215 219 226 226 229 229 232 232 232 233 233 233 317 332 342 343 343 343 344 347 347 347 348 348 348 348 411 421 422 433 434 438 440 442 445 445 448 450 452 456 474 495 497 500 500 500 507 507 533 535 544 545 546 546 546 546 556 564 566 566 570 572 573 577 577 579 579 579 583 594 602 653 653 706 710 714 718 780 780 784 785 786 786 803 810 811 825 827 829 831 831 856 858 859 868 871 871 872 872 885 1008 1008 1008 1020 1166 1168 1169 1172 1182 1182 1216 1216 1219 1219 1220 1222 1222 1230 1230 1230 abs_data_work_area based area dcl 1-67 ref 556 1182 active 47 based bit(1) level 2 dcl 1-12 set ref 185 196* 198* 456* active_fnc_err_ 000032 constant entry external dcl 158 ref 1225 active_function 2 based bit(1) level 2 dcl 3-5 ref 1000 1225 addr builtin function dcl 23 ref 188 188 232 433 437 510 618 630 630 630 630 666 667 670 670 756 756 756 756 797 811 820 956 1022 1222 allocated_chars_len 44 based fixed bin(21,0) level 2 dcl 1-12 set ref 1166 1172* allocated_chars_ptr 36 based pointer level 2 dcl 1-12 ref 1168 1169 area 000100 stack reference condition dcl 27 ref 554 558 1180 1184 arg_array based structure array level 1 dcl 87 arg_count 10 based fixed bin(17,0) level 3 in structure "abs_data" dcl 1-12 in procedure "bce_exec_com_input" ref 317 332 342 344 348 1020 arg_count based char packed unaligned dcl 1015 in procedure "emit_arg_count" set ref 1022* arg_count_len 000333 automatic fixed bin(17,0) dcl 1015 set ref 1021* 1022 1022 1022 arg_count_pic 000330 automatic picture(9) packed unaligned dcl 1015 set ref 1020* 1021 1022 arg_idx 000145 automatic fixed bin(17,0) dcl 54 set ref 317* 329* 332 332* 332 342* 342* 343 343 343 344* 347 348 348 348 348 arg_info 2 based structure level 2 dcl 1-12 arg_pos 000356 automatic fixed bin(21,0) dcl 1068 set ref 1078* 1108 1113 1114* 1114 1117 1122 1126 arg_ptr 6 based pointer level 3 dcl 1-12 ref 343 343 343 348 348 348 arg_string parameter char packed unaligned dcl 1065 in procedure "copy_string" ref 1062 1073 1073 1074 1074 1108 1113 1117 1122 1126 arg_string based char packed unaligned dcl 85 in procedure "bce_exec_com_input" set ref 343* 348* attach 30 based structure level 2 dcl 1-12 bars_len 000104 automatic fixed bin(17,0) dcl 937 set ref 947* 950* 951* 953 956 957 960 bce_check_abort 000034 constant entry external dcl 158 ref 379 bce_data$command_abs_data_ptr 000020 external static pointer dcl 146 ref 642 643 644 667 668 978 bce_data$get_line 000030 external static entry variable dcl 146 set ref 188 188 188 643 645* 666 667 670 670 670 bce_data$get_line_data_ptr 000022 external static pointer dcl 146 set ref 642 644* 668* 978 bce_data$put_chars 000026 external static entry variable dcl 146 set ref 630 630 630 756 756 756 bce_data$subsys_info_ptr 000024 external static pointer dcl 146 set ref 960* bce_execute_command_ 000046 constant entry external dcl 158 ref 960 960 bce_get_line_entry based structure level 1 dcl 34 bce_sw_data_ptr parameter pointer dcl 16 ref 8 177 bce_switch based structure level 1 dcl 30 binary builtin function dcl 23 ref 513 break 000146 automatic fixed bin(17,0) dcl 54 set ref 248* 249 250 252 252 262* 264 265 266 308* 309 314 321 321 331* 331 331 331* 332* 353* 354 356 381* 382 384 384 393 399 buffer_allocated 000147 automatic bit(1) dcl 54 set ref 222* 416* 424 809 851* 1164* buffer_len 000150 automatic fixed bin(21,0) dcl 54 set ref 180* 1150 buffer_ptr 000152 automatic pointer dcl 54 set ref 179* 243 1169* call_ready_proc 36 based bit(1) level 2 dcl 3-5 set ref 685* char builtin function dcl 23 ref 513 chars_len 45 based fixed bin(21,0) level 2 dcl 1-12 set ref 204 421 434* 438* 442* 452 chars_ptr 40 based pointer level 2 dcl 1-12 set ref 422 433* 440* cleanup 000106 stack reference condition dcl 27 ref 196 codeptr builtin function dcl 23 ref 643 com_err_ 000036 constant entry external dcl 158 ref 192 759 1227 command_line 20 based structure level 2 dcl 1-12 set ref 450* 706* command_processor_$subsys_eval_string 000044 constant entry external dcl 158 ref 960 comment_line 22 based structure level 2 dcl 1-12 set ref 602* 710* complain 000100 automatic entry variable dcl 1191 set ref 1225* 1227* 1230 control 000154 automatic fixed bin(17,0) dcl 54 set ref 384* 385* 404* 407* 411 414 536 560 586 591 825 839 842 866* 878 878 878 889 891 control_line 24 based structure level 2 dcl 1-12 set ref 411* 714* 784* 785* 825* 827* copy builtin function dcl 23 ref 1104 1116 1134 copy_len 000155 automatic fixed bin(21,0) dcl 54 set ref 363* 364* 365 365 365 cu_$arg_list_ptr 000040 constant entry external dcl 158 ref 1213 1213 cu_$arg_ptr 000042 constant entry external dcl 158 ref 1211 current_label based char packed unaligned dcl 2-7 set ref 513 517 536 554* 556 current_label_len 000212 automatic fixed bin(21,0) dcl 2-7 set ref 512* 513 513 513 517 536 554 554 556 556 556 current_label_ptr 000214 automatic pointer dcl 2-7 set ref 510* 513 517 536 554 556 data_ptr 4 based pointer level 2 dcl 30 ref 177 divide builtin function dcl 23 ref 1094 1132 ec_data based structure level 1 dcl 3-5 ec_data_ptr 000216 automatic pointer dcl 3-3 in procedure "bce_exec_com_input" set ref 178* 624 624 628 628 640 685 685 987 989 998 1000 1225 1228 ec_data_ptr based pointer level 2 in structure "abs_data" dcl 1-12 in procedure "bce_exec_com_input" ref 178 ec_name based char packed unaligned dcl 82 set ref 347* 1008* 1230* ec_name_len 4 based fixed bin(21,0) level 3 dcl 1-12 ref 347 347 1008 1008 1230 1230 ec_name_ptr 2 based pointer level 3 dcl 1-12 ref 347 1008 1230 else_clause_len 46 based fixed bin(21,0) level 2 dcl 1-12 set ref 219 497* 803 810* 831 856 859* else_clause_ptr 42 based pointer level 2 dcl 1-12 set ref 811* 858 env 2 based pointer level 2 dcl 34 set ref 666* eof 50 based bit(1) level 2 dcl 1-12 set ref 202 474* error_table_$command_line_overflow 000012 external static fixed bin(35,0) dcl 146 set ref 624* error_table_$end_of_info 000014 external static fixed bin(35,0) dcl 146 ref 484 error_table_$long_record 000016 external static fixed bin(35,0) dcl 146 ref 452 error_table_$noalloc 000010 external static fixed bin(35,0) dcl 146 set ref 554* 1180* expected_nest_level 52 based fixed bin(17,0) level 2 dcl 1-12 set ref 215 786* 829* 872 flag 000204 automatic bit(1) level 2 packed packed unaligned dcl 78 set ref 679* from_sw 000156 automatic bit(1) dcl 54 set ref 210* 276* 309 311* 325* 339 341* get_next_line 000160 automatic label variable local dcl 54 set ref 223* 498* 507 524 536 550 575 581 604 608 648 659 681 686 708 712 716 720 814* 831* 839 864* 889 896* hash 000164 automatic fixed bin(17,0) dcl 54 set ref 513* 517 535 542 562 572 573 hash_table based pointer initial array packed unaligned dcl 2-5 set ref 535 572 573* 1182 1182* index builtin function dcl 23 ref 233 239 248 262 353 381 579 914 920 920 1080 1108 1219 input_line 35 based bit(1) level 2 in structure "ec_data" dcl 3-5 in procedure "bce_exec_com_input" ref 989 input_line 26 based structure level 2 in structure "abs_data" dcl 1-12 in procedure "bce_exec_com_input" set ref 448* 718* input_reset_sw 000165 automatic bit(1) dcl 54 set ref 181* 476 478* input_string 12 based structure level 2 dcl 1-12 ioa_$general_rs 000050 constant entry external dcl 158 ref 1213 ioa_$nnl 000052 constant entry external dcl 158 ref 606 keyword parameter char packed unaligned dcl 908 set ref 905 914 920 920* keyword_pos 000270 automatic fixed bin(21,0) dcl 908 set ref 912* 918* 920 920 924 label based structure level 1 dcl 2-12 set ref 556 label_ptr 000210 automatic pointer dcl 2-7 set ref 527* 535* 535* 536 543 545* 552 556* 563 570 572 573 labels_ptr 72 based pointer level 2 dcl 1-12 set ref 533 535 572 573 1182* len 3 based fixed bin(21,0) level 2 in structure "label" dcl 2-12 in procedure "bce_exec_com_input" set ref 517 536 556* 556 584 584 597 597 len 000166 automatic fixed bin(21,0) dcl 54 in procedure "bce_exec_com_input" set ref 383* 385 387 387 388 393 734* 1046* 1047 1049* 1050 1050 1050 len parameter fixed bin(21,0) dcl 1145 in procedure "check_len" ref 1142 1148 len 2 based fixed bin(21,0) array level 2 in structure "arg_array" dcl 87 in procedure "bce_exec_com_input" ref 343 343 348 348 len 14 based fixed bin(21,0) level 3 in structure "abs_data" dcl 1-12 in procedure "bce_exec_com_input" ref 229 232 233 546 579 1216 1219 1220 1222 length builtin function dcl 23 ref 512 630 630 697 735 756 756 778 812 920 1021 1073 1073 1074 1117 1122 limit 17 based fixed bin(21,0) level 3 dcl 1-12 set ref 500* 500 507 566 line parameter char packed unaligned dcl 751 in procedure "trace_output" set ref 748 756 756 756 756 line based char packed unaligned dcl 1191 in procedure "error" set ref 1230* line_len 000104 automatic fixed bin(21,0) dcl 1191 set ref 1219* 1220 1220* 1223 1230 1230 line_number 000105 automatic fixed bin(21,0) dcl 1191 set ref 1215* 1221* 1221 1230* line_ptr 000106 automatic pointer dcl 1191 set ref 1222* 1230 line_start 000110 automatic fixed bin(21,0) dcl 1191 set ref 1216* 1216 1216* 1219 1220 1222* 1223 ltrim builtin function dcl 23 ref 1021 max builtin function dcl 23 ref 342 500 message 000111 automatic char(256) packed unaligned dcl 1191 set ref 1213* 1230* min builtin function dcl 23 ref 272 285 287 288 289 375 428 513 606 606 mod builtin function dcl 23 ref 513 1088 1088 1095 name 5 based char initial level 2 dcl 2-12 set ref 517 536 556* 584* 597* nest_level 51 based fixed bin(17,0) level 2 dcl 1-12 set ref 215 495* 780* 780 786 831 868 871* 871 872 885* new_RS_len 000370 automatic fixed bin(21,0) dcl 1145 set ref 1148* 1150 1150* 1152 next_ptr based pointer level 2 packed packed unaligned dcl 2-12 set ref 552 572* not_in_CL 000136 automatic bit(1) dcl 41 set ref 236* 360 420* 424 430 809 854* 1056* 1163* null builtin function dcl 23 ref 533 535 640 666 685 960 960 987 998 1182 old_CL_pos 000137 automatic fixed bin(21,0) dcl 41 set ref 242* 363 365 1046 1050 1054* old_IS_pos 000130 automatic fixed bin(21,0) dcl 38 set ref 544* 564* 583 594 old_RS_len 000144 automatic fixed bin(21,0) dcl 48 set ref 242* 774* 798 1080 1084* 1084 1085 1086 1087* 1087 1099* 1136* on parameter bit(1) level 2 in structure "trace_structure" dcl 725 in procedure "trace_control" set ref 730* 737* 738* 741* on parameter bit(1) level 2 in structure "trace_structure" dcl 751 in procedure "trace_output" ref 755 position 16 based fixed bin(21,0) level 3 dcl 1-12 set ref 226* 226 229 232 233 445* 445 500 507 544 545* 546 546 564 566* 570 577* 577 579 583* 594* 653* 653 1216 proc based pointer level 2 dcl 34 set ref 667* ptr based pointer array level 2 in structure "arg_array" dcl 87 in procedure "bce_exec_com_input" ref 343 348 ptr 12 based pointer level 3 in structure "abs_data" dcl 1-12 in procedure "bce_exec_com_input" ref 232 233 546 579 1219 1222 quote_len 000360 automatic fixed bin(21,0) dcl 1068 set ref 1080* 1082 1084 1085* 1086 1086* 1087 1088 1088 1090* 1090 1093 1095* 1095 quote_modifier parameter fixed bin(17,0) dcl 1065 in procedure "copy_string" ref 1062 1071 1101 1129 quote_modifier 000167 automatic fixed bin(17,0) dcl 54 in procedure "bce_exec_com_input" set ref 209* 298* 303* 324* 343* 347* 348* 349* quote_pos 000357 automatic fixed bin(21,0) dcl 1068 set ref 1108* 1110 1112* 1113 1113 1113 1114 1122* 1123 1125* 1126 1126 1126 rank builtin function dcl 23 ref 308 334 ready_mode 000204 automatic structure level 1 dcl 78 set ref 677* request_abort_ 000114 stack reference condition dcl 27 ref 193 760 959 961 required_len parameter fixed bin(21,0) dcl 1161 ref 1158 1166 return_arg based varying char dcl 82 set ref 628* return_len 3 based fixed bin(21,0) level 2 dcl 3-5 set ref 624 624* 628 return_ptr 4 based pointer level 2 dcl 3-5 ref 628 rtrim builtin function dcl 23 ref 512 697 735 778 812 save_ptr 34 based pointer level 3 dcl 1-12 set ref 642* 668 saved_hash 000172 automatic fixed bin(17,0) dcl 54 set ref 211* 517 520* 542* 562* saved_label_ptr 000174 automatic pointer dcl 54 set ref 517 527 543* 563* 584 597 saved_state 000176 automatic fixed bin(17,0) dcl 54 set ref 792* 844 scanning_clause 000177 automatic bit(1) dcl 54 set ref 237* 419* 424 504 599 835* 878 883* search builtin function dcl 23 ref 383 734 severity 000211 automatic bit(1) packed unaligned dcl 1191 set ref 1203* 1209* 1230* 1233 start 000170 automatic fixed bin(21,0) dcl 54 set ref 767* 770 772 775 790 797 798 806* 807 810 811 812 start_keyword 000271 automatic fixed bin(21,0) dcl 908 set ref 914* 916 918 state 000171 automatic fixed bin(17,0) dcl 54 set ref 215* 217* 389 409 460 464 468 471 521 523* 526* 531 536 548* 565* 575 596* 782 787* 792 793* 823 844* 872* 874* 884* 893* 1235* statement_pos 1 based fixed bin(21,0) level 2 dcl 2-12 set ref 545 570* status 000200 automatic fixed bin(35,0) dcl 54 in procedure "bce_exec_com_input" set ref 630* 756* 757 759* 960* 963 963* status based fixed bin(25,0) dcl 1191 in procedure "error" set ref 1230* 1230 status_ptr 000212 automatic pointer dcl 1191 set ref 1211* 1230 1230 string builtin function dcl 23 set ref 677* sub_request_abort_ 000122 stack reference condition dcl 27 ref 378 380 substr builtin function dcl 23 set ref 232 233 248 262 268 272 281 285 287 288 289 308 314 334 353 365* 365 375 381 383 385 387 393 399 433 437 510 512 513 546 579 606 606 618 699 699 700 700 734 737 737 738 738 797 800 811 812 813* 820 861 914 920 920 943 945 947 947 953 953 956 1022 1050* 1050 1074* 1080 1085 1104* 1108 1113* 1113 1116* 1126* 1126 1134* 1219 1222 test parameter bit(1) dcl 1029 in procedure "predicate" ref 1026 1033 test 000201 automatic bit(1) dcl 54 in procedure "bce_exec_com_input" set ref 683* 685 trace_structure parameter structure level 1 dcl 751 in procedure "trace_output" ref 748 trace_structure parameter structure level 1 dcl 725 in procedure "trace_control" set ref 722 twoL 000202 automatic fixed bin(21,0) dcl 54 set ref 244* 1088 1088 1090 1091* 1091 1094* 1094 1095 1103* 1104 1104 1104 1105* 1105 1115* 1116 1116 1116 1132* 1132 1133* 1134 1134 1134 unspec builtin function dcl 23 ref 513 value 000105 automatic varying char(8) dcl 937 set ref 960* 965 967 969* verify builtin function dcl 23 ref 387 800 861 1085 victim_ptr 30 based pointer level 3 dcl 1-12 set ref 643* 667 who 000214 automatic varying char(72) dcl 1191 set ref 1228* 1230* who_am_i 37 based varying char(72) level 2 dcl 3-5 ref 1228 width parameter fixed bin(17,0) dcl 1029 in procedure "predicate" set ref 1026 1032* width 000203 automatic fixed bin(17,0) dcl 54 in procedure "bce_exec_com_input" set ref 208* 306* 306 308 314 318* 318 323* 333* 333 334 336* 338* width parameter fixed bin(17,0) dcl 1044 in procedure "copy_up_to_ampersand" ref 1041 1053 work_area_ptr 74 based pointer level 2 dcl 1-12 ref 556 1182 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALL internal static fixed bin(17,0) initial dcl 1-72 BOTH internal static fixed bin(17,0) initial dcl 1-72 EXPANDED internal static fixed bin(17,0) initial dcl 1-72 UNEXPANDED internal static fixed bin(17,0) initial dcl 1-72 Work_area_size internal static fixed bin(17,0) initial dcl 1-69 abs_data_version_1 internal static fixed bin(17,0) initial dcl 1-69 ec_data_version_1 internal static fixed bin(17,0) initial dcl 3-21 ec_data_version_id internal static char(4) initial dcl 3-21 NAMES DECLARED BY EXPLICIT CONTEXT. ABORT 002723 constant label dcl 474 ref 378 APPEND 006476 constant label dcl 1129 ref 1119 CHECK_CONTROL 002201 constant label dcl 375 ref 837 COMMENT_LINE 002427 constant label dcl 404 ref 249 382 CONTINUE_LONG_RECORD 002463 constant label dcl 416 ref 204 CONTINUE_THEN 004311 constant label dcl 803 ref 846 876 CONTINUE_WITH_PENDING_ELSE_CLAUSE 004523 constant label dcl 851 ref 219 CONTROL 000013 constant label array(-1:17) dcl 424 ref 414 878 891 COPY_ARG 002002 constant label dcl 336 ref 319 COPY_REST 002152 constant label dcl 360 ref 240 DBL_LOOP 006377 constant label dcl 1108 ref 1117 EGRESS 002644 constant label dcl 456 ref 486 671 END_OF_FILE 002676 constant label dcl 468 ref 202 229 613 632 1237 ENTER_SKIPPING_CLAUSE_STATE 004644 constant label dcl 893 ref 831 ERROR_COMMON 006725 constant label dcl 1211 ref 1204 EXPAND 000000 constant label array(10:15) dcl 268 ref 252 266 EXPAND_AGAIN 002132 constant label dcl 351 ref 253 264 268 274 281 291 296 326 EXPAND_ARG_NUMBER 001751 constant label dcl 329 set ref 250 265 EXPAND_LOOP 001522 constant label dcl 262 ref 357 EXPAND_MODIFIER 001701 constant label dcl 306 ref 279 301 312 EXPAND_NEXT_LINE 001430 constant label dcl 226 ref 223 498 794 864 896 898 GET_CURRENT_LABEL 003005 constant label dcl 510 ref 502 586 591 GET_NEXT_LABEL_LINE 003316 constant label dcl 577 ref 540 567 589 GET_PENDING_ELSE_CLAUSE 004527 constant label dcl 856 ref 814 NO_NEW_LINE 002647 constant label dcl 460 ref 234 QLOOP 006262 constant label dcl 1080 ref 1097 STATE 000006 constant label array(0:4) dcl 411 ref 389 409 460 886 THREAD_IN_LABEL 003272 constant label dcl 570 ref 528 UNSTUCK_LABEL 003404 constant label dcl 594 set ref 464 468 531 546 allocate_buffer 006535 constant entry internal dcl 1158 ref 439 809 1150 allocate_hash_table 006605 constant entry internal dcl 1177 ref 533 attachedp 005770 constant entry internal dcl 975 ref 185 288 288 640 664 bce_exec_com_input 001244 constant entry external dcl 8 ref 645 check_len 006521 constant entry internal dcl 1142 ref 364 1049 1073 1103 1112 1115 1125 1133 conditional 005421 constant entry internal dcl 934 ref 787 copy_string 006221 constant entry internal dcl 1062 ref 343 344 347 348 1008 1022 1033 1035 copy_up_to_ampersand 006165 constant entry internal dcl 1041 ref 336 1007 1019 1032 emit_arg_count 006057 constant entry internal dcl 1012 ref 293 emit_ec_name 006031 constant entry internal dcl 1004 ref 272 error 006705 constant entry internal dcl 1188 ref 471 504 554 584 597 599 634 770 842 848 868 953 959 963 969 1172 1180 find_clause 005307 constant entry internal dcl 905 ref 767 806 functionp 006015 constant entry internal dcl 995 ref 285 285 287 287 621 input_linep 006001 constant entry internal dcl 984 ref 289 289 448 669 predicate 006141 constant entry internal dcl 1026 ref 285 287 288 289 reset_input 004652 constant entry internal dcl 661 ref 480 657 trace_control 005045 constant entry internal dcl 722 ref 706 710 714 718 trace_mode 004725 constant entry internal dcl 688 ref 679 683 trace_output 005206 constant entry internal dcl 748 ref 411 448 450 602 784 785 825 827 warning 006716 constant entry internal dcl 1206 ref 393 399 466 610 624 637 650 693 701 729 740 920 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 10344 10420 10014 10354 Length 10726 10014 54 272 327 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME bce_exec_com_input 594 external procedure is an external procedure. on unit on line 196 64 on unit on unit on line 378 64 on unit on unit on line 554 88 on unit reset_input internal procedure shares stack frame of external procedure bce_exec_com_input. trace_mode internal procedure shares stack frame of external procedure bce_exec_com_input. trace_control internal procedure shares stack frame of external procedure bce_exec_com_input. trace_output internal procedure shares stack frame of external procedure bce_exec_com_input. find_clause internal procedure shares stack frame of external procedure bce_exec_com_input. conditional 142 internal procedure enables or reverts conditions. on unit on line 959 92 on unit attachedp internal procedure shares stack frame of external procedure bce_exec_com_input. input_linep internal procedure shares stack frame of external procedure bce_exec_com_input. functionp internal procedure shares stack frame of external procedure bce_exec_com_input. emit_ec_name internal procedure shares stack frame of external procedure bce_exec_com_input. emit_arg_count internal procedure shares stack frame of external procedure bce_exec_com_input. predicate internal procedure shares stack frame of external procedure bce_exec_com_input. copy_up_to_ampersand internal procedure shares stack frame of external procedure bce_exec_com_input. copy_string internal procedure shares stack frame of external procedure bce_exec_com_input. check_len internal procedure shares stack frame of external procedure bce_exec_com_input. allocate_buffer internal procedure shares stack frame of external procedure bce_exec_com_input. allocate_hash_table 70 internal procedure enables or reverts conditions. on unit on line 1180 84 on unit error 246 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME bce_exec_com_input 000130 old_IS_pos bce_exec_com_input 000131 CL_len bce_exec_com_input 000132 CL_pos bce_exec_com_input 000134 CL_ptr bce_exec_com_input 000136 not_in_CL bce_exec_com_input 000137 old_CL_pos bce_exec_com_input 000140 RS_len bce_exec_com_input 000141 RS_pos bce_exec_com_input 000142 RS_ptr bce_exec_com_input 000144 old_RS_len bce_exec_com_input 000145 arg_idx bce_exec_com_input 000146 break bce_exec_com_input 000147 buffer_allocated bce_exec_com_input 000150 buffer_len bce_exec_com_input 000152 buffer_ptr bce_exec_com_input 000154 control bce_exec_com_input 000155 copy_len bce_exec_com_input 000156 from_sw bce_exec_com_input 000160 get_next_line bce_exec_com_input 000164 hash bce_exec_com_input 000165 input_reset_sw bce_exec_com_input 000166 len bce_exec_com_input 000167 quote_modifier bce_exec_com_input 000170 start bce_exec_com_input 000171 state bce_exec_com_input 000172 saved_hash bce_exec_com_input 000174 saved_label_ptr bce_exec_com_input 000176 saved_state bce_exec_com_input 000177 scanning_clause bce_exec_com_input 000200 status bce_exec_com_input 000201 test bce_exec_com_input 000202 twoL bce_exec_com_input 000203 width bce_exec_com_input 000204 ready_mode bce_exec_com_input 000206 abs_data_ptr bce_exec_com_input 000210 label_ptr bce_exec_com_input 000212 current_label_len bce_exec_com_input 000214 current_label_ptr bce_exec_com_input 000216 ec_data_ptr bce_exec_com_input 000270 keyword_pos find_clause 000271 start_keyword find_clause 000330 arg_count_pic emit_arg_count 000333 arg_count_len emit_arg_count 000356 arg_pos copy_string 000357 quote_pos copy_string 000360 quote_len copy_string 000370 new_RS_len check_len conditional 000100 AF_len conditional 000102 AF_ptr conditional 000104 bars_len conditional 000105 value conditional error 000100 complain error 000104 line_len error 000105 line_number error 000106 line_ptr error 000110 line_start error 000111 message error 000211 severity error 000212 status_ptr error 000214 who error THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp call_ent_var_desc call_ent_var call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc return_mac tra_ext_1 mdfx1 signal_op enable_op shorten_stack ext_entry int_entry set_chars_eis index_chars_eis op_alloc_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ bce_check_abort bce_execute_command_ com_err_ command_processor_$subsys_eval_string cu_$arg_list_ptr cu_$arg_ptr ioa_$general_rs ioa_$nnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. bce_data$command_abs_data_ptr bce_data$get_line bce_data$get_line_data_ptr bce_data$put_chars bce_data$subsys_info_ptr error_table_$command_line_overflow error_table_$end_of_info error_table_$long_record error_table_$noalloc CONSTANTS 007206 aa 377777777777 007207 aa 007777000001 007210 aa 000002000000 007211 aa 000000000000 007212 aa 600000000041 007213 aa 000370000000 007214 aa 000002000000 007215 aa 000000000000 007216 aa 600000000041 007217 aa 000357000000 007220 aa 000002000000 007221 aa 000000000000 007222 aa 600000000041 007223 aa 000202000000 007224 aa 000002000000 007225 aa 000000000000 007226 aa 600000000041 007227 aa 001051000000 007230 aa 000002000000 007231 aa 000000000000 007232 aa 600000000041 007233 aa 000166000000 007234 aa 000004000000 007235 aa 000004000000 007236 ta 000246000000 007237 aa 000000000000 007240 ta 000331000000 007241 aa 000000000000 007242 ta 000260000000 007243 aa 000000000000 007244 ta 000323000000 007245 aa 000000000000 007246 aa 000004000000 007247 aa 000004000000 007250 ta 000276000000 007251 aa 000000000000 007252 ta 000331000000 007253 aa 000000000000 007254 ta 000261000000 007255 aa 000000000000 007256 ta 000323000000 007257 aa 000000000000 007260 aa 110 070 321 000 H8Ñ 007262 aa 000002000000 007263 aa 000000000000 007264 aa 600000000041 007265 aa 001016000000 007266 aa 000002000000 007267 aa 000000000000 007270 aa 600000000041 007271 aa 001000000000 007272 aa 000002000000 007273 aa 000000000000 007274 aa 600000000041 007275 aa 000560000000 007276 aa 000004000000 007277 aa 000004000000 007300 aa 600000000041 007301 aa 000556000000 007302 aa 600000000041 007303 aa 000170000000 007304 ta 000304000000 007305 aa 000000000000 007306 ta 000335000000 007307 aa 000000000000 007310 aa 000002000000 007311 aa 000000000000 007312 aa 600000000041 007313 aa 000201000000 007314 aa 077777000043 007315 aa 000001000000 007316 aa 000002000000 007317 aa 000000000000 007320 aa 600000000041 007321 aa 000140000000 007322 aa 777 777 777 777 ÿÿÿÿ 007323 aa 777 777 777 777 ÿÿÿÿ 007324 aa 777 000 000 000 ÿ 007325 aa 000 777 777 777 ÿÿÿ 007326 aa 777 777 777 777 ÿÿÿÿ 007327 aa 777 777 777 777 ÿÿÿÿ 007330 aa 777 777 777 777 ÿÿÿÿ 007331 aa 777 777 777 777 ÿÿÿÿ 007332 aa 000 777 777 777 ÿÿÿ 007333 aa 777 777 777 777 ÿÿÿÿ 007334 aa 777 777 777 777 ÿÿÿÿ 007335 aa 777 777 777 777 ÿÿÿÿ 007336 aa 777 777 777 777 ÿÿÿÿ 007337 aa 777 777 777 777 ÿÿÿÿ 007340 aa 777 777 777 777 ÿÿÿÿ 007341 aa 777 777 777 777 ÿÿÿÿ 007342 aa 777 777 777 777 ÿÿÿÿ 007343 aa 777 777 777 777 ÿÿÿÿ 007344 aa 777 777 777 777 ÿÿÿÿ 007345 aa 777 777 777 777 ÿÿÿÿ 007346 aa 777 777 777 777 ÿÿÿÿ 007347 aa 777 777 777 777 ÿÿÿÿ 007350 aa 777 777 777 777 ÿÿÿÿ 007351 aa 777 777 777 777 ÿÿÿÿ 007352 aa 777 777 777 777 ÿÿÿÿ 007353 aa 777 777 777 777 ÿÿÿÿ 007354 aa 777 777 777 777 ÿÿÿÿ 007355 aa 777 777 777 777 ÿÿÿÿ 007356 aa 777 777 777 777 ÿÿÿÿ 007357 aa 777 777 777 777 ÿÿÿÿ 007360 aa 777 777 777 777 ÿÿÿÿ 007361 aa 777 777 777 777 ÿÿÿÿ 007362 aa 777 777 777 777 ÿÿÿÿ 007363 aa 777 777 777 777 ÿÿÿÿ 007364 aa 777 777 777 777 ÿÿÿÿ 007365 aa 777 777 777 777 ÿÿÿÿ 007366 aa 777 777 777 777 ÿÿÿÿ 007367 aa 777 777 777 777 ÿÿÿÿ 007370 aa 777 777 777 777 ÿÿÿÿ 007371 aa 777 777 777 777 ÿÿÿÿ 007372 aa 777 777 777 777 ÿÿÿÿ 007373 aa 777 777 777 777 ÿÿÿÿ 007374 aa 777 777 777 777 ÿÿÿÿ 007375 aa 777 777 777 777 ÿÿÿÿ 007376 aa 777 777 777 777 ÿÿÿÿ 007377 aa 777 777 777 777 ÿÿÿÿ 007400 aa 777 777 777 777 ÿÿÿÿ 007401 aa 777 777 777 777 ÿÿÿÿ 007402 aa 777 777 777 777 ÿÿÿÿ 007403 aa 777 777 777 777 ÿÿÿÿ 007404 aa 777 777 777 777 ÿÿÿÿ 007405 aa 777 777 777 777 ÿÿÿÿ 007406 aa 777 777 777 777 ÿÿÿÿ 007407 aa 777 777 777 777 ÿÿÿÿ 007410 aa 777 777 777 777 ÿÿÿÿ 007411 aa 777 777 777 777 ÿÿÿÿ 007412 aa 777 777 777 777 ÿÿÿÿ 007413 aa 777 777 777 777 ÿÿÿÿ 007414 aa 777 777 777 777 ÿÿÿÿ 007415 aa 777 777 777 777 ÿÿÿÿ 007416 aa 777 777 777 777 ÿÿÿÿ 007417 aa 777 777 777 777 ÿÿÿÿ 007420 aa 777 777 777 777 ÿÿÿÿ 007421 aa 777 777 777 777 ÿÿÿÿ 007422 aa 777 777 777 777 ÿÿÿÿ 007423 aa 777 777 777 777 ÿÿÿÿ 007424 aa 777 777 777 777 ÿÿÿÿ 007425 aa 777 777 777 777 ÿÿÿÿ 007426 aa 777 777 777 777 ÿÿÿÿ 007427 aa 777 777 777 777 ÿÿÿÿ 007430 aa 777 777 777 777 ÿÿÿÿ 007431 aa 777 777 777 777 ÿÿÿÿ 007432 aa 777 777 777 777 ÿÿÿÿ 007433 aa 777 777 777 777 ÿÿÿÿ 007434 aa 777 777 777 777 ÿÿÿÿ 007435 aa 777 777 777 777 ÿÿÿÿ 007436 aa 777 777 777 777 ÿÿÿÿ 007437 aa 777 777 777 777 ÿÿÿÿ 007440 aa 777 777 777 777 ÿÿÿÿ 007441 aa 777 777 777 777 ÿÿÿÿ 007442 aa 777 777 777 777 ÿÿÿÿ 007443 aa 777 777 777 777 ÿÿÿÿ 007444 aa 777 777 777 777 ÿÿÿÿ 007445 aa 777 777 777 777 ÿÿÿÿ 007446 aa 777 777 777 777 ÿÿÿÿ 007447 aa 777 777 777 777 ÿÿÿÿ 007450 aa 777 777 777 777 ÿÿÿÿ 007451 aa 777 777 777 777 ÿÿÿÿ 007452 aa 777 777 777 777 ÿÿÿÿ 007453 aa 777 777 777 777 ÿÿÿÿ 007454 aa 777 777 777 777 ÿÿÿÿ 007455 aa 777 777 777 777 ÿÿÿÿ 007456 aa 777 777 777 777 ÿÿÿÿ 007457 aa 777 777 777 777 ÿÿÿÿ 007460 aa 777 777 777 777 ÿÿÿÿ 007461 aa 777 777 777 777 ÿÿÿÿ 007462 aa 777 777 777 777 ÿÿÿÿ 007463 aa 777 777 777 777 ÿÿÿÿ 007464 aa 777 777 777 777 ÿÿÿÿ 007465 aa 777 777 777 777 ÿÿÿÿ 007466 aa 777 777 777 777 ÿÿÿÿ 007467 aa 777 777 777 777 ÿÿÿÿ 007470 aa 777 777 777 777 ÿÿÿÿ 007471 aa 777 777 777 777 ÿÿÿÿ 007472 aa 777 777 777 777 ÿÿÿÿ 007473 aa 777 777 777 777 ÿÿÿÿ 007474 aa 777 777 777 777 ÿÿÿÿ 007475 aa 777 777 777 777 ÿÿÿÿ 007476 aa 777 777 777 777 ÿÿÿÿ 007477 aa 777 777 777 777 ÿÿÿÿ 007500 aa 777 777 777 777 ÿÿÿÿ 007501 aa 777 777 777 777 ÿÿÿÿ 007502 aa 777 777 777 777 ÿÿÿÿ 007503 aa 777 777 777 777 ÿÿÿÿ 007504 aa 777 777 777 777 ÿÿÿÿ 007505 aa 777 777 777 777 ÿÿÿÿ 007506 aa 777 777 777 777 ÿÿÿÿ 007507 aa 777 777 777 777 ÿÿÿÿ 007510 aa 777 777 777 777 ÿÿÿÿ 007511 aa 777 777 777 777 ÿÿÿÿ 007512 aa 777 777 777 777 ÿÿÿÿ 007513 aa 777 777 777 777 ÿÿÿÿ 007514 aa 777 777 777 777 ÿÿÿÿ 007515 aa 777 777 777 777 ÿÿÿÿ 007516 aa 777 777 777 777 ÿÿÿÿ 007517 aa 777 777 777 777 ÿÿÿÿ 007520 aa 777 777 777 777 ÿÿÿÿ 007521 aa 777 777 777 777 ÿÿÿÿ 007522 aa 000 000 000 000 007523 aa 000 000 000 000 007524 aa 000 777 777 777 ÿÿÿ 007525 aa 777 000 000 000 ÿ 007526 aa 000 000 000 000 007527 aa 000 000 000 000 007530 aa 000 000 000 000 007531 aa 000 000 000 000 007532 aa 777 000 000 000 ÿ 007533 aa 000 000 000 000 007534 aa 000 000 000 000 007535 aa 000 000 000 000 007536 aa 000 000 000 000 007537 aa 000 000 000 000 007540 aa 000 000 000 000 007541 aa 000 000 000 000 007542 aa 000 000 000 000 007543 aa 000 000 000 000 007544 aa 000 000 000 000 007545 aa 000 000 000 000 007546 aa 000 000 000 000 007547 aa 000 000 000 000 007550 aa 000 000 000 000 007551 aa 000 000 000 000 007552 aa 000 000 000 000 007553 aa 000 000 000 000 007554 aa 000 000 000 000 007555 aa 000 000 000 000 007556 aa 000 000 000 000 007557 aa 000 000 000 000 007560 aa 000 000 000 000 007561 aa 000 000 000 000 007562 aa 000 000 000 000 007563 aa 000 000 000 000 007564 aa 000 000 000 000 007565 aa 000 000 000 000 007566 aa 000 000 000 000 007567 aa 000 000 000 000 007570 aa 000 000 000 000 007571 aa 000 000 000 000 007572 aa 000 000 000 000 007573 aa 000 000 000 000 007574 aa 000 000 000 000 007575 aa 000 000 000 000 007576 aa 000 000 000 000 007577 aa 000 000 000 000 007600 aa 000 000 000 000 007601 aa 000 000 000 000 007602 aa 000 000 000 000 007603 aa 000 000 000 000 007604 aa 000 000 000 000 007605 aa 000 000 000 000 007606 aa 000 000 000 000 007607 aa 000 000 000 000 007610 aa 000 000 000 000 007611 aa 000 000 000 000 007612 aa 000 000 000 000 007613 aa 000 000 000 000 007614 aa 000 000 000 000 007615 aa 000 000 000 000 007616 aa 000 000 000 000 007617 aa 000 000 000 000 007620 aa 000 000 000 000 007621 aa 000 000 000 000 007622 aa 000 000 000 000 007623 aa 000 000 000 000 007624 aa 000 000 000 000 007625 aa 000 000 000 000 007626 aa 000 000 000 000 007627 aa 000 000 000 000 007630 aa 000 000 000 000 007631 aa 000 000 000 000 007632 aa 000 000 000 000 007633 aa 000 000 000 000 007634 aa 000 000 000 000 007635 aa 000 000 000 000 007636 aa 000 000 000 000 007637 aa 000 000 000 000 007640 aa 000 000 000 000 007641 aa 000 000 000 000 007642 aa 000 000 000 000 007643 aa 000 000 000 000 007644 aa 000 000 000 000 007645 aa 000 000 000 000 007646 aa 000 000 000 000 007647 aa 000 000 000 000 007650 aa 000 000 000 000 007651 aa 000 000 000 000 007652 aa 000 000 000 000 007653 aa 000 000 000 000 007654 aa 000 000 000 000 007655 aa 000 000 000 000 007656 aa 000 000 000 000 007657 aa 000 000 000 000 007660 aa 000 000 000 000 007661 aa 000 000 000 000 007662 aa 000 000 000 000 007663 aa 000 000 000 000 007664 aa 000 000 000 000 007665 aa 000 000 000 000 007666 aa 000 000 000 000 007667 aa 000 000 000 000 007670 aa 000 000 000 000 007671 aa 000 000 000 000 007672 aa 000 000 000 000 007673 aa 000 000 000 000 007674 aa 000 000 000 000 007675 aa 000 000 000 000 007676 aa 000 000 000 000 007677 aa 000 000 000 000 007700 aa 000 000 000 000 007701 aa 000 000 000 000 007702 aa 000 000 000 000 007703 aa 000 000 000 000 007704 aa 000 000 000 000 007705 aa 000 000 000 000 007706 aa 000 000 000 000 007707 aa 000 000 000 000 007710 aa 000 000 000 000 007711 aa 000 000 000 000 007712 aa 000 000 000 000 007713 aa 000 000 000 000 007714 aa 000 000 000 000 007715 aa 000 000 000 000 007716 aa 000 000 000 000 007717 aa 000 000 000 000 007720 aa 000 000 000 000 007721 aa 000 000 000 000 007722 aa 000002000000 007723 aa 000000000000 007724 aa 600000000041 007725 aa 000155000000 007726 aa 000004000000 007727 aa 000004000000 007730 ta 000262000000 007731 aa 000000000000 007732 ta 000331000000 007733 aa 000000000000 007734 ta 000322000000 007735 aa 000000000000 007736 ta 000323000000 007737 aa 000000000000 007740 aa 000002000000 007741 aa 000000000000 007742 aa 600000000041 007743 aa 000203000000 007744 aa 000004000000 007745 aa 000000000000 007746 aa 600000000041 007747 aa 000401000000 007750 aa 600000000041 007751 aa 000400000000 007752 aa 000002000000 007753 aa 000000000000 007754 aa 600000000041 007755 aa 000401000000 007756 aa 000004000000 007757 aa 000000000000 007760 aa 600000000041 007761 aa 000400000000 007762 aa 600000000041 007763 aa 000443000000 007764 aa 000004000000 007765 aa 000000000000 007766 aa 600000000041 007767 aa 000443000000 007770 aa 600000000041 007771 aa 000400000000 007772 aa 000002000000 007773 aa 000000000000 007774 aa 600000000041 007775 aa 000443000000 007776 aa 000002000000 007777 aa 000000000000 010000 aa 600000000041 010001 aa 000400000000 000036 aa 014 013 012 011 000037 aa 040 000 000 000 000040 aa 400000000000 000041 aa 000000000000 000042 aa 400000000000 000043 aa 400000000000 000044 aa 400000000000 000045 aa 400000000000 000046 aa 400000000000 000047 aa 000000000000 000050 aa 400000000000 000051 aa 000000000000 000052 aa 400000000000 000053 aa 000000000000 000054 aa 400000000000 000055 aa 400000000000 000056 aa 400000000000 000057 aa 400000000000 000060 aa 400000000000 000061 aa 000000000000 000062 aa 400000000000 000063 aa 000000000000 000064 aa 000000000000 000065 aa 400000000000 000066 aa 400000000000 000067 aa 400000000000 000070 aa 400000000000 000071 aa 400000000000 000072 aa 000000000000 000073 aa 400000000000 000074 aa 000000000000 000075 aa 400000000000 000076 aa 400000000000 000077 aa 400000000000 000100 aa 400000000000 000101 aa 400000000000 000102 aa 400000000000 000103 aa 400000000000 000104 aa 000000000000 000105 aa 000000000000 000106 aa 000000000006 000107 aa 141 164 164 141 atta 000110 aa 143 150 040 040 ch 000111 aa 040 040 040 040 000112 aa 000000000014 000113 aa 143 157 155 155 comm 000114 aa 141 156 144 137 and_ 000115 aa 154 151 156 145 line 000116 aa 000000000014 000117 aa 143 157 155 155 comm 000120 aa 145 156 164 137 ent_ 000121 aa 154 151 156 145 line 000122 aa 000000000014 000123 aa 143 157 156 164 cont 000124 aa 162 157 154 137 rol_ 000125 aa 154 151 156 145 line 000126 aa 000000000006 000127 aa 144 145 164 141 deta 000130 aa 143 150 040 040 ch 000131 aa 040 040 040 040 000132 aa 000000000004 000133 aa 145 154 163 145 else 000134 aa 040 040 040 040 000135 aa 040 040 040 040 000136 aa 000000000004 000137 aa 147 157 164 157 goto 000140 aa 040 040 040 040 000141 aa 040 040 040 040 000142 aa 000000000002 000143 aa 151 146 040 040 if 000144 aa 040 040 040 040 000145 aa 040 040 040 040 000146 aa 000000000012 000147 aa 151 156 160 165 inpu 000150 aa 164 137 154 151 t_li 000151 aa 156 145 040 040 ne 000152 aa 000000000005 000153 aa 154 141 142 145 labe 000154 aa 154 040 040 040 l 000155 aa 040 040 040 040 000156 aa 000000000005 000157 aa 160 162 151 156 prin 000160 aa 164 040 040 040 t 000161 aa 040 040 040 040 000162 aa 000000000004 000163 aa 161 165 151 164 quit 000164 aa 040 040 040 040 000165 aa 040 040 040 040 000166 aa 000000000005 000167 aa 162 145 141 144 read 000170 aa 171 040 040 040 y 000171 aa 040 040 040 040 000172 aa 000000000012 000173 aa 162 145 141 144 read 000174 aa 171 137 160 162 y_pr 000175 aa 157 143 040 040 oc 000176 aa 000000000006 000177 aa 162 145 164 165 retu 000200 aa 162 156 040 040 rn 000201 aa 040 040 040 040 000202 aa 000000000004 000203 aa 164 150 145 156 then 000204 aa 040 040 040 040 000205 aa 040 040 040 040 000206 aa 000000000007 000207 aa 166 145 162 163 vers 000210 aa 151 157 156 040 ion 000211 aa 040 040 040 040 000212 aa 000000000001 000213 aa 000000000004 000214 aa 000000000005 000215 aa 000000000006 000216 aa 000000000007 000217 aa 000000000011 000220 aa 000000000012 000221 aa 000000000013 000222 aa 000000000014 000223 aa 000000000017 000224 aa 000000000020 000225 aa 000000000021 000226 aa 000000000001 000227 aa 000000000002 000230 aa 000000000005 000231 aa 000000000006 000232 aa 000000000007 000233 aa 000000000010 000234 aa 000000000012 000235 aa 000000000013 000236 aa 000000000014 000237 aa 000000000015 000240 aa 000000000020 000241 aa 000000000021 000242 aa 046 145 154 163 &els 000243 aa 145 040 000 000 e 000244 aa 046 164 150 145 &the 000245 aa 156 040 000 000 n 000246 aa 146 141 154 163 fals 000247 aa 145 000 000 000 e 000250 aa 012 000 000 000 000251 aa 516000000001 000252 aa 524000000074 000253 aa 530000000110 000254 aa 404000000031 000255 aa 526000000400 000256 aa 524000000034 000257 aa 524000000114 000260 aa 526000000005 000261 aa 526000000004 000262 aa 040 000 000 000 000263 aa 524000000057 000264 aa 524000000030 000265 aa 530000000010 000266 aa 500000000000 000267 aa 524000000003 000270 aa 142 143 145 000 bce 000271 aa 524000000051 010003 aa 135 000 000 000 ] 010004 aa 133 000 000 000 [ 010005 aa 174 000 000 000 | 000272 aa 524000000032 000273 aa 526077777777 000274 aa 524000000064 000275 aa 157 146 146 000 off 000276 aa 164 162 165 145 true 010006 aa 157 156 000 000 on 000277 aa 524000000061 000300 aa 524000000026 000301 aa 524000000035 000302 aa 524000000062 000303 aa 526000000006 000304 aa 524000000005 000305 aa 524000000047 000306 aa 524000000103 000307 aa 524000000127 000310 aa 524000000045 000311 aa 524000000054 000312 aa 524000000072 000313 aa 524000000000 000314 aa 524000000025 010007 aa 000000000075 000315 aa 524000000052 000316 aa 524000000106 000317 aa 524000000067 000320 aa 164 150 145 156 then 000321 aa 145 154 163 145 else 000322 aa 526000000001 000323 aa 404000000021 000324 aa 526000000000 010010 aa 156 000 000 000 n 000325 aa 137 141 146 000 _af 010011 aa 163 000 000 000 s 010012 aa 143 000 000 000 c 010002 aa 777777777766 010013 aa 046 000 000 000 & 000326 aa 524000000104 000327 aa 524000000015 000330 aa 404000000005 000331 aa 000000000000 000332 aa 514000000001 000333 aa 141 162 145 141 area 000334 aa 404000000043 000335 aa 404000000025 000336 aa 000000000001 000337 aa 464000000000 000340 aa 146 141 154 163 fals 000341 aa 145 000 000 000 e 000342 aa 046 145 154 163 &els 000343 aa 145 000 000 000 e 000344 aa 046 164 150 145 &the 000345 aa 156 000 000 000 n 000346 aa 077777000043 000347 aa 000001000000 000350 aa 137 156 141 155 _nam 000351 aa 145 000 000 000 e 000352 aa 143 154 145 141 clea 000353 aa 156 165 160 000 nup 000354 aa 141 143 144 145 acde 000355 aa 147 151 154 160 gilp 000356 aa 161 162 164 166 qrtv 000357 aa 137 151 156 160 _inp 000360 aa 165 164 137 154 ut_l 000361 aa 151 156 145 000 ine 000362 aa 137 141 164 164 _att 000363 aa 141 143 150 145 ache 000364 aa 144 000 000 000 d 000365 aa 504000000002 000366 aa 514000000001 000367 aa 404000000002 000370 aa 137 141 143 164 _act 000371 aa 151 166 145 137 ive_ 000372 aa 146 165 156 143 func 000373 aa 164 151 157 156 tion 000374 aa 142 143 145 137 bce_ 000375 aa 145 170 145 143 exec 000376 aa 137 143 157 155 _com 000377 aa 137 000 000 000 _ 000400 aa 162 145 161 165 requ 000401 aa 145 163 164 137 est_ 000402 aa 141 142 157 162 abor 000403 aa 164 137 000 000 t_ 000404 aa 163 165 142 137 sub_ 000405 aa 162 145 161 165 requ 000406 aa 145 163 164 137 est_ 000407 aa 141 142 157 162 abor 000410 aa 164 137 000 000 t_ 000411 aa 162 145 164 165 retu 000412 aa 162 156 137 143 rn_c 000413 aa 157 156 166 145 onve 000414 aa 162 163 151 157 rsio 000415 aa 156 137 145 162 n_er 000416 aa 162 157 162 000 ror 000417 aa 105 166 141 154 Eval 000420 aa 165 141 164 151 uati 000421 aa 156 147 040 042 ng " 000422 aa 046 151 146 042 &if" 000423 aa 040 143 154 141 cla 000424 aa 165 163 145 056 use. 000425 aa 101 154 154 157 Allo 000426 aa 143 141 164 151 cati 000427 aa 156 147 040 154 ng l 000430 aa 141 142 145 154 abel 000431 aa 040 042 136 141 "^a 000432 aa 042 056 000 000 ". 000433 aa 114 141 142 145 Labe 000434 aa 154 040 042 136 l "^ 000435 aa 141 042 040 156 a" n 000436 aa 157 164 040 146 ot f 000437 aa 157 165 156 144 ound 000440 aa 056 000 000 000 . 000441 aa 060 061 062 063 0123 000442 aa 064 065 066 067 4567 000443 aa 070 071 145 146 89ef 000444 aa 151 156 161 162 inqr 000445 aa 141 143 144 147 acdg 000446 aa 154 160 164 166 lptv 000447 aa 101 154 154 157 Allo 000450 aa 143 141 164 151 cati 000451 aa 156 147 040 154 ng l 000452 aa 141 142 145 154 abel 000453 aa 040 150 141 163 has 000454 aa 150 040 164 141 h ta 000455 aa 142 154 145 056 ble. 000456 aa 125 156 141 142 Unab 000457 aa 154 145 040 164 le t 000460 aa 157 040 144 157 o do 000461 aa 040 164 162 141 tra 000462 aa 143 145 040 157 ce o 000463 aa 165 164 160 165 utpu 000464 aa 164 056 000 000 t. 000465 aa 125 156 145 170 Unex 000466 aa 160 145 143 164 pect 000467 aa 145 144 040 042 ed " 000470 aa 046 145 154 163 &els 000471 aa 145 042 040 163 e" s 000472 aa 164 141 164 145 tate 000473 aa 155 145 156 164 ment 000474 aa 056 000 000 000 . 000475 aa 125 156 145 170 Unex 000476 aa 160 145 143 164 pect 000477 aa 145 144 040 042 ed " 000500 aa 046 164 150 145 &the 000501 aa 156 042 040 163 n" s 000502 aa 164 141 164 145 tate 000503 aa 155 145 156 164 ment 000504 aa 056 000 000 000 . 000505 aa 115 151 163 163 Miss 000506 aa 151 156 147 040 ing 000507 aa 143 157 156 144 cond 000510 aa 151 164 151 157 itio 000511 aa 156 141 154 040 nal 000512 aa 151 156 040 042 in " 000513 aa 046 151 146 042 &if" 000514 aa 040 163 164 141 sta 000515 aa 164 145 155 145 teme 000516 aa 156 164 056 000 nt. 000517 aa 116 157 040 141 No a 000520 aa 162 147 165 155 rgum 000521 aa 145 156 164 163 ents 000522 aa 040 141 162 145 are 000523 aa 040 162 145 161 req 000524 aa 165 151 162 145 uire 000525 aa 144 040 142 171 d by 000526 aa 040 042 046 144 "&d 000527 aa 145 164 141 143 etac 000530 aa 150 042 056 000 h". 000531 aa 116 157 040 141 No a 000532 aa 162 147 165 155 rgum 000533 aa 145 156 164 163 ents 000534 aa 040 141 162 145 are 000535 aa 040 162 145 161 req 000536 aa 165 151 162 145 uire 000537 aa 144 040 142 171 d by 000540 aa 040 042 046 141 "&a 000541 aa 164 164 141 143 ttac 000542 aa 150 042 056 000 h". 000543 aa 116 157 040 141 No a 000544 aa 162 147 165 155 rgum 000545 aa 145 156 164 163 ents 000546 aa 040 141 162 145 are 000547 aa 040 162 145 161 req 000550 aa 165 151 162 145 uire 000551 aa 144 040 142 171 d by 000552 aa 040 042 046 161 "&q 000553 aa 165 151 164 042 uit" 000554 aa 056 000 000 000 . 000555 aa 115 141 154 146 Malf 000556 aa 157 162 155 145 orme 000557 aa 144 040 143 157 d co 000560 aa 156 144 151 164 ndit 000561 aa 151 157 156 141 iona 000562 aa 154 040 151 156 l in 000563 aa 040 042 046 151 "&i 000564 aa 146 042 040 163 f" s 000565 aa 164 141 164 145 tate 000566 aa 155 145 156 164 ment 000567 aa 056 000 000 000 . 000570 aa 127 150 151 164 Whit 000571 aa 145 163 160 141 espa 000572 aa 143 145 040 155 ce m 000573 aa 165 163 164 040 ust 000574 aa 163 165 162 162 surr 000575 aa 157 165 156 144 ound 000576 aa 040 164 150 145 the 000577 aa 040 042 136 141 "^a 000600 aa 042 040 153 145 " ke 000601 aa 171 167 157 162 ywor 000602 aa 144 056 000 000 d. 000603 aa 101 040 143 157 A co 000604 aa 155 155 145 156 mmen 000605 aa 164 040 155 141 t ma 000606 aa 171 040 156 157 y no 000607 aa 164 040 146 157 t fo 000610 aa 154 154 157 167 llow 000611 aa 040 042 046 164 "&t 000612 aa 150 145 156 042 hen" 000613 aa 040 157 162 040 or 000614 aa 042 046 145 154 "&el 000615 aa 163 145 042 056 se". 000616 aa 101 040 154 141 A la 000617 aa 142 145 154 040 bel 000620 aa 155 141 171 040 may 000621 aa 156 157 164 040 not 000622 aa 146 157 154 154 foll 000623 aa 157 167 040 042 ow " 000624 aa 046 164 150 145 &the 000625 aa 156 042 040 157 n" o 000626 aa 162 040 042 046 r "& 000627 aa 145 154 163 145 else 000630 aa 042 056 000 000 ". 000631 aa 111 154 154 145 Ille 000632 aa 147 141 154 040 gal 000633 aa 166 141 154 165 valu 000634 aa 145 040 042 136 e "^ 000635 aa 141 042 040 162 a" r 000636 aa 145 164 165 162 etur 000637 aa 156 145 144 040 ned 000640 aa 142 171 040 141 by a 000641 aa 143 164 151 166 ctiv 000642 aa 145 040 146 165 e fu 000643 aa 156 143 164 151 ncti 000644 aa 157 156 056 000 on. 000645 aa 111 156 166 141 Inva 000646 aa 154 151 144 040 lid 000647 aa 153 145 171 167 keyw 000650 aa 157 162 144 040 ord 000651 aa 151 156 040 164 in t 000652 aa 162 141 143 151 raci 000653 aa 156 147 040 163 ng s 000654 aa 164 141 164 145 tate 000655 aa 155 145 156 164 ment 000656 aa 056 040 040 042 . " 000657 aa 157 156 042 040 on" 000660 aa 141 163 163 165 assu 000661 aa 155 145 144 056 med. 000662 aa 115 151 163 163 Miss 000663 aa 151 156 147 040 ing 000664 aa 153 145 171 167 keyw 000665 aa 157 162 144 040 ord 000666 aa 151 156 040 164 in t 000667 aa 162 141 143 151 raci 000670 aa 156 147 040 163 ng s 000671 aa 164 141 164 145 tate 000672 aa 155 145 156 164 ment 000673 aa 056 040 040 042 . " 000674 aa 157 156 042 040 on" 000675 aa 141 163 163 165 assu 000676 aa 155 145 144 056 med. 000677 aa 111 154 154 145 Ille 000700 aa 147 141 154 040 gal 000701 aa 153 145 171 167 keyw 000702 aa 157 162 144 040 ord 000703 aa 151 156 040 155 in m 000704 aa 157 144 145 040 ode 000705 aa 163 164 141 164 stat 000706 aa 145 155 145 156 emen 000707 aa 164 056 040 040 t. 000710 aa 042 157 156 042 "on" 000711 aa 040 141 163 163 ass 000712 aa 165 155 145 144 umed 000713 aa 056 000 000 000 . 000714 aa 115 151 163 163 Miss 000715 aa 151 156 147 040 ing 000716 aa 153 145 171 167 keyw 000717 aa 157 162 144 040 ord 000720 aa 151 156 040 155 in m 000721 aa 157 144 145 040 ode 000722 aa 163 164 141 164 stat 000723 aa 145 155 145 156 emen 000724 aa 164 056 040 040 t. 000725 aa 042 157 156 042 "on" 000726 aa 040 141 163 163 ass 000727 aa 165 155 145 144 umed 000730 aa 056 000 000 000 . 000731 aa 115 151 163 163 Miss 000732 aa 151 156 147 040 ing 000733 aa 042 046 164 150 "&th 000734 aa 145 156 042 040 en" 000735 aa 153 145 171 167 keyw 000736 aa 157 162 144 040 ord 000737 aa 146 157 154 154 foll 000740 aa 157 167 151 156 owin 000741 aa 147 040 042 046 g "& 000742 aa 151 146 042 040 if" 000743 aa 163 164 141 164 stat 000744 aa 145 155 145 156 emen 000745 aa 164 056 000 000 t. 000746 aa 162 145 161 165 requ 000747 aa 145 163 164 137 est_ 000750 aa 141 142 157 162 abor 000751 aa 164 137 040 163 t_ s 000752 aa 151 147 156 141 igna 000753 aa 154 154 145 144 lled 000754 aa 040 167 150 151 whi 000755 aa 154 145 040 145 le e 000756 aa 166 141 154 165 valu 000757 aa 141 164 151 156 atin 000760 aa 147 040 042 046 g "& 000761 aa 151 146 042 040 if" 000762 aa 143 154 141 165 clau 000763 aa 163 145 056 000 se. 000764 aa 124 150 145 040 The 000765 aa 154 141 163 164 last 000766 aa 040 154 151 156 lin 000767 aa 145 040 144 151 e di 000770 aa 144 040 156 157 d no 000771 aa 164 040 145 156 t en 000772 aa 144 040 151 156 d in 000773 aa 040 141 040 156 a n 000774 aa 145 167 154 151 ewli 000775 aa 156 145 040 141 ne a 000776 aa 156 144 040 167 nd w 000777 aa 141 163 040 151 as i 001000 aa 147 156 157 162 gnor 001001 aa 145 144 056 000 ed. 001002 aa 136 133 136 057 ^[^/ 001003 aa 136 135 136 133 ^]^[ 001004 aa 105 162 162 157 Erro 001005 aa 162 136 073 127 r^;W 001006 aa 141 162 156 151 arni 001007 aa 156 147 136 135 ng^] 001010 aa 040 157 156 040 on 001011 aa 154 151 156 145 line 001012 aa 040 043 136 144 #^d 001013 aa 040 157 146 040 of 001014 aa 136 141 072 136 ^a:^ 001015 aa 057 136 141 136 /^a^ 001016 aa 057 123 117 125 /SOU 001017 aa 122 103 105 072 RCE: 001020 aa 136 055 136 141 ^-^a 001021 aa 114 141 142 145 Labe 001022 aa 154 040 042 136 l "^ 001023 aa 141 042 040 151 a" i 001024 aa 163 040 165 156 s un 001025 aa 163 164 165 143 stuc 001026 aa 153 056 040 040 k. 001027 aa 101 143 164 151 Acti 001030 aa 166 145 040 160 ve p 001031 aa 162 157 147 162 rogr 001032 aa 141 155 163 040 ams 001033 aa 155 141 171 040 may 001034 aa 156 157 164 040 not 001035 aa 142 145 040 145 be e 001036 aa 144 151 164 145 dite 001037 aa 144 056 000 000 d. 001040 aa 124 150 145 040 The 001041 aa 042 046 166 145 "&ve 001042 aa 162 163 151 157 rsio 001043 aa 156 042 040 163 n" s 001044 aa 164 141 164 145 tate 001045 aa 155 145 156 164 ment 001046 aa 040 155 141 171 may 001047 aa 040 157 156 154 onl 001050 aa 171 040 142 145 y be 001051 aa 040 164 150 145 the 001052 aa 040 146 151 162 fir 001053 aa 163 164 040 154 st l 001054 aa 151 156 145 040 ine 001055 aa 157 146 040 164 of t 001056 aa 150 145 040 160 he p 001057 aa 162 157 147 162 rogr 001060 aa 141 155 056 000 am. 001061 aa 127 150 151 164 Whit 001062 aa 145 163 160 141 espa 001063 aa 143 145 040 155 ce m 001064 aa 165 163 164 040 ust 001065 aa 146 157 154 154 foll 001066 aa 157 167 040 164 ow t 001067 aa 150 145 040 042 he " 001070 aa 046 164 150 145 &the 001071 aa 156 042 040 153 n" k 001072 aa 145 171 167 157 eywo 001073 aa 162 144 040 157 rd o 001074 aa 162 040 164 150 r th 001075 aa 145 040 154 151 e li 001076 aa 156 145 040 151 ne i 001077 aa 163 040 141 040 s a 001100 aa 143 157 155 155 comm 001101 aa 145 156 164 056 ent. 001102 aa 127 150 151 164 Whit 001103 aa 145 163 160 141 espa 001104 aa 143 145 040 155 ce m 001105 aa 165 163 164 040 ust 001106 aa 146 157 154 154 foll 001107 aa 157 167 040 164 ow t 001110 aa 150 145 040 042 he " 001111 aa 046 145 154 163 &els 001112 aa 145 042 040 153 e" k 001113 aa 145 171 167 157 eywo 001114 aa 162 144 040 157 rd o 001115 aa 162 040 164 150 r th 001116 aa 145 040 154 151 e li 001117 aa 156 145 040 151 ne i 001120 aa 163 040 141 040 s a 001121 aa 143 157 155 155 comm 001122 aa 145 156 164 056 ent. 001123 aa 101 164 164 145 Atte 001124 aa 155 160 164 040 mpt 001125 aa 164 157 040 151 to i 001126 aa 156 166 157 153 nvok 001127 aa 145 040 160 141 e pa 001130 aa 162 163 145 162 rser 001131 aa 040 162 145 143 rec 001132 aa 165 162 163 151 ursi 001133 aa 166 145 154 171 vely 001134 aa 056 040 040 103 . C 001135 aa 150 145 143 153 heck 001136 aa 040 146 157 162 for 001137 aa 040 151 156 166 inv 001140 aa 141 154 151 144 alid 001141 aa 040 042 046 151 "&i 001142 aa 146 042 040 164 f" t 001143 aa 145 163 164 056 est. 001144 aa 124 150 145 040 The 001145 aa 145 156 144 040 end 001146 aa 157 146 040 146 of f 001147 aa 151 154 145 040 ile 001150 aa 167 141 163 040 was 001151 aa 145 156 143 157 enco 001152 aa 165 156 164 145 unte 001153 aa 162 145 144 040 red 001154 aa 167 150 145 156 when 001155 aa 040 141 040 042 a " 001156 aa 046 164 150 145 &the 001157 aa 156 042 040 163 n" s 001160 aa 164 141 164 145 tate 001161 aa 155 145 156 164 ment 001162 aa 040 167 141 163 was 001163 aa 040 145 170 160 exp 001164 aa 145 143 164 145 ecte 001165 aa 144 056 000 000 d. 001166 aa 105 170 160 141 Expa 001167 aa 156 144 145 144 nded 001170 aa 040 154 151 156 lin 001171 aa 145 040 145 170 e ex 001172 aa 143 145 145 144 ceed 001173 aa 163 040 151 155 s im 001174 aa 160 154 145 155 plem 001175 aa 145 156 164 141 enta 001176 aa 164 151 157 156 tion 001177 aa 040 162 145 163 res 001200 aa 164 162 151 143 tric 001201 aa 164 151 157 156 tion 001202 aa 040 157 146 040 of 001203 aa 136 144 040 143 ^d c 001204 aa 150 141 162 141 hara 001205 aa 143 164 145 162 cter 001206 aa 163 040 151 156 s in 001207 aa 040 154 145 156 len 001210 aa 147 164 150 056 gth. 001211 aa 105 170 160 141 Expa 001212 aa 156 144 145 144 nded 001213 aa 040 166 141 154 val 001214 aa 165 145 040 154 ue l 001215 aa 145 156 147 164 engt 001216 aa 150 040 157 146 h of 001217 aa 040 136 144 040 ^d 001220 aa 143 150 141 162 char 001221 aa 141 143 164 145 acte 001222 aa 162 163 040 145 rs e 001223 aa 170 143 145 145 xcee 001224 aa 144 163 040 162 ds r 001225 aa 145 164 165 162 etur 001226 aa 156 040 141 162 n ar 001227 aa 147 165 155 145 gume 001230 aa 156 164 040 154 nt l 001231 aa 145 156 147 164 engt 001232 aa 150 040 157 146 h of 001233 aa 040 136 144 040 ^d 001234 aa 143 150 141 162 char 001235 aa 141 143 164 145 acte 001236 aa 162 163 056 000 rs. LABEL ARRAYS 000000 aa 001540 7100 04 tra 864,ic 001540 000001 aa 001557 7100 04 tra 879,ic 001560 000002 aa 001561 7100 04 tra 881,ic 001563 000003 aa 001667 7100 04 tra 951,ic 001672 000004 aa 001670 7100 04 tra 952,ic 001674 000005 aa 001672 7100 04 tra 954,ic 001677 000006 aa 002430 7100 04 tra 1304,ic 002436 000007 aa 003366 7100 04 tra 1782,ic 003375 000010 aa 003371 7100 04 tra 1785,ic 003401 000011 aa 004441 7100 04 tra 2337,ic 004452 000012 aa 004606 7100 04 tra 2438,ic 004620 000013 aa 002460 7100 04 tra 1328,ic 002473 000014 aa 003425 7100 04 tra 1813,ic 003441 000015 aa 003706 7100 04 tra 1990,ic 003723 000016 aa 004045 7100 04 tra 2085,ic 004063 000017 aa 004054 7100 04 tra 2092,ic 004073 000020 aa 004063 7100 04 tra 2099,ic 004103 000021 aa 003765 7100 04 tra 2037,ic 004006 000022 aa 004537 7100 04 tra 2399,ic 004561 000023 aa 002716 7100 04 tra 1486,ic 002741 000024 aa 004077 7100 04 tra 2111,ic 004123 000025 aa 004066 7100 04 tra 2102,ic 004113 000026 aa 002730 7100 04 tra 1496,ic 002756 000027 aa 003455 7100 04 tra 1837,ic 003504 000030 aa 003512 7100 04 tra 1866,ic 003542 000031 aa 004006 7100 04 tra 2054,ic 004037 000032 aa 004016 7100 04 tra 2062,ic 004050 000033 aa 003533 7100 04 tra 1883,ic 003566 000034 aa 004447 7100 04 tra 2343,ic 004503 000035 aa 003646 7100 04 tra 1958,ic 003703 BEGIN PROCEDURE bce_exec_com_input ENTRY TO bce_exec_com_input STATEMENT 1 ON LINE 8 bce_exec_com_input: proc (bce_sw_data_ptr, P_buffer_ptr, P_buffer_len, P_actual_len, P_status); 001237 at 000005000337 001240 tt 000337000335 001241 tt 000335000334 001242 ta 001237000000 001243 da 000232300000 001244 aa 001140 6270 00 eax7 608 001245 aa 7 00034 3521 20 epp2 pr7|28,* 001246 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 001247 aa 000012000000 001250 aa 000000000000 STATEMENT 1 ON LINE 177 abs_data_ptr = bce_sw_data_ptr -> bce_switch.data_ptr; 001251 aa 6 00032 3735 20 epp7 pr6|26,* 001252 aa 7 00002 3715 20 epp5 pr7|2,* bce_sw_data_ptr 001253 aa 5 00000 3715 20 epp5 pr5|0,* bce_sw_data_ptr 001254 aa 5 00004 3535 20 epp3 pr5|4,* bce_switch.data_ptr 001255 aa 6 00206 2535 00 spri3 pr6|134 abs_data_ptr STATEMENT 1 ON LINE 178 ec_data_ptr = abs_data.ec_data_ptr; 001256 aa 3 00000 3515 20 epp1 pr3|0,* abs_data.ec_data_ptr 001257 aa 6 00216 2515 00 spri1 pr6|142 ec_data_ptr STATEMENT 1 ON LINE 179 buffer_ptr = P_buffer_ptr; 001260 aa 7 00004 3715 20 epp5 pr7|4,* P_buffer_ptr 001261 aa 5 00000 3715 20 epp5 pr5|0,* P_buffer_ptr 001262 aa 6 00152 6515 00 spri5 pr6|106 buffer_ptr STATEMENT 1 ON LINE 180 buffer_len = P_buffer_len; 001263 aa 7 00006 2361 20 ldq pr7|6,* P_buffer_len 001264 aa 6 00150 7561 00 stq pr6|104 buffer_len STATEMENT 1 ON LINE 181 input_reset_sw = "0"b; 001265 aa 6 00165 4501 00 stz pr6|117 input_reset_sw STATEMENT 1 ON LINE 185 if abs_data.active then if attachedp () then do; 001266 aa 3 00047 2351 00 lda pr3|39 abs_data.active 001267 aa 000065 6000 04 tze 53,ic 001354 001270 aa 006506 3520 04 epp2 3398,ic 007776 = 000002000000 001271 aa 004477 6700 04 tsp4 2367,ic 005770 001272 aa 6 00400 2351 00 lda pr6|256 001273 aa 400000 3150 03 cana 131072,du 001274 aa 000024 6000 04 tze 20,ic 001320 STATEMENT 1 ON LINE 188 call bce_data$get_line (addr (bce_data$get_line), P_buffer_ptr, P_buffer_len, P_actual_len, P_status); 001275 aa 6 00044 3701 20 epp4 pr6|36,* 001276 la 4 00030 3735 20 epp7 pr4|24,* bce_data$get_line 001277 aa 6 00402 6535 00 spri7 pr6|258 001300 aa 6 00402 3521 00 epp2 pr6|258 001301 aa 6 00406 2521 00 spri2 pr6|262 001302 aa 6 00032 3715 20 epp5 pr6|26,* 001303 aa 5 00004 3521 20 epp2 pr5|4,* P_buffer_ptr 001304 aa 6 00410 2521 00 spri2 pr6|264 001305 aa 5 00006 3521 20 epp2 pr5|6,* P_buffer_len 001306 aa 6 00412 2521 00 spri2 pr6|266 001307 aa 5 00010 3521 20 epp2 pr5|8,* P_actual_len 001310 aa 6 00414 2521 00 spri2 pr6|268 001311 aa 5 00012 3521 20 epp2 pr5|10,* P_status 001312 aa 6 00416 2521 00 spri2 pr6|270 001313 aa 6 00404 6211 00 eax1 pr6|260 001314 aa 024000 4310 07 fld 10240,dl 001315 la 4 00030 3521 20 epp2 pr4|24,* bce_data$get_line 001316 aa 0 00617 7001 00 tsx0 pr0|399 call_ent_var STATEMENT 1 ON LINE 189 return; 001317 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 190 end; STATEMENT 1 ON LINE 191 else do; STATEMENT 1 ON LINE 192 call com_err_ (0, "bce_exec_com_", "Attempt to invoke parser recursively. Check for invalid ""&if"" test."); 001320 aa 6 00401 4501 00 stz pr6|257 001321 aa 777053 2370 04 ldaq -469,ic 000374 = 142143145137 145170145143 001322 aa 6 00404 7571 00 staq pr6|260 001323 aa 777053 2370 04 ldaq -469,ic 000376 = 137143157155 137000000000 001324 aa 6 00406 7571 00 staq pr6|262 001325 aa 000 100 100 404 mlr (ic),(pr),fill(000) 001326 aa 777576 00 0104 desc9a -130,68 001123 = 101164164145 001327 aa 6 00422 00 0104 desc9a pr6|274,68 001330 aa 6 00401 3521 00 epp2 pr6|257 001331 aa 6 00446 2521 00 spri2 pr6|294 001332 aa 6 00404 3521 00 epp2 pr6|260 001333 aa 6 00450 2521 00 spri2 pr6|296 001334 aa 6 00422 3521 00 epp2 pr6|274 001335 aa 6 00452 2521 00 spri2 pr6|298 001336 aa 776772 3520 04 epp2 -518,ic 000330 = 404000000005 001337 aa 6 00454 2521 00 spri2 pr6|300 001340 aa 776767 3520 04 epp2 -521,ic 000327 = 524000000015 001341 aa 6 00456 2521 00 spri2 pr6|302 001342 aa 776764 3520 04 epp2 -524,ic 000326 = 524000000104 001343 aa 6 00460 2521 00 spri2 pr6|304 001344 aa 6 00444 6211 00 eax1 pr6|292 001345 aa 014000 4310 07 fld 6144,dl 001346 aa 6 00044 3701 20 epp4 pr6|36,* 001347 la 4 00036 3521 20 epp2 pr4|30,* com_err_ 001350 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 193 signal request_abort_; 001351 aa 000016 7260 07 lxl6 14,dl 001352 aa 777026 3520 04 epp2 -490,ic 000400 = 162145161165 001353 aa 0 00716 7001 00 tsx0 pr0|462 signal_op STATEMENT 1 ON LINE 194 end; STATEMENT 1 ON LINE 196 on cleanup abs_data.active = "0"b; 001354 aa 000007 7260 07 lxl6 7,dl 001355 aa 776775 3520 04 epp2 -515,ic 000352 = 143154145141 001356 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 001357 aa 000004 7100 04 tra 4,ic 001363 001360 aa 000106000000 001361 aa 000013 7100 04 tra 11,ic 001374 BEGIN CONDITION cleanup.1 ENTRY TO cleanup.1 STATEMENT 1 ON LINE 196 on cleanup abs_data.active = "0"b; 001362 da 000240200000 001363 aa 000100 6270 00 eax7 64 001364 aa 7 00034 3521 20 epp2 pr7|28,* 001365 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 001366 aa 000000000000 001367 aa 000000000000 001370 aa 6 00040 3735 20 epp7 pr6|32,* 001371 aa 7 00206 3715 20 epp5 pr7|134,* abs_data_ptr 001372 aa 5 00047 4501 00 stz pr5|39 abs_data.active 001373 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION cleanup.1 STATEMENT 1 ON LINE 198 abs_data.active = "1"b; 001374 aa 400000 2350 03 lda 131072,du 001375 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 001376 aa 7 00047 7551 00 sta pr7|39 abs_data.active STATEMENT 1 ON LINE 202 if abs_data.eof then go to END_OF_FILE; 001377 aa 7 00050 2351 00 lda pr7|40 abs_data.eof 001400 aa 001276 6010 04 tnz 702,ic 002676 STATEMENT 1 ON LINE 204 if abs_data.chars_len > 0 then go to CONTINUE_LONG_RECORD; 001401 aa 7 00045 2361 00 ldq pr7|37 abs_data.chars_len 001402 aa 001061 6054 04 tpnz 561,ic 002463 STATEMENT 1 ON LINE 208 width = 0; 001403 aa 6 00203 4501 00 stz pr6|131 width STATEMENT 1 ON LINE 209 quote_modifier = NONE; 001404 aa 000000 2360 07 ldq 0,dl 001405 aa 6 00167 7561 00 stq pr6|119 quote_modifier STATEMENT 1 ON LINE 210 from_sw = "0"b; 001406 aa 6 00156 4501 00 stz pr6|110 from_sw STATEMENT 1 ON LINE 211 saved_hash = -1; 001407 aa 000001 3360 07 lcq 1,dl 001410 aa 6 00172 7561 00 stq pr6|122 saved_hash STATEMENT 1 ON LINE 215 if abs_data.nest_level > abs_data.expected_nest_level then state = SKIPPING_CLAUSE; 001411 aa 7 00051 2361 00 ldq pr7|41 abs_data.nest_level 001412 aa 7 00052 1161 00 cmpq pr7|42 abs_data.expected_nest_level 001413 aa 000004 6044 04 tmoz 4,ic 001417 001414 aa 000004 2360 07 ldq 4,dl 001415 aa 6 00171 7561 00 stq pr6|121 state 001416 aa 000003 7100 04 tra 3,ic 001421 STATEMENT 1 ON LINE 217 else state = NORMAL; 001417 aa 000000 2360 07 ldq 0,dl 001420 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 219 if abs_data.else_clause_len > 0 then go to CONTINUE_WITH_PENDING_ELSE_CLAUSE; 001421 aa 7 00046 2361 00 ldq pr7|38 abs_data.else_clause_len 001422 aa 003101 6054 04 tpnz 1601,ic 004523 STATEMENT 1 ON LINE 222 buffer_allocated = "0"b; 001423 aa 6 00147 4501 00 stz pr6|103 buffer_allocated STATEMENT 1 ON LINE 223 get_next_line = EXPAND_NEXT_LINE; 001424 aa 000004 3520 04 epp2 4,ic 001430 = 600131236100 001425 aa 6 00160 2521 00 spri2 pr6|112 get_next_line 001426 aa 6 00162 6521 00 spri6 pr6|114 get_next_line STATEMENT 1 ON LINE 224 CL_len = 0; 001427 aa 6 00131 4501 00 stz pr6|89 CL_len STATEMENT 1 ON LINE 226 EXPAND_NEXT_LINE: input_string.position = input_string.position + CL_len; 001430 aa 6 00131 2361 00 ldq pr6|89 CL_len 001431 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 001432 aa 7 00016 0561 00 asq pr7|14 abs_data.position STATEMENT 1 ON LINE 229 if input_string.position >= input_string.len then go to END_OF_FILE; 001433 aa 7 00016 2361 00 ldq pr7|14 abs_data.position 001434 aa 7 00014 1161 00 cmpq pr7|12 abs_data.len 001435 aa 001241 6050 04 tpl 673,ic 002676 STATEMENT 1 ON LINE 232 CL_ptr = addr (substr (IS, input_string.position + 1)); 001436 aa 7 00012 3521 20 epp2 pr7|10,* IS 001437 aa 2 00000 5005 06 a9bd pr2|0,ql 001440 aa 6 00134 2521 00 spri2 pr6|92 CL_ptr STATEMENT 1 ON LINE 233 CL_len = index (substr (IS, input_string.position + 1), NL); 001441 aa 7 00014 2361 00 ldq pr7|12 abs_data.len 001442 aa 7 00016 1761 00 sbq pr7|14 abs_data.position 001443 aa 7 00016 2351 00 lda pr7|14 abs_data.position 001444 aa 7 00012 3715 20 epp5 pr7|10,* abs_data.ptr 001445 aa 000 003 124 545 scm (pr,rl,al),(du),mask(000) 001446 aa 5 00000 00 0006 desc9a pr5|0,ql IS 001447 aa 012000 00 0001 desc9a 5120,1 001450 aa 6 00056 0001 00 arg pr6|46 001451 aa 6 00056 2361 00 ldq pr6|46 001452 aa 000002 6070 04 ttf 2,ic 001454 001453 aa 000001 3360 07 lcq 1,dl 001454 aa 000001 0760 07 adq 1,dl 001455 aa 6 00131 7561 00 stq pr6|89 CL_len STATEMENT 1 ON LINE 234 if CL_len = 0 then go to NO_NEW_LINE; 001456 aa 001171 6000 04 tze 633,ic 002647 STATEMENT 1 ON LINE 236 not_in_CL = "0"b; 001457 aa 6 00136 4501 00 stz pr6|94 not_in_CL STATEMENT 1 ON LINE 237 scanning_clause = "0"b; 001460 aa 6 00177 4501 00 stz pr6|127 scanning_clause STATEMENT 1 ON LINE 239 CL_pos = index (CL, "&") - 1; 001461 aa 000 003 124 540 scm (pr,rl),(du),mask(000) 001462 aa 2 00000 00 0006 desc9a pr2|0,ql CL 001463 aa 046000 00 0001 desc9a 19456,1 001464 aa 6 00056 0001 00 arg pr6|46 001465 aa 6 00056 2361 00 ldq pr6|46 001466 aa 000002 6070 04 ttf 2,ic 001470 001467 aa 000001 3360 07 lcq 1,dl 001470 aa 6 00132 7561 00 stq pr6|90 CL_pos STATEMENT 1 ON LINE 240 if CL_pos < 0 then go to COPY_REST; 001471 aa 000461 6040 04 tmi 305,ic 002152 STATEMENT 1 ON LINE 242 RS_len, old_CL_pos, old_RS_len = 0; 001472 aa 6 00140 4501 00 stz pr6|96 RS_len 001473 aa 6 00137 4501 00 stz pr6|95 old_CL_pos 001474 aa 6 00144 4501 00 stz pr6|100 old_RS_len STATEMENT 1 ON LINE 243 RS_ptr = buffer_ptr; 001475 aa 6 00152 3535 20 epp3 pr6|106,* buffer_ptr 001476 aa 6 00142 2535 00 spri3 pr6|98 RS_ptr STATEMENT 1 ON LINE 244 twoL = 1; 001477 aa 000001 2360 07 ldq 1,dl 001500 aa 6 00202 7561 00 stq pr6|130 twoL STATEMENT 1 ON LINE 246 if CL_pos = 0 then do; 001501 aa 6 00132 2361 00 ldq pr6|90 CL_pos 001502 aa 000020 6010 04 tnz 16,ic 001522 STATEMENT 1 ON LINE 248 break = index ("0123456789efinqracdglptv", substr (CL, 2, 1)) - 1; 001503 aa 000 100 124 404 scm (ic),(pr),mask(000) 001504 aa 776736 00 0030 desc9a -546,24 000441 = 060061062063 001505 aa 2 00000 20 0001 desc9a pr2|0(1),1 CL 001506 aa 6 00056 0001 00 arg pr6|46 001507 aa 6 00056 2361 00 ldq pr6|46 001510 aa 000002 6070 04 ttf 2,ic 001512 001511 aa 000001 3360 07 lcq 1,dl 001512 aa 6 00146 7561 00 stq pr6|102 break STATEMENT 1 ON LINE 249 if break < 0 then go to COMMENT_LINE; 001513 aa 000714 6040 04 tmi 460,ic 002427 STATEMENT 1 ON LINE 250 if break < 10 then go to EXPAND_ARG_NUMBER; 001514 aa 000012 1160 07 cmpq 10,dl 001515 aa 000234 6040 04 tmi 156,ic 001751 STATEMENT 1 ON LINE 252 if break < 16 then go to EXPAND (break); 001516 aa 000020 1160 07 cmpq 16,dl 001517 aa 000413 6050 04 tpl 267,ic 002132 001520 ta 777766 7100 06 tra -10,ql STATEMENT 1 ON LINE 253 go to EXPAND_AGAIN; 001521 aa 000411 7100 04 tra 265,ic 002132 STATEMENT 1 ON LINE 254 end; STATEMENT 1 ON LINE 262 EXPAND_LOOP: break = index ("0123456789efinqr", substr (CL, CL_pos + 2, 1)) - 1; 001522 aa 6 00132 2351 00 lda pr6|90 CL_pos 001523 aa 6 00134 3735 20 epp7 pr6|92,* CL_ptr 001524 aa 000 105 124 404 scm (ic),(pr,al),mask(000) 001525 aa 776715 00 0020 desc9a -563,16 000441 = 060061062063 001526 aa 7 00000 20 0001 desc9a pr7|0(1),1 CL 001527 aa 6 00056 0001 00 arg pr6|46 001530 aa 6 00056 2361 00 ldq pr6|46 001531 aa 000002 6070 04 ttf 2,ic 001533 001532 aa 000001 3360 07 lcq 1,dl 001533 aa 6 00146 7561 00 stq pr6|102 break STATEMENT 1 ON LINE 264 if break < 0 then go to EXPAND_AGAIN; 001534 aa 000376 6040 04 tmi 254,ic 002132 STATEMENT 1 ON LINE 265 if break < 10 then go to EXPAND_ARG_NUMBER; 001535 aa 000012 1160 07 cmpq 10,dl 001536 aa 000213 6040 04 tmi 139,ic 001751 STATEMENT 1 ON LINE 266 go to EXPAND (break); 001537 ta 777766 7100 06 tra -10,ql STATEMENT 1 ON LINE 268 EXPAND (10): /* &e */ if substr (CL, CL_pos + 3, 1) ^= "c" then go to EXPAND_AGAIN; 001540 aa 6 00132 2351 00 lda pr6|90 CL_pos 001541 aa 6 00134 3735 20 epp7 pr6|92,* CL_ptr 001542 aa 040 004 106 505 cmpc (pr,al),(ic),fill(040) 001543 aa 7 00000 40 0001 desc9a pr7|0(2),1 CL 001544 aa 006250 00 0001 desc9a 3240,1 010012 = 143000000000 001545 aa 000365 6010 04 tnz 245,ic 002132 STATEMENT 1 ON LINE 272 if substr (CL, CL_pos + 4, min (CL_len, 5)) = "_name" then call emit_ec_name (); 001546 aa 6 00131 2361 00 ldq pr6|89 CL_len 001547 aa 000005 1160 07 cmpq 5,dl 001550 aa 000002 6040 04 tmi 2,ic 001552 001551 aa 000005 2360 07 ldq 5,dl 001552 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 001553 aa 7 00000 60 0006 desc9a pr7|0(3),ql CL 001554 aa 776576 00 0005 desc9a -642,5 000350 = 137156141155 001555 aa 000355 6010 04 tnz 237,ic 002132 001556 aa 004253 6700 04 tsp4 2219,ic 006031 STATEMENT 1 ON LINE 274 go to EXPAND_AGAIN; 001557 aa 000353 7100 04 tra 235,ic 002132 STATEMENT 1 ON LINE 276 EXPAND (11): /* &f */ from_sw = "1"b; 001560 aa 400000 2350 03 lda 131072,du 001561 aa 6 00156 7551 00 sta pr6|110 from_sw STATEMENT 1 ON LINE 279 go to EXPAND_MODIFIER; 001562 aa 000117 7100 04 tra 79,ic 001701 STATEMENT 1 ON LINE 281 EXPAND (12): /* &i */ if substr (CL, CL_pos + 3, 1) ^= "s" then go to EXPAND_AGAIN; 001563 aa 6 00132 2351 00 lda pr6|90 CL_pos 001564 aa 6 00134 3735 20 epp7 pr6|92,* CL_ptr 001565 aa 040 004 106 505 cmpc (pr,al),(ic),fill(040) 001566 aa 7 00000 40 0001 desc9a pr7|0(2),1 CL 001567 aa 006224 00 0001 desc9a 3220,1 010011 = 163000000000 001570 aa 000342 6010 04 tnz 226,ic 002132 STATEMENT 1 ON LINE 285 if substr (CL, CL_pos + 4, min (CL_len - 3, 16)) = "_active_function" then call predicate (functionp (), 18); 001571 aa 6 00131 2361 00 ldq pr6|89 CL_len 001572 aa 000003 1760 07 sbq 3,dl 001573 aa 6 00401 7561 00 stq pr6|257 001574 aa 000020 1160 07 cmpq 16,dl 001575 aa 000002 6040 04 tmi 2,ic 001577 001576 aa 000020 2360 07 ldq 16,dl 001577 aa 6 00443 7561 00 stq pr6|291 001600 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 001601 aa 7 00000 60 0006 desc9a pr7|0(3),ql CL 001602 aa 776570 00 0020 desc9a -648,16 000370 = 137141143164 001603 aa 000010 6010 04 tnz 8,ic 001613 001604 aa 006166 3520 04 epp2 3190,ic 007772 = 000002000000 001605 aa 004210 6700 04 tsp4 2184,ic 006015 001606 aa 000022 2360 07 ldq 18,dl 001607 aa 6 00400 7561 00 stq pr6|256 001610 aa 006154 3520 04 epp2 3180,ic 007764 = 000004000000 001611 aa 004330 6700 04 tsp4 2264,ic 006141 001612 aa 000320 7100 04 tra 208,ic 002132 STATEMENT 1 ON LINE 287 else if substr (CL, CL_pos + 4, min (CL_len - 3, 3)) = "_af" then call predicate (functionp (), 5); 001613 aa 6 00401 2361 00 ldq pr6|257 001614 aa 000003 1160 07 cmpq 3,dl 001615 aa 000002 6040 04 tmi 2,ic 001617 001616 aa 000003 2360 07 ldq 3,dl 001617 aa 6 00400 7561 00 stq pr6|256 001620 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 001621 aa 7 00000 60 0006 desc9a pr7|0(3),ql CL 001622 aa 776505 00 0003 desc9a -699,3 000325 = 137141146000 001623 aa 000010 6010 04 tnz 8,ic 001633 001624 aa 006152 3520 04 epp2 3178,ic 007776 = 000002000000 001625 aa 004170 6700 04 tsp4 2168,ic 006015 001626 aa 000005 2360 07 ldq 5,dl 001627 aa 6 00443 7561 00 stq pr6|291 001630 aa 006126 3520 04 epp2 3158,ic 007756 = 000004000000 001631 aa 004310 6700 04 tsp4 2248,ic 006141 001632 aa 000300 7100 04 tra 192,ic 002132 STATEMENT 1 ON LINE 288 else if substr (CL, CL_pos + 4, min (CL_len - 3, 9)) = "_attached" then call predicate (attachedp (), 11); 001633 aa 6 00401 2361 00 ldq pr6|257 001634 aa 000011 1160 07 cmpq 9,dl 001635 aa 000002 6040 04 tmi 2,ic 001637 001636 aa 000011 2360 07 ldq 9,dl 001637 aa 6 00443 7561 00 stq pr6|291 001640 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 001641 aa 7 00000 60 0006 desc9a pr7|0(3),ql CL 001642 aa 776522 00 0011 desc9a -686,9 000362 = 137141164164 001643 aa 000010 6010 04 tnz 8,ic 001653 001644 aa 006126 3520 04 epp2 3158,ic 007772 = 000002000000 001645 aa 004123 6700 04 tsp4 2131,ic 005770 001646 aa 000013 2360 07 ldq 11,dl 001647 aa 6 00400 7561 00 stq pr6|256 001650 aa 006114 3520 04 epp2 3148,ic 007764 = 000004000000 001651 aa 004270 6700 04 tsp4 2232,ic 006141 001652 aa 000260 7100 04 tra 176,ic 002132 STATEMENT 1 ON LINE 289 else if substr (CL, CL_pos + 4, min (CL_len - 3, 11)) = "_input_line" then call predicate (input_linep (), 13); 001653 aa 6 00401 2361 00 ldq pr6|257 001654 aa 000013 1160 07 cmpq 11,dl 001655 aa 000002 6040 04 tmi 2,ic 001657 001656 aa 000013 2360 07 ldq 11,dl 001657 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 001660 aa 7 00000 60 0006 desc9a pr7|0(3),ql CL 001661 aa 776500 00 0013 desc9a -704,11 000357 = 137151156160 001662 aa 000250 6010 04 tnz 168,ic 002132 001663 aa 006067 3520 04 epp2 3127,ic 007752 = 000002000000 001664 aa 004115 6700 04 tsp4 2125,ic 006001 001665 aa 000015 2360 07 ldq 13,dl 001666 aa 6 00400 7561 00 stq pr6|256 001667 aa 006055 3520 04 epp2 3117,ic 007744 = 000004000000 001670 aa 004251 6700 04 tsp4 2217,ic 006141 STATEMENT 1 ON LINE 291 go to EXPAND_AGAIN; 001671 aa 000241 7100 04 tra 161,ic 002132 STATEMENT 1 ON LINE 293 EXPAND (13): /* &n: The number of arguments given for substitution */ call emit_arg_count (); 001672 aa 004165 6700 04 tsp4 2165,ic 006057 STATEMENT 1 ON LINE 296 go to EXPAND_AGAIN; 001673 aa 000237 7100 04 tra 159,ic 002132 STATEMENT 1 ON LINE 298 EXPAND (14): /* &q */ quote_modifier = QUOTE; 001674 aa 000001 2360 07 ldq 1,dl 001675 aa 6 00167 7561 00 stq pr6|119 quote_modifier STATEMENT 1 ON LINE 301 go to EXPAND_MODIFIER; 001676 aa 000003 7100 04 tra 3,ic 001701 STATEMENT 1 ON LINE 303 EXPAND (15): /* &r */ quote_modifier = REQUOTE; 001677 aa 000002 2360 07 ldq 2,dl 001700 aa 6 00167 7561 00 stq pr6|119 quote_modifier STATEMENT 1 ON LINE 306 EXPAND_MODIFIER: width = width + 1; 001701 aa 6 00203 0541 00 aos pr6|131 width STATEMENT 1 ON LINE 308 break = rank (substr (CL, CL_pos + width + 2, 1)) - RANK_ZERO; 001702 aa 6 00132 2361 00 ldq pr6|90 CL_pos 001703 aa 6 00203 0761 00 adq pr6|131 width 001704 aa 6 00134 3735 20 epp7 pr6|92,* CL_ptr 001705 aa 000 100 101 506 mrl (pr,ql),(pr),fill(000) 001706 aa 7 00000 20 0001 desc9a pr7|0(1),1 CL 001707 aa 6 00056 00 0004 desc9a pr6|46,4 001710 aa 6 00400 7561 00 stq pr6|256 001711 aa 6 00056 2361 00 ldq pr6|46 001712 aa 000060 1760 07 sbq 48,dl 001713 aa 6 00146 7561 00 stq pr6|102 break STATEMENT 1 ON LINE 309 if break = RANK_F_ADJ & ^from_sw then do; 001714 aa 000066 1160 07 cmpq 54,dl 001715 aa 000006 6010 04 tnz 6,ic 001723 001716 aa 6 00156 2351 00 lda pr6|110 from_sw 001717 aa 000004 6010 04 tnz 4,ic 001723 STATEMENT 1 ON LINE 311 from_sw = "1"b; 001720 aa 400000 2350 03 lda 131072,du 001721 aa 6 00156 7551 00 sta pr6|110 from_sw STATEMENT 1 ON LINE 312 go to EXPAND_MODIFIER; 001722 aa 777757 7100 04 tra -17,ic 001701 STATEMENT 1 ON LINE 313 end; STATEMENT 1 ON LINE 314 if break = RANK_AMP_ADJ then if substr (CL, CL_pos + width + 3, 1) = "n" then do; 001723 aa 006057 1160 04 cmpq 3119,ic 010002 = 777777777766 001724 aa 000014 6010 04 tnz 12,ic 001740 001725 aa 6 00400 2351 00 lda pr6|256 001726 aa 040 004 106 505 cmpc (pr,al),(ic),fill(040) 001727 aa 7 00000 40 0001 desc9a pr7|0(2),1 CL 001730 aa 006062 00 0001 desc9a 3122,1 010010 = 156000000000 001731 aa 000007 6010 04 tnz 7,ic 001740 STATEMENT 1 ON LINE 317 arg_idx = abs_data.arg_count; 001732 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 001733 aa 5 00010 2361 00 ldq pr5|8 abs_data.arg_count 001734 aa 6 00145 7561 00 stq pr6|101 arg_idx STATEMENT 1 ON LINE 318 width = width + 2; 001735 aa 000002 2360 07 ldq 2,dl 001736 aa 6 00203 0561 00 asq pr6|131 width STATEMENT 1 ON LINE 319 go to COPY_ARG; 001737 aa 000043 7100 04 tra 35,ic 002002 STATEMENT 1 ON LINE 320 end; STATEMENT 1 ON LINE 321 if break < 0 | break > 9 then do; 001740 aa 6 00146 2361 00 ldq pr6|102 break 001741 aa 000003 6040 04 tmi 3,ic 001744 001742 aa 000011 1160 07 cmpq 9,dl 001743 aa 000006 6044 04 tmoz 6,ic 001751 STATEMENT 1 ON LINE 323 width = 0; 001744 aa 6 00203 4501 00 stz pr6|131 width STATEMENT 1 ON LINE 324 quote_modifier = NONE; 001745 aa 000000 2360 07 ldq 0,dl 001746 aa 6 00167 7561 00 stq pr6|119 quote_modifier STATEMENT 1 ON LINE 325 from_sw = "0"b; 001747 aa 6 00156 4501 00 stz pr6|110 from_sw STATEMENT 1 ON LINE 326 go to EXPAND_AGAIN; 001750 aa 000162 7100 04 tra 114,ic 002132 STATEMENT 1 ON LINE 327 end; STATEMENT 1 ON LINE 329 EXPAND_ARG_NUMBER: arg_idx = 0; 001751 aa 6 00145 4501 00 stz pr6|101 arg_idx STATEMENT 1 ON LINE 331 do break = break repeat (rank (substr (CL, CL_pos + width + 2, 1)) - RANK_ZERO) while (break >= 0 & break <= 9); 001752 aa 6 00146 7561 00 stq pr6|102 break 001753 aa 000000 0110 03 nop 0,du 001754 aa 6 00146 2361 00 ldq pr6|102 break 001755 aa 000025 6040 04 tmi 21,ic 002002 001756 aa 000011 1160 07 cmpq 9,dl 001757 aa 000023 6054 04 tpnz 19,ic 002002 STATEMENT 1 ON LINE 332 if arg_idx <= abs_data.arg_count then arg_idx = 10 * arg_idx + break; 001760 aa 6 00145 2361 00 ldq pr6|101 arg_idx 001761 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 001762 aa 7 00010 1161 00 cmpq pr7|8 abs_data.arg_count 001763 aa 000004 6054 04 tpnz 4,ic 001767 001764 aa 000012 4020 07 mpy 10,dl 001765 aa 6 00146 0761 00 adq pr6|102 break 001766 aa 6 00145 7561 00 stq pr6|101 arg_idx STATEMENT 1 ON LINE 333 width = width + 1; 001767 aa 6 00203 0541 00 aos pr6|131 width STATEMENT 1 ON LINE 334 end; 001770 aa 6 00132 2361 00 ldq pr6|90 CL_pos 001771 aa 6 00203 0761 00 adq pr6|131 width 001772 aa 6 00134 3715 20 epp5 pr6|92,* CL_ptr 001773 aa 000 100 101 506 mrl (pr,ql),(pr),fill(000) 001774 aa 5 00000 20 0001 desc9a pr5|0(1),1 CL 001775 aa 6 00056 00 0004 desc9a pr6|46,4 001776 aa 6 00056 2361 00 ldq pr6|46 001777 aa 000060 1760 07 sbq 48,dl 002000 aa 6 00146 7561 00 stq pr6|102 break 002001 aa 777753 7100 04 tra -21,ic 001754 STATEMENT 1 ON LINE 336 COPY_ARG: call copy_up_to_ampersand (width); 002002 aa 005736 3520 04 epp2 3038,ic 007740 = 000002000000 002003 aa 004162 6700 04 tsp4 2162,ic 006165 STATEMENT 1 ON LINE 338 width = 0; 002004 aa 6 00203 4501 00 stz pr6|131 width STATEMENT 1 ON LINE 339 if from_sw then do; 002005 aa 6 00156 2351 00 lda pr6|110 from_sw 002006 aa 000052 6000 04 tze 42,ic 002060 STATEMENT 1 ON LINE 341 from_sw = "0"b; 002007 aa 6 00156 4501 00 stz pr6|110 from_sw STATEMENT 1 ON LINE 342 do arg_idx = max (1, arg_idx) to abs_data.arg_count; 002010 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002011 aa 7 00010 2361 00 ldq pr7|8 abs_data.arg_count 002012 aa 6 00220 7561 00 stq pr6|144 002013 aa 000001 2360 07 ldq 1,dl 002014 aa 6 00145 1161 00 cmpq pr6|101 arg_idx 002015 aa 000002 6050 04 tpl 2,ic 002017 002016 aa 6 00145 2361 00 ldq pr6|101 arg_idx 002017 aa 6 00145 7561 00 stq pr6|101 arg_idx 002020 aa 6 00145 2361 00 ldq pr6|101 arg_idx 002021 aa 6 00220 1161 00 cmpq pr6|144 002022 aa 000106 6054 04 tpnz 70,ic 002130 STATEMENT 1 ON LINE 343 call copy_string (arg_string, quote_modifier); 002023 aa 000002 7360 00 qls 2 002024 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002025 aa 7 00006 3715 20 epp5 pr7|6,* abs_data.arg_ptr 002026 aa 000000 6270 06 eax7 0,ql 002027 aa 5 77776 2361 06 ldq pr5|-2,ql arg_array.len 002030 aa 526000 2760 03 orq 175104,du 002031 aa 6 00400 7561 00 stq pr6|256 002032 aa 5 77774 3521 37 epp2 pr5|-4,7* arg_string 002033 aa 6 00446 2521 00 spri2 pr6|294 002034 aa 6 00167 3521 00 epp2 pr6|119 quote_modifier 002035 aa 6 00450 2521 00 spri2 pr6|296 002036 aa 6 00400 3521 00 epp2 pr6|256 002037 aa 6 00452 2521 00 spri2 pr6|298 002040 aa 776263 3520 04 epp2 -845,ic 000323 = 404000000021 002041 aa 6 00454 2521 00 spri2 pr6|300 002042 aa 6 00444 3521 00 epp2 pr6|292 002043 aa 010000 4310 07 fld 4096,dl 002044 aa 2 00000 7571 00 staq pr2|0 002045 aa 004154 6700 04 tsp4 2156,ic 006221 STATEMENT 1 ON LINE 344 if arg_idx ^= abs_data.arg_count then call copy_string (SPACE, NONE); 002046 aa 6 00145 2361 00 ldq pr6|101 arg_idx 002047 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002050 aa 7 00010 1161 00 cmpq pr7|8 abs_data.arg_count 002051 aa 000004 6000 04 tze 4,ic 002055 002052 aa 005654 3520 04 epp2 2988,ic 007726 = 000004000000 002053 aa 2 00000 2351 00 lda pr2|0 002054 aa 004145 6700 04 tsp4 2149,ic 006221 STATEMENT 1 ON LINE 345 end; 002055 aa 6 00145 0541 00 aos pr6|101 arg_idx 002056 aa 777742 7100 04 tra -30,ic 002020 STATEMENT 1 ON LINE 346 end; 002057 aa 000051 7100 04 tra 41,ic 002130 STATEMENT 1 ON LINE 347 else if arg_idx = 0 then call copy_string (ec_name, quote_modifier); 002060 aa 6 00145 2361 00 ldq pr6|101 arg_idx 002061 aa 000022 6010 04 tnz 18,ic 002103 002062 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002063 aa 7 00004 2361 00 ldq pr7|4 abs_data.ec_name_len 002064 aa 526000 2760 03 orq 175104,du 002065 aa 6 00400 7561 00 stq pr6|256 002066 aa 7 00002 3521 20 epp2 pr7|2,* ec_name 002067 aa 6 00406 2521 00 spri2 pr6|262 002070 aa 6 00167 3521 00 epp2 pr6|119 quote_modifier 002071 aa 6 00410 2521 00 spri2 pr6|264 002072 aa 6 00400 3521 00 epp2 pr6|256 002073 aa 6 00412 2521 00 spri2 pr6|266 002074 aa 776227 3520 04 epp2 -873,ic 000323 = 404000000021 002075 aa 6 00414 2521 00 spri2 pr6|268 002076 aa 6 00404 3521 00 epp2 pr6|260 002077 aa 010000 4310 07 fld 4096,dl 002100 aa 2 00000 7571 00 staq pr2|0 002101 aa 004120 6700 04 tsp4 2128,ic 006221 002102 aa 000026 7100 04 tra 22,ic 002130 STATEMENT 1 ON LINE 348 else if arg_idx <= abs_data.arg_count then call copy_string (arg_string, quote_modifier); 002103 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002104 aa 7 00010 1161 00 cmpq pr7|8 abs_data.arg_count 002105 aa 000023 6054 04 tpnz 19,ic 002130 002106 aa 000002 7360 00 qls 2 002107 aa 7 00006 3715 20 epp5 pr7|6,* abs_data.arg_ptr 002110 aa 000000 6270 06 eax7 0,ql 002111 aa 5 77776 2361 06 ldq pr5|-2,ql arg_array.len 002112 aa 526000 2760 03 orq 175104,du 002113 aa 6 00400 7561 00 stq pr6|256 002114 aa 5 77774 3521 37 epp2 pr5|-4,7* arg_string 002115 aa 6 00446 2521 00 spri2 pr6|294 002116 aa 6 00167 3521 00 epp2 pr6|119 quote_modifier 002117 aa 6 00450 2521 00 spri2 pr6|296 002120 aa 6 00400 3521 00 epp2 pr6|256 002121 aa 6 00452 2521 00 spri2 pr6|298 002122 aa 776201 3520 04 epp2 -895,ic 000323 = 404000000021 002123 aa 6 00454 2521 00 spri2 pr6|300 002124 aa 6 00444 3521 00 epp2 pr6|292 002125 aa 010000 4310 07 fld 4096,dl 002126 aa 2 00000 7571 00 staq pr2|0 002127 aa 004072 6700 04 tsp4 2106,ic 006221 STATEMENT 1 ON LINE 349 quote_modifier = NONE; 002130 aa 000000 2360 07 ldq 0,dl 002131 aa 6 00167 7561 00 stq pr6|119 quote_modifier STATEMENT 1 ON LINE 351 EXPAND_AGAIN: CL_pos = CL_pos + 1; 002132 aa 6 00132 0541 00 aos pr6|90 CL_pos STATEMENT 1 ON LINE 353 break = index (substr (CL, CL_pos + 1), "&") - 1; 002133 aa 6 00131 2361 00 ldq pr6|89 CL_len 002134 aa 6 00132 1761 00 sbq pr6|90 CL_pos 002135 aa 6 00132 2351 00 lda pr6|90 CL_pos 002136 aa 6 00134 3735 20 epp7 pr6|92,* CL_ptr 002137 aa 000 003 124 545 scm (pr,rl,al),(du),mask(000) 002140 aa 7 00000 00 0006 desc9a pr7|0,ql CL 002141 aa 046000 00 0001 desc9a 19456,1 002142 aa 6 00056 0001 00 arg pr6|46 002143 aa 6 00056 2361 00 ldq pr6|46 002144 aa 000002 6070 04 ttf 2,ic 002146 002145 aa 000001 3360 07 lcq 1,dl 002146 aa 6 00146 7561 00 stq pr6|102 break STATEMENT 1 ON LINE 354 if break >= 0 then do; 002147 aa 000003 6040 04 tmi 3,ic 002152 STATEMENT 1 ON LINE 356 CL_pos = CL_pos + break; 002150 aa 6 00132 0561 00 asq pr6|90 CL_pos STATEMENT 1 ON LINE 357 go to EXPAND_LOOP; 002151 aa 777351 7100 04 tra -279,ic 001522 STATEMENT 1 ON LINE 358 end; STATEMENT 1 ON LINE 360 COPY_REST: if not_in_CL then do; 002152 aa 6 00136 2351 00 lda pr6|94 not_in_CL 002153 aa 000022 6000 04 tze 18,ic 002175 STATEMENT 1 ON LINE 363 copy_len = CL_len - old_CL_pos; 002154 aa 6 00131 2361 00 ldq pr6|89 CL_len 002155 aa 6 00137 1761 00 sbq pr6|95 old_CL_pos 002156 aa 6 00155 7561 00 stq pr6|109 copy_len STATEMENT 1 ON LINE 364 call check_len (copy_len); 002157 aa 005543 3520 04 epp2 2915,ic 007722 = 000002000000 002160 aa 004341 6700 04 tsp4 2273,ic 006521 STATEMENT 1 ON LINE 365 substr (RS, RS_len - copy_len + 1, copy_len) = substr (CL, old_CL_pos + 1, copy_len); 002161 aa 6 00140 2361 00 ldq pr6|96 RS_len 002162 aa 6 00155 1761 00 sbq pr6|109 copy_len 002163 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 002164 aa 6 00137 2351 00 lda pr6|95 old_CL_pos 002165 aa 6 00134 3715 20 epp5 pr6|92,* CL_ptr 002166 aa 5 00000 3535 00 epp3 pr5|0 CL 002167 aa 3 00000 5005 05 a9bd pr3|0,al 002170 aa 6 00155 2351 00 lda pr6|109 copy_len 002171 aa 040 146 100 540 mlr (pr,rl),(pr,rl,ql),fill(040) 002172 aa 3 00000 00 0005 desc9a pr3|0,al CL 002173 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 366 end; 002174 aa 000005 7100 04 tra 5,ic 002201 STATEMENT 1 ON LINE 367 else do; STATEMENT 1 ON LINE 368 RS_len = CL_len; 002175 aa 6 00131 2361 00 ldq pr6|89 CL_len 002176 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 369 RS_ptr = CL_ptr; 002177 aa 6 00134 3735 20 epp7 pr6|92,* CL_ptr 002200 aa 6 00142 6535 00 spri7 pr6|98 RS_ptr STATEMENT 1 ON LINE 370 end; STATEMENT 1 ON LINE 375 CHECK_CONTROL: if substr (RS, 1, min (1, RS_len)) = "&" then do; 002201 aa 000001 2360 07 ldq 1,dl 002202 aa 6 00140 1161 00 cmpq pr6|96 RS_len 002203 aa 000002 6040 04 tmi 2,ic 002205 002204 aa 6 00140 2361 00 ldq pr6|96 RS_len 002205 aa 6 00400 7561 00 stq pr6|256 002206 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 002207 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 002210 aa 7 00000 00 0006 desc9a pr7|0,ql RS 002211 aa 005604 00 0001 desc9a 2948,1 010013 = 046000000000 002212 aa 000220 6010 04 tnz 144,ic 002432 STATEMENT 1 ON LINE 378 on sub_request_abort_ go to ABORT; 002213 aa 000022 7260 07 lxl6 18,dl 002214 aa 776170 3520 04 epp2 -904,ic 000404 = 163165142137 002215 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 002216 aa 000004 7100 04 tra 4,ic 002222 002217 aa 000122000000 002220 aa 000012 7100 04 tra 10,ic 002232 BEGIN CONDITION sub_request_abort_.2 ENTRY TO sub_request_abort_.2 STATEMENT 1 ON LINE 378 on sub_request_abort_ go to ABORT; 002221 da 000251200000 002222 aa 000100 6270 00 eax7 64 002223 aa 7 00034 3521 20 epp2 pr7|28,* 002224 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 002225 aa 000000000000 002226 aa 000000000000 002227 aa 000474 3520 04 epp2 316,ic 002723 = 400000235003 002230 aa 000001 7270 07 lxl7 1,dl 002231 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 END CONDITION sub_request_abort_.2 STATEMENT 1 ON LINE 379 call bce_check_abort; 002232 aa 6 00056 6211 00 eax1 pr6|46 002233 aa 000000 4310 07 fld 0,dl 002234 aa 6 00044 3701 20 epp4 pr6|36,* 002235 la 4 00034 3521 20 epp2 pr4|28,* bce_check_abort 002236 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 380 revert sub_request_abort_; 002237 aa 6 00126 4501 00 stz pr6|86 STATEMENT 1 ON LINE 381 break = index ("acdegilpqrtv", substr (RS, 2, 1)); 002240 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 002241 aa 000 100 124 404 scm (ic),(pr),mask(000) 002242 aa 776113 00 0014 desc9a -949,12 000354 = 141143144145 002243 aa 7 00000 20 0001 desc9a pr7|0(1),1 RS 002244 aa 6 00056 0001 00 arg pr6|46 002245 aa 6 00056 2361 00 ldq pr6|46 002246 aa 000002 6070 04 ttf 2,ic 002250 002247 aa 000001 3360 07 lcq 1,dl 002250 aa 000001 0760 07 adq 1,dl 002251 aa 6 00146 7561 00 stq pr6|102 break STATEMENT 1 ON LINE 382 if break = 0 then go to COMMENT_LINE; 002252 aa 000155 6000 04 tze 109,ic 002427 STATEMENT 1 ON LINE 383 len = search (substr (RS, 3), WHITE); 002253 aa 6 00140 2361 00 ldq pr6|96 RS_len 002254 aa 000002 1760 07 sbq 2,dl 002255 aa 000 000 164 540 tct (pr,rl) 002256 aa 7 00000 40 0006 desc9a pr7|0(2),ql RS 002257 aa 005245 0000 04 arg 2725,ic 007522 = 000000000000 002260 aa 6 00056 0001 00 arg pr6|46 002261 aa 6 00056 2361 00 ldq pr6|46 002262 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002263 aa 000002 6070 04 ttf 2,ic 002265 002264 aa 000001 3360 07 lcq 1,dl 002265 aa 000001 0760 07 adq 1,dl 002266 aa 6 00166 7561 00 stq pr6|118 len STATEMENT 1 ON LINE 384 do control = LOW (break) to HIGH (break); 002267 aa 6 00146 7271 00 lxl7 pr6|102 break 002270 ta 000211 2360 17 ldq 137,7 002271 aa 6 00221 7561 00 stq pr6|145 002272 ta 000225 2360 17 ldq 149,7 002273 aa 6 00154 7561 00 stq pr6|108 control 002274 aa 6 00154 2361 00 ldq pr6|108 control 002275 aa 6 00221 1161 00 cmpq pr6|145 002276 aa 000046 6054 04 tpnz 38,ic 002344 STATEMENT 1 ON LINE 385 if KEYWORD (control) = substr (RS, 2, len) then do; 002277 aa 000002 7360 00 qls 2 002300 aa 6 00400 7561 00 stq pr6|256 002301 ta 000103 3734 06 epp7 67,ql 002302 aa 6 00142 3715 20 epp5 pr6|98,* RS_ptr 002303 aa 7 77777 7271 00 lxl7 pr7|-1 KEYWORD 002304 aa 6 00166 2351 00 lda pr6|118 len 002305 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 002306 aa 7 00000 00 0017 desc9a pr7|0,x7 KEYWORD 002307 aa 5 00000 20 0005 desc9a pr5|0(1),al RS 002310 aa 000032 6010 04 tnz 26,ic 002342 STATEMENT 1 ON LINE 387 RS_pos = verify (substr (RS, len + 3), WHITE) + len + 1; 002311 aa 6 00166 2361 00 ldq pr6|118 len 002312 aa 000002 0760 07 adq 2,dl 002313 aa 6 00400 7561 00 stq pr6|256 002314 aa 6 00140 2361 00 ldq pr6|96 RS_len 002315 aa 6 00400 1761 00 sbq pr6|256 002316 aa 000 000 164 545 tct (pr,rl,al) 002317 aa 5 00000 40 0006 desc9a pr5|0(2),ql RS 002320 aa 005004 0000 04 arg 2564,ic 007322 = 777777777777 002321 aa 6 00056 0001 00 arg pr6|46 002322 aa 6 00056 2361 00 ldq pr6|46 002323 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002324 aa 000002 6070 04 ttf 2,ic 002326 002325 aa 000001 3360 07 lcq 1,dl 002326 aa 000001 0760 07 adq 1,dl 002327 aa 6 00166 0761 00 adq pr6|118 len 002330 aa 000001 0760 07 adq 1,dl 002331 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 388 if RS_pos = len + 1 then RS_pos = RS_len; 002332 aa 6 00166 2361 00 ldq pr6|118 len 002333 aa 000001 0760 07 adq 1,dl 002334 aa 6 00141 1161 00 cmpq pr6|97 RS_pos 002335 aa 000003 6010 04 tnz 3,ic 002340 002336 aa 6 00140 2361 00 ldq pr6|96 RS_len 002337 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 389 go to STATE (state); 002340 aa 6 00171 7271 00 lxl7 pr6|121 state 002341 ta 000006 7100 17 tra 6,7 STATEMENT 1 ON LINE 390 end; STATEMENT 1 ON LINE 391 end; 002342 aa 6 00154 0541 00 aos pr6|108 control 002343 aa 777731 7100 04 tra -39,ic 002274 STATEMENT 1 ON LINE 393 if len > 4 then if break = 4 then if substr (RS, 2, 4) = "else" then call warning (0, "Whitespace must follow the ""&else"" keyword or the line is a comment."); 002344 aa 6 00166 2361 00 ldq pr6|118 len 002345 aa 000004 1160 07 cmpq 4,dl 002346 aa 000061 6044 04 tmoz 49,ic 002427 002347 aa 6 00146 2361 00 ldq pr6|102 break 002350 aa 000004 1160 07 cmpq 4,dl 002351 aa 000027 6010 04 tnz 23,ic 002400 002352 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 002353 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002354 aa 7 00000 20 0004 desc9a pr7|0(1),4 RS 002355 aa 775746 00 0004 desc9a -1050,4 000321 = 145154163145 002356 aa 000051 6010 04 tnz 41,ic 002427 002357 aa 6 00400 4501 00 stz pr6|256 002360 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002361 aa 776522 00 0104 desc9a -686,68 001102 = 127150151164 002362 aa 6 00422 00 0104 desc9a pr6|274,68 002363 aa 6 00400 3521 00 epp2 pr6|256 002364 aa 6 00406 2521 00 spri2 pr6|262 002365 aa 6 00422 3521 00 epp2 pr6|274 002366 aa 6 00410 2521 00 spri2 pr6|264 002367 aa 775741 3520 04 epp2 -1055,ic 000330 = 404000000005 002370 aa 6 00414 2521 00 spri2 pr6|268 002371 aa 775735 3520 04 epp2 -1059,ic 000326 = 524000000104 002372 aa 6 00416 2521 00 spri2 pr6|270 002373 aa 6 00404 6211 00 eax1 pr6|260 002374 aa 010000 4310 07 fld 4096,dl 002375 aa 004321 3520 04 epp2 2257,ic 006716 = 000400627000 002376 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 398 else ; 002377 aa 000030 7100 04 tra 24,ic 002427 STATEMENT 1 ON LINE 399 else if break = 11 then if substr (RS, 2, 4) = "then" then call warning (0, "Whitespace must follow the ""&then"" keyword or the line is a comment."); 002400 aa 000013 1160 07 cmpq 11,dl 002401 aa 000026 6010 04 tnz 22,ic 002427 002402 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 002403 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002404 aa 7 00000 20 0004 desc9a pr7|0(1),4 RS 002405 aa 775715 00 0004 desc9a -1075,4 000320 = 164150145156 002406 aa 000021 6010 04 tnz 17,ic 002427 002407 aa 6 00400 4501 00 stz pr6|256 002410 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002411 aa 776451 00 0104 desc9a -727,68 001061 = 127150151164 002412 aa 6 00422 00 0104 desc9a pr6|274,68 002413 aa 6 00400 3521 00 epp2 pr6|256 002414 aa 6 00446 2521 00 spri2 pr6|294 002415 aa 6 00422 3521 00 epp2 pr6|274 002416 aa 6 00450 2521 00 spri2 pr6|296 002417 aa 775711 3520 04 epp2 -1079,ic 000330 = 404000000005 002420 aa 6 00454 2521 00 spri2 pr6|300 002421 aa 775705 3520 04 epp2 -1083,ic 000326 = 524000000104 002422 aa 6 00456 2521 00 spri2 pr6|302 002423 aa 6 00444 6211 00 eax1 pr6|292 002424 aa 010000 4310 07 fld 4096,dl 002425 aa 004271 3520 04 epp2 2233,ic 006716 = 000400627000 002426 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 404 COMMENT_LINE: control = COMMENT; 002427 aa 000000 2360 07 ldq 0,dl 002430 aa 6 00154 7561 00 stq pr6|108 control STATEMENT 1 ON LINE 406 end; 002431 aa 000003 7100 04 tra 3,ic 002434 STATEMENT 1 ON LINE 407 else control = DATA; 002432 aa 000001 3360 07 lcq 1,dl 002433 aa 6 00154 7561 00 stq pr6|108 control STATEMENT 1 ON LINE 409 go to STATE (state); 002434 aa 6 00171 7271 00 lxl7 pr6|121 state 002435 ta 000006 7100 17 tra 6,7 STATEMENT 1 ON LINE 411 STATE (0): /* NORMAL: we come here if not in search or conditional */ if TRACE (control) then call trace_output (abs_data.control_line, RS); 002436 aa 6 00154 7271 00 lxl7 pr6|108 control 002437 ta 000064 2350 17 lda 52,7 002440 aa 000021 6000 04 tze 17,ic 002461 002441 aa 6 00140 2361 00 ldq pr6|96 RS_len 002442 aa 526000 2760 03 orq 175104,du 002443 aa 6 00400 7561 00 stq pr6|256 002444 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002445 aa 7 00024 3521 00 epp2 pr7|20 abs_data.control_line 002446 aa 6 00406 2521 00 spri2 pr6|262 002447 aa 6 00142 3521 20 epp2 pr6|98,* RS 002450 aa 6 00410 2521 00 spri2 pr6|264 002451 aa 775714 3520 04 epp2 -1076,ic 000365 = 504000000002 002452 aa 6 00412 2521 00 spri2 pr6|266 002453 aa 6 00400 3521 00 epp2 pr6|256 002454 aa 6 00414 2521 00 spri2 pr6|268 002455 aa 6 00404 3521 00 epp2 pr6|260 002456 aa 010000 4310 07 fld 4096,dl 002457 aa 2 00000 7571 00 staq pr2|0 002460 aa 002526 6700 04 tsp4 1366,ic 005206 STATEMENT 1 ON LINE 414 go to CONTROL (control); 002461 aa 6 00154 7271 00 lxl7 pr6|108 control 002462 ta 000014 7100 17 tra 12,7 STATEMENT 1 ON LINE 416 CONTINUE_LONG_RECORD: buffer_allocated = "1"b; 002463 aa 400000 2350 03 lda 131072,du 002464 aa 6 00147 7551 00 sta pr6|103 buffer_allocated STATEMENT 1 ON LINE 418 CL_len = 0; 002465 aa 6 00131 4501 00 stz pr6|89 CL_len STATEMENT 1 ON LINE 419 scanning_clause = "0"b; 002466 aa 6 00177 4501 00 stz pr6|127 scanning_clause STATEMENT 1 ON LINE 420 not_in_CL = "1"b; 002467 aa 6 00136 7551 00 sta pr6|94 not_in_CL STATEMENT 1 ON LINE 421 RS_len = abs_data.chars_len; 002470 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 422 RS_ptr = abs_data.chars_ptr; 002471 aa 7 00040 3715 20 epp5 pr7|32,* abs_data.chars_ptr 002472 aa 6 00142 6515 00 spri5 pr6|98 RS_ptr STATEMENT 1 ON LINE 424 CONTROL (-1): /* DATA = data to return to caller */ if not_in_CL & ^buffer_allocated & ^scanning_clause then P_actual_len = RS_len; 002473 aa 6 00136 2351 00 lda pr6|94 not_in_CL 002474 aa 000011 6000 04 tze 9,ic 002505 002475 aa 6 00147 2351 00 lda pr6|103 buffer_allocated 002476 aa 000007 6010 04 tnz 7,ic 002505 002477 aa 6 00177 2351 00 lda pr6|127 scanning_clause 002500 aa 000005 6010 04 tnz 5,ic 002505 002501 aa 6 00140 2361 00 ldq pr6|96 RS_len 002502 aa 6 00032 3735 20 epp7 pr6|26,* 002503 aa 7 00010 7561 20 stq pr7|8,* P_actual_len 002504 aa 000051 7100 04 tra 41,ic 002555 STATEMENT 1 ON LINE 427 else do; STATEMENT 1 ON LINE 428 P_actual_len = min (P_buffer_len, RS_len); 002505 aa 6 00032 3735 20 epp7 pr6|26,* 002506 aa 7 00006 2361 20 ldq pr7|6,* P_buffer_len 002507 aa 6 00140 1161 00 cmpq pr6|96 RS_len 002510 aa 000002 6040 04 tmi 2,ic 002512 002511 aa 6 00140 2361 00 ldq pr6|96 RS_len 002512 aa 7 00010 7561 20 stq pr7|8,* P_actual_len STATEMENT 1 ON LINE 429 P_buffer = RS_ptr -> P_buffer; 002513 aa 7 00004 3715 20 epp5 pr7|4,* P_buffer_ptr 002514 aa 5 00000 3715 20 epp5 pr5|0,* P_buffer_ptr 002515 aa 6 00142 3535 20 epp3 pr6|98,* RS_ptr 002516 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002517 aa 3 00000 00 0006 desc9a pr3|0,ql P_buffer 002520 aa 5 00000 00 0006 desc9a pr5|0,ql P_buffer STATEMENT 1 ON LINE 430 if P_actual_len < RS_len then if not_in_CL then do; 002521 aa 6 00140 1161 00 cmpq pr6|96 RS_len 002522 aa 000031 6050 04 tpl 25,ic 002553 002523 aa 6 00136 2351 00 lda pr6|94 not_in_CL 002524 aa 000011 6000 04 tze 9,ic 002535 STATEMENT 1 ON LINE 433 abs_data.chars_ptr = addr (substr (RS, P_actual_len + 1)); 002525 aa 3 00000 3521 00 epp2 pr3|0 RS 002526 aa 2 00000 5005 06 a9bd pr2|0,ql 002527 aa 6 00206 3515 20 epp1 pr6|134,* abs_data_ptr 002530 aa 1 00040 2521 00 spri2 pr1|32 abs_data.chars_ptr STATEMENT 1 ON LINE 434 abs_data.chars_len = RS_len - P_actual_len; 002531 aa 6 00140 2361 00 ldq pr6|96 RS_len 002532 aa 7 00010 1761 20 sbq pr7|8,* P_actual_len 002533 aa 1 00045 7561 00 stq pr1|37 abs_data.chars_len STATEMENT 1 ON LINE 435 end; 002534 aa 000021 7100 04 tra 17,ic 002555 STATEMENT 1 ON LINE 436 else do; STATEMENT 1 ON LINE 437 RS_ptr = addr (substr (RS, P_actual_len + 1)); 002535 aa 3 00000 3521 00 epp2 pr3|0 RS 002536 aa 2 00000 5005 06 a9bd pr2|0,ql 002537 aa 6 00142 2521 00 spri2 pr6|98 RS_ptr STATEMENT 1 ON LINE 438 abs_data.chars_len, RS_len = RS_len - P_actual_len; 002540 aa 6 00140 2361 00 ldq pr6|96 RS_len 002541 aa 7 00010 1761 20 sbq pr7|8,* P_actual_len 002542 aa 6 00206 3535 20 epp3 pr6|134,* abs_data_ptr 002543 aa 3 00045 7561 00 stq pr3|37 abs_data.chars_len 002544 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 439 call allocate_buffer (RS_len); 002545 aa 004551 3520 04 epp2 2409,ic 007316 = 000002000000 002546 aa 003767 6700 04 tsp4 2039,ic 006535 STATEMENT 1 ON LINE 440 abs_data.chars_ptr = RS_ptr; 002547 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 002550 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 002551 aa 5 00040 6535 00 spri7 pr5|32 abs_data.chars_ptr STATEMENT 1 ON LINE 441 end; 002552 aa 000003 7100 04 tra 3,ic 002555 STATEMENT 1 ON LINE 442 else abs_data.chars_len = 0; 002553 aa 6 00206 3515 20 epp1 pr6|134,* abs_data_ptr 002554 aa 1 00045 4501 00 stz pr1|37 abs_data.chars_len STATEMENT 1 ON LINE 443 end; STATEMENT 1 ON LINE 445 input_string.position = input_string.position + CL_len; 002555 aa 6 00131 2361 00 ldq pr6|89 CL_len 002556 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002557 aa 7 00016 0561 00 asq pr7|14 abs_data.position STATEMENT 1 ON LINE 448 if input_linep () then call trace_output (abs_data.input_line, P_buffer); 002560 aa 005216 3520 04 epp2 2702,ic 007776 = 000002000000 002561 aa 003220 6700 04 tsp4 1680,ic 006001 002562 aa 6 00400 2351 00 lda pr6|256 002563 aa 400000 3150 03 cana 131072,du 002564 aa 000024 6000 04 tze 20,ic 002610 002565 aa 6 00032 3735 20 epp7 pr6|26,* 002566 aa 7 00010 2361 20 ldq pr7|8,* P_actual_len 002567 aa 526000 2760 03 orq 175104,du 002570 aa 6 00400 7561 00 stq pr6|256 002571 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 002572 aa 5 00026 3521 00 epp2 pr5|22 abs_data.input_line 002573 aa 6 00446 2521 00 spri2 pr6|294 002574 aa 7 00004 3535 20 epp3 pr7|4,* P_buffer_ptr 002575 aa 3 00000 3521 20 epp2 pr3|0,* P_buffer 002576 aa 6 00450 2521 00 spri2 pr6|296 002577 aa 775566 3520 04 epp2 -1162,ic 000365 = 504000000002 002600 aa 6 00452 2521 00 spri2 pr6|298 002601 aa 6 00400 3521 00 epp2 pr6|256 002602 aa 6 00454 2521 00 spri2 pr6|300 002603 aa 6 00444 3521 00 epp2 pr6|292 002604 aa 010000 4310 07 fld 4096,dl 002605 aa 2 00000 7571 00 staq pr2|0 002606 aa 002400 6700 04 tsp4 1280,ic 005206 002607 aa 000023 7100 04 tra 19,ic 002632 STATEMENT 1 ON LINE 450 else call trace_output (abs_data.command_line, P_buffer); 002610 aa 6 00032 3735 20 epp7 pr6|26,* 002611 aa 7 00010 2361 20 ldq pr7|8,* P_actual_len 002612 aa 526000 2760 03 orq 175104,du 002613 aa 6 00400 7561 00 stq pr6|256 002614 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 002615 aa 5 00020 3521 00 epp2 pr5|16 abs_data.command_line 002616 aa 6 00406 2521 00 spri2 pr6|262 002617 aa 7 00004 3535 20 epp3 pr7|4,* P_buffer_ptr 002620 aa 3 00000 3521 20 epp2 pr3|0,* P_buffer 002621 aa 6 00410 2521 00 spri2 pr6|264 002622 aa 775543 3520 04 epp2 -1181,ic 000365 = 504000000002 002623 aa 6 00412 2521 00 spri2 pr6|266 002624 aa 6 00400 3521 00 epp2 pr6|256 002625 aa 6 00414 2521 00 spri2 pr6|268 002626 aa 6 00404 3521 00 epp2 pr6|260 002627 aa 010000 4310 07 fld 4096,dl 002630 aa 2 00000 7571 00 staq pr2|0 002631 aa 002355 6700 04 tsp4 1261,ic 005206 STATEMENT 1 ON LINE 452 if abs_data.chars_len > 0 then P_status = error_table_$long_record; 002632 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002633 aa 7 00045 2361 00 ldq pr7|37 abs_data.chars_len 002634 aa 000006 6044 04 tmoz 6,ic 002642 002635 aa 6 00044 3701 20 epp4 pr6|36,* 002636 la 4 00016 2361 20 ldq pr4|14,* error_table_$long_record 002637 aa 6 00032 3715 20 epp5 pr6|26,* 002640 aa 5 00012 7561 20 stq pr5|10,* P_status 002641 aa 000003 7100 04 tra 3,ic 002644 STATEMENT 1 ON LINE 454 else P_status = 0; 002642 aa 6 00032 3715 20 epp5 pr6|26,* 002643 aa 5 00012 4501 20 stz pr5|10,* P_status STATEMENT 1 ON LINE 456 EGRESS: abs_data.active = "0"b; 002644 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002645 aa 7 00047 4501 00 stz pr7|39 abs_data.active STATEMENT 1 ON LINE 458 return; 002646 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 460 NO_NEW_LINE: if state = SEARCHING_FOR_LABEL then go to STATE (SEARCHING_FOR_LABEL); 002647 aa 6 00171 2361 00 ldq pr6|121 state 002650 aa 000001 1160 07 cmpq 1,dl 002651 aa 000003 6010 04 tnz 3,ic 002654 002652 aa 000001 7270 07 lxl7 1,dl 002653 ta 000006 7100 17 tra 6,7 STATEMENT 1 ON LINE 464 if state = MUST_BE_LABEL then go to UNSTUCK_LABEL; 002654 aa 000002 1160 07 cmpq 2,dl 002655 aa 000527 6000 04 tze 343,ic 003404 STATEMENT 1 ON LINE 466 call warning (0, "The last line did not end in a newline and was ignored."); 002656 aa 6 00400 4501 00 stz pr6|256 002657 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002660 aa 776105 00 0070 desc9a -955,56 000764 = 124150145040 002661 aa 6 00444 00 0070 desc9a pr6|292,56 002662 aa 6 00400 3521 00 epp2 pr6|256 002663 aa 6 00406 2521 00 spri2 pr6|262 002664 aa 6 00444 3521 00 epp2 pr6|292 002665 aa 6 00410 2521 00 spri2 pr6|264 002666 aa 775442 3520 04 epp2 -1246,ic 000330 = 404000000005 002667 aa 6 00414 2521 00 spri2 pr6|268 002670 aa 775427 3520 04 epp2 -1257,ic 000317 = 524000000067 002671 aa 6 00416 2521 00 spri2 pr6|270 002672 aa 6 00404 6211 00 eax1 pr6|260 002673 aa 010000 4310 07 fld 4096,dl 002674 aa 004022 3520 04 epp2 2066,ic 006716 = 000400627000 002675 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 468 END_OF_FILE: if state = MUST_BE_LABEL then go to UNSTUCK_LABEL; 002676 aa 6 00171 2361 00 ldq pr6|121 state 002677 aa 000002 1160 07 cmpq 2,dl 002700 aa 000504 6000 04 tze 324,ic 003404 STATEMENT 1 ON LINE 471 if state = MUST_BE_THEN then call error (0, "The end of file was encountered when a ""&then"" statement was expected."); 002701 aa 000003 1160 07 cmpq 3,dl 002702 aa 000021 6010 04 tnz 17,ic 002723 002703 aa 6 00400 4501 00 stz pr6|256 002704 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002705 aa 776240 00 0110 desc9a -864,72 001144 = 124150145040 002706 aa 6 00462 00 0110 desc9a pr6|306,72 002707 aa 6 00400 3521 00 epp2 pr6|256 002710 aa 6 00406 2521 00 spri2 pr6|262 002711 aa 6 00462 3521 00 epp2 pr6|306 002712 aa 6 00410 2521 00 spri2 pr6|264 002713 aa 775415 3520 04 epp2 -1267,ic 000330 = 404000000005 002714 aa 6 00414 2521 00 spri2 pr6|268 002715 aa 775401 3520 04 epp2 -1279,ic 000316 = 524000000106 002716 aa 6 00416 2521 00 spri2 pr6|270 002717 aa 6 00404 6211 00 eax1 pr6|260 002720 aa 010000 4310 07 fld 4096,dl 002721 aa 003764 3520 04 epp2 2036,ic 006705 = 000400627000 002722 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 474 ABORT: abs_data.eof = "1"b; 002723 aa 400000 2350 03 lda 131072,du 002724 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002725 aa 7 00050 7551 00 sta pr7|40 abs_data.eof STATEMENT 1 ON LINE 476 if ^input_reset_sw then do; 002726 aa 6 00165 2351 00 lda pr6|117 input_reset_sw 002727 aa 000004 6010 04 tnz 4,ic 002733 STATEMENT 1 ON LINE 478 input_reset_sw = "1"b; 002730 aa 400000 2350 03 lda 131072,du 002731 aa 6 00165 7551 00 sta pr6|117 input_reset_sw STATEMENT 1 ON LINE 480 call reset_input (); 002732 aa 001720 6700 04 tsp4 976,ic 004652 STATEMENT 1 ON LINE 481 end; STATEMENT 1 ON LINE 483 P_actual_len = 0; 002733 aa 6 00032 3735 20 epp7 pr6|26,* 002734 aa 7 00010 4501 20 stz pr7|8,* P_actual_len STATEMENT 1 ON LINE 484 P_status = error_table_$end_of_info; 002735 aa 6 00044 3701 20 epp4 pr6|36,* 002736 la 4 00014 2361 20 ldq pr4|12,* error_table_$end_of_info 002737 aa 7 00012 7561 20 stq pr7|10,* P_status STATEMENT 1 ON LINE 486 go to EGRESS; 002740 aa 777704 7100 04 tra -60,ic 002644 STATEMENT 1 ON LINE 495 CONTROL (7): /* &goto */ abs_data.nest_level = 0; 002741 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 002742 aa 7 00051 4501 00 stz pr7|41 abs_data.nest_level STATEMENT 1 ON LINE 497 abs_data.else_clause_len = 0; 002743 aa 7 00046 4501 00 stz pr7|38 abs_data.else_clause_len STATEMENT 1 ON LINE 498 get_next_line = EXPAND_NEXT_LINE; 002744 aa 776464 3520 04 epp2 -716,ic 001430 = 600131236100 002745 aa 6 00160 2521 00 spri2 pr6|112 get_next_line 002746 aa 6 00162 6521 00 spri6 pr6|114 get_next_line STATEMENT 1 ON LINE 500 input_string.limit = max (input_string.limit, input_string.position + CL_len); 002747 aa 7 00016 2361 00 ldq pr7|14 abs_data.position 002750 aa 6 00131 0761 00 adq pr6|89 CL_len 002751 aa 7 00017 1161 00 cmpq pr7|15 abs_data.limit 002752 aa 000002 6050 04 tpl 2,ic 002754 002753 aa 7 00017 2361 00 ldq pr7|15 abs_data.limit 002754 aa 7 00017 7561 00 stq pr7|15 abs_data.limit STATEMENT 1 ON LINE 502 go to GET_CURRENT_LABEL; 002755 aa 000030 7100 04 tra 24,ic 003005 STATEMENT 1 ON LINE 504 CONTROL (10): /* &label */ if scanning_clause then call error (0, "A label may not follow ""&then"" or ""&else""."); 002756 aa 6 00177 2351 00 lda pr6|127 scanning_clause 002757 aa 000021 6000 04 tze 17,ic 003000 002760 aa 6 00400 4501 00 stz pr6|256 002761 aa 000 100 100 404 mlr (ic),(pr),fill(000) 002762 aa 775635 00 0054 desc9a -1123,44 000616 = 101040154141 002763 aa 6 00444 00 0054 desc9a pr6|292,44 002764 aa 6 00400 3521 00 epp2 pr6|256 002765 aa 6 00406 2521 00 spri2 pr6|262 002766 aa 6 00444 3521 00 epp2 pr6|292 002767 aa 6 00410 2521 00 spri2 pr6|264 002770 aa 775340 3520 04 epp2 -1312,ic 000330 = 404000000005 002771 aa 6 00414 2521 00 spri2 pr6|268 002772 aa 775323 3520 04 epp2 -1325,ic 000315 = 524000000052 002773 aa 6 00416 2521 00 spri2 pr6|270 002774 aa 6 00404 6211 00 eax1 pr6|260 002775 aa 010000 4310 07 fld 4096,dl 002776 aa 003707 3520 04 epp2 1991,ic 006705 = 000400627000 002777 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 507 if input_string.limit > input_string.position then go to get_next_line; 003000 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003001 aa 7 00017 2361 00 ldq pr7|15 abs_data.limit 003002 aa 7 00016 1161 00 cmpq pr7|14 abs_data.position 003003 aa 000002 6044 04 tmoz 2,ic 003005 003004 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 510 GET_CURRENT_LABEL: current_label_ptr = addr (substr (RS, RS_pos + 1)); 003005 aa 6 00141 2351 00 lda pr6|97 RS_pos 003006 aa 6 00142 3521 20 epp2 pr6|98,* RS 003007 aa 2 00000 5005 05 a9bd pr2|0,al 003010 aa 6 00214 2521 00 spri2 pr6|140 current_label_ptr STATEMENT 1 ON LINE 512 current_label_len = length (rtrim (substr (RS, RS_pos + 1), WHITE)); 003011 aa 6 00140 2361 00 ldq pr6|96 RS_len 003012 aa 6 00141 1761 00 sbq pr6|97 RS_pos 003013 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 003014 aa 6 00400 7561 00 stq pr6|256 003015 aa 000 000 165 545 tctr (pr,rl,al) 003016 aa 7 00000 00 0006 desc9a pr7|0,ql RS 003017 aa 004305 0000 04 arg 2245,ic 007322 = 777777777777 003020 aa 6 00056 0001 00 arg pr6|46 003021 aa 6 00056 2361 00 ldq pr6|46 003022 aa 0 00242 3761 00 anq pr0|162 = 000777777777 003023 aa 6 00401 7561 00 stq pr6|257 003024 aa 6 00400 2361 00 ldq pr6|256 003025 aa 6 00401 1761 00 sbq pr6|257 003026 aa 6 00212 7561 00 stq pr6|138 current_label_len STATEMENT 1 ON LINE 513 hash = mod (binary (unspec (char (substr (current_label, 1, min (2, current_label_len)), 2)), 18) + current_label_len, 61); 003027 aa 000002 1160 07 cmpq 2,dl 003030 aa 000002 6040 04 tmi 2,ic 003032 003031 aa 000002 2360 07 ldq 2,dl 003032 aa 6 00401 4501 00 stz pr6|257 003033 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 003034 aa 2 00000 00 0006 desc9a pr2|0,ql current_label 003035 aa 6 00401 00 0002 desc9a pr6|257,2 003036 aa 6 00401 2351 00 lda pr6|257 003037 aa 000066 7730 00 lrl 54 003040 aa 6 00212 0761 00 adq pr6|138 current_label_len 003041 aa 004746 3520 04 epp2 2534,ic 010007 = 000000000075 003042 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 003043 aa 6 00164 7561 00 stq pr6|116 hash STATEMENT 1 ON LINE 517 if hash = saved_hash /* cheap test -- saved_hash = -1 if not looking */ then if current_label = saved_label_ptr -> label.name then do; 003044 aa 6 00172 1161 00 cmpq pr6|122 saved_hash 003045 aa 000025 6010 04 tnz 21,ic 003072 003046 aa 6 00214 3715 20 epp5 pr6|140,* current_label_ptr 003047 aa 6 00174 3535 20 epp3 pr6|124,* saved_label_ptr 003050 aa 6 00212 2351 00 lda pr6|138 current_label_len 003051 aa 3 00003 2361 00 ldq pr3|3 label.len 003052 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 003053 aa 5 00000 00 0005 desc9a pr5|0,al current_label 003054 aa 3 00005 00 0006 desc9a pr3|5,ql label.name 003055 aa 000015 6010 04 tnz 13,ic 003072 STATEMENT 1 ON LINE 520 saved_hash = -1; 003056 aa 000001 3360 07 lcq 1,dl 003057 aa 6 00172 7561 00 stq pr6|122 saved_hash STATEMENT 1 ON LINE 521 if state = MUST_BE_LABEL then do; 003060 aa 6 00171 2361 00 ldq pr6|121 state 003061 aa 000002 1160 07 cmpq 2,dl 003062 aa 000004 6010 04 tnz 4,ic 003066 STATEMENT 1 ON LINE 523 state = NORMAL; 003063 aa 000000 2360 07 ldq 0,dl 003064 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 524 go to get_next_line; 003065 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 525 end; STATEMENT 1 ON LINE 526 state = NORMAL; 003066 aa 000000 2360 07 ldq 0,dl 003067 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 527 label_ptr = saved_label_ptr; 003070 aa 6 00210 2535 00 spri3 pr6|136 label_ptr STATEMENT 1 ON LINE 528 go to THREAD_IN_LABEL; 003071 aa 000201 7100 04 tra 129,ic 003272 STATEMENT 1 ON LINE 529 end; STATEMENT 1 ON LINE 531 if state = MUST_BE_LABEL then go to UNSTUCK_LABEL; 003072 aa 6 00171 2361 00 ldq pr6|121 state 003073 aa 000002 1160 07 cmpq 2,dl 003074 aa 000310 6000 04 tze 200,ic 003404 STATEMENT 1 ON LINE 533 if abs_data.labels_ptr = null () then call allocate_hash_table (); 003075 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 003076 aa 5 00072 2371 00 ldaq pr5|58 abs_data.labels_ptr 003077 aa 775247 6770 04 eraq -1369,ic 000346 = 077777000043 000001000000 003100 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003101 aa 000005 6010 04 tnz 5,ic 003106 003102 aa 6 00056 6211 00 eax1 pr6|46 003103 aa 000000 4310 07 fld 0,dl 003104 aa 003501 3520 04 epp2 1857,ic 006605 = 000120627000 003105 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 535 do label_ptr = abs_data.labels_ptr -> hash_table (hash) repeat (label.next_ptr) while (label_ptr ^= null ()); 003106 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003107 aa 6 00164 7271 00 lxl7 pr6|116 hash 003110 aa 7 00072 3735 77 epp7 pr7|58,*7 hash_table 003111 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 003112 aa 7 00000 00 0044 descb pr7|0,36 hash_table 003113 aa 6 00401 00 0044 descb pr6|257,36 hash_table 003114 aa 6 00401 7671 00 lprp7 pr6|257 hash_table 003115 aa 6 00210 6535 00 spri7 pr6|136 label_ptr 003116 aa 6 00210 2371 00 ldaq pr6|136 label_ptr 003117 aa 775227 6770 04 eraq -1385,ic 000346 = 077777000043 000001000000 003120 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003121 aa 000045 6000 04 tze 37,ic 003166 STATEMENT 1 ON LINE 536 if current_label = label.name /* if match then three possible actions */ then if control = LABEL /* for label we just go to next line, which in */ then if state = NORMAL /* search mode calls for special action to */ then go to get_next_line; 003122 aa 6 00214 3735 20 epp7 pr6|140,* current_label_ptr 003123 aa 6 00210 3715 20 epp5 pr6|136,* label_ptr 003124 aa 6 00212 2351 00 lda pr6|138 current_label_len 003125 aa 5 00003 2361 00 ldq pr5|3 label.len 003126 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 003127 aa 7 00000 00 0005 desc9a pr7|0,al current_label 003130 aa 5 00005 00 0006 desc9a pr5|5,ql label.name 003131 aa 000032 6010 04 tnz 26,ic 003163 003132 aa 6 00154 2361 00 ldq pr6|108 control 003133 aa 000012 1160 07 cmpq 10,dl 003134 aa 000005 6010 04 tnz 5,ic 003141 003135 aa 6 00171 2361 00 ldq pr6|121 state 003136 aa 000002 6010 04 tnz 2,ic 003140 003137 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 540 else go to GET_NEXT_LABEL_LINE; 003140 aa 000156 7100 04 tra 110,ic 003316 STATEMENT 1 ON LINE 541 else do; STATEMENT 1 ON LINE 542 saved_hash = hash; 003141 aa 6 00164 2361 00 ldq pr6|116 hash 003142 aa 6 00172 7561 00 stq pr6|122 saved_hash STATEMENT 1 ON LINE 543 saved_label_ptr = label_ptr; 003143 aa 6 00174 6515 00 spri5 pr6|124 saved_label_ptr STATEMENT 1 ON LINE 544 old_IS_pos = input_string.position; 003144 aa 6 00206 3535 20 epp3 pr6|134,* abs_data_ptr 003145 aa 3 00016 2361 00 ldq pr3|14 abs_data.position 003146 aa 6 00130 7561 00 stq pr6|88 old_IS_pos STATEMENT 1 ON LINE 545 input_string.position = label.statement_pos; 003147 aa 5 00001 2361 00 ldq pr5|1 label.statement_pos 003150 aa 3 00016 7561 00 stq pr3|14 abs_data.position STATEMENT 1 ON LINE 546 if input_string.position > 0 then if substr (IS, input_string.position, 1) ^= NL then go to UNSTUCK_LABEL; 003151 aa 000006 6044 04 tmoz 6,ic 003157 003152 aa 3 00012 3515 20 epp1 pr3|10,* abs_data.ptr 003153 aa 040 004 106 506 cmpc (pr,ql),(ic),fill(040) 003154 aa 1 77777 60 0001 desc9a pr1|-1(3),1 IS 003155 aa 775075 00 0001 desc9a -1475,1 000250 = 012000000000 003156 aa 000226 6010 04 tnz 150,ic 003404 STATEMENT 1 ON LINE 548 state = MUST_BE_LABEL; 003157 aa 000002 2360 07 ldq 2,dl 003160 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 549 CL_len = 0; 003161 aa 6 00131 4501 00 stz pr6|89 CL_len STATEMENT 1 ON LINE 550 go to get_next_line; 003162 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 551 end; STATEMENT 1 ON LINE 552 end; 003163 aa 5 00000 7631 00 lprp3 pr5|0 label.next_ptr 003164 aa 6 00210 2535 00 spri3 pr6|136 label_ptr 003165 aa 777731 7100 04 tra -39,ic 003116 STATEMENT 1 ON LINE 554 on area call error (error_table_$noalloc, "Allocating label ""^a"".", current_label); 003166 aa 000004 7260 07 lxl6 4,dl 003167 aa 775144 3520 04 epp2 -1436,ic 000333 = 141162145141 003170 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 003171 aa 000004 7100 04 tra 4,ic 003175 003172 aa 000100000000 003173 aa 000040 7100 04 tra 32,ic 003233 BEGIN CONDITION area.3 ENTRY TO area.3 STATEMENT 1 ON LINE 554 on area call error (error_table_$noalloc, "Allocating label ""^a"".", current_label); 003174 da 000256200000 003175 aa 000140 6270 00 eax7 96 003176 aa 7 00034 3521 20 epp2 pr7|28,* 003177 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 003200 aa 000000000000 003201 aa 000000000000 003202 aa 6 00040 3735 20 epp7 pr6|32,* 003203 aa 7 00212 2361 00 ldq pr7|138 current_label_len 003204 aa 526000 2760 03 orq 175104,du 003205 aa 6 00100 7561 00 stq pr6|64 003206 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003207 aa 775217 00 0030 desc9a -1393,24 000425 = 101154154157 003210 aa 6 00102 00 0030 desc9a pr6|66,24 003211 la 4 00010 3521 20 epp2 pr4|8,* error_table_$noalloc 003212 aa 6 00112 2521 00 spri2 pr6|74 003213 aa 6 00102 3521 00 epp2 pr6|66 003214 aa 6 00114 2521 00 spri2 pr6|76 003215 aa 7 00214 3521 20 epp2 pr7|140,* current_label 003216 aa 6 00116 2521 00 spri2 pr6|78 003217 aa 775115 3520 04 epp2 -1459,ic 000334 = 404000000043 003220 aa 6 00122 2521 00 spri2 pr6|82 003221 aa 775057 3520 04 epp2 -1489,ic 000300 = 524000000026 003222 aa 6 00124 2521 00 spri2 pr6|84 003223 aa 6 00100 3521 00 epp2 pr6|64 003224 aa 6 00126 2521 00 spri2 pr6|86 003225 aa 000001 7270 07 lxl7 1,dl 003226 aa 6 00110 6211 00 eax1 pr6|72 003227 aa 014000 4310 07 fld 6144,dl 003230 aa 003455 3520 04 epp2 1837,ic 006705 = 000400627000 003231 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc 003232 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION area.3 STATEMENT 1 ON LINE 556 allocate label in (abs_data_work_area); 003233 aa 6 00212 2361 00 ldq pr6|138 current_label_len 003234 aa 000003 0760 07 adq 3,dl 003235 aa 000002 7320 00 qrs 2 003236 aa 000005 0760 07 adq 5,dl 003237 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003240 aa 7 00074 3521 20 epp2 pr7|60,* abs_data_work_area 003241 aa 0 01402 7001 00 tsx0 pr0|770 op_alloc_ 003242 aa 777771 7100 04 tra -7,ic 003233 003243 aa 6 00210 2521 00 spri2 pr6|136 label_ptr 003244 aa 6 00212 2361 00 ldq pr6|138 current_label_len 003245 aa 2 00003 7561 00 stq pr2|3 label.len 003246 aa 6 00214 3735 20 epp7 pr6|140,* current_label_ptr 003247 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003250 aa 7 00000 00 0006 desc9a pr7|0,ql current_label 003251 aa 2 00005 00 0006 desc9a pr2|5,ql label.name STATEMENT 1 ON LINE 558 revert area; 003252 aa 6 00104 4501 00 stz pr6|68 STATEMENT 1 ON LINE 560 if control = GOTO then do; 003253 aa 6 00154 2361 00 ldq pr6|108 control 003254 aa 000007 1160 07 cmpq 7,dl 003255 aa 000015 6010 04 tnz 13,ic 003272 STATEMENT 1 ON LINE 562 saved_hash = hash; 003256 aa 6 00164 2361 00 ldq pr6|116 hash 003257 aa 6 00172 7561 00 stq pr6|122 saved_hash STATEMENT 1 ON LINE 563 saved_label_ptr = label_ptr; 003260 aa 6 00174 2521 00 spri2 pr6|124 saved_label_ptr STATEMENT 1 ON LINE 564 old_IS_pos = input_string.position; 003261 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 003262 aa 5 00016 2361 00 ldq pr5|14 abs_data.position 003263 aa 6 00130 7561 00 stq pr6|88 old_IS_pos STATEMENT 1 ON LINE 565 state = SEARCHING_FOR_LABEL; 003264 aa 000001 2360 07 ldq 1,dl 003265 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 566 input_string.position = input_string.limit - CL_len; 003266 aa 5 00017 2361 00 ldq pr5|15 abs_data.limit 003267 aa 6 00131 1761 00 sbq pr6|89 CL_len 003270 aa 5 00016 7561 00 stq pr5|14 abs_data.position STATEMENT 1 ON LINE 567 go to GET_NEXT_LABEL_LINE; 003271 aa 000025 7100 04 tra 21,ic 003316 STATEMENT 1 ON LINE 568 end; STATEMENT 1 ON LINE 570 THREAD_IN_LABEL: label.statement_pos = input_string.position; 003272 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003273 aa 7 00016 2361 00 ldq pr7|14 abs_data.position 003274 aa 6 00210 3715 20 epp5 pr6|136,* label_ptr 003275 aa 5 00001 7561 00 stq pr5|1 label.statement_pos STATEMENT 1 ON LINE 572 label.next_ptr = abs_data.labels_ptr -> hash_table (hash); 003276 aa 6 00164 7271 00 lxl7 pr6|116 hash 003277 aa 7 00072 3535 77 epp3 pr7|58,*7 hash_table 003300 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 003301 aa 3 00000 00 0044 descb pr3|0,36 hash_table 003302 aa 6 00056 00 0044 descb pr6|46,36 003303 aa 6 00056 2351 00 lda pr6|46 003304 aa 000044 7730 00 lrl 36 003305 aa 5 00000 7561 00 stq pr5|0 label.next_ptr STATEMENT 1 ON LINE 573 abs_data.labels_ptr -> hash_table (hash) = label_ptr; 003306 aa 6 00056 5451 00 sprp5 pr6|46 003307 aa 7 00072 3515 77 epp1 pr7|58,*7 hash_table 003310 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 003311 aa 6 00056 00 0044 descb pr6|46,36 003312 aa 1 00000 00 0044 descb pr1|0,36 hash_table STATEMENT 1 ON LINE 575 if state = NORMAL then go to get_next_line; 003313 aa 6 00171 2361 00 ldq pr6|121 state 003314 aa 000002 6010 04 tnz 2,ic 003316 003315 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 577 GET_NEXT_LABEL_LINE: input_string.position = input_string.position + CL_len; 003316 aa 6 00131 2361 00 ldq pr6|89 CL_len 003317 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003320 aa 7 00016 0561 00 asq pr7|14 abs_data.position STATEMENT 1 ON LINE 579 CL_len = index (substr (IS, input_string.position), NL_THEN_AMP) - 1; 003321 aa 7 00016 2361 00 ldq pr7|14 abs_data.position 003322 aa 000001 1760 07 sbq 1,dl 003323 aa 6 00401 7561 00 stq pr6|257 003324 aa 7 00014 2361 00 ldq pr7|12 abs_data.len 003325 aa 6 00401 1761 00 sbq pr6|257 003326 aa 7 00016 2351 00 lda pr7|14 abs_data.position 003327 aa 7 00012 3715 20 epp5 pr7|10,* abs_data.ptr 003330 aa 000 003 120 545 scd (pr,rl,al),(du) 003331 aa 5 77777 60 0006 desc9a pr5|-1(3),ql IS 003332 aa 012046 00 0002 desc9a 5158,2 003333 aa 6 00056 0001 00 arg pr6|46 003334 aa 6 00056 2361 00 ldq pr6|46 003335 aa 000002 6070 04 ttf 2,ic 003337 003336 aa 000001 3360 07 lcq 1,dl 003337 aa 6 00131 7561 00 stq pr6|89 CL_len STATEMENT 1 ON LINE 581 if CL_len >= 0 then go to get_next_line; 003340 aa 000002 6040 04 tmi 2,ic 003342 003341 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 583 input_string.position = old_IS_pos; 003342 aa 6 00130 2361 00 ldq pr6|88 old_IS_pos 003343 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003344 aa 7 00016 7561 00 stq pr7|14 abs_data.position STATEMENT 1 ON LINE 584 call error (0, "Label ""^a"" not found.", saved_label_ptr -> label.name); 003345 aa 6 00174 3715 20 epp5 pr6|124,* saved_label_ptr 003346 aa 5 00003 2361 00 ldq pr5|3 label.len 003347 aa 524000 2760 03 orq 174080,du 003350 aa 6 00401 7561 00 stq pr6|257 003351 aa 6 00400 4501 00 stz pr6|256 003352 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003353 aa 775061 00 0030 desc9a -1487,24 000433 = 114141142145 003354 aa 6 00404 00 0030 desc9a pr6|260,24 003355 aa 6 00400 3521 00 epp2 pr6|256 003356 aa 6 00424 2521 00 spri2 pr6|276 003357 aa 6 00404 3521 00 epp2 pr6|260 003360 aa 6 00426 2521 00 spri2 pr6|278 003361 aa 5 00005 3521 00 epp2 pr5|5 label.name 003362 aa 6 00430 2521 00 spri2 pr6|280 003363 aa 774745 3520 04 epp2 -1563,ic 000330 = 404000000005 003364 aa 6 00434 2521 00 spri2 pr6|284 003365 aa 774727 3520 04 epp2 -1577,ic 000314 = 524000000025 003366 aa 6 00436 2521 00 spri2 pr6|286 003367 aa 6 00401 3521 00 epp2 pr6|257 003370 aa 6 00440 2521 00 spri2 pr6|288 003371 aa 6 00422 6211 00 eax1 pr6|274 003372 aa 014000 4310 07 fld 6144,dl 003373 aa 003312 3520 04 epp2 1738,ic 006705 = 000400627000 003374 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 586 STATE (1): /* SEARCHING_FOR_LABEL */ if control = LABEL then go to GET_CURRENT_LABEL; 003375 aa 6 00154 2361 00 ldq pr6|108 control 003376 aa 000012 1160 07 cmpq 10,dl 003377 aa 777406 6000 04 tze -250,ic 003005 STATEMENT 1 ON LINE 589 else go to GET_NEXT_LABEL_LINE; 003400 aa 777716 7100 04 tra -50,ic 003316 STATEMENT 1 ON LINE 591 STATE (2): /* MUST_BE_LABEL */ if control = LABEL then go to GET_CURRENT_LABEL; 003401 aa 6 00154 2361 00 ldq pr6|108 control 003402 aa 000012 1160 07 cmpq 10,dl 003403 aa 777402 6000 04 tze -254,ic 003005 STATEMENT 1 ON LINE 594 UNSTUCK_LABEL: input_string.position = old_IS_pos; 003404 aa 6 00130 2361 00 ldq pr6|88 old_IS_pos 003405 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003406 aa 7 00016 7561 00 stq pr7|14 abs_data.position STATEMENT 1 ON LINE 596 state = NORMAL; 003407 aa 000000 2360 07 ldq 0,dl 003410 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 597 call error (0, "Label ""^a"" is unstuck. Active programs may not be edited.", saved_label_ptr -> label.name); 003411 aa 6 00174 3715 20 epp5 pr6|124,* saved_label_ptr 003412 aa 5 00003 2361 00 ldq pr5|3 label.len 003413 aa 524000 2760 03 orq 174080,du 003414 aa 6 00401 7561 00 stq pr6|257 003415 aa 6 00400 4501 00 stz pr6|256 003416 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003417 aa 775403 00 0074 desc9a -1277,60 001021 = 114141142145 003420 aa 6 00422 00 0074 desc9a pr6|274,60 003421 aa 6 00400 3521 00 epp2 pr6|256 003422 aa 6 00464 2521 00 spri2 pr6|308 003423 aa 6 00422 3521 00 epp2 pr6|274 003424 aa 6 00466 2521 00 spri2 pr6|310 003425 aa 5 00005 3521 00 epp2 pr5|5 label.name 003426 aa 6 00470 2521 00 spri2 pr6|312 003427 aa 774701 3520 04 epp2 -1599,ic 000330 = 404000000005 003430 aa 6 00474 2521 00 spri2 pr6|316 003431 aa 774661 3520 04 epp2 -1615,ic 000312 = 524000000072 003432 aa 6 00476 2521 00 spri2 pr6|318 003433 aa 6 00401 3521 00 epp2 pr6|257 003434 aa 6 00500 2521 00 spri2 pr6|320 003435 aa 6 00462 6211 00 eax1 pr6|306 003436 aa 014000 4310 07 fld 6144,dl 003437 aa 003246 3520 04 epp2 1702,ic 006705 = 000400627000 003440 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 599 CONTROL (0): /* COMMENT LINE */ if scanning_clause then call error (0, "A comment may not follow ""&then"" or ""&else""."); 003441 aa 6 00177 2351 00 lda pr6|127 scanning_clause 003442 aa 000021 6000 04 tze 17,ic 003463 003443 aa 6 00401 4501 00 stz pr6|257 003444 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003445 aa 775137 00 0054 desc9a -1441,44 000603 = 101040143157 003446 aa 6 00444 00 0054 desc9a pr6|292,44 003447 aa 6 00401 3521 00 epp2 pr6|257 003450 aa 6 00406 2521 00 spri2 pr6|262 003451 aa 6 00444 3521 00 epp2 pr6|292 003452 aa 6 00410 2521 00 spri2 pr6|264 003453 aa 774655 3520 04 epp2 -1619,ic 000330 = 404000000005 003454 aa 6 00414 2521 00 spri2 pr6|268 003455 aa 774634 3520 04 epp2 -1636,ic 000311 = 524000000054 003456 aa 6 00416 2521 00 spri2 pr6|270 003457 aa 6 00404 6211 00 eax1 pr6|260 003460 aa 010000 4310 07 fld 4096,dl 003461 aa 003224 3520 04 epp2 1684,ic 006705 = 000400627000 003462 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 602 call trace_output (abs_data.comment_line, CL); 003463 aa 6 00131 2361 00 ldq pr6|89 CL_len 003464 aa 526000 2760 03 orq 175104,du 003465 aa 6 00401 7561 00 stq pr6|257 003466 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 003467 aa 7 00022 3521 00 epp2 pr7|18 abs_data.comment_line 003470 aa 6 00406 2521 00 spri2 pr6|262 003471 aa 6 00134 3521 20 epp2 pr6|92,* CL 003472 aa 6 00410 2521 00 spri2 pr6|264 003473 aa 774672 3520 04 epp2 -1606,ic 000365 = 504000000002 003474 aa 6 00412 2521 00 spri2 pr6|266 003475 aa 6 00401 3521 00 epp2 pr6|257 003476 aa 6 00414 2521 00 spri2 pr6|268 003477 aa 6 00404 3521 00 epp2 pr6|260 003500 aa 010000 4310 07 fld 4096,dl 003501 aa 2 00000 7571 00 staq pr2|0 003502 aa 001504 6700 04 tsp4 836,ic 005206 STATEMENT 1 ON LINE 604 go to get_next_line; 003503 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 606 CONTROL (11): /* &print */ call ioa_$nnl (substr (RS, min (RS_pos + 1, RS_len))); 003504 aa 6 00141 2361 00 ldq pr6|97 RS_pos 003505 aa 000001 0760 07 adq 1,dl 003506 aa 6 00140 1161 00 cmpq pr6|96 RS_len 003507 aa 000002 6040 04 tmi 2,ic 003511 003510 aa 6 00140 2361 00 ldq pr6|96 RS_len 003511 aa 6 00400 7561 00 stq pr6|256 003512 aa 000001 1760 07 sbq 1,dl 003513 aa 6 00443 7561 00 stq pr6|291 003514 aa 6 00140 2361 00 ldq pr6|96 RS_len 003515 aa 6 00443 1761 00 sbq pr6|291 003516 aa 6 00443 7561 00 stq pr6|291 003517 aa 524000 2760 03 orq 174080,du 003520 aa 6 00401 7561 00 stq pr6|257 003521 aa 6 00443 2361 00 ldq pr6|291 003522 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 003523 aa 6 00446 2521 00 spri2 pr6|294 003524 aa 6 00400 2351 00 lda pr6|256 003525 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 003526 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 003527 aa 7 77777 60 0006 desc9a pr7|-1(3),ql RS 003530 aa 2 00000 00 0006 desc9a pr2|0,ql 003531 aa 6 00401 3521 00 epp2 pr6|257 003532 aa 6 00450 2521 00 spri2 pr6|296 003533 aa 6 00444 6211 00 eax1 pr6|292 003534 aa 004000 4310 07 fld 2048,dl 003535 aa 6 00044 3701 20 epp4 pr6|36,* 003536 la 4 00052 3521 20 epp2 pr4|42,* ioa_$nnl 003537 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 608 go to get_next_line; 003540 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 003541 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 610 CONTROL (12): /* &quit */ if RS_pos ^= RS_len then call warning (0, "No arguments are required by ""&quit""."); 003542 aa 6 00141 2361 00 ldq pr6|97 RS_pos 003543 aa 6 00140 1161 00 cmpq pr6|96 RS_len 003544 aa 777132 6000 04 tze -422,ic 002676 003545 aa 6 00401 4501 00 stz pr6|257 003546 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003547 aa 774775 00 0050 desc9a -1539,40 000543 = 116157040141 003550 aa 6 00404 00 0050 desc9a pr6|260,40 003551 aa 6 00401 3521 00 epp2 pr6|257 003552 aa 6 00446 2521 00 spri2 pr6|294 003553 aa 6 00404 3521 00 epp2 pr6|260 003554 aa 6 00450 2521 00 spri2 pr6|296 003555 aa 774553 3520 04 epp2 -1685,ic 000330 = 404000000005 003556 aa 6 00454 2521 00 spri2 pr6|300 003557 aa 774531 3520 04 epp2 -1703,ic 000310 = 524000000045 003560 aa 6 00456 2521 00 spri2 pr6|302 003561 aa 6 00444 6211 00 eax1 pr6|292 003562 aa 010000 4310 07 fld 4096,dl 003563 aa 003133 3520 04 epp2 1627,ic 006716 = 000400627000 003564 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 613 go to END_OF_FILE; 003565 aa 777111 7100 04 tra -439,ic 002676 STATEMENT 1 ON LINE 615 CONTROL (15): /* &return */ if RS_pos = RS_len then RS_pos = RS_pos - 1; 003566 aa 6 00141 2361 00 ldq pr6|97 RS_pos 003567 aa 6 00140 1161 00 cmpq pr6|96 RS_len 003570 aa 000003 6010 04 tnz 3,ic 003573 003571 aa 000001 3360 07 lcq 1,dl 003572 aa 6 00141 0561 00 asq pr6|97 RS_pos STATEMENT 1 ON LINE 618 RS_ptr = addr (substr (RS, RS_pos + 1)); 003573 aa 6 00141 2351 00 lda pr6|97 RS_pos 003574 aa 6 00142 3521 20 epp2 pr6|98,* RS 003575 aa 2 00000 5005 05 a9bd pr2|0,al 003576 aa 6 00142 2521 00 spri2 pr6|98 RS_ptr STATEMENT 1 ON LINE 619 RS_len = RS_len - RS_pos; 003577 aa 6 00141 3361 00 lcq pr6|97 RS_pos 003600 aa 6 00140 0561 00 asq pr6|96 RS_len STATEMENT 1 ON LINE 621 if functionp () then do; 003601 aa 004151 3520 04 epp2 2153,ic 007752 = 000002000000 003602 aa 002213 6700 04 tsp4 1163,ic 006015 003603 aa 6 00401 2351 00 lda pr6|257 003604 aa 400000 3150 03 cana 131072,du 003605 aa 000052 6000 04 tze 42,ic 003657 STATEMENT 1 ON LINE 623 RS_len = RS_len - 1; 003606 aa 000001 3360 07 lcq 1,dl 003607 aa 6 00140 0561 00 asq pr6|96 RS_len STATEMENT 1 ON LINE 624 if RS_len > ec_data.return_len then call warning (error_table_$command_line_overflow, "Expanded value length of ^d characters exceeds return argument length of ^d characters.", RS_len, ec_data.return_len); 003610 aa 6 00140 2361 00 ldq pr6|96 RS_len 003611 aa 6 00216 3735 20 epp7 pr6|142,* ec_data_ptr 003612 aa 7 00003 1161 00 cmpq pr7|3 ec_data.return_len 003613 aa 000030 6044 04 tmoz 24,ic 003643 003614 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003615 aa 775375 00 0130 desc9a -1283,88 001211 = 105170160141 003616 aa 6 00504 00 0130 desc9a pr6|324,88 003617 aa 6 00044 3701 20 epp4 pr6|36,* 003620 la 4 00012 3521 20 epp2 pr4|10,* error_table_$command_line_overflow 003621 aa 6 00534 2521 00 spri2 pr6|348 003622 aa 6 00504 3521 00 epp2 pr6|324 003623 aa 6 00536 2521 00 spri2 pr6|350 003624 aa 6 00140 3521 00 epp2 pr6|96 RS_len 003625 aa 6 00540 2521 00 spri2 pr6|352 003626 aa 7 00003 3521 00 epp2 pr7|3 ec_data.return_len 003627 aa 6 00542 2521 00 spri2 pr6|354 003630 aa 774504 3520 04 epp2 -1724,ic 000334 = 404000000043 003631 aa 6 00546 2521 00 spri2 pr6|358 003632 aa 774455 3520 04 epp2 -1747,ic 000307 = 524000000127 003633 aa 6 00550 2521 00 spri2 pr6|360 003634 aa 774501 3520 04 epp2 -1727,ic 000335 = 404000000025 003635 aa 6 00552 2521 00 spri2 pr6|362 003636 aa 6 00554 2521 00 spri2 pr6|364 003637 aa 6 00532 6211 00 eax1 pr6|346 003640 aa 020000 4310 07 fld 8192,dl 003641 aa 003055 3520 04 epp2 1581,ic 006716 = 000400627000 003642 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 628 return_arg = RS; 003643 aa 6 00140 2361 00 ldq pr6|96 RS_len 003644 aa 6 00216 3735 20 epp7 pr6|142,* ec_data_ptr 003645 aa 7 00003 1161 00 cmpq pr7|3 ec_data.return_len 003646 aa 000002 6040 04 tmi 2,ic 003650 003647 aa 7 00003 2361 00 ldq pr7|3 ec_data.return_len 003650 aa 7 00004 7561 20 stq pr7|4,* return_arg 003651 aa 7 00004 3715 20 epp5 pr7|4,* ec_data.return_ptr 003652 aa 6 00142 3535 20 epp3 pr6|98,* RS_ptr 003653 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003654 aa 3 00000 00 0006 desc9a pr3|0,ql RS 003655 aa 5 00001 00 0006 desc9a pr5|1,ql return_arg STATEMENT 1 ON LINE 629 end; 003656 aa 777020 7100 04 tra -496,ic 002676 STATEMENT 1 ON LINE 630 else call bce_data$put_chars (addr (bce_data$put_chars), addr (RS), length (RS), status); 003657 aa 6 00044 3701 20 epp4 pr6|36,* 003660 la 4 00026 3735 20 epp7 pr4|22,* bce_data$put_chars 003661 aa 6 00402 6535 00 spri7 pr6|258 003662 aa 6 00142 3521 20 epp2 pr6|98,* RS 003663 aa 6 00556 2521 00 spri2 pr6|366 003664 aa 6 00140 2361 00 ldq pr6|96 RS_len 003665 aa 6 00401 7561 00 stq pr6|257 003666 aa 6 00402 3521 00 epp2 pr6|258 003667 aa 6 00446 2521 00 spri2 pr6|294 003670 aa 6 00556 3521 00 epp2 pr6|366 003671 aa 6 00450 2521 00 spri2 pr6|296 003672 aa 6 00401 3521 00 epp2 pr6|257 003673 aa 6 00452 2521 00 spri2 pr6|298 003674 aa 6 00200 3521 00 epp2 pr6|128 status 003675 aa 6 00454 2521 00 spri2 pr6|300 003676 aa 6 00444 6211 00 eax1 pr6|292 003677 aa 020000 4310 07 fld 8192,dl 003700 la 4 00026 3521 20 epp2 pr4|22,* bce_data$put_chars 003701 aa 0 00617 7001 00 tsx0 pr0|399 call_ent_var STATEMENT 1 ON LINE 632 go to END_OF_FILE; 003702 aa 776774 7100 04 tra -516,ic 002676 STATEMENT 1 ON LINE 634 CONTROL (17): call error (0, "The ""&version"" statement may only be the first line of the program."); 003703 aa 6 00401 4501 00 stz pr6|257 003704 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003705 aa 775134 00 0104 desc9a -1444,68 001040 = 124150145040 003706 aa 6 00422 00 0104 desc9a pr6|274,68 003707 aa 6 00401 3521 00 epp2 pr6|257 003710 aa 6 00406 2521 00 spri2 pr6|262 003711 aa 6 00422 3521 00 epp2 pr6|274 003712 aa 6 00410 2521 00 spri2 pr6|264 003713 aa 774415 3520 04 epp2 -1779,ic 000330 = 404000000005 003714 aa 6 00414 2521 00 spri2 pr6|268 003715 aa 774371 3520 04 epp2 -1799,ic 000306 = 524000000103 003716 aa 6 00416 2521 00 spri2 pr6|270 003717 aa 6 00404 6211 00 eax1 pr6|260 003720 aa 010000 4310 07 fld 4096,dl 003721 aa 002764 3520 04 epp2 1524,ic 006705 = 000400627000 003722 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 637 CONTROL (1): /* &attach */ if RS_pos ^= RS_len then call warning (0, "No arguments are required by ""&attach""."); 003723 aa 6 00141 2361 00 ldq pr6|97 RS_pos 003724 aa 6 00140 1161 00 cmpq pr6|96 RS_len 003725 aa 000021 6000 04 tze 17,ic 003746 003726 aa 6 00401 4501 00 stz pr6|257 003727 aa 000 100 100 404 mlr (ic),(pr),fill(000) 003730 aa 774602 00 0050 desc9a -1662,40 000531 = 116157040141 003731 aa 6 00444 00 0050 desc9a pr6|292,40 003732 aa 6 00401 3521 00 epp2 pr6|257 003733 aa 6 00406 2521 00 spri2 pr6|262 003734 aa 6 00444 3521 00 epp2 pr6|292 003735 aa 6 00410 2521 00 spri2 pr6|264 003736 aa 774372 3520 04 epp2 -1798,ic 000330 = 404000000005 003737 aa 6 00414 2521 00 spri2 pr6|268 003740 aa 774345 3520 04 epp2 -1819,ic 000305 = 524000000047 003741 aa 6 00416 2521 00 spri2 pr6|270 003742 aa 6 00404 6211 00 eax1 pr6|260 003743 aa 010000 4310 07 fld 4096,dl 003744 aa 002752 3520 04 epp2 1514,ic 006716 = 000400627000 003745 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 640 if ec_data_ptr ^= null () & ^attachedp () then do; 003746 aa 004004 3520 04 epp2 2052,ic 007752 = 000002000000 003747 aa 002021 6700 04 tsp4 1041,ic 005770 003750 aa 6 00401 2351 00 lda pr6|257 003751 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 003752 aa 0 00002 6751 00 era pr0|2 = 400000000000 003753 aa 6 00401 7551 00 sta pr6|257 003754 aa 6 00216 2371 00 ldaq pr6|142 ec_data_ptr 003755 aa 774371 6770 04 eraq -1799,ic 000346 = 077777000043 000001000000 003756 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 003757 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 003760 aa 6 00401 3151 00 cana pr6|257 003761 aa 000024 6000 04 tze 20,ic 004005 STATEMENT 1 ON LINE 642 bce_data$command_abs_data_ptr -> abs_data.save_ptr = bce_data$get_line_data_ptr; 003762 aa 6 00044 3701 20 epp4 pr6|36,* 003763 la 4 00022 3735 20 epp7 pr4|18,* bce_data$get_line_data_ptr 003764 aa 7 00000 3735 20 epp7 pr7|0,* bce_data$get_line_data_ptr 003765 la 4 00020 3715 20 epp5 pr4|16,* bce_data$command_abs_data_ptr 003766 aa 5 00000 3715 20 epp5 pr5|0,* bce_data$command_abs_data_ptr 003767 aa 5 00034 6535 00 spri7 pr5|28 abs_data.save_ptr STATEMENT 1 ON LINE 643 bce_data$command_abs_data_ptr -> abs_data.victim_ptr = codeptr (bce_data$get_line); 003770 la 4 00030 3521 20 epp2 pr4|24,* bce_data$get_line 003771 aa 2 00000 3521 20 epp2 pr2|0,* bce_data$get_line 003772 la 4 00020 3735 20 epp7 pr4|16,* bce_data$command_abs_data_ptr 003773 aa 7 00000 3735 20 epp7 pr7|0,* bce_data$command_abs_data_ptr 003774 aa 7 00030 2521 00 spri2 pr7|24 abs_data.victim_ptr STATEMENT 1 ON LINE 644 bce_data$get_line_data_ptr = bce_data$command_abs_data_ptr; 003775 la 4 00020 3735 20 epp7 pr4|16,* bce_data$command_abs_data_ptr 003776 aa 7 00000 3735 20 epp7 pr7|0,* bce_data$command_abs_data_ptr 003777 la 4 00022 6535 20 spri7 pr4|18,* bce_data$get_line_data_ptr STATEMENT 1 ON LINE 645 bce_data$get_line = bce_exec_com_input; 004000 aa 775244 3520 04 epp2 -1372,ic 001244 = 001140627000 004001 la 4 00030 2521 20 spri2 pr4|24,* bce_data$get_line 004002 aa 003312 2370 04 ldaq 1738,ic 007314 = 077777000043 000001000000 004003 la 4 00030 3735 20 epp7 pr4|24,* bce_data$get_line 004004 aa 7 00002 7571 00 staq pr7|2 bce_data$get_line STATEMENT 1 ON LINE 646 end; STATEMENT 1 ON LINE 648 go to get_next_line; 004005 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 650 CONTROL (5): /* &detach */ if RS_pos ^= RS_len then call warning (0, "No arguments are required by ""&detach""."); 004006 aa 6 00141 2361 00 ldq pr6|97 RS_pos 004007 aa 6 00140 1161 00 cmpq pr6|96 RS_len 004010 aa 000021 6000 04 tze 17,ic 004031 004011 aa 6 00401 4501 00 stz pr6|257 004012 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004013 aa 774505 00 0050 desc9a -1723,40 000517 = 116157040141 004014 aa 6 00404 00 0050 desc9a pr6|260,40 004015 aa 6 00401 3521 00 epp2 pr6|257 004016 aa 6 00446 2521 00 spri2 pr6|294 004017 aa 6 00404 3521 00 epp2 pr6|260 004020 aa 6 00450 2521 00 spri2 pr6|296 004021 aa 774307 3520 04 epp2 -1849,ic 000330 = 404000000005 004022 aa 6 00454 2521 00 spri2 pr6|300 004023 aa 774262 3520 04 epp2 -1870,ic 000305 = 524000000047 004024 aa 6 00456 2521 00 spri2 pr6|302 004025 aa 6 00444 6211 00 eax1 pr6|292 004026 aa 010000 4310 07 fld 4096,dl 004027 aa 002667 3520 04 epp2 1463,ic 006716 = 000400627000 004030 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 653 input_string.position = input_string.position + CL_len; 004031 aa 6 00131 2361 00 ldq pr6|89 CL_len 004032 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004033 aa 7 00016 0561 00 asq pr7|14 abs_data.position STATEMENT 1 ON LINE 655 CL_len = 0; 004034 aa 6 00131 4501 00 stz pr6|89 CL_len STATEMENT 1 ON LINE 657 call reset_input (); 004035 aa 000615 6700 04 tsp4 397,ic 004652 STATEMENT 1 ON LINE 659 go to get_next_line; 004036 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 677 CONTROL (13): /* &ready */ string (ready_mode) = ""b; 004037 aa 6 00204 4501 00 stz pr6|132 STATEMENT 1 ON LINE 679 ready_mode.flag = trace_mode (); 004040 aa 003712 3520 04 epp2 1994,ic 007752 = 000002000000 004041 aa 000664 6700 04 tsp4 436,ic 004725 004042 aa 6 00401 2351 00 lda pr6|257 004043 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 004044 aa 6 00204 6751 00 era pr6|132 ready_mode.flag 004045 aa 0 00002 3751 00 ana pr0|2 = 400000000000 004046 aa 6 00204 6551 00 ersa pr6|132 ready_mode.flag STATEMENT 1 ON LINE 681 go to get_next_line; 004047 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 683 CONTROL (14): /* &ready_proc */ test = trace_mode (); 004050 aa 003240 3520 04 epp2 1696,ic 007310 = 000002000000 004051 aa 000654 6700 04 tsp4 428,ic 004725 STATEMENT 1 ON LINE 685 if ec_data_ptr ^= null () then ec_data.call_ready_proc = test; 004052 aa 6 00216 2371 00 ldaq pr6|142 ec_data_ptr 004053 aa 774273 6770 04 eraq -1861,ic 000346 = 077777000043 000001000000 004054 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 004055 aa 000005 6000 04 tze 5,ic 004062 004056 aa 6 00201 2351 00 lda pr6|129 test 004057 aa 0 00002 3771 00 anaq pr0|2 = 400000000000 000000000000 004060 aa 6 00216 3735 20 epp7 pr6|142,* ec_data_ptr 004061 aa 7 00036 7551 00 sta pr7|30 ec_data.call_ready_proc STATEMENT 1 ON LINE 686 go to get_next_line; 004062 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 706 CONTROL (2): /* &command_line */ call trace_control (abs_data.command_line); 004063 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004064 aa 7 00020 3521 00 epp2 pr7|16 abs_data.command_line 004065 aa 6 00446 2521 00 spri2 pr6|294 004066 aa 6 00444 3521 00 epp2 pr6|292 004067 aa 004000 4310 07 fld 2048,dl 004070 aa 2 00000 7571 00 staq pr2|0 004071 aa 000754 6700 04 tsp4 492,ic 005045 STATEMENT 1 ON LINE 708 go to get_next_line; 004072 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 710 CONTROL (3): /* &comment_line */ call trace_control (abs_data.comment_line); 004073 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004074 aa 7 00022 3521 00 epp2 pr7|18 abs_data.comment_line 004075 aa 6 00406 2521 00 spri2 pr6|262 004076 aa 6 00404 3521 00 epp2 pr6|260 004077 aa 004000 4310 07 fld 2048,dl 004100 aa 2 00000 7571 00 staq pr2|0 004101 aa 000744 6700 04 tsp4 484,ic 005045 STATEMENT 1 ON LINE 712 go to get_next_line; 004102 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 714 CONTROL (4): /* &control_line */ call trace_control (abs_data.control_line); 004103 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004104 aa 7 00024 3521 00 epp2 pr7|20 abs_data.control_line 004105 aa 6 00446 2521 00 spri2 pr6|294 004106 aa 6 00444 3521 00 epp2 pr6|292 004107 aa 004000 4310 07 fld 2048,dl 004110 aa 2 00000 7571 00 staq pr2|0 004111 aa 000734 6700 04 tsp4 476,ic 005045 STATEMENT 1 ON LINE 716 go to get_next_line; 004112 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 718 CONTROL (9): /* &input_line */ call trace_control (abs_data.input_line); 004113 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004114 aa 7 00026 3521 00 epp2 pr7|22 abs_data.input_line 004115 aa 6 00406 2521 00 spri2 pr6|262 004116 aa 6 00404 3521 00 epp2 pr6|260 004117 aa 004000 4310 07 fld 2048,dl 004120 aa 2 00000 7571 00 staq pr2|0 004121 aa 000724 6700 04 tsp4 468,ic 005045 STATEMENT 1 ON LINE 720 go to get_next_line; 004122 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 767 CONTROL (8): /* &if */ start = find_clause ("&then"); 004123 aa 774221 2370 04 ldaq -1903,ic 000344 = 046164150145 156000000000 004124 aa 6 00556 7571 00 staq pr6|366 004125 aa 003151 3520 04 epp2 1641,ic 007276 = 000004000000 004126 aa 2 00000 2351 00 lda pr2|0 004127 aa 001160 6700 04 tsp4 624,ic 005307 STATEMENT 1 ON LINE 770 if RS_len = RS_pos | start = RS_pos then call error (0, "Missing conditional in ""&if"" statement."); 004130 aa 6 00140 2361 00 ldq pr6|96 RS_len 004131 aa 6 00141 1161 00 cmpq pr6|97 RS_pos 004132 aa 000004 6000 04 tze 4,ic 004136 004133 aa 6 00170 2361 00 ldq pr6|120 start 004134 aa 6 00141 1161 00 cmpq pr6|97 RS_pos 004135 aa 000021 6010 04 tnz 17,ic 004156 004136 aa 6 00401 4501 00 stz pr6|257 004137 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004140 aa 774346 00 0050 desc9a -1818,40 000505 = 115151163163 004141 aa 6 00444 00 0050 desc9a pr6|292,40 004142 aa 6 00401 3521 00 epp2 pr6|257 004143 aa 6 00406 2521 00 spri2 pr6|262 004144 aa 6 00444 3521 00 epp2 pr6|292 004145 aa 6 00410 2521 00 spri2 pr6|264 004146 aa 774162 3520 04 epp2 -1934,ic 000330 = 404000000005 004147 aa 6 00414 2521 00 spri2 pr6|268 004150 aa 774135 3520 04 epp2 -1955,ic 000305 = 524000000047 004151 aa 6 00416 2521 00 spri2 pr6|270 004152 aa 6 00404 6211 00 eax1 pr6|260 004153 aa 010000 4310 07 fld 4096,dl 004154 aa 002531 3520 04 epp2 1369,ic 006705 = 000400627000 004155 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 772 if start >= 0 then do; 004156 aa 6 00170 2361 00 ldq pr6|120 start 004157 aa 000005 6040 04 tmi 5,ic 004164 STATEMENT 1 ON LINE 774 old_RS_len = RS_len; 004160 aa 6 00140 2361 00 ldq pr6|96 RS_len 004161 aa 6 00144 7561 00 stq pr6|100 old_RS_len STATEMENT 1 ON LINE 775 RS_len = start; 004162 aa 6 00170 2361 00 ldq pr6|120 start 004163 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 776 end; STATEMENT 1 ON LINE 778 RS_len = length (rtrim (RS, WHITE)); 004164 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 004165 aa 6 00140 2351 00 lda pr6|96 RS_len 004166 aa 000 000 165 540 tctr (pr,rl) 004167 aa 7 00000 00 0005 desc9a pr7|0,al RS 004170 aa 003134 0000 04 arg 1628,ic 007322 = 777777777777 004171 aa 6 00056 0001 00 arg pr6|46 004172 aa 6 00056 2361 00 ldq pr6|46 004173 aa 0 00242 3761 00 anq pr0|162 = 000777777777 004174 aa 6 00401 7561 00 stq pr6|257 004175 aa 6 00401 3361 00 lcq pr6|257 004176 aa 6 00140 0561 00 asq pr6|96 RS_len STATEMENT 1 ON LINE 780 abs_data.nest_level = abs_data.nest_level + 1; 004177 aa 6 00206 3715 20 epp5 pr6|134,* abs_data_ptr 004200 aa 5 00051 0541 00 aos pr5|41 abs_data.nest_level STATEMENT 1 ON LINE 782 if state = NORMAL then do; 004201 aa 6 00171 2361 00 ldq pr6|121 state 004202 aa 000053 6010 04 tnz 43,ic 004255 STATEMENT 1 ON LINE 784 call trace_output (abs_data.control_line, RS); 004203 aa 6 00140 2361 00 ldq pr6|96 RS_len 004204 aa 526000 2760 03 orq 175104,du 004205 aa 6 00401 7561 00 stq pr6|257 004206 aa 5 00024 3521 00 epp2 pr5|20 abs_data.control_line 004207 aa 6 00406 2521 00 spri2 pr6|262 004210 aa 7 00000 3521 00 epp2 pr7|0 RS 004211 aa 6 00410 2521 00 spri2 pr6|264 004212 aa 774153 3520 04 epp2 -1941,ic 000365 = 504000000002 004213 aa 6 00412 2521 00 spri2 pr6|266 004214 aa 6 00401 3521 00 epp2 pr6|257 004215 aa 6 00414 2521 00 spri2 pr6|268 004216 aa 6 00404 3521 00 epp2 pr6|260 004217 aa 010000 4310 07 fld 4096,dl 004220 aa 2 00000 7571 00 staq pr2|0 004221 aa 000765 6700 04 tsp4 501,ic 005206 STATEMENT 1 ON LINE 785 call trace_output (abs_data.control_line, NL); 004222 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004223 aa 7 00024 3521 00 epp2 pr7|20 abs_data.control_line 004224 aa 6 00446 2521 00 spri2 pr6|294 004225 aa 774023 3520 04 epp2 -2029,ic 000250 = 012000000000 004226 aa 6 00450 2521 00 spri2 pr6|296 004227 aa 774136 3520 04 epp2 -1954,ic 000365 = 504000000002 004230 aa 6 00452 2521 00 spri2 pr6|298 004231 aa 774071 3520 04 epp2 -1991,ic 000322 = 526000000001 004232 aa 6 00454 2521 00 spri2 pr6|300 004233 aa 6 00444 3521 00 epp2 pr6|292 004234 aa 010000 4310 07 fld 4096,dl 004235 aa 2 00000 7571 00 staq pr2|0 004236 aa 000750 6700 04 tsp4 488,ic 005206 STATEMENT 1 ON LINE 786 abs_data.expected_nest_level = abs_data.nest_level; 004237 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004240 aa 7 00051 2361 00 ldq pr7|41 abs_data.nest_level 004241 aa 7 00052 7561 00 stq pr7|42 abs_data.expected_nest_level STATEMENT 1 ON LINE 787 if ^conditional () then state = SKIPPING_CLAUSE; 004242 aa 6 00401 3521 00 epp2 pr6|257 004243 aa 6 00406 2521 00 spri2 pr6|262 004244 aa 6 00404 6211 00 eax1 pr6|260 004245 aa 004000 4310 07 fld 2048,dl 004246 aa 001153 3520 04 epp2 619,ic 005421 = 000220627000 004247 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this 004250 aa 6 00401 2351 00 lda pr6|257 004251 aa 400000 3150 03 cana 131072,du 004252 aa 000003 6010 04 tnz 3,ic 004255 004253 aa 000004 2360 07 ldq 4,dl 004254 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 788 end; STATEMENT 1 ON LINE 790 if start < 0 then do; 004255 aa 6 00170 2361 00 ldq pr6|120 start 004256 aa 000006 6050 04 tpl 6,ic 004264 STATEMENT 1 ON LINE 792 saved_state = state; 004257 aa 6 00171 2361 00 ldq pr6|121 state 004260 aa 6 00176 7561 00 stq pr6|126 saved_state STATEMENT 1 ON LINE 793 state = MUST_BE_THEN; 004261 aa 000003 2360 07 ldq 3,dl 004262 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 794 go to EXPAND_NEXT_LINE; 004263 aa 775145 7100 04 tra -1435,ic 001430 STATEMENT 1 ON LINE 795 end; STATEMENT 1 ON LINE 797 RS_ptr = addr (substr (RS, start + 1)); 004264 aa 6 00142 3521 20 epp2 pr6|98,* RS 004265 aa 2 00000 5005 06 a9bd pr2|0,ql 004266 aa 6 00142 2521 00 spri2 pr6|98 RS_ptr STATEMENT 1 ON LINE 798 RS_len = old_RS_len - start; 004267 aa 6 00144 2361 00 ldq pr6|100 old_RS_len 004270 aa 6 00170 1761 00 sbq pr6|120 start 004271 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 800 RS_pos = verify (substr (RS, 6), WHITE) + 4; 004272 aa 000005 1760 07 sbq 5,dl 004273 aa 000 000 164 540 tct (pr,rl) 004274 aa 2 00001 20 0006 desc9a pr2|1(1),ql RS 004275 aa 003027 0000 04 arg 1559,ic 007322 = 777777777777 004276 aa 6 00056 0001 00 arg pr6|46 004277 aa 6 00056 2361 00 ldq pr6|46 004300 aa 0 00242 3761 00 anq pr0|162 = 000777777777 004301 aa 000002 6070 04 ttf 2,ic 004303 004302 aa 000001 3360 07 lcq 1,dl 004303 aa 000005 0760 07 adq 5,dl 004304 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 801 if RS_pos = 4 then RS_pos = RS_len; 004305 aa 000004 1160 07 cmpq 4,dl 004306 aa 000003 6010 04 tnz 3,ic 004311 004307 aa 6 00140 2361 00 ldq pr6|96 RS_len 004310 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 803 CONTINUE_THEN: if abs_data.else_clause_len <= 0 then do; 004311 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004312 aa 7 00046 2361 00 ldq pr7|38 abs_data.else_clause_len 004313 aa 000050 6054 04 tpnz 40,ic 004363 STATEMENT 1 ON LINE 806 start = find_clause ("&else"); 004314 aa 774026 2370 04 ldaq -2026,ic 000342 = 046145154163 145000000000 004315 aa 6 00556 7571 00 staq pr6|366 004316 aa 002760 3520 04 epp2 1520,ic 007276 = 000004000000 004317 aa 2 00000 2351 00 lda pr2|0 004320 aa 000767 6700 04 tsp4 503,ic 005307 STATEMENT 1 ON LINE 807 if start >= 0 then do; 004321 aa 6 00170 2361 00 ldq pr6|120 start 004322 aa 000041 6040 04 tmi 33,ic 004363 STATEMENT 1 ON LINE 809 if ^not_in_CL | ^buffer_allocated then call allocate_buffer (RS_len); 004323 aa 6 00136 2351 00 lda pr6|94 not_in_CL 004324 aa 000003 6000 04 tze 3,ic 004327 004325 aa 6 00147 2351 00 lda pr6|103 buffer_allocated 004326 aa 000003 6010 04 tnz 3,ic 004331 004327 aa 002767 3520 04 epp2 1527,ic 007316 = 000002000000 004330 aa 002205 6700 04 tsp4 1157,ic 006535 STATEMENT 1 ON LINE 810 abs_data.else_clause_len = RS_len - start; 004331 aa 6 00140 2361 00 ldq pr6|96 RS_len 004332 aa 6 00170 1761 00 sbq pr6|120 start 004333 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004334 aa 7 00046 7561 00 stq pr7|38 abs_data.else_clause_len STATEMENT 1 ON LINE 811 abs_data.else_clause_ptr = addr (substr (RS, start + 1)); 004335 aa 6 00170 2351 00 lda pr6|120 start 004336 aa 6 00142 3521 20 epp2 pr6|98,* RS 004337 aa 2 00000 5005 05 a9bd pr2|0,al 004340 aa 7 00042 2521 00 spri2 pr7|34 abs_data.else_clause_ptr STATEMENT 1 ON LINE 812 RS_len = length (rtrim (substr (RS, 1, start), WHITE)) + 1; 004341 aa 6 00142 3715 20 epp5 pr6|98,* RS_ptr 004342 aa 000 000 165 540 tctr (pr,rl) 004343 aa 5 00000 00 0005 desc9a pr5|0,al RS 004344 aa 002760 0000 04 arg 1520,ic 007322 = 777777777777 004345 aa 6 00056 0001 00 arg pr6|46 004346 aa 6 00056 2361 00 ldq pr6|46 004347 aa 0 00242 3761 00 anq pr0|162 = 000777777777 004350 aa 6 00401 7561 00 stq pr6|257 004351 aa 6 00170 2361 00 ldq pr6|120 start 004352 aa 6 00401 1761 00 sbq pr6|257 004353 aa 000001 0760 07 adq 1,dl 004354 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 813 substr (RS, RS_len, 1) = NL; 004355 aa 012 106 100 400 mlr (),(pr,ql),fill(012) 004356 aa 000000 00 0000 desc9a 0,0 004357 aa 5 77777 60 0001 desc9a pr5|-1(3),1 RS STATEMENT 1 ON LINE 814 get_next_line = GET_PENDING_ELSE_CLAUSE; 004360 aa 000147 3520 04 epp2 103,ic 004527 = 600206373520 004361 aa 6 00160 2521 00 spri2 pr6|112 get_next_line 004362 aa 6 00162 6521 00 spri6 pr6|114 get_next_line STATEMENT 1 ON LINE 815 end; STATEMENT 1 ON LINE 816 end; STATEMENT 1 ON LINE 818 if RS_pos >= RS_len then RS_pos = RS_len - 1; 004363 aa 6 00141 2361 00 ldq pr6|97 RS_pos 004364 aa 6 00140 1161 00 cmpq pr6|96 RS_len 004365 aa 000004 6040 04 tmi 4,ic 004371 004366 aa 6 00140 2361 00 ldq pr6|96 RS_len 004367 aa 000001 1760 07 sbq 1,dl 004370 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 820 RS_ptr = addr (substr (RS, RS_pos + 1)); 004371 aa 6 00142 3521 20 epp2 pr6|98,* RS 004372 aa 2 00000 5005 06 a9bd pr2|0,ql 004373 aa 6 00142 2521 00 spri2 pr6|98 RS_ptr STATEMENT 1 ON LINE 821 RS_len = RS_len - RS_pos; 004374 aa 6 00141 3361 00 lcq pr6|97 RS_pos 004375 aa 6 00140 0561 00 asq pr6|96 RS_len STATEMENT 1 ON LINE 823 if state = NORMAL then do; 004376 aa 6 00171 2361 00 ldq pr6|121 state 004377 aa 000050 6010 04 tnz 40,ic 004447 STATEMENT 1 ON LINE 825 if control = THEN then call trace_output (abs_data.control_line, TRACE_THEN); 004400 aa 6 00154 2361 00 ldq pr6|108 control 004401 aa 000020 1160 07 cmpq 16,dl 004402 aa 000017 6010 04 tnz 15,ic 004421 004403 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004404 aa 7 00024 3521 00 epp2 pr7|20 abs_data.control_line 004405 aa 6 00446 2521 00 spri2 pr6|294 004406 aa 773636 3520 04 epp2 -2146,ic 000244 = 046164150145 004407 aa 6 00450 2521 00 spri2 pr6|296 004410 aa 773755 3520 04 epp2 -2067,ic 000365 = 504000000002 004411 aa 6 00452 2521 00 spri2 pr6|298 004412 aa 773671 3520 04 epp2 -2119,ic 000303 = 526000000006 004413 aa 6 00454 2521 00 spri2 pr6|300 004414 aa 6 00444 3521 00 epp2 pr6|292 004415 aa 010000 4310 07 fld 4096,dl 004416 aa 2 00000 7571 00 staq pr2|0 004417 aa 000567 6700 04 tsp4 375,ic 005206 004420 aa 000016 7100 04 tra 14,ic 004436 STATEMENT 1 ON LINE 827 else call trace_output (abs_data.control_line, TRACE_ELSE); 004421 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004422 aa 7 00024 3521 00 epp2 pr7|20 abs_data.control_line 004423 aa 6 00406 2521 00 spri2 pr6|262 004424 aa 773616 3520 04 epp2 -2162,ic 000242 = 046145154163 004425 aa 6 00410 2521 00 spri2 pr6|264 004426 aa 773737 3520 04 epp2 -2081,ic 000365 = 504000000002 004427 aa 6 00412 2521 00 spri2 pr6|266 004430 aa 773653 3520 04 epp2 -2133,ic 000303 = 526000000006 004431 aa 6 00414 2521 00 spri2 pr6|268 004432 aa 6 00404 3521 00 epp2 pr6|260 004433 aa 010000 4310 07 fld 4096,dl 004434 aa 2 00000 7571 00 staq pr2|0 004435 aa 000551 6700 04 tsp4 361,ic 005206 STATEMENT 1 ON LINE 829 abs_data.expected_nest_level = 0; 004436 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004437 aa 7 00052 4501 00 stz pr7|42 abs_data.expected_nest_level STATEMENT 1 ON LINE 831 if abs_data.else_clause_len = 0 & abs_data.nest_level > 0 then get_next_line = ENTER_SKIPPING_CLAUSE_STATE; 004440 aa 7 00046 2361 00 ldq pr7|38 abs_data.else_clause_len 004441 aa 000006 6010 04 tnz 6,ic 004447 004442 aa 7 00051 2361 00 ldq pr7|41 abs_data.nest_level 004443 aa 000004 6044 04 tmoz 4,ic 004447 004444 aa 000200 3520 04 epp2 128,ic 004644 = 000004236007 004445 aa 6 00160 2521 00 spri2 pr6|112 get_next_line 004446 aa 6 00162 6521 00 spri6 pr6|114 get_next_line STATEMENT 1 ON LINE 833 end; STATEMENT 1 ON LINE 835 scanning_clause = "1"b; 004447 aa 400000 2350 03 lda 131072,du 004450 aa 6 00177 7551 00 sta pr6|127 scanning_clause STATEMENT 1 ON LINE 837 go to CHECK_CONTROL; 004451 aa 775530 7100 04 tra -1192,ic 002201 STATEMENT 1 ON LINE 839 STATE (3): /* MUST_BE_THEN */ if control = COMMENT then go to get_next_line; 004452 aa 6 00154 2361 00 ldq pr6|108 control 004453 aa 000002 6010 04 tnz 2,ic 004455 004454 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 842 if control ^= THEN then call error (0, "Missing ""&then"" keyword following ""&if"" statement."); 004455 aa 6 00154 2361 00 ldq pr6|108 control 004456 aa 000020 1160 07 cmpq 16,dl 004457 aa 000021 6000 04 tze 17,ic 004500 004460 aa 6 00401 4501 00 stz pr6|257 004461 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004462 aa 774250 00 0064 desc9a -1880,52 000731 = 115151163163 004463 aa 6 00444 00 0064 desc9a pr6|292,52 004464 aa 6 00401 3521 00 epp2 pr6|257 004465 aa 6 00406 2521 00 spri2 pr6|262 004466 aa 6 00444 3521 00 epp2 pr6|292 004467 aa 6 00410 2521 00 spri2 pr6|264 004470 aa 773640 3520 04 epp2 -2144,ic 000330 = 404000000005 004471 aa 6 00414 2521 00 spri2 pr6|268 004472 aa 773610 3520 04 epp2 -2168,ic 000302 = 524000000062 004473 aa 6 00416 2521 00 spri2 pr6|270 004474 aa 6 00404 6211 00 eax1 pr6|260 004475 aa 010000 4310 07 fld 4096,dl 004476 aa 002207 3520 04 epp2 1159,ic 006705 = 000400627000 004477 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 844 state = saved_state; 004500 aa 6 00176 2361 00 ldq pr6|126 saved_state 004501 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 846 go to CONTINUE_THEN; 004502 aa 777607 7100 04 tra -121,ic 004311 STATEMENT 1 ON LINE 848 CONTROL (16): /* &then: this can't be reached by a legitimate clause */ call error (0, "Unexpected ""&then"" statement."); 004503 aa 6 00401 4501 00 stz pr6|257 004504 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004505 aa 773771 00 0040 desc9a -2055,32 000475 = 125156145170 004506 aa 6 00404 00 0040 desc9a pr6|260,32 004507 aa 6 00401 3521 00 epp2 pr6|257 004510 aa 6 00446 2521 00 spri2 pr6|294 004511 aa 6 00404 3521 00 epp2 pr6|260 004512 aa 6 00450 2521 00 spri2 pr6|296 004513 aa 773615 3520 04 epp2 -2163,ic 000330 = 404000000005 004514 aa 6 00454 2521 00 spri2 pr6|300 004515 aa 773564 3520 04 epp2 -2188,ic 000301 = 524000000035 004516 aa 6 00456 2521 00 spri2 pr6|302 004517 aa 6 00444 6211 00 eax1 pr6|292 004520 aa 010000 4310 07 fld 4096,dl 004521 aa 002164 3520 04 epp2 1140,ic 006705 = 000400627000 004522 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 851 CONTINUE_WITH_PENDING_ELSE_CLAUSE: buffer_allocated = "1"b; 004523 aa 400000 2350 03 lda 131072,du 004524 aa 6 00147 7551 00 sta pr6|103 buffer_allocated STATEMENT 1 ON LINE 853 CL_len = 0; 004525 aa 6 00131 4501 00 stz pr6|89 CL_len STATEMENT 1 ON LINE 854 not_in_CL = "1"b; 004526 aa 6 00136 7551 00 sta pr6|94 not_in_CL STATEMENT 1 ON LINE 856 GET_PENDING_ELSE_CLAUSE: RS_len = abs_data.else_clause_len; 004527 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004530 aa 7 00046 2361 00 ldq pr7|38 abs_data.else_clause_len 004531 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 858 RS_ptr = abs_data.else_clause_ptr; 004532 aa 7 00042 3715 20 epp5 pr7|34,* abs_data.else_clause_ptr 004533 aa 6 00142 6515 00 spri5 pr6|98 RS_ptr STATEMENT 1 ON LINE 859 abs_data.else_clause_len = 0; 004534 aa 7 00046 4501 00 stz pr7|38 abs_data.else_clause_len STATEMENT 1 ON LINE 861 RS_pos = verify (substr (RS, 6), WHITE) + 4; 004535 aa 000005 1760 07 sbq 5,dl 004536 aa 000 000 164 540 tct (pr,rl) 004537 aa 5 00001 20 0006 desc9a pr5|1(1),ql RS 004540 aa 002564 0000 04 arg 1396,ic 007322 = 777777777777 004541 aa 6 00056 0001 00 arg pr6|46 004542 aa 6 00056 2361 00 ldq pr6|46 004543 aa 0 00242 3761 00 anq pr0|162 = 000777777777 004544 aa 000002 6070 04 ttf 2,ic 004546 004545 aa 000001 3360 07 lcq 1,dl 004546 aa 000005 0760 07 adq 5,dl 004547 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 862 if RS_pos = 4 then RS_pos = RS_len; 004550 aa 000004 1160 07 cmpq 4,dl 004551 aa 000003 6010 04 tnz 3,ic 004554 004552 aa 6 00140 2361 00 ldq pr6|96 RS_len 004553 aa 6 00141 7561 00 stq pr6|97 RS_pos STATEMENT 1 ON LINE 864 get_next_line = EXPAND_NEXT_LINE; 004554 aa 774654 3520 04 epp2 -1620,ic 001430 = 600131236100 004555 aa 6 00160 2521 00 spri2 pr6|112 get_next_line 004556 aa 6 00162 6521 00 spri6 pr6|114 get_next_line STATEMENT 1 ON LINE 866 control = ELSE; 004557 aa 000006 2360 07 ldq 6,dl 004560 aa 6 00154 7561 00 stq pr6|108 control STATEMENT 1 ON LINE 868 CONTROL (6): /* &else */ if abs_data.nest_level <= 0 then call error (0, "Unexpected ""&else"" statement."); 004561 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004562 aa 7 00051 2361 00 ldq pr7|41 abs_data.nest_level 004563 aa 000021 6054 04 tpnz 17,ic 004604 004564 aa 6 00401 4501 00 stz pr6|257 004565 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004566 aa 773700 00 0040 desc9a -2112,32 000465 = 125156145170 004567 aa 6 00444 00 0040 desc9a pr6|292,32 004570 aa 6 00401 3521 00 epp2 pr6|257 004571 aa 6 00406 2521 00 spri2 pr6|262 004572 aa 6 00444 3521 00 epp2 pr6|292 004573 aa 6 00410 2521 00 spri2 pr6|264 004574 aa 773534 3520 04 epp2 -2212,ic 000330 = 404000000005 004575 aa 6 00414 2521 00 spri2 pr6|268 004576 aa 773503 3520 04 epp2 -2237,ic 000301 = 524000000035 004577 aa 6 00416 2521 00 spri2 pr6|270 004600 aa 6 00404 6211 00 eax1 pr6|260 004601 aa 010000 4310 07 fld 4096,dl 004602 aa 002103 3520 04 epp2 1091,ic 006705 = 000400627000 004603 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 871 abs_data.nest_level = abs_data.nest_level - 1; 004604 aa 000001 3360 07 lcq 1,dl 004605 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004606 aa 7 00051 0561 00 asq pr7|41 abs_data.nest_level STATEMENT 1 ON LINE 872 if abs_data.nest_level < abs_data.expected_nest_level then state = NORMAL; 004607 aa 7 00051 2361 00 ldq pr7|41 abs_data.nest_level 004610 aa 7 00052 1161 00 cmpq pr7|42 abs_data.expected_nest_level 004611 aa 000004 6050 04 tpl 4,ic 004615 004612 aa 000000 2360 07 ldq 0,dl 004613 aa 6 00171 7561 00 stq pr6|121 state 004614 aa 777475 7100 04 tra -195,ic 004311 STATEMENT 1 ON LINE 874 else state = SKIPPING_CLAUSE; 004615 aa 000004 2360 07 ldq 4,dl 004616 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 876 go to CONTINUE_THEN; 004617 aa 777472 7100 04 tra -198,ic 004311 STATEMENT 1 ON LINE 878 STATE (4): /* SKIPPING_CLAUSE */ if ^scanning_clause then if control = ELSE | control = COMMENT then go to CONTROL (control); 004620 aa 6 00177 2351 00 lda pr6|127 scanning_clause 004621 aa 000015 6010 04 tnz 13,ic 004636 004622 aa 6 00154 2361 00 ldq pr6|108 control 004623 aa 000006 1160 07 cmpq 6,dl 004624 aa 000003 6000 04 tze 3,ic 004627 004625 aa 6 00154 2361 00 ldq pr6|108 control 004626 aa 000002 6010 04 tnz 2,ic 004630 004627 ta 000014 7100 06 tra 12,ql STATEMENT 1 ON LINE 882 else do; STATEMENT 1 ON LINE 883 scanning_clause = "0"b; 004630 aa 6 00177 4501 00 stz pr6|127 scanning_clause STATEMENT 1 ON LINE 884 state = NORMAL; 004631 aa 000000 2360 07 ldq 0,dl 004632 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 885 abs_data.nest_level = 0; 004633 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 004634 aa 7 00051 4501 00 stz pr7|41 abs_data.nest_level STATEMENT 1 ON LINE 886 go to STATE (NORMAL); 004635 ta 000006 7100 06 tra 6,ql STATEMENT 1 ON LINE 887 end; STATEMENT 1 ON LINE 889 if SKIPABLE (control) then go to get_next_line; 004636 aa 6 00154 7271 00 lxl7 pr6|108 control 004637 ta 000041 2350 17 lda 33,7 004640 aa 000002 6000 04 tze 2,ic 004642 004641 aa 6 00160 7101 20 tra pr6|112,* get_next_line STATEMENT 1 ON LINE 891 else go to CONTROL (control); 004642 aa 6 00154 7271 00 lxl7 pr6|108 control 004643 ta 000014 7100 17 tra 12,7 STATEMENT 1 ON LINE 893 ENTER_SKIPPING_CLAUSE_STATE: state = SKIPPING_CLAUSE; 004644 aa 000004 2360 07 ldq 4,dl 004645 aa 6 00171 7561 00 stq pr6|121 state STATEMENT 1 ON LINE 896 get_next_line = EXPAND_NEXT_LINE; 004646 aa 774562 3520 04 epp2 -1678,ic 001430 = 600131236100 004647 aa 6 00160 2521 00 spri2 pr6|112 get_next_line 004650 aa 6 00162 6521 00 spri6 pr6|114 get_next_line STATEMENT 1 ON LINE 898 go to EXPAND_NEXT_LINE; 004651 aa 774557 7100 04 tra -1681,ic 001430 STATEMENT 1 ON LINE 1240 end bce_exec_com_input; BEGIN PROCEDURE reset_input ENTRY TO reset_input STATEMENT 1 ON LINE 661 reset_input: procedure (); 004652 aa 6 00224 6501 00 spri4 pr6|148 STATEMENT 1 ON LINE 664 if attachedp () then do; 004653 aa 002417 3520 04 epp2 1295,ic 007272 = 000002000000 004654 aa 001114 6700 04 tsp4 588,ic 005770 004655 aa 6 00560 2351 00 lda pr6|368 004656 aa 400000 3150 03 cana 131072,du 004657 aa 000045 6000 04 tze 37,ic 004724 STATEMENT 1 ON LINE 666 bce_get_line_entry.env = null (); 004660 aa 773466 2370 04 ldaq -2250,ic 000346 = 077777000043 000001000000 004661 aa 6 00044 3701 20 epp4 pr6|36,* 004662 la 4 00030 3735 20 epp7 pr4|24,* 004663 aa 7 00002 7571 00 staq pr7|2 bce_get_line_entry.env STATEMENT 1 ON LINE 667 bce_get_line_entry.proc = bce_data$command_abs_data_ptr -> abs_data.victim_ptr; 004664 la 4 00020 3715 20 epp5 pr4|16,* bce_data$command_abs_data_ptr 004665 aa 5 00000 3715 20 epp5 pr5|0,* bce_data$command_abs_data_ptr 004666 aa 5 00030 3715 20 epp5 pr5|24,* abs_data.victim_ptr 004667 la 4 00030 6515 20 spri5 pr4|24,* bce_get_line_entry.proc STATEMENT 1 ON LINE 668 bce_data$get_line_data_ptr = bce_data$command_abs_data_ptr -> abs_data.save_ptr; 004670 la 4 00020 3535 20 epp3 pr4|16,* bce_data$command_abs_data_ptr 004671 aa 3 00000 3535 20 epp3 pr3|0,* bce_data$command_abs_data_ptr 004672 aa 3 00034 3535 20 epp3 pr3|28,* abs_data.save_ptr 004673 la 4 00022 2535 20 spri3 pr4|18,* bce_data$get_line_data_ptr STATEMENT 1 ON LINE 669 if input_linep () then do; 004674 aa 002376 3520 04 epp2 1278,ic 007272 = 000002000000 004675 aa 001104 6700 04 tsp4 580,ic 006001 004676 aa 6 00560 2351 00 lda pr6|368 004677 aa 400000 3150 03 cana 131072,du 004700 aa 000024 6000 04 tze 20,ic 004724 STATEMENT 1 ON LINE 670 call bce_data$get_line (addr (bce_data$get_line), P_buffer_ptr, P_buffer_len, P_actual_len, P_status); 004701 aa 6 00044 3701 20 epp4 pr6|36,* 004702 la 4 00030 3735 20 epp7 pr4|24,* bce_data$get_line 004703 aa 6 00562 6535 00 spri7 pr6|370 004704 aa 6 00562 3521 00 epp2 pr6|370 004705 aa 6 00566 2521 00 spri2 pr6|374 004706 aa 6 00032 3715 20 epp5 pr6|26,* 004707 aa 5 00004 3521 20 epp2 pr5|4,* P_buffer_ptr 004710 aa 6 00570 2521 00 spri2 pr6|376 004711 aa 5 00006 3521 20 epp2 pr5|6,* P_buffer_len 004712 aa 6 00572 2521 00 spri2 pr6|378 004713 aa 5 00010 3521 20 epp2 pr5|8,* P_actual_len 004714 aa 6 00574 2521 00 spri2 pr6|380 004715 aa 5 00012 3521 20 epp2 pr5|10,* P_status 004716 aa 6 00576 2521 00 spri2 pr6|382 004717 aa 6 00564 6211 00 eax1 pr6|372 004720 aa 024000 4310 07 fld 10240,dl 004721 la 4 00030 3521 20 epp2 pr4|24,* bce_data$get_line 004722 aa 0 00617 7001 00 tsx0 pr0|399 call_ent_var STATEMENT 1 ON LINE 671 go to EGRESS; 004723 aa 775721 7100 04 tra -1071,ic 002644 STATEMENT 1 ON LINE 672 end; STATEMENT 1 ON LINE 673 end; STATEMENT 1 ON LINE 674 return; 004724 aa 6 00224 6101 00 rtcd pr6|148 STATEMENT 1 ON LINE 675 end; END PROCEDURE reset_input BEGIN PROCEDURE trace_mode ENTRY TO trace_mode STATEMENT 1 ON LINE 688 trace_mode: procedure () returns (bit (1) aligned); 004725 aa 6 00232 6501 00 spri4 pr6|154 004726 aa 6 00234 2521 00 spri2 pr6|156 STATEMENT 1 ON LINE 691 if RS_len = RS_pos then do; 004727 aa 6 00140 2361 00 ldq pr6|96 RS_len 004730 aa 6 00141 1161 00 cmpq pr6|97 RS_pos 004731 aa 000025 6010 04 tnz 21,ic 004756 STATEMENT 1 ON LINE 693 call warning (0, "Missing keyword in mode statement. ""on"" assumed."); 004732 aa 6 00602 4501 00 stz pr6|386 004733 aa 000 100 100 404 mlr (ic),(pr),fill(000) 004734 aa 773761 00 0064 desc9a -2063,52 000714 = 115151163163 004735 aa 6 00604 00 0064 desc9a pr6|388,52 004736 aa 6 00602 3521 00 epp2 pr6|386 004737 aa 6 00624 2521 00 spri2 pr6|404 004740 aa 6 00604 3521 00 epp2 pr6|388 004741 aa 6 00626 2521 00 spri2 pr6|406 004742 aa 773366 3520 04 epp2 -2314,ic 000330 = 404000000005 004743 aa 6 00632 2521 00 spri2 pr6|410 004744 aa 773333 3520 04 epp2 -2341,ic 000277 = 524000000061 004745 aa 6 00634 2521 00 spri2 pr6|412 004746 aa 6 00622 6211 00 eax1 pr6|402 004747 aa 010000 4310 07 fld 4096,dl 004750 aa 001746 3520 04 epp2 998,ic 006716 = 000400627000 004751 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 694 return ("1"b); 004752 aa 400000 2350 03 lda 131072,du 004753 aa 6 00234 3735 20 epp7 pr6|156,* 004754 aa 7 00002 7551 20 sta pr7|2,* 004755 aa 6 00232 6101 00 rtcd pr6|154 STATEMENT 1 ON LINE 695 end; STATEMENT 1 ON LINE 697 RS_len = length (rtrim (RS, WHITE)); 004756 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 004757 aa 000 000 165 540 tctr (pr,rl) 004760 aa 7 00000 00 0006 desc9a pr7|0,ql RS 004761 aa 002343 0000 04 arg 1251,ic 007322 = 777777777777 004762 aa 6 00056 0001 00 arg pr6|46 004763 aa 6 00056 2361 00 ldq pr6|46 004764 aa 0 00242 3761 00 anq pr0|162 = 000777777777 004765 aa 6 00602 7561 00 stq pr6|386 004766 aa 6 00602 3361 00 lcq pr6|386 004767 aa 6 00140 0561 00 asq pr6|96 RS_len STATEMENT 1 ON LINE 699 if substr (RS, RS_pos + 1) = "on" | substr (RS, RS_pos + 1) = "true" then return ("1"b); 004770 aa 6 00140 2361 00 ldq pr6|96 RS_len 004771 aa 6 00141 1761 00 sbq pr6|97 RS_pos 004772 aa 6 00602 7561 00 stq pr6|386 004773 aa 6 00141 2351 00 lda pr6|97 RS_pos 004774 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 004775 aa 7 00000 00 0006 desc9a pr7|0,ql RS 004776 aa 003012 00 0002 desc9a 1546,2 010006 = 157156000000 004777 aa 000005 6000 04 tze 5,ic 005004 005000 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005001 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005002 aa 773276 00 0004 desc9a -2370,4 000276 = 164162165145 005003 aa 000004 6010 04 tnz 4,ic 005007 005004 aa 400000 2350 03 lda 131072,du 005005 aa 2 00002 7551 20 sta pr2|2,* 005006 aa 6 00232 6101 00 rtcd pr6|154 STATEMENT 1 ON LINE 700 if substr (RS, RS_pos + 1) = "off" | substr (RS, RS_pos + 1) = "false" then return ("0"b); 005007 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005010 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005011 aa 773266 00 0003 desc9a -2378,3 000275 = 157146146000 005012 aa 000005 6000 04 tze 5,ic 005017 005013 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005014 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005015 aa 773325 00 0005 desc9a -2347,5 000340 = 146141154163 005016 aa 000003 6010 04 tnz 3,ic 005021 005017 aa 2 00002 4501 20 stz pr2|2,* 005020 aa 6 00232 6101 00 rtcd pr6|154 STATEMENT 1 ON LINE 701 call warning (0, "Illegal keyword in mode statement. ""on"" assumed."); 005021 aa 6 00602 4501 00 stz pr6|386 005022 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005023 aa 773655 00 0064 desc9a -2131,52 000677 = 111154154145 005024 aa 6 00604 00 0064 desc9a pr6|388,52 005025 aa 6 00602 3521 00 epp2 pr6|386 005026 aa 6 00624 2521 00 spri2 pr6|404 005027 aa 6 00604 3521 00 epp2 pr6|388 005030 aa 6 00626 2521 00 spri2 pr6|406 005031 aa 773277 3520 04 epp2 -2369,ic 000330 = 404000000005 005032 aa 6 00632 2521 00 spri2 pr6|410 005033 aa 773244 3520 04 epp2 -2396,ic 000277 = 524000000061 005034 aa 6 00634 2521 00 spri2 pr6|412 005035 aa 6 00622 6211 00 eax1 pr6|402 005036 aa 010000 4310 07 fld 4096,dl 005037 aa 001657 3520 04 epp2 943,ic 006716 = 000400627000 005040 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 703 return ("1"b); 005041 aa 400000 2350 03 lda 131072,du 005042 aa 6 00234 3735 20 epp7 pr6|156,* 005043 aa 7 00002 7551 20 sta pr7|2,* 005044 aa 6 00232 6101 00 rtcd pr6|154 STATEMENT 1 ON LINE 704 end; END PROCEDURE trace_mode BEGIN PROCEDURE trace_control ENTRY TO trace_control STATEMENT 1 ON LINE 722 trace_control: procedure (trace_structure); 005045 aa 6 00240 6501 00 spri4 pr6|160 005046 aa 6 00242 2521 00 spri2 pr6|162 STATEMENT 1 ON LINE 727 if RS_len = RS_pos then do; 005047 aa 6 00140 2361 00 ldq pr6|96 RS_len 005050 aa 6 00141 1161 00 cmpq pr6|97 RS_pos 005051 aa 000025 6010 04 tnz 21,ic 005076 STATEMENT 1 ON LINE 729 call warning (0, "Missing keyword in tracing statement. ""on"" assumed."); 005052 aa 6 00636 4501 00 stz pr6|414 005053 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005054 aa 773607 00 0064 desc9a -2169,52 000662 = 115151163163 005055 aa 6 00640 00 0064 desc9a pr6|416,52 005056 aa 6 00636 3521 00 epp2 pr6|414 005057 aa 6 00660 2521 00 spri2 pr6|432 005060 aa 6 00640 3521 00 epp2 pr6|416 005061 aa 6 00662 2521 00 spri2 pr6|434 005062 aa 773246 3520 04 epp2 -2394,ic 000330 = 404000000005 005063 aa 6 00666 2521 00 spri2 pr6|438 005064 aa 773210 3520 04 epp2 -2424,ic 000274 = 524000000064 005065 aa 6 00670 2521 00 spri2 pr6|440 005066 aa 6 00656 6211 00 eax1 pr6|430 005067 aa 010000 4310 07 fld 4096,dl 005070 aa 001626 3520 04 epp2 918,ic 006716 = 000400627000 005071 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 730 trace_structure.on = "1"b; 005072 aa 400000 2350 03 lda 131072,du 005073 aa 6 00242 3735 20 epp7 pr6|162,* 005074 aa 7 00002 7551 20 sta pr7|2,* trace_structure.on STATEMENT 1 ON LINE 731 return; 005075 aa 6 00240 6101 00 rtcd pr6|160 STATEMENT 1 ON LINE 732 end; STATEMENT 1 ON LINE 734 len = search (substr (RS, RS_pos + 2), WHITE); 005076 aa 6 00141 2361 00 ldq pr6|97 RS_pos 005077 aa 000001 0760 07 adq 1,dl 005100 aa 6 00636 7561 00 stq pr6|414 005101 aa 6 00140 2361 00 ldq pr6|96 RS_len 005102 aa 6 00636 1761 00 sbq pr6|414 005103 aa 6 00141 2351 00 lda pr6|97 RS_pos 005104 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 005105 aa 000 000 164 545 tct (pr,rl,al) 005106 aa 7 00000 20 0006 desc9a pr7|0(1),ql RS 005107 aa 002415 0000 04 arg 1293,ic 007522 = 000000000000 005110 aa 6 00056 0001 00 arg pr6|46 005111 aa 6 00056 2361 00 ldq pr6|46 005112 aa 0 00242 3761 00 anq pr0|162 = 000777777777 005113 aa 000002 6070 04 ttf 2,ic 005115 005114 aa 000001 3360 07 lcq 1,dl 005115 aa 000001 0760 07 adq 1,dl 005116 aa 6 00166 7561 00 stq pr6|118 len STATEMENT 1 ON LINE 735 RS_len = length (rtrim (RS, WHITE)); 005117 aa 6 00140 2351 00 lda pr6|96 RS_len 005120 aa 000 000 165 540 tctr (pr,rl) 005121 aa 7 00000 00 0005 desc9a pr7|0,al RS 005122 aa 002202 0000 04 arg 1154,ic 007322 = 777777777777 005123 aa 6 00056 0001 00 arg pr6|46 005124 aa 6 00056 2361 00 ldq pr6|46 005125 aa 0 00242 3761 00 anq pr0|162 = 000777777777 005126 aa 6 00636 7561 00 stq pr6|414 005127 aa 6 00636 3361 00 lcq pr6|414 005130 aa 6 00140 0561 00 asq pr6|96 RS_len STATEMENT 1 ON LINE 737 if substr (RS, RS_pos + 1) = "on" | substr (RS, RS_pos + 1) = "true" then trace_structure.on = "1"b; 005131 aa 6 00140 2361 00 ldq pr6|96 RS_len 005132 aa 6 00141 1761 00 sbq pr6|97 RS_pos 005133 aa 6 00636 7561 00 stq pr6|414 005134 aa 6 00141 2351 00 lda pr6|97 RS_pos 005135 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005136 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005137 aa 002651 00 0002 desc9a 1449,2 010006 = 157156000000 005140 aa 000005 6000 04 tze 5,ic 005145 005141 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005142 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005143 aa 773135 00 0004 desc9a -2467,4 000276 = 164162165145 005144 aa 000004 6010 04 tnz 4,ic 005150 005145 aa 400000 2350 03 lda 131072,du 005146 aa 2 00002 7551 20 sta pr2|2,* trace_structure.on 005147 aa 000036 7100 04 tra 30,ic 005205 STATEMENT 1 ON LINE 738 else if substr (RS, RS_pos + 1) = "off" | substr (RS, RS_pos + 1) = "false" then trace_structure.on = "0"b; 005150 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005151 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005152 aa 773125 00 0003 desc9a -2475,3 000275 = 157146146000 005153 aa 000005 6000 04 tze 5,ic 005160 005154 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005155 aa 7 00000 00 0006 desc9a pr7|0,ql RS 005156 aa 773164 00 0005 desc9a -2444,5 000340 = 146141154163 005157 aa 000003 6010 04 tnz 3,ic 005162 005160 aa 2 00002 4501 20 stz pr2|2,* trace_structure.on 005161 aa 000024 7100 04 tra 20,ic 005205 STATEMENT 1 ON LINE 739 else do; STATEMENT 1 ON LINE 740 call warning (0, "Invalid keyword in tracing statement. ""on"" assumed."); 005162 aa 6 00636 4501 00 stz pr6|414 005163 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005164 aa 773462 00 0064 desc9a -2254,52 000645 = 111156166141 005165 aa 6 00640 00 0064 desc9a pr6|416,52 005166 aa 6 00636 3521 00 epp2 pr6|414 005167 aa 6 00660 2521 00 spri2 pr6|432 005170 aa 6 00640 3521 00 epp2 pr6|416 005171 aa 6 00662 2521 00 spri2 pr6|434 005172 aa 773136 3520 04 epp2 -2466,ic 000330 = 404000000005 005173 aa 6 00666 2521 00 spri2 pr6|438 005174 aa 773100 3520 04 epp2 -2496,ic 000274 = 524000000064 005175 aa 6 00670 2521 00 spri2 pr6|440 005176 aa 6 00656 6211 00 eax1 pr6|430 005177 aa 010000 4310 07 fld 4096,dl 005200 aa 001516 3520 04 epp2 846,ic 006716 = 000400627000 005201 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 741 trace_structure.on = "1"b; 005202 aa 400000 2350 03 lda 131072,du 005203 aa 6 00242 3735 20 epp7 pr6|162,* 005204 aa 7 00002 7551 20 sta pr7|2,* trace_structure.on STATEMENT 1 ON LINE 742 end; STATEMENT 1 ON LINE 744 return; 005205 aa 6 00240 6101 00 rtcd pr6|160 STATEMENT 1 ON LINE 746 end trace_control; END PROCEDURE trace_control BEGIN PROCEDURE trace_output ENTRY TO trace_output STATEMENT 1 ON LINE 748 trace_output: procedure (trace_structure, line); 005206 aa 6 00246 6501 00 spri4 pr6|166 005207 aa 6 00250 2521 00 spri2 pr6|168 005210 aa 2 00002 3521 01 epp2 pr2|2,au 005211 aa 6 00252 2521 00 spri2 pr6|170 005212 aa 2 00002 2361 20 ldq pr2|2,* 005213 aa 000002 6040 04 tmi 2,ic 005215 005214 aa 777777 3760 07 anq 262143,dl 005215 aa 0 00250 3761 00 anq pr0|168 = 000077777777 005216 aa 6 00672 7561 00 stq pr6|442 STATEMENT 1 ON LINE 755 do while (trace_structure.on); 005217 aa 000000 0110 03 nop 0,du 005220 aa 6 00250 3735 20 epp7 pr6|168,* 005221 aa 7 00002 2351 20 lda pr7|2,* trace_structure.on 005222 aa 400000 3150 03 cana 131072,du 005223 aa 000063 6000 04 tze 51,ic 005306 STATEMENT 1 ON LINE 756 call bce_data$put_chars (addr (bce_data$put_chars), addr (line), length (line), status); 005224 aa 6 00044 3701 20 epp4 pr6|36,* 005225 la 4 00026 3715 20 epp5 pr4|22,* bce_data$put_chars 005226 aa 6 00674 6515 00 spri5 pr6|444 005227 aa 7 00004 3521 20 epp2 pr7|4,* line 005230 aa 6 00676 2521 00 spri2 pr6|446 005231 aa 6 00672 2361 00 ldq pr6|442 005232 aa 6 00673 7561 00 stq pr6|443 005233 aa 6 00674 3521 00 epp2 pr6|444 005234 aa 6 00702 2521 00 spri2 pr6|450 005235 aa 6 00676 3521 00 epp2 pr6|446 005236 aa 6 00704 2521 00 spri2 pr6|452 005237 aa 6 00673 3521 00 epp2 pr6|443 005240 aa 6 00706 2521 00 spri2 pr6|454 005241 aa 6 00200 3521 00 epp2 pr6|128 status 005242 aa 6 00710 2521 00 spri2 pr6|456 005243 aa 6 00700 6211 00 eax1 pr6|448 005244 aa 020000 4310 07 fld 8192,dl 005245 la 4 00026 3521 20 epp2 pr4|22,* bce_data$put_chars 005246 aa 0 00617 7001 00 tsx0 pr0|399 call_ent_var STATEMENT 1 ON LINE 757 if status = 0 then return; 005247 aa 6 00200 2361 00 ldq pr6|128 status 005250 aa 000002 6010 04 tnz 2,ic 005252 005251 aa 6 00246 6101 00 rtcd pr6|166 STATEMENT 1 ON LINE 759 call com_err_ (status, "bce_exec_com_", "Unable to do trace output."); 005252 aa 773122 2370 04 ldaq -2478,ic 000374 = 142143145137 145170145143 005253 aa 6 00700 7571 00 staq pr6|448 005254 aa 773122 2370 04 ldaq -2478,ic 000376 = 137143157155 137000000000 005255 aa 6 00702 7571 00 staq pr6|450 005256 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005257 aa 773200 00 0034 desc9a -2432,28 000456 = 125156141142 005260 aa 6 00714 00 0034 desc9a pr6|460,28 005261 aa 6 00200 3521 00 epp2 pr6|128 status 005262 aa 6 00726 2521 00 spri2 pr6|470 005263 aa 6 00700 3521 00 epp2 pr6|448 005264 aa 6 00730 2521 00 spri2 pr6|472 005265 aa 6 00714 3521 00 epp2 pr6|460 005266 aa 6 00732 2521 00 spri2 pr6|474 005267 aa 773045 3520 04 epp2 -2523,ic 000334 = 404000000043 005270 aa 6 00734 2521 00 spri2 pr6|476 005271 aa 773036 3520 04 epp2 -2530,ic 000327 = 524000000015 005272 aa 6 00736 2521 00 spri2 pr6|478 005273 aa 772777 3520 04 epp2 -2561,ic 000272 = 524000000032 005274 aa 6 00740 2521 00 spri2 pr6|480 005275 aa 6 00724 6211 00 eax1 pr6|468 005276 aa 014000 4310 07 fld 6144,dl 005277 aa 6 00044 3701 20 epp4 pr6|36,* 005300 la 4 00036 3521 20 epp2 pr4|30,* com_err_ 005301 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 760 signal request_abort_; 005302 aa 000016 7260 07 lxl6 14,dl 005303 aa 773075 3520 04 epp2 -2499,ic 000400 = 162145161165 005304 aa 0 00716 7001 00 tsx0 pr0|462 signal_op STATEMENT 1 ON LINE 761 end; 005305 aa 777713 7100 04 tra -53,ic 005220 STATEMENT 1 ON LINE 763 return; 005306 aa 6 00246 6101 00 rtcd pr6|166 STATEMENT 1 ON LINE 765 end trace_output; END PROCEDURE trace_output BEGIN PROCEDURE find_clause ENTRY TO find_clause STATEMENT 1 ON LINE 905 find_clause: procedure (keyword) returns (fixed bin (21)); 005307 aa 6 00262 6501 00 spri4 pr6|178 005310 aa 6 00264 2521 00 spri2 pr6|180 005311 aa 2 00002 3521 01 epp2 pr2|2,au 005312 aa 6 00266 2521 00 spri2 pr6|182 005313 aa 2 00000 2361 20 ldq pr2|0,* 005314 aa 000002 6040 04 tmi 2,ic 005316 005315 aa 777777 3760 07 anq 262143,dl 005316 aa 0 00250 3761 00 anq pr0|168 = 000077777777 005317 aa 6 00742 7561 00 stq pr6|482 STATEMENT 1 ON LINE 912 keyword_pos = RS_pos; 005320 aa 6 00141 2361 00 ldq pr6|97 RS_pos 005321 aa 6 00270 7561 00 stq pr6|184 keyword_pos STATEMENT 1 ON LINE 914 start_keyword = index (substr (RS, RS_pos + 1), keyword) - 1; 005322 aa 6 00140 2361 00 ldq pr6|96 RS_len 005323 aa 6 00141 1761 00 sbq pr6|97 RS_pos 005324 aa 6 00141 2351 00 lda pr6|97 RS_pos 005325 aa 6 00142 3521 20 epp2 pr6|98,* RS 005326 aa 2 00000 5005 05 a9bd pr2|0,al 005327 aa 0 01227 7001 00 tsx0 pr0|663 set_chars_eis 005330 aa 6 00742 2361 00 ldq pr6|482 005331 aa 6 00264 3735 20 epp7 pr6|180,* 005332 aa 7 00002 3521 20 epp2 pr7|2,* keyword 005333 aa 0 01231 7001 00 tsx0 pr0|665 index_chars_eis 005334 aa 000001 1760 07 sbq 1,dl 005335 aa 6 00271 7561 00 stq pr6|185 start_keyword STATEMENT 1 ON LINE 916 if start_keyword < 0 then return (-1); 005336 aa 000004 6050 04 tpl 4,ic 005342 005337 aa 000001 3360 07 lcq 1,dl 005340 aa 7 00004 7561 20 stq pr7|4,* 005341 aa 6 00262 6101 00 rtcd pr6|178 STATEMENT 1 ON LINE 918 keyword_pos = RS_pos + start_keyword; 005342 aa 6 00141 0761 00 adq pr6|97 RS_pos 005343 aa 6 00270 7561 00 stq pr6|184 keyword_pos STATEMENT 1 ON LINE 920 if index (WHITE, substr (RS, keyword_pos + length (keyword) + 1, 1)) - 1 < 0 | index (WHITE, substr (RS, keyword_pos, 1)) - 1 < 0 then call warning (0, "Whitespace must surround the ""^a"" keyword.", keyword); 005344 aa 6 00742 0761 00 adq pr6|482 005345 aa 6 00142 3715 20 epp5 pr6|98,* RS_ptr 005346 aa 000 106 124 404 scm (ic),(pr,ql),mask(000) 005347 aa 772470 00 0005 desc9a -2760,5 000036 = 014013012011 005350 aa 5 00000 00 0001 desc9a pr5|0,1 RS 005351 aa 6 00056 0001 00 arg pr6|46 005352 aa 6 00056 2361 00 ldq pr6|46 005353 aa 000002 6070 04 ttf 2,ic 005355 005354 aa 000001 3360 07 lcq 1,dl 005355 aa 000012 6040 04 tmi 10,ic 005367 005356 aa 6 00270 2351 00 lda pr6|184 keyword_pos 005357 aa 000 105 124 404 scm (ic),(pr,al),mask(000) 005360 aa 772457 00 0005 desc9a -2769,5 000036 = 014013012011 005361 aa 5 77777 60 0001 desc9a pr5|-1(3),1 RS 005362 aa 6 00056 0001 00 arg pr6|46 005363 aa 6 00056 2361 00 ldq pr6|46 005364 aa 000002 6070 04 ttf 2,ic 005366 005365 aa 000001 3360 07 lcq 1,dl 005366 aa 000026 6050 04 tpl 22,ic 005414 005367 aa 6 00743 4501 00 stz pr6|483 005370 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005371 aa 773200 00 0054 desc9a -2432,44 000570 = 127150151164 005372 aa 6 00744 00 0054 desc9a pr6|484,44 005373 aa 6 00743 3521 00 epp2 pr6|483 005374 aa 6 00762 2521 00 spri2 pr6|498 005375 aa 6 00744 3521 00 epp2 pr6|484 005376 aa 6 00764 2521 00 spri2 pr6|500 005377 aa 7 00002 3521 20 epp2 pr7|2,* keyword 005400 aa 6 00766 2521 00 spri2 pr6|502 005401 aa 772727 3520 04 epp2 -2601,ic 000330 = 404000000005 005402 aa 6 00772 2521 00 spri2 pr6|506 005403 aa 772712 3520 04 epp2 -2614,ic 000315 = 524000000052 005404 aa 6 00774 2521 00 spri2 pr6|508 005405 aa 6 00266 3535 20 epp3 pr6|182,* 005406 aa 3 00000 3521 20 epp2 pr3|0,* 005407 aa 6 00776 2521 00 spri2 pr6|510 005410 aa 6 00760 6211 00 eax1 pr6|496 005411 aa 014000 4310 07 fld 6144,dl 005412 aa 001304 3520 04 epp2 708,ic 006716 = 000400627000 005413 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 924 return (keyword_pos); 005414 aa 6 00270 2361 00 ldq pr6|184 keyword_pos 005415 aa 6 00264 3735 20 epp7 pr6|180,* 005416 aa 7 00004 7561 20 stq pr7|4,* 005417 aa 6 00262 6101 00 rtcd pr6|178 STATEMENT 1 ON LINE 926 end find_clause; END PROCEDURE find_clause BEGIN PROCEDURE conditional ENTRY TO conditional STATEMENT 1 ON LINE 934 conditional: procedure () returns (bit (1) aligned); 005420 da 000264220000 005421 aa 000220 6270 00 eax7 144 005422 aa 7 00034 3521 20 epp2 pr7|28,* 005423 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 005424 aa 000002000000 005425 aa 000000000000 STATEMENT 1 ON LINE 943 if substr (RS, RS_pos + 1) = "true" then return ("1"b); 005426 aa 6 00040 3735 20 epp7 pr6|32,* 005427 aa 7 00140 2361 00 ldq pr7|96 RS_len 005430 aa 7 00141 1761 00 sbq pr7|97 RS_pos 005431 aa 6 00116 7561 00 stq pr6|78 005432 aa 7 00141 2351 00 lda pr7|97 RS_pos 005433 aa 7 00142 3715 20 epp5 pr7|98,* RS_ptr 005434 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005435 aa 5 00000 00 0006 desc9a pr5|0,ql RS 005436 aa 772642 00 0004 desc9a -2654,4 000276 = 164162165145 005437 aa 000005 6010 04 tnz 5,ic 005444 005440 aa 400000 2350 03 lda 131072,du 005441 aa 6 00032 3535 20 epp3 pr6|26,* 005442 aa 3 00002 7551 20 sta pr3|2,* 005443 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 945 if substr (RS, RS_pos + 1) = "false" then return ("0"b); 005444 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005445 aa 5 00000 00 0006 desc9a pr5|0,ql RS 005446 aa 772674 00 0005 desc9a -2628,5 000340 = 146141154163 005447 aa 000004 6010 04 tnz 4,ic 005453 005450 aa 6 00032 3535 20 epp3 pr6|26,* 005451 aa 3 00002 4501 20 stz pr3|2,* 005452 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 947 if substr (RS, RS_pos + 1, 1) = "|" then if substr (RS, RS_pos + 2, 1) = "|" then bars_len = 2; 005453 aa 040 004 106 505 cmpc (pr,al),(ic),fill(040) 005454 aa 5 00000 00 0001 desc9a pr5|0,1 RS 005455 aa 002332 00 0001 desc9a 1242,1 010005 = 174000000000 005456 aa 000013 6010 04 tnz 11,ic 005471 005457 aa 040 004 106 505 cmpc (pr,al),(ic),fill(040) 005460 aa 5 00000 20 0001 desc9a pr5|0(1),1 RS 005461 aa 002326 00 0001 desc9a 1238,1 010005 = 174000000000 005462 aa 000004 6010 04 tnz 4,ic 005466 005463 aa 000002 2360 07 ldq 2,dl 005464 aa 6 00104 7561 00 stq pr6|68 bars_len 005465 aa 000005 7100 04 tra 5,ic 005472 STATEMENT 1 ON LINE 950 else bars_len = 1; 005466 aa 000001 2360 07 ldq 1,dl 005467 aa 6 00104 7561 00 stq pr6|68 bars_len 005470 aa 000002 7100 04 tra 2,ic 005472 STATEMENT 1 ON LINE 951 else bars_len = 0; 005471 aa 6 00104 4501 00 stz pr6|68 bars_len STATEMENT 1 ON LINE 953 if substr (RS, RS_pos + bars_len + 1, 1) ^= "[" | substr (RS, RS_len) ^= "]" then call error (0, "Malformed conditional in ""&if"" statement."); 005472 aa 7 00141 2361 00 ldq pr7|97 RS_pos 005473 aa 6 00104 0761 00 adq pr6|68 bars_len 005474 aa 6 00116 7561 00 stq pr6|78 005475 aa 040 004 106 506 cmpc (pr,ql),(ic),fill(040) 005476 aa 5 00000 00 0001 desc9a pr5|0,1 RS 005477 aa 002307 00 0001 desc9a 1223,1 010004 = 133000000000 005500 aa 000013 6010 04 tnz 11,ic 005513 005501 aa 7 00140 2361 00 ldq pr7|96 RS_len 005502 aa 000001 1760 07 sbq 1,dl 005503 aa 6 00116 7561 00 stq pr6|78 005504 aa 7 00140 2361 00 ldq pr7|96 RS_len 005505 aa 6 00116 1761 00 sbq pr6|78 005506 aa 7 00140 2351 00 lda pr7|96 RS_len 005507 aa 040 004 106 545 cmpc (pr,rl,al),(ic),fill(040) 005510 aa 5 77777 60 0006 desc9a pr5|-1(3),ql RS 005511 aa 002274 00 0001 desc9a 1212,1 010003 = 135000000000 005512 aa 000022 6000 04 tze 18,ic 005534 005513 aa 6 00116 4501 00 stz pr6|78 005514 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005515 aa 773041 00 0054 desc9a -2527,44 000555 = 115141154146 005516 aa 6 00120 00 0054 desc9a pr6|80,44 005517 aa 6 00116 3521 00 epp2 pr6|78 005520 aa 6 00136 2521 00 spri2 pr6|94 005521 aa 6 00120 3521 00 epp2 pr6|80 005522 aa 6 00140 2521 00 spri2 pr6|96 005523 aa 772605 3520 04 epp2 -2683,ic 000330 = 404000000005 005524 aa 6 00144 2521 00 spri2 pr6|100 005525 aa 772544 3520 04 epp2 -2716,ic 000271 = 524000000051 005526 aa 6 00146 2521 00 spri2 pr6|102 005527 aa 000001 7270 07 lxl7 1,dl 005530 aa 6 00134 6211 00 eax1 pr6|92 005531 aa 010000 4310 07 fld 4096,dl 005532 aa 001153 3520 04 epp2 619,ic 006705 = 000400627000 005533 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 956 AF_ptr = addr (substr (RS, RS_pos + bars_len + 2)); 005534 aa 6 00040 3735 20 epp7 pr6|32,* 005535 aa 7 00141 2361 00 ldq pr7|97 RS_pos 005536 aa 6 00104 0761 00 adq pr6|68 bars_len 005537 aa 6 00116 7561 00 stq pr6|78 005540 aa 000001 0760 07 adq 1,dl 005541 aa 7 00142 3521 20 epp2 pr7|98,* RS 005542 aa 2 00000 5005 06 a9bd pr2|0,ql 005543 aa 6 00102 2521 00 spri2 pr6|66 AF_ptr STATEMENT 1 ON LINE 957 AF_len = RS_len - RS_pos - bars_len - 2; 005544 aa 7 00140 2361 00 ldq pr7|96 RS_len 005545 aa 7 00141 1761 00 sbq pr7|97 RS_pos 005546 aa 6 00104 1761 00 sbq pr6|68 bars_len 005547 aa 000002 1760 07 sbq 2,dl 005550 aa 6 00100 7561 00 stq pr6|64 AF_len STATEMENT 1 ON LINE 959 on request_abort_ call error (0, "request_abort_ signalled while evaluating ""&if"" clause."); 005551 aa 000016 7260 07 lxl6 14,dl 005552 aa 772626 3520 04 epp2 -2666,ic 000400 = 162145161165 005553 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 005554 aa 000004 7100 04 tra 4,ic 005560 005555 aa 000110000000 005556 aa 000031 7100 04 tra 25,ic 005607 BEGIN CONDITION request_abort_.4 ENTRY TO request_abort_.4 STATEMENT 1 ON LINE 959 on request_abort_ call error (0, "request_abort_ signalled while evaluating ""&if"" clause."); 005557 da 000274200000 005560 aa 000140 6270 00 eax7 96 005561 aa 7 00034 3521 20 epp2 pr7|28,* 005562 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 005563 aa 000000000000 005564 aa 000000000000 005565 aa 6 00100 4501 00 stz pr6|64 005566 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005567 aa 773160 00 0070 desc9a -2448,56 000746 = 162145161165 005570 aa 6 00102 00 0070 desc9a pr6|66,56 005571 aa 6 00100 3521 00 epp2 pr6|64 005572 aa 6 00122 2521 00 spri2 pr6|82 005573 aa 6 00102 3521 00 epp2 pr6|66 005574 aa 6 00124 2521 00 spri2 pr6|84 005575 aa 772533 3520 04 epp2 -2725,ic 000330 = 404000000005 005576 aa 6 00130 2521 00 spri2 pr6|88 005577 aa 772520 3520 04 epp2 -2736,ic 000317 = 524000000067 005600 aa 6 00132 2521 00 spri2 pr6|90 005601 aa 000002 7270 07 lxl7 2,dl 005602 aa 6 00120 6211 00 eax1 pr6|80 005603 aa 010000 4310 07 fld 4096,dl 005604 aa 001101 3520 04 epp2 577,ic 006705 = 000400627000 005605 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc 005606 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION request_abort_.4 STATEMENT 1 ON LINE 960 call command_processor_$subsys_eval_string ("bce", bce_data$subsys_info_ptr, bce_execute_command_, null (), AF, (bars_len + 1), value, status); 005607 aa 6 00100 2361 00 ldq pr6|64 AF_len 005610 aa 526000 2760 03 orq 175104,du 005611 aa 6 00133 7561 00 stq pr6|91 005612 aa 772456 2350 04 lda -2770,ic 000270 = 142143145000 005613 aa 6 00117 7551 00 sta pr6|79 005614 aa 6 00044 3701 20 epp4 pr6|36,* 005615 la 4 00046 3521 20 epp2 pr4|38,* bce_execute_command_ 005616 aa 6 00120 2521 00 spri2 pr6|80 cp.522 005617 aa 001475 2370 04 ldaq 829,ic 007314 = 077777000043 000001000000 005620 aa 6 00122 7571 00 staq pr6|82 cp.522 005621 aa 772525 3734 24 epp7 -2731,ic* 005622 aa 6 00150 6535 00 spri7 pr6|104 005623 aa 6 00104 2361 00 ldq pr6|68 bars_len 005624 aa 000001 0760 07 adq 1,dl 005625 aa 6 00152 7561 00 stq pr6|106 005626 aa 6 00117 3521 00 epp2 pr6|79 005627 aa 6 00156 2521 00 spri2 pr6|110 005630 la 4 00024 3521 20 epp2 pr4|20,* bce_data$subsys_info_ptr 005631 aa 6 00160 2521 00 spri2 pr6|112 005632 aa 6 00120 3521 00 epp2 pr6|80 cp.522 005633 aa 6 00162 2521 00 spri2 pr6|114 005634 aa 6 00150 3521 00 epp2 pr6|104 005635 aa 6 00164 2521 00 spri2 pr6|116 005636 aa 6 00102 3521 20 epp2 pr6|66,* AF 005637 aa 6 00166 2521 00 spri2 pr6|118 005640 aa 6 00152 3521 00 epp2 pr6|106 005641 aa 6 00170 2521 00 spri2 pr6|120 005642 aa 6 00106 3521 00 epp2 pr6|70 value 005643 aa 6 00172 2521 00 spri2 pr6|122 005644 aa 6 00040 3715 20 epp5 pr6|32,* 005645 aa 5 00200 3521 00 epp2 pr5|128 status 005646 aa 6 00174 2521 00 spri2 pr6|124 005647 aa 772420 3520 04 epp2 -2800,ic 000267 = 524000000003 005650 aa 6 00176 2521 00 spri2 pr6|126 005651 aa 772466 3520 04 epp2 -2762,ic 000337 = 464000000000 005652 aa 6 00200 2521 00 spri2 pr6|128 005653 aa 6 00204 2521 00 spri2 pr6|132 005654 aa 772412 3520 04 epp2 -2806,ic 000266 = 500000000000 005655 aa 6 00202 2521 00 spri2 pr6|130 005656 aa 6 00133 3521 00 epp2 pr6|91 005657 aa 6 00206 2521 00 spri2 pr6|134 005660 aa 772443 3520 04 epp2 -2781,ic 000323 = 404000000021 005661 aa 6 00210 2521 00 spri2 pr6|136 005662 aa 772403 3520 04 epp2 -2813,ic 000265 = 530000000010 005663 aa 6 00212 2521 00 spri2 pr6|138 005664 aa 772450 3520 04 epp2 -2776,ic 000334 = 404000000043 005665 aa 6 00214 2521 00 spri2 pr6|140 005666 aa 6 00154 6211 00 eax1 pr6|108 005667 aa 040000 4310 07 fld 16384,dl 005670 la 4 00044 3521 20 epp2 pr4|36,* command_processor_$subsys_eval_string 005671 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 961 revert request_abort_; 005672 aa 6 00114 4501 00 stz pr6|76 STATEMENT 1 ON LINE 963 if status ^= 0 then call error (status, "Evaluating ""&if"" clause."); 005673 aa 6 00040 3735 20 epp7 pr6|32,* 005674 aa 7 00200 2361 00 ldq pr7|128 status 005675 aa 000021 6000 04 tze 17,ic 005716 005676 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005677 aa 772521 00 0030 desc9a -2735,24 000417 = 105166141154 005700 aa 6 00120 00 0030 desc9a pr6|80,24 005701 aa 7 00200 3521 00 epp2 pr7|128 status 005702 aa 6 00136 2521 00 spri2 pr6|94 005703 aa 6 00120 3521 00 epp2 pr6|80 005704 aa 6 00140 2521 00 spri2 pr6|96 005705 aa 772427 3520 04 epp2 -2793,ic 000334 = 404000000043 005706 aa 6 00144 2521 00 spri2 pr6|100 005707 aa 772355 3520 04 epp2 -2835,ic 000264 = 524000000030 005710 aa 6 00146 2521 00 spri2 pr6|102 005711 aa 000001 7270 07 lxl7 1,dl 005712 aa 6 00134 6211 00 eax1 pr6|92 005713 aa 010000 4310 07 fld 4096,dl 005714 aa 000771 3520 04 epp2 505,ic 006705 = 000400627000 005715 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 965 if value = "true" then return ("1"b); 005716 aa 6 00105 7271 00 lxl7 pr6|69 value 005717 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 005720 aa 6 00106 00 0017 desc9a pr6|70,x7 value 005721 aa 772357 00 0004 desc9a -2833,4 000276 = 164162165145 005722 aa 000005 6010 04 tnz 5,ic 005727 005723 aa 400000 2350 03 lda 131072,du 005724 aa 6 00032 3735 20 epp7 pr6|26,* 005725 aa 7 00002 7551 20 sta pr7|2,* 005726 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 967 if value = "false" then return ("0"b); 005727 aa 6 00105 7271 00 lxl7 pr6|69 value 005730 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 005731 aa 6 00106 00 0017 desc9a pr6|70,x7 value 005732 aa 772410 00 0005 desc9a -2808,5 000340 = 146141154163 005733 aa 000004 6010 04 tnz 4,ic 005737 005734 aa 6 00032 3735 20 epp7 pr6|26,* 005735 aa 7 00002 4501 20 stz pr7|2,* 005736 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 969 call error (0, "Illegal value ""^a"" returned by active function.", value); 005737 aa 6 00133 4501 00 stz pr6|91 005740 aa 000 100 100 404 mlr (ic),(pr),fill(000) 005741 aa 772671 00 0060 desc9a -2631,48 000631 = 111154154145 005742 aa 6 00134 00 0060 desc9a pr6|92,48 005743 aa 6 00133 3521 00 epp2 pr6|91 005744 aa 6 00156 2521 00 spri2 pr6|110 005745 aa 6 00134 3521 00 epp2 pr6|92 005746 aa 6 00160 2521 00 spri2 pr6|112 005747 aa 6 00106 3521 00 epp2 pr6|70 value 005750 aa 6 00162 2521 00 spri2 pr6|114 005751 aa 772357 3520 04 epp2 -2833,ic 000330 = 404000000005 005752 aa 6 00166 2521 00 spri2 pr6|118 005753 aa 772310 3520 04 epp2 -2872,ic 000263 = 524000000057 005754 aa 6 00170 2521 00 spri2 pr6|120 005755 aa 772310 3520 04 epp2 -2872,ic 000265 = 530000000010 005756 aa 6 00172 2521 00 spri2 pr6|122 005757 aa 000001 7270 07 lxl7 1,dl 005760 aa 6 00154 6211 00 eax1 pr6|108 005761 aa 014000 4310 07 fld 6144,dl 005762 aa 000723 3520 04 epp2 467,ic 006705 = 000400627000 005763 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 971 end conditional; 005764 aa 000027 7260 07 lxl6 23,dl 005765 aa 772424 3520 04 epp2 -2796,ic 000411 = 162145164165 005766 aa 0 00716 7001 00 tsx0 pr0|462 signal_op 005767 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE conditional BEGIN PROCEDURE attachedp ENTRY TO attachedp STATEMENT 1 ON LINE 975 attachedp: procedure () returns (bit (1) aligned); 005770 aa 6 00272 6501 00 spri4 pr6|186 005771 aa 6 00274 2521 00 spri2 pr6|188 STATEMENT 1 ON LINE 978 return (bce_data$command_abs_data_ptr = bce_data$get_line_data_ptr); 005772 aa 6 00044 3701 20 epp4 pr6|36,* 005773 la 4 00020 2371 20 ldaq pr4|16,* bce_data$command_abs_data_ptr 005774 la 4 00022 6771 20 eraq pr4|18,* bce_data$get_line_data_ptr 005775 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 005776 aa 0 00512 7001 00 tsx0 pr0|330 r_e_as 005777 aa 2 00002 7551 20 sta pr2|2,* 006000 aa 6 00272 6101 00 rtcd pr6|186 STATEMENT 1 ON LINE 980 end attachedp; END PROCEDURE attachedp BEGIN PROCEDURE input_linep ENTRY TO input_linep STATEMENT 1 ON LINE 984 input_linep: procedure () returns (bit (1) aligned); 006001 aa 6 00300 6501 00 spri4 pr6|192 006002 aa 6 00302 2521 00 spri2 pr6|194 STATEMENT 1 ON LINE 987 if ec_data_ptr = null () then return ("0"b); 006003 aa 6 00216 2371 00 ldaq pr6|142 ec_data_ptr 006004 aa 772342 6770 04 eraq -2846,ic 000346 = 077777000043 000001000000 006005 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 006006 aa 000003 6010 04 tnz 3,ic 006011 006007 aa 2 00002 4501 20 stz pr2|2,* 006010 aa 6 00300 6101 00 rtcd pr6|192 STATEMENT 1 ON LINE 989 return (ec_data.input_line); 006011 aa 6 00216 3735 20 epp7 pr6|142,* ec_data_ptr 006012 aa 7 00035 2351 00 lda pr7|29 ec_data.input_line 006013 aa 2 00002 7551 20 sta pr2|2,* 006014 aa 6 00300 6101 00 rtcd pr6|192 STATEMENT 1 ON LINE 991 end input_linep; END PROCEDURE input_linep BEGIN PROCEDURE functionp ENTRY TO functionp STATEMENT 1 ON LINE 995 functionp: procedure () returns (bit (1) aligned); 006015 aa 6 00306 6501 00 spri4 pr6|198 006016 aa 6 00310 2521 00 spri2 pr6|200 STATEMENT 1 ON LINE 998 if ec_data_ptr = null () then return ("0"b); 006017 aa 6 00216 2371 00 ldaq pr6|142 ec_data_ptr 006020 aa 772326 6770 04 eraq -2858,ic 000346 = 077777000043 000001000000 006021 aa 0 00460 3771 00 anaq pr0|304 = 077777000077 777777077077 006022 aa 000003 6010 04 tnz 3,ic 006025 006023 aa 2 00002 4501 20 stz pr2|2,* 006024 aa 6 00306 6101 00 rtcd pr6|198 STATEMENT 1 ON LINE 1000 else return (ec_data.active_function); 006025 aa 6 00216 3735 20 epp7 pr6|142,* ec_data_ptr 006026 aa 7 00002 2351 00 lda pr7|2 ec_data.active_function 006027 aa 2 00002 7551 20 sta pr2|2,* 006030 aa 6 00306 6101 00 rtcd pr6|198 STATEMENT 1 ON LINE 1002 end functionp; END PROCEDURE functionp BEGIN PROCEDURE emit_ec_name ENTRY TO emit_ec_name STATEMENT 1 ON LINE 1004 emit_ec_name: procedure (); 006031 aa 6 00314 6501 00 spri4 pr6|204 STATEMENT 1 ON LINE 1007 call copy_up_to_ampersand (7); 006032 aa 000007 2360 07 ldq 7,dl 006033 aa 6 01000 7561 00 stq pr6|512 006034 aa 001232 3520 04 epp2 666,ic 007266 = 000002000000 006035 aa 000130 6700 04 tsp4 88,ic 006165 STATEMENT 1 ON LINE 1008 call copy_string (ec_name, QUOTE); 006036 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 006037 aa 7 00004 2361 00 ldq pr7|4 abs_data.ec_name_len 006040 aa 526000 2760 03 orq 175104,du 006041 aa 6 01000 7561 00 stq pr6|512 006042 aa 7 00002 3521 20 epp2 pr7|2,* ec_name 006043 aa 6 01004 2521 00 spri2 pr6|516 006044 aa 772272 3520 04 epp2 -2886,ic 000336 = 000000000001 006045 aa 6 01006 2521 00 spri2 pr6|518 006046 aa 6 01000 3521 00 epp2 pr6|512 006047 aa 6 01010 2521 00 spri2 pr6|520 006050 aa 772253 3520 04 epp2 -2901,ic 000323 = 404000000021 006051 aa 6 01012 2521 00 spri2 pr6|522 006052 aa 6 01002 3521 00 epp2 pr6|514 006053 aa 010000 4310 07 fld 4096,dl 006054 aa 2 00000 7571 00 staq pr2|0 006055 aa 000144 6700 04 tsp4 100,ic 006221 STATEMENT 1 ON LINE 1010 end emit_ec_name; 006056 aa 6 00314 6101 00 rtcd pr6|204 END PROCEDURE emit_ec_name BEGIN PROCEDURE emit_arg_count ENTRY TO emit_arg_count STATEMENT 1 ON LINE 1012 emit_arg_count: procedure (); 006057 aa 6 00322 6501 00 spri4 pr6|210 STATEMENT 1 ON LINE 1019 call copy_up_to_ampersand (1); 006060 aa 000001 2360 07 ldq 1,dl 006061 aa 6 01016 7561 00 stq pr6|526 006062 aa 001200 3520 04 epp2 640,ic 007262 = 000002000000 006063 aa 000102 6700 04 tsp4 66,ic 006165 STATEMENT 1 ON LINE 1020 arg_count_pic = abs_data.arg_count; 006064 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 006065 aa 000 100 301 500 btd (pr),(pr) 006066 aa 7 00010 00 0004 desc9a pr7|8,4 abs_data.arg_count 006067 aa 6 01020 01 0012 desc9ls pr6|528,10,0 006070 aa 100 004 024 500 mvne (pr),(ic),(pr) 006071 aa 6 01020 01 0012 desc9ls pr6|528,10,0 006072 aa 001170 00 0003 desc9a 632,3 007260 = 110070321000 006073 aa 6 00330 00 0011 desc9a pr6|216,9 arg_count_pic STATEMENT 1 ON LINE 1021 arg_count_len = length (ltrim (arg_count_pic)); 006074 aa 000 000 164 500 tct (pr) 006075 aa 6 00330 00 0011 desc9a pr6|216,9 arg_count_pic 006076 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 006077 aa 6 00056 0001 00 arg pr6|46 006100 aa 6 00056 2361 00 ldq pr6|46 006101 aa 0 00242 3761 00 anq pr0|162 = 000777777777 006102 aa 6 01017 7561 00 stq pr6|527 006103 aa 000011 2360 07 ldq 9,dl 006104 aa 6 01017 1761 00 sbq pr6|527 006105 aa 6 00333 7561 00 stq pr6|219 arg_count_len STATEMENT 1 ON LINE 1022 call copy_string (arg_count, NONE); 006106 aa 526000 2760 03 orq 175104,du 006107 aa 6 01016 7561 00 stq pr6|526 006110 aa 000012 2360 07 ldq 10,dl 006111 aa 6 00333 1761 00 sbq pr6|219 arg_count_len 006112 aa 6 01023 7561 00 stq pr6|531 006113 aa 000001 1760 07 sbq 1,dl 006114 aa 6 01024 7561 00 stq pr6|532 006115 aa 000011 2360 07 ldq 9,dl 006116 aa 6 01024 1761 00 sbq pr6|532 006117 aa 6 00330 3715 00 epp5 pr6|216 arg_count_pic 006120 aa 6 01023 2351 00 lda pr6|531 006121 aa 000003 0750 07 ada 3,dl 006122 aa 5 77777 3521 00 epp2 pr5|-1 arg_count 006123 aa 2 00000 5005 05 a9bd pr2|0,al 006124 aa 6 01030 2521 00 spri2 pr6|536 006125 aa 772204 3520 04 epp2 -2940,ic 000331 = 000000000000 006126 aa 6 01032 2521 00 spri2 pr6|538 006127 aa 6 01016 3521 00 epp2 pr6|526 006130 aa 6 01034 2521 00 spri2 pr6|540 006131 aa 772172 3520 04 epp2 -2950,ic 000323 = 404000000021 006132 aa 6 01036 2521 00 spri2 pr6|542 006133 aa 6 01023 7561 00 stq pr6|531 006134 aa 6 01026 3521 00 epp2 pr6|534 006135 aa 010000 4310 07 fld 4096,dl 006136 aa 2 00000 7571 00 staq pr2|0 006137 aa 000062 6700 04 tsp4 50,ic 006221 STATEMENT 1 ON LINE 1024 end emit_arg_count; 006140 aa 6 00322 6101 00 rtcd pr6|210 END PROCEDURE emit_arg_count BEGIN PROCEDURE predicate ENTRY TO predicate STATEMENT 1 ON LINE 1026 predicate: procedure (test, width); 006141 aa 6 00334 6501 00 spri4 pr6|220 006142 aa 6 00336 2521 00 spri2 pr6|222 STATEMENT 1 ON LINE 1032 call copy_up_to_ampersand (width); 006143 aa 2 00004 3521 20 epp2 pr2|4,* width 006144 aa 6 01044 2521 00 spri2 pr6|548 006145 aa 6 01042 3521 00 epp2 pr6|546 006146 aa 004000 4310 07 fld 2048,dl 006147 aa 2 00000 7571 00 staq pr2|0 006150 aa 000015 6700 04 tsp4 13,ic 006165 STATEMENT 1 ON LINE 1033 if test then call copy_string (TRUE, NONE); 006151 aa 6 00336 3735 20 epp7 pr6|222,* 006152 aa 7 00002 2351 20 lda pr7|2,* test 006153 aa 400000 3150 03 cana 131072,du 006154 aa 000005 6000 04 tze 5,ic 006161 006155 aa 001071 3520 04 epp2 569,ic 007246 = 000004000000 006156 aa 2 00000 2351 00 lda pr2|0 006157 aa 000042 6700 04 tsp4 34,ic 006221 006160 aa 000004 7100 04 tra 4,ic 006164 STATEMENT 1 ON LINE 1035 else call copy_string (FALSE, NONE); 006161 aa 001053 3520 04 epp2 555,ic 007234 = 000004000000 006162 aa 2 00000 2351 00 lda pr2|0 006163 aa 000036 6700 04 tsp4 30,ic 006221 STATEMENT 1 ON LINE 1037 return; 006164 aa 6 00334 6101 00 rtcd pr6|220 STATEMENT 1 ON LINE 1039 end predicate; END PROCEDURE predicate BEGIN PROCEDURE copy_up_to_ampersand ENTRY TO copy_up_to_ampersand STATEMENT 1 ON LINE 1041 copy_up_to_ampersand: procedure (width); 006165 aa 6 00342 6501 00 spri4 pr6|226 006166 aa 6 00344 2521 00 spri2 pr6|228 STATEMENT 1 ON LINE 1046 len = CL_pos - old_CL_pos; 006167 aa 6 00132 2361 00 ldq pr6|90 CL_pos 006170 aa 6 00137 1761 00 sbq pr6|95 old_CL_pos 006171 aa 6 00166 7561 00 stq pr6|118 len STATEMENT 1 ON LINE 1047 if len > 0 then do; 006172 aa 000016 6044 04 tmoz 14,ic 006210 STATEMENT 1 ON LINE 1049 call check_len (len); 006173 aa 001035 3520 04 epp2 541,ic 007230 = 000002000000 006174 aa 000325 6700 04 tsp4 213,ic 006521 STATEMENT 1 ON LINE 1050 substr (RS, RS_len - len + 1, len) = substr (CL, old_CL_pos + 1, len); 006175 aa 6 00140 2361 00 ldq pr6|96 RS_len 006176 aa 6 00166 1761 00 sbq pr6|118 len 006177 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006200 aa 6 00137 2351 00 lda pr6|95 old_CL_pos 006201 aa 6 00134 3715 20 epp5 pr6|92,* CL_ptr 006202 aa 5 00000 3535 00 epp3 pr5|0 CL 006203 aa 3 00000 5005 05 a9bd pr3|0,al 006204 aa 6 00166 2351 00 lda pr6|118 len 006205 aa 040 146 100 540 mlr (pr,rl),(pr,rl,ql),fill(040) 006206 aa 3 00000 00 0005 desc9a pr3|0,al CL 006207 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 1051 end; STATEMENT 1 ON LINE 1053 CL_pos = CL_pos + width; 006210 aa 6 00344 3735 20 epp7 pr6|228,* 006211 aa 7 00002 2361 20 ldq pr7|2,* width 006212 aa 6 00132 0561 00 asq pr6|90 CL_pos STATEMENT 1 ON LINE 1054 old_CL_pos = CL_pos + 1; 006213 aa 6 00132 2361 00 ldq pr6|90 CL_pos 006214 aa 000001 0760 07 adq 1,dl 006215 aa 6 00137 7561 00 stq pr6|95 old_CL_pos STATEMENT 1 ON LINE 1056 not_in_CL = "1"b; 006216 aa 400000 2350 03 lda 131072,du 006217 aa 6 00136 7551 00 sta pr6|94 not_in_CL STATEMENT 1 ON LINE 1058 return; 006220 aa 6 00342 6101 00 rtcd pr6|226 STATEMENT 1 ON LINE 1060 end copy_up_to_ampersand; END PROCEDURE copy_up_to_ampersand BEGIN PROCEDURE copy_string ENTRY TO copy_string STATEMENT 1 ON LINE 1062 copy_string: procedure (arg_string, quote_modifier); 006221 aa 6 00350 6501 00 spri4 pr6|232 006222 aa 6 00352 2521 00 spri2 pr6|234 006223 aa 2 00002 3521 01 epp2 pr2|2,au 006224 aa 6 00354 2521 00 spri2 pr6|236 006225 aa 2 00000 2361 20 ldq pr2|0,* 006226 aa 000002 6040 04 tmi 2,ic 006230 006227 aa 777777 3760 07 anq 262143,dl 006230 aa 0 00250 3761 00 anq pr0|168 = 000077777777 006231 aa 6 01050 7561 00 stq pr6|552 STATEMENT 1 ON LINE 1071 if quote_modifier = NONE then do; 006232 aa 6 00352 3735 20 epp7 pr6|234,* 006233 aa 7 00004 2361 20 ldq pr7|4,* quote_modifier 006234 aa 000025 6010 04 tnz 21,ic 006261 STATEMENT 1 ON LINE 1073 call check_len (length (arg_string)); 006235 aa 6 01050 2361 00 ldq pr6|552 006236 aa 6 01051 7561 00 stq pr6|553 006237 aa 000765 3520 04 epp2 501,ic 007224 = 000002000000 006240 aa 000261 6700 04 tsp4 177,ic 006521 STATEMENT 1 ON LINE 1074 substr (RS, RS_len - length (arg_string) + 1) = arg_string; 006241 aa 6 00140 2361 00 ldq pr6|96 RS_len 006242 aa 6 01050 1761 00 sbq pr6|552 006243 aa 6 01051 7561 00 stq pr6|553 006244 aa 6 00140 2361 00 ldq pr6|96 RS_len 006245 aa 6 01051 1761 00 sbq pr6|553 006246 aa 6 01051 2351 00 lda pr6|553 006247 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006250 aa 6 00352 3715 20 epp5 pr6|234,* 006251 aa 5 00002 3535 20 epp3 pr5|2,* 006252 aa 7 00000 3515 00 epp1 pr7|0 RS 006253 aa 1 00000 5005 05 a9bd pr1|0,al 006254 aa 6 01050 2351 00 lda pr6|552 006255 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 006256 aa 3 00000 00 0005 desc9a pr3|0,al arg_string 006257 aa 1 00000 00 0006 desc9a pr1|0,ql RS STATEMENT 1 ON LINE 1075 return; 006260 aa 6 00350 6101 00 rtcd pr6|232 STATEMENT 1 ON LINE 1076 end; STATEMENT 1 ON LINE 1078 arg_pos = 0; 006261 aa 6 00356 4501 00 stz pr6|238 arg_pos STATEMENT 1 ON LINE 1080 QLOOP: quote_len = index (substr (RS, old_RS_len + 1), """") - 1; 006262 aa 6 00140 2361 00 ldq pr6|96 RS_len 006263 aa 6 00144 1761 00 sbq pr6|100 old_RS_len 006264 aa 6 00144 2351 00 lda pr6|100 old_RS_len 006265 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006266 aa 000 003 124 545 scm (pr,rl,al),(du),mask(000) 006267 aa 7 00000 00 0006 desc9a pr7|0,ql RS 006270 aa 042000 00 0001 desc9a 17408,1 006271 aa 6 00056 0001 00 arg pr6|46 006272 aa 6 00056 2361 00 ldq pr6|46 006273 aa 000002 6070 04 ttf 2,ic 006275 006274 aa 000001 3360 07 lcq 1,dl 006275 aa 6 00360 7561 00 stq pr6|240 quote_len STATEMENT 1 ON LINE 1082 if quote_len >= 0 then do; 006276 aa 000057 6040 04 tmi 47,ic 006355 STATEMENT 1 ON LINE 1084 old_RS_len = old_RS_len + quote_len; 006277 aa 6 00144 0561 00 asq pr6|100 old_RS_len STATEMENT 1 ON LINE 1085 quote_len = verify (substr (RS, old_RS_len + 1), """") - 1; 006300 aa 6 00140 2361 00 ldq pr6|96 RS_len 006301 aa 6 00144 1761 00 sbq pr6|100 old_RS_len 006302 aa 6 00144 2351 00 lda pr6|100 old_RS_len 006303 aa 000 000 164 545 tct (pr,rl,al) 006304 aa 7 00000 00 0006 desc9a pr7|0,ql RS 006305 aa 0 77205 0001 00 arg pr0|-379 = 777777777777 006306 aa 6 00056 0001 00 arg pr6|46 006307 aa 6 00056 2361 00 ldq pr6|46 006310 aa 0 00242 3761 00 anq pr0|162 = 000777777777 006311 aa 000002 6070 04 ttf 2,ic 006313 006312 aa 000001 3360 07 lcq 1,dl 006313 aa 6 00360 7561 00 stq pr6|240 quote_len STATEMENT 1 ON LINE 1086 if quote_len < 0 then quote_len = RS_len - old_RS_len; 006314 aa 000004 6050 04 tpl 4,ic 006320 006315 aa 6 00140 2361 00 ldq pr6|96 RS_len 006316 aa 6 00144 1761 00 sbq pr6|100 old_RS_len 006317 aa 6 00360 7561 00 stq pr6|240 quote_len STATEMENT 1 ON LINE 1087 old_RS_len = old_RS_len + quote_len; 006320 aa 6 00144 0561 00 asq pr6|100 old_RS_len STATEMENT 1 ON LINE 1088 if mod (quote_len, twoL) = 0 then do while (mod (quote_len, 2 * twoL) ^= 0); 006321 aa 6 00202 3521 00 epp2 pr6|130 twoL 006322 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 006323 aa 000016 6010 04 tnz 14,ic 006341 006324 aa 6 00202 2361 00 ldq pr6|130 twoL 006325 aa 000001 7360 00 qls 1 006326 aa 6 01051 7561 00 stq pr6|553 006327 aa 6 00360 2361 00 ldq pr6|240 quote_len 006330 aa 6 01051 3521 00 epp2 pr6|553 006331 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 006332 aa 777730 6000 04 tze -40,ic 006262 STATEMENT 1 ON LINE 1090 quote_len = quote_len - twoL; 006333 aa 6 00202 3361 00 lcq pr6|130 twoL 006334 aa 6 00360 0561 00 asq pr6|240 quote_len STATEMENT 1 ON LINE 1091 twoL = 2 * twoL; 006335 aa 6 01051 2361 00 ldq pr6|553 006336 aa 6 00202 7561 00 stq pr6|130 twoL STATEMENT 1 ON LINE 1092 end; 006337 aa 777765 7100 04 tra -11,ic 006324 006340 aa 777722 7100 04 tra -46,ic 006262 STATEMENT 1 ON LINE 1093 else do while (quote_len ^= 0); 006341 aa 000000 0110 03 nop 0,du 006342 aa 6 00360 2361 00 ldq pr6|240 quote_len 006343 aa 777717 6000 04 tze -49,ic 006262 STATEMENT 1 ON LINE 1094 twoL = divide (twoL, 2, 17, 0); 006344 aa 6 00202 2361 00 ldq pr6|130 twoL 006345 aa 000002 5060 07 div 2,dl 006346 aa 6 00202 7561 00 stq pr6|130 twoL STATEMENT 1 ON LINE 1095 quote_len = mod (quote_len, twoL); 006347 aa 6 00360 2361 00 ldq pr6|240 quote_len 006350 aa 6 00202 3521 00 epp2 pr6|130 twoL 006351 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 006352 aa 6 00360 7561 00 stq pr6|240 quote_len STATEMENT 1 ON LINE 1096 end; 006353 aa 777767 7100 04 tra -9,ic 006342 STATEMENT 1 ON LINE 1097 go to QLOOP; 006354 aa 777706 7100 04 tra -58,ic 006262 STATEMENT 1 ON LINE 1098 end; STATEMENT 1 ON LINE 1099 else old_RS_len = RS_len; 006355 aa 6 00140 2361 00 ldq pr6|96 RS_len 006356 aa 6 00144 7561 00 stq pr6|100 old_RS_len STATEMENT 1 ON LINE 1101 if quote_modifier = REQUOTE then do; 006357 aa 6 00352 3715 20 epp5 pr6|234,* 006360 aa 5 00004 2361 20 ldq pr5|4,* quote_modifier 006361 aa 000002 1160 07 cmpq 2,dl 006362 aa 000015 6010 04 tnz 13,ic 006377 STATEMENT 1 ON LINE 1103 call check_len (twoL); 006363 aa 000635 3520 04 epp2 413,ic 007220 = 000002000000 006364 aa 000135 6700 04 tsp4 93,ic 006521 STATEMENT 1 ON LINE 1104 substr (RS, RS_len - twoL + 1, twoL) = copy ("""", twoL); 006365 aa 6 00140 2361 00 ldq pr6|96 RS_len 006366 aa 6 00202 1761 00 sbq pr6|130 twoL 006367 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006370 aa 6 00202 2351 00 lda pr6|130 twoL 006371 aa 042 146 100 400 mlr (),(pr,rl,ql),fill(042) 006372 aa 000000 00 0000 desc9a 0,0 006373 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 1105 twoL = 2 * twoL; 006374 aa 6 00202 2361 00 ldq pr6|130 twoL 006375 aa 000001 7360 00 qls 1 006376 aa 6 00202 7561 00 stq pr6|130 twoL STATEMENT 1 ON LINE 1106 end; STATEMENT 1 ON LINE 1108 DBL_LOOP: quote_pos = index (substr (arg_string, arg_pos + 1), """") - 1; 006377 aa 6 01050 2361 00 ldq pr6|552 006400 aa 6 00356 1761 00 sbq pr6|238 arg_pos 006401 aa 6 00356 2351 00 lda pr6|238 arg_pos 006402 aa 6 00352 3735 20 epp7 pr6|234,* 006403 aa 7 00002 3715 20 epp5 pr7|2,* 006404 aa 000 003 124 545 scm (pr,rl,al),(du),mask(000) 006405 aa 5 00000 00 0006 desc9a pr5|0,ql arg_string 006406 aa 042000 00 0001 desc9a 17408,1 006407 aa 6 00056 0001 00 arg pr6|46 006410 aa 6 00056 2361 00 ldq pr6|46 006411 aa 000002 6070 04 ttf 2,ic 006413 006412 aa 000001 3360 07 lcq 1,dl 006413 aa 6 00357 7561 00 stq pr6|239 quote_pos STATEMENT 1 ON LINE 1110 if quote_pos >= 0 then do; 006414 aa 000040 6040 04 tmi 32,ic 006454 STATEMENT 1 ON LINE 1112 call check_len (quote_pos); 006415 aa 000577 3520 04 epp2 383,ic 007214 = 000002000000 006416 aa 000103 6700 04 tsp4 67,ic 006521 STATEMENT 1 ON LINE 1113 substr (RS, RS_len - quote_pos + 1, quote_pos) = substr (arg_string, arg_pos + 1, quote_pos); 006417 aa 6 00140 2361 00 ldq pr6|96 RS_len 006420 aa 6 00357 1761 00 sbq pr6|239 quote_pos 006421 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006422 aa 6 00356 2351 00 lda pr6|238 arg_pos 006423 aa 6 00352 3715 20 epp5 pr6|234,* 006424 aa 5 00002 3535 20 epp3 pr5|2,* 006425 aa 3 00000 3515 00 epp1 pr3|0 arg_string 006426 aa 1 00000 5005 05 a9bd pr1|0,al 006427 aa 6 00357 2351 00 lda pr6|239 quote_pos 006430 aa 040 146 100 540 mlr (pr,rl),(pr,rl,ql),fill(040) 006431 aa 1 00000 00 0005 desc9a pr1|0,al arg_string 006432 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 1114 arg_pos = arg_pos + quote_pos + 1; 006433 aa 6 00356 2361 00 ldq pr6|238 arg_pos 006434 aa 6 00357 0761 00 adq pr6|239 quote_pos 006435 aa 000001 0760 07 adq 1,dl 006436 aa 6 00356 7561 00 stq pr6|238 arg_pos STATEMENT 1 ON LINE 1115 call check_len (twoL); 006437 aa 000561 3520 04 epp2 369,ic 007220 = 000002000000 006440 aa 000061 6700 04 tsp4 49,ic 006521 STATEMENT 1 ON LINE 1116 substr (RS, RS_len - twoL + 1, twoL) = copy ("""", twoL); 006441 aa 6 00140 2361 00 ldq pr6|96 RS_len 006442 aa 6 00202 1761 00 sbq pr6|130 twoL 006443 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006444 aa 6 00202 2351 00 lda pr6|130 twoL 006445 aa 042 146 100 400 mlr (),(pr,rl,ql),fill(042) 006446 aa 000000 00 0000 desc9a 0,0 006447 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 1117 if arg_pos < length (arg_string) then go to DBL_LOOP; 006450 aa 6 00356 2361 00 ldq pr6|238 arg_pos 006451 aa 6 01050 1161 00 cmpq pr6|552 006452 aa 777725 6040 04 tmi -43,ic 006377 STATEMENT 1 ON LINE 1119 else go to APPEND; 006453 aa 000023 7100 04 tra 19,ic 006476 STATEMENT 1 ON LINE 1120 end; STATEMENT 1 ON LINE 1122 quote_pos = length (arg_string) - arg_pos; 006454 aa 6 01050 2361 00 ldq pr6|552 006455 aa 6 00356 1761 00 sbq pr6|238 arg_pos 006456 aa 6 00357 7561 00 stq pr6|239 quote_pos STATEMENT 1 ON LINE 1123 if quote_pos > 0 then do; 006457 aa 000017 6044 04 tmoz 15,ic 006476 STATEMENT 1 ON LINE 1125 call check_len (quote_pos); 006460 aa 000534 3520 04 epp2 348,ic 007214 = 000002000000 006461 aa 000040 6700 04 tsp4 32,ic 006521 STATEMENT 1 ON LINE 1126 substr (RS, RS_len - quote_pos + 1, quote_pos) = substr (arg_string, arg_pos + 1, quote_pos); 006462 aa 6 00140 2361 00 ldq pr6|96 RS_len 006463 aa 6 00357 1761 00 sbq pr6|239 quote_pos 006464 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006465 aa 6 00356 2351 00 lda pr6|238 arg_pos 006466 aa 6 00352 3715 20 epp5 pr6|234,* 006467 aa 5 00002 3535 20 epp3 pr5|2,* 006470 aa 3 00000 3515 00 epp1 pr3|0 arg_string 006471 aa 1 00000 5005 05 a9bd pr1|0,al 006472 aa 6 00357 2351 00 lda pr6|239 quote_pos 006473 aa 040 146 100 540 mlr (pr,rl),(pr,rl,ql),fill(040) 006474 aa 1 00000 00 0005 desc9a pr1|0,al arg_string 006475 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 1127 end; STATEMENT 1 ON LINE 1129 APPEND: if quote_modifier = REQUOTE then do; 006476 aa 6 00352 3735 20 epp7 pr6|234,* 006477 aa 7 00004 2361 20 ldq pr7|4,* quote_modifier 006500 aa 000002 1160 07 cmpq 2,dl 006501 aa 000015 6010 04 tnz 13,ic 006516 STATEMENT 1 ON LINE 1132 twoL = divide (twoL, 2, 17, 0); 006502 aa 6 00202 2361 00 ldq pr6|130 twoL 006503 aa 000002 5060 07 div 2,dl 006504 aa 6 00202 7561 00 stq pr6|130 twoL STATEMENT 1 ON LINE 1133 call check_len (twoL); 006505 aa 000513 3520 04 epp2 331,ic 007220 = 000002000000 006506 aa 000013 6700 04 tsp4 11,ic 006521 STATEMENT 1 ON LINE 1134 substr (RS, RS_len - twoL + 1, twoL) = copy ("""", twoL); 006507 aa 6 00140 2361 00 ldq pr6|96 RS_len 006510 aa 6 00202 1761 00 sbq pr6|130 twoL 006511 aa 6 00142 3735 20 epp7 pr6|98,* RS_ptr 006512 aa 6 00202 2351 00 lda pr6|130 twoL 006513 aa 042 146 100 400 mlr (),(pr,rl,ql),fill(042) 006514 aa 000000 00 0000 desc9a 0,0 006515 aa 7 00000 00 0005 desc9a pr7|0,al RS STATEMENT 1 ON LINE 1135 end; STATEMENT 1 ON LINE 1136 old_RS_len = RS_len; 006516 aa 6 00140 2361 00 ldq pr6|96 RS_len 006517 aa 6 00144 7561 00 stq pr6|100 old_RS_len STATEMENT 1 ON LINE 1138 return; 006520 aa 6 00350 6101 00 rtcd pr6|232 STATEMENT 1 ON LINE 1140 end copy_string; END PROCEDURE copy_string BEGIN PROCEDURE check_len ENTRY TO check_len STATEMENT 1 ON LINE 1142 check_len: proc (len); 006521 aa 6 00362 6501 00 spri4 pr6|242 006522 aa 6 00364 2521 00 spri2 pr6|244 STATEMENT 1 ON LINE 1148 new_RS_len = RS_len + len; 006523 aa 6 00140 2361 00 ldq pr6|96 RS_len 006524 aa 2 00002 0761 20 adq pr2|2,* len 006525 aa 6 00370 7561 00 stq pr6|248 new_RS_len STATEMENT 1 ON LINE 1150 if new_RS_len > buffer_len then call allocate_buffer (new_RS_len); 006526 aa 6 00150 1161 00 cmpq pr6|104 buffer_len 006527 aa 000003 6044 04 tmoz 3,ic 006532 006530 aa 000460 3520 04 epp2 304,ic 007210 = 000002000000 006531 aa 000004 6700 04 tsp4 4,ic 006535 STATEMENT 1 ON LINE 1152 RS_len = new_RS_len; 006532 aa 6 00370 2361 00 ldq pr6|248 new_RS_len 006533 aa 6 00140 7561 00 stq pr6|96 RS_len STATEMENT 1 ON LINE 1154 return; 006534 aa 6 00362 6101 00 rtcd pr6|242 STATEMENT 1 ON LINE 1156 end check_len; END PROCEDURE check_len BEGIN PROCEDURE allocate_buffer ENTRY TO allocate_buffer STATEMENT 1 ON LINE 1158 allocate_buffer: procedure (required_len); 006535 aa 6 00372 6501 00 spri4 pr6|250 006536 aa 6 00374 2521 00 spri2 pr6|252 STATEMENT 1 ON LINE 1163 not_in_CL = "1"b; 006537 aa 400000 2350 03 lda 131072,du 006540 aa 6 00136 7551 00 sta pr6|94 not_in_CL STATEMENT 1 ON LINE 1164 buffer_allocated = "1"b; 006541 aa 6 00147 7551 00 sta pr6|103 buffer_allocated STATEMENT 1 ON LINE 1166 if required_len <= abs_data.allocated_chars_len then do; 006542 aa 2 00002 2361 20 ldq pr2|2,* required_len 006543 aa 6 00206 3735 20 epp7 pr6|134,* abs_data_ptr 006544 aa 7 00044 1161 00 cmpq pr7|36 abs_data.allocated_chars_len 006545 aa 000012 6054 04 tpnz 10,ic 006557 STATEMENT 1 ON LINE 1168 abs_data.allocated_chars_ptr -> RS = RS; 006546 aa 7 00036 3715 20 epp5 pr7|30,* abs_data.allocated_chars_ptr 006547 aa 6 00142 3535 20 epp3 pr6|98,* RS_ptr 006550 aa 6 00140 2351 00 lda pr6|96 RS_len 006551 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 006552 aa 3 00000 00 0005 desc9a pr3|0,al RS 006553 aa 5 00000 00 0005 desc9a pr5|0,al RS STATEMENT 1 ON LINE 1169 buffer_ptr, RS_ptr = abs_data.allocated_chars_ptr; 006554 aa 6 00152 6515 00 spri5 pr6|106 buffer_ptr 006555 aa 6 00142 6515 00 spri5 pr6|98 RS_ptr STATEMENT 1 ON LINE 1170 return; 006556 aa 6 00372 6101 00 rtcd pr6|250 STATEMENT 1 ON LINE 1171 end; STATEMENT 1 ON LINE 1172 else call error (0, "Expanded line exceeds implementation restriction of ^d characters in length.", abs_data.allocated_chars_len); 006557 aa 6 01054 4501 00 stz pr6|556 006560 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006561 aa 772406 00 0114 desc9a -2810,76 001166 = 105170160141 006562 aa 6 01056 00 0114 desc9a pr6|558,76 006563 aa 6 01054 3521 00 epp2 pr6|556 006564 aa 6 01104 2521 00 spri2 pr6|580 006565 aa 6 01056 3521 00 epp2 pr6|558 006566 aa 6 01106 2521 00 spri2 pr6|582 006567 aa 7 00044 3521 00 epp2 pr7|36 abs_data.allocated_chars_len 006570 aa 6 01110 2521 00 spri2 pr6|584 006571 aa 771537 3520 04 epp2 -3233,ic 000330 = 404000000005 006572 aa 6 01114 2521 00 spri2 pr6|588 006573 aa 771464 3520 04 epp2 -3276,ic 000257 = 524000000114 006574 aa 6 01116 2521 00 spri2 pr6|590 006575 aa 771540 3520 04 epp2 -3232,ic 000335 = 404000000025 006576 aa 6 01120 2521 00 spri2 pr6|592 006577 aa 6 01102 6211 00 eax1 pr6|578 006600 aa 014000 4310 07 fld 6144,dl 006601 aa 000104 3520 04 epp2 68,ic 006705 = 000400627000 006602 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 1173 return; 006603 aa 6 00372 6101 00 rtcd pr6|250 STATEMENT 1 ON LINE 1175 end allocate_buffer; END PROCEDURE allocate_buffer BEGIN PROCEDURE allocate_hash_table ENTRY TO allocate_hash_table STATEMENT 1 ON LINE 1177 allocate_hash_table: procedure (); 006604 da 000304200000 006605 aa 000120 6270 00 eax7 80 006606 aa 7 00034 3521 20 epp2 pr7|28,* 006607 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 006610 aa 000000000000 006611 aa 000000000000 STATEMENT 1 ON LINE 1180 on area call error (error_table_$noalloc, "Allocating label hash table."); 006612 aa 000004 7260 07 lxl6 4,dl 006613 aa 771520 3520 04 epp2 -3248,ic 000333 = 141162145141 006614 aa 0 00717 7001 00 tsx0 pr0|463 enable_op 006615 aa 000004 7100 04 tra 4,ic 006621 006616 aa 000100000000 006617 aa 000030 7100 04 tra 24,ic 006647 BEGIN CONDITION area.5 ENTRY TO area.5 STATEMENT 1 ON LINE 1180 on area call error (error_table_$noalloc, "Allocating label hash table."); 006620 da 000311200000 006621 aa 000140 6270 00 eax7 96 006622 aa 7 00034 3521 20 epp2 pr7|28,* 006623 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 006624 aa 000000000000 006625 aa 000000000000 006626 aa 000 100 100 404 mlr (ic),(pr),fill(000) 006627 aa 771621 00 0034 desc9a -3183,28 000447 = 101154154157 006630 aa 6 00100 00 0034 desc9a pr6|64,28 006631 la 4 00010 3521 20 epp2 pr4|8,* error_table_$noalloc 006632 aa 6 00112 2521 00 spri2 pr6|74 006633 aa 6 00100 3521 00 epp2 pr6|64 006634 aa 6 00114 2521 00 spri2 pr6|76 006635 aa 771477 3520 04 epp2 -3265,ic 000334 = 404000000043 006636 aa 6 00120 2521 00 spri2 pr6|80 006637 aa 771417 3520 04 epp2 -3313,ic 000256 = 524000000034 006640 aa 6 00122 2521 00 spri2 pr6|82 006641 aa 000002 7270 07 lxl7 2,dl 006642 aa 6 00110 6211 00 eax1 pr6|72 006643 aa 010000 4310 07 fld 4096,dl 006644 aa 000041 3520 04 epp2 33,ic 006705 = 000400627000 006645 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc 006646 aa 0 00631 7101 00 tra pr0|409 return_mac END CONDITION area.5 STATEMENT 1 ON LINE 1182 allocate hash_table set (abs_data.labels_ptr) in (abs_data_work_area); 006647 aa 000075 2360 07 ldq 61,dl 006650 aa 6 00040 3735 20 epp7 pr6|32,* 006651 aa 7 00206 3715 20 epp5 pr7|134,* abs_data_ptr 006652 aa 5 00074 3521 20 epp2 pr5|60,* abs_data_work_area 006653 aa 0 01402 7001 00 tsx0 pr0|770 op_alloc_ 006654 aa 777773 7100 04 tra -5,ic 006647 006655 aa 6 00040 3735 20 epp7 pr6|32,* 006656 aa 7 00206 3715 20 epp5 pr7|134,* abs_data_ptr 006657 aa 5 00072 2521 00 spri2 pr5|58 abs_data.labels_ptr 006660 aa 000001 3360 07 lcq 1,dl 006661 aa 7 00222 7561 00 stq pr7|146 006662 aa 000001 2360 07 ldq 1,dl 006663 aa 7 00223 7561 00 stq pr7|147 006664 aa 6 00040 3735 20 epp7 pr6|32,* 006665 aa 7 00222 0541 00 aos pr7|146 006666 aa 000321 2360 04 ldq 209,ic 007207 = 007777000001 006667 aa 6 00056 7561 00 stq pr6|46 006670 aa 7 00222 7271 00 lxl7 pr7|146 006671 aa 7 00206 3715 20 epp5 pr7|134,* abs_data_ptr 006672 aa 5 00072 3535 77 epp3 pr5|58,*7 hash_table 006673 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 006674 aa 6 00056 00 0044 descb pr6|46,36 006675 aa 3 00000 00 0044 descb pr3|0,36 hash_table 006676 aa 7 00223 2361 00 ldq pr7|147 006677 aa 7 00223 0541 00 aos pr7|147 006700 aa 000075 1160 07 cmpq 61,dl 006701 aa 777763 6040 04 tmi -13,ic 006664 STATEMENT 1 ON LINE 1184 revert area; 006702 aa 6 00104 4501 00 stz pr6|68 STATEMENT 1 ON LINE 1186 end allocate_hash_table; 006703 aa 0 00631 7101 00 tra pr0|409 return_mac END PROCEDURE allocate_hash_table BEGIN PROCEDURE error ENTRY TO error STATEMENT 1 ON LINE 1188 error: procedure () options (variable); 006704 da 000316240000 006705 aa 000400 6270 00 eax7 256 006706 aa 7 00034 3521 20 epp2 pr7|28,* 006707 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 006710 aa 000000000000 006711 aa 000000000000 STATEMENT 1 ON LINE 1203 severity = "1"b; 006712 aa 400000 2350 03 lda 131072,du 006713 aa 6 00211 7551 00 sta pr6|137 severity STATEMENT 1 ON LINE 1204 go to ERROR_COMMON; 006714 aa 000011 7100 04 tra 9,ic 006725 ENTRY TO warning STATEMENT 1 ON LINE 1206 warning: entry options (variable); 006715 da 000323240000 006716 aa 000400 6270 00 eax7 256 006717 aa 7 00034 3521 20 epp2 pr7|28,* 006720 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 006721 aa 000000000000 006722 aa 000000000000 STATEMENT 1 ON LINE 1209 severity = "0"b; 006723 aa 000263 2350 04 lda 179,ic 007206 = 377777777777 006724 aa 6 00211 3551 00 ansa pr6|137 severity STATEMENT 1 ON LINE 1211 ERROR_COMMON: call cu_$arg_ptr (1, status_ptr, (0), (0)); 006725 aa 000001 2360 07 ldq 1,dl 006726 aa 6 00237 7561 00 stq pr6|159 006727 aa 6 00240 4501 00 stz pr6|160 006730 aa 6 00241 4501 00 stz pr6|161 006731 aa 6 00237 3521 00 epp2 pr6|159 006732 aa 6 00244 2521 00 spri2 pr6|164 006733 aa 6 00212 3521 00 epp2 pr6|138 status_ptr 006734 aa 6 00246 2521 00 spri2 pr6|166 006735 aa 6 00240 3521 00 epp2 pr6|160 006736 aa 6 00250 2521 00 spri2 pr6|168 006737 aa 6 00241 3521 00 epp2 pr6|161 006740 aa 6 00252 2521 00 spri2 pr6|170 006741 aa 6 00242 6211 00 eax1 pr6|162 006742 aa 020000 4310 07 fld 8192,dl 006743 aa 6 00044 3701 20 epp4 pr6|36,* 006744 la 4 00042 3521 20 epp2 pr4|34,* cu_$arg_ptr 006745 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 1213 call ioa_$general_rs (cu_$arg_list_ptr (), 2, 3, message, (0), "1"b, "0"b); 006746 aa 6 00254 3521 00 epp2 pr6|172 006747 aa 6 00244 2521 00 spri2 pr6|164 006750 aa 6 00242 6211 00 eax1 pr6|162 006751 aa 004000 4310 07 fld 2048,dl 006752 aa 6 00044 3701 20 epp4 pr6|36,* 006753 la 4 00040 3521 20 epp2 pr4|32,* cu_$arg_list_ptr 006754 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out 006755 aa 000002 2360 07 ldq 2,dl 006756 aa 6 00241 7561 00 stq pr6|161 006757 aa 000003 2360 07 ldq 3,dl 006760 aa 6 00240 7561 00 stq pr6|160 006761 aa 6 00237 4501 00 stz pr6|159 006762 aa 400000 2350 03 lda 131072,du 006763 aa 6 00256 7551 00 sta pr6|174 006764 aa 000000 2350 07 lda 0,dl 006765 aa 6 00257 7551 00 sta pr6|175 006766 aa 6 00254 3521 00 epp2 pr6|172 006767 aa 6 00262 2521 00 spri2 pr6|178 006770 aa 6 00241 3521 00 epp2 pr6|161 006771 aa 6 00264 2521 00 spri2 pr6|180 006772 aa 6 00240 3521 00 epp2 pr6|160 006773 aa 6 00266 2521 00 spri2 pr6|182 006774 aa 6 00111 3521 00 epp2 pr6|73 message 006775 aa 6 00270 2521 00 spri2 pr6|184 006776 aa 6 00237 3521 00 epp2 pr6|159 006777 aa 6 00272 2521 00 spri2 pr6|186 007000 aa 6 00256 3521 00 epp2 pr6|174 007001 aa 6 00274 2521 00 spri2 pr6|188 007002 aa 6 00257 3521 00 epp2 pr6|175 007003 aa 6 00276 2521 00 spri2 pr6|190 007004 aa 771333 3520 04 epp2 -3365,ic 000337 = 464000000000 007005 aa 6 00300 2521 00 spri2 pr6|192 007006 aa 771315 3520 04 epp2 -3379,ic 000323 = 404000000021 007007 aa 6 00302 2521 00 spri2 pr6|194 007010 aa 6 00304 2521 00 spri2 pr6|196 007011 aa 6 00310 2521 00 spri2 pr6|200 007012 aa 771243 3520 04 epp2 -3421,ic 000255 = 526000000400 007013 aa 6 00306 2521 00 spri2 pr6|198 007014 aa 771316 3520 04 epp2 -3378,ic 000332 = 514000000001 007015 aa 6 00312 2521 00 spri2 pr6|202 007016 aa 6 00314 2521 00 spri2 pr6|204 007017 aa 6 00260 6211 00 eax1 pr6|176 007020 aa 034000 4310 07 fld 14336,dl 007021 aa 6 00044 3701 20 epp4 pr6|36,* 007022 la 4 00050 3521 20 epp2 pr4|40,* ioa_$general_rs 007023 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 1215 line_number = 0; 007024 aa 6 00105 4501 00 stz pr6|69 line_number STATEMENT 1 ON LINE 1216 do line_start = 0 repeat (line_start + line_len + 1) while ((line_start <= input_string.position) & (line_start < input_string.len)); 007025 aa 6 00110 4501 00 stz pr6|72 line_start 007026 aa 6 00110 2361 00 ldq pr6|72 line_start 007027 aa 6 00040 3735 20 epp7 pr6|32,* 007030 aa 7 00206 3715 20 epp5 pr7|134,* abs_data_ptr 007031 aa 5 00016 1161 00 cmpq pr5|14 abs_data.position 007032 aa 000034 6054 04 tpnz 28,ic 007066 007033 aa 5 00014 1161 00 cmpq pr5|12 abs_data.len 007034 aa 000032 6050 04 tpl 26,ic 007066 STATEMENT 1 ON LINE 1219 line_len = index (substr (IS, line_start + 1), NL) - 1; 007035 aa 5 00014 2361 00 ldq pr5|12 abs_data.len 007036 aa 6 00110 1761 00 sbq pr6|72 line_start 007037 aa 6 00110 2351 00 lda pr6|72 line_start 007040 aa 5 00012 3535 20 epp3 pr5|10,* abs_data.ptr 007041 aa 6 00257 7561 00 stq pr6|175 007042 aa 000 003 124 545 scm (pr,rl,al),(du),mask(000) 007043 aa 3 00000 00 0006 desc9a pr3|0,ql IS 007044 aa 012000 00 0001 desc9a 5120,1 007045 aa 6 00056 0001 00 arg pr6|46 007046 aa 6 00056 2361 00 ldq pr6|46 007047 aa 000002 6070 04 ttf 2,ic 007051 007050 aa 000001 3360 07 lcq 1,dl 007051 aa 6 00104 7561 00 stq pr6|68 line_len STATEMENT 1 ON LINE 1220 if line_len < 0 then line_len = input_string.len - line_start; 007052 aa 000004 6050 04 tpl 4,ic 007056 007053 aa 5 00014 2361 00 ldq pr5|12 abs_data.len 007054 aa 6 00110 1761 00 sbq pr6|72 line_start 007055 aa 6 00104 7561 00 stq pr6|68 line_len STATEMENT 1 ON LINE 1221 line_number = line_number + 1; 007056 aa 6 00105 0541 00 aos pr6|69 line_number STATEMENT 1 ON LINE 1222 line_ptr = addr (substr (IS, line_start + 1)); 007057 aa 3 00000 3521 00 epp2 pr3|0 IS 007060 aa 2 00000 5005 05 a9bd pr2|0,al 007061 aa 6 00106 2521 00 spri2 pr6|70 line_ptr STATEMENT 1 ON LINE 1223 end; 007062 aa 6 00110 0761 00 adq pr6|72 line_start 007063 aa 000001 0760 07 adq 1,dl 007064 aa 6 00110 7561 00 stq pr6|72 line_start 007065 aa 777741 7100 04 tra -31,ic 007026 STATEMENT 1 ON LINE 1225 if ec_data.active_function then complain = active_fnc_err_; 007066 aa 7 00216 3535 20 epp3 pr7|142,* ec_data_ptr 007067 aa 3 00002 2351 00 lda pr3|2 ec_data.active_function 007070 aa 000007 6000 04 tze 7,ic 007077 007071 aa 6 00044 3701 20 epp4 pr6|36,* 007072 la 4 00032 3521 20 epp2 pr4|26,* active_fnc_err_ 007073 aa 6 00100 2521 00 spri2 pr6|64 complain 007074 aa 000220 2370 04 ldaq 144,ic 007314 = 077777000043 000001000000 007075 aa 6 00102 7571 00 staq pr6|66 complain 007076 aa 000006 7100 04 tra 6,ic 007104 STATEMENT 1 ON LINE 1227 else complain = com_err_; 007077 aa 6 00044 3701 20 epp4 pr6|36,* 007100 la 4 00036 3521 20 epp2 pr4|30,* com_err_ 007101 aa 6 00100 2521 00 spri2 pr6|64 complain 007102 aa 000212 2370 04 ldaq 138,ic 007314 = 077777000043 000001000000 007103 aa 6 00102 7571 00 staq pr6|66 complain STATEMENT 1 ON LINE 1228 who = ec_data.who_am_i; 007104 aa 3 00037 2361 00 ldq pr3|31 ec_data.who_am_i 007105 aa 6 00214 7561 00 stq pr6|140 who 007106 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 007107 aa 3 00040 00 0006 desc9a pr3|32,ql ec_data.who_am_i 007110 aa 6 00215 00 0006 desc9a pr6|141,ql who STATEMENT 1 ON LINE 1230 call complain (status, who, "^[^/^]^[Error^;Warning^] on line #^d of ^a:^/^a^/SOURCE:^-^a", status ^= 0, severity, line_number, ec_name, message, line); 007111 aa 5 00004 2361 00 ldq pr5|4 abs_data.ec_name_len 007112 aa 526000 2760 03 orq 175104,du 007113 aa 6 00257 7561 00 stq pr6|175 007114 aa 6 00104 2361 00 ldq pr6|68 line_len 007115 aa 526000 2760 03 orq 175104,du 007116 aa 6 00256 7561 00 stq pr6|174 007117 aa 000 100 100 404 mlr (ic),(pr),fill(000) 007120 aa 771663 00 0074 desc9a -3149,60 001002 = 136133136057 007121 aa 6 00260 00 0074 desc9a pr6|176,60 007122 aa 6 00212 2361 20 ldq pr6|138,* status 007123 aa 0 00515 7001 00 tsx0 pr0|333 r_ne_as 007124 aa 6 00237 7551 00 sta pr6|159 007125 aa 6 00212 3521 20 epp2 pr6|138,* status 007126 aa 6 00320 2521 00 spri2 pr6|208 007127 aa 6 00215 3521 00 epp2 pr6|141 who 007130 aa 6 00322 2521 00 spri2 pr6|210 007131 aa 6 00260 3521 00 epp2 pr6|176 007132 aa 6 00324 2521 00 spri2 pr6|212 007133 aa 6 00237 3521 00 epp2 pr6|159 007134 aa 6 00326 2521 00 spri2 pr6|214 007135 aa 6 00211 3521 00 epp2 pr6|137 severity 007136 aa 6 00330 2521 00 spri2 pr6|216 007137 aa 6 00105 3521 00 epp2 pr6|69 line_number 007140 aa 6 00332 2521 00 spri2 pr6|218 007141 aa 5 00002 3521 20 epp2 pr5|2,* ec_name 007142 aa 6 00334 2521 00 spri2 pr6|220 007143 aa 6 00111 3521 00 epp2 pr6|73 message 007144 aa 6 00336 2521 00 spri2 pr6|222 007145 aa 6 00106 3521 20 epp2 pr6|70,* line 007146 aa 6 00340 2521 00 spri2 pr6|224 007147 aa 771105 3520 04 epp2 -3515,ic 000254 = 404000000031 007150 aa 6 00344 2521 00 spri2 pr6|228 007151 aa 771102 3520 04 epp2 -3518,ic 000253 = 530000000110 007152 aa 6 00346 2521 00 spri2 pr6|230 007153 aa 771077 3520 04 epp2 -3521,ic 000252 = 524000000074 007154 aa 6 00350 2521 00 spri2 pr6|232 007155 aa 771155 3520 04 epp2 -3475,ic 000332 = 514000000001 007156 aa 6 00352 2521 00 spri2 pr6|234 007157 aa 771072 3520 04 epp2 -3526,ic 000251 = 516000000001 007160 aa 6 00354 2521 00 spri2 pr6|236 007161 aa 771154 3520 04 epp2 -3476,ic 000335 = 404000000025 007162 aa 6 00356 2521 00 spri2 pr6|238 007163 aa 6 00257 3521 00 epp2 pr6|175 007164 aa 6 00360 2521 00 spri2 pr6|240 007165 aa 771070 3520 04 epp2 -3528,ic 000255 = 526000000400 007166 aa 6 00362 2521 00 spri2 pr6|242 007167 aa 6 00256 3521 00 epp2 pr6|174 007170 aa 6 00364 2521 00 spri2 pr6|244 007171 aa 6 00316 6211 00 eax1 pr6|206 007172 aa 044000 4310 07 fld 18432,dl 007173 aa 6 00100 3521 00 epp2 pr6|64 complain 007174 aa 0 00616 7001 00 tsx0 pr0|398 call_ent_var_desc STATEMENT 1 ON LINE 1233 if ^severity then return; 007175 aa 6 00211 2351 00 lda pr6|137 severity 007176 aa 400000 3150 03 cana 131072,du 007177 aa 0 00631 6001 00 tze pr0|409 return_mac STATEMENT 1 ON LINE 1235 state = NORMAL; 007200 aa 000000 2360 07 ldq 0,dl 007201 aa 6 00040 3735 20 epp7 pr6|32,* 007202 aa 7 00171 7561 00 stq pr7|121 state STATEMENT 1 ON LINE 1237 go to END_OF_FILE; 007203 aa 773473 3520 04 epp2 -2245,ic 002676 = 600171236100 007204 aa 000001 7270 07 lxl7 1,dl 007205 aa 0 00657 7101 00 tra pr0|431 tra_ext_1 STATEMENT 1 ON LINE 1239 end error; END PROCEDURE error END PROCEDURE bce_exec_com_input ----------------------------------------------------------- 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