COMPILATION LISTING OF SEGMENT linus_display_process_args Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/14/83 1016.7 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* This is the procedure called by the linus_display request to process 9* its control args and return the result through the include 10* file linus_display_arg_list. Description and usage follows. 11* 12* Description: 13* 14* This proc is called to setup the default control arguments, and then 15* update them with any user supplied control args. It is broken out 16* from the linus_display request so that it can (hopefully) be replaced 17* when a general process_args subroutine comes along. 18* 19* Usage: 20* 21* See the paremeter list for usage. 22* 23* Known Bugs: 24* 25* Other Problems: 26* 27* History: 28* 29* Written - Al Dupuis - August 1983 30* 31**/ 32 33 linus_display_process_args: proc ( 34 35 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 36 lcb_ptr_parm, /* input: ptr to the linus control block info structure */ 37 area_ptr_parm, /* input: ptr to an area for allocations */ 38 table_info_ptr_parm, /* input: ptr to table_info structure */ 39 display_arg_results_ptr_parm /* input: ptr to the display_arg_results structure */ 40 ); 41 42 dcl sci_ptr_parm ptr parm; 43 dcl lcb_ptr_parm ptr parm; 44 dcl area_ptr_parm ptr parm; 45 dcl table_info_ptr_parm ptr parm; 46 dcl display_arg_results_ptr_parm ptr parm; 47 48 /* 49* Mainline Processing Overview. 50* 51* 1) Set the default control arg flags. 52* 2) Loop through the control args updating the default flags. 53* 3) Process any pathnames supplied. 54* 4) Print execution time if we're being timed. 55* 56**/ 57 58 time1 = vclock; 59 60 call initialize; 61 call process_args; 62 63 if based_display_arg_results.output_file_flag 64 | based_display_arg_results.temp_dir_flag 65 then call setup_additional_pathnames; 66 67 if based_display_arg_results.time_flag 68 then do; 69 time2 = vclock; 70 call ioa_$ioa_switch (iox_$error_output, 71 "Time used to process the arguments was ^10.5f seconds.", 72 (time2 - time1) / 1000000); 73 end; 74 75 return; 76 77 initialize: proc; 78 79 sci_ptr = sci_ptr_parm; 80 lcb_ptr = lcb_ptr_parm; 81 the_area_ptr = area_ptr_parm; 82 table_ip = table_info_ptr_parm; 83 based_display_arg_results_ptr = display_arg_results_ptr_parm; 84 85 /* Set the default control args up. */ 86 87 unspec (based_display_arg_results.flags) = OFF; 88 based_display_arg_results.pathnames = BLANK; 89 unspec (based_display_arg_results.miscellaneous) = OFF; 90 based_display_arg_results.sort_information_ptr = null (); 91 92 based_display_arg_results.flags.all_flag = ON; 93 based_display_arg_results.flags.new_report_flag = ON; 94 based_display_arg_results.flags.new_retrieval_flag = ON; 95 based_display_arg_results.flags.long_flag = ON; 96 based_display_arg_results.flags.truncate_flag = ON; 97 98 /* Setup the scrolling structure to it's default state. */ 99 100 allocate scroll_info in (the_area) set (scroll_ip); 101 unspec (scroll_info) = OFF; 102 based_display_arg_results.scroll_info_ptr = scroll_ip; 103 terminal_info_ptr = addr (local_terminal_info); 104 terminal_info.version = terminal_info_version; 105 call iox_$control (iox_$user_io, "terminal_info", terminal_info_ptr, code); 106 if code ^= 0 107 then if code = error_table_$no_operation 108 then window_system_cant_be_used = ON; 109 else call ssu_$abort_line (sci_ptr, code, 110 "Unable to get the terminal information."); 111 else do; 112 window_system_cant_be_used = OFF; 113 call ttt_info_$function_key_data (terminal_info.term_type, 114 the_area_ptr, function_key_data_ptr, code); 115 if code ^= 0 116 then if code ^= error_table_$no_table 117 then call ssu_$abort_line (sci_ptr, code, 118 "Unable to get the function key information."); 119 else function_keys_can_be_used = OFF; 120 else do; 121 scroll_info.function_key_data_pointer = function_key_data_ptr; 122 if function_key_data.highest < HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED 123 | (function_key_data.cursor_motion_keys.down (KEY_PLAIN).sequence_length = 0) 124 | (function_key_data.cursor_motion_keys.up (KEY_PLAIN).sequence_length = 0) 125 | (function_key_data.cursor_motion_keys.left (KEY_PLAIN).sequence_length = 0) 126 | (function_key_data.cursor_motion_keys.right (KEY_PLAIN).sequence_length = 0) 127 then function_keys_can_be_used = OFF; 128 else function_keys_can_be_used = ON; 129 end; 130 if function_keys_can_be_used 131 then call process_enable_function_keys; 132 else call process_enable_escape_keys; 133 end; 134 135 return; 136 137 end initialize; 138 139 process_args: proc; 140 141 /* 142* Loop through the control args setting flags and collecting arguments 143* to control args. Conflicting control args are overidden by the 144* last one supplied. Args to control args (e.g. dir names, page 145* numbers) are processed immediately. 146**/ 147 148 call ssu_$arg_count (sci_ptr, no_of_args_supplied); 149 150 if no_of_args_supplied = 0 151 then return; 152 153 still_processing_args = ON; 154 current_arg = 1; 155 156 do while (still_processing_args); 157 158 call get_next_arg; 159 argument_number = lookup_arg_number (arg); 160 if argument_number = 0 161 then call ssu_$abort_line (sci_ptr, error_table_$badopt, 162 "^/^a is not a valid control argument. Type ""help display"" for correct usage.", 163 arg); 164 call process_arg_procs (argument_number); 165 166 end; 167 168 return; 169 170 lookup_arg_number: proc (arg_parm) returns (fixed bin); 171 172 dcl arg_parm char (*) parm; 173 174 loop1 = 1; 175 loop2 = hbound (ARGUMENT_NAME_TABLE, 1); 176 177 do while (loop1 <= loop2); 178 179 loop3 = divide (loop1 + loop2, 2, 17); 180 if arg_parm = ARGUMENT_NAME_TABLE (loop3) 181 then return (loop3); 182 183 if arg_parm < ARGUMENT_NAME_TABLE (loop3) 184 then loop2 = loop3 - 1; 185 else loop1 = loop3 + 1; 186 187 end; 188 189 return (0); 190 191 192 end lookup_arg_number; 193 194 end process_args; 195 196 process_all: proc; 197 198 based_display_arg_results.all_flag = ON; 199 200 based_display_arg_results.pages_flag = OFF; 201 based_display_arg_results.scroll_flag = OFF; 202 203 return; 204 205 end process_all; 206 207 process_brief: proc; 208 209 based_display_arg_results.long_flag = OFF; 210 211 return; 212 213 end process_brief; 214 215 process_character_positions: proc; 216 217 based_display_arg_results.scroll_flag = OFF; 218 based_display_arg_results.character_positions_flag = ON; 219 220 if ^still_processing_args 221 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 222 "^/-character_positions must be followed by a left, and optionally a right margin value."); 223 call get_next_arg; 224 based_display_arg_results.left_margin_position = cv_dec_check_ (arg, code); 225 if code ^= 0 226 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 227 "^/-character_positions must be followed by a valid left margin value, not ^a.", arg); 228 if ^still_processing_args 229 then generate_right_margin_position = ON; 230 else do; 231 call get_next_arg; 232 if substr (arg, 1, 1) = HYPHEN 233 then do; 234 generate_right_margin_position = ON; 235 current_arg = current_arg - 1; 236 still_processing_args = ON; 237 end; 238 else do; 239 generate_right_margin_position = OFF; 240 based_display_arg_results.right_margin_position 241 = cv_dec_check_ (arg, code); 242 if code ^= 0 243 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 244 "^/-character_positions must be followed by a valid left and right margin value, not ^a.", arg); 245 end; 246 end; 247 if generate_right_margin_position 248 then do; 249 call linus_options$get (lcb_ptr, OPTIONS.GENERAL_REPORT.NAME 250 (INDEX_FOR_PAGE_WIDTH), "", normalized_option_name, 251 option_value, code); 252 if code ^= 0 253 then call ssu_$abort_line (sci_ptr, code, 254 "^/While trying to get the default report page width."); 255 based_display_arg_results.right_margin_position = cv_dec_check_ ((option_value), code); 256 if based_display_arg_results.right_margin_position = 0 257 then based_display_arg_results.right_margin_position = 100000; 258 if code ^= 0 259 then call ssu_$abort_line (sci_ptr, linus_error_$bad_report_setup, 260 "^/Could not convert the page width ""^a"" to a number.", option_value); 261 end; 262 263 return; 264 265 end process_character_positions; 266 267 process_debug: proc; 268 269 based_display_arg_results.flags.debug_flag = ON; 270 271 return; 272 273 end process_debug; 274 275 process_discard_report: proc; 276 277 based_display_arg_results.keep_report_flag = OFF; 278 279 return; 280 281 end process_discard_report; 282 283 process_discard_retrieval: proc; 284 285 based_display_arg_results.keep_retrieval_flag = OFF; 286 287 return; 288 289 end process_discard_retrieval; 290 291 process_enable_escape_keys: proc; 292 293 dcl peek_loop fixed bin; 294 295 if window_system_cant_be_used 296 then call ssu_$abort_line (sci_ptr, video_et_$unable_to_call_wsys); 297 298 scroll_info.flags.escapes_in_use = ON; 299 300 do peek_loop = 1 to HIGHEST_DISPLAY_FUNCTION_NUMBER; 301 keys_as_a_table (peek_loop) = ESCAPE_KEYS_AS_A_TABLE (peek_loop); 302 mnemonic_key_sequences_as_a_table (peek_loop) = ESCAPE_KEY_MNEMONICS_AS_A_TABLE (peek_loop); 303 end; 304 305 return; 306 307 end process_enable_escape_keys; 308 309 process_enable_function_keys: proc; 310 311 dcl pefk_inner_loop fixed bin; 312 dcl pefk_loop fixed bin; 313 314 if window_system_cant_be_used 315 then call ssu_$abort_line (sci_ptr, video_et_$unable_to_call_wsys); 316 317 if ^function_keys_can_be_used 318 then return; 319 320 scroll_info.flags.escapes_in_use = OFF; 321 scroll_info.keys.forward = substr (function_key_seqs, 322 function_key_data.cursor_motion_keys.down (KEY_PLAIN).sequence_index, 323 function_key_data.cursor_motion_keys.down (KEY_PLAIN).sequence_length); 324 scroll_info.keys.backward = substr (function_key_seqs, 325 function_key_data.cursor_motion_keys.up (KEY_PLAIN).sequence_index, 326 function_key_data.cursor_motion_keys.up (KEY_PLAIN).sequence_length); 327 scroll_info.keys.left = substr (function_key_seqs, 328 function_key_data.cursor_motion_keys.left (KEY_PLAIN).sequence_index, 329 function_key_data.cursor_motion_keys.left (KEY_PLAIN).sequence_length); 330 scroll_info.keys.right = substr (function_key_seqs, 331 function_key_data.cursor_motion_keys.right (KEY_PLAIN).sequence_index, 332 function_key_data.cursor_motion_keys.right (KEY_PLAIN).sequence_length); 333 334 pefk_inner_loop = 1; 335 do pefk_loop = 5 to HIGHEST_DISPLAY_FUNCTION_NUMBER; 336 keys_as_a_table (pefk_loop) = substr (function_key_seqs, 337 function_key_data.function_keys (pefk_inner_loop, KEY_PLAIN).sequence_index, 338 function_key_data.function_keys (pefk_inner_loop, KEY_PLAIN).sequence_length); 339 pefk_inner_loop = pefk_inner_loop + 1; 340 end; 341 342 do pefk_loop = 1 to HIGHEST_DISPLAY_FUNCTION_NUMBER; 343 mnemonic_key_sequences_as_a_table (pefk_loop) 344 = KEY_MNEMONICS_AS_A_TABLE (pefk_loop); 345 end; 346 347 return; 348 349 end process_enable_function_keys; 350 351 process_extend: proc; 352 353 based_display_arg_results.truncate_flag = OFF; 354 355 return; 356 357 end process_extend; 358 359 process_keep_report: proc; 360 361 based_display_arg_results.keep_report_flag = ON; 362 363 return; 364 365 end process_keep_report; 366 367 process_keep_retrieval: proc; 368 369 based_display_arg_results.keep_retrieval_flag = ON; 370 371 return; 372 373 end process_keep_retrieval; 374 375 process_long: proc; 376 377 based_display_arg_results.long_flag = ON; 378 379 return; 380 381 end process_long; 382 383 process_new_report: proc; 384 385 based_display_arg_results.new_report_flag = ON; 386 387 return; 388 389 end process_new_report; 390 391 process_new_retrieval: proc; 392 393 based_display_arg_results.new_retrieval_flag = ON; 394 395 return; 396 397 end process_new_retrieval; 398 399 process_old_report: proc; 400 401 based_display_arg_results.new_report_flag = OFF; 402 403 return; 404 405 end process_old_report; 406 407 process_old_retrieval: proc; 408 409 based_display_arg_results.new_retrieval_flag = OFF; 410 411 return; 412 413 end process_old_retrieval; 414 415 process_output_file: proc; 416 417 if ^still_processing_args 418 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 419 "^/-output_file must be followed by a pathname."); 420 call get_next_arg; 421 based_display_arg_results.output_file_flag = ON; 422 based_display_arg_results.output_file_pathname = arg; 423 based_display_arg_results.scroll_flag = OFF; 424 based_display_arg_results.output_switch_flag = OFF; 425 426 return; 427 428 end process_output_file; 429 430 process_output_switch: proc; 431 432 if ^still_processing_args 433 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 434 "^/-output_switch must be followed by a switch name."); 435 call get_next_arg; 436 based_display_arg_results.output_switch_flag = ON; 437 based_display_arg_results.output_switch_name = arg; 438 based_display_arg_results.output_file_flag = OFF; 439 based_display_arg_results.scroll_flag = OFF; 440 441 return; 442 443 end process_output_switch; 444 445 process_pages: proc; 446 447 /* 448* 449* The page ranges are handled with a bit map (currently accomodates 450* 10,000 pages). Set bits in the array on for any page numbers given 451* by the user. Page numbers can be given as "N", a blank separated 452* list "N N", a range "N,N", as N to the last page "N," (or "N,$"), 453* and as $ (means the last page). There is a special flag to indicate 454* the last page has been requested. 455* 456**/ 457 458 based_display_arg_results.all_flag = OFF; 459 based_display_arg_results.scroll_flag = OFF; 460 based_display_arg_results.pages_flag = ON; 461 462 unspec (based_display_arg_results.specified_pages) = OFF; 463 464 smallest_page_number = 1; 465 largest_page_number 466 = hbound (based_display_arg_results.specified_pages, 1); 467 468 if still_processing_args 469 then do; 470 call get_next_arg; 471 first_page_number_supplied = ON; 472 end; 473 else first_page_number_supplied = OFF; 474 475 if ^first_page_number_supplied | substr (arg, 1, 1) = HYPHEN 476 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 477 "^/-pages must be followed by at least one page number."); 478 479 still_processing_page_numbers = ON; 480 do while (still_processing_page_numbers); 481 if verify (arg, PAGE_RANGE_VALID_CHARACTERS) ^= 0 482 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 483 INVALID_PAGE_RANGE, arg); 484 if arg = DOLLAR 485 then based_display_arg_results.last_page_flag = ON; 486 else do; 487 if index (arg, COMMA) = 0 488 then do; 489 beginning_page_number = cv_dec_check_ (arg, code); 490 if code ^= 0 491 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 492 INVALID_PAGE_RANGE, arg); 493 else ending_page_number = beginning_page_number; 494 end; 495 else do; 496 beginning_page_number = cv_dec_check_ (before (arg, COMMA), code); 497 if code ^= 0 498 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 499 INVALID_PAGE_RANGE, arg); 500 test_string = after (arg, COMMA); 501 if test_string = "" | test_string = BLANK 502 | test_string = DOLLAR 503 then ending_page_number = largest_page_number; 504 else do; 505 ending_page_number = cv_dec_check_ ((test_string), code); 506 if code ^= 0 507 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 508 INVALID_PAGE_RANGE, arg); 509 end; 510 end; 511 if (beginning_page_number > ending_page_number) 512 | (beginning_page_number < smallest_page_number) 513 | (ending_page_number > largest_page_number) 514 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 515 INVALID_PAGE_RANGE, arg); 516 do loop = beginning_page_number to ending_page_number; 517 based_display_arg_results.specified_pages (loop) = ON; 518 end; 519 end; 520 if still_processing_args 521 then do; 522 call get_next_arg; 523 if substr (arg, 1, 1) = HYPHEN 524 then do; 525 current_arg = current_arg - 1; 526 still_processing_page_numbers = OFF; 527 still_processing_args = ON; 528 end; 529 end; 530 else still_processing_page_numbers = OFF; 531 end; 532 533 return; 534 535 end process_pages; 536 537 process_passes: proc; 538 539 if ^still_processing_args 540 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 541 "^/-passes must be followed by the number of passes."); 542 call get_next_arg; 543 if verify (arg, DIGITS) ^= 0 | arg_length > REASONABLE_NUMBER_OF_DIGITS 544 then call ssu_$abort_line (sci_ptr, error_table_$bad_conversion, 545 "^/The value ^a is unacceptable for the number of passes.", arg); 546 based_display_arg_results.flags.passes_flag = ON; 547 based_display_arg_results.miscellaneous.number_of_passes 548 = convert (based_display_arg_results.miscellaneous.number_of_passes, arg); 549 if based_display_arg_results.miscellaneous.number_of_passes = 0 550 then call ssu_$abort_line (sci_ptr, error_table_$bad_conversion, 551 "^/The value zero is unacceptable for the number of passes."); 552 else if based_display_arg_results.miscellaneous.number_of_passes = 1 553 then based_display_arg_results.flags.passes_flag = OFF; 554 else; 555 556 return; 557 558 end process_passes; 559 560 process_scroll: proc; 561 562 if window_system_cant_be_used 563 then call ssu_$abort_line (sci_ptr, video_et_$unable_to_call_wsys); 564 565 based_display_arg_results.scroll_flag = ON; 566 567 based_display_arg_results.all_flag = OFF; 568 based_display_arg_results.character_positions_flag = OFF; 569 based_display_arg_results.pages_flag = OFF; 570 based_display_arg_results.output_file_flag = OFF; 571 based_display_arg_results.output_switch_flag = OFF; 572 573 return; 574 575 end process_scroll; 576 577 process_set_keys: proc; 578 579 dcl psk_pair_of_key_bindings_found bit (1) aligned; 580 dcl psk_function_name char (32); 581 dcl psk_function_key_sequence char (32); 582 583 if ^still_processing_args 584 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, SET_KEYS_ERROR_MESSAGE); 585 586 psk_pair_of_key_bindings_found = OFF; 587 still_processing_set_key_args = ON; 588 589 do while (still_processing_set_key_args); 590 call get_next_arg; 591 if substr (arg, 1, 1) = HYPHEN | ^still_processing_args 592 then do; 593 if ^psk_pair_of_key_bindings_found | ^still_processing_args 594 then call ssu_$abort_line (sci_ptr, 595 error_table_$inconsistent, SET_KEYS_ERROR_MESSAGE); 596 current_arg = current_arg - 1; 597 still_processing_args = ON; 598 return; 599 end; 600 psk_function_name = arg; 601 call get_next_arg; 602 psk_function_key_sequence = arg; 603 psk_pair_of_key_bindings_found = ON; 604 call linus_display_scroll$set_fkey (scroll_ip, 605 psk_function_name, psk_function_key_sequence, code); 606 if code ^= 0 607 then if code = linus_error_$bad_fkey_name 608 then call ssu_$abort_line (sci_ptr, linus_error_$bad_fkey_name, 609 "^/^a is not a valid display scroll function name.", psk_function_name); 610 else if code = linus_error_$bad_fkey_sequence 611 then call ssu_$abort_line (sci_ptr, linus_error_$bad_fkey_sequence, 612 "^/^a is not a valid mnemonic function key sequence.", psk_function_key_sequence); 613 else call ssu_$abort_line (sci_ptr, code); 614 if ^still_processing_args 615 then still_processing_set_key_args = OFF; 616 end; 617 618 return; 619 620 end process_set_keys; 621 622 process_sort: proc; 623 624 if ^still_processing_args 625 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 626 "^/-sort must be followed by at least one column name or number."); 627 628 call get_next_arg; 629 if substr (arg, 1, 1) = HYPHEN 630 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 631 "^/-sort must be followed by a column name or number, not ^a.", arg); 632 633 /* 634* Allocate the info structure big enough to hold all columns 635* if they are all given. Keep track of which ones are given during 636* the processing and if duplicates are given then shut things down. 637* A bit map is used to keep track of duplicates. 638**/ 639 no_of_candidate_columns = table_info.column_count; 640 allocate sort_info in (the_area) 641 set (sort_info_ptr); 642 based_display_arg_results.sort_information_ptr = sort_info_ptr; 643 unspec (sort_info) = OFF; 644 645 allocate sort_bit_map in (the_area) 646 set (sort_bit_map_ptr); 647 unspec (sort_bit_map) = OFF; 648 649 based_display_arg_results.sort_flag = ON; 650 still_processing_sort_specs = ON; 651 sort_info.number_of_columns_to_sort = 0; 652 653 /* 654* (1) The name can be given as a name or number so it's normalized 655* so that it's a name. If its not found things are shut down. 656* (2) The name is looked up to find out its order in the 657* selection expression. This operation can't fail because the name 658* used for the lookup is the normalized name. (3) The name found is 659* checked to make sure it's the first time it was given. If its been 660* given before then things are shut down. (4) The number of columns 661* to be sorted is bumped and the number of the column is stored. 662* (5) The next arg (if there is one) is checked to see if its 663* -ascending or one of its brothers. If it is fine. If it's a new 664* control arg then a backup in necessary. If it's the next column 665* name or number then it will be processed the next time through the 666* loop. If it was one of the -ascending family then the next column 667* name or number must be gotten before the loop is repeated (which 668* may cause another backup operation), if there is another column 669* name or number. 670**/ 671 672 do while (still_processing_sort_specs); 673 674 /* Have column name or number changed to a name. */ 675 676 call linus_options$check_identifier (lcb_ptr, 677 OPTIONS.SPECIFIC_COLUMN.NAME (1), (arg), 678 normalized_option_name, code); 679 if code ^= 0 680 then if code = linus_error_$bad_option_identifier 681 then call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 682 "^/^a is not a valid column name or number.", arg); 683 else call ssu_$abort_line (sci_ptr, code); 684 else; 685 686 /* Find the number of the column. */ 687 688 not_found = ON; 689 the_column_name = after (normalized_option_name, BLANK); 690 do loop = 1 to table_info.column_count while (not_found); 691 if table_info.columns.column_name (loop) = the_column_name 692 then do; 693 not_found = OFF; 694 column_number = loop; 695 end; 696 end; 697 698 /* Reject duplicates, mark ones we've found. */ 699 700 if not_found 701 then call ssu_$abort_line (sci_ptr, linus_error_$bad_report_setup, 702 "^/Logic error while trying to find the column ^a.", arg); 703 if sort_bit_map (column_number) 704 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 705 "^/The ^a column (#^d) was given more than once in the sort description.", 706 table_info.columns.column_name (column_number), column_number); 707 else sort_bit_map (column_number) = ON; 708 709 sort_info.number_of_columns_to_sort 710 = sort_info.number_of_columns_to_sort + 1; 711 sort_info.columns.number (sort_info.number_of_columns_to_sort) 712 = column_number; 713 714 if still_processing_args 715 then do; 716 still_processing_additional_sort_args = ON; 717 do while (still_processing_additional_sort_args); 718 backup_necessary = OFF; 719 next_column_name_found = OFF; 720 call get_next_arg; 721 if arg = HYPHEN_DESCENDING | arg = HYPHEN_DSC 722 then sort_info.columns.descending 723 (sort_info.number_of_columns_to_sort) = ON; 724 else if arg = HYPHEN_ASCENDING | arg = HYPHEN_ASC 725 then; 726 else if arg = HYPHEN_NON_CASE_SENSITIVE | arg = HYPHEN_NCS 727 then sort_info.columns.non_case_sensitive 728 (sort_info.number_of_columns_to_sort) = ON; 729 else if arg = HYPHEN_CASE_SENSITIVE | arg = HYPHEN_CS 730 then; 731 else if substr (arg, 1, 1) = HYPHEN 732 then backup_necessary = ON; 733 else next_column_name_found = ON; 734 if next_column_name_found | backup_necessary 735 then still_processing_additional_sort_args = OFF; 736 else if ^still_processing_args 737 then do; 738 still_processing_additional_sort_args = OFF; 739 still_processing_sort_specs = OFF; 740 end; 741 else; 742 if backup_necessary 743 then do; 744 current_arg = current_arg - 1; 745 still_processing_args = ON; 746 still_processing_sort_specs = OFF; 747 end; 748 end; 749 end; 750 else still_processing_sort_specs = OFF; 751 end; 752 753 return; 754 755 end process_sort; 756 757 process_temp_dir: proc; 758 759 if ^still_processing_args 760 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 761 "^/-temp_dir must be followed by a directory name."); 762 call get_next_arg; 763 based_display_arg_results.temp_dir_flag = ON; 764 based_display_arg_results.temp_dir_pathname = arg; 765 766 return; 767 768 end process_temp_dir; 769 770 process_truncate: proc; 771 772 based_display_arg_results.truncate_flag = ON; 773 774 return; 775 776 end process_truncate; 777 778 process_window: proc; 779 780 if ^still_processing_args 781 then if arg = "-window" | arg = "-win" 782 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 783 "^/-window must be followed by the name of a window."); 784 else call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 785 "^/-io_switch must be followed by the name of a switch."); 786 else; 787 call get_next_arg; 788 based_display_arg_results.window_flag = ON; 789 based_display_arg_results.window_name = arg; 790 791 return; 792 793 end process_window; 794 795 process_time: proc; 796 797 based_display_arg_results.time_flag = ON; 798 799 return; 800 801 end process_time; 802 803 get_next_arg: proc; 804 805 call ssu_$arg_ptr (sci_ptr, current_arg, arg_ptr, arg_length); 806 current_arg = current_arg + 1; 807 if current_arg > no_of_args_supplied 808 then still_processing_args = OFF; 809 810 return; 811 812 end get_next_arg; 813 814 setup_additional_pathnames: proc; 815 816 /* 817* 818* If the user has requested the report be saved then expand the 819* pathname given and stash away the dir and entry names. If a 820* temp_dir was specified then expand and stash it away also. 821* 822**/ 823 824 if based_display_arg_results.output_file_flag 825 then do; 826 call expand_pathname_ ( 827 based_display_arg_results.output_file_pathname, 828 based_display_arg_results.output_file_directory_name, 829 based_display_arg_results.output_file_entry_name, code); 830 if code ^= 0 831 then call ssu_$abort_line (sci_ptr, code, 832 "^/Unable to expand the -output_file pathname ^a.", 833 based_display_arg_results.output_file_pathname); 834 end; 835 836 if based_display_arg_results.temp_dir_flag 837 then do; 838 call expand_pathname_ ( 839 based_display_arg_results.temp_dir_pathname, 840 temporary_dir_name, entry_name, code); 841 if code ^= 0 842 then call ssu_$abort_line (sci_ptr, code, 843 "^/Unable to expand the -temp_dir name ^a.", 844 based_display_arg_results.temp_dir_pathname); 845 call hcs_$status_minf (temporary_dir_name, entry_name, 1, 846 type, bit_count, code); 847 if code ^= 0 848 then call ssu_$abort_line (sci_ptr, code, 849 "^/Unable to get the status of the directory ^a.", 850 rtrim (based_display_arg_results.temp_dir_pathname)); 851 if type ^= DIRECTORY | (type = DIRECTORY & bit_count > 0) 852 then call ssu_$abort_line (sci_ptr, error_table_$notadir, 853 "^/-temp_dir must be followed by a directory name."); 854 based_display_arg_results.temp_dir_pathname 855 = rtrim (temporary_dir_name) || ">" 856 || rtrim (entry_name); 857 end; 858 859 return; 860 861 end setup_additional_pathnames; 862 863 /* To change this table also change the process_arg_procs table. */ 864 865 dcl ARGUMENT_NAME_TABLE (55) char (21) varying static int options (constant) init ( 866 867 "-a", /* process_all */ 868 "-all", /* process_all */ 869 "-bf", /* process_brief */ 870 "-brief", /* process_brief */ 871 "-character_positions", /* process_character_positions */ 872 "-chpsn", /* process_character_positions */ 873 "-debug", /* process_debug */ 874 "-discard_report", /* process_discard_report */ 875 "-discard_retrieval", /* process_discard_retrieval */ 876 "-dsr", /* process_discard_retrieval */ 877 "-dsrp", /* process_discard_report */ 878 "-eek", /* process_enable_escape_keys */ 879 "-efk", /* process_enable_function_keys */ 880 "-enable_escape_keys", /* process_enable_escape_keys */ 881 "-enable_function_keys", /* process_enable_function_keys */ 882 "-extend", /* process_extend */ 883 "-io_switch", /* process_window */ 884 "-iosw", /* process_window */ 885 "-keep_report", /* process_keep_report */ 886 "-keep_retrieval", /* process_keep_retrieval */ 887 "-kr", /* process_keep_retrieval */ 888 "-krp", /* process_keep_report */ 889 "-lg", /* process_long */ 890 "-long", /* process_long */ 891 "-new_report", /* process_new_report */ 892 "-new_retrieval", /* process_new_retrieval */ 893 "-nr", /* process_new_retrieval */ 894 "-nrp", /* process_new_report */ 895 "-of", /* process_output_file */ 896 "-old_report", /* process_old_report */ 897 "-old_retrieval", /* process_old_retrieval */ 898 "-or", /* process_old_retrieval */ 899 "-orp", /* process_old_report */ 900 "-osw", /* process_output_switch */ 901 "-output_file", /* process_output_file */ 902 "-output_switch", /* process_output_switch */ 903 "-page", /* process_pages */ 904 "-pages", /* process_pages */ 905 "-pass", /* process_passes */ 906 "-passes", /* process_passes */ 907 "-pg", /* process_pages */ 908 "-pgs", /* process_pages */ 909 "-scroll", /* process_scroll */ 910 "-set_key", /* process_set_keys */ 911 "-set_keys", /* process_set_keys */ 912 "-sk", /* process_set_keys */ 913 "-sks", /* process_set_keys */ 914 "-sort", /* process_sort */ 915 "-tc", /* process_truncate */ 916 "-td", /* process_temp_dir */ 917 "-temp_dir", /* process_temp_dir */ 918 "-time", /* process_time */ 919 "-truncate", /* process_truncate */ 920 "-win", /* process_window */ 921 "-window" /* process_window */ 922 ); 923 dcl BLANK char (1) static int options (constant) init (" "); 924 dcl COMMA char (1) static int options (constant) init (","); 925 dcl DIRECTORY fixed bin (2) static int options (constant) init (2); 926 dcl DIGITS char (10) static int options (constant) init ("0123456789"); 927 dcl DOLLAR char (1) static int options (constant) init ("$"); 928 dcl HYPHEN char (1) static int options (constant) init ("-"); 929 dcl HYPHEN_ASCENDING char (10) static int options (constant) init ("-ascending"); 930 dcl HYPHEN_ASC char (4) static int options (constant) init ("-asc"); 931 dcl HYPHEN_CASE_SENSITIVE char (15) static int options (constant) init ("-case_sensitive"); 932 dcl HYPHEN_CS char (3) static int options (constant) init ("-cs"); 933 dcl HYPHEN_DESCENDING char (11) static int options (constant) init ("-descending"); 934 dcl HYPHEN_DSC char (4) static int options (constant) init ("-dsc"); 935 dcl HYPHEN_NON_CASE_SENSITIVE char (19) static int options (constant) init ("-non_case_sensitive"); 936 dcl HYPHEN_NCS char (4) static int options (constant) init ("-ncs"); 937 dcl INVALID_PAGE_RANGE char (46) static int options (constant) init ("^/^a is not a valid page number or page range."); 938 dcl OFF bit (1) static int options (constant) init ("0"b); 939 dcl ON bit (1) static int options (constant) init ("1"b); 940 dcl PAGE_RANGE_VALID_CHARACTERS char (13) static int options (constant) init (" ,$0123456789"); 941 dcl REASONABLE_NUMBER_OF_DIGITS fixed bin static int options (constant) init (5); 942 dcl SET_KEYS_ERROR_MESSAGE char (66) static internal options (constant) init ( 943 "^/-set_keys must be followed by at least one pair of key bindings."); 944 945 dcl addr builtin; 946 dcl after builtin; 947 dcl arg char (arg_length) based (arg_ptr); 948 dcl arg_length fixed bin (21); 949 dcl arg_ptr ptr; 950 dcl argument_number fixed bin; 951 952 dcl backup_necessary bit (1) aligned; 953 dcl 1 based_display_arg_results like display_arg_results based (based_display_arg_results_ptr); 954 dcl based_display_arg_results_ptr ptr; 955 dcl before builtin; 956 dcl beginning_page_number fixed bin; 957 dcl bit_count fixed bin (24); 958 959 dcl code fixed bin (35); 960 dcl column_number fixed bin; 961 dcl convert builtin; 962 dcl current_arg fixed bin; 963 dcl cv_dec_check_ entry (char(*), fixed bin(35)) returns(fixed bin(35)); 964 965 dcl divide builtin; 966 967 dcl ending_page_number fixed bin; 968 dcl entry_name char (32); 969 dcl error_table_$bad_arg fixed bin(35) ext static; 970 dcl error_table_$bad_conversion fixed bin(35) ext static; 971 dcl error_table_$badopt fixed bin(35) ext static; 972 dcl error_table_$inconsistent fixed bin(35) ext static; 973 dcl error_table_$no_operation fixed bin(35) ext static; 974 dcl error_table_$no_table fixed bin(35) ext static; 975 dcl error_table_$notadir fixed bin(35) ext static; 976 dcl expand_pathname_ entry (char(*), char(*), char(*), fixed bin(35)); 977 978 dcl first_page_number_supplied bit (1) aligned; 979 dcl function_keys_can_be_used bit (1) aligned; 980 981 dcl generate_right_margin_position bit (1) aligned; 982 983 dcl hbound builtin; 984 dcl hcs_$status_minf entry (char(*), char(*), fixed bin(1), fixed bin(2), fixed bin(24), fixed bin(35)); 985 986 dcl index builtin; 987 dcl ioa_$ioa_switch entry() options(variable); 988 dcl iox_$control entry (ptr, char(*), ptr, fixed bin(35)); 989 dcl iox_$error_output ptr ext static; 990 dcl iox_$user_io ptr ext static; 991 992 dcl largest_page_number fixed bin; 993 dcl lcb_ptr ptr; 994 dcl linus_display_scroll$set_fkey entry (ptr, char(*), char(*), fixed bin(35)); 995 dcl linus_error_$bad_fkey_name fixed bin(35) ext static; 996 dcl linus_error_$bad_fkey_sequence fixed bin(35) ext static; 997 dcl linus_error_$bad_option_identifier fixed bin(35) ext static; 998 dcl linus_error_$bad_report_setup fixed bin(35) ext static; 999 dcl linus_options$check_identifier entry (ptr, char(*) var, char(*) var, char(*) var, fixed bin(35)); 1000 dcl linus_options$get entry (ptr, char(*) var, char(*) var, char(*) var, char(*) var, fixed bin(35)); 1001 dcl 1 local_terminal_info like terminal_info; 1002 dcl loop fixed bin; 1003 dcl loop1 fixed bin; 1004 dcl loop2 fixed bin; 1005 dcl loop3 fixed bin; 1006 1007 dcl next_column_name_found bit (1) aligned; 1008 dcl no_of_args_supplied fixed bin; 1009 dcl normalized_option_name char (MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH) varying; 1010 dcl not_found bit (1) aligned; 1011 dcl null builtin; 1012 1013 dcl option_value char (32) varying; 1014 1015 /* To change this table also change the ARGUMENT_NAME_TABLE table. */ 1016 1017 dcl process_arg_procs (55) entry init ( 1018 1019 process_all, /* "-a" */ 1020 process_all, /* "-all" */ 1021 process_brief, /* "-bf" */ 1022 process_brief, /* "-brief" */ 1023 process_character_positions, /* "-character_positions" */ 1024 process_character_positions, /* "-chpsn" */ 1025 process_debug, /* "-debug" */ 1026 process_discard_report, /* "-discard_report" */ 1027 process_discard_retrieval, /* "-discard_retrieval" */ 1028 process_discard_retrieval, /* "-dsr" */ 1029 process_discard_report, /* "-dsrp" */ 1030 process_enable_escape_keys, /* "-eek" */ 1031 process_enable_function_keys, /* "-efk" */ 1032 process_enable_escape_keys, /* "-enable_escape_keys" */ 1033 process_enable_function_keys, /* "-enable_function_keys" */ 1034 process_extend, /* "-extend" */ 1035 process_window, /* "-io_switch" */ 1036 process_window, /* "-iosw" */ 1037 process_keep_report, /* "-keep_report" */ 1038 process_keep_retrieval, /* "-keep_retrieval" */ 1039 process_keep_retrieval, /* "-kr" */ 1040 process_keep_report, /* "-krp" */ 1041 process_long, /* "-lg" */ 1042 process_long, /* "-long" */ 1043 process_new_report, /* "-new_report" */ 1044 process_new_retrieval, /* "-new_retrieval" */ 1045 process_new_retrieval, /* "-nr" */ 1046 process_new_report, /* "-nrp" */ 1047 process_output_file, /* "-of" */ 1048 process_old_report, /* "-old_report" */ 1049 process_old_retrieval, /* "-old_retrieval" */ 1050 process_old_retrieval, /* "-or" */ 1051 process_old_report, /* "-orp" */ 1052 process_output_switch, /* "-osw" */ 1053 process_output_file, /* "-output_file" */ 1054 process_output_switch, /* "-output_switch" */ 1055 process_pages, /* "-page" */ 1056 process_pages, /* "-pages" */ 1057 process_passes, /* "-pass" */ 1058 process_passes, /* "-passes" */ 1059 process_pages, /* "-pg" */ 1060 process_pages, /* "-pgs" */ 1061 process_scroll, /* "-scroll" */ 1062 process_set_keys, /* "-set_key" */ 1063 process_set_keys, /* "-set_keys" */ 1064 process_set_keys, /* "-sk" */ 1065 process_set_keys, /* "-sks" */ 1066 process_sort, /* "-sort" */ 1067 process_truncate, /* "-tc" */ 1068 process_temp_dir, /* "-td" */ 1069 process_temp_dir, /* "-temp_dir" */ 1070 process_time, /* "-time" */ 1071 process_truncate, /* "-truncate" */ 1072 process_window, /* "-win" */ 1073 process_window /* "-window" */ 1074 ); 1075 1076 dcl rtrim builtin; 1077 1078 dcl sci_ptr ptr; 1079 dcl smallest_page_number fixed bin; 1080 dcl sort_bit_map (no_of_candidate_columns) bit (1) based (sort_bit_map_ptr); 1081 dcl sort_bit_map_ptr ptr; 1082 dcl ssu_$abort_line entry() options(variable); 1083 dcl ssu_$arg_count entry (ptr, fixed bin); 1084 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 1085 dcl still_processing_additional_sort_args bit (1) aligned; 1086 dcl still_processing_args bit (1) aligned; 1087 dcl still_processing_page_numbers bit (1) aligned; 1088 dcl still_processing_set_key_args bit (1) aligned; 1089 dcl still_processing_sort_specs bit (1) aligned; 1090 dcl substr builtin; 1091 dcl sys_info$max_seg_size fixed bin(35) ext static; 1092 1093 dcl temporary_dir_name char (168); 1094 dcl test_string char (8) varying; 1095 dcl the_area area (sys_info$max_seg_size) based (the_area_ptr); 1096 dcl the_area_ptr ptr; 1097 dcl the_column_name char (MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH) varying; 1098 dcl time1 float bin (63); 1099 dcl time2 float bin (63); 1100 dcl type fixed bin (2); 1101 1102 dcl unspec builtin; 1103 dcl ttt_info_$function_key_data entry (char(*), ptr, ptr, fixed bin(35)); 1104 1105 dcl vclock builtin; 1106 dcl verify builtin; 1107 dcl video_et_$unable_to_call_wsys fixed bin(35) ext static; 1108 1109 dcl window_system_cant_be_used bit (1) aligned; 1110 1 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 1 2* 1 3* James R. Davis 1 Mar 79 */ 1 4 1 5 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 1 6 2 flag bit (1) unal, 1 7 2 type fixed bin (6) unsigned unal, 1 8 2 packed bit (1) unal, 1 9 2 number_dims fixed bin (4) unsigned unal, 1 10 2 size fixed bin (24) unsigned unal; 1 11 1 12 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 1 13 2 flag bit (1) unal, 1 14 2 type fixed bin (6) unsigned unal, 1 15 2 packed bit (1) unal, 1 16 2 number_dims fixed bin (4) unsigned unal, 1 17 2 scale fixed bin (11) unal, 1 18 2 precision fixed bin (12) unsigned unal; 1 19 1 20 dcl arg_descriptor_ptr ptr; 1 21 1 22 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 1111 1112 2 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 2 2* 2 3* James R. Davis 10 May 79 */ 2 4 2 5 dcl 1 arg_list aligned based, 2 6 2 header, 2 7 3 arg_count fixed bin (17) unsigned unal, 2 8 3 pad1 bit (1) unal, 2 9 3 call_type fixed bin (18) unsigned unal, 2 10 3 desc_count fixed bin (17) unsigned unal, 2 11 3 pad2 bit (19) unal, 2 12 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 2 13 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 2 14 2 15 2 16 2 17 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 2 18 2 header, 2 19 3 arg_count fixed bin (17) unsigned unal, 2 20 3 pad1 bit (1) unal, 2 21 3 call_type fixed bin (18) unsigned unal, 2 22 3 desc_count fixed bin (17) unsigned unal, 2 23 3 pad2 bit (19) unal, 2 24 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 2 25 2 envptr ptr, 2 26 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 2 27 2 28 2 29 dcl ( 2 30 Quick_call_type init (0), 2 31 Interseg_call_type init (4), 2 32 Envptr_supplied_call_type 2 33 init (8) 2 34 ) fixed bin (18) unsigned unal int static options (constant); 2 35 2 36 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 2 37* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 2 38* an argument list of the proper size in the user's stack 2 39* 2 40**/ 2 41 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 1113 1114 3 1 /* BEGIN INCLUDE FILE ... function_key_data.incl.pl1 3 2* 3 3* This include file defines the structure used for ttt_info_$function_key_data 3 4* MCR 4671 James R. Davis Sept 80 3 5**/ 3 6 3 7 dcl 1 function_key_data aligned based (function_key_data_ptr), 3 8 2 version fixed bin, 3 9 2 highest fixed bin, /* highest fkey */ 3 10 2 sequence, /* string of all seqs. */ 3 11 3 seq_ptr pointer, 3 12 3 seq_len fixed bin (21), 3 13 2 cursor_motion_keys, 3 14 3 home (0:3) like key_info, 3 15 3 left (0:3) like key_info, 3 16 3 up (0:3) like key_info, 3 17 3 right (0:3) like key_info, 3 18 3 down (0:3) like key_info, 3 19 2 function_keys (0:function_key_data_highest refer 3 20 (function_key_data.highest), 0:3) like key_info; 3 21 3 22 dcl (KEY_PLAIN init (0), 3 23 KEY_SHIFT init (1), 3 24 KEY_CTRL init (2), 3 25 KEY_CTRL_AND_SHIFT init (3) 3 26 ) fixed bin internal static options (constant); 3 27 3 28 dcl 1 key_info unaligned based (key_info_ptr), 3 29 2 sequence_index fixed bin (12) unsigned unaligned, 3 30 2 sequence_length fixed bin (6) unsigned unaligned; /* 0 -> not exist */ 3 31 3 32 dcl function_key_seqs char (function_key_data.sequence.seq_len) 3 33 based (function_key_data.sequence.seq_ptr); 3 34 dcl function_key_data_ptr ptr; 3 35 dcl function_key_data_highest fixed bin; 3 36 dcl function_key_data_version_1 3 37 fixed bin internal static options (constant) init (1); 3 38 dcl key_info_ptr ptr; 3 39 3 40 3 41 /* END INCLUDE FILE ... function_key_data.incl.pl1 */ 1115 1116 4 1 /* BEGIN INCLUDE FILE linus_display_arg_list.incl.pl1 4 2* 4 3* Shared structure between the linus_display request and 4 4* its argument processor, linus_display_process_args. 4 5* 4 6* Al Dupuis - August 1983 4 7**/ 4 8 /* format: off */ 4 9 4 10 dcl 1 display_arg_results aligned, 4 11 4 12 2 flags, 4 13 3 all_flag bit (1) aligned, /* DEFAULT */ 4 14 3 character_positions_flag bit (1) aligned, 4 15 3 debug_flag bit (1) aligned, 4 16 3 keep_report_flag bit (1) aligned, 4 17 3 keep_retrieval_flag bit (1) aligned, 4 18 3 long_flag bit (1) aligned, /* DEFAULT */ 4 19 3 new_report_flag bit (1) aligned, /* DEFAULT */ 4 20 3 new_retrieval_flag bit (1) aligned, /* DEFAULT */ 4 21 3 output_file_flag bit (1) aligned, 4 22 3 output_switch_flag bit (1) aligned, 4 23 3 truncate_flag bit (1) aligned, /* DEFAULT */ 4 24 3 pages_flag bit (1) aligned, 4 25 3 last_page_flag bit (1) aligned, 4 26 3 scroll_flag bit (1) aligned, 4 27 3 sort_flag bit (1) aligned, 4 28 3 temp_dir_flag bit (1) aligned, 4 29 3 time_flag bit (1) aligned, 4 30 3 window_flag bit (1) aligned, 4 31 3 passes_flag bit (1) aligned, 4 32 4 33 2 pathnames, 4 34 3 output_switch_name char (32) unal, /* -output_switch */ 4 35 3 output_file_directory_name char (168) unal, /* -output_file */ 4 36 3 output_file_entry_name char (32) unal, /* -output_file */ 4 37 3 output_file_pathname char (168) unal, /* -output_file */ 4 38 3 temp_dir_pathname char (168) unal, /* -temp_dir */ 4 39 3 window_name char (32) unal, /* -window */ 4 40 4 41 2 miscellaneous, 4 42 3 left_margin_position fixed bin, /* -character_positions */ 4 43 3 right_margin_position fixed bin, /* -character_positions */ 4 44 3 number_of_passes fixed bin, /* -passes */ 4 45 3 sort_information_ptr ptr, /* -sort */ 4 46 3 scroll_info_ptr ptr, /* -scroll */ 4 47 3 specified_pages (NUMBER_OF_ALLOWED_SPECIFIED_PAGES) bit (1) unal; /* -pages */ 4 48 4 49 dcl NUMBER_OF_ALLOWED_SPECIFIED_PAGES static internal options (constant) init (10000); 4 50 /* END INCLUDE FILE linus_display_arg_list.incl.pl1 */ 1117 1118 5 1 /* BEGIN INCLUDE FILE linus_format_options.incl.pl1 5 2* 5 3* Formatting options used for producing reports. 5 4* Al Dupuis - August 1983 5 5* 5 6**/ 5 7 /* format: off */ 5 8 5 9 dcl 1 OPTIONS static int options (constant), 5 10 5 11 2 GENERAL_REPORT (9), 5 12 5 13 3 NAME char (32) varying init ( 5 14 5 15 "-delimiter", /* "!" */ 5 16 "-format_document_controls", /* "off" */ 5 17 "-hyphenation", /* "off" */ 5 18 "-page_footer_value", /* "" */ 5 19 "-page_header_value", /* "" */ 5 20 "-page_length", /* "66" */ 5 21 "-page_width", /* "79" */ 5 22 "-title_line", /* "on" */ 5 23 "-truncation" /* "*" */ 5 24 ), 5 25 5 26 3 VALUE char (32) varying init ( 5 27 5 28 "!", /* "-delimiter" */ 5 29 "off", /* "-format_document_controls " */ 5 30 "off", /* "-hyphenation" */ 5 31 "", /* "-page_footer_value" */ 5 32 "", /* "-page_header_value" */ 5 33 "66", /* "-page_length" */ 5 34 "79", /* "-page_width" */ 5 35 "on", /* "-title_line" */ 5 36 "*" /* "-truncation" */ 5 37 ), 5 38 5 39 2 GENERAL_COLUMN (15), 5 40 5 41 3 NAME char (32) varying init ( 5 42 5 43 "-column_order", /* "[sequential]" */ 5 44 "-count", /* "" */ 5 45 "-exclude", /* "" */ 5 46 "-group", /* "" */ 5 47 "-group_footer_trigger", /* "" */ 5 48 "-group_footer_value", /* "" */ 5 49 "-group_header_trigger", /* "" */ 5 50 "-group_header_value", /* "" */ 5 51 "-outline", /* "" */ 5 52 "-page_break", /* "" */ 5 53 "-row_footer_value", /* "" */ 5 54 "-row_header_value", /* "" */ 5 55 "-subcount", /* "" */ 5 56 "-subtotal", /* "" */ 5 57 "-total" /* "" */ 5 58 ), 5 59 5 60 3 VALUE char (32) varying init ( 5 61 5 62 "[sequential]", /* "-column_order" */ 5 63 "", /* "-count" */ 5 64 "", /* "-exclude" */ 5 65 "", /* "-group" */ 5 66 "", /* "-group_footer_trigger" */ 5 67 "", /* "-group_footer_value" */ 5 68 "", /* "-group_header_trigger" */ 5 69 "", /* "-group_header_value" */ 5 70 "", /* "-outline" */ 5 71 "", /* "-page_break" */ 5 72 "", /* "-row_footer_value" */ 5 73 "", /* "-row_header_value" */ 5 74 "", /* "-subcount" */ 5 75 "", /* "-subtotal" */ 5 76 "" /* "-total" */ 5 77 ), 5 78 5 79 2 SPECIFIC_COLUMN (6), 5 80 5 81 3 NAME char (32) varying init ( 5 82 5 83 "-alignment", /* "[alignment_default]" */ 5 84 "-editing", /* "" */ 5 85 "-folding", /* "fill" */ 5 86 "-separator", /* " " */ 5 87 "-title", /* "[database_column_name]" */ 5 88 "-width" /* "[width_default]" */ 5 89 ), 5 90 5 91 3 VALUE char (32) varying init ( 5 92 5 93 "[alignment_default]", /* "-alignment" */ 5 94 "", /* "-editing" */ 5 95 "fill", /* "-folding" */ 5 96 " ", /* "-separator" */ 5 97 "[database_column_name]", /* "-title" */ 5 98 "[width_default]" /* "-width" */ 5 99 ); 5 100 5 101 dcl 1 OPTION_NAMES_AS_ARGS (30) static int options (constant), 5 102 5 103 2 LONG_NAME char (32) varying init ( 5 104 5 105 "-alignment", /* sorted based on their values */ 5 106 "-column_order", 5 107 "-count", 5 108 "-delimiter", 5 109 "-editing", 5 110 "-exclude", 5 111 "-folding", 5 112 "-format_document_controls", 5 113 "-group", 5 114 "-group_footer_trigger", 5 115 "-group_footer_value", 5 116 "-group_header_trigger", 5 117 "-group_header_value", 5 118 "-hyphenation", 5 119 "-outline", 5 120 "-page_break", 5 121 "-page_footer_value", 5 122 "-page_header_value", 5 123 "-page_length", 5 124 "-page_width", 5 125 "-row_footer_value", 5 126 "-row_header_value", 5 127 "-separator", 5 128 "-subcount", 5 129 "-subtotal", 5 130 "-title", 5 131 "-title_line", 5 132 "-total", 5 133 "-truncation", 5 134 "-width" 5 135 ), 5 136 5 137 2 SHORT_NAME char (5) varying init ( 5 138 5 139 "-al", /* sorted based on their values */ 5 140 "-co", 5 141 "-ct", 5 142 "-dm", 5 143 "-ed", 5 144 "-ex", 5 145 "-fdc", 5 146 "-fold", 5 147 "-gft", 5 148 "-gfv", 5 149 "-ght", 5 150 "-ghv", 5 151 "-gr", 5 152 "-hph", 5 153 "-out", 5 154 "-pb", 5 155 "-pfv", 5 156 "-phv", 5 157 "-pl", 5 158 "-pw", 5 159 "-rfv", 5 160 "-rhv", 5 161 "-sct", 5 162 "-sep", 5 163 "-stt", 5 164 "-tc", 5 165 "-tl", 5 166 "-tt", 5 167 "-ttl", 5 168 "-wid" 5 169 ), 5 170 5 171 2 LONG_NAME_IN_SHORT_NAME_ORDER char (32) varying init ( 5 172 5 173 /* sorted based on the values of short_name */ 5 174 5 175 "-alignment", /* -al */ 5 176 "-column_order", /* -co */ 5 177 "-count", /* -ct */ 5 178 "-delimiter", /* -dm */ 5 179 "-editing", /* -ed */ 5 180 "-exclude", /* -ex */ 5 181 "-format_document_controls", /* -fdc */ 5 182 "-folding", /* -fold */ 5 183 "-group_footer_trigger", /* -gfv */ 5 184 "-group_footer_value", /* -gfv */ 5 185 "-group_header_trigger", /* -ghv */ 5 186 "-group_header_value", /* -ghv */ 5 187 "-group", /* -gr */ 5 188 "-hyphenation", /* -hph */ 5 189 "-outline", /* -out */ 5 190 "-page_break", /* -pb */ 5 191 "-page_footer_value", /* -pfv */ 5 192 "-page_header_value", /* -phv */ 5 193 "-page_length", /* -pl */ 5 194 "-page_width", /* -pw */ 5 195 "-row_footer_value", /* -rfv */ 5 196 "-row_header_value", /* -rhv */ 5 197 "-subcount", /* -sct */ 5 198 "-separator", /* -sep */ 5 199 "-subtotal", /* -stt */ 5 200 "-truncation", /* -tc */ 5 201 "-title_line", /* -tl */ 5 202 "-total", /* -tt */ 5 203 "-title", /* -ttl */ 5 204 "-width" /* -wid */ 5 205 ); 5 206 5 207 /* END INCLUDE FILE linus_format_options */ 1119 1120 6 1 /* BEGIN INCLUDE FILE linus_options_extents.incl.pl1 6 2* 6 3* Extents for the formatting options used for producing reports. 6 4* Kept as a separate include so that some programs may include this 6 5* file without including linus_format_options.incl.pl1 6 6* 6 7* Al Dupuis - August 1983 6 8* 6 9**/ 6 10 /* format: off */ 6 11 6 12 /* The three types of format options that we have. */ 6 13 6 14 dcl GENERAL_REPORT_OPTION fixed bin static int options (constant) init (1); 6 15 dcl GENERAL_COLUMN_OPTION fixed bin static int options (constant) init (2); 6 16 dcl SPECIFIC_COLUMN_OPTION fixed bin static int options (constant) init (3); 6 17 6 18 /* Used to determine how big the tables are without doing a hbound on it. */ 6 19 6 20 dcl NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (15); 6 21 dcl NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE fixed bin static int options (constant) init (9); 6 22 dcl NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (6); 6 23 6 24 /* Used to determine how much space is needed to list them. */ 6 25 6 26 dcl LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (10); /* -alignment */ 6 27 dcl LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH fixed bin static int options (constant) init (25); /* -format_document_controls */ 6 28 dcl LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (21); /* -group_footer_trigger */ 6 29 6 30 /* MAXIMUM_OPTION_IDENTIFIER_LENGTH + MAXIMUM_OPTION_NAME_LENGTH */ 6 31 6 32 dcl MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH fixed bin static int options (constant) init (101); 6 33 6 34 dcl MAXIMUM_OPTION_IDENTIFIER_LENGTH fixed bin static int options (constant) init (69); 6 35 dcl MAXIMUM_OPTION_NAME_LENGTH fixed bin static int options (constant) init (32); 6 36 dcl MAXIMUM_OPTION_VALUE_LENGTH fixed bin static int options (constant) init (4096); 6 37 6 38 /* Used to index into the OPTIONS tables defined in linus_format_options.incl.pl1. */ 6 39 6 40 dcl INDEX_FOR_DELIMITER fixed bin static int options (constant) init (1); 6 41 dcl INDEX_FOR_FORMAT_DOCUMENT_CONTROLS fixed bin static int options (constant) init (2); 6 42 dcl INDEX_FOR_HYPHENATION fixed bin static int options (constant) init (3); 6 43 dcl INDEX_FOR_PAGE_FOOTER_VALUE fixed bin static int options (constant) init (4); 6 44 dcl INDEX_FOR_PAGE_HEADER_VALUE fixed bin static int options (constant) init (5); 6 45 dcl INDEX_FOR_PAGE_LENGTH fixed bin static int options (constant) init (6); 6 46 dcl INDEX_FOR_PAGE_WIDTH fixed bin static int options (constant) init (7); 6 47 dcl INDEX_FOR_TITLE_LINE fixed bin static int options (constant) init (8); 6 48 dcl INDEX_FOR_TRUNCATION fixed bin static int options (constant) init (9); 6 49 6 50 dcl INDEX_FOR_COLUMN_ORDER fixed bin static int options (constant) init (1); 6 51 dcl INDEX_FOR_COUNT fixed bin static int options (constant) init (2); 6 52 dcl INDEX_FOR_EXCLUDE fixed bin static int options (constant) init (3); 6 53 dcl INDEX_FOR_GROUP fixed bin static int options (constant) init (4); 6 54 dcl INDEX_FOR_GROUP_FOOTER_TRIGGER fixed bin static int options (constant) init (5); 6 55 dcl INDEX_FOR_GROUP_FOOTER_VALUE fixed bin static int options (constant) init (6); 6 56 dcl INDEX_FOR_GROUP_HEADER_TRIGGER fixed bin static int options (constant) init (7); 6 57 dcl INDEX_FOR_GROUP_HEADER_VALUE fixed bin static int options (constant) init (8); 6 58 dcl INDEX_FOR_OUTLINE fixed bin static int options (constant) init (9); 6 59 dcl INDEX_FOR_PAGE_BREAK fixed bin static int options (constant) init (10); 6 60 dcl INDEX_FOR_ROW_FOOTER_VALUE fixed bin static int options (constant) init (11); 6 61 dcl INDEX_FOR_ROW_HEADER_VALUE fixed bin static int options (constant) init (12); 6 62 dcl INDEX_FOR_SUBCOUNT fixed bin static int options (constant) init (13); 6 63 dcl INDEX_FOR_SUBTOTAL fixed bin static int options (constant) init (14); 6 64 dcl INDEX_FOR_TOTAL fixed bin static int options (constant) init (15); 6 65 6 66 dcl INDEX_FOR_ALIGNMENT fixed bin static int options (constant) init (1); 6 67 dcl INDEX_FOR_EDITING fixed bin static int options (constant) init (2); 6 68 dcl INDEX_FOR_FOLDING fixed bin static int options (constant) init (3); 6 69 dcl INDEX_FOR_SEPARATOR fixed bin static int options (constant) init (4); 6 70 dcl INDEX_FOR_TITLE fixed bin static int options (constant) init (5); 6 71 dcl INDEX_FOR_WIDTH fixed bin static int options (constant) init (6); 6 72 6 73 /* END INCLUDE FILE linus_options_extents */ 1121 1122 7 1 /* BEGIN INCLUDE FILE linus_scroll_info.incl.pl1 7 2* 7 3* Written - Al Dupuis - August 1983 7 4**/ 7 5 /* format: off */ 7 6 7 7 dcl 1 ESCAPE_KEYS aligned static internal options (constant), 7 8 2 FORWARD char (2) init ("f"), 7 9 2 BACKWARD char (2) init ("b"), 7 10 2 LEFT char (2) init ("l"), 7 11 2 RIGHT char (2) init ("r"), 7 12 2 HELP char (2) init ("?"), 7 13 2 SET_KEY char (2) init ("k"), 7 14 2 SET_SCROLL_INCREMENT char (2) init ("i"), 7 15 2 QUIT char (2) init ("q"), 7 16 2 REDISPLAY char (2) init ("d"), 7 17 2 START_OF_REPORT char (2) init ("s"), 7 18 2 END_OF_REPORT char (2) init ("e"), 7 19 2 MULTICS_MODE char (2) init ("m"), 7 20 2 GOTO char (2) init ("g"); 7 21 7 22 dcl ESCAPE_KEYS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (2) based (addr (ESCAPE_KEYS)); 7 23 7 24 dcl 1 ESCAPE_KEY_MNEMONICS aligned static internal options (constant), 7 25 2 FORWARD char (5) init ("esc-f"), 7 26 2 BACKWARD char (5) init ("esc-b"), 7 27 2 LEFT char (5) init ("esc-l"), 7 28 2 RIGHT char (5) init ("esc-r"), 7 29 2 HELP char (5) init ("esc-?"), 7 30 2 SET_KEY char (5) init ("esc-k"), 7 31 2 SET_SCROLL_INCREMENT char (5) init ("esc-i"), 7 32 2 QUIT char (5) init ("esc-q"), 7 33 2 REDISPLAY char (5) init ("esc-d"), 7 34 2 START_OF_REPORT char (5) init ("esc-s"), 7 35 2 END_OF_REPORT char (5) init ("esc-e"), 7 36 2 MULTICS_MODE char (5) init ("esc-m"), 7 37 2 GOTO char (5) init ("esc-g"); 7 38 7 39 dcl ESCAPE_KEY_MNEMONICS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (5) based (addr (ESCAPE_KEY_MNEMONICS)); 7 40 7 41 dcl 1 FUNCTION_NAMES aligned static internal options (constant), 7 42 2 FORWARD char (32) init ("forward"), 7 43 2 BACKWARD char (32) init ("backward"), 7 44 2 LEFT char (32) init ("left"), 7 45 2 RIGHT char (32) init ("right"), 7 46 2 HELP char (32) init ("help"), 7 47 2 SET_KEY char (32) init ("set_key"), 7 48 2 SET_SCROLL_INCREMENT char (32) init ("set_scroll_increment"), 7 49 2 QUIT char (32) init ("quit"), 7 50 2 REDISPLAY char (32) init ("redisplay"), 7 51 2 START_OF_REPORT char (32) init ("start_of_report"), 7 52 2 END_OF_REPORT char (32) init ("end_of_report"), 7 53 2 MULTICS_MODE char (32) init ("multics_mode"), 7 54 2 GOTO char (32) init ("goto"); 7 55 7 56 dcl FUNCTION_NAMES_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (32) based (addr (FUNCTION_NAMES)); 7 57 7 58 dcl HIGHEST_DISPLAY_FUNCTION_NUMBER fixed bin static int options (constant) init (13); 7 59 7 60 dcl HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED fixed bin static int options (constant) init (9); 7 61 7 62 dcl 1 KEY_MNEMONICS aligned static internal options (constant), 7 63 2 FORWARD char (12) init ("down_arrow"), 7 64 2 BACKWARD char (12) init ("up_arrow"), 7 65 2 LEFT char (12) init ("left_arrow"), 7 66 2 RIGHT char (12) init ("right_arrow"), 7 67 2 HELP char (12) init ("f1"), 7 68 2 SET_KEY char (12) init ("f2"), 7 69 2 SET_SCROLL_INCREMENT char (12) init ("f3"), 7 70 2 QUIT char (12) init ("f4"), 7 71 2 REDISPLAY char (12) init ("f5"), 7 72 2 START_OF_REPORT char (12) init ("f6"), 7 73 2 END_OF_REPORT char (12) init ("f7"), 7 74 2 MULTICS_MODE char (12) init ("f8"), 7 75 2 GOTO char (12) init ("f9"); 7 76 7 77 dcl KEY_MNEMONICS_AS_A_TABLE (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (12) based (addr (KEY_MNEMONICS)); 7 78 7 79 dcl 1 function_key_info aligned, 7 80 2 forward char (32), /* down arrow or esc-f */ 7 81 2 backward char (32), /* up arrow or esc-b */ 7 82 2 left char (32), /* left arrow or esc-l */ 7 83 2 right char (32), /* right arrow or esc-r */ 7 84 2 help char (32), /* F1 or esc-? */ 7 85 2 set_key char (32), /* F2 or esc-k */ 7 86 2 set_scroll_increment char (32), /* F3 or esc-i */ 7 87 2 quit char (32), /* F4 or esc-q */ 7 88 2 redisplay char (32), /* F5 or esc-d */ 7 89 2 start_of_report char (32), /* F6 or esc-s */ 7 90 2 end_of_report char (32), /* F7 or esc-e */ 7 91 2 multics_mode char (32), /* F8 or esc-m */ 7 92 2 goto char (32); /* F9 or esc-g */ 7 93 7 94 dcl keys_as_a_table (HIGHEST_DISPLAY_FUNCTION_NUMBER) char (32) based (addr (scroll_info.keys)); 7 95 7 96 dcl mnemonic_key_sequences_as_a_table (HIGHEST_DISPLAY_FUNCTION_NUMBER) aligned char (32) based (addr (scroll_info.mnemonic_key_sequences)); 7 97 7 98 dcl 1 scroll_info aligned based (scroll_ip), 7 99 2 flags, 7 100 3 video_was_already_on bit (1) unaligned, 7 101 3 user_io_was_shrunk bit (1) unaligned, 7 102 3 escapes_in_use bit (1) unaligned, 7 103 3 on_the_last_page bit (1) unaligned, 7 104 3 buffer_boundary_just_crossed bit (1) unaligned, 7 105 3 goto_line_number_pending bit (1) unaligned, 7 106 3 available bit (30) unaligned, 7 107 2 number_of_lines_for_report_display fixed bin, 7 108 2 target_page_number fixed bin (21), 7 109 2 target_line_number fixed bin (35), 7 110 2 left_vertical_position fixed bin, 7 111 2 top_margin_offset fixed bin, 7 112 2 horizontal_scroll_distance fixed bin, 7 113 2 vertical_scroll_distance fixed bin, 7 114 2 last_line_number_in_previous_buffer fixed bin, 7 115 2 user_io_window_position_info_ptr ptr, 7 116 2 report_output_window_position_info_ptr ptr, 7 117 2 display_arg_results_ptr ptr, 7 118 2 area_ptr ptr, 7 119 2 report_control_info_ptr ptr, 7 120 2 function_key_data_pointer ptr, 7 121 2 window_status_info_pointer ptr, 7 122 2 page_info_pointer ptr, 7 123 2 ssu_info_ptr ptr, 7 124 2 format_document_op ptr, 7 125 2 keys like function_key_info, 7 126 2 mnemonic_key_sequences like function_key_info; 7 127 7 128 dcl scroll_ip ptr; 7 129 7 130 /* END INCLUDE FILE linus_sroll_info.incl.pl1 */ 1123 1124 8 1 /* BEGIN INCLUDE FILE ... linus_sort_info.incl.pl1 8 2* 8 3* Info structure used to provide sorting through linus. 8 4* Written: Dave Schimke 2/25/83 8 5**/ 8 6 8 7 dcl 1 sort_info based (sort_info_ptr), 8 8 2 number_of_columns_to_sort fixed bin (17), 8 9 2 columns (no_of_candidate_columns refer(sort_info.number_of_columns_to_sort)), 8 10 3 number fixed bin (17), 8 11 3 modes, 8 12 4 descending bit (1) unal, 8 13 4 non_case_sensitive bit (1) unal, 8 14 4 mbz1 bit(34) unal; 8 15 8 16 dcl sort_info_ptr ptr; 8 17 dcl no_of_candidate_columns fixed bin; 8 18 8 19 8 20 /* END INCLUDE FILE linus_sort_info.incl.pl1 */ 1125 1126 9 1 /* BEGIN INCLUDE FILE linus_table_info.incl.pl1 -- Dave Schimke 1/5/83 */ 9 2 /* 9 3*09/28/83 Al Dupuis: Added the store_args_ptr variable and the store_args structure. 9 4**/ 9 5 dcl 1 table_info aligned based (table_ip), /* info on displayable table */ 9 6 2 retrieval_identifier fixed bin , /* current retrieval id */ 9 7 2 row_count fixed bin(35), /* number of rows in table */ 9 8 2 column_count fixed bin, /* number of columns in table */ 9 9 2 maximum_column_name_length fixed bin, 9 10 /* largest column name */ 9 11 2 maximum_column_value_length fixed bin, 9 12 /* largest column length */ 9 13 2 row_value_length fixed bin (21), /* length of entire row */ 9 14 /* (sum of column lengths) */ 9 15 2 row_segs_info_ptr ptr init (null), /* ptr to the row segs info */ 9 16 2 store_args_ptr ptr, /* ptr to the arg list for storing rows */ 9 17 2 columns (ti_init_column_count refer (table_info.column_count)), 9 18 /* column info */ 9 19 3 column_name char (69) var, /* column header name */ 9 20 3 column_data_type bit (36), /* original data descriptor */ 9 21 3 column_length fixed bin (21), /* length of column in chars */ 9 22 3 column_index fixed bin (21); /* index of start of column in */ 9 23 /* row value */ 9 24 9 25 dcl 1 row_segs_info aligned based (row_segs_ip), 9 26 2 max_number_of_seg_ptrs fixed bin, 9 27 2 max_number_of_ptrs_per_seg fixed bin(21), 9 28 2 number_of_seg_ptrs fixed bin, 9 29 2 seg_ptr (rsi_init_max_number_of_seg_ptrs refer (row_segs_info. 9 30 max_number_of_seg_ptrs)) ptr unal; 9 31 9 32 dcl 1 row_ptrs aligned based (row_ptrs_p), 9 33 2 number_of_ptrs_this_seg fixed bin(21), 9 34 2 row_value_ptr (row_ptrs.number_of_ptrs_this_seg) ptr unal; 9 35 9 36 dcl row_value char (table_info.row_value_length) based (row_value_p); 9 37 dcl row_value_p ptr unal; /* ptr to the current row value */ 9 38 9 39 dcl row_segs_ip ptr; /* ptr to the seg of ptrs to */ 9 40 /* the arrays of row_value_ptrs */ 9 41 dcl row_ptrs_p ptr; /* ptr to an array of */ 9 42 /* row_value_ptrs */ 9 43 9 44 dcl 1 store_args aligned based (store_ap), 9 45 2 table_name char (30), 9 46 2 error_code fixed bin (35), 9 47 2 number_of_descriptors fixed bin, 9 48 2 header like arg_list.header, 9 49 2 arg_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 9 50 2 desc_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 9 51 2 argument_list_descriptors (init_number_of_descriptors refer 9 52 (store_args.number_of_descriptors)) like arg_descriptor; 9 53 9 54 dcl init_number_of_descriptors; 9 55 dcl rsi_init_max_number_of_seg_ptrs fixed bin; 9 56 dcl store_ap ptr; 9 57 dcl table_ip ptr; 9 58 dcl ti_init_column_count fixed bin; 9 59 9 60 /* END INCLUDE FILE linus_table_info.incl.pl1 */ 1127 1128 1129 10 1 /* BEGIN INCLUDE FiLE ... terminal_info.incl.pl1 */ 10 2 10 3 /* Created 5/25/77 by J. Stern */ 10 4 10 5 10 6 dcl 1 terminal_info aligned based (terminal_info_ptr), /* info structure for terminal_info order */ 10 7 2 version fixed bin, /* version number of this sturcture */ 10 8 2 id char (4) unaligned, /* terminal id from answerback */ 10 9 2 term_type char (32) unaligned, /* terminal type name */ 10 10 2 line_type fixed bin, /* line type number */ 10 11 2 baud_rate fixed bin, 10 12 2 reserved (4) fixed bin; /* reserved for future use */ 10 13 10 14 10 15 dcl terminal_info_ptr ptr; 10 16 dcl terminal_info_version fixed bin int static options (constant) init (1); /* current version */ 10 17 10 18 10 19 /* END INCLUDE FILE ... terminal_info.incl.pl1 */ 1130 1131 1132 end linus_display_process_args; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/14/83 0930.0 linus_display_process_args.pl1 >special_ldd>on>10/14/83>linus_display_process_args.pl1 1111 1 06/28/79 1204.8 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 1113 2 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 1115 3 02/23/81 2146.3 function_key_data.incl.pl1 >ldd>include>function_key_data.incl.pl1 1117 4 09/16/83 1338.0 linus_display_arg_list.incl.pl1 >ldd>include>linus_display_arg_list.incl.pl1 1119 5 09/16/83 1338.0 linus_format_options.incl.pl1 >ldd>include>linus_format_options.incl.pl1 1121 6 09/16/83 1338.0 linus_options_extents.incl.pl1 >ldd>include>linus_options_extents.incl.pl1 1123 7 09/16/83 1338.1 linus_scroll_info.incl.pl1 >ldd>include>linus_scroll_info.incl.pl1 1125 8 09/16/83 1338.0 linus_sort_info.incl.pl1 >ldd>include>linus_sort_info.incl.pl1 1127 9 10/06/83 1219.0 linus_table_info.incl.pl1 >ldd>include>linus_table_info.incl.pl1 1130 10 06/29/77 1624.0 terminal_info.incl.pl1 >ldd>include>terminal_info.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. ARGUMENT_NAME_TABLE 001240 constant varying char(21) initial array dcl 865 ref 175 180 183 BLANK 011170 constant char(1) initial unaligned dcl 923 ref 88 501 689 COMMA constant char(1) initial unaligned dcl 924 ref 487 496 496 500 DIGITS 001235 constant char(10) initial unaligned dcl 926 ref 543 DIRECTORY constant fixed bin(2,0) initial dcl 925 ref 851 851 DOLLAR 011167 constant char(1) initial unaligned dcl 927 ref 484 501 ESCAPE_KEYS 001034 constant structure level 1 dcl 7-7 set ref 301 ESCAPE_KEYS_AS_A_TABLE based char(2) array dcl 7-22 ref 301 ESCAPE_KEY_MNEMONICS 001051 constant structure level 1 dcl 7-24 set ref 302 ESCAPE_KEY_MNEMONICS_AS_A_TABLE based char(5) array dcl 7-39 ref 302 GENERAL_REPORT 000000 constant structure array level 2 unaligned dcl 5-9 HIGHEST_DISPLAY_FUNCTION_NUMBER constant fixed bin(17,0) initial dcl 7-58 ref 300 335 342 HIGHEST_NUMBERED_FUNCTION_KEY_NEEDED constant fixed bin(17,0) initial dcl 7-60 ref 122 HYPHEN 011166 constant char(1) initial unaligned dcl 928 ref 232 475 523 591 629 731 HYPHEN_ASC 001232 constant char(4) initial unaligned dcl 930 ref 724 HYPHEN_ASCENDING 001232 constant char(10) initial unaligned dcl 929 ref 724 HYPHEN_CASE_SENSITIVE 001226 constant char(15) initial unaligned dcl 931 ref 729 HYPHEN_CS 001225 constant char(3) initial unaligned dcl 932 ref 729 HYPHEN_DESCENDING 001222 constant char(11) initial unaligned dcl 933 ref 721 HYPHEN_DSC 001221 constant char(4) initial unaligned dcl 934 ref 721 HYPHEN_NCS 001213 constant char(4) initial unaligned dcl 936 ref 726 HYPHEN_NON_CASE_SENSITIVE 001214 constant char(19) initial unaligned dcl 935 ref 726 INDEX_FOR_PAGE_WIDTH constant fixed bin(17,0) initial dcl 6-46 ref 249 INVALID_PAGE_RANGE 001177 constant char(46) initial unaligned dcl 937 set ref 481* 490* 497* 506* 511* KEY_MNEMONICS 001103 constant structure level 1 dcl 7-62 set ref 343 KEY_MNEMONICS_AS_A_TABLE based char(12) array dcl 7-77 ref 343 KEY_PLAIN constant fixed bin(17,0) initial dcl 3-22 ref 122 122 122 122 321 321 324 324 327 327 330 330 336 336 MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH constant fixed bin(17,0) initial dcl 6-32 ref 1009 1097 NAME 660 000000 constant varying char(32) initial array level 3 in structure "OPTIONS" dcl 5-9 in procedure "linus_display_process_args" set ref 676* NAME 000000 constant varying char(32) initial array level 3 in structure "OPTIONS" dcl 5-9 in procedure "linus_display_process_args" set ref 249* NUMBER_OF_ALLOWED_SPECIFIED_PAGES constant fixed bin(17,0) initial dcl 4-49 ref 4-10 89 462 465 OFF constant bit(1) initial unaligned dcl 938 ref 87 89 101 112 119 122 200 201 209 217 239 277 285 320 353 401 409 423 424 438 439 458 459 462 473 526 530 552 567 568 569 570 571 586 614 643 647 693 718 719 734 738 739 746 750 807 ON constant bit(1) initial unaligned dcl 939 ref 92 93 94 95 96 106 128 153 198 218 228 234 236 269 298 361 369 377 385 393 421 436 460 471 479 484 517 527 546 565 587 597 603 649 650 688 707 716 721 726 731 733 745 763 772 788 797 OPTIONS 000000 constant structure level 1 unaligned dcl 5-9 PAGE_RANGE_VALID_CHARACTERS 001173 constant char(13) initial unaligned dcl 940 ref 481 REASONABLE_NUMBER_OF_DIGITS constant fixed bin(17,0) initial dcl 941 ref 543 SET_KEYS_ERROR_MESSAGE 001152 constant char(66) initial unaligned dcl 942 set ref 583* 593* SPECIFIC_COLUMN 660 000000 constant structure array level 2 unaligned dcl 5-9 addr builtin function dcl 945 ref 103 301 301 302 302 336 343 343 after builtin function dcl 946 ref 500 689 all_flag based bit(1) level 3 dcl 953 set ref 92* 198* 458* 567* area_ptr_parm parameter pointer dcl 44 ref 33 81 arg based char unaligned dcl 947 set ref 159* 160* 224* 225* 232 240* 242* 422 437 475 481 481* 484 487 489* 490* 496 496 497* 500 506* 511* 523 543 543* 547 591 600 602 629 629* 676 679* 700* 721 721 724 724 726 726 729 729 731 764 780 780 789 arg_descriptor based structure level 1 dcl 1-5 arg_length 000100 automatic fixed bin(21,0) dcl 948 set ref 159 159 160 160 224 224 225 225 232 240 240 242 242 422 437 475 481 481 481 484 487 489 489 490 490 496 496 497 497 500 506 506 511 511 523 543 543 543 543 547 591 600 602 629 629 629 676 679 679 700 700 721 721 724 724 726 726 729 729 731 764 780 780 789 805* arg_list based structure level 1 dcl 2-5 arg_parm parameter char unaligned dcl 172 ref 170 180 183 arg_ptr 000102 automatic pointer dcl 949 set ref 159 160 224 225 232 240 242 422 437 475 481 481 484 487 489 490 496 496 497 500 506 511 523 543 543 547 591 600 602 629 629 676 679 700 721 721 724 724 726 726 729 729 731 764 780 780 789 805* argument_number 000104 automatic fixed bin(17,0) dcl 950 set ref 159* 160 164 backup_necessary 000105 automatic bit(1) dcl 952 set ref 718* 731* 734 742 backward 46 based char(32) level 3 dcl 7-98 set ref 324* based_display_arg_results based structure level 1 unaligned dcl 953 based_display_arg_results_ptr 000106 automatic pointer dcl 954 set ref 63 63 67 83* 87 88 89 90 92 93 94 95 96 102 198 200 201 209 217 218 224 240 255 256 256 269 277 285 353 361 369 377 385 393 401 409 421 422 423 424 436 437 438 439 458 459 460 462 465 484 517 546 547 547 549 552 552 565 567 568 569 570 571 642 649 763 764 772 788 789 797 824 826 826 826 830 836 838 841 847 847 854 before builtin function dcl 955 ref 496 496 beginning_page_number 000110 automatic fixed bin(17,0) dcl 956 set ref 489* 493 496* 511 511 516 bit_count 000111 automatic fixed bin(24,0) dcl 957 set ref 845* 851 character_positions_flag 1 based bit(1) level 3 dcl 953 set ref 218* 568* code 000112 automatic fixed bin(35,0) dcl 959 set ref 105* 106 106 109* 113* 115 115 115* 224* 225 240* 242 249* 252 252* 255* 258 489* 490 496* 497 505* 506 604* 606 606 610 613* 676* 679 679 683* 826* 830 830* 838* 841 841* 845* 847 847* column_count 2 based fixed bin(17,0) level 2 dcl 9-5 ref 639 690 column_name 12 based varying char(69) array level 3 dcl 9-5 set ref 691 703* column_number 000113 automatic fixed bin(17,0) dcl 960 set ref 694* 703 703 703* 707 711 columns 1 based structure array level 2 in structure "sort_info" unaligned dcl 8-7 in procedure "linus_display_process_args" columns 12 based structure array level 2 in structure "table_info" dcl 9-5 in procedure "linus_display_process_args" convert builtin function dcl 961 ref 547 current_arg 000114 automatic fixed bin(17,0) dcl 962 set ref 154* 235* 235 525* 525 596* 596 744* 744 805* 806* 806 807 cursor_motion_keys 5 based structure level 2 dcl 3-7 cv_dec_check_ 000010 constant entry external dcl 963 ref 224 240 255 489 496 505 debug_flag 2 based bit(1) level 3 dcl 953 set ref 269* descending 2 based bit(1) array level 4 packed unaligned dcl 8-7 set ref 721* display_arg_results 000632 automatic structure level 1 dcl 4-10 display_arg_results_ptr_parm parameter pointer dcl 46 ref 33 83 divide builtin function dcl 965 ref 179 down 25 based structure array level 3 dcl 3-7 ending_page_number 000115 automatic fixed bin(17,0) dcl 967 set ref 493* 501* 505* 511 511 516 entry_name 000116 automatic char(32) unaligned dcl 968 set ref 838* 845* 854 error_table_$bad_arg 000012 external static fixed bin(35,0) dcl 969 set ref 481* 490* 497* 506* 511* 629* 679* error_table_$bad_conversion 000014 external static fixed bin(35,0) dcl 970 set ref 543* 549* error_table_$badopt 000016 external static fixed bin(35,0) dcl 971 set ref 160* error_table_$inconsistent 000020 external static fixed bin(35,0) dcl 972 set ref 220* 225* 242* 417* 432* 475* 539* 583* 593* 624* 703* 759* 780* 784* error_table_$no_operation 000022 external static fixed bin(35,0) dcl 973 ref 106 error_table_$no_table 000024 external static fixed bin(35,0) dcl 974 ref 115 error_table_$notadir 000026 external static fixed bin(35,0) dcl 975 set ref 851* escapes_in_use 0(02) based bit(1) level 3 packed unaligned dcl 7-98 set ref 298* 320* expand_pathname_ 000030 constant entry external dcl 976 ref 826 838 first_page_number_supplied 000126 automatic bit(1) dcl 978 set ref 471* 473* 475 flags based structure level 2 in structure "based_display_arg_results" unaligned dcl 953 in procedure "linus_display_process_args" set ref 87* flags based structure level 2 in structure "scroll_info" dcl 7-98 in procedure "linus_display_process_args" forward 36 based char(32) level 3 dcl 7-98 set ref 321* function_key_data based structure level 1 dcl 3-7 function_key_data_pointer 24 based pointer level 2 dcl 7-98 set ref 121* function_key_data_ptr 000630 automatic pointer dcl 3-34 set ref 113* 121 122 122 122 122 122 321 321 321 321 324 324 324 324 327 327 327 327 330 330 330 330 336 336 336 336 function_key_info 000632 automatic structure level 1 dcl 7-79 function_key_seqs based char unaligned dcl 3-32 ref 321 324 327 330 336 function_keys 31 based structure array level 2 dcl 3-7 function_keys_can_be_used 000127 automatic bit(1) dcl 979 set ref 119* 122* 128* 130 317 generate_right_margin_position 000130 automatic bit(1) dcl 981 set ref 228* 234* 239* 247 hbound builtin function dcl 983 ref 175 465 hcs_$status_minf 000032 constant entry external dcl 984 ref 845 header based structure level 2 dcl 2-5 highest 1 based fixed bin(17,0) level 2 dcl 3-7 ref 122 index builtin function dcl 986 ref 487 ioa_$ioa_switch 000034 constant entry external dcl 987 ref 70 iox_$control 000036 constant entry external dcl 988 ref 105 iox_$error_output 000040 external static pointer dcl 989 set ref 70* iox_$user_io 000042 external static pointer dcl 990 set ref 105* keep_report_flag 3 based bit(1) level 3 dcl 953 set ref 277* 361* keep_retrieval_flag 4 based bit(1) level 3 dcl 953 set ref 285* 369* key_info based structure level 1 packed unaligned dcl 3-28 keys 36 based structure level 2 dcl 7-98 set ref 301 336 keys_as_a_table based char(32) array unaligned dcl 7-94 set ref 301* 336* largest_page_number 000131 automatic fixed bin(17,0) dcl 992 set ref 465* 501 511 last_page_flag 14 based bit(1) level 3 dcl 953 set ref 484* lcb_ptr 000132 automatic pointer dcl 993 set ref 80* 249* 676* lcb_ptr_parm parameter pointer dcl 43 ref 33 80 left 11 based structure array level 3 in structure "function_key_data" dcl 3-7 in procedure "linus_display_process_args" left 56 based char(32) level 3 in structure "scroll_info" dcl 7-98 in procedure "linus_display_process_args" set ref 327* left_margin_position 252 based fixed bin(17,0) level 3 dcl 953 set ref 224* linus_display_scroll$set_fkey 000044 constant entry external dcl 994 ref 604 linus_error_$bad_fkey_name 000046 external static fixed bin(35,0) dcl 995 set ref 606 606* linus_error_$bad_fkey_sequence 000050 external static fixed bin(35,0) dcl 996 set ref 610 610* linus_error_$bad_option_identifier 000052 external static fixed bin(35,0) dcl 997 ref 679 linus_error_$bad_report_setup 000054 external static fixed bin(35,0) dcl 998 set ref 258* 700* linus_options$check_identifier 000056 constant entry external dcl 999 ref 676 linus_options$get 000060 constant entry external dcl 1000 ref 249 local_terminal_info 000134 automatic structure level 1 unaligned dcl 1001 set ref 103 long_flag 5 based bit(1) level 3 dcl 953 set ref 95* 209* 377* loop 000154 automatic fixed bin(17,0) dcl 1002 set ref 516* 517* 690* 691 694* loop1 000155 automatic fixed bin(17,0) dcl 1003 set ref 174* 177 179 185* loop2 000156 automatic fixed bin(17,0) dcl 1004 set ref 175* 177 179 183* loop3 000157 automatic fixed bin(17,0) dcl 1005 set ref 179* 180 180 183 183 185 miscellaneous 252 based structure level 2 unaligned dcl 953 set ref 89* mnemonic_key_sequences 206 based structure level 2 dcl 7-98 set ref 302 343 mnemonic_key_sequences_as_a_table based char(32) array dcl 7-96 set ref 302* 343* modes 2 based structure array level 3 packed unaligned dcl 8-7 new_report_flag 6 based bit(1) level 3 dcl 953 set ref 93* 385* 401* new_retrieval_flag 7 based bit(1) level 3 dcl 953 set ref 94* 393* 409* next_column_name_found 000160 automatic bit(1) dcl 1007 set ref 719* 733* 734 no_of_args_supplied 000161 automatic fixed bin(17,0) dcl 1008 set ref 148* 150 807 no_of_candidate_columns 001006 automatic fixed bin(17,0) dcl 8-17 set ref 639* 640 640 645 647 non_case_sensitive 2(01) based bit(1) array level 4 packed unaligned dcl 8-7 set ref 726* normalized_option_name 000162 automatic varying char dcl 1009 set ref 249* 676* 689 not_found 000162 automatic bit(1) dcl 1010 set ref 688* 690 693* 700 null builtin function dcl 1011 ref 90 number 1 based fixed bin(17,0) array level 3 dcl 8-7 set ref 711* number_of_columns_to_sort based fixed bin(17,0) level 2 dcl 8-7 set ref 640* 643 651* 709* 709 711 721 726 number_of_passes 254 based fixed bin(17,0) level 3 dcl 953 set ref 547* 547 549 552 option_value 000163 automatic varying char(32) dcl 1013 set ref 249* 255 258* output_file_directory_name 33 based char(168) level 3 packed unaligned dcl 953 set ref 826* output_file_entry_name 105 based char(32) level 3 packed unaligned dcl 953 set ref 826* output_file_flag 10 based bit(1) level 3 dcl 953 set ref 63 421* 438* 570* 824 output_file_pathname 115 based char(168) level 3 packed unaligned dcl 953 set ref 422* 826* 830* output_switch_flag 11 based bit(1) level 3 dcl 953 set ref 424* 436* 571* output_switch_name 23 based char(32) level 3 packed unaligned dcl 953 set ref 437* pages_flag 13 based bit(1) level 3 dcl 953 set ref 200* 460* 569* passes_flag 22 based bit(1) level 3 dcl 953 set ref 546* 552* pathnames 23 based structure level 2 packed unaligned dcl 953 set ref 88* peek_loop 000100 automatic fixed bin(17,0) dcl 293 set ref 300* 301 301 302 302* pefk_inner_loop 000100 automatic fixed bin(17,0) dcl 311 set ref 334* 336 336 339* 339 pefk_loop 000101 automatic fixed bin(17,0) dcl 312 set ref 335* 336* 342* 343 343* process_arg_procs 000174 automatic entry variable initial array dcl 1017 set ref 164 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* 1017* psk_function_key_sequence 000111 automatic char(32) unaligned dcl 581 set ref 602* 604* 610* psk_function_name 000101 automatic char(32) unaligned dcl 580 set ref 600* 604* 606* psk_pair_of_key_bindings_found 000100 automatic bit(1) dcl 579 set ref 586* 593 603* right 66 based char(32) level 3 in structure "scroll_info" dcl 7-98 in procedure "linus_display_process_args" set ref 330* right 21 based structure array level 3 in structure "function_key_data" dcl 3-7 in procedure "linus_display_process_args" right_margin_position 253 based fixed bin(17,0) level 3 dcl 953 set ref 240* 255* 256 256* rtrim builtin function dcl 1076 ref 847 847 854 854 sci_ptr 000530 automatic pointer dcl 1078 set ref 79* 109* 115* 148* 160* 220* 225* 242* 252* 258* 295* 314* 417* 432* 475* 481* 490* 497* 506* 511* 539* 543* 549* 562* 583* 593* 606* 610* 613* 624* 629* 679* 683* 700* 703* 759* 780* 784* 805* 830* 841* 847* 851* sci_ptr_parm parameter pointer dcl 42 ref 33 79 scroll_flag 15 based bit(1) level 3 dcl 953 set ref 201* 217* 423* 439* 459* 565* scroll_info based structure level 1 dcl 7-98 set ref 100 101* scroll_info_ptr 260 based pointer level 3 dcl 953 set ref 102* scroll_ip 001002 automatic pointer dcl 7-128 set ref 100* 101 102 121 298 301 302 320 321 324 327 330 336 343 604* seq_len 4 based fixed bin(21,0) level 3 dcl 3-7 ref 321 324 327 330 336 seq_ptr 2 based pointer level 3 dcl 3-7 ref 321 324 327 330 336 sequence 2 based structure level 2 dcl 3-7 sequence_index 31 based fixed bin(12,0) array level 3 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 336 sequence_index 15 based fixed bin(12,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 324 sequence_index 11 based fixed bin(12,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 327 sequence_index 25 based fixed bin(12,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 321 sequence_index 21 based fixed bin(12,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 330 sequence_length 15(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 122 324 sequence_length 21(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 122 330 sequence_length 11(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 122 327 sequence_length 25(12) based fixed bin(6,0) array level 4 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 122 321 sequence_length 31(12) based fixed bin(6,0) array level 3 in structure "function_key_data" packed unsigned unaligned dcl 3-7 in procedure "linus_display_process_args" ref 336 smallest_page_number 000532 automatic fixed bin(17,0) dcl 1079 set ref 464* 511 sort_bit_map based bit(1) array unaligned dcl 1080 set ref 645 647* 703 707* sort_bit_map_ptr 000534 automatic pointer dcl 1081 set ref 645* 647 703 707 sort_flag 16 based bit(1) level 3 dcl 953 set ref 649* sort_info based structure level 1 unaligned dcl 8-7 set ref 640 643* sort_info_ptr 001004 automatic pointer dcl 8-16 set ref 640* 642 643 651 709 709 711 711 721 721 726 726 sort_information_ptr 256 based pointer level 3 dcl 953 set ref 90* 642* specified_pages 262 based bit(1) array level 3 packed unaligned dcl 953 set ref 462* 465 517* ssu_$abort_line 000062 constant entry external dcl 1082 ref 109 115 160 220 225 242 252 258 295 314 417 432 475 481 490 497 506 511 539 543 549 562 583 593 606 610 613 624 629 679 683 700 703 759 780 784 830 841 847 851 ssu_$arg_count 000064 constant entry external dcl 1083 ref 148 ssu_$arg_ptr 000066 constant entry external dcl 1084 ref 805 still_processing_additional_sort_args 000536 automatic bit(1) dcl 1085 set ref 716* 717 734* 738* still_processing_args 000537 automatic bit(1) dcl 1086 set ref 153* 156 220 228 236* 417 432 468 520 527* 539 583 591 593 597* 614 624 714 736 745* 759 780 807* still_processing_page_numbers 000540 automatic bit(1) dcl 1087 set ref 479* 480 526* 530* still_processing_set_key_args 000541 automatic bit(1) dcl 1088 set ref 587* 589 614* still_processing_sort_specs 000542 automatic bit(1) dcl 1089 set ref 650* 672 739* 746* 750* substr builtin function dcl 1090 ref 232 321 324 327 330 336 475 523 591 629 731 table_info based structure level 1 dcl 9-5 table_info_ptr_parm parameter pointer dcl 45 ref 33 82 table_ip 001010 automatic pointer dcl 9-57 set ref 82* 639 690 691 703 temp_dir_flag 17 based bit(1) level 3 dcl 953 set ref 63 763* 836 temp_dir_pathname 167 based char(168) level 3 packed unaligned dcl 953 set ref 764* 838* 841* 847 847 854* temporary_dir_name 000543 automatic char(168) unaligned dcl 1093 set ref 838* 845* 854 term_type 2 based char(32) level 2 packed unaligned dcl 10-6 set ref 113* terminal_info based structure level 1 dcl 10-6 terminal_info_ptr 001012 automatic pointer dcl 10-15 set ref 103* 104 105* 113 terminal_info_version constant fixed bin(17,0) initial dcl 10-16 ref 104 test_string 000615 automatic varying char(8) dcl 1094 set ref 500* 501 501 501 505 the_area based area dcl 1095 ref 100 640 645 the_area_ptr 000620 automatic pointer dcl 1096 set ref 81* 100 113* 640 645 the_column_name 000622 automatic varying char dcl 1097 set ref 689* 691 time1 000622 automatic float bin(63) dcl 1098 set ref 58* 70 time2 000624 automatic float bin(63) dcl 1099 set ref 69* 70 time_flag 20 based bit(1) level 3 dcl 953 set ref 67 797* truncate_flag 12 based bit(1) level 3 dcl 953 set ref 96* 353* 772* ttt_info_$function_key_data 000070 constant entry external dcl 1103 ref 113 type 000626 automatic fixed bin(2,0) dcl 1100 set ref 845* 851 851 unspec builtin function dcl 1102 set ref 87* 89* 101* 462* 643* 647* up 15 based structure array level 3 dcl 3-7 vclock builtin function dcl 1105 ref 58 69 verify builtin function dcl 1106 ref 481 543 version based fixed bin(17,0) level 2 dcl 10-6 set ref 104* video_et_$unable_to_call_wsys 000072 external static fixed bin(35,0) dcl 1107 set ref 295* 314* 562* window_flag 21 based bit(1) level 3 dcl 953 set ref 788* window_name 241 based char(32) level 3 packed unaligned dcl 953 set ref 789* window_system_cant_be_used 000627 automatic bit(1) dcl 1109 set ref 106* 112* 295 314 562 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 FUNCTION_NAMES internal static structure level 1 dcl 7-41 FUNCTION_NAMES_AS_A_TABLE based char(32) array dcl 7-56 GENERAL_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 6-15 GENERAL_REPORT_OPTION internal static fixed bin(17,0) initial dcl 6-14 INDEX_FOR_ALIGNMENT internal static fixed bin(17,0) initial dcl 6-66 INDEX_FOR_COLUMN_ORDER internal static fixed bin(17,0) initial dcl 6-50 INDEX_FOR_COUNT internal static fixed bin(17,0) initial dcl 6-51 INDEX_FOR_DELIMITER internal static fixed bin(17,0) initial dcl 6-40 INDEX_FOR_EDITING internal static fixed bin(17,0) initial dcl 6-67 INDEX_FOR_EXCLUDE internal static fixed bin(17,0) initial dcl 6-52 INDEX_FOR_FOLDING internal static fixed bin(17,0) initial dcl 6-68 INDEX_FOR_FORMAT_DOCUMENT_CONTROLS internal static fixed bin(17,0) initial dcl 6-41 INDEX_FOR_GROUP internal static fixed bin(17,0) initial dcl 6-53 INDEX_FOR_GROUP_FOOTER_TRIGGER internal static fixed bin(17,0) initial dcl 6-54 INDEX_FOR_GROUP_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 6-55 INDEX_FOR_GROUP_HEADER_TRIGGER internal static fixed bin(17,0) initial dcl 6-56 INDEX_FOR_GROUP_HEADER_VALUE internal static fixed bin(17,0) initial dcl 6-57 INDEX_FOR_HYPHENATION internal static fixed bin(17,0) initial dcl 6-42 INDEX_FOR_OUTLINE internal static fixed bin(17,0) initial dcl 6-58 INDEX_FOR_PAGE_BREAK internal static fixed bin(17,0) initial dcl 6-59 INDEX_FOR_PAGE_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 6-43 INDEX_FOR_PAGE_HEADER_VALUE internal static fixed bin(17,0) initial dcl 6-44 INDEX_FOR_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 6-45 INDEX_FOR_ROW_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 6-60 INDEX_FOR_ROW_HEADER_VALUE internal static fixed bin(17,0) initial dcl 6-61 INDEX_FOR_SEPARATOR internal static fixed bin(17,0) initial dcl 6-69 INDEX_FOR_SUBCOUNT internal static fixed bin(17,0) initial dcl 6-62 INDEX_FOR_SUBTOTAL internal static fixed bin(17,0) initial dcl 6-63 INDEX_FOR_TITLE internal static fixed bin(17,0) initial dcl 6-70 INDEX_FOR_TITLE_LINE internal static fixed bin(17,0) initial dcl 6-47 INDEX_FOR_TOTAL internal static fixed bin(17,0) initial dcl 6-64 INDEX_FOR_TRUNCATION internal static fixed bin(17,0) initial dcl 6-48 INDEX_FOR_WIDTH internal static fixed bin(17,0) initial dcl 6-71 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 KEY_CTRL internal static fixed bin(17,0) initial dcl 3-22 KEY_CTRL_AND_SHIFT internal static fixed bin(17,0) initial dcl 3-22 KEY_SHIFT internal static fixed bin(17,0) initial dcl 3-22 LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 6-28 LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 6-27 LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 6-26 MAXIMUM_OPTION_IDENTIFIER_LENGTH internal static fixed bin(17,0) initial dcl 6-34 MAXIMUM_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 6-35 MAXIMUM_OPTION_VALUE_LENGTH internal static fixed bin(17,0) initial dcl 6-36 NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 6-20 NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 6-21 NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 6-22 OPTION_NAMES_AS_ARGS internal static structure array level 1 unaligned dcl 5-101 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 SPECIFIC_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 6-16 arg_descriptor_ptr automatic pointer dcl 1-20 arg_list_with_envptr based structure level 1 dcl 2-17 fixed_arg_descriptor based structure level 1 dcl 1-12 function_key_data_highest automatic fixed bin(17,0) dcl 3-35 function_key_data_version_1 internal static fixed bin(17,0) initial dcl 3-36 init_number_of_descriptors automatic fixed bin(17,0) dcl 9-54 key_info_ptr automatic pointer dcl 3-38 row_ptrs based structure level 1 dcl 9-32 row_ptrs_p automatic pointer dcl 9-41 row_segs_info based structure level 1 dcl 9-25 row_segs_ip automatic pointer dcl 9-39 row_value based char unaligned dcl 9-36 row_value_p automatic pointer unaligned dcl 9-37 rsi_init_max_number_of_seg_ptrs automatic fixed bin(17,0) dcl 9-55 store_ap automatic pointer dcl 9-56 store_args based structure level 1 dcl 9-44 sys_info$max_seg_size external static fixed bin(35,0) dcl 1091 ti_init_column_count automatic fixed bin(17,0) dcl 9-58 NAMES DECLARED BY EXPLICIT CONTEXT. get_next_arg 010145 constant entry internal dcl 803 ref 158 223 231 420 435 470 522 542 590 601 628 720 762 787 initialize 003555 constant entry internal dcl 77 ref 60 linus_display_process_args 002744 constant entry external dcl 33 lookup_arg_number 004211 constant entry internal dcl 170 ref 159 process_all 004267 constant entry internal dcl 196 ref 1017 1017 process_args 004075 constant entry internal dcl 139 ref 61 process_brief 004304 constant entry internal dcl 207 ref 1017 1017 process_character_positions 004316 constant entry internal dcl 215 ref 1017 1017 process_debug 004752 constant entry internal dcl 267 ref 1017 process_discard_report 004765 constant entry internal dcl 275 ref 1017 1017 process_discard_retrieval 004777 constant entry internal dcl 283 ref 1017 1017 process_enable_escape_keys 005011 constant entry internal dcl 291 ref 132 1017 1017 process_enable_function_keys 005074 constant entry internal dcl 309 ref 130 1017 1017 process_extend 005264 constant entry internal dcl 351 ref 1017 process_keep_report 005276 constant entry internal dcl 359 ref 1017 1017 process_keep_retrieval 005311 constant entry internal dcl 367 ref 1017 1017 process_long 005324 constant entry internal dcl 375 ref 1017 1017 process_new_report 005337 constant entry internal dcl 383 ref 1017 1017 process_new_retrieval 005352 constant entry internal dcl 391 ref 1017 1017 process_old_report 005365 constant entry internal dcl 399 ref 1017 1017 process_old_retrieval 005377 constant entry internal dcl 407 ref 1017 1017 process_output_file 005411 constant entry internal dcl 415 ref 1017 1017 process_output_switch 005466 constant entry internal dcl 430 ref 1017 1017 process_pages 005543 constant entry internal dcl 445 ref 1017 1017 1017 1017 process_passes 006355 constant entry internal dcl 537 ref 1017 1017 process_scroll 006542 constant entry internal dcl 560 ref 1017 process_set_keys 006601 constant entry internal dcl 577 ref 1017 1017 1017 1017 process_sort 007073 constant entry internal dcl 622 ref 1017 process_temp_dir 007733 constant entry internal dcl 757 ref 1017 1017 process_time 010132 constant entry internal dcl 795 ref 1017 process_truncate 010006 constant entry internal dcl 770 ref 1017 1017 process_window 010021 constant entry internal dcl 778 ref 1017 1017 1017 1017 setup_additional_pathnames 010176 constant entry internal dcl 814 ref 63 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 12074 12170 11172 12104 Length 12754 11172 74 547 702 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_display_process_args 755 external procedure is an external procedure. initialize internal procedure shares stack frame of external procedure linus_display_process_args. process_args internal procedure shares stack frame of external procedure linus_display_process_args. lookup_arg_number internal procedure shares stack frame of external procedure linus_display_process_args. process_all 64 internal procedure is assigned to an entry variable. process_brief 64 internal procedure is assigned to an entry variable. process_character_positions 148 internal procedure is assigned to an entry variable. process_debug 64 internal procedure is assigned to an entry variable. process_discard_report 64 internal procedure is assigned to an entry variable. process_discard_retrieval 64 internal procedure is assigned to an entry variable. process_enable_escape_keys 77 internal procedure is assigned to an entry variable. process_enable_function_keys 82 internal procedure is assigned to an entry variable. process_extend 64 internal procedure is assigned to an entry variable. process_keep_report 64 internal procedure is assigned to an entry variable. process_keep_retrieval 64 internal procedure is assigned to an entry variable. process_long 64 internal procedure is assigned to an entry variable. process_new_report 64 internal procedure is assigned to an entry variable. process_new_retrieval 64 internal procedure is assigned to an entry variable. process_old_report 64 internal procedure is assigned to an entry variable. process_old_retrieval 64 internal procedure is assigned to an entry variable. process_output_file 90 internal procedure is assigned to an entry variable. process_output_switch 92 internal procedure is assigned to an entry variable. process_pages 116 internal procedure is assigned to an entry variable. process_passes 268 internal procedure is assigned to an entry variable. process_scroll 74 internal procedure is assigned to an entry variable. process_set_keys 114 internal procedure is assigned to an entry variable. process_sort 138 internal procedure is assigned to an entry variable. process_temp_dir 92 internal procedure is assigned to an entry variable. process_truncate 64 internal procedure is assigned to an entry variable. process_window 106 internal procedure is assigned to an entry variable. process_time 64 internal procedure is assigned to an entry variable. get_next_arg 74 internal procedure is called by several nonquick procedures. setup_additional_pathnames internal procedure shares stack frame of external procedure linus_display_process_args. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_display_process_args 000100 arg_length linus_display_process_args 000102 arg_ptr linus_display_process_args 000104 argument_number linus_display_process_args 000105 backup_necessary linus_display_process_args 000106 based_display_arg_results_ptr linus_display_process_args 000110 beginning_page_number linus_display_process_args 000111 bit_count linus_display_process_args 000112 code linus_display_process_args 000113 column_number linus_display_process_args 000114 current_arg linus_display_process_args 000115 ending_page_number linus_display_process_args 000116 entry_name linus_display_process_args 000126 first_page_number_supplied linus_display_process_args 000127 function_keys_can_be_used linus_display_process_args 000130 generate_right_margin_position linus_display_process_args 000131 largest_page_number linus_display_process_args 000132 lcb_ptr linus_display_process_args 000134 local_terminal_info linus_display_process_args 000154 loop linus_display_process_args 000155 loop1 linus_display_process_args 000156 loop2 linus_display_process_args 000157 loop3 linus_display_process_args 000160 next_column_name_found linus_display_process_args 000161 no_of_args_supplied linus_display_process_args 000162 normalized_option_name linus_display_process_args 000162 not_found linus_display_process_args 000163 option_value linus_display_process_args 000174 process_arg_procs linus_display_process_args 000530 sci_ptr linus_display_process_args 000532 smallest_page_number linus_display_process_args 000534 sort_bit_map_ptr linus_display_process_args 000536 still_processing_additional_sort_args linus_display_process_args 000537 still_processing_args linus_display_process_args 000540 still_processing_page_numbers linus_display_process_args 000541 still_processing_set_key_args linus_display_process_args 000542 still_processing_sort_specs linus_display_process_args 000543 temporary_dir_name linus_display_process_args 000615 test_string linus_display_process_args 000620 the_area_ptr linus_display_process_args 000622 time1 linus_display_process_args 000622 the_column_name linus_display_process_args 000624 time2 linus_display_process_args 000626 type linus_display_process_args 000627 window_system_cant_be_used linus_display_process_args 000630 function_key_data_ptr linus_display_process_args 000632 function_key_info linus_display_process_args 000632 display_arg_results linus_display_process_args 001002 scroll_ip linus_display_process_args 001004 sort_info_ptr linus_display_process_args 001006 no_of_candidate_columns linus_display_process_args 001010 table_ip linus_display_process_args 001012 terminal_info_ptr linus_display_process_args process_enable_escape_keys 000100 peek_loop process_enable_escape_keys process_enable_function_keys 000100 pefk_inner_loop process_enable_function_keys 000101 pefk_loop process_enable_function_keys process_set_keys 000100 psk_pair_of_key_bindings_found process_set_keys 000101 psk_function_name process_set_keys 000111 psk_function_key_sequence process_set_keys THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_var call_ext_out_desc call_ext_out call_int_this call_int_other return alloc_auto_adj shorten_stack ext_entry int_entry any_to_any_tr alloc_based vclock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_dec_check_ expand_pathname_ hcs_$status_minf ioa_$ioa_switch iox_$control linus_display_scroll$set_fkey linus_options$check_identifier linus_options$get ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ttt_info_$function_key_data THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$bad_conversion error_table_$badopt error_table_$inconsistent error_table_$no_operation error_table_$no_table error_table_$notadir iox_$error_output iox_$user_io linus_error_$bad_fkey_name linus_error_$bad_fkey_sequence linus_error_$bad_option_identifier linus_error_$bad_report_setup video_et_$unable_to_call_wsys LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 002737 1009 002751 1017 002761 1097 003453 4 10 003463 249 003471 676 003474 58 003477 60 003503 61 003504 63 003505 67 003513 69 003516 70 003522 75 003554 77 003555 79 003556 80 003562 81 003565 82 003570 83 003573 87 003576 88 003601 89 003623 90 003631 92 003633 93 003635 94 003636 95 003637 96 003640 100 003641 101 003646 102 003651 103 003654 104 003656 105 003660 106 003710 109 003720 112 003744 113 003745 115 003772 119 004023 121 004025 122 004030 128 004057 130 004061 132 004070 135 004074 139 004075 148 004076 150 004107 153 004112 154 004114 156 004116 158 004120 159 004124 160 004143 164 004200 166 004207 168 004210 170 004211 174 004222 175 004224 177 004226 179 004231 180 004234 183 004252 185 004257 187 004262 189 004263 196 004266 198 004274 200 004277 201 004301 203 004302 207 004303 209 004311 211 004314 215 004315 217 004323 218 004326 220 004330 223 004355 224 004362 225 004412 228 004447 231 004455 232 004462 234 004470 235 004472 236 004474 237 004475 239 004476 240 004477 242 004526 247 004563 249 004566 252 004625 255 004654 256 004711 258 004716 263 004750 267 004751 269 004757 271 004763 275 004764 277 004772 279 004775 283 004776 285 005004 287 005007 291 005010 295 005016 298 005035 300 005040 301 005047 302 005060 303 005070 305 005072 309 005073 314 005101 317 005120 320 005123 321 005125 324 005142 327 005153 330 005164 334 005175 335 005177 336 005207 339 005232 340 005233 342 005235 343 005245 345 005260 347 005262 351 005263 353 005271 355 005274 359 005275 361 005303 363 005307 367 005310 369 005316 371 005322 375 005323 377 005331 379 005335 383 005336 385 005344 387 005350 391 005351 393 005357 395 005363 399 005364 401 005372 403 005375 407 005376 409 005404 411 005407 415 005410 417 005416 420 005444 421 005451 422 005455 423 005462 424 005463 426 005464 430 005465 432 005473 435 005521 436 005526 437 005532 438 005537 439 005540 441 005541 445 005542 458 005550 459 005552 460 005554 462 005556 464 005562 465 005564 468 005566 470 005570 471 005575 472 005600 473 005601 475 005602 479 005635 480 005640 481 005643 484 005707 487 005722 489 005733 490 005761 493 006014 494 006016 496 006017 497 006056 500 006111 501 006136 505 006160 506 006213 511 006246 516 006307 517 006320 518 006324 520 006326 522 006330 523 006335 525 006343 526 006345 527 006346 529 006350 530 006351 531 006352 533 006353 537 006354 539 006362 542 006410 543 006415 546 006470 547 006474 549 006504 552 006535 556 006540 560 006541 562 006547 565 006566 567 006572 568 006573 569 006574 570 006575 571 006576 573 006577 577 006600 583 006606 586 006631 587 006632 589 006635 590 006641 591 006646 593 006660 596 006705 597 006710 598 006712 600 006713 601 006717 602 006724 603 006732 604 006734 606 006760 610 007016 613 007050 614 007064 616 007070 618 007071 622 007072 624 007100 628 007126 629 007133 639 007174 640 007200 642 007213 643 007215 645 007225 647 007236 649 007242 650 007245 651 007246 672 007247 676 007253 679 007315 683 007357 688 007373 689 007376 690 007423 691 007436 693 007450 694 007451 696 007453 700 007455 703 007512 707 007563 709 007566 711 007570 714 007576 716 007600 717 007602 718 007605 719 007606 720 007607 721 007614 724 007634 726 007645 729 007662 731 007673 733 007702 734 007704 736 007712 738 007714 739 007715 742 007716 744 007720 745 007722 746 007724 748 007725 749 007726 750 007727 751 007730 753 007731 757 007732 759 007740 762 007766 763 007773 764 007777 766 010004 770 010005 772 010013 774 010017 778 010020 780 010026 784 010067 787 010112 788 010117 789 010123 791 010130 795 010131 797 010137 799 010143 803 010144 805 010152 806 010167 807 010171 810 010175 814 010176 824 010177 826 010202 830 010226 836 010261 838 010264 841 010310 845 010343 847 010402 851 010455 854 010510 857 010563 859 010564 ----------------------------------------------------------- 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