COMPILATION LISTING OF SEGMENT config_deck_parse_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1058.08_Tue_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 config_deck_parse_: proc; return; 9 10 /* Routine to convert from ascii to binary forms of config cards with labels. 11*Extracted from config_deck_edit_, February 1984 by Keith Loepere. 12*Modified to handle negative numeric fields, December 1984, Keith Loepere. */ 13 14 /* format: style4,indattr,ifthenstmt,ifthen,idind35,^indcomtxt */ 15 16 dcl Bad_decimal_value_a fixed bin static options (constant) init (1); 17 dcl Bad_decimal_value_a_text char (36) static options (constant) init ("^[""^a""^/^;Bad decimal value ""^a""^/^]"); 18 dcl Bad_octal_value_a fixed bin static options (constant) init (2); 19 dcl Bad_octal_value_a_text char (34) static options (constant) init ("^[""^a""^/^;Bad octal value ""^a""^/^]"); 20 dcl Card_name_too_long fixed bin static options (constant) init (3); 21 dcl Card_name_too_long_text char (26) static options (constant) init ("^[^;Card name too long^/^]"); 22 dcl Config_card_name (64) char (4); /* local copy of config_deck_data_$Config_card_name so we can patch last name */ 23 dcl Field_a_not_defined_or_too_many_supplied_for_card fixed bin static options (constant) init (4); 24 dcl Field_a_not_defined_or_too_many_supplied_for_card_text char (66) static options (constant) init ("^[""^a""^/^;Field ""^a"" not defined or too many supplied for card^/^]"); 25 dcl No_card_type_specified fixed bin static options (constant) init (5); 26 dcl No_card_type_specified_text char (30) static options (constant) init ("^[^;No card type specified^/^]"); 27 dcl No_name_follows_dot fixed bin static options (constant) init (6); 28 dcl No_name_follows_dot_text char (27) static options (constant) init ("^[^;No name follows dot^/^]"); 29 dcl No_value_for_a fixed bin static options (constant) init (7); 30 dcl No_value_for_a_text char (31) static options (constant) init ("^[""^a""^/^;No value for ""^a""^/^]"); 31 dcl Some_fields_were_skipped_in_the_card fixed bin static options (constant) init (8); 32 dcl Some_fields_were_skipped_in_the_card_text char (44) static options (constant) init ("^[^;Some fields were skipped in the card^/^]"); 33 dcl Some_required_fields_were_not_supplied fixed bin static options (constant) init (9); 34 dcl Some_required_fields_were_not_supplied_text char (46) static options (constant) init ("^[^;Some required fields were not supplied^/^]"); 35 dcl String_is_more_than_4_characters_a fixed bin static options (constant) init (10); 36 dcl String_is_more_than_4_characters_a_text char (51) static options (constant) init ("^[""^a""^/^;String is more than 4 characters ""^a""^/^]"); 37 dcl Too_many_values_specified_for_card fixed bin static options (constant) init (11); 38 dcl Too_many_values_specified_for_card_text char (42) static options (constant) init ("^[^;Too many values specified for card^/^]"); 39 dcl Value_is_not_a_valid_single_character_a fixed bin static options (constant) init (12); 40 dcl Value_is_not_a_valid_single_character_a_text char (56) static options (constant) init ("^[""^a""^/^;Value is not a valid single character ""^a""^/^]"); 41 dcl Whitespace char (5) static options (constant) init (" 42 "); /* NL HT FF SP VT */ 43 dcl addcharno builtin; 44 dcl addr builtin; 45 dcl ascii_config_card char (256) var parameter; /* work area to develop a card */ 46 dcl 1 binary_card aligned like config_card; 47 dcl card_subname char (4); /* first data field - tells apart prph cards */ 48 dcl card_type fixed bin; 49 dcl config_card_field fixed bin; /* loop index into data fields */ 50 dcl config_card_type fixed bin; /* loop index into types */ 51 dcl cu_$arg_list_ptr entry (ptr); 52 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 53 dcl cv_oct_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 54 dcl dimension builtin; 55 dcl error_detected bit (1) aligned; /* error flagged by conversion routines */ 56 dcl error_flagged (12) bit (1) aligned; /* error message n has been flagged and printed before */ 57 dcl index builtin; 58 dcl ioa_ entry () options (variable); 59 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, bit (1) aligned); 60 dcl ioa_$nnl entry () options (variable); 61 dcl ioa_$rsnnl entry () options (variable); 62 dcl length builtin; 63 dcl ltrim builtin; 64 dcl mod builtin; 65 dcl output_card_num fixed bin parameter; /* used for error messages */ 66 dcl p_cardp ptr parameter; 67 dcl rtrim builtin; 68 dcl search builtin; 69 dcl silent bit (1) aligned; /* don' print errors */ 70 dcl substr builtin; 71 dcl unspec builtin; 72 dcl verify builtin; 73 74 binary_to_ascii: entry (p_cardp, ascii_config_card); 75 76 cardp = p_cardp; 77 silent = "1"b; 78 error_flagged (*) = "0"b; 79 80 /* Make a local copy of names. Patch the last one to be the 81*current card to guarantee a match. */ 82 83 do card_type = 1 to config_deck_data_$num_described_cards - 1; 84 Config_card_name = config_deck_data_$Config_card_name; 85 end; 86 Config_card_name (config_deck_data_$num_described_cards) = config_card.word; 87 88 unspec (card_subname) = unspec (config_card.data_field (1)); 89 do config_card_type = 1 to config_deck_data_$num_described_cards while (^card_matches ()); 90 end; 91 92 call convert_to_type (config_card_type); 93 94 /* arriving here, the card seems to be of a known type and in good form 95*but the rules may have changed on us. See what we think of the ascii form. 96*If not good, reconvert card as a user format. */ 97 98 call config_card_major_parse (ascii_config_card, binary_card, 0, error_detected); 99 if error_detected then do; 100 101 /* aha, not in format we really like - bad values or number of fields or 102*something. To keep us quiet later, lets make this a user card */ 103 104 call convert_to_type (config_deck_data_$num_described_cards); 105 ascii_config_card = "." || ascii_config_card; 106 end; 107 return; 108 109 ascii_to_binary: entry (ascii_config_card, p_cardp, output_card_num); 110 111 cardp = p_cardp; 112 unspec (config_card) = "0"b; 113 silent = "0"b; 114 error_flagged (*) = "0"b; 115 116 do card_type = 1 to config_deck_data_$num_described_cards; 117 Config_card_name = config_deck_data_$Config_card_name; 118 end; 119 120 /* We now have local copy of names. Later, we patch the last one to be the 121*current card to guarantee a match. */ 122 123 call config_card_major_parse (ascii_config_card, config_card, output_card_num, error_detected); 124 return; 125 126 config_card_major_parse: proc (ascii_config_card, binary_card, output_card_num, error_detected); 127 128 /* this proc does the major work of parsing the fields into a binary version 129*of a config card. It decides which card this is and uses the descriptions 130*to figure out field names. The idea here is: 131*we grab the labeled fields and find the first place in the card that has 132*such a label (that we haven't filled in with some other value) and place it 133*there. The unlabeled values are then added, in order, to the missing 134*(unfilled) spaces. Thus, an old style card gets parsed as always and a new 135*card gets parsed correctly also without having to be able to tell the 136*difference. */ 137 138 dcl NO_TYPE bit (2) static options (constant) init ("11"b); 139 /* means no type known for field - we use CONFIG_DECIMAL_TYPE 140* since octal type is used for all generic numeric */ 141 dcl ascii_config_card char (256) var parameter; 142 dcl 1 binary_card aligned like config_card parameter; /* output binary version */ 143 dcl binary_field_num fixed bin; /* which field in binary config_card we are considering */ 144 dcl card_name char (4); /* as in mem, iom, etc */ 145 dcl card_type fixed bin; /* index into card descriptions */ 146 dcl dont_interpret bit (1) aligned; /* => pretend card is of type USER */ 147 dcl error_detected bit (1) aligned parameter; 148 dcl filled_field (14) bit (1); /* => we found a value for corresponding field */ 149 dcl labeled_field_num fixed bin; /* which we are adding now */ 150 dcl 1 labeled_fields aligned, /* list of the fields that had -labels and their values */ 151 2 number fixed bin, 152 2 field (16), /* 14 is really the max */ 153 3 label char (16) var, 154 3 value char (16) var; 155 dcl output_card_num fixed bin parameter; /* for error messages */ 156 dcl unlabeled_field_num fixed bin; /* which we are adding now */ 157 dcl 1 unlabeled_fields aligned, /* list of fields that had no value */ 158 2 number fixed bin, 159 2 value (16) char (16) var; 160 161 error_detected = "0"b; 162 call separate_config_card_fields (ascii_config_card, unlabeled_fields, labeled_fields); 163 if unlabeled_fields.number = 0 then do; 164 call error (No_card_type_specified, No_card_type_specified_text, error_flagged (No_card_type_specified)); 165 return; 166 end; 167 if substr (unlabeled_fields.value (1), 1, 1) = "." then do; 168 dont_interpret = "1"b; /* .name becomes a user formatted name card */ 169 unlabeled_fields.value (1) = substr (unlabeled_fields.value (1), 2); 170 if length (unlabeled_fields.value (1)) < 1 then call error (No_name_follows_dot, No_name_follows_dot_text, error_flagged (No_name_follows_dot)); 171 end; 172 else dont_interpret = "0"b; 173 if length (unlabeled_fields.value (1)) > 4 then call error (Card_name_too_long, Card_name_too_long_text, error_flagged (Card_name_too_long)); 174 card_name = unlabeled_fields.value (1); 175 Config_card_name (config_deck_data_$num_described_cards) = card_name; 176 /* synthesize, as a last hope, a card type of what the user said */ 177 if dont_interpret then card_type = config_deck_data_$num_described_cards; 178 else 179 do card_type = 1 to config_deck_data_$num_described_cards while (^card_matches ()); 180 end; 181 182 183 /* now we actually convert the fields as appropriate */ 184 185 binary_card.word = card_name; 186 binary_card.data_field (*) = EMPTY_FIELD; 187 filled_field (*) = "0"b; 188 binary_card.pad1 = "0"b; 189 190 do labeled_field_num = 1 to labeled_fields.number;/* for labeled fields */ 191 do binary_field_num = 1 to config_deck_data_$Config_card_num_described_fields (card_type); /* pick up those that are described */ 192 if ^filled_field (binary_field_num) then 193 if config_deck_data_$Config_card_field_name (card_type, binary_field_num) = labeled_fields.label (labeled_field_num) then do; 194 /* we found an unfilled field of desired name */ 195 call cv_value (labeled_fields.value (labeled_field_num), config_deck_data_$Config_card_field_type (card_type, binary_field_num)); 196 filled_field (binary_field_num) = "1"b; 197 go to next_labeled; 198 end; 199 end; 200 call error (Field_a_not_defined_or_too_many_supplied_for_card, Field_a_not_defined_or_too_many_supplied_for_card_text, error_flagged (Field_a_not_defined_or_too_many_supplied_for_card), labeled_fields.label (labeled_field_num)); /* ran out of fields with known labels */ 201 next_labeled: 202 end; 203 204 /* consider now the unlabeled fields - fill in missing spaces */ 205 binary_field_num = 1; 206 do unlabeled_field_num = 2 to unlabeled_fields.number; 207 do binary_field_num = binary_field_num to 14 while (filled_field (binary_field_num)); end; /* find an unfilled field */ 208 if binary_field_num > 14 then do; 209 call error (Too_many_values_specified_for_card, Too_many_values_specified_for_card_text, error_flagged (Too_many_values_specified_for_card)); /* ran off end */ 210 go to validate_card; 211 end; 212 if binary_field_num <= config_deck_data_$Config_card_num_described_fields (card_type) then 213 call cv_value (unlabeled_fields.value (unlabeled_field_num), config_deck_data_$Config_card_field_type (card_type, binary_field_num)); /* known type */ 214 else call cv_value (unlabeled_fields.value (unlabeled_field_num), NO_TYPE); /* user supplied type */ 215 filled_field (binary_field_num) = "1"b; 216 end; 217 218 validate_card: 219 220 /* now we know that those fields that were are described have good types 221*and values are in order. labeled fields, though, may have skipped a value. 222*Let's see. */ 223 224 do binary_field_num = 1 to 14 while (filled_field (binary_field_num)); 225 end; /* field number past last contiguous field in */ 226 binary_card.n_fields = binary_field_num - 1; 227 do binary_field_num = binary_field_num + 1 to 14 while (^filled_field (binary_field_num)); 228 end; 229 if binary_field_num <= 14 then /* we found a filled field after unfilled fields */ 230 call error (Some_fields_were_skipped_in_the_card, Some_fields_were_skipped_in_the_card_text, error_flagged (Some_fields_were_skipped_in_the_card)); 231 if binary_card.n_fields < config_deck_data_$Config_card_min_specifiable_fields (card_type) then 232 call error (Some_required_fields_were_not_supplied, Some_required_fields_were_not_supplied_text, error_flagged (Some_required_fields_were_not_supplied)); 233 else if config_deck_data_$Config_card_group_length (card_type) > 0 then 234 if mod (binary_card.n_fields - config_deck_data_$Config_card_min_specifiable_fields (card_type), config_deck_data_$Config_card_group_length (card_type)) ^= 0 then /* card ends in repeating groups but last group was not filled */ 235 call error (Some_required_fields_were_not_supplied, Some_required_fields_were_not_supplied_text, error_flagged (Some_required_fields_were_not_supplied)); 236 237 /* we can now perform specific to card validations */ 238 return; 239 240 card_matches: proc () returns (bit (1) aligned); 241 242 /* determine if this card_type describes the given card */ 243 244 dcl field fixed bin; 245 246 if card_name ^= Config_card_name (card_type) then return ("0"b); 247 if length (config_deck_data_$Config_card_subname (card_type)) = 0 then return ("1"b); /* card name alone describes */ 248 do field = 1 to labeled_fields.number; /* see if a labeled field is of type and value for this card type's subname */ 249 if labeled_fields.label (field) = config_deck_data_$Config_card_field_name (card_type, 1) then /* right label */ 250 if index (labeled_fields.value (field), config_deck_data_$Config_card_subname (card_type)) = 1 then return ("1"b); 251 /* value of labeled field is begun by desired card subname */ 252 else return ("0"b); 253 end; 254 /* no labeled field matches subname - maybe the second unlabeled one does */ 255 if unlabeled_fields.number > 1 then 256 if index (unlabeled_fields.value (2), config_deck_data_$Config_card_subname (card_type)) = 1 then return ("1"b); 257 /* labeled field does start as desired */ 258 else return ("0"b); 259 else return ("0"b); 260 end; 261 262 cv_value: proc (value, type); 263 264 /* we convert the char string to a config card field value, using the type 265*suggested or guessing one if type = NO_TYPE */ 266 dcl code fixed bin (35); 267 dcl numeric fixed bin (35) aligned; /* area to form numeric types */ 268 dcl string char (4) aligned; /* area to form string type */ 269 dcl type bit (2) parameter; /* type expected */ 270 dcl value char (16) var parameter; /* value to convert */ 271 272 if type = CONFIG_OCTAL_TYPE | type = NO_TYPE then do; /* any numeric value */ 273 if substr (value, length (value), 1) = "." then do; /* looks like decimal numeric */ 274 numeric = cv_dec_check_ (substr (value, 1, length (value) - 1), code); 275 if code ^= 0 then do; 276 if type = NO_TYPE then go to is_it_octal; /* give another chance */ 277 call error (Bad_decimal_value_a, Bad_decimal_value_a_text, error_flagged (Bad_decimal_value_a), value); 278 call cv_value (value, NO_TYPE); /* use type it seems to be */ 279 end; 280 else do; 281 unspec (binary_card.data_field (binary_field_num)) = unspec (numeric); 282 binary_card.field_type (binary_field_num) = CONFIG_DECIMAL_TYPE; 283 end; 284 end; 285 else do; /* numeric but not decimal => octal */ 286 is_it_octal: 287 numeric = cv_oct_check_ ((value), code); 288 if code ^= 0 then do; 289 if type = NO_TYPE then go to is_it_a_char; 290 call error (Bad_octal_value_a, Bad_octal_value_a_text, error_flagged (Bad_octal_value_a), value); 291 call cv_value (value, NO_TYPE); /* believe user format */ 292 end; 293 else do; 294 unspec (binary_card.data_field (binary_field_num)) = unspec (numeric); 295 binary_card.field_type (binary_field_num) = CONFIG_OCTAL_TYPE; 296 end; 297 end; 298 end; 299 else if type = CONFIG_SINGLE_CHAR_TYPE then do; 300 is_it_a_char: /* maybe it's a single char field */ 301 numeric = index ("abcdefgh", value); 302 if length (value) ^= 1 | numeric = 0 then do; 303 if type = NO_TYPE then go to is_it_a_string; 304 call error (Value_is_not_a_valid_single_character_a, Value_is_not_a_valid_single_character_a_text, error_flagged (Value_is_not_a_valid_single_character_a), value); 305 call cv_value (value, NO_TYPE); 306 end; 307 else do; 308 unspec (binary_card.data_field (binary_field_num)) = unspec (numeric); 309 binary_card.field_type (binary_field_num) = CONFIG_SINGLE_CHAR_TYPE; 310 end; 311 end; 312 else if type = CONFIG_STRING_TYPE then do; 313 is_it_a_string: /* last hope, a char string */ 314 if length (value) > 4 then 315 call error (String_is_more_than_4_characters_a, String_is_more_than_4_characters_a_text, error_flagged (String_is_more_than_4_characters_a), value); 316 string = value; 317 unspec (binary_card.data_field (binary_field_num)) = unspec (string); 318 binary_card.field_type (binary_field_num) = CONFIG_STRING_TYPE; 319 end; 320 return; 321 end; 322 323 error: proc options (variable); 324 325 dcl arg_list_ptr ptr; 326 dcl arg1_ptr ptr; 327 dcl arg3_ptr ptr; 328 dcl error_flagged bit (1) aligned based (arg3_ptr); 329 dcl error_num fixed bin based (arg1_ptr); 330 dcl message_buffer char (256); 331 dcl message_len fixed bin (21); 332 dcl message_to_print char (message_len) based (addr (message_buffer)); 333 334 call cu_$arg_list_ptr (arg_list_ptr); 335 arg1_ptr = arg_list_ptr -> arg_list.arg_ptrs (1); 336 arg3_ptr = arg_list_ptr -> arg_list.arg_ptrs (3); 337 if ^silent then do; 338 call ioa_ ("^/WARNING ^d ON LINE ^d", error_num, output_card_num); 339 call ioa_$general_rs (arg_list_ptr, 2, 3, message_buffer, message_len, "0"b, "0"b); 340 call ioa_$nnl (message_to_print); 341 if ^error_detected then call ioa_ ("SOURCE: ^a", ascii_config_card); 342 end; 343 error_flagged = "1"b; 344 error_detected = "1"b; 345 return; 346 end; 347 348 separate_config_card_fields: proc (input_card, a_unlabeled_fields, a_labeled_fields); 349 350 /* this proc separates out the fields in the card. It makes a list of all 351*fields that had no -label, and separately those that did. -labels with no 352*following value are tossed away. */ 353 354 dcl 1 a_labeled_fields aligned like labeled_fields parameter; 355 dcl 1 a_unlabeled_fields aligned like unlabeled_fields parameter; 356 dcl card_pos fixed bin; /* position to end of field we are surveying */ 357 dcl input_card char (256) var parameter; 358 dcl label char (16) var; /* extracted from card */ 359 dcl temp_card char (256) init (input_card); /* work area */ 360 dcl work_card char (work_card_len) based (work_card_ptr); /* rest of card to look at */ 361 dcl work_card_len fixed bin; 362 dcl work_card_ptr ptr; 363 364 work_card_len = length (input_card); 365 work_card_ptr = addr (temp_card); /* start looking at whole card */ 366 a_unlabeled_fields.number = 0; 367 a_labeled_fields.number = 0; 368 call pass_whitespace; 369 do while (work_card_len > 0); 370 371 /* loop, grabbing each field (or pair if labeled) and add to appropriate list */ 372 card_pos = search (work_card, Whitespace) - 1; /* length of field */ 373 if card_pos < 0 then card_pos = work_card_len; 374 if substr (work_card, 1, 1) = "-" then do; /* labeled field */ 375 label = substr (work_card, 1, card_pos); 376 if verify (label, "-0123456789.") = 0 then go to unlabeled; 377 work_card_len = work_card_len - card_pos; 378 work_card_ptr = addcharno (work_card_ptr, card_pos); 379 call pass_whitespace; 380 if work_card_len = 0 then /* last field on card and no value follows */ 381 call error (No_value_for_a, No_value_for_a_text, error_flagged (No_value_for_a), label); 382 else do; /* valid labeled field */ 383 card_pos = search (work_card, Whitespace) - 1; 384 if card_pos < 0 then card_pos = work_card_len; 385 if a_labeled_fields.number < dimension (a_labeled_fields.field, 1) then do; 386 a_labeled_fields.number = a_labeled_fields.number + 1; 387 a_labeled_fields.field (a_labeled_fields.number).label = label; 388 a_labeled_fields.field (a_labeled_fields.number).value = substr (work_card, 1, card_pos); 389 end; 390 else ; /* no need for error on too many fields - we already 391* have too many and someone will notice */ 392 end; 393 end; 394 else do; /* unlabeled field */ 395 unlabeled: if a_unlabeled_fields.number < dimension (a_unlabeled_fields.value, 1) then do; 396 a_unlabeled_fields.number = a_unlabeled_fields.number + 1; 397 a_unlabeled_fields.value (a_unlabeled_fields.number) = substr (work_card, 1, card_pos); 398 end; 399 else ; /* no error like above. By the way, we also don't need to check 400* for strings too long for a similar reason */ 401 end; 402 work_card_len = work_card_len - card_pos; /* advance past fields */ 403 work_card_ptr = addcharno (work_card_ptr, card_pos); 404 call pass_whitespace; 405 end; 406 return; 407 408 pass_whitespace: proc; 409 410 card_pos = verify (work_card, Whitespace) - 1; 411 if card_pos < 0 then card_pos = work_card_len; 412 work_card_len = work_card_len - card_pos; 413 work_card_ptr = addcharno (work_card_ptr, card_pos); 414 card_pos = 0; 415 return; 416 end; 417 end; 418 end; 419 420 card_matches: proc () returns (bit (1) aligned); 421 422 /* does card_type describe this card */ 423 if Config_card_name (config_card_type) ^= config_card.word then return ("0"b); /* card name doesn't even match */ 424 if config_deck_data_$Config_card_subname (config_card_type) = "" then return ("1"b); /* no subname match needed */ 425 if index (card_subname, config_deck_data_$Config_card_subname (config_card_type)) = 1 then return ("1"b); /* subname matches desired */ 426 return ("0"b); 427 end; 428 429 convert_to_type: proc (config_card_type); 430 431 /* we convert the current config card into ascii_config_card for the given type */ 432 dcl config_card_type fixed bin parameter; /* index into descriptions */ 433 ascii_config_card = rtrim (config_card.word) || " "; 434 do config_card_field = 1 to config_deck_data_$Config_card_min_specifiable_fields (config_card_type); /* grab these many no matter what they say */ 435 ascii_config_card = ascii_config_card || config_deck_data_$Config_card_field_name (config_card_type, config_card_field) || " "; 436 call add_value; 437 end; 438 439 do config_card_field = config_deck_data_$Config_card_min_specifiable_fields (config_card_type) + 1 to 14 while (config_card.data_field (config_card_field) ^= EMPTY_FIELD); 440 /* convert the rest of the fields until we run out */ 441 if config_card_field <= config_deck_data_$Config_card_num_described_fields (config_card_type) then /* we know the name for this field */ 442 ascii_config_card = ascii_config_card || config_deck_data_$Config_card_field_name (config_card_type, config_card_field) || " "; 443 /* unknown field name */ 444 call add_value; 445 end; 446 447 add_value: proc; 448 449 /* convert the value to ascii and add to ascii_config_card */ 450 dcl numeric fixed bin (35) aligned; /* overlay for numeric types */ 451 dcl string char (4) aligned; /* overlay for string type */ 452 dcl value char (16) var; /* converted result */ 453 if config_card.field_type (config_card_field) = CONFIG_OCTAL_TYPE then do; 454 unspec (numeric) = unspec (config_card.data_field (config_card_field)); 455 call ioa_$rsnnl ("^o", value, (0), numeric); 456 end; 457 else if config_card.field_type (config_card_field) = CONFIG_DECIMAL_TYPE then do; 458 unspec (numeric) = unspec (config_card.data_field (config_card_field)); 459 call ioa_$rsnnl ("^d.", value, (0), numeric); 460 end; 461 else if config_card.field_type (config_card_field) = CONFIG_STRING_TYPE then do; 462 unspec (string) = unspec (config_card.data_field (config_card_field)); 463 value = ltrim (rtrim (string)); 464 end; 465 else /* CONFIG_SINGLE_CHAR_TYPE */ do; 466 unspec (numeric) = unspec (config_card.data_field (config_card_field)); 467 if numeric < 1 | numeric > 8 then value = "*"; 468 else value = substr ("abcdefgh", numeric, 1); 469 end; 470 ascii_config_card = ascii_config_card || value || " "; 471 end; 472 end; 473 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 1 2* 1 3* James R. Davis 10 May 79 */ 1 4 1 5 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(86-05-15,DGHowe), approve(86-05-15,MCR7375), 1 9* audit(86-07-15,Schroth): 1 10* added command_name_arglist declaration to allow the storage of the 1 11* command name given to the command processor 1 12* END HISTORY COMMENTS */ 1 13 1 14 dcl 1 arg_list aligned based, 1 15 2 header, 1 16 3 arg_count fixed bin (17) unsigned unal, 1 17 3 pad1 bit (1) unal, 1 18 3 call_type fixed bin (18) unsigned unal, 1 19 3 desc_count fixed bin (17) unsigned unal, 1 20 3 pad2 bit (19) unal, 1 21 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 1 22 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 1 23 1 24 1 25 dcl 1 command_name_arglist aligned based, 1 26 2 header, 1 27 3 arg_count fixed bin (17) unsigned unal, 1 28 3 pad1 bit (1) unal, 1 29 3 call_type fixed bin (18) unsigned unal, 1 30 3 desc_count fixed bin (17) unsigned unal, 1 31 3 mbz bit(1) unal, 1 32 3 has_command_name bit(1) unal, 1 33 3 pad2 bit (17) unal, 1 34 2 arg_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 1 35 2 desc_ptrs (arg_list_arg_count refer (command_name_arglist.arg_count)) ptr, 1 36 2 name, 1 37 3 command_name_ptr pointer, 1 38 3 command_name_length fixed bin (21); 1 39 1 40 1 41 1 42 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 1 43 2 header, 1 44 3 arg_count fixed bin (17) unsigned unal, 1 45 3 pad1 bit (1) unal, 1 46 3 call_type fixed bin (18) unsigned unal, 1 47 3 desc_count fixed bin (17) unsigned unal, 1 48 3 pad2 bit (19) unal, 1 49 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 1 50 2 envptr ptr, 1 51 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 1 52 1 53 1 54 dcl ( 1 55 Quick_call_type init (0), 1 56 Interseg_call_type init (4), 1 57 Envptr_supplied_call_type 1 58 init (8) 1 59 ) fixed bin (18) unsigned unal int static options (constant); 1 60 1 61 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 1 62* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 1 63* an argument list of the proper size in the user's stack 1 64* 1 65**/ 1 66 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 473 474 /* BEGIN INCLUDE FILE ... config_deck.incl.pl1 ... 11/13/80, W. Olin Sibert */ 2 2 2 3 dcl (configp, cardp) pointer; 2 4 dcl config_n_cards fixed bin; /* Number of cards used in config */ 2 5 dcl config_max_cards fixed bin; /* Max number of cards in config */ 2 6 2 7 dcl config_deck$ fixed bin external static; 2 8 2 9 dcl 1 config_deck aligned based (configp), 2 10 2 cards (config_n_cards) aligned like config_card, 2 11 2 pad_cards (config_max_cards - config_n_cards) aligned like config_card; 2 12 2 13 dcl 1 config_card aligned based (cardp), 2 14 2 word char (4) aligned, 2 15 2 data_field (14) bit (36) aligned, 2 16 2 type_word aligned like config_card_type_word; 2 17 2 18 dcl 1 config_card_type_word aligned based, 2 19 2 field_type (14) bit (2) unaligned, 2 20 2 pad1 bit (4) unaligned, 2 21 2 n_fields fixed bin (4) unsigned unaligned; 2 22 2 23 dcl (CONFIG_DECIMAL_TYPE init ("11"b), 2 24 CONFIG_OCTAL_TYPE init ("00"b), 2 25 CONFIG_SINGLE_CHAR_TYPE init ("01"b), 2 26 CONFIG_STRING_TYPE init ("10"b)) bit (2) aligned static options (constant); 2 27 2 28 dcl ZERO_CARD_WORD char (4) aligned internal static options (constant) init (""); 2 29 dcl FREE_CARD_WORD char (4) aligned internal static options (constant) init ("ÿÿÿÿ"); 2 30 2 31 dcl VALID_CARD_WORD_CHARACTERS char (38) internal static options (constant) init 2 32 ("abcdefghijklmnopqrstuvwxyz0123456789_."); /* lowercase letters, digits, period and underscore */ 2 33 2 34 dcl EMPTY_FIELD bit (36) aligned internal static options (constant) init ("777777777777"b3); 2 35 2 36 /* END INCLUDE FILE config_deck.incl.pl1 */ 474 475 /* BEGIN include file config_deck_data_.incl.pl1 */ 3 2 3 3 /* Descriptions of config_deck_data_. 3 4*Keith Loepere, January 1984. */ 3 5 3 6 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 3 7 3 8 dcl config_deck_data_$num_described_cards fixed bin aligned ext; 3 9 3 10 /* The true dimension of the arrays below. The figure of 64 is just for a 3 11*compiler restriction on external array sizes. */ 3 12 3 13 dcl config_deck_data_$Config_card_field_name 3 14 (64, 14) char (12) var aligned ext; 3 15 3 16 /* symbolic name of individual fields on card (label of field) */ 3 17 3 18 dcl config_deck_data_$Config_card_field_type 3 19 (64, 14) bit (2) unal ext; 3 20 3 21 /* type of value expected for this field. Types are as in Config_deck_types 3 22* but where type octal implies any numeric type */ 3 23 3 24 dcl config_deck_data_$Config_card_group_length 3 25 (64) fixed bin aligned ext; 3 26 3 27 /* if ^= 0, how many fields are in a repeating group at the end of a card */ 3 28 3 29 dcl config_deck_data_$Config_card_min_specifiable_fields 3 30 (64) fixed bin aligned ext; 3 31 3 32 /* how many fields that we have descriptions for must be present */ 3 33 3 34 dcl config_deck_data_$Config_card_name 3 35 (64) char (4) aligned ext; 3 36 3 37 /* specifying name (first unlabeled field) for card */ 3 38 3 39 /* The last card, USER, is not a real card. It is a slot used to refer 3 40* to cards we can't identify, assumed to be user defined cards. */ 3 41 3 42 dcl config_deck_data_$Config_card_num_described_fields 3 43 (64) fixed bin aligned ext; 3 44 3 45 /* how many fields we have descriptions for */ 3 46 3 47 dcl config_deck_data_$Config_card_subname 3 48 (64) char (4) var aligned ext; 3 49 3 50 /* tells alike cards apart - matches second unlabeled field 3 51*or apropriately labeled labeled field */ 3 52 3 53 /* END include file config_deck_data_.incl.pl1 */ 475 476 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1058.0 config_deck_parse_.pl1 >udd>sm>ds>w>ml>config_deck_parse_.pl1 473 1 08/05/86 0956.8 arg_list.incl.pl1 >ldd>incl>arg_list.incl.pl1 474 2 05/08/81 1953.6 config_deck.incl.pl1 >ldd>incl>config_deck.incl.pl1 475 3 07/11/84 1037.3 config_deck_data_.incl.pl1 >ldd>incl>config_deck_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. Bad_decimal_value_a 000252 constant fixed bin(17,0) initial dcl 16 set ref 277* 277 Bad_decimal_value_a_text 000174 constant char(36) initial packed unaligned dcl 17 set ref 277* Bad_octal_value_a 000250 constant fixed bin(17,0) initial dcl 18 set ref 290* 290 Bad_octal_value_a_text 000163 constant char(34) initial packed unaligned dcl 19 set ref 290* CONFIG_DECIMAL_TYPE 000000 constant bit(2) initial dcl 2-23 ref 282 457 CONFIG_OCTAL_TYPE constant bit(2) initial dcl 2-23 ref 272 295 453 CONFIG_SINGLE_CHAR_TYPE 004276 constant bit(2) initial dcl 2-23 ref 299 309 CONFIG_STRING_TYPE 004275 constant bit(2) initial dcl 2-23 ref 312 318 461 Card_name_too_long 000244 constant fixed bin(17,0) initial dcl 20 set ref 173* 173 Card_name_too_long_text 000154 constant char(26) initial packed unaligned dcl 21 set ref 173* Config_card_name 000100 automatic char(4) array packed unaligned dcl 22 set ref 84* 86* 117* 175* 246 423 EMPTY_FIELD 004274 constant bit(36) initial dcl 2-34 ref 186 439 Field_a_not_defined_or_too_many_supplied_for_card 000241 constant fixed bin(17,0) initial dcl 23 set ref 200* 200 Field_a_not_defined_or_too_many_supplied_for_card_text 000133 constant char(66) initial packed unaligned dcl 24 set ref 200* NO_TYPE 000000 constant bit(2) initial packed unaligned dcl 138 set ref 214* 272 276 278* 289 291* 303 305* No_card_type_specified 000236 constant fixed bin(17,0) initial dcl 25 set ref 164* 164 No_card_type_specified_text 000123 constant char(30) initial packed unaligned dcl 26 set ref 164* No_name_follows_dot 000122 constant fixed bin(17,0) initial dcl 27 set ref 170* 170 No_name_follows_dot_text 000113 constant char(27) initial packed unaligned dcl 28 set ref 170* No_value_for_a 000112 constant fixed bin(17,0) initial dcl 29 set ref 380* 380 No_value_for_a_text 000102 constant char(31) initial packed unaligned dcl 30 set ref 380* Some_fields_were_skipped_in_the_card 000205 constant fixed bin(17,0) initial dcl 31 set ref 229* 229 Some_fields_were_skipped_in_the_card_text 000067 constant char(44) initial packed unaligned dcl 32 set ref 229* Some_required_fields_were_not_supplied 000246 constant fixed bin(17,0) initial dcl 33 set ref 231* 231 233* 233 Some_required_fields_were_not_supplied_text 000053 constant char(46) initial packed unaligned dcl 34 set ref 231* 233* String_is_more_than_4_characters_a 000237 constant fixed bin(17,0) initial dcl 35 set ref 313* 313 String_is_more_than_4_characters_a_text 000036 constant char(51) initial packed unaligned dcl 36 set ref 313* Too_many_values_specified_for_card 000035 constant fixed bin(17,0) initial dcl 37 set ref 209* 209 Too_many_values_specified_for_card_text 000022 constant char(42) initial packed unaligned dcl 38 set ref 209* Value_is_not_a_valid_single_character_a 000240 constant fixed bin(17,0) initial dcl 39 set ref 304* 304 Value_is_not_a_valid_single_character_a_text 000004 constant char(56) initial packed unaligned dcl 40 set ref 304* Whitespace 000002 constant char(5) initial packed unaligned dcl 41 ref 372 383 410 a_labeled_fields parameter structure level 1 dcl 354 set ref 348 a_unlabeled_fields parameter structure level 1 dcl 355 set ref 348 addcharno builtin function dcl 43 ref 378 403 413 addr builtin function dcl 44 ref 340 365 arg1_ptr 000102 automatic pointer dcl 326 set ref 335* 338 arg3_ptr 000104 automatic pointer dcl 327 set ref 336* 343 arg_list based structure level 1 dcl 1-14 arg_list_ptr 000100 automatic pointer dcl 325 set ref 334* 335 336 339* arg_ptrs 2 based pointer array level 2 dcl 1-14 ref 335 336 ascii_config_card parameter varying char(256) dcl 141 in procedure "config_card_major_parse" set ref 126 162* 341* ascii_config_card parameter varying char(256) dcl 45 in procedure "config_deck_parse_" set ref 74 98* 105* 105 109 123* 433* 435* 435 441* 441 470* 470 binary_card 000200 automatic structure level 1 dcl 46 in procedure "config_deck_parse_" set ref 98* binary_card parameter structure level 1 dcl 142 in procedure "config_card_major_parse" set ref 126 binary_field_num 000262 automatic fixed bin(17,0) dcl 143 set ref 191* 192 192 195 196* 205* 207* 207 207* 208 212 212 215 218* 218* 226 227* 227 227* 229 281 282 294 295 308 309 317 318 card_name 000263 automatic char(4) packed unaligned dcl 144 set ref 174* 175 185 246 card_pos 000676 automatic fixed bin(17,0) dcl 356 set ref 372* 373 373* 375 377 378 383* 384 384* 388 397 402 403 410* 411 411* 412 413 414* card_subname 000220 automatic char(4) packed unaligned dcl 47 set ref 88* 425 card_type 000264 automatic fixed bin(17,0) dcl 145 in procedure "config_card_major_parse" set ref 177* 178* 191 192 195 212 212 231 233 233 233 246 247 249 249 255 card_type 000221 automatic fixed bin(17,0) dcl 48 in procedure "config_deck_parse_" set ref 83* 116* cardp 000242 automatic pointer dcl 2-3 set ref 76* 86 88 111* 112 123 423 433 439 453 454 457 458 461 462 466 code 000100 automatic fixed bin(35,0) dcl 266 set ref 274* 275 286* 288 config_card based structure level 1 dcl 2-13 set ref 112* 123* config_card_field 000222 automatic fixed bin(17,0) dcl 49 set ref 434* 435* 439* 439* 441 441* 453 454 457 458 461 462 466 config_card_type parameter fixed bin(17,0) dcl 432 in procedure "convert_to_type" ref 429 434 435 439 441 441 config_card_type 000223 automatic fixed bin(17,0) dcl 50 in procedure "config_deck_parse_" set ref 89* 92* 423 424 425 config_card_type_word based structure level 1 dcl 2-18 config_deck_data_$Config_card_field_name 000030 external static varying char(12) array dcl 3-13 ref 192 249 435 441 config_deck_data_$Config_card_field_type 000032 external static bit(2) array packed unaligned dcl 3-18 set ref 195* 212* config_deck_data_$Config_card_group_length 000034 external static fixed bin(17,0) array dcl 3-24 ref 233 233 config_deck_data_$Config_card_min_specifiable_fields 000036 external static fixed bin(17,0) array dcl 3-29 ref 231 233 434 439 config_deck_data_$Config_card_name 000040 external static char(4) array dcl 3-34 ref 84 117 config_deck_data_$Config_card_num_described_fields 000042 external static fixed bin(17,0) array dcl 3-42 ref 191 212 441 config_deck_data_$Config_card_subname 000044 external static varying char(4) array dcl 3-47 ref 247 249 255 424 425 config_deck_data_$num_described_cards 000026 external static fixed bin(17,0) dcl 3-8 set ref 83 86 89 104* 116 175 177 178 cu_$arg_list_ptr 000010 constant entry external dcl 51 ref 334 cv_dec_check_ 000012 constant entry external dcl 52 ref 274 cv_oct_check_ 000014 constant entry external dcl 53 ref 286 data_field 1 parameter bit(36) array level 2 in structure "binary_card" dcl 142 in procedure "config_card_major_parse" set ref 186* 281* 294* 308* 317* data_field 1 based bit(36) array level 2 in structure "config_card" dcl 2-13 in procedure "config_deck_parse_" set ref 88 439 454 458 462 466 dimension builtin function dcl 54 ref 385 395 dont_interpret 000265 automatic bit(1) dcl 146 set ref 168* 172* 177 error_detected parameter bit(1) dcl 147 in procedure "config_card_major_parse" set ref 126 161* 341 344* error_detected 000224 automatic bit(1) dcl 55 in procedure "config_deck_parse_" set ref 98* 99 123* error_flagged 000225 automatic bit(1) array dcl 56 in procedure "config_deck_parse_" set ref 78* 114* 164* 170* 173* 200* 209* 229* 231* 233* 277* 290* 304* 313* 380* error_flagged based bit(1) dcl 328 in procedure "error" set ref 343* error_num based fixed bin(17,0) dcl 329 set ref 338* field 1 parameter structure array level 2 in structure "a_labeled_fields" dcl 354 in procedure "separate_config_card_fields" set ref 385 field 000666 automatic fixed bin(17,0) dcl 244 in procedure "card_matches" set ref 248* 249 249* field 1 000270 automatic structure array level 2 in structure "labeled_fields" dcl 150 in procedure "config_card_major_parse" field_type 17 parameter bit(2) array level 3 in structure "binary_card" packed packed unaligned dcl 142 in procedure "config_card_major_parse" set ref 282* 295* 309* 318* field_type 17 based bit(2) array level 3 in structure "config_card" packed packed unaligned dcl 2-13 in procedure "config_deck_parse_" set ref 453 457 461 filled_field 000266 automatic bit(1) array packed unaligned dcl 148 set ref 187* 192 196* 207 215* 218 227 index builtin function dcl 57 ref 249 255 300 425 input_card parameter varying char(256) dcl 357 ref 348 359 364 ioa_ 000016 constant entry external dcl 58 ref 338 341 ioa_$general_rs 000020 constant entry external dcl 59 ref 339 ioa_$nnl 000022 constant entry external dcl 60 ref 340 ioa_$rsnnl 000024 constant entry external dcl 61 ref 455 459 label 1 000270 automatic varying char(16) array level 3 in structure "labeled_fields" dcl 150 in procedure "config_card_major_parse" set ref 192 200* 249 label 000677 automatic varying char(16) dcl 358 in procedure "separate_config_card_fields" set ref 375* 376 380* 387 label 1 parameter varying char(16) array level 3 in structure "a_labeled_fields" dcl 354 in procedure "separate_config_card_fields" set ref 387* labeled_field_num 000267 automatic fixed bin(17,0) dcl 149 set ref 190* 192 195 200* labeled_fields 000270 automatic structure level 1 dcl 150 set ref 162* length builtin function dcl 62 ref 170 173 247 273 274 274 302 313 364 ltrim builtin function dcl 63 ref 463 message_buffer 000106 automatic char(256) packed unaligned dcl 330 set ref 339* 340 message_len 000206 automatic fixed bin(21,0) dcl 331 set ref 339* 340 340 message_to_print based char packed unaligned dcl 332 set ref 340* mod builtin function dcl 64 ref 233 n_fields 17(32) parameter fixed bin(4,0) level 3 packed packed unsigned unaligned dcl 142 set ref 226* 231 233 number 000270 automatic fixed bin(17,0) level 2 in structure "labeled_fields" dcl 150 in procedure "config_card_major_parse" set ref 190 248 number 000532 automatic fixed bin(17,0) level 2 in structure "unlabeled_fields" dcl 157 in procedure "config_card_major_parse" set ref 163 206 255 number parameter fixed bin(17,0) level 2 in structure "a_unlabeled_fields" dcl 355 in procedure "separate_config_card_fields" set ref 366* 395 396* 396 397 number parameter fixed bin(17,0) level 2 in structure "a_labeled_fields" dcl 354 in procedure "separate_config_card_fields" set ref 367* 385 386* 386 387 388 numeric 001042 automatic fixed bin(35,0) dcl 450 in procedure "add_value" set ref 454* 455* 458* 459* 466* 467 467 468 numeric 000101 automatic fixed bin(35,0) dcl 267 in procedure "cv_value" set ref 274* 281 286* 294 300* 302 308 output_card_num parameter fixed bin(17,0) dcl 155 in procedure "config_card_major_parse" set ref 126 338* output_card_num parameter fixed bin(17,0) dcl 65 in procedure "config_deck_parse_" set ref 109 123* p_cardp parameter pointer dcl 66 ref 74 76 109 111 pad1 17(28) parameter bit(4) level 3 packed packed unaligned dcl 142 set ref 188* rtrim builtin function dcl 67 ref 433 463 search builtin function dcl 68 ref 372 383 silent 000241 automatic bit(1) dcl 69 set ref 77* 113* 337 string 000102 automatic char(4) dcl 268 in procedure "cv_value" set ref 316* 317 string 001043 automatic char(4) dcl 451 in procedure "add_value" set ref 462* 463 substr builtin function dcl 70 ref 167 169 273 274 274 374 375 388 397 468 temp_card 000704 automatic char(256) initial packed unaligned dcl 359 set ref 359* 365 type parameter bit(2) packed unaligned dcl 269 ref 262 272 272 276 289 299 303 312 type_word 17 based structure level 2 in structure "config_card" dcl 2-13 in procedure "config_deck_parse_" type_word 17 parameter structure level 2 in structure "binary_card" dcl 142 in procedure "config_card_major_parse" unlabeled_field_num 000531 automatic fixed bin(17,0) dcl 156 set ref 206* 212 214* unlabeled_fields 000532 automatic structure level 1 dcl 157 set ref 162* unspec builtin function dcl 71 set ref 88* 88 112* 281* 281 294* 294 308* 308 317* 317 454* 454 458* 458 462* 462 466* 466 value parameter varying char(16) dcl 270 in procedure "cv_value" set ref 262 273 273 274 274 274 274 277* 278* 286 290* 291* 300 302 304* 305* 313 313* 316 value 1 000532 automatic varying char(16) array level 2 in structure "unlabeled_fields" dcl 157 in procedure "config_card_major_parse" set ref 167 169* 169 170 173 174 212* 214* 255 value 001044 automatic varying char(16) dcl 452 in procedure "add_value" set ref 455* 459* 463* 467* 468* 470 value 1 parameter varying char(16) array level 2 in structure "a_unlabeled_fields" dcl 355 in procedure "separate_config_card_fields" set ref 395 397* value 6 parameter varying char(16) array level 3 in structure "a_labeled_fields" dcl 354 in procedure "separate_config_card_fields" set ref 388* value 6 000270 automatic varying char(16) array level 3 in structure "labeled_fields" dcl 150 in procedure "config_card_major_parse" set ref 195* 249 verify builtin function dcl 72 ref 376 410 word based char(4) level 2 in structure "config_card" dcl 2-13 in procedure "config_deck_parse_" set ref 86 423 433 word parameter char(4) level 2 in structure "binary_card" dcl 142 in procedure "config_card_major_parse" set ref 185* work_card based char packed unaligned dcl 360 ref 372 374 375 383 388 397 410 work_card_len 001004 automatic fixed bin(17,0) dcl 361 set ref 364* 369 372 373 374 375 377* 377 380 383 384 388 397 402* 402 410 411 412* 412 work_card_ptr 001006 automatic pointer dcl 362 set ref 365* 372 374 375 378* 378 383 388 397 403* 403 410 413* 413 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Envptr_supplied_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-54 FREE_CARD_WORD internal static char(4) initial dcl 2-29 Interseg_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-54 Quick_call_type internal static fixed bin(18,0) initial packed unsigned unaligned dcl 1-54 VALID_CARD_WORD_CHARACTERS internal static char(38) initial packed unaligned dcl 2-31 ZERO_CARD_WORD internal static char(4) initial dcl 2-28 arg_list_with_envptr based structure level 1 dcl 1-42 command_name_arglist based structure level 1 dcl 1-25 config_deck based structure level 1 dcl 2-9 config_deck$ external static fixed bin(17,0) dcl 2-7 config_max_cards automatic fixed bin(17,0) dcl 2-5 config_n_cards automatic fixed bin(17,0) dcl 2-4 configp automatic pointer dcl 2-3 NAMES DECLARED BY EXPLICIT CONTEXT. add_value 003231 constant entry internal dcl 447 ref 436 444 ascii_to_binary 000533 constant entry external dcl 109 binary_to_ascii 000346 constant entry external dcl 74 card_matches 002740 constant entry internal dcl 420 in procedure "config_deck_parse_" ref 89 card_matches 001500 constant entry internal dcl 240 in procedure "config_card_major_parse" ref 178 config_card_major_parse 000631 constant entry internal dcl 126 ref 98 123 config_deck_parse_ 000334 constant entry external dcl 8 convert_to_type 003005 constant entry internal dcl 429 ref 92 104 cv_value 001631 constant entry internal dcl 262 ref 195 212 214 278 291 305 error 002275 constant entry internal dcl 323 ref 164 170 173 200 209 229 231 233 277 290 304 313 380 is_it_a_char 002116 constant label dcl 300 ref 289 is_it_a_string 002217 constant label dcl 313 ref 303 is_it_octal 001774 constant label dcl 286 ref 276 next_labeled 001205 constant label dcl 201 ref 197 pass_whitespace 002712 constant entry internal dcl 408 ref 368 379 404 separate_config_card_fields 002467 constant entry internal dcl 348 ref 162 unlabeled 002657 constant label dcl 395 ref 376 validate_card 001333 constant label dcl 218 ref 210 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4554 4622 4302 4564 Length 5106 4302 46 247 252 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME config_deck_parse_ 662 external procedure is an external procedure. config_card_major_parse internal procedure shares stack frame of external procedure config_deck_parse_. card_matches internal procedure shares stack frame of external procedure config_deck_parse_. cv_value 106 internal procedure calls itself recursively. error 194 internal procedure is declared options(variable). separate_config_card_fields internal procedure shares stack frame of external procedure config_deck_parse_. pass_whitespace internal procedure shares stack frame of external procedure config_deck_parse_. card_matches internal procedure shares stack frame of external procedure config_deck_parse_. convert_to_type internal procedure shares stack frame of external procedure config_deck_parse_. add_value internal procedure shares stack frame of external procedure config_deck_parse_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME config_deck_parse_ 000100 Config_card_name config_deck_parse_ 000200 binary_card config_deck_parse_ 000220 card_subname config_deck_parse_ 000221 card_type config_deck_parse_ 000222 config_card_field config_deck_parse_ 000223 config_card_type config_deck_parse_ 000224 error_detected config_deck_parse_ 000225 error_flagged config_deck_parse_ 000241 silent config_deck_parse_ 000242 cardp config_deck_parse_ 000262 binary_field_num config_card_major_parse 000263 card_name config_card_major_parse 000264 card_type config_card_major_parse 000265 dont_interpret config_card_major_parse 000266 filled_field config_card_major_parse 000267 labeled_field_num config_card_major_parse 000270 labeled_fields config_card_major_parse 000531 unlabeled_field_num config_card_major_parse 000532 unlabeled_fields config_card_major_parse 000666 field card_matches 000676 card_pos separate_config_card_fields 000677 label separate_config_card_fields 000704 temp_card separate_config_card_fields 001004 work_card_len separate_config_card_fields 001006 work_card_ptr separate_config_card_fields 001042 numeric add_value 001043 string add_value 001044 value add_value cv_value 000100 code cv_value 000101 numeric cv_value 000102 string cv_value error 000100 arg_list_ptr error 000102 arg1_ptr error 000104 arg3_ptr error 000106 message_buffer error 000206 message_len error THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac mdfx1 shorten_stack ext_entry int_entry set_chars_eis index_chars_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$arg_list_ptr cv_dec_check_ cv_oct_check_ ioa_ ioa_$general_rs ioa_$nnl ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_deck_data_$Config_card_field_name config_deck_data_$Config_card_field_type config_deck_data_$Config_card_group_length config_deck_data_$Config_card_min_specifiable_fields config_deck_data_$Config_card_name config_deck_data_$Config_card_num_described_fields config_deck_data_$Config_card_subname config_deck_data_$num_described_cards CONSTANTS 003457 aa 777 777 777 777 ÿÿÿÿ 003460 aa 777 777 777 777 ÿÿÿÿ 003461 aa 777 000 000 000 ÿ 003462 aa 000 777 777 777 ÿÿÿ 003463 aa 777 777 777 777 ÿÿÿÿ 003464 aa 777 777 777 777 ÿÿÿÿ 003465 aa 777 777 777 777 ÿÿÿÿ 003466 aa 777 777 777 777 ÿÿÿÿ 003467 aa 000 777 777 777 ÿÿÿ 003470 aa 777 777 777 777 ÿÿÿÿ 003471 aa 777 777 777 777 ÿÿÿÿ 003472 aa 777 777 777 777 ÿÿÿÿ 003473 aa 777 777 777 777 ÿÿÿÿ 003474 aa 777 777 777 777 ÿÿÿÿ 003475 aa 777 777 777 777 ÿÿÿÿ 003476 aa 777 777 777 777 ÿÿÿÿ 003477 aa 777 777 777 777 ÿÿÿÿ 003500 aa 777 777 777 777 ÿÿÿÿ 003501 aa 777 777 777 777 ÿÿÿÿ 003502 aa 777 777 777 777 ÿÿÿÿ 003503 aa 777 777 777 777 ÿÿÿÿ 003504 aa 777 777 777 777 ÿÿÿÿ 003505 aa 777 777 777 777 ÿÿÿÿ 003506 aa 777 777 777 777 ÿÿÿÿ 003507 aa 777 777 777 777 ÿÿÿÿ 003510 aa 777 777 777 777 ÿÿÿÿ 003511 aa 777 777 777 777 ÿÿÿÿ 003512 aa 777 777 777 777 ÿÿÿÿ 003513 aa 777 777 777 777 ÿÿÿÿ 003514 aa 777 777 777 777 ÿÿÿÿ 003515 aa 777 777 777 777 ÿÿÿÿ 003516 aa 777 777 777 777 ÿÿÿÿ 003517 aa 777 777 777 777 ÿÿÿÿ 003520 aa 777 777 777 777 ÿÿÿÿ 003521 aa 777 777 777 777 ÿÿÿÿ 003522 aa 777 777 777 777 ÿÿÿÿ 003523 aa 777 777 777 777 ÿÿÿÿ 003524 aa 777 777 777 777 ÿÿÿÿ 003525 aa 777 777 777 777 ÿÿÿÿ 003526 aa 777 777 777 777 ÿÿÿÿ 003527 aa 777 777 777 777 ÿÿÿÿ 003530 aa 777 777 777 777 ÿÿÿÿ 003531 aa 777 777 777 777 ÿÿÿÿ 003532 aa 777 777 777 777 ÿÿÿÿ 003533 aa 777 777 777 777 ÿÿÿÿ 003534 aa 777 777 777 777 ÿÿÿÿ 003535 aa 777 777 777 777 ÿÿÿÿ 003536 aa 777 777 777 777 ÿÿÿÿ 003537 aa 777 777 777 777 ÿÿÿÿ 003540 aa 777 777 777 777 ÿÿÿÿ 003541 aa 777 777 777 777 ÿÿÿÿ 003542 aa 777 777 777 777 ÿÿÿÿ 003543 aa 777 777 777 777 ÿÿÿÿ 003544 aa 777 777 777 777 ÿÿÿÿ 003545 aa 777 777 777 777 ÿÿÿÿ 003546 aa 777 777 777 777 ÿÿÿÿ 003547 aa 777 777 777 777 ÿÿÿÿ 003550 aa 777 777 777 777 ÿÿÿÿ 003551 aa 777 777 777 777 ÿÿÿÿ 003552 aa 777 777 777 777 ÿÿÿÿ 003553 aa 777 777 777 777 ÿÿÿÿ 003554 aa 777 777 777 777 ÿÿÿÿ 003555 aa 777 777 777 777 ÿÿÿÿ 003556 aa 777 777 777 777 ÿÿÿÿ 003557 aa 777 777 777 777 ÿÿÿÿ 003560 aa 777 777 777 777 ÿÿÿÿ 003561 aa 777 777 777 777 ÿÿÿÿ 003562 aa 777 777 777 777 ÿÿÿÿ 003563 aa 777 777 777 777 ÿÿÿÿ 003564 aa 777 777 777 777 ÿÿÿÿ 003565 aa 777 777 777 777 ÿÿÿÿ 003566 aa 777 777 777 777 ÿÿÿÿ 003567 aa 777 777 777 777 ÿÿÿÿ 003570 aa 777 777 777 777 ÿÿÿÿ 003571 aa 777 777 777 777 ÿÿÿÿ 003572 aa 777 777 777 777 ÿÿÿÿ 003573 aa 777 777 777 777 ÿÿÿÿ 003574 aa 777 777 777 777 ÿÿÿÿ 003575 aa 777 777 777 777 ÿÿÿÿ 003576 aa 777 777 777 777 ÿÿÿÿ 003577 aa 777 777 777 777 ÿÿÿÿ 003600 aa 777 777 777 777 ÿÿÿÿ 003601 aa 777 777 777 777 ÿÿÿÿ 003602 aa 777 777 777 777 ÿÿÿÿ 003603 aa 777 777 777 777 ÿÿÿÿ 003604 aa 777 777 777 777 ÿÿÿÿ 003605 aa 777 777 777 777 ÿÿÿÿ 003606 aa 777 777 777 777 ÿÿÿÿ 003607 aa 777 777 777 777 ÿÿÿÿ 003610 aa 777 777 777 777 ÿÿÿÿ 003611 aa 777 777 777 777 ÿÿÿÿ 003612 aa 777 777 777 777 ÿÿÿÿ 003613 aa 777 777 777 777 ÿÿÿÿ 003614 aa 777 777 777 777 ÿÿÿÿ 003615 aa 777 777 777 777 ÿÿÿÿ 003616 aa 777 777 777 777 ÿÿÿÿ 003617 aa 777 777 777 777 ÿÿÿÿ 003620 aa 777 777 777 777 ÿÿÿÿ 003621 aa 777 777 777 777 ÿÿÿÿ 003622 aa 777 777 777 777 ÿÿÿÿ 003623 aa 777 777 777 777 ÿÿÿÿ 003624 aa 777 777 777 777 ÿÿÿÿ 003625 aa 777 777 777 777 ÿÿÿÿ 003626 aa 777 777 777 777 ÿÿÿÿ 003627 aa 777 777 777 777 ÿÿÿÿ 003630 aa 777 777 777 777 ÿÿÿÿ 003631 aa 777 777 777 777 ÿÿÿÿ 003632 aa 777 777 777 777 ÿÿÿÿ 003633 aa 777 777 777 777 ÿÿÿÿ 003634 aa 777 777 777 777 ÿÿÿÿ 003635 aa 777 777 777 777 ÿÿÿÿ 003636 aa 777 777 777 777 ÿÿÿÿ 003637 aa 777 777 777 777 ÿÿÿÿ 003640 aa 777 777 777 777 ÿÿÿÿ 003641 aa 777 777 777 777 ÿÿÿÿ 003642 aa 777 777 777 777 ÿÿÿÿ 003643 aa 777 777 777 777 ÿÿÿÿ 003644 aa 777 777 777 777 ÿÿÿÿ 003645 aa 777 777 777 777 ÿÿÿÿ 003646 aa 777 777 777 777 ÿÿÿÿ 003647 aa 777 777 777 777 ÿÿÿÿ 003650 aa 777 777 777 777 ÿÿÿÿ 003651 aa 777 777 777 777 ÿÿÿÿ 003652 aa 777 777 777 777 ÿÿÿÿ 003653 aa 777 777 777 777 ÿÿÿÿ 003654 aa 777 777 777 777 ÿÿÿÿ 003655 aa 777 777 777 777 ÿÿÿÿ 003656 aa 777 777 777 777 ÿÿÿÿ 003657 aa 777 777 777 777 ÿÿÿÿ 003660 aa 777 777 777 777 ÿÿÿÿ 003661 aa 777 777 777 777 ÿÿÿÿ 003662 aa 777 777 777 777 ÿÿÿÿ 003663 aa 777 777 777 777 ÿÿÿÿ 003664 aa 777 777 777 777 ÿÿÿÿ 003665 aa 777 777 777 777 ÿÿÿÿ 003666 aa 777 777 777 777 ÿÿÿÿ 003667 aa 777 777 777 777 ÿÿÿÿ 003670 aa 777 777 777 777 ÿÿÿÿ 003671 aa 777 777 777 777 ÿÿÿÿ 003672 aa 777 000 000 777 ÿÿ 003673 aa 000 000 000 000 003674 aa 000 000 000 000 003675 aa 000 000 777 777 ÿÿ 003676 aa 777 777 777 777 ÿÿÿÿ 003677 aa 777 777 777 777 ÿÿÿÿ 003700 aa 777 777 777 777 ÿÿÿÿ 003701 aa 777 777 777 777 ÿÿÿÿ 003702 aa 777 777 777 777 ÿÿÿÿ 003703 aa 777 777 777 777 ÿÿÿÿ 003704 aa 777 777 777 777 ÿÿÿÿ 003705 aa 777 777 777 777 ÿÿÿÿ 003706 aa 777 777 777 777 ÿÿÿÿ 003707 aa 777 777 777 777 ÿÿÿÿ 003710 aa 777 777 777 777 ÿÿÿÿ 003711 aa 777 777 777 777 ÿÿÿÿ 003712 aa 777 777 777 777 ÿÿÿÿ 003713 aa 777 777 777 777 ÿÿÿÿ 003714 aa 777 777 777 777 ÿÿÿÿ 003715 aa 777 777 777 777 ÿÿÿÿ 003716 aa 777 777 777 777 ÿÿÿÿ 003717 aa 777 777 777 777 ÿÿÿÿ 003720 aa 777 777 777 777 ÿÿÿÿ 003721 aa 777 777 777 777 ÿÿÿÿ 003722 aa 777 777 777 777 ÿÿÿÿ 003723 aa 777 777 777 777 ÿÿÿÿ 003724 aa 777 777 777 777 ÿÿÿÿ 003725 aa 777 777 777 777 ÿÿÿÿ 003726 aa 777 777 777 777 ÿÿÿÿ 003727 aa 777 777 777 777 ÿÿÿÿ 003730 aa 777 777 777 777 ÿÿÿÿ 003731 aa 777 777 777 777 ÿÿÿÿ 003732 aa 777 777 777 777 ÿÿÿÿ 003733 aa 777 777 777 777 ÿÿÿÿ 003734 aa 777 777 777 777 ÿÿÿÿ 003735 aa 777 777 777 777 ÿÿÿÿ 003736 aa 777 777 777 777 ÿÿÿÿ 003737 aa 777 777 777 777 ÿÿÿÿ 003740 aa 777 777 777 777 ÿÿÿÿ 003741 aa 777 777 777 777 ÿÿÿÿ 003742 aa 777 777 777 777 ÿÿÿÿ 003743 aa 777 777 777 777 ÿÿÿÿ 003744 aa 777 777 777 777 ÿÿÿÿ 003745 aa 777 777 777 777 ÿÿÿÿ 003746 aa 777 777 777 777 ÿÿÿÿ 003747 aa 777 777 777 777 ÿÿÿÿ 003750 aa 777 777 777 777 ÿÿÿÿ 003751 aa 777 777 777 777 ÿÿÿÿ 003752 aa 777 777 777 777 ÿÿÿÿ 003753 aa 777 777 777 777 ÿÿÿÿ 003754 aa 777 777 777 777 ÿÿÿÿ 003755 aa 777 777 777 777 ÿÿÿÿ 003756 aa 777 777 777 777 ÿÿÿÿ 003757 aa 777 777 777 777 ÿÿÿÿ 003760 aa 777 777 777 777 ÿÿÿÿ 003761 aa 777 777 777 777 ÿÿÿÿ 003762 aa 777 777 777 777 ÿÿÿÿ 003763 aa 777 777 777 777 ÿÿÿÿ 003764 aa 777 777 777 777 ÿÿÿÿ 003765 aa 777 777 777 777 ÿÿÿÿ 003766 aa 777 777 777 777 ÿÿÿÿ 003767 aa 777 777 777 777 ÿÿÿÿ 003770 aa 777 777 777 777 ÿÿÿÿ 003771 aa 777 777 777 777 ÿÿÿÿ 003772 aa 777 777 777 777 ÿÿÿÿ 003773 aa 777 777 777 777 ÿÿÿÿ 003774 aa 777 777 777 777 ÿÿÿÿ 003775 aa 777 777 777 777 ÿÿÿÿ 003776 aa 777 777 777 777 ÿÿÿÿ 003777 aa 777 777 777 777 ÿÿÿÿ 004000 aa 777 777 777 777 ÿÿÿÿ 004001 aa 777 777 777 777 ÿÿÿÿ 004002 aa 777 777 777 777 ÿÿÿÿ 004003 aa 777 777 777 777 ÿÿÿÿ 004004 aa 777 777 777 777 ÿÿÿÿ 004005 aa 777 777 777 777 ÿÿÿÿ 004006 aa 777 777 777 777 ÿÿÿÿ 004007 aa 777 777 777 777 ÿÿÿÿ 004010 aa 777 777 777 777 ÿÿÿÿ 004011 aa 777 777 777 777 ÿÿÿÿ 004012 aa 777 777 777 777 ÿÿÿÿ 004013 aa 777 777 777 777 ÿÿÿÿ 004014 aa 777 777 777 777 ÿÿÿÿ 004015 aa 777 777 777 777 ÿÿÿÿ 004016 aa 777 777 777 777 ÿÿÿÿ 004017 aa 777 777 777 777 ÿÿÿÿ 004020 aa 777 777 777 777 ÿÿÿÿ 004021 aa 777 777 777 777 ÿÿÿÿ 004022 aa 777 777 777 777 ÿÿÿÿ 004023 aa 777 777 777 777 ÿÿÿÿ 004024 aa 777 777 777 777 ÿÿÿÿ 004025 aa 777 777 777 777 ÿÿÿÿ 004026 aa 777 777 777 777 ÿÿÿÿ 004027 aa 777 777 777 777 ÿÿÿÿ 004030 aa 777 777 777 777 ÿÿÿÿ 004031 aa 777 777 777 777 ÿÿÿÿ 004032 aa 777 777 777 777 ÿÿÿÿ 004033 aa 777 777 777 777 ÿÿÿÿ 004034 aa 777 777 777 777 ÿÿÿÿ 004035 aa 777 777 777 777 ÿÿÿÿ 004036 aa 777 777 777 777 ÿÿÿÿ 004037 aa 777 777 777 777 ÿÿÿÿ 004040 aa 777 777 777 777 ÿÿÿÿ 004041 aa 777 777 777 777 ÿÿÿÿ 004042 aa 777 777 777 777 ÿÿÿÿ 004043 aa 777 777 777 777 ÿÿÿÿ 004044 aa 777 777 777 777 ÿÿÿÿ 004045 aa 777 777 777 777 ÿÿÿÿ 004046 aa 777 777 777 777 ÿÿÿÿ 004047 aa 777 777 777 777 ÿÿÿÿ 004050 aa 777 777 777 777 ÿÿÿÿ 004051 aa 777 777 777 777 ÿÿÿÿ 004052 aa 777 777 777 777 ÿÿÿÿ 004053 aa 777 777 777 777 ÿÿÿÿ 004054 aa 777 777 777 777 ÿÿÿÿ 004055 aa 777 777 777 777 ÿÿÿÿ 004056 aa 777 777 777 777 ÿÿÿÿ 004057 aa 000 000 000 000 004060 aa 000 000 000 000 004061 aa 000 777 777 777 ÿÿÿ 004062 aa 777 000 000 000 ÿ 004063 aa 000 000 000 000 004064 aa 000 000 000 000 004065 aa 000 000 000 000 004066 aa 000 000 000 000 004067 aa 777 000 000 000 ÿ 004070 aa 000 000 000 000 004071 aa 000 000 000 000 004072 aa 000 000 000 000 004073 aa 000 000 000 000 004074 aa 000 000 000 000 004075 aa 000 000 000 000 004076 aa 000 000 000 000 004077 aa 000 000 000 000 004100 aa 000 000 000 000 004101 aa 000 000 000 000 004102 aa 000 000 000 000 004103 aa 000 000 000 000 004104 aa 000 000 000 000 004105 aa 000 000 000 000 004106 aa 000 000 000 000 004107 aa 000 000 000 000 004110 aa 000 000 000 000 004111 aa 000 000 000 000 004112 aa 000 000 000 000 004113 aa 000 000 000 000 004114 aa 000 000 000 000 004115 aa 000 000 000 000 004116 aa 000 000 000 000 004117 aa 000 000 000 000 004120 aa 000 000 000 000 004121 aa 000 000 000 000 004122 aa 000 000 000 000 004123 aa 000 000 000 000 004124 aa 000 000 000 000 004125 aa 000 000 000 000 004126 aa 000 000 000 000 004127 aa 000 000 000 000 004130 aa 000 000 000 000 004131 aa 000 000 000 000 004132 aa 000 000 000 000 004133 aa 000 000 000 000 004134 aa 000 000 000 000 004135 aa 000 000 000 000 004136 aa 000 000 000 000 004137 aa 000 000 000 000 004140 aa 000 000 000 000 004141 aa 000 000 000 000 004142 aa 000 000 000 000 004143 aa 000 000 000 000 004144 aa 000 000 000 000 004145 aa 000 000 000 000 004146 aa 000 000 000 000 004147 aa 000 000 000 000 004150 aa 000 000 000 000 004151 aa 000 000 000 000 004152 aa 000 000 000 000 004153 aa 000 000 000 000 004154 aa 000 000 000 000 004155 aa 000 000 000 000 004156 aa 000 000 000 000 004157 aa 000 000 000 000 004160 aa 000 000 000 000 004161 aa 000 000 000 000 004162 aa 000 000 000 000 004163 aa 000 000 000 000 004164 aa 000 000 000 000 004165 aa 000 000 000 000 004166 aa 000 000 000 000 004167 aa 000 000 000 000 004170 aa 000 000 000 000 004171 aa 000 000 000 000 004172 aa 000 000 000 000 004173 aa 000 000 000 000 004174 aa 000 000 000 000 004175 aa 000 000 000 000 004176 aa 000 000 000 000 004177 aa 000 000 000 000 004200 aa 000 000 000 000 004201 aa 000 000 000 000 004202 aa 000 000 000 000 004203 aa 000 000 000 000 004204 aa 000 000 000 000 004205 aa 000 000 000 000 004206 aa 000 000 000 000 004207 aa 000 000 000 000 004210 aa 000 000 000 000 004211 aa 000 000 000 000 004212 aa 000 000 000 000 004213 aa 000 000 000 000 004214 aa 000 000 000 000 004215 aa 000 000 000 000 004216 aa 000 000 000 000 004217 aa 000 000 000 000 004220 aa 000 000 000 000 004221 aa 000 000 000 000 004222 aa 000 000 000 000 004223 aa 000 000 000 000 004224 aa 000 000 000 000 004225 aa 000 000 000 000 004226 aa 000 000 000 000 004227 aa 000 000 000 000 004230 aa 000 000 000 000 004231 aa 000 000 000 000 004232 aa 000 000 000 000 004233 aa 000 000 000 000 004234 aa 000 000 000 000 004235 aa 000 000 000 000 004236 aa 000 000 000 000 004237 aa 000 000 000 000 004240 aa 000 000 000 000 004241 aa 000 000 000 000 004242 aa 000 000 000 000 004243 aa 000 000 000 000 004244 aa 000 000 000 000 004245 aa 000 000 000 000 004246 aa 000 000 000 000 004247 aa 000 000 000 000 004250 aa 000 000 000 000 004251 aa 000 000 000 000 004252 aa 000 000 000 000 004253 aa 000 000 000 000 004254 aa 000 000 000 000 004255 aa 000 000 000 000 004256 aa 000 000 000 000 004257 aa 777777777417 004260 aa 000002000000 004261 aa 000000000000 004262 aa 600000000041 004263 aa 001120000000 004264 aa 000002000000 004265 aa 000000000000 004266 aa 600000000041 004267 aa 000223000000 004270 aa 000002000000 004271 aa 000000000000 004272 aa 600000000041 004273 aa 001051000000 004276 aa 200000000000 000000 aa 600000000000 000002 aa 012 011 014 040 000003 aa 013 000 000 000 000004 aa 136 133 042 136 ^["^ 000005 aa 141 042 136 057 a"^/ 000006 aa 136 073 126 141 ^;Va 000007 aa 154 165 145 040 lue 000010 aa 151 163 040 156 is n 000011 aa 157 164 040 141 ot a 000012 aa 040 166 141 154 val 000013 aa 151 144 040 163 id s 000014 aa 151 156 147 154 ingl 000015 aa 145 040 143 150 e ch 000016 aa 141 162 141 143 arac 000017 aa 164 145 162 040 ter 000020 aa 042 136 141 042 "^a" 000021 aa 136 057 136 135 ^/^] 000022 aa 136 133 136 073 ^[^; 000023 aa 124 157 157 040 Too 000024 aa 155 141 156 171 many 000025 aa 040 166 141 154 val 000026 aa 165 145 163 040 ues 000027 aa 163 160 145 143 spec 000030 aa 151 146 151 145 ifie 000031 aa 144 040 146 157 d fo 000032 aa 162 040 143 141 r ca 000033 aa 162 144 136 057 rd^/ 000034 aa 136 135 000 000 ^] 000035 aa 000000000013 000036 aa 136 133 042 136 ^["^ 000037 aa 141 042 136 057 a"^/ 000040 aa 136 073 123 164 ^;St 000041 aa 162 151 156 147 ring 000042 aa 040 151 163 040 is 000043 aa 155 157 162 145 more 000044 aa 040 164 150 141 tha 000045 aa 156 040 064 040 n 4 000046 aa 143 150 141 162 char 000047 aa 141 143 164 145 acte 000050 aa 162 163 040 042 rs " 000051 aa 136 141 042 136 ^a"^ 000052 aa 057 136 135 000 /^] 000053 aa 136 133 136 073 ^[^; 000054 aa 123 157 155 145 Some 000055 aa 040 162 145 161 req 000056 aa 165 151 162 145 uire 000057 aa 144 040 146 151 d fi 000060 aa 145 154 144 163 elds 000061 aa 040 167 145 162 wer 000062 aa 145 040 156 157 e no 000063 aa 164 040 163 165 t su 000064 aa 160 160 154 151 ppli 000065 aa 145 144 136 057 ed^/ 000066 aa 136 135 000 000 ^] 000067 aa 136 133 136 073 ^[^; 000070 aa 123 157 155 145 Some 000071 aa 040 146 151 145 fie 000072 aa 154 144 163 040 lds 000073 aa 167 145 162 145 were 000074 aa 040 163 153 151 ski 000075 aa 160 160 145 144 pped 000076 aa 040 151 156 040 in 000077 aa 164 150 145 040 the 000100 aa 143 141 162 144 card 000101 aa 136 057 136 135 ^/^] 000102 aa 136 133 042 136 ^["^ 000103 aa 141 042 136 057 a"^/ 000104 aa 136 073 116 157 ^;No 000105 aa 040 166 141 154 val 000106 aa 165 145 040 146 ue f 000107 aa 157 162 040 042 or " 000110 aa 136 141 042 136 ^a"^ 000111 aa 057 136 135 000 /^] 000112 aa 000000000007 000113 aa 136 133 136 073 ^[^; 000114 aa 116 157 040 156 No n 000115 aa 141 155 145 040 ame 000116 aa 146 157 154 154 foll 000117 aa 157 167 163 040 ows 000120 aa 144 157 164 136 dot^ 000121 aa 057 136 135 000 /^] 000122 aa 000000000006 000123 aa 136 133 136 073 ^[^; 000124 aa 116 157 040 143 No c 000125 aa 141 162 144 040 ard 000126 aa 164 171 160 145 type 000127 aa 040 163 160 145 spe 000130 aa 143 151 146 151 cifi 000131 aa 145 144 136 057 ed^/ 000132 aa 136 135 000 000 ^] 000133 aa 136 133 042 136 ^["^ 000134 aa 141 042 136 057 a"^/ 000135 aa 136 073 106 151 ^;Fi 000136 aa 145 154 144 040 eld 000137 aa 042 136 141 042 "^a" 000140 aa 040 156 157 164 not 000141 aa 040 144 145 146 def 000142 aa 151 156 145 144 ined 000143 aa 040 157 162 040 or 000144 aa 164 157 157 040 too 000145 aa 155 141 156 171 many 000146 aa 040 163 165 160 sup 000147 aa 160 154 151 145 plie 000150 aa 144 040 146 157 d fo 000151 aa 162 040 143 141 r ca 000152 aa 162 144 136 057 rd^/ 000153 aa 136 135 000 000 ^] 000154 aa 136 133 136 073 ^[^; 000155 aa 103 141 162 144 Card 000156 aa 040 156 141 155 nam 000157 aa 145 040 164 157 e to 000160 aa 157 040 154 157 o lo 000161 aa 156 147 136 057 ng^/ 000162 aa 136 135 000 000 ^] 000163 aa 136 133 042 136 ^["^ 000164 aa 141 042 136 057 a"^/ 000165 aa 136 073 102 141 ^;Ba 000166 aa 144 040 157 143 d oc 000167 aa 164 141 154 040 tal 000170 aa 166 141 154 165 valu 000171 aa 145 040 042 136 e "^ 000172 aa 141 042 136 057 a"^/ 000173 aa 136 135 000 000 ^] 000174 aa 136 133 042 136 ^["^ 000175 aa 141 042 136 057 a"^/ 000176 aa 136 073 102 141 ^;Ba 000177 aa 144 040 144 145 d de 000200 aa 143 151 155 141 cima 000201 aa 154 040 166 141 l va 000202 aa 154 165 145 040 lue 000203 aa 042 136 141 042 "^a" 000204 aa 136 057 136 135 ^/^] 000205 aa 000000000010 000206 aa 524000000003 000207 aa 136 144 056 000 ^d. 000210 aa 404000000005 000211 aa 524000000002 004277 aa 040 000 000 000 000212 aa 526000000037 004300 aa 055 000 000 000 - 000213 aa 524000000012 000214 aa 526000000000 000215 aa 404000000025 000216 aa 526000000400 000217 aa 524000000027 000220 aa 526000000063 000221 aa 526000000070 000222 aa 526000000042 000223 aa 526000000044 000224 aa 524000000000 000225 aa 516000000002 000226 aa 526000000056 000227 aa 526000000054 000230 aa 526000000052 000231 aa 530000000020 000232 aa 526000000102 000233 aa 526000000032 000234 aa 526000000033 000235 aa 526000000036 000236 aa 000000000005 000237 aa 000000000012 004301 aa 056 000 000 000 . 004274 aa 777777777777 000240 aa 000000000014 004275 aa 400000000000 000241 aa 000000000004 000242 aa 514000000001 000243 aa 464000000000 000244 aa 000000000003 000245 aa 404000000021 000246 aa 000000000011 000247 aa 404000000043 000250 aa 000000000002 000251 aa 530000000400 000252 aa 000000000001 000254 aa 141 142 143 144 abcd 000255 aa 145 146 147 150 efgh 000256 aa 055 060 061 062 -012 000257 aa 063 064 065 066 3456 000260 aa 067 070 071 056 789. 000261 aa 123 117 125 122 SOUR 000262 aa 103 105 072 040 CE: 000263 aa 136 141 000 000 ^a 000264 aa 136 057 127 101 ^/WA 000265 aa 122 116 111 116 RNIN 000266 aa 107 040 136 144 G ^d 000267 aa 040 117 116 040 ON 000270 aa 114 111 116 105 LINE 000271 aa 040 136 144 000 ^d 000272 aa 504000000002 000273 aa 404000000021 000274 aa 530100000020 000275 aa 000000000001 000276 aa 000000000020 000277 aa 000000000005 000300 aa 504000000003 000301 aa 524000000004 000302 aa 514100000044 000303 aa 000000000001 000304 aa 000000000016 000305 aa 000000000001 000306 aa 504000000003 000307 aa 516100000002 000310 aa 000000000001 000311 aa 000000000016 000312 aa 000000000002 000313 aa 516000000004 000314 aa 606000000004 000315 aa 504000000002 000316 aa 404000000021 000317 aa 504100000002 000320 aa 000000000001 000321 aa 000000000020 000322 aa 000000000012 000323 aa 530100000020 000324 aa 000000000001 000325 aa 000000000020 000326 aa 000000000012 000327 aa 530100000020 000330 aa 000000000001 000331 aa 000000000020 000332 aa 000000000012 BEGIN PROCEDURE config_deck_parse_ ENTRY TO config_deck_parse_ STATEMENT 1 ON LINE 8 config_deck_parse_: proc; 000333 da 000215200000 000334 aa 001240 6270 00 eax7 672 000335 aa 7 00034 3521 20 epp2 pr7|28,* 000336 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000337 aa 000000000000 000340 aa 000000000000 STATEMENT 2 ON LINE 8 return; 000341 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO binary_to_ascii STATEMENT 1 ON LINE 74 binary_to_ascii: entry (p_cardp, ascii_config_card); 000342 at 000002000243 000343 ta 000251000000 000344 ta 000342000000 000345 da 000224300000 000346 aa 001240 6270 00 eax7 672 000347 aa 7 00034 3521 20 epp2 pr7|28,* 000350 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000351 aa 000004000000 000352 aa 000000000000 000353 aa 6 00032 3735 20 epp7 pr6|26,* 000354 aa 7 00002 3715 20 epp5 pr7|2,* 000355 aa 6 00246 6515 00 spri5 pr6|166 000356 aa 7 00004 3535 20 epp3 pr7|4,* 000357 aa 6 00244 2535 00 spri3 pr6|164 STATEMENT 1 ON LINE 76 cardp = p_cardp; 000360 aa 6 00246 3735 20 epp7 pr6|166,* p_cardp 000361 aa 7 00000 3735 20 epp7 pr7|0,* p_cardp 000362 aa 6 00242 6535 00 spri7 pr6|162 cardp STATEMENT 1 ON LINE 77 silent = "1"b; 000363 aa 400000 2350 03 lda 131072,du 000364 aa 6 00241 7551 00 sta pr6|161 silent STATEMENT 1 ON LINE 78 error_flagged (*) = "0"b; 000365 aa 000001 2360 07 ldq 1,dl 000366 aa 6 00250 7561 00 stq pr6|168 000367 aa 000000 0110 03 nop 0,du 000370 aa 6 00250 7271 00 lxl7 pr6|168 000371 aa 6 00224 4501 17 stz pr6|148,7 error_flagged 000372 aa 6 00250 2361 00 ldq pr6|168 000373 aa 6 00250 0541 00 aos pr6|168 000374 aa 000014 1160 07 cmpq 12,dl 000375 aa 777773 6040 04 tmi -5,ic 000370 STATEMENT 1 ON LINE 83 do card_type = 1 to config_deck_data_$num_described_cards - 1; 000376 aa 6 00044 3701 20 epp4 pr6|36,* 000377 la 4 00026 2361 20 ldq pr4|22,* config_deck_data_$num_described_cards 000400 aa 000001 1760 07 sbq 1,dl 000401 aa 6 00251 7561 00 stq pr6|169 000402 aa 000001 2360 07 ldq 1,dl 000403 aa 6 00221 7561 00 stq pr6|145 card_type 000404 aa 6 00221 2361 00 ldq pr6|145 card_type 000405 aa 6 00251 1161 00 cmpq pr6|169 000406 aa 000017 6054 04 tpnz 15,ic 000425 STATEMENT 1 ON LINE 84 Config_card_name = config_deck_data_$Config_card_name; 000407 aa 000001 2360 07 ldq 1,dl 000410 aa 6 00250 7561 00 stq pr6|168 000411 aa 000000 0110 03 nop 0,du 000412 aa 6 00250 7271 00 lxl7 pr6|168 000413 aa 6 00044 3701 20 epp4 pr6|36,* 000414 la 4 00040 3735 20 epp7 pr4|32,* 000415 aa 7 77777 2351 17 lda pr7|-1,7 config_deck_data_$Config_card_name 000416 aa 6 00077 7551 17 sta pr6|63,7 Config_card_name 000417 aa 6 00250 2361 00 ldq pr6|168 000420 aa 6 00250 0541 00 aos pr6|168 000421 aa 000100 1160 07 cmpq 64,dl 000422 aa 777770 6040 04 tmi -8,ic 000412 STATEMENT 1 ON LINE 85 end; 000423 aa 6 00221 0541 00 aos pr6|145 card_type 000424 aa 777760 7100 04 tra -16,ic 000404 STATEMENT 1 ON LINE 86 Config_card_name (config_deck_data_$num_described_cards) = config_card.word; 000425 aa 6 00242 2351 20 lda pr6|162,* config_card.word 000426 aa 6 00044 3701 20 epp4 pr6|36,* 000427 la 4 00026 7271 20 lxl7 pr4|22,* config_deck_data_$num_described_cards 000430 aa 6 00077 7551 17 sta pr6|63,7 Config_card_name STATEMENT 1 ON LINE 88 unspec (card_subname) = unspec (config_card.data_field (1)); 000431 aa 6 00242 3735 20 epp7 pr6|162,* cardp 000432 aa 7 00001 2351 00 lda pr7|1 000433 aa 6 00220 7551 00 sta pr6|144 STATEMENT 1 ON LINE 89 do config_card_type = 1 to config_deck_data_$num_described_cards while (^card_matches ()); 000434 la 4 00026 2361 20 ldq pr4|22,* config_deck_data_$num_described_cards 000435 aa 6 00252 7561 00 stq pr6|170 000436 aa 000001 2360 07 ldq 1,dl 000437 aa 6 00223 7561 00 stq pr6|147 config_card_type 000440 aa 6 00223 2361 00 ldq pr6|147 config_card_type 000441 aa 6 00252 1161 00 cmpq pr6|170 000442 aa 000010 6054 04 tpnz 8,ic 000452 000443 aa 003625 3520 04 epp2 1941,ic 004270 = 000002000000 000444 aa 002274 6700 04 tsp4 1212,ic 002740 000445 aa 6 01051 2351 00 lda pr6|553 000446 aa 400000 3150 03 cana 131072,du 000447 aa 000003 6010 04 tnz 3,ic 000452 STATEMENT 1 ON LINE 90 end; 000450 aa 6 00223 0541 00 aos pr6|147 config_card_type 000451 aa 777767 7100 04 tra -9,ic 000440 STATEMENT 1 ON LINE 92 call convert_to_type (config_card_type); 000452 aa 003612 3520 04 epp2 1930,ic 004264 = 000002000000 000453 aa 002332 6700 04 tsp4 1242,ic 003005 STATEMENT 1 ON LINE 98 call config_card_major_parse (ascii_config_card, binary_card, 0, error_detected); 000454 aa 6 01051 4501 00 stz pr6|553 000455 aa 6 00244 3521 20 epp2 pr6|164,* ascii_config_card 000456 aa 6 01054 2521 00 spri2 pr6|556 000457 aa 6 00200 3521 00 epp2 pr6|128 binary_card 000460 aa 6 01056 2521 00 spri2 pr6|558 000461 aa 6 01051 3521 00 epp2 pr6|553 000462 aa 6 01060 2521 00 spri2 pr6|560 000463 aa 6 00224 3521 00 epp2 pr6|148 error_detected 000464 aa 6 01062 2521 00 spri2 pr6|562 000465 aa 6 01052 3521 00 epp2 pr6|554 000466 aa 020000 4310 07 fld 8192,dl 000467 aa 2 00000 7571 00 staq pr2|0 000470 aa 000141 6700 04 tsp4 97,ic 000631 STATEMENT 1 ON LINE 99 if error_detected then do; 000471 aa 6 00224 2351 00 lda pr6|148 error_detected 000472 aa 400000 3150 03 cana 131072,du 000473 aa 000033 6000 04 tze 27,ic 000526 STATEMENT 1 ON LINE 104 call convert_to_type (config_deck_data_$num_described_cards); 000474 aa 6 00044 3701 20 epp4 pr6|36,* 000475 la 4 00026 3521 20 epp2 pr4|22,* config_deck_data_$num_described_cards 000476 aa 6 01054 2521 00 spri2 pr6|556 000477 aa 6 01052 3521 00 epp2 pr6|554 000500 aa 004000 4310 07 fld 2048,dl 000501 aa 2 00000 7571 00 staq pr2|0 000502 aa 002303 6700 04 tsp4 1219,ic 003005 STATEMENT 1 ON LINE 105 ascii_config_card = "." || ascii_config_card; 000503 aa 000001 2360 07 ldq 1,dl 000504 aa 6 00244 3735 20 epp7 pr6|164,* 000505 aa 7 77777 0761 00 adq pr7|-1 ascii_config_card 000506 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 000507 aa 040 100 100 404 mlr (ic),(pr),fill(040) 000510 aa 003572 00 0001 desc9a 1914,1 004301 = 056000000000 000511 aa 2 00000 00 0001 desc9a pr2|0,1 000512 aa 7 77777 7271 00 lxl7 pr7|-1 ascii_config_card 000513 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000514 aa 7 00000 00 0017 desc9a pr7|0,x7 ascii_config_card 000515 aa 2 00000 20 0017 desc9a pr2|0(1),x7 000516 aa 000400 1160 07 cmpq 256,dl 000517 aa 000002 6040 04 tmi 2,ic 000521 000520 aa 000400 2360 07 ldq 256,dl 000521 aa 7 77777 7561 00 stq pr7|-1 ascii_config_card 000522 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000523 aa 2 00000 00 0006 desc9a pr2|0,ql 000524 aa 7 00000 00 0006 desc9a pr7|0,ql ascii_config_card STATEMENT 1 ON LINE 106 end; 000525 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack STATEMENT 1 ON LINE 107 return; 000526 aa 0 00631 7101 00 tra pr0|409 return_mac ENTRY TO ascii_to_binary STATEMENT 1 ON LINE 109 ascii_to_binary: entry (ascii_config_card, p_cardp, output_card_num); 000527 at 000003000251 000530 tt 000243000245 000531 ta 000527000000 000532 da 000233300000 000533 aa 001240 6270 00 eax7 672 000534 aa 7 00034 3521 20 epp2 pr7|28,* 000535 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000536 aa 000006000000 000537 aa 000000000000 000540 aa 6 00032 3735 20 epp7 pr6|26,* 000541 aa 7 00002 3715 20 epp5 pr7|2,* 000542 aa 6 00244 6515 00 spri5 pr6|164 000543 aa 7 00004 3535 20 epp3 pr7|4,* 000544 aa 6 00246 2535 00 spri3 pr6|166 STATEMENT 1 ON LINE 111 cardp = p_cardp; 000545 aa 6 00246 3735 20 epp7 pr6|166,* p_cardp 000546 aa 7 00000 3735 20 epp7 pr7|0,* p_cardp 000547 aa 6 00242 6535 00 spri7 pr6|162 cardp STATEMENT 1 ON LINE 112 unspec (config_card) = "0"b; 000550 aa 000 100 100 400 mlr (),(pr),fill(000) 000551 aa 000000 00 0000 desc9a 0,0 000552 aa 7 00000 00 0100 desc9a pr7|0,64 STATEMENT 1 ON LINE 113 silent = "0"b; 000553 aa 6 00241 4501 00 stz pr6|161 silent STATEMENT 1 ON LINE 114 error_flagged (*) = "0"b; 000554 aa 000001 2360 07 ldq 1,dl 000555 aa 6 00250 7561 00 stq pr6|168 000556 aa 6 00250 7271 00 lxl7 pr6|168 000557 aa 6 00224 4501 17 stz pr6|148,7 error_flagged 000560 aa 6 00250 2361 00 ldq pr6|168 000561 aa 6 00250 0541 00 aos pr6|168 000562 aa 000014 1160 07 cmpq 12,dl 000563 aa 777773 6040 04 tmi -5,ic 000556 STATEMENT 1 ON LINE 116 do card_type = 1 to config_deck_data_$num_described_cards; 000564 aa 6 00044 3701 20 epp4 pr6|36,* 000565 la 4 00026 2361 20 ldq pr4|22,* config_deck_data_$num_described_cards 000566 aa 6 00253 7561 00 stq pr6|171 000567 aa 000001 2360 07 ldq 1,dl 000570 aa 6 00221 7561 00 stq pr6|145 card_type 000571 aa 000000 0110 03 nop 0,du 000572 aa 6 00221 2361 00 ldq pr6|145 card_type 000573 aa 6 00253 1161 00 cmpq pr6|171 000574 aa 000017 6054 04 tpnz 15,ic 000613 STATEMENT 1 ON LINE 117 Config_card_name = config_deck_data_$Config_card_name; 000575 aa 000001 2360 07 ldq 1,dl 000576 aa 6 00250 7561 00 stq pr6|168 000577 aa 000000 0110 03 nop 0,du 000600 aa 6 00250 7271 00 lxl7 pr6|168 000601 aa 6 00044 3701 20 epp4 pr6|36,* 000602 la 4 00040 3735 20 epp7 pr4|32,* 000603 aa 7 77777 2351 17 lda pr7|-1,7 config_deck_data_$Config_card_name 000604 aa 6 00077 7551 17 sta pr6|63,7 Config_card_name 000605 aa 6 00250 2361 00 ldq pr6|168 000606 aa 6 00250 0541 00 aos pr6|168 000607 aa 000100 1160 07 cmpq 64,dl 000610 aa 777770 6040 04 tmi -8,ic 000600 STATEMENT 1 ON LINE 118 end; 000611 aa 6 00221 0541 00 aos pr6|145 card_type 000612 aa 777760 7100 04 tra -16,ic 000572 STATEMENT 1 ON LINE 123 call config_card_major_parse (ascii_config_card, config_card, output_card_num, error_detected); 000613 aa 6 00244 3521 20 epp2 pr6|164,* ascii_config_card 000614 aa 6 01054 2521 00 spri2 pr6|556 000615 aa 6 00242 3521 20 epp2 pr6|162,* config_card 000616 aa 6 01056 2521 00 spri2 pr6|558 000617 aa 6 00032 3735 20 epp7 pr6|26,* 000620 aa 7 00006 3521 20 epp2 pr7|6,* output_card_num 000621 aa 6 01060 2521 00 spri2 pr6|560 000622 aa 6 00224 3521 00 epp2 pr6|148 error_detected 000623 aa 6 01062 2521 00 spri2 pr6|562 000624 aa 6 01052 3521 00 epp2 pr6|554 000625 aa 020000 4310 07 fld 8192,dl 000626 aa 2 00000 7571 00 staq pr2|0 000627 aa 000002 6700 04 tsp4 2,ic 000631 STATEMENT 1 ON LINE 124 return; 000630 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 476 end; BEGIN PROCEDURE config_card_major_parse ENTRY TO config_card_major_parse STATEMENT 1 ON LINE 126 config_card_major_parse: proc (ascii_config_card, binary_card, output_card_num, error_detected); 000631 aa 6 00254 6501 00 spri4 pr6|172 000632 aa 6 00256 2521 00 spri2 pr6|174 STATEMENT 1 ON LINE 161 error_detected = "0"b; 000633 aa 2 00010 4501 20 stz pr2|8,* error_detected STATEMENT 1 ON LINE 162 call separate_config_card_fields (ascii_config_card, unlabeled_fields, labeled_fields); 000634 aa 2 00002 3521 20 epp2 pr2|2,* ascii_config_card 000635 aa 6 01070 2521 00 spri2 pr6|568 000636 aa 6 00532 3521 00 epp2 pr6|346 unlabeled_fields 000637 aa 6 01072 2521 00 spri2 pr6|570 000640 aa 6 00270 3521 00 epp2 pr6|184 labeled_fields 000641 aa 6 01074 2521 00 spri2 pr6|572 000642 aa 6 01066 3521 00 epp2 pr6|566 000643 aa 014000 4310 07 fld 6144,dl 000644 aa 2 00000 7571 00 staq pr2|0 000645 aa 001622 6700 04 tsp4 914,ic 002467 STATEMENT 1 ON LINE 163 if unlabeled_fields.number = 0 then do; 000646 aa 6 00532 2361 00 ldq pr6|346 unlabeled_fields.number 000647 aa 000023 6010 04 tnz 19,ic 000672 STATEMENT 1 ON LINE 164 call error (No_card_type_specified, No_card_type_specified_text, error_flagged (No_card_type_specified)); 000650 aa 777366 3520 04 epp2 -266,ic 000236 = 000000000005 000651 aa 6 01102 2521 00 spri2 pr6|578 000652 aa 777251 3520 04 epp2 -343,ic 000123 = 136133136073 000653 aa 6 01104 2521 00 spri2 pr6|580 000654 aa 000005 7270 07 lxl7 5,dl 000655 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 000656 aa 6 01106 2521 00 spri2 pr6|582 000657 aa 777366 3520 04 epp2 -266,ic 000245 = 404000000021 000660 aa 6 01112 2521 00 spri2 pr6|586 000661 aa 777354 3520 04 epp2 -276,ic 000235 = 526000000036 000662 aa 6 01114 2521 00 spri2 pr6|588 000663 aa 777357 3520 04 epp2 -273,ic 000242 = 514000000001 000664 aa 6 01116 2521 00 spri2 pr6|590 000665 aa 6 01100 6211 00 eax1 pr6|576 000666 aa 014000 4310 07 fld 6144,dl 000667 aa 001406 3520 04 epp2 774,ic 002275 = 000320627000 000670 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 165 return; 000671 aa 6 00254 6101 00 rtcd pr6|172 STATEMENT 1 ON LINE 166 end; STATEMENT 1 ON LINE 167 if substr (unlabeled_fields.value (1), 1, 1) = "." then do; 000672 aa 6 00534 2351 00 lda pr6|348 unlabeled_fields.value 000673 aa 0 00022 3771 00 anaq pr0|18 = 777000000000 000000000000 000674 aa 056000 1150 03 cmpa 23552,du 000675 aa 000041 6010 04 tnz 33,ic 000736 STATEMENT 1 ON LINE 168 dont_interpret = "1"b; 000676 aa 400000 2350 03 lda 131072,du 000677 aa 6 00265 7551 00 sta pr6|181 dont_interpret STATEMENT 1 ON LINE 169 unlabeled_fields.value (1) = substr (unlabeled_fields.value (1), 2); 000700 aa 6 00533 2361 00 ldq pr6|347 unlabeled_fields.value 000701 aa 000001 1760 07 sbq 1,dl 000702 aa 000020 1160 07 cmpq 16,dl 000703 aa 000002 6040 04 tmi 2,ic 000705 000704 aa 000020 2360 07 ldq 16,dl 000705 aa 6 00533 7561 00 stq pr6|347 unlabeled_fields.value 000706 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 000707 aa 6 00534 20 0006 desc9a pr6|348(1),ql unlabeled_fields.value 000710 aa 6 00534 00 0006 desc9a pr6|348,ql unlabeled_fields.value STATEMENT 1 ON LINE 170 if length (unlabeled_fields.value (1)) < 1 then call error (No_name_follows_dot, No_name_follows_dot_text, error_flagged (No_name_follows_dot)); 000711 aa 6 00533 2361 00 ldq pr6|347 unlabeled_fields.value 000712 aa 000001 1160 07 cmpq 1,dl 000713 aa 000024 6050 04 tpl 20,ic 000737 000714 aa 777206 3520 04 epp2 -378,ic 000122 = 000000000006 000715 aa 6 01102 2521 00 spri2 pr6|578 000716 aa 777175 3520 04 epp2 -387,ic 000113 = 136133136073 000717 aa 6 01104 2521 00 spri2 pr6|580 000720 aa 000006 7270 07 lxl7 6,dl 000721 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 000722 aa 6 01106 2521 00 spri2 pr6|582 000723 aa 777322 3520 04 epp2 -302,ic 000245 = 404000000021 000724 aa 6 01112 2521 00 spri2 pr6|586 000725 aa 777307 3520 04 epp2 -313,ic 000234 = 526000000033 000726 aa 6 01114 2521 00 spri2 pr6|588 000727 aa 777313 3520 04 epp2 -309,ic 000242 = 514000000001 000730 aa 6 01116 2521 00 spri2 pr6|590 000731 aa 6 01100 6211 00 eax1 pr6|576 000732 aa 014000 4310 07 fld 6144,dl 000733 aa 001342 3520 04 epp2 738,ic 002275 = 000320627000 000734 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 171 end; 000735 aa 000002 7100 04 tra 2,ic 000737 STATEMENT 1 ON LINE 172 else dont_interpret = "0"b; 000736 aa 6 00265 4501 00 stz pr6|181 dont_interpret STATEMENT 1 ON LINE 173 if length (unlabeled_fields.value (1)) > 4 then call error (Card_name_too_long, Card_name_too_long_text, error_flagged (Card_name_too_long)); 000737 aa 6 00533 2361 00 ldq pr6|347 unlabeled_fields.value 000740 aa 000004 1160 07 cmpq 4,dl 000741 aa 000022 6044 04 tmoz 18,ic 000763 000742 aa 777302 3520 04 epp2 -318,ic 000244 = 000000000003 000743 aa 6 01102 2521 00 spri2 pr6|578 000744 aa 777210 3520 04 epp2 -376,ic 000154 = 136133136073 000745 aa 6 01104 2521 00 spri2 pr6|580 000746 aa 000003 7270 07 lxl7 3,dl 000747 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 000750 aa 6 01106 2521 00 spri2 pr6|582 000751 aa 777274 3520 04 epp2 -324,ic 000245 = 404000000021 000752 aa 6 01112 2521 00 spri2 pr6|586 000753 aa 777260 3520 04 epp2 -336,ic 000233 = 526000000032 000754 aa 6 01114 2521 00 spri2 pr6|588 000755 aa 777265 3520 04 epp2 -331,ic 000242 = 514000000001 000756 aa 6 01116 2521 00 spri2 pr6|590 000757 aa 6 01100 6211 00 eax1 pr6|576 000760 aa 014000 4310 07 fld 6144,dl 000761 aa 001314 3520 04 epp2 716,ic 002275 = 000320627000 000762 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 174 card_name = unlabeled_fields.value (1); 000763 aa 6 00533 7271 00 lxl7 pr6|347 unlabeled_fields.value 000764 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 000765 aa 6 00534 00 0017 desc9a pr6|348,x7 unlabeled_fields.value 000766 aa 6 00263 00 0004 desc9a pr6|179,4 card_name STATEMENT 1 ON LINE 175 Config_card_name (config_deck_data_$num_described_cards) = card_name; 000767 aa 6 00263 2351 00 lda pr6|179 card_name 000770 aa 6 00044 3701 20 epp4 pr6|36,* 000771 la 4 00026 7271 20 lxl7 pr4|22,* config_deck_data_$num_described_cards 000772 aa 6 00077 7551 17 sta pr6|63,7 Config_card_name STATEMENT 1 ON LINE 177 if dont_interpret then card_type = config_deck_data_$num_described_cards; 000773 aa 6 00265 2351 00 lda pr6|181 dont_interpret 000774 aa 000004 6000 04 tze 4,ic 001000 000775 la 4 00026 2361 20 ldq pr4|22,* config_deck_data_$num_described_cards 000776 aa 6 00264 7561 00 stq pr6|180 card_type 000777 aa 000017 7100 04 tra 15,ic 001016 STATEMENT 1 ON LINE 178 else do card_type = 1 to config_deck_data_$num_described_cards while (^card_matches ()); 001000 la 4 00026 2361 20 ldq pr4|22,* config_deck_data_$num_described_cards 001001 aa 6 00653 7561 00 stq pr6|427 001002 aa 000001 2360 07 ldq 1,dl 001003 aa 6 00264 7561 00 stq pr6|180 card_type 001004 aa 6 00264 2361 00 ldq pr6|180 card_type 001005 aa 6 00653 1161 00 cmpq pr6|427 001006 aa 000010 6054 04 tpnz 8,ic 001016 001007 aa 003251 3520 04 epp2 1705,ic 004260 = 000002000000 001010 aa 000470 6700 04 tsp4 312,ic 001500 001011 aa 6 01120 2351 00 lda pr6|592 001012 aa 400000 3150 03 cana 131072,du 001013 aa 000003 6010 04 tnz 3,ic 001016 STATEMENT 1 ON LINE 180 end; 001014 aa 6 00264 0541 00 aos pr6|180 card_type 001015 aa 777767 7100 04 tra -9,ic 001004 STATEMENT 1 ON LINE 185 binary_card.word = card_name; 001016 aa 6 00263 2351 00 lda pr6|179 card_name 001017 aa 6 00256 3735 20 epp7 pr6|174,* 001020 aa 7 00004 7551 20 sta pr7|4,* binary_card.word STATEMENT 1 ON LINE 186 binary_card.data_field (*) = EMPTY_FIELD; 001021 aa 003253 2350 04 lda 1707,ic 004274 = 777777777777 001022 aa 000001 2360 07 ldq 1,dl 001023 aa 6 00654 7561 00 stq pr6|428 001024 aa 6 01120 7551 00 sta pr6|592 001025 aa 000000 0110 03 nop 0,du 001026 aa 6 01120 2351 00 lda pr6|592 001027 aa 6 00654 7271 00 lxl7 pr6|428 001030 aa 6 00256 3735 20 epp7 pr6|174,* 001031 aa 7 00004 7551 77 sta pr7|4,*7 binary_card.data_field 001032 aa 6 00654 2361 00 ldq pr6|428 001033 aa 6 00654 0541 00 aos pr6|428 001034 aa 000016 1160 07 cmpq 14,dl 001035 aa 777771 6040 04 tmi -7,ic 001026 STATEMENT 1 ON LINE 187 filled_field (*) = "0"b; 001036 aa 000001 2360 07 ldq 1,dl 001037 aa 6 00654 7561 00 stq pr6|428 001040 aa 6 00654 7271 00 lxl7 pr6|428 001041 aa 003 117 060 400 csl (),(pr,x7),fill(0),bool(move) 001042 aa 000000 00 0000 descb 0,0 001043 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field 001044 aa 6 00654 2361 00 ldq pr6|428 001045 aa 6 00654 0541 00 aos pr6|428 001046 aa 000016 1160 07 cmpq 14,dl 001047 aa 777771 6040 04 tmi -7,ic 001040 STATEMENT 1 ON LINE 188 binary_card.pad1 = "0"b; 001050 aa 003207 2350 04 lda 1671,ic 004257 = 777777777417 001051 aa 6 00256 3735 20 epp7 pr6|174,* 001052 aa 7 00004 3715 20 epp5 pr7|4,* 001053 aa 5 00017 3551 00 ansa pr5|15 binary_card.pad1 STATEMENT 1 ON LINE 190 do labeled_field_num = 1 to labeled_fields.number; 001054 aa 6 00270 2361 00 ldq pr6|184 labeled_fields.number 001055 aa 6 00655 7561 00 stq pr6|429 001056 aa 000001 2360 07 ldq 1,dl 001057 aa 6 00267 7561 00 stq pr6|183 labeled_field_num 001060 aa 6 00267 2361 00 ldq pr6|183 labeled_field_num 001061 aa 6 00655 1161 00 cmpq pr6|429 001062 aa 000125 6054 04 tpnz 85,ic 001207 STATEMENT 1 ON LINE 191 do binary_field_num = 1 to config_deck_data_$Config_card_num_described_fields (card_type); 001063 aa 6 00264 7271 00 lxl7 pr6|180 card_type 001064 aa 6 00044 3701 20 epp4 pr6|36,* 001065 la 4 00042 3735 20 epp7 pr4|34,* 001066 aa 7 77777 2361 17 ldq pr7|-1,7 config_deck_data_$Config_card_num_described_fields 001067 aa 6 00656 7561 00 stq pr6|430 001070 aa 000001 2360 07 ldq 1,dl 001071 aa 6 00262 7561 00 stq pr6|178 binary_field_num 001072 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001073 aa 6 00656 1161 00 cmpq pr6|430 001074 aa 000062 6054 04 tpnz 50,ic 001156 STATEMENT 1 ON LINE 192 if ^filled_field (binary_field_num) then if config_deck_data_$Config_card_field_name (card_type, binary_field_num) = labeled_fields.label (labeled_field_num) then do; 001075 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 001076 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field 001077 aa 000000 00 0000 descb 0,0 001100 aa 000054 6010 04 tnz 44,ic 001154 001101 aa 6 00264 2361 00 ldq pr6|180 card_type 001102 aa 000070 4020 07 mpy 56,dl 001103 aa 6 01120 7561 00 stq pr6|592 001104 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001105 aa 000002 7360 00 qls 2 001106 aa 6 01120 0761 00 adq pr6|592 001107 aa 000000 6270 06 eax7 0,ql 001110 aa 6 00267 2361 00 ldq pr6|183 labeled_field_num 001111 aa 000012 4020 07 mpy 10,dl 001112 aa 6 01121 7561 00 stq pr6|593 001113 aa 6 00044 3701 20 epp4 pr6|36,* 001114 la 4 00030 3735 20 epp7 pr4|24,* 001115 aa 7 77705 3735 17 epp7 pr7|-59,7 config_deck_data_$Config_card_field_name 001116 aa 6 00260 3715 06 epp5 pr6|176,ql labeled_fields.label 001117 aa 7 77777 7261 00 lxl6 pr7|-1 config_deck_data_$Config_card_field_name 001120 aa 5 77777 7251 00 lxl5 pr5|-1 labeled_fields.label 001121 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 001122 aa 7 00000 00 0016 desc9a pr7|0,x6 config_deck_data_$Config_card_field_name 001123 aa 5 00000 00 0015 desc9a pr5|0,x5 labeled_fields.label 001124 aa 000030 6010 04 tnz 24,ic 001154 STATEMENT 1 ON LINE 195 call cv_value (labeled_fields.value (labeled_field_num), config_deck_data_$Config_card_field_type (card_type, binary_field_num)); 001125 aa 6 00264 2361 00 ldq pr6|180 card_type 001126 aa 000034 4020 07 mpy 28,dl 001127 aa 6 01120 7561 00 stq pr6|592 001130 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001131 aa 000001 7360 00 qls 1 001132 aa 6 01120 0761 00 adq pr6|592 001133 aa 6 01121 7261 00 lxl6 pr6|593 001134 aa 6 00265 3521 16 epp2 pr6|181,6 labeled_fields.value 001135 aa 6 01070 2521 00 spri2 pr6|568 001136 aa 000006 6250 06 eax5 6,ql 001137 la 4 00032 3535 20 epp3 pr4|26,* 001140 aa 3 77777 3521 00 epp2 pr3|-1 config_deck_data_$Config_card_field_type 001141 aa 2 00000 5035 15 abd pr2|0,5 001142 aa 6 01072 2521 00 spri2 pr6|570 001143 aa 6 01066 6211 00 eax1 pr6|566 001144 aa 010000 4310 07 fld 4096,dl 001145 aa 000464 3520 04 epp2 308,ic 001631 = 000160627000 001146 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 196 filled_field (binary_field_num) = "1"b; 001147 aa 6 00262 7271 00 lxl7 pr6|178 binary_field_num 001150 aa 403 117 060 400 csl (),(pr,x7),fill(1),bool(move) 001151 aa 000000 00 0000 descb 0,0 001152 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field STATEMENT 1 ON LINE 197 go to next_labeled; 001153 aa 000032 7100 04 tra 26,ic 001205 STATEMENT 1 ON LINE 198 end; STATEMENT 1 ON LINE 199 end; 001154 aa 6 00262 0541 00 aos pr6|178 binary_field_num 001155 aa 777715 7100 04 tra -51,ic 001072 STATEMENT 1 ON LINE 200 call error (Field_a_not_defined_or_too_many_supplied_for_card, Field_a_not_defined_or_too_many_supplied_for_card_text, error_flagged (Field_a_not_defined_or_too_many_supplied_for_card), labeled_fields.label (labeled_field_num)); 001156 aa 6 00267 2361 00 ldq pr6|183 labeled_field_num 001157 aa 000012 4020 07 mpy 10,dl 001160 aa 777061 3520 04 epp2 -463,ic 000241 = 000000000004 001161 aa 6 01124 2521 00 spri2 pr6|596 001162 aa 776751 3520 04 epp2 -535,ic 000133 = 136133042136 001163 aa 6 01126 2521 00 spri2 pr6|598 001164 aa 000004 7270 07 lxl7 4,dl 001165 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 001166 aa 6 01130 2521 00 spri2 pr6|600 001167 aa 6 00260 3521 06 epp2 pr6|176,ql labeled_fields.label 001170 aa 6 01132 2521 00 spri2 pr6|602 001171 aa 777054 3520 04 epp2 -468,ic 000245 = 404000000021 001172 aa 6 01136 2521 00 spri2 pr6|606 001173 aa 777037 3520 04 epp2 -481,ic 000232 = 526000000102 001174 aa 6 01140 2521 00 spri2 pr6|608 001175 aa 777045 3520 04 epp2 -475,ic 000242 = 514000000001 001176 aa 6 01142 2521 00 spri2 pr6|610 001177 aa 777032 3520 04 epp2 -486,ic 000231 = 530000000020 001200 aa 6 01144 2521 00 spri2 pr6|612 001201 aa 6 01122 6211 00 eax1 pr6|594 001202 aa 020000 4310 07 fld 8192,dl 001203 aa 001072 3520 04 epp2 570,ic 002275 = 000320627000 001204 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 201 next_labeled: end; 001205 aa 6 00267 0541 00 aos pr6|183 labeled_field_num 001206 aa 777652 7100 04 tra -86,ic 001060 STATEMENT 1 ON LINE 205 binary_field_num = 1; 001207 aa 000001 2360 07 ldq 1,dl 001210 aa 6 00262 7561 00 stq pr6|178 binary_field_num STATEMENT 1 ON LINE 206 do unlabeled_field_num = 2 to unlabeled_fields.number; 001211 aa 6 00532 2361 00 ldq pr6|346 unlabeled_fields.number 001212 aa 6 00657 7561 00 stq pr6|431 001213 aa 000002 2360 07 ldq 2,dl 001214 aa 6 00531 7561 00 stq pr6|345 unlabeled_field_num 001215 aa 000000 0110 03 nop 0,du 001216 aa 6 00531 2361 00 ldq pr6|345 unlabeled_field_num 001217 aa 6 00657 1161 00 cmpq pr6|431 001220 aa 000113 6054 04 tpnz 75,ic 001333 STATEMENT 1 ON LINE 207 do binary_field_num = binary_field_num to 14 while (filled_field (binary_field_num)); 001221 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001222 aa 6 00262 7561 00 stq pr6|178 binary_field_num 001223 aa 000000 0110 03 nop 0,du 001224 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001225 aa 000016 1160 07 cmpq 14,dl 001226 aa 000007 6054 04 tpnz 7,ic 001235 001227 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 001230 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field 001231 aa 000000 00 0000 descb 0,0 001232 aa 000003 6000 04 tze 3,ic 001235 STATEMENT 2 ON LINE 207 end; 001233 aa 6 00262 0541 00 aos pr6|178 binary_field_num 001234 aa 777770 7100 04 tra -8,ic 001224 STATEMENT 1 ON LINE 208 if binary_field_num > 14 then do; 001235 aa 000016 1160 07 cmpq 14,dl 001236 aa 000023 6044 04 tmoz 19,ic 001261 STATEMENT 1 ON LINE 209 call error (Too_many_values_specified_for_card, Too_many_values_specified_for_card_text, error_flagged (Too_many_values_specified_for_card)); 001237 aa 776576 3520 04 epp2 -642,ic 000035 = 000000000013 001240 aa 6 01102 2521 00 spri2 pr6|578 001241 aa 776561 3520 04 epp2 -655,ic 000022 = 136133136073 001242 aa 6 01104 2521 00 spri2 pr6|580 001243 aa 000013 7270 07 lxl7 11,dl 001244 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 001245 aa 6 01106 2521 00 spri2 pr6|582 001246 aa 776777 3520 04 epp2 -513,ic 000245 = 404000000021 001247 aa 6 01112 2521 00 spri2 pr6|586 001250 aa 776760 3520 04 epp2 -528,ic 000230 = 526000000052 001251 aa 6 01114 2521 00 spri2 pr6|588 001252 aa 776770 3520 04 epp2 -520,ic 000242 = 514000000001 001253 aa 6 01116 2521 00 spri2 pr6|590 001254 aa 6 01100 6211 00 eax1 pr6|576 001255 aa 014000 4310 07 fld 6144,dl 001256 aa 001017 3520 04 epp2 527,ic 002275 = 000320627000 001257 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 210 go to validate_card; 001260 aa 000053 7100 04 tra 43,ic 001333 STATEMENT 1 ON LINE 211 end; STATEMENT 1 ON LINE 212 if binary_field_num <= config_deck_data_$Config_card_num_described_fields (card_type) then call cv_value (unlabeled_fields.value (unlabeled_field_num), config_deck_data_$Config_card_field_type (card_type, binary_field_num)); 001261 aa 6 00264 7271 00 lxl7 pr6|180 card_type 001262 aa 6 00044 3701 20 epp4 pr6|36,* 001263 la 4 00042 3735 20 epp7 pr4|34,* 001264 aa 7 77777 1161 17 cmpq pr7|-1,7 config_deck_data_$Config_card_num_described_fields 001265 aa 000026 6054 04 tpnz 22,ic 001313 001266 aa 6 00531 2361 00 ldq pr6|345 unlabeled_field_num 001267 aa 000005 4020 07 mpy 5,dl 001270 aa 000000 6260 06 eax6 0,ql 001271 aa 6 00264 2361 00 ldq pr6|180 card_type 001272 aa 000034 4020 07 mpy 28,dl 001273 aa 6 01120 7561 00 stq pr6|592 001274 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001275 aa 000001 7360 00 qls 1 001276 aa 6 01120 0761 00 adq pr6|592 001277 aa 6 00527 3521 16 epp2 pr6|343,6 unlabeled_fields.value 001300 aa 6 01070 2521 00 spri2 pr6|568 001301 aa 000006 6250 06 eax5 6,ql 001302 la 4 00032 3715 20 epp5 pr4|26,* 001303 aa 5 77777 3521 00 epp2 pr5|-1 config_deck_data_$Config_card_field_type 001304 aa 2 00000 5035 15 abd pr2|0,5 001305 aa 6 01072 2521 00 spri2 pr6|570 001306 aa 6 01066 6211 00 eax1 pr6|566 001307 aa 010000 4310 07 fld 4096,dl 001310 aa 000321 3520 04 epp2 209,ic 001631 = 000160627000 001311 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this 001312 aa 000013 7100 04 tra 11,ic 001325 STATEMENT 1 ON LINE 214 else call cv_value (unlabeled_fields.value (unlabeled_field_num), NO_TYPE); 001313 aa 6 00531 2361 00 ldq pr6|345 unlabeled_field_num 001314 aa 000005 4020 07 mpy 5,dl 001315 aa 6 00527 3521 06 epp2 pr6|343,ql unlabeled_fields.value 001316 aa 6 01070 2521 00 spri2 pr6|568 001317 aa 776461 3520 04 epp2 -719,ic 000000 = 600000000000 001320 aa 6 01072 2521 00 spri2 pr6|570 001321 aa 6 01066 6211 00 eax1 pr6|566 001322 aa 010000 4310 07 fld 4096,dl 001323 aa 000306 3520 04 epp2 198,ic 001631 = 000160627000 001324 aa 0 00625 7001 00 tsx0 pr0|405 call_int_this STATEMENT 1 ON LINE 215 filled_field (binary_field_num) = "1"b; 001325 aa 6 00262 7271 00 lxl7 pr6|178 binary_field_num 001326 aa 403 117 060 400 csl (),(pr,x7),fill(1),bool(move) 001327 aa 000000 00 0000 descb 0,0 001330 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field STATEMENT 1 ON LINE 216 end; 001331 aa 6 00531 0541 00 aos pr6|345 unlabeled_field_num 001332 aa 777664 7100 04 tra -76,ic 001216 STATEMENT 1 ON LINE 218 validate_card: /* now we know that those fields that were are described have good types and values are in order. labeled fields, though, may have skipped a value. Let's see. */ do binary_field_num = 1 to 14 while (filled_field (binary_field_num)); 001333 aa 000001 2360 07 ldq 1,dl 001334 aa 6 00262 7561 00 stq pr6|178 binary_field_num 001335 aa 000000 0110 03 nop 0,du 001336 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001337 aa 000016 1160 07 cmpq 14,dl 001340 aa 000007 6054 04 tpnz 7,ic 001347 001341 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 001342 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field 001343 aa 000000 00 0000 descb 0,0 001344 aa 000003 6000 04 tze 3,ic 001347 STATEMENT 1 ON LINE 225 end; 001345 aa 6 00262 0541 00 aos pr6|178 binary_field_num 001346 aa 777770 7100 04 tra -8,ic 001336 STATEMENT 1 ON LINE 226 binary_card.n_fields = binary_field_num - 1; 001347 aa 000001 1760 07 sbq 1,dl 001350 aa 6 00256 3735 20 epp7 pr6|174,* 001351 aa 7 00004 3715 20 epp5 pr7|4,* 001352 aa 5 00017 6761 00 erq pr5|15 binary_card.n_fields 001353 aa 000017 3760 07 anq 15,dl 001354 aa 5 00017 6561 00 ersq pr5|15 binary_card.n_fields STATEMENT 1 ON LINE 227 do binary_field_num = binary_field_num + 1 to 14 while (^filled_field (binary_field_num)); 001355 aa 6 00262 0541 00 aos pr6|178 binary_field_num 001356 aa 6 00262 2361 00 ldq pr6|178 binary_field_num 001357 aa 000016 1160 07 cmpq 14,dl 001360 aa 000007 6054 04 tpnz 7,ic 001367 001361 aa 000 000 066 506 cmpb (pr,ql),(),fill(0) 001362 aa 6 00265 70 0001 descb pr6|181(35),1 filled_field 001363 aa 000000 00 0000 descb 0,0 001364 aa 000003 6010 04 tnz 3,ic 001367 STATEMENT 1 ON LINE 228 end; 001365 aa 6 00262 0541 00 aos pr6|178 binary_field_num 001366 aa 777770 7100 04 tra -8,ic 001356 STATEMENT 1 ON LINE 229 if binary_field_num <= 14 then /* we found a filled field after unfilled fields */ call error (Some_fields_were_skipped_in_the_card, Some_fields_were_skipped_in_the_card_text, error_flagged (Some_fields_were_skipped_in_the_card)); 001367 aa 000016 1160 07 cmpq 14,dl 001370 aa 000022 6054 04 tpnz 18,ic 001412 001371 aa 776614 3520 04 epp2 -628,ic 000205 = 000000000010 001372 aa 6 01102 2521 00 spri2 pr6|578 001373 aa 776474 3520 04 epp2 -708,ic 000067 = 136133136073 001374 aa 6 01104 2521 00 spri2 pr6|580 001375 aa 000010 7270 07 lxl7 8,dl 001376 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 001377 aa 6 01106 2521 00 spri2 pr6|582 001400 aa 776645 3520 04 epp2 -603,ic 000245 = 404000000021 001401 aa 6 01112 2521 00 spri2 pr6|586 001402 aa 776625 3520 04 epp2 -619,ic 000227 = 526000000054 001403 aa 6 01114 2521 00 spri2 pr6|588 001404 aa 776636 3520 04 epp2 -610,ic 000242 = 514000000001 001405 aa 6 01116 2521 00 spri2 pr6|590 001406 aa 6 01100 6211 00 eax1 pr6|576 001407 aa 014000 4310 07 fld 6144,dl 001410 aa 000665 3520 04 epp2 437,ic 002275 = 000320627000 001411 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 231 if binary_card.n_fields < config_deck_data_$Config_card_min_specifiable_fields (card_type) then call error (Some_required_fields_were_not_supplied, Some_required_fields_were_not_supplied_text, error_flagged (Some_required_fields_were_not_supplied)); 001412 aa 6 00256 3735 20 epp7 pr6|174,* 001413 aa 7 00004 3715 20 epp5 pr7|4,* 001414 aa 5 00017 2361 00 ldq pr5|15 binary_card.n_fields 001415 aa 0 00430 3771 00 anaq pr0|280 = 000000000000 000000000017 001416 aa 6 01121 7561 00 stq pr6|593 binary_card.n_fields 001417 aa 6 00264 7271 00 lxl7 pr6|180 card_type 001420 aa 6 00044 3701 20 epp4 pr6|36,* 001421 la 4 00036 3535 20 epp3 pr4|30,* 001422 aa 3 77777 1161 17 cmpq pr3|-1,7 config_deck_data_$Config_card_min_specifiable_fields 001423 aa 000023 6050 04 tpl 19,ic 001446 001424 aa 776622 3520 04 epp2 -622,ic 000246 = 000000000011 001425 aa 6 01102 2521 00 spri2 pr6|578 001426 aa 776425 3520 04 epp2 -747,ic 000053 = 136133136073 001427 aa 6 01104 2521 00 spri2 pr6|580 001430 aa 000011 7260 07 lxl6 9,dl 001431 aa 6 00224 3521 16 epp2 pr6|148,6 error_flagged 001432 aa 6 01106 2521 00 spri2 pr6|582 001433 aa 776612 3520 04 epp2 -630,ic 000245 = 404000000021 001434 aa 6 01112 2521 00 spri2 pr6|586 001435 aa 776571 3520 04 epp2 -647,ic 000226 = 526000000056 001436 aa 6 01114 2521 00 spri2 pr6|588 001437 aa 776603 3520 04 epp2 -637,ic 000242 = 514000000001 001440 aa 6 01116 2521 00 spri2 pr6|590 001441 aa 6 01100 6211 00 eax1 pr6|576 001442 aa 014000 4310 07 fld 6144,dl 001443 aa 000632 3520 04 epp2 410,ic 002275 = 000320627000 001444 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc 001445 aa 000032 7100 04 tra 26,ic 001477 STATEMENT 1 ON LINE 233 else if config_deck_data_$Config_card_group_length (card_type) > 0 then if mod (binary_card.n_fields - config_deck_data_$Config_card_min_specifiable_fields (card_type), config_deck_data_$Config_card_group_length (card_type)) ^= 0 then /* card ends in repeating groups but last group was not filled */ call error (Some_required_fields_were_not_supplied, Some_required_fields_were_not_supplied_text, error_flagged (Some_required_fields_were_not_supplied)); 001446 la 4 00034 3515 20 epp1 pr4|28,* 001447 aa 1 77777 2361 17 ldq pr1|-1,7 config_deck_data_$Config_card_group_length 001450 aa 000027 6044 04 tmoz 23,ic 001477 001451 aa 6 01121 2361 00 ldq pr6|593 binary_card.n_fields 001452 aa 3 77777 1761 17 sbq pr3|-1,7 config_deck_data_$Config_card_min_specifiable_fields 001453 aa 1 77777 3521 17 epp2 pr1|-1,7 config_deck_data_$Config_card_group_length 001454 aa 0 00704 7001 00 tsx0 pr0|452 mdfx1 001455 aa 000022 6000 04 tze 18,ic 001477 001456 aa 776570 3520 04 epp2 -648,ic 000246 = 000000000011 001457 aa 6 01102 2521 00 spri2 pr6|578 001460 aa 776373 3520 04 epp2 -773,ic 000053 = 136133136073 001461 aa 6 01104 2521 00 spri2 pr6|580 001462 aa 000011 7260 07 lxl6 9,dl 001463 aa 6 00224 3521 16 epp2 pr6|148,6 error_flagged 001464 aa 6 01106 2521 00 spri2 pr6|582 001465 aa 776560 3520 04 epp2 -656,ic 000245 = 404000000021 001466 aa 6 01112 2521 00 spri2 pr6|586 001467 aa 776537 3520 04 epp2 -673,ic 000226 = 526000000056 001470 aa 6 01114 2521 00 spri2 pr6|588 001471 aa 776551 3520 04 epp2 -663,ic 000242 = 514000000001 001472 aa 6 01116 2521 00 spri2 pr6|590 001473 aa 6 01100 6211 00 eax1 pr6|576 001474 aa 014000 4310 07 fld 6144,dl 001475 aa 000600 3520 04 epp2 384,ic 002275 = 000320627000 001476 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc STATEMENT 1 ON LINE 238 return; 001477 aa 6 00254 6101 00 rtcd pr6|172 STATEMENT 1 ON LINE 418 end; BEGIN PROCEDURE card_matches ENTRY TO card_matches STATEMENT 1 ON LINE 240 card_matches: proc () returns (bit (1) aligned); 001500 aa 6 00660 6501 00 spri4 pr6|432 001501 aa 6 00662 2521 00 spri2 pr6|434 STATEMENT 1 ON LINE 246 if card_name ^= Config_card_name (card_type) then return ("0"b); 001502 aa 6 00263 2351 00 lda pr6|179 card_name 001503 aa 6 00264 7271 00 lxl7 pr6|180 card_type 001504 aa 6 00077 1151 17 cmpa pr6|63,7 Config_card_name 001505 aa 000003 6000 04 tze 3,ic 001510 001506 aa 2 00002 4501 20 stz pr2|2,* 001507 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 247 if length (config_deck_data_$Config_card_subname (card_type)) = 0 then return ("1"b); 001510 aa 6 00264 2361 00 ldq pr6|180 card_type 001511 aa 000001 7360 00 qls 1 001512 aa 6 01146 7561 00 stq pr6|614 001513 aa 6 00044 3701 20 epp4 pr6|36,* 001514 la 4 00044 3735 20 epp7 pr4|36,* 001515 aa 7 77776 2361 06 ldq pr7|-2,ql config_deck_data_$Config_card_subname 001516 aa 000004 6010 04 tnz 4,ic 001522 001517 aa 400000 2350 03 lda 131072,du 001520 aa 2 00002 7551 20 sta pr2|2,* 001521 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 248 do field = 1 to labeled_fields.number; 001522 aa 6 00270 2361 00 ldq pr6|184 labeled_fields.number 001523 aa 6 00667 7561 00 stq pr6|439 001524 aa 000001 2360 07 ldq 1,dl 001525 aa 6 00666 7561 00 stq pr6|438 field 001526 aa 6 00666 2361 00 ldq pr6|438 field 001527 aa 6 00667 1161 00 cmpq pr6|439 001530 aa 000046 6054 04 tpnz 38,ic 001576 STATEMENT 1 ON LINE 249 if labeled_fields.label (field) = config_deck_data_$Config_card_field_name (card_type, 1) then /* right label */ if index (labeled_fields.value (field), config_deck_data_$Config_card_subname (card_type)) = 1 then return ("1"b); 001531 aa 000012 4020 07 mpy 10,dl 001532 aa 000000 6270 06 eax7 0,ql 001533 aa 6 00264 2361 00 ldq pr6|180 card_type 001534 aa 000070 4020 07 mpy 56,dl 001535 aa 6 01147 7561 00 stq pr6|615 001536 aa 6 00260 3735 17 epp7 pr6|176,7 labeled_fields.label 001537 aa 6 00044 3701 20 epp4 pr6|36,* 001540 la 4 00030 3715 20 epp5 pr4|24,* 001541 aa 5 77711 3715 06 epp5 pr5|-55,ql config_deck_data_$Config_card_field_name 001542 aa 7 77777 7261 00 lxl6 pr7|-1 labeled_fields.label 001543 aa 5 77777 7251 00 lxl5 pr5|-1 config_deck_data_$Config_card_field_name 001544 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 001545 aa 7 00000 00 0016 desc9a pr7|0,x6 labeled_fields.label 001546 aa 5 00000 00 0015 desc9a pr5|0,x5 config_deck_data_$Config_card_field_name 001547 aa 6 01147 7471 00 stx7 pr6|615 001550 aa 000024 6010 04 tnz 20,ic 001574 001551 aa 6 00264 2361 00 ldq pr6|180 card_type 001552 aa 000001 7360 00 qls 1 001553 aa 000000 6260 06 eax6 0,ql 001554 aa 6 00264 2361 17 ldq pr6|180,7 labeled_fields.value 001555 aa 6 00265 3521 17 epp2 pr6|181,7 labeled_fields.value 001556 aa 0 01227 7001 00 tsx0 pr0|663 set_chars_eis 001557 la 4 00044 3535 20 epp3 pr4|36,* 001560 aa 3 77776 2361 16 ldq pr3|-2,6 config_deck_data_$Config_card_subname 001561 aa 3 77777 3521 16 epp2 pr3|-1,6 config_deck_data_$Config_card_subname 001562 aa 0 01231 7001 00 tsx0 pr0|665 index_chars_eis 001563 aa 000001 1160 07 cmpq 1,dl 001564 aa 000005 6010 04 tnz 5,ic 001571 001565 aa 400000 2350 03 lda 131072,du 001566 aa 6 00662 3515 20 epp1 pr6|434,* 001567 aa 1 00002 7551 20 sta pr1|2,* 001570 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 252 else return ("0"b); 001571 aa 6 00662 3515 20 epp1 pr6|434,* 001572 aa 1 00002 4501 20 stz pr1|2,* 001573 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 253 end; 001574 aa 6 00666 0541 00 aos pr6|438 field 001575 aa 777731 7100 04 tra -39,ic 001526 STATEMENT 1 ON LINE 255 if unlabeled_fields.number > 1 then if index (unlabeled_fields.value (2), config_deck_data_$Config_card_subname (card_type)) = 1 then return ("1"b); 001576 aa 6 00532 2361 00 ldq pr6|346 unlabeled_fields.number 001577 aa 000001 1160 07 cmpq 1,dl 001600 aa 000025 6044 04 tmoz 21,ic 001625 001601 aa 6 00264 2361 00 ldq pr6|180 card_type 001602 aa 000001 7360 00 qls 1 001603 aa 000000 6270 06 eax7 0,ql 001604 aa 6 00540 2361 00 ldq pr6|352 unlabeled_fields.value 001605 aa 6 00541 3521 00 epp2 pr6|353 unlabeled_fields.value 001606 aa 0 01227 7001 00 tsx0 pr0|663 set_chars_eis 001607 aa 6 00044 3701 20 epp4 pr6|36,* 001610 la 4 00044 3735 20 epp7 pr4|36,* 001611 aa 7 77776 2361 17 ldq pr7|-2,7 config_deck_data_$Config_card_subname 001612 aa 7 77777 3521 17 epp2 pr7|-1,7 config_deck_data_$Config_card_subname 001613 aa 0 01231 7001 00 tsx0 pr0|665 index_chars_eis 001614 aa 000001 1160 07 cmpq 1,dl 001615 aa 000005 6010 04 tnz 5,ic 001622 001616 aa 400000 2350 03 lda 131072,du 001617 aa 6 00662 3715 20 epp5 pr6|434,* 001620 aa 5 00002 7551 20 sta pr5|2,* 001621 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 258 else return ("0"b); 001622 aa 6 00662 3715 20 epp5 pr6|434,* 001623 aa 5 00002 4501 20 stz pr5|2,* 001624 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 259 else return ("0"b); 001625 aa 6 00662 3735 20 epp7 pr6|434,* 001626 aa 7 00002 4501 20 stz pr7|2,* 001627 aa 6 00660 6101 00 rtcd pr6|432 STATEMENT 1 ON LINE 260 end; END PROCEDURE card_matches BEGIN PROCEDURE cv_value ENTRY TO cv_value STATEMENT 1 ON LINE 262 cv_value: proc (value, type); 001630 da 000241200000 001631 aa 000160 6270 00 eax7 112 001632 aa 7 00034 3521 20 epp2 pr7|28,* 001633 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 001634 aa 000004000000 001635 aa 000000000000 STATEMENT 1 ON LINE 272 if type = CONFIG_OCTAL_TYPE | type = NO_TYPE then do; 001636 aa 6 00032 3735 20 epp7 pr6|26,* 001637 aa 7 00004 3715 20 epp5 pr7|4,* 001640 aa 003 100 060 500 csl (pr),(pr),fill(0),bool(move) 001641 aa 5 00000 00 0002 descb pr5|0,2 type 001642 aa 6 00103 00 0044 descb pr6|67,36 type 001643 aa 6 00103 2351 00 lda pr6|67 type 001644 aa 000003 6000 04 tze 3,ic 001647 001645 aa 600000 1150 03 cmpa 196608,du 001646 aa 000246 6010 04 tnz 166,ic 002114 STATEMENT 1 ON LINE 273 if substr (value, length (value), 1) = "." then do; 001647 aa 7 00002 3535 20 epp3 pr7|2,* 001650 aa 3 77777 7271 00 lxl7 pr3|-1 value 001651 aa 040 004 106 517 cmpc (pr,x7),(ic),fill(040) 001652 aa 3 77777 60 0001 desc9a pr3|-1(3),1 value 001653 aa 002430 00 0001 desc9a 1304,1 004301 = 056000000000 001654 aa 000120 6010 04 tnz 80,ic 001774 STATEMENT 1 ON LINE 274 numeric = cv_dec_check_ (substr (value, 1, length (value) - 1), code); 001655 aa 3 77777 2361 00 ldq pr3|-1 value 001656 aa 000001 1760 07 sbq 1,dl 001657 aa 6 00105 7561 00 stq pr6|69 001660 aa 524000 2760 03 orq 174080,du 001661 aa 6 00104 7561 00 stq pr6|68 001662 aa 6 00105 2361 00 ldq pr6|69 001663 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 001664 aa 6 00112 2521 00 spri2 pr6|74 001665 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 001666 aa 3 00000 00 0006 desc9a pr3|0,ql value 001667 aa 2 00000 00 0006 desc9a pr2|0,ql 001670 aa 6 00100 3521 00 epp2 pr6|64 code 001671 aa 6 00114 2521 00 spri2 pr6|76 001672 aa 6 00101 3521 00 epp2 pr6|65 numeric 001673 aa 6 00116 2521 00 spri2 pr6|78 001674 aa 6 00104 3521 00 epp2 pr6|68 001675 aa 6 00120 2521 00 spri2 pr6|80 001676 aa 776351 3520 04 epp2 -791,ic 000247 = 404000000043 001677 aa 6 00122 2521 00 spri2 pr6|82 001700 aa 6 00124 2521 00 spri2 pr6|84 001701 aa 6 00110 6211 00 eax1 pr6|72 001702 aa 014000 4310 07 fld 6144,dl 001703 la 4 00012 3521 20 epp2 pr4|10,* cv_dec_check_ 001704 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 275 if code ^= 0 then do; 001705 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 001706 aa 6 00100 2361 00 ldq pr6|64 code 001707 aa 000051 6000 04 tze 41,ic 001760 STATEMENT 1 ON LINE 276 if type = NO_TYPE then go to is_it_octal; 001710 aa 6 00032 3735 20 epp7 pr6|26,* 001711 aa 7 00004 3715 20 epp5 pr7|4,* 001712 aa 000 004 066 500 cmpb (pr),(ic),fill(0) 001713 aa 5 00000 00 0002 descb pr5|0,2 type 001714 aa 776066 00 0002 descb -970,2 000000 = 600000000000 001715 aa 000057 6000 04 tze 47,ic 001774 STATEMENT 1 ON LINE 277 call error (Bad_decimal_value_a, Bad_decimal_value_a_text, error_flagged (Bad_decimal_value_a), value); 001716 aa 776334 3520 04 epp2 -804,ic 000252 = 000000000001 001717 aa 6 00130 2521 00 spri2 pr6|88 001720 aa 776254 3520 04 epp2 -852,ic 000174 = 136133042136 001721 aa 6 00132 2521 00 spri2 pr6|90 001722 aa 000001 7270 07 lxl7 1,dl 001723 aa 6 00040 3535 20 epp3 pr6|32,* 001724 aa 3 00224 3521 17 epp2 pr3|148,7 error_flagged 001725 aa 6 00134 2521 00 spri2 pr6|92 001726 aa 7 00002 3521 20 epp2 pr7|2,* value 001727 aa 6 00136 2521 00 spri2 pr6|94 001730 aa 776315 3520 04 epp2 -819,ic 000245 = 404000000021 001731 aa 6 00142 2521 00 spri2 pr6|98 001732 aa 776271 3520 04 epp2 -839,ic 000223 = 526000000044 001733 aa 6 00144 2521 00 spri2 pr6|100 001734 aa 776306 3520 04 epp2 -826,ic 000242 = 514000000001 001735 aa 6 00146 2521 00 spri2 pr6|102 001736 aa 776273 3520 04 epp2 -837,ic 000231 = 530000000020 001737 aa 6 00150 2521 00 spri2 pr6|104 001740 aa 000001 7270 07 lxl7 1,dl 001741 aa 6 00126 6211 00 eax1 pr6|86 001742 aa 020000 4310 07 fld 8192,dl 001743 aa 000332 3520 04 epp2 218,ic 002275 = 000320627000 001744 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 278 call cv_value (value, NO_TYPE); 001745 aa 6 00032 3735 20 epp7 pr6|26,* 001746 aa 7 00002 3521 20 epp2 pr7|2,* value 001747 aa 6 00112 2521 00 spri2 pr6|74 001750 aa 776030 3520 04 epp2 -1000,ic 000000 = 600000000000 001751 aa 6 00114 2521 00 spri2 pr6|76 001752 aa 000001 7270 07 lxl7 1,dl 001753 aa 6 00110 6211 00 eax1 pr6|72 001754 aa 010000 4310 07 fld 4096,dl 001755 aa 777654 3520 04 epp2 -84,ic 001631 = 000160627000 001756 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 279 end; 001757 aa 000314 7100 04 tra 204,ic 002273 STATEMENT 1 ON LINE 280 else do; STATEMENT 1 ON LINE 281 unspec (binary_card.data_field (binary_field_num)) = unspec (numeric); 001760 aa 6 00101 2351 00 lda pr6|65 001761 aa 6 00040 3735 20 epp7 pr6|32,* 001762 aa 7 00262 7271 00 lxl7 pr7|178 binary_field_num 001763 aa 7 00256 3715 20 epp5 pr7|174,* 001764 aa 5 00004 7551 77 sta pr5|4,*7 STATEMENT 1 ON LINE 282 binary_card.field_type (binary_field_num) = CONFIG_DECIMAL_TYPE; 001765 aa 7 00262 2361 00 ldq pr7|178 binary_field_num 001766 aa 000001 7360 00 qls 1 001767 aa 5 00004 3535 20 epp3 pr5|4,* 001770 aa 403 106 060 400 csl (),(pr,ql),fill(1),bool(move) 001771 aa 000000 00 0000 descb 0,0 001772 aa 3 00016 67 0002 descb pr3|14(34),2 binary_card.field_type STATEMENT 1 ON LINE 283 end; STATEMENT 1 ON LINE 284 end; 001773 aa 000300 7100 04 tra 192,ic 002273 STATEMENT 1 ON LINE 285 else do; STATEMENT 1 ON LINE 286 is_it_octal: numeric = cv_oct_check_ ((value), code); 001774 aa 7 00002 3535 20 epp3 pr7|2,* 001775 aa 3 77777 2361 00 ldq pr3|-1 value 001776 aa 524000 2760 03 orq 174080,du 001777 aa 6 00104 7561 00 stq pr6|68 002000 aa 3 77777 2361 00 ldq pr3|-1 value 002001 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 002002 aa 6 00112 2521 00 spri2 pr6|74 002003 aa 3 77777 7271 00 lxl7 pr3|-1 value 002004 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002005 aa 3 00000 00 0017 desc9a pr3|0,x7 value 002006 aa 2 00000 00 0006 desc9a pr2|0,ql 002007 aa 6 00100 3521 00 epp2 pr6|64 code 002010 aa 6 00114 2521 00 spri2 pr6|76 002011 aa 6 00101 3521 00 epp2 pr6|65 numeric 002012 aa 6 00116 2521 00 spri2 pr6|78 002013 aa 6 00104 3521 00 epp2 pr6|68 002014 aa 6 00120 2521 00 spri2 pr6|80 002015 aa 776232 3520 04 epp2 -870,ic 000247 = 404000000043 002016 aa 6 00122 2521 00 spri2 pr6|82 002017 aa 6 00124 2521 00 spri2 pr6|84 002020 aa 6 00110 6211 00 eax1 pr6|72 002021 aa 014000 4310 07 fld 6144,dl 002022 aa 6 00044 3701 20 epp4 pr6|36,* 002023 la 4 00014 3521 20 epp2 pr4|12,* cv_oct_check_ 002024 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 288 if code ^= 0 then do; 002025 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 002026 aa 6 00100 2361 00 ldq pr6|64 code 002027 aa 000051 6000 04 tze 41,ic 002100 STATEMENT 1 ON LINE 289 if type = NO_TYPE then go to is_it_a_char; 002030 aa 6 00032 3735 20 epp7 pr6|26,* 002031 aa 7 00004 3715 20 epp5 pr7|4,* 002032 aa 000 004 066 500 cmpb (pr),(ic),fill(0) 002033 aa 5 00000 00 0002 descb pr5|0,2 type 002034 aa 775746 00 0002 descb -1050,2 000000 = 600000000000 002035 aa 000061 6000 04 tze 49,ic 002116 STATEMENT 1 ON LINE 290 call error (Bad_octal_value_a, Bad_octal_value_a_text, error_flagged (Bad_octal_value_a), value); 002036 aa 776212 3520 04 epp2 -886,ic 000250 = 000000000002 002037 aa 6 00130 2521 00 spri2 pr6|88 002040 aa 776123 3520 04 epp2 -941,ic 000163 = 136133042136 002041 aa 6 00132 2521 00 spri2 pr6|90 002042 aa 000002 7270 07 lxl7 2,dl 002043 aa 6 00040 3535 20 epp3 pr6|32,* 002044 aa 3 00224 3521 17 epp2 pr3|148,7 error_flagged 002045 aa 6 00134 2521 00 spri2 pr6|92 002046 aa 7 00002 3521 20 epp2 pr7|2,* value 002047 aa 6 00136 2521 00 spri2 pr6|94 002050 aa 776175 3520 04 epp2 -899,ic 000245 = 404000000021 002051 aa 6 00142 2521 00 spri2 pr6|98 002052 aa 776150 3520 04 epp2 -920,ic 000222 = 526000000042 002053 aa 6 00144 2521 00 spri2 pr6|100 002054 aa 776166 3520 04 epp2 -906,ic 000242 = 514000000001 002055 aa 6 00146 2521 00 spri2 pr6|102 002056 aa 776153 3520 04 epp2 -917,ic 000231 = 530000000020 002057 aa 6 00150 2521 00 spri2 pr6|104 002060 aa 000001 7270 07 lxl7 1,dl 002061 aa 6 00126 6211 00 eax1 pr6|86 002062 aa 020000 4310 07 fld 8192,dl 002063 aa 000212 3520 04 epp2 138,ic 002275 = 000320627000 002064 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 291 call cv_value (value, NO_TYPE); 002065 aa 6 00032 3735 20 epp7 pr6|26,* 002066 aa 7 00002 3521 20 epp2 pr7|2,* value 002067 aa 6 00112 2521 00 spri2 pr6|74 002070 aa 775710 3520 04 epp2 -1080,ic 000000 = 600000000000 002071 aa 6 00114 2521 00 spri2 pr6|76 002072 aa 000001 7270 07 lxl7 1,dl 002073 aa 6 00110 6211 00 eax1 pr6|72 002074 aa 010000 4310 07 fld 4096,dl 002075 aa 777534 3520 04 epp2 -164,ic 001631 = 000160627000 002076 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 292 end; 002077 aa 000174 7100 04 tra 124,ic 002273 STATEMENT 1 ON LINE 293 else do; STATEMENT 1 ON LINE 294 unspec (binary_card.data_field (binary_field_num)) = unspec (numeric); 002100 aa 6 00101 2351 00 lda pr6|65 002101 aa 6 00040 3735 20 epp7 pr6|32,* 002102 aa 7 00262 7271 00 lxl7 pr7|178 binary_field_num 002103 aa 7 00256 3715 20 epp5 pr7|174,* 002104 aa 5 00004 7551 77 sta pr5|4,*7 STATEMENT 1 ON LINE 295 binary_card.field_type (binary_field_num) = CONFIG_OCTAL_TYPE; 002105 aa 7 00262 2361 00 ldq pr7|178 binary_field_num 002106 aa 000001 7360 00 qls 1 002107 aa 5 00004 3535 20 epp3 pr5|4,* 002110 aa 003 106 060 400 csl (),(pr,ql),fill(0),bool(move) 002111 aa 000000 00 0000 descb 0,0 002112 aa 3 00016 67 0002 descb pr3|14(34),2 binary_card.field_type STATEMENT 1 ON LINE 296 end; STATEMENT 1 ON LINE 297 end; STATEMENT 1 ON LINE 298 end; 002113 aa 000160 7100 04 tra 112,ic 002273 STATEMENT 1 ON LINE 299 else if type = CONFIG_SINGLE_CHAR_TYPE then do; 002114 aa 200000 1150 03 cmpa 65536,du 002115 aa 000100 6010 04 tnz 64,ic 002215 STATEMENT 1 ON LINE 300 is_it_a_char: /* maybe it's a single char field */ numeric = index ("abcdefgh", value); 002116 aa 000010 2360 07 ldq 8,dl 002117 aa 776135 3520 04 epp2 -931,ic 000254 = 141142143144 002120 aa 0 01227 7001 00 tsx0 pr0|663 set_chars_eis 002121 aa 7 00002 3535 20 epp3 pr7|2,* 002122 aa 3 77777 2361 00 ldq pr3|-1 value 002123 aa 7 00002 3521 20 epp2 pr7|2,* value 002124 aa 0 01231 7001 00 tsx0 pr0|665 index_chars_eis 002125 aa 6 00101 7561 00 stq pr6|65 numeric STATEMENT 1 ON LINE 302 if length (value) ^= 1 | numeric = 0 then do; 002126 aa 3 77777 2361 00 ldq pr3|-1 value 002127 aa 000001 1160 07 cmpq 1,dl 002130 aa 000003 6010 04 tnz 3,ic 002133 002131 aa 6 00101 2361 00 ldq pr6|65 numeric 002132 aa 000047 6010 04 tnz 39,ic 002201 STATEMENT 1 ON LINE 303 if type = NO_TYPE then go to is_it_a_string; 002133 aa 000 004 066 500 cmpb (pr),(ic),fill(0) 002134 aa 5 00000 00 0002 descb pr5|0,2 type 002135 aa 775645 00 0002 descb -1115,2 000000 = 600000000000 002136 aa 000061 6000 04 tze 49,ic 002217 STATEMENT 1 ON LINE 304 call error (Value_is_not_a_valid_single_character_a, Value_is_not_a_valid_single_character_a_text, error_flagged (Value_is_not_a_valid_single_character_a), value); 002137 aa 776101 3520 04 epp2 -959,ic 000240 = 000000000014 002140 aa 6 00130 2521 00 spri2 pr6|88 002141 aa 775643 3520 04 epp2 -1117,ic 000004 = 136133042136 002142 aa 6 00132 2521 00 spri2 pr6|90 002143 aa 000014 7270 07 lxl7 12,dl 002144 aa 6 00040 3515 20 epp1 pr6|32,* 002145 aa 1 00224 3521 17 epp2 pr1|148,7 error_flagged 002146 aa 6 00134 2521 00 spri2 pr6|92 002147 aa 7 00002 3521 20 epp2 pr7|2,* value 002150 aa 6 00136 2521 00 spri2 pr6|94 002151 aa 776074 3520 04 epp2 -964,ic 000245 = 404000000021 002152 aa 6 00142 2521 00 spri2 pr6|98 002153 aa 776046 3520 04 epp2 -986,ic 000221 = 526000000070 002154 aa 6 00144 2521 00 spri2 pr6|100 002155 aa 776065 3520 04 epp2 -971,ic 000242 = 514000000001 002156 aa 6 00146 2521 00 spri2 pr6|102 002157 aa 776052 3520 04 epp2 -982,ic 000231 = 530000000020 002160 aa 6 00150 2521 00 spri2 pr6|104 002161 aa 000001 7270 07 lxl7 1,dl 002162 aa 6 00126 6211 00 eax1 pr6|86 002163 aa 020000 4310 07 fld 8192,dl 002164 aa 000111 3520 04 epp2 73,ic 002275 = 000320627000 002165 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 305 call cv_value (value, NO_TYPE); 002166 aa 6 00032 3735 20 epp7 pr6|26,* 002167 aa 7 00002 3521 20 epp2 pr7|2,* value 002170 aa 6 00112 2521 00 spri2 pr6|74 002171 aa 775607 3520 04 epp2 -1145,ic 000000 = 600000000000 002172 aa 6 00114 2521 00 spri2 pr6|76 002173 aa 000001 7270 07 lxl7 1,dl 002174 aa 6 00110 6211 00 eax1 pr6|72 002175 aa 010000 4310 07 fld 4096,dl 002176 aa 777433 3520 04 epp2 -229,ic 001631 = 000160627000 002177 aa 0 00627 7001 00 tsx0 pr0|407 call_int_other STATEMENT 1 ON LINE 306 end; 002200 aa 000073 7100 04 tra 59,ic 002273 STATEMENT 1 ON LINE 307 else do; STATEMENT 1 ON LINE 308 unspec (binary_card.data_field (binary_field_num)) = unspec (numeric); 002201 aa 6 00101 2351 00 lda pr6|65 002202 aa 6 00040 3515 20 epp1 pr6|32,* 002203 aa 1 00262 7271 00 lxl7 pr1|178 binary_field_num 002204 aa 1 00256 3715 20 epp5 pr1|174,* 002205 aa 5 00004 7551 77 sta pr5|4,*7 STATEMENT 1 ON LINE 309 binary_card.field_type (binary_field_num) = CONFIG_SINGLE_CHAR_TYPE; 002206 aa 1 00262 2361 00 ldq pr1|178 binary_field_num 002207 aa 000001 7360 00 qls 1 002210 aa 5 00004 3535 20 epp3 pr5|4,* 002211 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 002212 aa 002065 00 0002 descb 1077,2 004276 = 200000000000 002213 aa 3 00016 67 0002 descb pr3|14(34),2 binary_card.field_type STATEMENT 1 ON LINE 310 end; STATEMENT 1 ON LINE 311 end; 002214 aa 000057 7100 04 tra 47,ic 002273 STATEMENT 1 ON LINE 312 else if type = CONFIG_STRING_TYPE then do; 002215 aa 400000 1150 03 cmpa 131072,du 002216 aa 000055 6010 04 tnz 45,ic 002273 STATEMENT 1 ON LINE 313 is_it_a_string: /* last hope, a char string */ if length (value) > 4 then call error (String_is_more_than_4_characters_a, String_is_more_than_4_characters_a_text, error_flagged (String_is_more_than_4_characters_a), value); 002217 aa 7 00002 3535 20 epp3 pr7|2,* 002220 aa 3 77777 2361 00 ldq pr3|-1 value 002221 aa 000004 1160 07 cmpq 4,dl 002222 aa 000030 6044 04 tmoz 24,ic 002252 002223 aa 776014 3520 04 epp2 -1012,ic 000237 = 000000000012 002224 aa 6 00130 2521 00 spri2 pr6|88 002225 aa 775611 3520 04 epp2 -1143,ic 000036 = 136133042136 002226 aa 6 00132 2521 00 spri2 pr6|90 002227 aa 000012 7270 07 lxl7 10,dl 002230 aa 6 00040 3515 20 epp1 pr6|32,* 002231 aa 1 00224 3521 17 epp2 pr1|148,7 error_flagged 002232 aa 6 00134 2521 00 spri2 pr6|92 002233 aa 7 00002 3521 20 epp2 pr7|2,* value 002234 aa 6 00136 2521 00 spri2 pr6|94 002235 aa 776010 3520 04 epp2 -1016,ic 000245 = 404000000021 002236 aa 6 00142 2521 00 spri2 pr6|98 002237 aa 775761 3520 04 epp2 -1039,ic 000220 = 526000000063 002240 aa 6 00144 2521 00 spri2 pr6|100 002241 aa 776001 3520 04 epp2 -1023,ic 000242 = 514000000001 002242 aa 6 00146 2521 00 spri2 pr6|102 002243 aa 775766 3520 04 epp2 -1034,ic 000231 = 530000000020 002244 aa 6 00150 2521 00 spri2 pr6|104 002245 aa 000001 7270 07 lxl7 1,dl 002246 aa 6 00126 6211 00 eax1 pr6|86 002247 aa 020000 4310 07 fld 8192,dl 002250 aa 000025 3520 04 epp2 21,ic 002275 = 000320627000 002251 aa 0 00626 7001 00 tsx0 pr0|406 call_int_other_desc STATEMENT 1 ON LINE 316 string = value; 002252 aa 6 00032 3735 20 epp7 pr6|26,* 002253 aa 7 00002 3715 20 epp5 pr7|2,* 002254 aa 5 77777 7271 00 lxl7 pr5|-1 value 002255 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 002256 aa 5 00000 00 0017 desc9a pr5|0,x7 value 002257 aa 6 00102 00 0004 desc9a pr6|66,4 string STATEMENT 1 ON LINE 317 unspec (binary_card.data_field (binary_field_num)) = unspec (string); 002260 aa 6 00102 2351 00 lda pr6|66 002261 aa 6 00040 3535 20 epp3 pr6|32,* 002262 aa 3 00262 7271 00 lxl7 pr3|178 binary_field_num 002263 aa 3 00256 3515 20 epp1 pr3|174,* 002264 aa 1 00004 7551 77 sta pr1|4,*7 STATEMENT 1 ON LINE 318 binary_card.field_type (binary_field_num) = CONFIG_STRING_TYPE; 002265 aa 3 00262 2361 00 ldq pr3|178 binary_field_num 002266 aa 000001 7360 00 qls 1 002267 aa 1 00004 3715 20 epp5 pr1|4,* 002270 aa 003 106 060 404 csl (ic),(pr,ql),fill(0),bool(move) 002271 aa 002005 00 0002 descb 1029,2 004275 = 400000000000 002272 aa 5 00016 67 0002 descb pr5|14(34),2 binary_card.field_type STATEMENT 1 ON LINE 319 end; STATEMENT 1 ON LINE 320 return; 002273 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 321 end; END PROCEDURE cv_value BEGIN PROCEDURE error ENTRY TO error STATEMENT 1 ON LINE 323 error: proc options (variable); 002274 da 000246240000 002275 aa 000320 6270 00 eax7 208 002276 aa 7 00034 3521 20 epp2 pr7|28,* 002277 aa 2 01047 2721 00 tsp2 pr2|551 int_entry 002300 aa 000000000000 002301 aa 000000000000 STATEMENT 1 ON LINE 334 call cu_$arg_list_ptr (arg_list_ptr); 002302 aa 6 00100 3521 00 epp2 pr6|64 arg_list_ptr 002303 aa 6 00212 2521 00 spri2 pr6|138 002304 aa 6 00210 6211 00 eax1 pr6|136 002305 aa 004000 4310 07 fld 2048,dl 002306 la 4 00010 3521 20 epp2 pr4|8,* cu_$arg_list_ptr 002307 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 335 arg1_ptr = arg_list_ptr -> arg_list.arg_ptrs (1); 002310 aa 6 00100 3735 20 epp7 pr6|64,* arg_list_ptr 002311 aa 7 00002 3735 20 epp7 pr7|2,* arg_list.arg_ptrs 002312 aa 6 00102 6535 00 spri7 pr6|66 arg1_ptr STATEMENT 1 ON LINE 336 arg3_ptr = arg_list_ptr -> arg_list.arg_ptrs (3); 002313 aa 6 00100 3715 20 epp5 pr6|64,* arg_list_ptr 002314 aa 5 00006 3715 20 epp5 pr5|6,* arg_list.arg_ptrs 002315 aa 6 00104 6515 00 spri5 pr6|68 arg3_ptr STATEMENT 1 ON LINE 337 if ^silent then do; 002316 aa 6 00040 3535 20 epp3 pr6|32,* 002317 aa 3 00241 2351 00 lda pr3|161 silent 002320 aa 000141 6010 04 tnz 97,ic 002461 STATEMENT 1 ON LINE 338 call ioa_ ("^/WARNING ^d ON LINE ^d", error_num, output_card_num); 002321 aa 775743 2370 04 ldaq -1053,ic 000264 = 136057127101 122116111116 002322 aa 6 00214 7571 00 staq pr6|140 002323 aa 775743 2370 04 ldaq -1053,ic 000266 = 107040136144 040117116040 002324 aa 6 00216 7571 00 staq pr6|142 002325 aa 775743 2370 04 ldaq -1053,ic 000270 = 114111116105 040136144000 002326 aa 6 00220 7571 00 staq pr6|144 002327 aa 6 00214 3521 00 epp2 pr6|140 002330 aa 6 00224 2521 00 spri2 pr6|148 002331 aa 7 00000 3521 00 epp2 pr7|0 error_num 002332 aa 6 00226 2521 00 spri2 pr6|150 002333 aa 3 00256 3515 20 epp1 pr3|174,* 002334 aa 1 00006 3521 20 epp2 pr1|6,* output_card_num 002335 aa 6 00230 2521 00 spri2 pr6|152 002336 aa 775661 3520 04 epp2 -1103,ic 000217 = 524000000027 002337 aa 6 00232 2521 00 spri2 pr6|154 002340 aa 775705 3520 04 epp2 -1083,ic 000245 = 404000000021 002341 aa 6 00234 2521 00 spri2 pr6|156 002342 aa 6 00236 2521 00 spri2 pr6|158 002343 aa 6 00222 6211 00 eax1 pr6|146 002344 aa 014000 4310 07 fld 6144,dl 002345 aa 6 00044 3701 20 epp4 pr6|36,* 002346 la 4 00016 3521 20 epp2 pr4|14,* ioa_ 002347 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 339 call ioa_$general_rs (arg_list_ptr, 2, 3, message_buffer, message_len, "0"b, "0"b); 002350 aa 000002 2360 07 ldq 2,dl 002351 aa 6 00207 7561 00 stq pr6|135 002352 aa 000003 2360 07 ldq 3,dl 002353 aa 6 00240 7561 00 stq pr6|160 002354 aa 000000 2350 07 lda 0,dl 002355 aa 6 00241 7551 00 sta pr6|161 002356 aa 6 00242 7551 00 sta pr6|162 002357 aa 6 00100 3521 00 epp2 pr6|64 arg_list_ptr 002360 aa 6 00246 2521 00 spri2 pr6|166 002361 aa 6 00207 3521 00 epp2 pr6|135 002362 aa 6 00250 2521 00 spri2 pr6|168 002363 aa 6 00240 3521 00 epp2 pr6|160 002364 aa 6 00252 2521 00 spri2 pr6|170 002365 aa 6 00106 3521 00 epp2 pr6|70 message_buffer 002366 aa 6 00254 2521 00 spri2 pr6|172 002367 aa 6 00206 3521 00 epp2 pr6|134 message_len 002370 aa 6 00256 2521 00 spri2 pr6|174 002371 aa 6 00241 3521 00 epp2 pr6|161 002372 aa 6 00260 2521 00 spri2 pr6|176 002373 aa 6 00242 3521 00 epp2 pr6|162 002374 aa 6 00262 2521 00 spri2 pr6|178 002375 aa 775646 3520 04 epp2 -1114,ic 000243 = 464000000000 002376 aa 6 00264 2521 00 spri2 pr6|180 002377 aa 775646 3520 04 epp2 -1114,ic 000245 = 404000000021 002400 aa 6 00266 2521 00 spri2 pr6|182 002401 aa 6 00270 2521 00 spri2 pr6|184 002402 aa 775614 3520 04 epp2 -1140,ic 000216 = 526000000400 002403 aa 6 00272 2521 00 spri2 pr6|186 002404 aa 775611 3520 04 epp2 -1143,ic 000215 = 404000000025 002405 aa 6 00274 2521 00 spri2 pr6|188 002406 aa 775634 3520 04 epp2 -1124,ic 000242 = 514000000001 002407 aa 6 00276 2521 00 spri2 pr6|190 002410 aa 6 00300 2521 00 spri2 pr6|192 002411 aa 6 00244 6211 00 eax1 pr6|164 002412 aa 034000 4310 07 fld 14336,dl 002413 aa 6 00044 3701 20 epp4 pr6|36,* 002414 la 4 00020 3521 20 epp2 pr4|16,* ioa_$general_rs 002415 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 340 call ioa_$nnl (message_to_print); 002416 aa 6 00206 2361 00 ldq pr6|134 message_len 002417 aa 526000 2760 03 orq 175104,du 002420 aa 6 00242 7561 00 stq pr6|162 002421 aa 6 00106 3521 00 epp2 pr6|70 message_to_print 002422 aa 6 00216 2521 00 spri2 pr6|142 002423 aa 6 00242 3521 00 epp2 pr6|162 002424 aa 6 00220 2521 00 spri2 pr6|144 002425 aa 6 00214 6211 00 eax1 pr6|140 002426 aa 004000 4310 07 fld 2048,dl 002427 aa 6 00044 3701 20 epp4 pr6|36,* 002430 la 4 00022 3521 20 epp2 pr4|18,* ioa_$nnl 002431 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 341 if ^error_detected then call ioa_ ("SOURCE: ^a", ascii_config_card); 002432 aa 6 00040 3735 20 epp7 pr6|32,* 002433 aa 7 00256 3715 20 epp5 pr7|174,* 002434 aa 5 00010 2351 20 lda pr5|8,* error_detected 002435 aa 400000 3150 03 cana 131072,du 002436 aa 000023 6010 04 tnz 19,ic 002461 002437 aa 775622 2350 04 lda -1134,ic 000261 = 123117125122 002440 aa 775622 2360 04 ldq -1134,ic 000262 = 103105072040 002441 aa 6 00210 7571 00 staq pr6|136 002442 aa 136141 2350 03 lda 48225,du 002443 aa 6 00212 7551 00 sta pr6|138 002444 aa 6 00210 3521 00 epp2 pr6|136 002445 aa 6 00224 2521 00 spri2 pr6|148 002446 aa 5 00002 3521 20 epp2 pr5|2,* ascii_config_card 002447 aa 6 00226 2521 00 spri2 pr6|150 002450 aa 775543 3520 04 epp2 -1181,ic 000213 = 524000000012 002451 aa 6 00230 2521 00 spri2 pr6|152 002452 aa 775577 3520 04 epp2 -1153,ic 000251 = 530000000400 002453 aa 6 00232 2521 00 spri2 pr6|154 002454 aa 6 00222 6211 00 eax1 pr6|146 002455 aa 010000 4310 07 fld 4096,dl 002456 aa 6 00044 3701 20 epp4 pr6|36,* 002457 la 4 00016 3521 20 epp2 pr4|14,* ioa_ 002460 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 342 end; STATEMENT 1 ON LINE 343 error_flagged = "1"b; 002461 aa 400000 2350 03 lda 131072,du 002462 aa 6 00104 7551 20 sta pr6|68,* error_flagged STATEMENT 1 ON LINE 344 error_detected = "1"b; 002463 aa 6 00040 3735 20 epp7 pr6|32,* 002464 aa 7 00256 3715 20 epp5 pr7|174,* 002465 aa 5 00010 7551 20 sta pr5|8,* error_detected STATEMENT 1 ON LINE 345 return; 002466 aa 0 00631 7101 00 tra pr0|409 return_mac STATEMENT 1 ON LINE 346 end; END PROCEDURE error BEGIN PROCEDURE separate_config_card_fields ENTRY TO separate_config_card_fields STATEMENT 1 ON LINE 348 separate_config_card_fields: proc (input_card, a_unlabeled_fields, a_labeled_fields); 002467 aa 6 00670 6501 00 spri4 pr6|440 002470 aa 6 00672 2521 00 spri2 pr6|442 STATEMENT 1 ON LINE 359 002471 aa 2 00002 3735 20 epp7 pr2|2,* 002472 aa 7 77777 7271 00 lxl7 pr7|-1 input_card 002473 aa 040 100 100 540 mlr (pr,rl),(pr),fill(040) 002474 aa 7 00000 00 0017 desc9a pr7|0,x7 input_card 002475 aa 6 00704 00 0400 desc9a pr6|452,256 temp_card STATEMENT 1 ON LINE 364 work_card_len = length (input_card); 002476 aa 7 77777 2361 00 ldq pr7|-1 input_card 002477 aa 6 01004 7561 00 stq pr6|516 work_card_len STATEMENT 1 ON LINE 365 work_card_ptr = addr (temp_card); 002500 aa 6 00704 3715 00 epp5 pr6|452 temp_card 002501 aa 6 01006 6515 00 spri5 pr6|518 work_card_ptr STATEMENT 1 ON LINE 366 a_unlabeled_fields.number = 0; 002502 aa 2 00004 4501 20 stz pr2|4,* a_unlabeled_fields.number STATEMENT 1 ON LINE 367 a_labeled_fields.number = 0; 002503 aa 2 00006 4501 20 stz pr2|6,* a_labeled_fields.number STATEMENT 1 ON LINE 368 call pass_whitespace; 002504 aa 000206 6700 04 tsp4 134,ic 002712 STATEMENT 1 ON LINE 369 do while (work_card_len > 0); 002505 aa 000000 0110 03 nop 0,du 002506 aa 6 01004 2361 00 ldq pr6|516 work_card_len 002507 aa 000202 6044 04 tmoz 130,ic 002711 STATEMENT 1 ON LINE 372 card_pos = search (work_card, Whitespace) - 1; 002510 aa 6 01006 3735 20 epp7 pr6|518,* work_card_ptr 002511 aa 000 000 164 540 tct (pr,rl) 002512 aa 7 00000 00 0006 desc9a pr7|0,ql work_card 002513 aa 001346 0000 04 arg 742,ic 004057 = 000000000000 002514 aa 6 00056 0001 00 arg pr6|46 002515 aa 6 00056 2361 00 ldq pr6|46 002516 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002517 aa 000002 6070 04 ttf 2,ic 002521 002520 aa 000001 3360 07 lcq 1,dl 002521 aa 6 00676 7561 00 stq pr6|446 card_pos STATEMENT 1 ON LINE 373 if card_pos < 0 then card_pos = work_card_len; 002522 aa 000003 6050 04 tpl 3,ic 002525 002523 aa 6 01004 2361 00 ldq pr6|516 work_card_len 002524 aa 6 00676 7561 00 stq pr6|446 card_pos STATEMENT 1 ON LINE 374 if substr (work_card, 1, 1) = "-" then do; 002525 aa 040 004 106 500 cmpc (pr),(ic),fill(040) 002526 aa 7 00000 00 0001 desc9a pr7|0,1 work_card 002527 aa 001553 00 0001 desc9a 875,1 004300 = 055000000000 002530 aa 000127 6010 04 tnz 87,ic 002657 STATEMENT 1 ON LINE 375 label = substr (work_card, 1, card_pos); 002531 aa 000020 1160 07 cmpq 16,dl 002532 aa 000002 6040 04 tmi 2,ic 002534 002533 aa 000020 2360 07 ldq 16,dl 002534 aa 6 00677 7561 00 stq pr6|447 label 002535 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002536 aa 7 00000 00 0006 desc9a pr7|0,ql work_card 002537 aa 6 00700 00 0006 desc9a pr6|448,ql label STATEMENT 1 ON LINE 376 if verify (label, "-0123456789.") = 0 then go to unlabeled; 002540 aa 6 00677 7271 00 lxl7 pr6|447 label 002541 aa 000 000 164 540 tct (pr,rl) 002542 aa 6 00700 00 0017 desc9a pr6|448,x7 label 002543 aa 001116 0000 04 arg 590,ic 003657 = 777777777777 002544 aa 6 00056 0001 00 arg pr6|46 002545 aa 6 00056 2361 00 ldq pr6|46 002546 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002547 aa 000002 6070 04 ttf 2,ic 002551 002550 aa 000001 3360 07 lcq 1,dl 002551 aa 000001 0760 07 adq 1,dl 002552 aa 000105 6000 04 tze 69,ic 002657 STATEMENT 1 ON LINE 377 work_card_len = work_card_len - card_pos; 002553 aa 6 00676 3361 00 lcq pr6|446 card_pos 002554 aa 6 01004 0561 00 asq pr6|516 work_card_len STATEMENT 1 ON LINE 378 work_card_ptr = addcharno (work_card_ptr, card_pos); 002555 aa 6 00676 2361 00 ldq pr6|446 card_pos 002556 aa 7 00000 5005 06 a9bd pr7|0,ql 002557 aa 6 01006 6535 00 spri7 pr6|518 work_card_ptr STATEMENT 1 ON LINE 379 call pass_whitespace; 002560 aa 000132 6700 04 tsp4 90,ic 002712 STATEMENT 1 ON LINE 380 if work_card_len = 0 then /* last field on card and no value follows */ call error (No_value_for_a, No_value_for_a_text, error_flagged (No_value_for_a), label); 002561 aa 6 01004 2361 00 ldq pr6|516 work_card_len 002562 aa 000027 6010 04 tnz 23,ic 002611 002563 aa 775327 3520 04 epp2 -1321,ic 000112 = 000000000007 002564 aa 6 01152 2521 00 spri2 pr6|618 002565 aa 775315 3520 04 epp2 -1331,ic 000102 = 136133042136 002566 aa 6 01154 2521 00 spri2 pr6|620 002567 aa 000007 7270 07 lxl7 7,dl 002570 aa 6 00224 3521 17 epp2 pr6|148,7 error_flagged 002571 aa 6 01156 2521 00 spri2 pr6|622 002572 aa 6 00700 3521 00 epp2 pr6|448 label 002573 aa 6 01160 2521 00 spri2 pr6|624 002574 aa 775451 3520 04 epp2 -1239,ic 000245 = 404000000021 002575 aa 6 01164 2521 00 spri2 pr6|628 002576 aa 775414 3520 04 epp2 -1268,ic 000212 = 526000000037 002577 aa 6 01166 2521 00 spri2 pr6|630 002600 aa 775442 3520 04 epp2 -1246,ic 000242 = 514000000001 002601 aa 6 01170 2521 00 spri2 pr6|632 002602 aa 775427 3520 04 epp2 -1257,ic 000231 = 530000000020 002603 aa 6 01172 2521 00 spri2 pr6|634 002604 aa 6 01150 6211 00 eax1 pr6|616 002605 aa 020000 4310 07 fld 8192,dl 002606 aa 777467 3520 04 epp2 -201,ic 002275 = 000320627000 002607 aa 0 00624 7001 00 tsx0 pr0|404 call_int_this_desc 002610 aa 000071 7100 04 tra 57,ic 002701 STATEMENT 1 ON LINE 382 else do; STATEMENT 1 ON LINE 383 card_pos = search (work_card, Whitespace) - 1; 002611 aa 6 01006 3735 20 epp7 pr6|518,* work_card_ptr 002612 aa 000 000 164 540 tct (pr,rl) 002613 aa 7 00000 00 0006 desc9a pr7|0,ql work_card 002614 aa 001245 0000 04 arg 677,ic 004057 = 000000000000 002615 aa 6 00056 0001 00 arg pr6|46 002616 aa 6 00056 2361 00 ldq pr6|46 002617 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002620 aa 000002 6070 04 ttf 2,ic 002622 002621 aa 000001 3360 07 lcq 1,dl 002622 aa 6 00676 7561 00 stq pr6|446 card_pos STATEMENT 1 ON LINE 384 if card_pos < 0 then card_pos = work_card_len; 002623 aa 000003 6050 04 tpl 3,ic 002626 002624 aa 6 01004 2361 00 ldq pr6|516 work_card_len 002625 aa 6 00676 7561 00 stq pr6|446 card_pos STATEMENT 1 ON LINE 385 if a_labeled_fields.number < dimension (a_labeled_fields.field, 1) then do; 002626 aa 6 00672 3715 20 epp5 pr6|442,* 002627 aa 5 00006 2361 20 ldq pr5|6,* a_labeled_fields.number 002630 aa 000020 1160 07 cmpq 16,dl 002631 aa 000050 6050 04 tpl 40,ic 002701 STATEMENT 1 ON LINE 386 a_labeled_fields.number = a_labeled_fields.number + 1; 002632 aa 5 00006 0541 20 aos pr5|6,* a_labeled_fields.number STATEMENT 1 ON LINE 387 a_labeled_fields.field (a_labeled_fields.number).label = label; 002633 aa 5 00006 2361 20 ldq pr5|6,* a_labeled_fields.number 002634 aa 000012 4020 07 mpy 10,dl 002635 aa 000000 6270 06 eax7 0,ql 002636 aa 6 00677 2361 00 ldq pr6|447 label 002637 aa 5 00006 3535 20 epp3 pr5|6,* 002640 aa 3 77767 7561 17 stq pr3|-9,7 a_labeled_fields.label 002641 aa 3 77770 3515 17 epp1 pr3|-8,7 a_labeled_fields.label 002642 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002643 aa 6 00700 00 0006 desc9a pr6|448,ql label 002644 aa 1 00000 00 0006 desc9a pr1|0,ql a_labeled_fields.label STATEMENT 1 ON LINE 388 a_labeled_fields.field (a_labeled_fields.number).value = substr (work_card, 1, card_pos); 002645 aa 6 00676 2361 00 ldq pr6|446 card_pos 002646 aa 000020 1160 07 cmpq 16,dl 002647 aa 000002 6040 04 tmi 2,ic 002651 002650 aa 000020 2360 07 ldq 16,dl 002651 aa 3 77774 7561 17 stq pr3|-4,7 a_labeled_fields.value 002652 aa 3 77775 3515 17 epp1 pr3|-3,7 a_labeled_fields.value 002653 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002654 aa 7 00000 00 0006 desc9a pr7|0,ql work_card 002655 aa 1 00000 00 0006 desc9a pr1|0,ql a_labeled_fields.value STATEMENT 1 ON LINE 389 end; STATEMENT 1 ON LINE 392 end; STATEMENT 1 ON LINE 393 end; 002656 aa 000023 7100 04 tra 19,ic 002701 STATEMENT 1 ON LINE 394 else do; STATEMENT 1 ON LINE 395 unlabeled: if a_unlabeled_fields.number < dimension (a_unlabeled_fields.value, 1) then do; 002657 aa 6 00672 3715 20 epp5 pr6|442,* 002660 aa 5 00004 2361 20 ldq pr5|4,* a_unlabeled_fields.number 002661 aa 000020 1160 07 cmpq 16,dl 002662 aa 000017 6050 04 tpl 15,ic 002701 STATEMENT 1 ON LINE 396 a_unlabeled_fields.number = a_unlabeled_fields.number + 1; 002663 aa 5 00004 0541 20 aos pr5|4,* a_unlabeled_fields.number STATEMENT 1 ON LINE 397 a_unlabeled_fields.value (a_unlabeled_fields.number) = substr (work_card, 1, card_pos); 002664 aa 5 00004 2361 20 ldq pr5|4,* a_unlabeled_fields.number 002665 aa 000005 4020 07 mpy 5,dl 002666 aa 000000 6270 06 eax7 0,ql 002667 aa 6 00676 2361 00 ldq pr6|446 card_pos 002670 aa 000020 1160 07 cmpq 16,dl 002671 aa 000002 6040 04 tmi 2,ic 002673 002672 aa 000020 2360 07 ldq 16,dl 002673 aa 5 00004 3535 20 epp3 pr5|4,* 002674 aa 3 77774 7561 17 stq pr3|-4,7 a_unlabeled_fields.value 002675 aa 3 77775 3515 17 epp1 pr3|-3,7 a_unlabeled_fields.value 002676 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 002677 aa 7 00000 00 0006 desc9a pr7|0,ql work_card 002700 aa 1 00000 00 0006 desc9a pr1|0,ql a_unlabeled_fields.value STATEMENT 1 ON LINE 398 end; STATEMENT 1 ON LINE 401 end; STATEMENT 1 ON LINE 402 work_card_len = work_card_len - card_pos; 002701 aa 6 00676 3361 00 lcq pr6|446 card_pos 002702 aa 6 01004 0561 00 asq pr6|516 work_card_len STATEMENT 1 ON LINE 403 work_card_ptr = addcharno (work_card_ptr, card_pos); 002703 aa 6 01006 3521 20 epp2 pr6|518,* work_card_ptr 002704 aa 6 00676 2361 00 ldq pr6|446 card_pos 002705 aa 2 00000 5005 06 a9bd pr2|0,ql 002706 aa 6 01006 2521 00 spri2 pr6|518 work_card_ptr STATEMENT 1 ON LINE 404 call pass_whitespace; 002707 aa 000003 6700 04 tsp4 3,ic 002712 STATEMENT 1 ON LINE 405 end; 002710 aa 777576 7100 04 tra -130,ic 002506 STATEMENT 1 ON LINE 406 return; 002711 aa 6 00670 6101 00 rtcd pr6|440 STATEMENT 1 ON LINE 417 end; BEGIN PROCEDURE pass_whitespace ENTRY TO pass_whitespace STATEMENT 1 ON LINE 408 pass_whitespace: proc; 002712 aa 6 01010 6501 00 spri4 pr6|520 STATEMENT 1 ON LINE 410 card_pos = verify (work_card, Whitespace) - 1; 002713 aa 6 01006 3735 20 epp7 pr6|518,* work_card_ptr 002714 aa 6 01004 7271 00 lxl7 pr6|516 work_card_len 002715 aa 000 000 164 540 tct (pr,rl) 002716 aa 7 00000 00 0017 desc9a pr7|0,x7 work_card 002717 aa 000542 0000 04 arg 354,ic 003457 = 777777777777 002720 aa 6 00056 0001 00 arg pr6|46 002721 aa 6 00056 2361 00 ldq pr6|46 002722 aa 0 00242 3761 00 anq pr0|162 = 000777777777 002723 aa 000002 6070 04 ttf 2,ic 002725 002724 aa 000001 3360 07 lcq 1,dl 002725 aa 6 00676 7561 00 stq pr6|446 card_pos STATEMENT 1 ON LINE 411 if card_pos < 0 then card_pos = work_card_len; 002726 aa 000003 6050 04 tpl 3,ic 002731 002727 aa 6 01004 2361 00 ldq pr6|516 work_card_len 002730 aa 6 00676 7561 00 stq pr6|446 card_pos STATEMENT 1 ON LINE 412 work_card_len = work_card_len - card_pos; 002731 aa 6 00676 3361 00 lcq pr6|446 card_pos 002732 aa 6 01004 0561 00 asq pr6|516 work_card_len STATEMENT 1 ON LINE 413 work_card_ptr = addcharno (work_card_ptr, card_pos); 002733 aa 6 00676 2361 00 ldq pr6|446 card_pos 002734 aa 7 00000 5005 06 a9bd pr7|0,ql 002735 aa 6 01006 6535 00 spri7 pr6|518 work_card_ptr STATEMENT 1 ON LINE 414 card_pos = 0; 002736 aa 6 00676 4501 00 stz pr6|446 card_pos STATEMENT 1 ON LINE 415 return; 002737 aa 6 01010 6101 00 rtcd pr6|520 STATEMENT 1 ON LINE 416 end; END PROCEDURE pass_whitespace END PROCEDURE separate_config_card_fields END PROCEDURE config_card_major_parse BEGIN PROCEDURE card_matches ENTRY TO card_matches STATEMENT 1 ON LINE 420 card_matches: proc () returns (bit (1) aligned); 002740 aa 6 01016 6501 00 spri4 pr6|526 002741 aa 6 01020 2521 00 spri2 pr6|528 STATEMENT 1 ON LINE 423 if Config_card_name (config_card_type) ^= config_card.word then return ("0"b); 002742 aa 6 00223 7271 00 lxl7 pr6|147 config_card_type 002743 aa 6 00077 2351 17 lda pr6|63,7 Config_card_name 002744 aa 6 00242 1151 20 cmpa pr6|162,* config_card.word 002745 aa 000003 6000 04 tze 3,ic 002750 002746 aa 2 00002 4501 20 stz pr2|2,* 002747 aa 6 01016 6101 00 rtcd pr6|526 STATEMENT 1 ON LINE 424 if config_deck_data_$Config_card_subname (config_card_type) = "" then return ("1"b); 002750 aa 6 00223 2361 00 ldq pr6|147 config_card_type 002751 aa 000001 7360 00 qls 1 002752 aa 6 01175 7561 00 stq pr6|637 002753 aa 6 00044 3701 20 epp4 pr6|36,* 002754 la 4 00044 3735 20 epp7 pr4|36,* 002755 aa 7 77777 3735 06 epp7 pr7|-1,ql config_deck_data_$Config_card_subname 002756 aa 7 77777 7261 00 lxl6 pr7|-1 config_deck_data_$Config_card_subname 002757 aa 040 004 106 540 cmpc (pr,rl),(ic),fill(040) 002760 aa 7 00000 00 0016 desc9a pr7|0,x6 config_deck_data_$Config_card_subname 002761 aa 001320 00 0000 desc9a 720,0 004277 = 040000000000 002762 aa 000004 6010 04 tnz 4,ic 002766 002763 aa 400000 2350 03 lda 131072,du 002764 aa 2 00002 7551 20 sta pr2|2,* 002765 aa 6 01016 6101 00 rtcd pr6|526 STATEMENT 1 ON LINE 425 if index (card_subname, config_deck_data_$Config_card_subname (config_card_type)) = 1 then return ("1"b); 002766 aa 000004 2360 07 ldq 4,dl 002767 aa 6 00220 3521 00 epp2 pr6|144 card_subname 002770 aa 0 01227 7001 00 tsx0 pr0|663 set_chars_eis 002771 aa 7 77777 2361 00 ldq pr7|-1 config_deck_data_$Config_card_subname 002772 aa 7 00000 3521 00 epp2 pr7|0 002773 aa 0 01231 7001 00 tsx0 pr0|665 index_chars_eis 002774 aa 000001 1160 07 cmpq 1,dl 002775 aa 000005 6010 04 tnz 5,ic 003002 002776 aa 400000 2350 03 lda 131072,du 002777 aa 6 01020 3715 20 epp5 pr6|528,* 003000 aa 5 00002 7551 20 sta pr5|2,* 003001 aa 6 01016 6101 00 rtcd pr6|526 STATEMENT 1 ON LINE 426 return ("0"b); 003002 aa 6 01020 3715 20 epp5 pr6|528,* 003003 aa 5 00002 4501 20 stz pr5|2,* 003004 aa 6 01016 6101 00 rtcd pr6|526 STATEMENT 1 ON LINE 427 end; END PROCEDURE card_matches BEGIN PROCEDURE convert_to_type ENTRY TO convert_to_type STATEMENT 1 ON LINE 429 convert_to_type: proc (config_card_type); 003005 aa 6 01024 6501 00 spri4 pr6|532 003006 aa 6 01026 2521 00 spri2 pr6|534 STATEMENT 1 ON LINE 433 ascii_config_card = rtrim (config_card.word) || " "; 003007 aa 6 00242 3735 20 epp7 pr6|162,* cardp 003010 aa 000 000 165 500 tctr (pr) 003011 aa 7 00000 00 0004 desc9a pr7|0,4 config_card.word 003012 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 003013 aa 6 00056 0001 00 arg pr6|46 003014 aa 6 00056 2361 00 ldq pr6|46 003015 aa 0 00242 3761 00 anq pr0|162 = 000777777777 003016 aa 6 01176 7561 00 stq pr6|638 003017 aa 000004 2360 07 ldq 4,dl 003020 aa 6 01176 1761 00 sbq pr6|638 003021 aa 6 01176 7561 00 stq pr6|638 003022 aa 000001 0760 07 adq 1,dl 003023 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 003024 aa 6 01176 2351 00 lda pr6|638 003025 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003026 aa 7 00000 00 0005 desc9a pr7|0,al config_card.word 003027 aa 2 00000 00 0005 desc9a pr2|0,al 003030 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 003031 aa 001247 00 0001 desc9a 679,1 004277 = 040000000000 003032 aa 2 00000 00 0001 desc9a pr2|0,1 003033 aa 000400 1160 07 cmpq 256,dl 003034 aa 000002 6040 04 tmi 2,ic 003036 003035 aa 000400 2360 07 ldq 256,dl 003036 aa 6 00244 3715 20 epp5 pr6|164,* 003037 aa 5 77777 7561 00 stq pr5|-1 ascii_config_card 003040 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003041 aa 2 00000 00 0006 desc9a pr2|0,ql 003042 aa 5 00000 00 0006 desc9a pr5|0,ql ascii_config_card STATEMENT 1 ON LINE 434 do config_card_field = 1 to config_deck_data_$Config_card_min_specifiable_fields (config_card_type); 003043 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 003044 aa 6 01026 3535 20 epp3 pr6|534,* 003045 aa 3 00002 7271 20 lxl7 pr3|2,* config_card_type 003046 aa 6 00044 3701 20 epp4 pr6|36,* 003047 la 4 00036 3515 20 epp1 pr4|30,* 003050 aa 1 77777 2361 17 ldq pr1|-1,7 config_deck_data_$Config_card_min_specifiable_fields 003051 aa 6 01032 7561 00 stq pr6|538 003052 aa 000001 2360 07 ldq 1,dl 003053 aa 6 00222 7561 00 stq pr6|146 config_card_field 003054 aa 6 00222 2361 00 ldq pr6|146 config_card_field 003055 aa 6 01032 1161 00 cmpq pr6|538 003056 aa 000055 6054 04 tpnz 45,ic 003133 STATEMENT 1 ON LINE 435 ascii_config_card = ascii_config_card || config_deck_data_$Config_card_field_name (config_card_type, config_card_field) || " "; 003057 aa 6 01026 3735 20 epp7 pr6|534,* 003060 aa 7 00002 2361 20 ldq pr7|2,* config_card_type 003061 aa 000070 4020 07 mpy 56,dl 003062 aa 6 01176 7561 00 stq pr6|638 003063 aa 6 00222 2361 00 ldq pr6|146 config_card_field 003064 aa 000002 7360 00 qls 2 003065 aa 6 01176 0761 00 adq pr6|638 003066 aa 6 00244 3715 20 epp5 pr6|164,* 003067 aa 000000 6270 06 eax7 0,ql 003070 aa 5 77777 2361 00 ldq pr5|-1 ascii_config_card 003071 aa 6 00044 3701 20 epp4 pr6|36,* 003072 la 4 00030 3535 20 epp3 pr4|24,* 003073 aa 3 77704 0761 17 adq pr3|-60,7 config_deck_data_$Config_card_field_name 003074 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 003075 aa 5 77777 7261 00 lxl6 pr5|-1 ascii_config_card 003076 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003077 aa 5 00000 00 0016 desc9a pr5|0,x6 ascii_config_card 003100 aa 2 00000 00 0016 desc9a pr2|0,x6 003101 aa 5 77777 7261 00 lxl6 pr5|-1 ascii_config_card 003102 aa 3 77705 3515 17 epp1 pr3|-59,7 config_deck_data_$Config_card_field_name 003103 aa 1 77777 7251 00 lxl5 pr1|-1 config_deck_data_$Config_card_field_name 003104 aa 040 156 100 540 mlr (pr,rl),(pr,rl,x6),fill(040) 003105 aa 1 00000 00 0015 desc9a pr1|0,x5 config_deck_data_$Config_card_field_name 003106 aa 2 00000 00 0015 desc9a pr2|0,x5 003107 aa 6 01176 7561 00 stq pr6|638 003110 aa 000001 0760 07 adq 1,dl 003111 aa 6 01177 7561 00 stq pr6|639 003112 aa 0 00606 7001 00 tsx0 pr0|390 cat_realloc_chars 003113 aa 6 01176 2351 00 lda pr6|638 003114 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 003115 aa 001163 00 0001 desc9a 627,1 004277 = 040000000000 003116 aa 2 00000 00 0001 desc9a pr2|0,1 003117 aa 6 01177 2361 00 ldq pr6|639 003120 aa 000400 1160 07 cmpq 256,dl 003121 aa 000002 6040 04 tmi 2,ic 003123 003122 aa 000400 2360 07 ldq 256,dl 003123 aa 5 77777 7561 00 stq pr5|-1 ascii_config_card 003124 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003125 aa 2 00000 00 0006 desc9a pr2|0,ql 003126 aa 5 00000 00 0006 desc9a pr5|0,ql ascii_config_card STATEMENT 1 ON LINE 436 call add_value; 003127 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 003130 aa 000101 6700 04 tsp4 65,ic 003231 STATEMENT 1 ON LINE 437 end; 003131 aa 6 00222 0541 00 aos pr6|146 config_card_field 003132 aa 777722 7100 04 tra -46,ic 003054 STATEMENT 1 ON LINE 439 do config_card_field = config_deck_data_$Config_card_min_specifiable_fields (config_card_type) + 1 to 14 while (config_card.data_field (config_card_field) ^= EMPTY_FIELD); 003133 aa 6 01026 3735 20 epp7 pr6|534,* 003134 aa 7 00002 7271 20 lxl7 pr7|2,* config_card_type 003135 aa 6 00044 3701 20 epp4 pr6|36,* 003136 la 4 00036 3715 20 epp5 pr4|30,* 003137 aa 5 77777 2361 17 ldq pr5|-1,7 config_deck_data_$Config_card_min_specifiable_fields 003140 aa 000001 0760 07 adq 1,dl 003141 aa 6 00222 7561 00 stq pr6|146 config_card_field 003142 aa 6 00222 2361 00 ldq pr6|146 config_card_field 003143 aa 000016 1160 07 cmpq 14,dl 003144 aa 000064 6054 04 tpnz 52,ic 003230 003145 aa 6 00242 2351 66 lda pr6|162,*ql config_card.data_field 003146 aa 001126 1150 04 cmpa 598,ic 004274 = 777777777777 003147 aa 000061 6000 04 tze 49,ic 003230 STATEMENT 1 ON LINE 441 if config_card_field <= config_deck_data_$Config_card_num_described_fields (config_card_type) then /* we know the name for this field */ ascii_config_card = ascii_config_card || config_deck_data_$Config_card_field_name (config_card_type, config_card_field) || " "; 003150 aa 6 01026 3735 20 epp7 pr6|534,* 003151 aa 7 00002 7271 20 lxl7 pr7|2,* config_card_type 003152 aa 6 00044 3701 20 epp4 pr6|36,* 003153 la 4 00042 3715 20 epp5 pr4|34,* 003154 aa 5 77777 1161 17 cmpq pr5|-1,7 config_deck_data_$Config_card_num_described_fields 003155 aa 000047 6054 04 tpnz 39,ic 003224 003156 aa 7 00002 2361 20 ldq pr7|2,* config_card_type 003157 aa 000070 4020 07 mpy 56,dl 003160 aa 6 01177 7561 00 stq pr6|639 003161 aa 6 00222 2361 00 ldq pr6|146 config_card_field 003162 aa 000002 7360 00 qls 2 003163 aa 6 01177 0761 00 adq pr6|639 003164 aa 6 00244 3535 20 epp3 pr6|164,* 003165 aa 000000 6260 06 eax6 0,ql 003166 aa 3 77777 2361 00 ldq pr3|-1 ascii_config_card 003167 la 4 00030 3515 20 epp1 pr4|24,* 003170 aa 1 77704 0761 16 adq pr1|-60,6 config_deck_data_$Config_card_field_name 003171 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 003172 aa 3 77777 7251 00 lxl5 pr3|-1 ascii_config_card 003173 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003174 aa 3 00000 00 0015 desc9a pr3|0,x5 ascii_config_card 003175 aa 2 00000 00 0015 desc9a pr2|0,x5 003176 aa 3 77777 7251 00 lxl5 pr3|-1 ascii_config_card 003177 aa 1 77705 3715 16 epp5 pr1|-59,6 config_deck_data_$Config_card_field_name 003200 aa 5 77777 7241 00 lxl4 pr5|-1 config_deck_data_$Config_card_field_name 003201 aa 040 155 100 540 mlr (pr,rl),(pr,rl,x5),fill(040) 003202 aa 5 00000 00 0014 desc9a pr5|0,x4 config_deck_data_$Config_card_field_name 003203 aa 2 00000 00 0014 desc9a pr2|0,x4 003204 aa 6 01177 7561 00 stq pr6|639 003205 aa 000001 0760 07 adq 1,dl 003206 aa 6 01176 7561 00 stq pr6|638 003207 aa 0 00606 7001 00 tsx0 pr0|390 cat_realloc_chars 003210 aa 6 01177 2351 00 lda pr6|639 003211 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 003212 aa 001066 00 0001 desc9a 566,1 004277 = 040000000000 003213 aa 2 00000 00 0001 desc9a pr2|0,1 003214 aa 6 01176 2361 00 ldq pr6|638 003215 aa 000400 1160 07 cmpq 256,dl 003216 aa 000002 6040 04 tmi 2,ic 003220 003217 aa 000400 2360 07 ldq 256,dl 003220 aa 3 77777 7561 00 stq pr3|-1 ascii_config_card 003221 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003222 aa 2 00000 00 0006 desc9a pr2|0,ql 003223 aa 3 00000 00 0006 desc9a pr3|0,ql ascii_config_card STATEMENT 1 ON LINE 444 call add_value; 003224 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 003225 aa 000004 6700 04 tsp4 4,ic 003231 STATEMENT 1 ON LINE 445 end; 003226 aa 6 00222 0541 00 aos pr6|146 config_card_field 003227 aa 777713 7100 04 tra -53,ic 003142 STATEMENT 1 ON LINE 472 end; 003230 aa 6 01024 6101 00 rtcd pr6|532 BEGIN PROCEDURE add_value ENTRY TO add_value STATEMENT 1 ON LINE 447 add_value: proc; 003231 aa 6 01034 6501 00 spri4 pr6|540 STATEMENT 1 ON LINE 453 if config_card.field_type (config_card_field) = CONFIG_OCTAL_TYPE then do; 003232 aa 6 00222 2361 00 ldq pr6|146 config_card_field 003233 aa 000001 7360 00 qls 1 003234 aa 6 00242 3735 20 epp7 pr6|162,* cardp 003235 aa 003 100 060 506 csl (pr,ql),(pr),fill(0),bool(move) 003236 aa 7 00016 67 0002 descb pr7|14(34),2 config_card.field_type 003237 aa 6 01200 00 0044 descb pr6|640,36 config_card.field_type 003240 aa 6 01200 2351 00 lda pr6|640 config_card.field_type 003241 aa 000035 6010 04 tnz 29,ic 003276 STATEMENT 1 ON LINE 454 unspec (numeric) = unspec (config_card.data_field (config_card_field)); 003242 aa 6 00222 7271 00 lxl7 pr6|146 config_card_field 003243 aa 7 00000 2351 17 lda pr7|0,7 003244 aa 6 01042 7551 00 sta pr6|546 STATEMENT 1 ON LINE 455 call ioa_$rsnnl ("^o", value, (0), numeric); 003245 aa 136157 2350 03 lda 48239,du 003246 aa 6 01201 7551 00 sta pr6|641 003247 aa 6 01202 4501 00 stz pr6|642 003250 aa 6 01201 3521 00 epp2 pr6|641 003251 aa 6 01206 2521 00 spri2 pr6|646 003252 aa 6 01045 3521 00 epp2 pr6|549 value 003253 aa 6 01210 2521 00 spri2 pr6|648 003254 aa 6 01202 3521 00 epp2 pr6|642 003255 aa 6 01212 2521 00 spri2 pr6|650 003256 aa 6 01042 3521 00 epp2 pr6|546 numeric 003257 aa 6 01214 2521 00 spri2 pr6|652 003260 aa 774731 3520 04 epp2 -1575,ic 000211 = 524000000002 003261 aa 6 01216 2521 00 spri2 pr6|654 003262 aa 774747 3520 04 epp2 -1561,ic 000231 = 530000000020 003263 aa 6 01220 2521 00 spri2 pr6|656 003264 aa 774724 3520 04 epp2 -1580,ic 000210 = 404000000005 003265 aa 6 01222 2521 00 spri2 pr6|658 003266 aa 774761 3520 04 epp2 -1551,ic 000247 = 404000000043 003267 aa 6 01224 2521 00 spri2 pr6|660 003270 aa 6 01204 6211 00 eax1 pr6|644 003271 aa 020000 4310 07 fld 8192,dl 003272 aa 6 00044 3701 20 epp4 pr6|36,* 003273 la 4 00024 3521 20 epp2 pr4|20,* ioa_$rsnnl 003274 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 456 end; 003275 aa 000123 7100 04 tra 83,ic 003420 STATEMENT 1 ON LINE 457 else if config_card.field_type (config_card_field) = CONFIG_DECIMAL_TYPE then do; 003276 aa 600000 1150 03 cmpa 196608,du 003277 aa 000035 6010 04 tnz 29,ic 003334 STATEMENT 1 ON LINE 458 unspec (numeric) = unspec (config_card.data_field (config_card_field)); 003300 aa 6 00222 7271 00 lxl7 pr6|146 config_card_field 003301 aa 7 00000 2351 17 lda pr7|0,7 003302 aa 6 01042 7551 00 sta pr6|546 STATEMENT 1 ON LINE 459 call ioa_$rsnnl ("^d.", value, (0), numeric); 003303 aa 774704 2350 04 lda -1596,ic 000207 = 136144056000 003304 aa 6 01202 7551 00 sta pr6|642 003305 aa 6 01201 4501 00 stz pr6|641 003306 aa 6 01202 3521 00 epp2 pr6|642 003307 aa 6 01206 2521 00 spri2 pr6|646 003310 aa 6 01045 3521 00 epp2 pr6|549 value 003311 aa 6 01210 2521 00 spri2 pr6|648 003312 aa 6 01201 3521 00 epp2 pr6|641 003313 aa 6 01212 2521 00 spri2 pr6|650 003314 aa 6 01042 3521 00 epp2 pr6|546 numeric 003315 aa 6 01214 2521 00 spri2 pr6|652 003316 aa 774670 3520 04 epp2 -1608,ic 000206 = 524000000003 003317 aa 6 01216 2521 00 spri2 pr6|654 003320 aa 774711 3520 04 epp2 -1591,ic 000231 = 530000000020 003321 aa 6 01220 2521 00 spri2 pr6|656 003322 aa 774666 3520 04 epp2 -1610,ic 000210 = 404000000005 003323 aa 6 01222 2521 00 spri2 pr6|658 003324 aa 774723 3520 04 epp2 -1581,ic 000247 = 404000000043 003325 aa 6 01224 2521 00 spri2 pr6|660 003326 aa 6 01204 6211 00 eax1 pr6|644 003327 aa 020000 4310 07 fld 8192,dl 003330 aa 6 00044 3701 20 epp4 pr6|36,* 003331 la 4 00024 3521 20 epp2 pr4|20,* ioa_$rsnnl 003332 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 460 end; 003333 aa 000065 7100 04 tra 53,ic 003420 STATEMENT 1 ON LINE 461 else if config_card.field_type (config_card_field) = CONFIG_STRING_TYPE then do; 003334 aa 400000 1150 03 cmpa 131072,du 003335 aa 000040 6010 04 tnz 32,ic 003375 STATEMENT 1 ON LINE 462 unspec (string) = unspec (config_card.data_field (config_card_field)); 003336 aa 6 00222 7271 00 lxl7 pr6|146 config_card_field 003337 aa 7 00000 2351 17 lda pr7|0,7 003340 aa 6 01043 7551 00 sta pr6|547 STATEMENT 1 ON LINE 463 value = ltrim (rtrim (string)); 003341 aa 000 000 165 500 tctr (pr) 003342 aa 6 01043 00 0004 desc9a pr6|547,4 string 003343 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 003344 aa 6 00056 0001 00 arg pr6|46 003345 aa 6 00056 2361 00 ldq pr6|46 003346 aa 0 00242 3761 00 anq pr0|162 = 000777777777 003347 aa 6 01200 7561 00 stq pr6|640 003350 aa 000004 2360 07 ldq 4,dl 003351 aa 6 01200 1761 00 sbq pr6|640 003352 aa 6 01200 7561 00 stq pr6|640 003353 aa 000 000 164 540 tct (pr,rl) 003354 aa 6 01043 00 0006 desc9a pr6|547,ql string 003355 aa 0 76605 0001 00 arg pr0|-635 = 777777777777 003356 aa 6 00056 0001 00 arg pr6|46 003357 aa 6 00056 2361 00 ldq pr6|46 003360 aa 0 00242 3761 00 anq pr0|162 = 000777777777 003361 aa 6 01201 7561 00 stq pr6|641 003362 aa 6 01200 2361 00 ldq pr6|640 003363 aa 6 01201 1761 00 sbq pr6|641 003364 aa 000020 1160 07 cmpq 16,dl 003365 aa 000002 6040 04 tmi 2,ic 003367 003366 aa 000020 2360 07 ldq 16,dl 003367 aa 6 01201 2351 00 lda pr6|641 003370 aa 6 01044 7561 00 stq pr6|548 value 003371 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 003372 aa 6 01043 00 0006 desc9a pr6|547,ql string 003373 aa 6 01045 00 0006 desc9a pr6|549,ql value STATEMENT 1 ON LINE 464 end; 003374 aa 000024 7100 04 tra 20,ic 003420 STATEMENT 1 ON LINE 465 else /* CONFIG_SINGLE_CHAR_TYPE */ do; STATEMENT 1 ON LINE 466 unspec (numeric) = unspec (config_card.data_field (config_card_field)); 003375 aa 6 00222 7271 00 lxl7 pr6|146 config_card_field 003376 aa 7 00000 2351 17 lda pr7|0,7 003377 aa 6 01042 7551 00 sta pr6|546 STATEMENT 1 ON LINE 467 if numeric < 1 | numeric > 8 then value = "*"; 003400 aa 6 01042 2361 00 ldq pr6|546 numeric 003401 aa 000001 1160 07 cmpq 1,dl 003402 aa 000003 6040 04 tmi 3,ic 003405 003403 aa 000010 1160 07 cmpq 8,dl 003404 aa 000006 6044 04 tmoz 6,ic 003412 003405 aa 052000 2350 03 lda 21504,du 003406 aa 6 01045 7551 00 sta pr6|549 value 003407 aa 000001 2360 07 ldq 1,dl 003410 aa 6 01044 7561 00 stq pr6|548 value 003411 aa 000007 7100 04 tra 7,ic 003420 STATEMENT 1 ON LINE 468 else value = substr ("abcdefgh", numeric, 1); 003412 aa 000001 2360 07 ldq 1,dl 003413 aa 6 01042 2351 00 lda pr6|546 numeric 003414 aa 6 01044 7561 00 stq pr6|548 value 003415 aa 040 140 100 445 mlr (rl,al),(pr,rl),fill(040) 003416 ta 000253 60 0006 desc9a 171(3),ql 003417 aa 6 01045 00 0006 desc9a pr6|549,ql value STATEMENT 1 ON LINE 469 end; STATEMENT 1 ON LINE 470 ascii_config_card = ascii_config_card || value || " "; 003420 aa 6 00244 3735 20 epp7 pr6|164,* 003421 aa 7 77777 2361 00 ldq pr7|-1 ascii_config_card 003422 aa 6 01044 0761 00 adq pr6|548 value 003423 aa 0 00551 7001 00 tsx0 pr0|361 alloc_char_temp 003424 aa 7 77777 7271 00 lxl7 pr7|-1 ascii_config_card 003425 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003426 aa 7 00000 00 0017 desc9a pr7|0,x7 ascii_config_card 003427 aa 2 00000 00 0017 desc9a pr2|0,x7 003430 aa 7 77777 7271 00 lxl7 pr7|-1 ascii_config_card 003431 aa 6 01044 7261 00 lxl6 pr6|548 value 003432 aa 040 157 100 540 mlr (pr,rl),(pr,rl,x7),fill(040) 003433 aa 6 01045 00 0016 desc9a pr6|549,x6 value 003434 aa 2 00000 00 0016 desc9a pr2|0,x6 003435 aa 6 01201 7561 00 stq pr6|641 003436 aa 000001 0760 07 adq 1,dl 003437 aa 6 01200 7561 00 stq pr6|640 003440 aa 0 00606 7001 00 tsx0 pr0|390 cat_realloc_chars 003441 aa 6 01201 2351 00 lda pr6|641 003442 aa 040 105 100 404 mlr (ic),(pr,al),fill(040) 003443 aa 000635 00 0001 desc9a 413,1 004277 = 040000000000 003444 aa 2 00000 00 0001 desc9a pr2|0,1 003445 aa 6 01200 2361 00 ldq pr6|640 003446 aa 000400 1160 07 cmpq 256,dl 003447 aa 000002 6040 04 tmi 2,ic 003451 003450 aa 000400 2360 07 ldq 256,dl 003451 aa 7 77777 7561 00 stq pr7|-1 ascii_config_card 003452 aa 040 140 100 540 mlr (pr,rl),(pr,rl),fill(040) 003453 aa 2 00000 00 0006 desc9a pr2|0,ql 003454 aa 7 00000 00 0006 desc9a pr7|0,ql ascii_config_card STATEMENT 1 ON LINE 471 end; 003455 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 003456 aa 6 01034 6101 00 rtcd pr6|540 END PROCEDURE add_value END PROCEDURE convert_to_type END PROCEDURE config_deck_parse_ ----------------------------------------------------------- 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