COMPILATION LISTING OF SEGMENT rw_display_builtins Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/16/84 1125.3 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* This is the main level procedure called by ssu_ to implement the 9* report_writer_ display_builtins request. Description and usage follows. 10* 11* Description: 12* 13* This active request returns the value of the named builtin. The builtin 14* is named by the user. 15* 16* Usage: "display_builtins STR" 17* 18* where STR is the name of the desired builtin. It can be chosen from: 19* "current_row_number", "first_row", "last_row", "page_number", 20* "previously_processed_row", "last_row_number", "last_page_number", 21* "last_pass", or "current_pass_number". 22* 23* Both parameters are passed to this request by ssu_. 24* 25* 26* Known Bugs: 27* 28* Other Problems: 29* 30* History: 31* 32* Written - Al Dupuis - August 1983 33* Changed - Al Dupuis - October 1984 Became report_writer_. 34* 35**/ 36 37 rw_display_builtins: proc ( 38 39 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 40 report_cip_parm /* input: points to report_control_info */ 41 ); 42 43 dcl report_cip_parm ptr parm; 44 dcl sci_ptr_parm ptr parm; 45 46 call initialize; 47 call get_builtin_value; 48 49 return; 50 51 initialize: proc; 52 53 sci_ptr = sci_ptr_parm; 54 report_cip = report_cip_parm; 55 56 call ssu_$return_arg (sci_ptr, number_of_args_supplied, 57 active_request_flag, return_value_ptr, return_value_length); 58 if number_of_args_supplied ^= 1 59 then call ssu_$abort_line (sci_ptr, error_table_$inconsistent, 60 USAGE_MESSAGE); 61 62 if report_cip = null () 63 then call ssu_$abort_line (sci_ptr, rw_error_$no_report); 64 else if ^report_control_info.flags.report_has_been_started 65 then call ssu_$abort_line (sci_ptr, rw_error_$no_report); 66 67 format_report_ip = report_control_info.format_report_info_ptr; 68 status_pointer = format_report_info.status_ptr; 69 70 call ssu_$arg_ptr (sci_ptr, 1, arg_ptr, arg_length); 71 desired_builtin = arg; 72 73 return; 74 75 end initialize; 76 77 get_builtin_value: proc; 78 79 if desired_builtin = "current_row_number" 80 then value = ltrim (convert (value, status.current_row_number)); 81 else if desired_builtin = "first_row" 82 then if status.flags.first_row_of_report 83 then value = "true"; 84 else value = "false"; 85 else if desired_builtin = "last_row" 86 then if status.flags.last_row_of_report 87 then value = "true"; 88 else value = "false"; 89 else if desired_builtin = "page_number" 90 then value = ltrim (convert (value, status.current_page_number)); 91 else if desired_builtin = "previously_processed_row" 92 then if status.flags.row_has_been_processed_before 93 then value = "true"; 94 else value = "false"; 95 else if desired_builtin = "last_row_number" 96 then value = ltrim (convert (value, status.last_row_number)); 97 else if desired_builtin = "last_page_number" 98 then value = ltrim (convert (value, status.last_page_number)); 99 else if desired_builtin = "current_pass_number" 100 then value = ltrim (convert (value, status.current_pass_number)); 101 else if desired_builtin = "last_pass" 102 then if status.flags.last_pass 103 then value = "true"; 104 else value = "false"; 105 else call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 106 "^/^a is not the name of a display builtin.", desired_builtin); 107 108 return_value = requote_string_ (rtrim (value)); 109 110 return; 111 112 end get_builtin_value; 113 114 dcl USAGE_MESSAGE char (31) static int options (constant) init ( 115 "^/Usage: [display_builtins STR]"); 116 117 dcl active_request_flag bit (1) aligned; 118 dcl arg char (arg_length) based (arg_ptr); 119 dcl arg_length fixed bin (21); 120 dcl arg_ptr ptr; 121 122 dcl convert builtin; 123 124 dcl desired_builtin char (32) varying; 125 126 dcl error_table_$bad_arg fixed bin(35) ext static; 127 dcl error_table_$inconsistent fixed bin(35) ext static; 128 129 dcl ltrim builtin; 130 131 dcl null builtin; 132 dcl number_of_args_supplied fixed bin; 133 134 dcl requote_string_ entry (char(*)) returns(char(*)); 135 dcl return_value char (return_value_length) varying based (return_value_ptr); 136 dcl return_value_length fixed bin (21); 137 dcl return_value_ptr ptr; 138 dcl rtrim builtin; 139 dcl rw_error_$no_report fixed bin(35) ext static; 140 141 dcl sci_ptr ptr; 142 dcl ssu_$abort_line entry() options(variable); 143 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 144 dcl ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, ptr, fixed bin(21)); 145 146 dcl value char (16); 147 1 1 /* BEGIN INCLUDE FILE rw_options_extents.incl.pl1 1 2* 1 3* Extents for the formatting options used for producing reports. 1 4* Kept as a separate include so that some programs may include this 1 5* file without including rw_format_options.incl.pl1 1 6* 1 7* Al Dupuis - August 1983 1 8* 1 9**/ 1 10 /* format: off */ 1 11 1 12 /* The three types of format options that we have. */ 1 13 1 14 dcl GENERAL_REPORT_OPTION fixed bin static int options (constant) init (1); 1 15 dcl GENERAL_COLUMN_OPTION fixed bin static int options (constant) init (2); 1 16 dcl SPECIFIC_COLUMN_OPTION fixed bin static int options (constant) init (3); 1 17 1 18 /* Used to determine how big the tables are without doing a hbound on it. */ 1 19 1 20 dcl NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (15); 1 21 dcl NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE fixed bin static int options (constant) init (9); 1 22 dcl NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (6); 1 23 1 24 /* Used to determine how much space is needed to list them. */ 1 25 1 26 dcl LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (10); /* -alignment */ 1 27 dcl LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH fixed bin static int options (constant) init (25); /* -format_document_controls */ 1 28 dcl LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (21); /* -group_footer_trigger */ 1 29 1 30 /* MAXIMUM_OPTION_IDENTIFIER_LENGTH + MAXIMUM_OPTION_NAME_LENGTH */ 1 31 1 32 dcl MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH fixed bin static int options (constant) init (101); 1 33 1 34 dcl MAXIMUM_OPTION_IDENTIFIER_LENGTH fixed bin static int options (constant) init (69); 1 35 dcl MAXIMUM_OPTION_NAME_LENGTH fixed bin static int options (constant) init (32); 1 36 dcl MAXIMUM_OPTION_VALUE_LENGTH fixed bin static int options (constant) init (4096); 1 37 1 38 /* Used to index into the OPTIONS tables defined in rw_format_options.incl.pl1. */ 1 39 1 40 dcl INDEX_FOR_DELIMITER fixed bin static int options (constant) init (1); 1 41 dcl INDEX_FOR_FORMAT_DOCUMENT_CONTROLS fixed bin static int options (constant) init (2); 1 42 dcl INDEX_FOR_HYPHENATION fixed bin static int options (constant) init (3); 1 43 dcl INDEX_FOR_PAGE_FOOTER_VALUE fixed bin static int options (constant) init (4); 1 44 dcl INDEX_FOR_PAGE_HEADER_VALUE fixed bin static int options (constant) init (5); 1 45 dcl INDEX_FOR_PAGE_LENGTH fixed bin static int options (constant) init (6); 1 46 dcl INDEX_FOR_PAGE_WIDTH fixed bin static int options (constant) init (7); 1 47 dcl INDEX_FOR_TITLE_LINE fixed bin static int options (constant) init (8); 1 48 dcl INDEX_FOR_TRUNCATION fixed bin static int options (constant) init (9); 1 49 1 50 dcl INDEX_FOR_COLUMN_ORDER fixed bin static int options (constant) init (1); 1 51 dcl INDEX_FOR_COUNT fixed bin static int options (constant) init (2); 1 52 dcl INDEX_FOR_EXCLUDE fixed bin static int options (constant) init (3); 1 53 dcl INDEX_FOR_GROUP fixed bin static int options (constant) init (4); 1 54 dcl INDEX_FOR_GROUP_FOOTER_TRIGGER fixed bin static int options (constant) init (5); 1 55 dcl INDEX_FOR_GROUP_FOOTER_VALUE fixed bin static int options (constant) init (6); 1 56 dcl INDEX_FOR_GROUP_HEADER_TRIGGER fixed bin static int options (constant) init (7); 1 57 dcl INDEX_FOR_GROUP_HEADER_VALUE fixed bin static int options (constant) init (8); 1 58 dcl INDEX_FOR_OUTLINE fixed bin static int options (constant) init (9); 1 59 dcl INDEX_FOR_PAGE_BREAK fixed bin static int options (constant) init (10); 1 60 dcl INDEX_FOR_ROW_FOOTER_VALUE fixed bin static int options (constant) init (11); 1 61 dcl INDEX_FOR_ROW_HEADER_VALUE fixed bin static int options (constant) init (12); 1 62 dcl INDEX_FOR_SUBCOUNT fixed bin static int options (constant) init (13); 1 63 dcl INDEX_FOR_SUBTOTAL fixed bin static int options (constant) init (14); 1 64 dcl INDEX_FOR_TOTAL fixed bin static int options (constant) init (15); 1 65 1 66 dcl INDEX_FOR_ALIGNMENT fixed bin static int options (constant) init (1); 1 67 dcl INDEX_FOR_EDITING fixed bin static int options (constant) init (2); 1 68 dcl INDEX_FOR_FOLDING fixed bin static int options (constant) init (3); 1 69 dcl INDEX_FOR_SEPARATOR fixed bin static int options (constant) init (4); 1 70 dcl INDEX_FOR_TITLE fixed bin static int options (constant) init (5); 1 71 dcl INDEX_FOR_WIDTH fixed bin static int options (constant) init (6); 1 72 1 73 /* END INCLUDE FILE rw_options_extents */ 148 149 2 1 /* BEGIN INCLUDE FILE rw_report_info.incl.pl1 2 2* Information needed to control the report environment. 2 3* Al Dupuis - August 1983 2 4**/ 2 5 /* format: off */ 2 6 2 7 dcl 1 report_control_info aligned based (report_cip), 2 8 2 flags, 2 9 3 report_is_paginated bit (1) unaligned, /* paged or one continous stream */ 2 10 3 table_has_been_started bit (1) unaligned, /* table clean up is necessary */ 2 11 3 table_is_full bit (1) unaligned, /* no more retrieves are necessary */ 2 12 3 report_has_been_started bit (1) unaligned, /* report clean up is necessary */ 2 13 3 report_is_formatted bit (1) unaligned, /* no more formatting is necessary */ 2 14 3 permanent_report bit (1) unaligned, /* or disposable */ 2 15 3 permanent_table bit (1) unaligned, /* or disposable */ 2 16 3 report_has_just_been_completed bit (1) unaligned, /* used for printing timers */ 2 17 3 table_has_just_been_loaded bit (1) unaligned, /* used for printing timers */ 2 18 3 multi_pass_mode bit (1) unaligned, /* on if we are to do more than 1 pass */ 2 19 3 available bit (26) unaligned, 2 20 2 format_options_flags, /* used to determine if value is default */ 2 21 3 general_report_default_value (NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE) bit (1) unaligned, 2 22 3 general_column_default_value (NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE) bit (1) unaligned, 2 23 2 value_seg_ptr ptr, /* the options value seg */ 2 24 2 table_information_ptr ptr, /* points to table_info */ 2 25 2 table_control_info_ptr ptr, /* points to table_control_info */ 2 26 2 row_value_temp_segment_ptr ptr, /* points to a segment for the row value */ 2 27 2 general_work_area_ptr ptr, /* a freeing work area */ 2 28 2 name_value_area_ptr ptr, /* area for name-value allocations */ 2 29 2 subsystem_control_info_ptr ptr, /* ptr for ssu_ info structure */ 2 30 2 subsystems_info_ptr ptr, /* points to subsystems info structure */ 2 31 2 name_value_temp_seg_ptr ptr, /* temp seg for name-value space */ 2 32 2 report_temp_seg_ptr ptr, /* report workspace */ 2 33 2 report_work_area_ptr ptr, /* report workspace */ 2 34 2 format_report_info_ptr ptr, /* info needed to create a report */ 2 35 2 input_string_temp_seg_ptr ptr, /* report workspace */ 2 36 2 output_string_temp_seg_ptr ptr, /* report workspace */ 2 37 2 editing_strings_temp_seg_ptr ptr, /* report workspace */ 2 38 2 headers_temp_seg_ptr ptr, /* report workspace */ 2 39 2 display_iocb_ptr ptr, /* report is displayed through this */ 2 40 2 area_info_ptr ptr, /* points to area_info structure */ 2 41 2 table_manager_delete_table_entry variable entry (ptr, fixed bin (35)), /* entry who deletes the table */ 2 42 2 table_manager_get_query_entry variable entry (ptr, ptr, fixed bin (21), fixed bin (35)), /* entry who gets the query */ 2 43 2 table_manager_get_row_entry variable entry (ptr, fixed bin (35)), /* entry who loads rows */ 2 44 2 table_manager_create_table_entry variable entry (ptr, fixed bin (35)), /* entry who makes a new table */ 2 45 2 options_identifier fixed bin, /* current set of options */ 2 46 2 report_identifier fixed bin, /* current report */ 2 47 2 no_of_rows_retrieved fixed bin (35), /* current no of rows */ 2 48 2 no_of_formatted_pages fixed bin (21), /* current no of pages */ 2 49 2 number_of_passes fixed bin, /* number of times report will be formatted */ 2 50 2 table_loading_time float bin (63), 2 51 2 table_sorting_time float bin (63), 2 52 2 table_deletion_time float bin (63), 2 53 2 report_setup_time float bin (63), 2 54 2 report_formatting_time float bin (63), 2 55 2 report_display_time float bin (63), 2 56 2 report_deletion_time float bin (63), 2 57 2 ssu_evaluate_active_string_time float bin (63), 2 58 2 temp_dir_unique_id bit (36), /* uid of temp dir */ 2 59 2 subsystems_ec_suffix char (32), /* suffix for saving and restoring ecs */ 2 60 2 temp_dir_name char (168) unaligned; /* the dir where we place the retrieved table and report */ 2 61 dcl report_cip ptr init (null ()); 2 62 2 63 /* END INCLUDE FILE rw_report_info.incl.pl1 */ 150 151 3 1 /* BEGIN INCLUDE FILE rw_report_structures.incl.pl1 3 2* 3 3* Written - Al Dupuis - August 1983 3 4**/ 3 5 /* format: off */ 3 6 3 7 /* Used in column_info.alignment and column_info.subsystem_data_type */ 3 8 3 9 dcl BIT_DATA_TYPE fixed bin static int options (constant) init (1); 3 10 dcl BOTH_ALIGNMENT fixed bin static int options (constant) init (1); 3 11 dcl CENTER_ALIGNMENT fixed bin static int options (constant) init (2); 3 12 dcl CHAR_DATA_TYPE fixed bin static int options (constant) init (2); 3 13 dcl DECIMAL_ALIGNMENT fixed bin static int options (constant) init (3); 3 14 dcl DECIMAL_DATA_TYPE fixed bin static int options (constant) init (3); 3 15 dcl LEFT_ALIGNMENT fixed bin static int options (constant) init (4); 3 16 dcl NUMERIC_DATA_TYPE fixed bin static int options (constant) init (4); 3 17 dcl RIGHT_ALIGNMENT fixed bin static int options (constant) init (5); 3 18 3 19 dcl 1 column_info aligned based (column_ip), 3 20 2 flags, 3 21 3 folding_is_fill bit (1) unaligned, /* fill or truncate */ 3 22 3 outline bit (1) unaligned, /* on means the display has been suppressed */ 3 23 3 editing bit (1) unaligned, /* on means there is an editing request */ 3 24 3 restore_editing bit (1) unaligned, /* used to toggle the editing bit */ 3 25 3 available bit (32) unaligned, 3 26 2 order fixed bin, /* as specified by the user */ 3 27 2 input_column fixed bin, /* # of the column in the table */ 3 28 2 output_column fixed bin, /* # of the column on the page */ 3 29 2 output_line fixed bin, /* within the block */ 3 30 2 starting_position fixed bin, /* within the page width */ 3 31 2 width fixed bin, /* in characters */ 3 32 2 alignment fixed bin, /* set to one of the above alignment constants */ 3 33 2 decimal_position fixed bin, /* only needed for decimal alignment */ 3 34 2 subsystem_data_type fixed bin, /* set to one of the above data type constants */ 3 35 2 editing_string_length fixed bin (21), /* before evaluation */ 3 36 2 editing_string_result_length fixed bin (21), /* after evaluation */ 3 37 2 editing_string_ptr ptr, /* before evaluation */ 3 38 2 editing_string_result_ptr ptr, /* after evaluation */ 3 39 2 prefix_character char (1) varying; /* column prefix */ 3 40 dcl column_ip ptr; 3 41 3 42 dcl 1 columns_info aligned based (columns_ip), /* an array of column_info's */ 3 43 2 number_of_columns fixed bin, 3 44 2 columns (initialize_number_of_columns 3 45 refer (columns_info.number_of_columns)) like column_info; 3 46 dcl columns_ip ptr; 3 47 3 48 dcl 1 column_map (column_map_number_of_columns) aligned based (column_mp), 3 49 2 present bit (1), /* the column is present in the list */ 3 50 2 position fixed bin; /* position where this column was found in the list */ 3 51 dcl column_map_number_of_columns fixed bin; 3 52 dcl column_mp ptr; 3 53 3 54 dcl 1 count_columns_info like columns_info based (count_columns_ip); 3 55 dcl count_columns_ip ptr; 3 56 3 57 dcl 1 count_info like total_info based (count_ip); 3 58 dcl count_ip ptr; 3 59 3 60 /* Used to access the current row from the table */ 3 61 dcl current_row_value char (table_info.row_value_length) based (status.current_row_ptr); 3 62 3 63 /* Used to pick up the value before or after evaluation */ 3 64 dcl editing_string_result char (editing_string_rl) based (editing_string_rp); 3 65 dcl editing_string_rl fixed bin; 3 66 dcl editing_string_rp ptr; 3 67 3 68 dcl editing_strings_next_byte fixed bin (21); 3 69 /* Used to store editing strings before and after evaluation. */ 3 70 dcl editing_strings_temp_seg char (maximum_segment_size) based (editing_strings_tsp); 3 71 dcl editing_strings_temp_seg_as_an_array (maximum_segment_size) char (1) based (editing_strings_tsp); 3 72 dcl editing_strings_tsp ptr; 3 73 3 74 dcl 1 format_report_info aligned based (format_report_ip), 3 75 2 flags, 3 76 3 unlimited_page_length bit (1) unaligned, /* -page_length equal to zero */ 3 77 3 unlimited_page_width bit (1) unaligned, /* -page_width equal to zero */ 3 78 3 page_header_is_defined bit (1) unaligned, /* -page_header_value */ 3 79 3 group_header_is_defined bit (1) unaligned, /* -group_header_value */ 3 80 3 group_header_trigger_is_defined bit (1) unaligned, /* -group_header_trigger */ 3 81 3 title_block_is_defined bit (1) unaligned, /* -title_line */ 3 82 3 row_header_is_defined bit (1) unaligned, /* -row_header_value */ 3 83 3 row_value_is_defined bit (1) unaligned, /* if all of the columns weren't excluded */ 3 84 3 row_footer_is_defined bit (1) unaligned, /* -row_footer_value */ 3 85 3 group_footer_is_defined bit (1) unaligned, /* -group_footer_value */ 3 86 3 group_footer_trigger_is_defined bit (1) unaligned, /* -group_footer_trigger */ 3 87 3 page_footer_is_defined bit (1) unaligned, /* -page_footer_value */ 3 88 3 editing_is_defined bit (1) unaligned, /* -editing */ 3 89 3 exclude_is_defined bit (1) unaligned, /* -exclude */ 3 90 3 group_is_defined bit (1) unaligned, /* -group */ 3 91 3 outline_is_defined bit (1) unaligned, /* -outline */ 3 92 3 page_break_is_defined bit (1) unaligned, /* -page_break */ 3 93 3 subtotal_is_defined bit (1) unaligned, /* -subtotal */ 3 94 3 subcount_is_defined bit (1) unaligned, /* -subcount */ 3 95 3 total_is_defined bit (1) unaligned, /* -total */ 3 96 3 count_is_defined bit (1) unaligned, /* -count */ 3 97 3 available bit (15) unaligned, 3 98 2 page_width fixed bin, /* as given by the user */ 3 99 2 page_length fixed bin, /* as given by the user */ 3 100 2 number_of_formatted_rows fixed bin (35), /* updated at the end of each page */ 3 101 2 editing_strings_next_available_byte fixed bin (21), /* beginning of temp space for execution */ 3 102 2 headers_next_available_byte fixed bin (21), /* beginning of temp space for execution */ 3 103 2 report_iocb_ptr ptr, /* for saving copies of the page */ 3 104 2 table_info_ptr ptr, /* to avoid repetitive calls to rw_table$info */ 3 105 2 format_document_op ptr, /* format_document_options structure */ 3 106 2 page_info_ptr ptr, /* page_info structure */ 3 107 2 copy_of_page_info_ptr ptr, /* version of page_info structure that can be changed */ 3 108 /* after each page */ 3 109 2 formatted_page_info_ptr ptr, /* formatted_page_info structure */ 3 110 2 overstrike_info_ptr ptr, /* page_overstrike_info structure */ 3 111 2 status_ptr ptr, /* status structure */ 3 112 2 template_map_ptr ptr, /* template_map array */ 3 113 2 page_header_info_ptr ptr, /* header_info structure */ 3 114 2 page_footer_info_ptr ptr, /* header_info structure */ 3 115 2 group_header_info_ptr ptr, /* header_info structure */ 3 116 2 group_footer_info_ptr ptr, /* header_info structure */ 3 117 2 group_header_trigger_info_ptr ptr, /* group_info structure */ 3 118 2 group_footer_trigger_info_ptr ptr, /* group_info structure */ 3 119 2 row_header_info_ptr ptr, /* header_info structure */ 3 120 2 row_footer_info_ptr ptr, /* header_info structure */ 3 121 2 title_block_columns_info_ptr ptr, /* title_block_columns_info structure */ 3 122 2 title_block_info_ptr ptr, /* title_block_info structure */ 3 123 2 input_columns_info_ptr ptr, /* input_columns_info structure */ 3 124 2 input_columns_order_ptr ptr, /* input_columns_order array */ 3 125 2 output_columns_info_ptr ptr, /* output_columns_info structure */ 3 126 2 group_info_ptr ptr, /* group_info structure */ 3 127 2 outline_info_ptr ptr, /* outline_info structure */ 3 128 2 page_break_info_ptr ptr, /* page_break_info structure */ 3 129 2 subtotal_info_ptr ptr, /* subtotal_info structure */ 3 130 2 subcount_info_ptr ptr, /* subcount_info structure */ 3 131 2 total_info_ptr ptr, /* total_info structure */ 3 132 2 count_info_ptr ptr, /* count_info structure */ 3 133 2 row_value_template_info_ptr ptr, /* row_value_template_info structure */ 3 134 2 generic_template_ptr ptr, /* generic_template char string */ 3 135 2 header_part_delimiter char (1) unaligned, /* delimits the different portions of a header/footer */ 3 136 2 truncation_indicator char (32) varying unaligned, /* used to indicate that truncation has occured */ 3 137 2 report_directory_name char (168) unaligned, /* dir where we place copies of the page */ 3 138 2 report_entry_name char (32) unaligned; /* entry name portion of above */ 3 139 dcl format_report_ip ptr; 3 140 3 141 /* used to format page/row headers and footers */ 3 142 dcl generic_template char (generic_template_length) based (generic_tp); 3 143 dcl generic_template_length fixed bin; 3 144 dcl generic_tp ptr; 3 145 3 146 /* these columns form a group of rows and are used with outlining, etc. */ 3 147 dcl 1 group_info aligned based (group_ip), 3 148 2 number_of_columns_to_group fixed bin, 3 149 2 column_number (gi_init_number_of_columns_to_group 3 150 refer (group_info.number_of_columns_to_group)) fixed bin; 3 151 dcl gi_init_number_of_columns_to_group fixed bin; 3 152 dcl group_ip ptr; 3 153 3 154 dcl headers_next_byte fixed bin (21); 3 155 /* used to hold the page/row headers/footers, and temp space for totals/subtotals. */ 3 156 dcl headers_temp_seg char (maximum_segment_size) based (headers_tsp); 3 157 dcl headers_temp_seg_as_an_array (maximum_segment_size) char (1) based (headers_tsp); 3 158 dcl headers_tsp ptr; 3 159 3 160 dcl 1 header_info aligned based (header_ip), 3 161 2 number_of_lines fixed bin, /* number of header lines typed in by the user */ 3 162 2 maximum_number_of_parts fixed bin, /* 3 parts maximum (left, right, and center) */ 3 163 2 lines (hi_init_number_of_lines 3 164 refer (header_info.number_of_lines)), 3 165 3 parts (hi_init_maximum_number_of_parts 3 166 refer (header_info.maximum_number_of_parts)), 3 167 4 flags, 3 168 5 present bit (1) unaligned, /* this particular part is defined */ 3 169 5 active bit (1) unaligned, /* and it contains active functions */ 3 170 5 available bit (34) unaligned, 3 171 4 index fixed bin (21), /* before evaluation */ 3 172 4 length fixed bin (21), /* before evaluation */ 3 173 4 starting_position fixed bin, /* within the page width */ 3 174 4 width fixed bin, /* within the page width */ 3 175 4 alignment fixed bin; /* left, right, or center */ 3 176 dcl header_ip ptr; 3 177 dcl hi_init_maximum_number_of_parts fixed bin; 3 178 dcl hi_init_number_of_lines fixed bin; 3 179 3 180 dcl initialize_number_of_columns fixed bin; /* columns_info refer extent */ 3 181 3 182 dcl 1 input_columns_info aligned like columns_info based (input_columns_ip); /* the columns in the table */ 3 183 dcl input_columns_ip ptr; 3 184 3 185 dcl input_columns_order (input_columns_info.number_of_columns) fixed bin based (input_columns_op); 3 186 dcl input_columns_op ptr; 3 187 3 188 dcl maximum_segment_size fixed bin (21); /* in characters */ 3 189 3 190 /* Used to access the next row from the table */ 3 191 dcl next_row_value char (table_info.row_value_length) based (status.next_row_ptr); 3 192 3 193 dcl 1 outline_info aligned based (outline_ip), /* who gets oulining attempted */ 3 194 2 maximum_number_of_single_columns fixed bin, 3 195 2 maximum_number_of_grouping_columns fixed bin, 3 196 2 number_of_single_columns fixed bin, /* columns who are not a member of the group */ 3 197 2 number_of_grouping_columns fixed bin, /* columns who are a member of the group */ 3 198 2 single_columns (oi_init_maximum_number_of_single_columns refer ( 3 199 outline_info.maximum_number_of_single_columns)) fixed bin, 3 200 2 grouping_columns (oi_init_maximum_number_of_grouping_columns refer ( 3 201 outline_info.maximum_number_of_grouping_columns)) fixed bin; 3 202 dcl oi_init_maximum_number_of_grouping_columns fixed bin; 3 203 dcl oi_init_maximum_number_of_single_columns fixed bin; 3 204 dcl outline_ip ptr; 3 205 3 206 dcl 1 output_columns_info like columns_info based (output_columns_ip); /* the columns that will go on the page */ 3 207 dcl output_columns_ip ptr; 3 208 3 209 /* these columns will be checked to determine if a page break is required */ 3 210 dcl 1 page_break_info aligned based (page_break_ip), 3 211 2 number_of_columns fixed bin, 3 212 2 columns (pbi_init_number_of_columns refer ( 3 213 page_break_info.number_of_columns)) bit (1) unaligned; 3 214 dcl page_break_ip ptr; 3 215 dcl pbi_init_number_of_columns fixed bin; 3 216 3 217 /* Used to access the previous row from the table */ 3 218 dcl previous_row_value char (table_info.row_value_length) based (status.previous_row_ptr); 3 219 3 220 /* The templates for the row value (also used for titles, subtotals, and totals.) */ 3 221 dcl 1 row_value_template_info like template_info based (row_value_template_ip); 3 222 dcl row_value_template_ip ptr; 3 223 3 224 /* main execution control structure for rw_fr_build_page */ 3 225 dcl 1 status aligned based (status_pointer), 3 226 2 flags, 3 227 3 still_formatting_detail_blocks bit (1), /* turned on while we are doing detail blocks */ 3 228 3 first_row_of_report bit (1), /* turned on when we are on the first row of a report */ 3 229 3 last_row_of_report bit (1), /* turned on when we are on the last row of a report */ 3 230 3 first_row_on_page bit (1), /* turned on when we are on the 1st row of a page */ 3 231 3 page_overflow bit (1), /* turned on when we are backing up */ 3 232 3 subtotals_ejection_in_progress bit (1), /* turned on when subtotals are being ejected */ 3 233 3 subcounts_ejection_in_progress bit (1), /* turned on when subcounts are being ejected */ 3 234 3 totals_ejection_in_progress bit (1), /* turned on when totals are being ejected */ 3 235 3 counts_ejection_in_progress bit (1), /* turned on when counts are being ejected */ 3 236 3 header_being_evaluated bit (1), /* turned on during header evaluation */ 3 237 3 detail_block_used_some_lines bit (1), /* turned on when a row header/footer/value/subtotal/total uses a line */ 3 238 3 row_has_been_processed_before bit (1), /* turned on when this row has been backed out of the previous page */ 3 239 3 last_pass bit (1), /* true if this is the last pass */ 3 240 2 previous_row_ptr ptr, /* points to the previous row (or null) */ 3 241 2 current_row_ptr ptr, /* points to the current row */ 3 242 2 next_row_ptr ptr, /* points to the next row (or null) */ 3 243 2 total_number_of_rows_used fixed bin, /* total # per page, used to make sure we don't */ 3 244 /* backup over the 1st row */ 3 245 2 current_pass_number fixed bin, /* [display_builtins current_pass_number] */ 3 246 2 current_row_number fixed bin (35), /* [display_builtins current_row_number] */ 3 247 2 current_column_number fixed bin, /* set to the current output column during row evaluation */ 3 248 2 current_page_number fixed bin (21), /* [display_builtins page_number] */ 3 249 2 current_line_on_page fixed bin, /* this is where the next thing is placed on the page */ 3 250 2 remaining_lines_on_page fixed bin, /* used in estimating if something will fit */ 3 251 2 highest_row_formatted fixed bin, /* used to keep track of rows backed out of the page */ 3 252 2 current_header_line fixed bin, /* set to the current header line during header evaluation */ 3 253 2 current_header_part fixed bin, /* set to the current header part during header evaluation */ 3 254 2 number_of_lines_needed_for_detail_block fixed bin, /* sum of row header, footer, and value */ 3 255 2 number_of_lines_needed_for_row_header fixed bin, /* may be zero */ 3 256 2 number_of_lines_needed_for_row_value fixed bin, /* may be zero */ 3 257 2 number_of_lines_needed_for_row_footer fixed bin, /* may be zero */ 3 258 2 number_of_lines_needed_for_page_footer fixed bin, /* may be zero */ 3 259 2 number_of_lines_needed_for_group_header fixed bin, /* may be zero */ 3 260 2 number_of_lines_needed_for_group_footer fixed bin, /* may be zero */ 3 261 2 last_row_number fixed bin (35), /* zero unless multi-pass */ 3 262 2 last_page_number fixed bin, /* zero unless multi-pass mode */ 3 263 2 object_being_evaluated char (16) varying; /* "page header", "row value", etc. */ 3 264 dcl status_pointer ptr; 3 265 3 266 dcl 1 subcount_columns_info like columns_info based (subcount_columns_ip); 3 267 dcl subcount_columns_ip ptr; 3 268 3 269 dcl 1 subcount_generation_info like subtotal_generation_info based (subcount_generation_ip); 3 270 dcl subcount_generation_ip ptr; 3 271 3 272 dcl 1 subcount_info like subtotal_info based (subcount_ip); 3 273 dcl subcount_ip ptr; 3 274 3 275 dcl 1 subtotal_columns_info like columns_info based (subtotal_columns_ip); 3 276 dcl subtotal_columns_ip ptr; 3 277 3 278 /* Used to restore subtotals when backing up on a page. */ 3 279 dcl 1 subtotal_generation_info aligned based (subtotal_generation_ip), 3 280 2 maximum_number_of_generation_blocks fixed bin, /* maximum number of subtotals possibly generated per page + 1 */ 3 281 2 number_of_subtotals fixed bin, /* # of subtotals we're taking */ 3 282 2 current_generation_block fixed bin, /* slot for next subtotal generation */ 3 283 2 generations (0:sgi_init_number_of_generations 3 284 refer (subtotal_generation_info.maximum_number_of_generation_blocks)), 3 285 3 subtotals (sgi_init_number_of_subtotals /* value of the subtotals when the break occured */ 3 286 refer (subtotal_generation_info.number_of_subtotals)) float dec (59); 3 287 dcl sgi_init_number_of_generations fixed bin; 3 288 dcl sgi_init_number_of_subtotals fixed bin; 3 289 dcl subtotal_generation_ip ptr; 3 290 3 291 dcl 1 subtotal_info aligned based (subtotal_ip), 3 292 2 columns_info_ptr ptr, /* points to subtotal_columns_info structure */ 3 293 2 subtotal_generation_info_ptr ptr, /* points to subtotal_generations_info structure */ 3 294 2 number_of_columns_to_subtotal fixed bin, /* the number of subtotals */ 3 295 2 highest_level fixed bin, /* the largest number of different subtotals on a single column */ 3 296 2 current_level fixed bin, /* the current level of subtotals being evaluated */ 3 297 2 columns (si_init_number_of_columns_to_subtotal 3 298 refer (subtotal_info.number_of_columns_to_subtotal)), 3 299 3 flags, 3 300 4 reset bit (1) unaligned, /* reset or running subtotals */ 3 301 4 group_column bit (1) unaligned, /* on means the watch column is a grouping column */ 3 302 4 available bit (34) unaligned, 3 303 3 input_column fixed bin, /* # of the input column for accumulations */ 3 304 3 watch_column fixed bin, /* # of the column to watch for generation */ 3 305 3 level fixed bin, /* different subtotals on the same column receive higher level numbers */ 3 306 3 ioa_string char (5) varying, /* used to edit the "subtotal" field */ 3 307 3 subtotal float dec (59); /* used to hold the subtotal until it needs /* 3 308* /* to be placed on the page */ 3 309 dcl si_init_number_of_columns_to_subtotal fixed bin; 3 310 dcl subtotal_ip ptr; 3 311 3 312 dcl 1 template_info aligned based (template_ip), /* templates that are laid down before the column values */ 3 313 2 template_width fixed bin, /* how wide they are */ 3 314 2 number_of_templates fixed bin, /* how many there are */ 3 315 2 templates (ti_init_number_of_templates refer (template_info.number_of_templates)) /* the templates */ 3 316 char (ti_init_template_width refer (template_info.template_width)); 3 317 dcl ti_init_number_of_templates fixed bin; 3 318 dcl template_ip ptr; 3 319 dcl ti_init_template_width fixed bin; 3 320 3 321 /* used to determine which templates have been placed */ 3 322 dcl template_map (template_map_number_of_bits) bit (1) unaligned based (template_mp); 3 323 dcl template_mp ptr; 3 324 dcl template_map_number_of_bits fixed bin; 3 325 dcl template_map_defined_as_a_string bit (template_map_number_of_bits) based (template_mp); 3 326 3 327 dcl template char (template_length) based (template_ptr); 3 328 dcl template_length fixed bin; 3 329 dcl template_ptr ptr; 3 330 3 331 dcl 1 title_block_columns_info like columns_info based (title_block_columns_ip); /* output columns for the titles */ 3 332 dcl title_block_columns_ip ptr; 3 333 3 334 /* holds the formatted title block after page 1 is finished */ 3 335 dcl 1 title_block_info aligned based (title_block_ip), 3 336 2 number_of_lines fixed bin, /* how many lines there are */ 3 337 2 line_length fixed bin, /* how long the lines are */ 3 338 2 lines (tbi_init_number_of_lines refer ( /* the formatted lines */ 3 339 title_block_info.number_of_lines)) char (tbi_init_line_length refer ( 3 340 title_block_info.line_length)); 3 341 dcl tbi_init_line_length fixed bin; 3 342 dcl tbi_init_number_of_lines fixed bin; 3 343 dcl title_block_ip ptr; 3 344 3 345 dcl 1 total_columns_info like columns_info based (total_columns_ip); /* output_columns_info for totals */ 3 346 dcl total_columns_ip ptr; 3 347 3 348 dcl 1 total_info aligned based (total_ip), 3 349 2 columns_info_ptr ptr, /* points to total_columns_info structure */ 3 350 2 number_of_columns_to_total fixed bin, /* # to total */ 3 351 2 columns (ti_init_number_of_columns_to_total 3 352 refer (total_info.number_of_columns_to_total)), 3 353 3 input_column fixed bin, /* the input column number */ 3 354 3 ioa_string char (5) varying, /* used to edit the "total" field */ 3 355 3 total float dec (59); /* used to hold the total until it's placed on the page */ 3 356 dcl ti_init_number_of_columns_to_total fixed bin; 3 357 dcl total_ip ptr; 3 358 3 359 /* END INCLUDE FILE rw_report_structures.incl.pl1 */ 152 153 154 end rw_display_builtins; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/16/84 1107.0 rw_display_builtins.pl1 >special_ldd>online>7001-11/16/84>rw_display_builtins.pl1 148 1 11/16/84 1107.8 rw_options_extents.incl.pl1 >special_ldd>online>7001-11/16/84>rw_options_extents.incl.pl1 150 2 11/16/84 1107.6 rw_report_info.incl.pl1 >special_ldd>online>7001-11/16/84>rw_report_info.incl.pl1 152 3 11/16/84 1107.8 rw_report_structures.incl.pl1 >special_ldd>online>7001-11/16/84>rw_report_structures.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 1-20 ref 67 NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 1-21 ref 67 USAGE_MESSAGE 000000 constant char(31) initial unaligned dcl 114 set ref 58* active_request_flag 000100 automatic bit(1) dcl 117 set ref 56* arg based char unaligned dcl 118 ref 71 arg_length 000101 automatic fixed bin(21,0) dcl 119 set ref 70* 71 arg_ptr 000102 automatic pointer dcl 120 set ref 70* 71 column_info based structure level 1 dcl 3-19 columns_info based structure level 1 dcl 3-42 convert builtin function dcl 122 ref 79 89 95 97 99 current_page_number 30 based fixed bin(21,0) level 2 dcl 3-225 ref 89 current_pass_number 25 based fixed bin(17,0) level 2 dcl 3-225 ref 99 current_row_number 26 based fixed bin(35,0) level 2 dcl 3-225 ref 79 desired_builtin 000104 automatic varying char(32) dcl 124 set ref 71* 79 81 85 89 91 95 97 99 101 105* error_table_$bad_arg 000010 external static fixed bin(35,0) dcl 126 set ref 105* error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 127 set ref 58* first_row_of_report 1 based bit(1) level 3 dcl 3-225 ref 81 flags based structure level 2 in structure "status" dcl 3-225 in procedure "rw_display_builtins" flags based structure level 2 in structure "report_control_info" dcl 2-7 in procedure "rw_display_builtins" format_report_info based structure level 1 dcl 3-74 format_report_info_ptr based pointer level 2 dcl 2-7 ref 67 format_report_ip 000132 automatic pointer dcl 3-139 set ref 67* 68 last_page_number 46 based fixed bin(17,0) level 2 dcl 3-225 ref 97 last_pass 14 based bit(1) level 3 dcl 3-225 ref 101 last_row_number 45 based fixed bin(35,0) level 2 dcl 3-225 ref 95 last_row_of_report 2 based bit(1) level 3 dcl 3-225 ref 85 ltrim builtin function dcl 129 ref 79 89 95 97 99 null builtin function dcl 131 ref 2-61 62 number_of_args_supplied 000115 automatic fixed bin(17,0) dcl 132 set ref 56* 58 report_cip 000130 automatic pointer initial dcl 2-61 set ref 2-61* 54* 62 64 67 report_cip_parm parameter pointer dcl 43 ref 37 54 report_control_info based structure level 1 dcl 2-7 report_has_been_started 0(03) based bit(1) level 3 packed unaligned dcl 2-7 ref 64 requote_string_ 000014 constant entry external dcl 134 ref 108 return_value based varying char dcl 135 set ref 108* return_value_length 000116 automatic fixed bin(21,0) dcl 136 set ref 56* 108 return_value_ptr 000120 automatic pointer dcl 137 set ref 56* 108 row_has_been_processed_before 13 based bit(1) level 3 dcl 3-225 ref 91 rtrim builtin function dcl 138 ref 108 108 rw_error_$no_report 000016 external static fixed bin(35,0) dcl 139 set ref 62* 64* sci_ptr 000122 automatic pointer dcl 141 set ref 53* 56* 58* 62* 64* 70* 105* sci_ptr_parm parameter pointer dcl 44 ref 37 53 ssu_$abort_line 000020 constant entry external dcl 142 ref 58 62 64 105 ssu_$arg_ptr 000022 constant entry external dcl 143 ref 70 ssu_$return_arg 000024 constant entry external dcl 144 ref 56 status based structure level 1 dcl 3-225 status_pointer 000134 automatic pointer dcl 3-264 set ref 68* 79 81 85 89 91 95 97 99 101 status_ptr 24 based pointer level 2 dcl 3-74 ref 68 subtotal_generation_info based structure level 1 dcl 3-279 subtotal_info based structure level 1 dcl 3-291 template_info based structure level 1 dcl 3-312 total_info based structure level 1 dcl 3-348 value 000124 automatic char(16) unaligned dcl 146 set ref 79* 79 81* 84* 85* 88* 89* 89 91* 94* 95* 95 97* 97 99* 99 101* 104* 108 108 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BIT_DATA_TYPE internal static fixed bin(17,0) initial dcl 3-9 BOTH_ALIGNMENT internal static fixed bin(17,0) initial dcl 3-10 CENTER_ALIGNMENT internal static fixed bin(17,0) initial dcl 3-11 CHAR_DATA_TYPE internal static fixed bin(17,0) initial dcl 3-12 DECIMAL_ALIGNMENT internal static fixed bin(17,0) initial dcl 3-13 DECIMAL_DATA_TYPE internal static fixed bin(17,0) initial dcl 3-14 GENERAL_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 1-15 GENERAL_REPORT_OPTION internal static fixed bin(17,0) initial dcl 1-14 INDEX_FOR_ALIGNMENT internal static fixed bin(17,0) initial dcl 1-66 INDEX_FOR_COLUMN_ORDER internal static fixed bin(17,0) initial dcl 1-50 INDEX_FOR_COUNT internal static fixed bin(17,0) initial dcl 1-51 INDEX_FOR_DELIMITER internal static fixed bin(17,0) initial dcl 1-40 INDEX_FOR_EDITING internal static fixed bin(17,0) initial dcl 1-67 INDEX_FOR_EXCLUDE internal static fixed bin(17,0) initial dcl 1-52 INDEX_FOR_FOLDING internal static fixed bin(17,0) initial dcl 1-68 INDEX_FOR_FORMAT_DOCUMENT_CONTROLS internal static fixed bin(17,0) initial dcl 1-41 INDEX_FOR_GROUP internal static fixed bin(17,0) initial dcl 1-53 INDEX_FOR_GROUP_FOOTER_TRIGGER internal static fixed bin(17,0) initial dcl 1-54 INDEX_FOR_GROUP_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 1-55 INDEX_FOR_GROUP_HEADER_TRIGGER internal static fixed bin(17,0) initial dcl 1-56 INDEX_FOR_GROUP_HEADER_VALUE internal static fixed bin(17,0) initial dcl 1-57 INDEX_FOR_HYPHENATION internal static fixed bin(17,0) initial dcl 1-42 INDEX_FOR_OUTLINE internal static fixed bin(17,0) initial dcl 1-58 INDEX_FOR_PAGE_BREAK internal static fixed bin(17,0) initial dcl 1-59 INDEX_FOR_PAGE_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 1-43 INDEX_FOR_PAGE_HEADER_VALUE internal static fixed bin(17,0) initial dcl 1-44 INDEX_FOR_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 1-45 INDEX_FOR_PAGE_WIDTH internal static fixed bin(17,0) initial dcl 1-46 INDEX_FOR_ROW_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 1-60 INDEX_FOR_ROW_HEADER_VALUE internal static fixed bin(17,0) initial dcl 1-61 INDEX_FOR_SEPARATOR internal static fixed bin(17,0) initial dcl 1-69 INDEX_FOR_SUBCOUNT internal static fixed bin(17,0) initial dcl 1-62 INDEX_FOR_SUBTOTAL internal static fixed bin(17,0) initial dcl 1-63 INDEX_FOR_TITLE internal static fixed bin(17,0) initial dcl 1-70 INDEX_FOR_TITLE_LINE internal static fixed bin(17,0) initial dcl 1-47 INDEX_FOR_TOTAL internal static fixed bin(17,0) initial dcl 1-64 INDEX_FOR_TRUNCATION internal static fixed bin(17,0) initial dcl 1-48 INDEX_FOR_WIDTH internal static fixed bin(17,0) initial dcl 1-71 LEFT_ALIGNMENT internal static fixed bin(17,0) initial dcl 3-15 LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 1-28 LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 1-27 LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 1-26 MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 1-32 MAXIMUM_OPTION_IDENTIFIER_LENGTH internal static fixed bin(17,0) initial dcl 1-34 MAXIMUM_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 1-35 MAXIMUM_OPTION_VALUE_LENGTH internal static fixed bin(17,0) initial dcl 1-36 NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 1-22 NUMERIC_DATA_TYPE internal static fixed bin(17,0) initial dcl 3-16 RIGHT_ALIGNMENT internal static fixed bin(17,0) initial dcl 3-17 SPECIFIC_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 1-16 column_ip automatic pointer dcl 3-40 column_map based structure array level 1 dcl 3-48 column_map_number_of_columns automatic fixed bin(17,0) dcl 3-51 column_mp automatic pointer dcl 3-52 columns_ip automatic pointer dcl 3-46 count_columns_info based structure level 1 unaligned dcl 3-54 count_columns_ip automatic pointer dcl 3-55 count_info based structure level 1 unaligned dcl 3-57 count_ip automatic pointer dcl 3-58 current_row_value based char unaligned dcl 3-61 editing_string_result based char unaligned dcl 3-64 editing_string_rl automatic fixed bin(17,0) dcl 3-65 editing_string_rp automatic pointer dcl 3-66 editing_strings_next_byte automatic fixed bin(21,0) dcl 3-68 editing_strings_temp_seg based char unaligned dcl 3-70 editing_strings_temp_seg_as_an_array based char(1) array unaligned dcl 3-71 editing_strings_tsp automatic pointer dcl 3-72 generic_template based char unaligned dcl 3-142 generic_template_length automatic fixed bin(17,0) dcl 3-143 generic_tp automatic pointer dcl 3-144 gi_init_number_of_columns_to_group automatic fixed bin(17,0) dcl 3-151 group_info based structure level 1 dcl 3-147 group_ip automatic pointer dcl 3-152 header_info based structure level 1 dcl 3-160 header_ip automatic pointer dcl 3-176 headers_next_byte automatic fixed bin(21,0) dcl 3-154 headers_temp_seg based char unaligned dcl 3-156 headers_temp_seg_as_an_array based char(1) array unaligned dcl 3-157 headers_tsp automatic pointer dcl 3-158 hi_init_maximum_number_of_parts automatic fixed bin(17,0) dcl 3-177 hi_init_number_of_lines automatic fixed bin(17,0) dcl 3-178 initialize_number_of_columns automatic fixed bin(17,0) dcl 3-180 input_columns_info based structure level 1 dcl 3-182 input_columns_ip automatic pointer dcl 3-183 input_columns_op automatic pointer dcl 3-186 input_columns_order based fixed bin(17,0) array dcl 3-185 maximum_segment_size automatic fixed bin(21,0) dcl 3-188 next_row_value based char unaligned dcl 3-191 oi_init_maximum_number_of_grouping_columns automatic fixed bin(17,0) dcl 3-202 oi_init_maximum_number_of_single_columns automatic fixed bin(17,0) dcl 3-203 outline_info based structure level 1 dcl 3-193 outline_ip automatic pointer dcl 3-204 output_columns_info based structure level 1 unaligned dcl 3-206 output_columns_ip automatic pointer dcl 3-207 page_break_info based structure level 1 dcl 3-210 page_break_ip automatic pointer dcl 3-214 pbi_init_number_of_columns automatic fixed bin(17,0) dcl 3-215 previous_row_value based char unaligned dcl 3-218 row_value_template_info based structure level 1 unaligned dcl 3-221 row_value_template_ip automatic pointer dcl 3-222 sgi_init_number_of_generations automatic fixed bin(17,0) dcl 3-287 sgi_init_number_of_subtotals automatic fixed bin(17,0) dcl 3-288 si_init_number_of_columns_to_subtotal automatic fixed bin(17,0) dcl 3-309 subcount_columns_info based structure level 1 unaligned dcl 3-266 subcount_columns_ip automatic pointer dcl 3-267 subcount_generation_info based structure level 1 unaligned dcl 3-269 subcount_generation_ip automatic pointer dcl 3-270 subcount_info based structure level 1 unaligned dcl 3-272 subcount_ip automatic pointer dcl 3-273 subtotal_columns_info based structure level 1 unaligned dcl 3-275 subtotal_columns_ip automatic pointer dcl 3-276 subtotal_generation_ip automatic pointer dcl 3-289 subtotal_ip automatic pointer dcl 3-310 tbi_init_line_length automatic fixed bin(17,0) dcl 3-341 tbi_init_number_of_lines automatic fixed bin(17,0) dcl 3-342 template based char unaligned dcl 3-327 template_ip automatic pointer dcl 3-318 template_length automatic fixed bin(17,0) dcl 3-328 template_map based bit(1) array unaligned dcl 3-322 template_map_defined_as_a_string based bit unaligned dcl 3-325 template_map_number_of_bits automatic fixed bin(17,0) dcl 3-324 template_mp automatic pointer dcl 3-323 template_ptr automatic pointer dcl 3-329 ti_init_number_of_columns_to_total automatic fixed bin(17,0) dcl 3-356 ti_init_number_of_templates automatic fixed bin(17,0) dcl 3-317 ti_init_template_width automatic fixed bin(17,0) dcl 3-319 title_block_columns_info based structure level 1 unaligned dcl 3-331 title_block_columns_ip automatic pointer dcl 3-332 title_block_info based structure level 1 dcl 3-335 title_block_ip automatic pointer dcl 3-343 total_columns_info based structure level 1 unaligned dcl 3-345 total_columns_ip automatic pointer dcl 3-346 total_ip automatic pointer dcl 3-357 NAMES DECLARED BY EXPLICIT CONTEXT. get_builtin_value 000301 constant entry internal dcl 77 ref 47 initialize 000120 constant entry internal dcl 51 ref 46 rw_display_builtins 000106 constant entry external dcl 37 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1054 1102 742 1064 Length 1362 742 26 244 111 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rw_display_builtins 181 external procedure is an external procedure. initialize internal procedure shares stack frame of external procedure rw_display_builtins. get_builtin_value internal procedure shares stack frame of external procedure rw_display_builtins. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rw_display_builtins 000100 active_request_flag rw_display_builtins 000101 arg_length rw_display_builtins 000102 arg_ptr rw_display_builtins 000104 desired_builtin rw_display_builtins 000115 number_of_args_supplied rw_display_builtins 000116 return_value_length rw_display_builtins 000120 return_value_ptr rw_display_builtins 000122 sci_ptr rw_display_builtins 000124 value rw_display_builtins 000130 report_cip rw_display_builtins 000132 format_report_ip rw_display_builtins 000134 status_pointer rw_display_builtins THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. requote_string_ ssu_$abort_line ssu_$arg_ptr ssu_$return_arg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$inconsistent rw_error_$no_report LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 37 000102 2 61 000113 46 000115 47 000116 49 000117 51 000120 53 000121 54 000125 56 000130 58 000147 62 000173 64 000215 67 000235 68 000246 70 000250 71 000267 73 000300 77 000301 79 000302 81 000340 84 000354 85 000360 88 000374 89 000400 91 000436 94 000452 95 000456 97 000514 99 000552 101 000610 104 000624 105 000630 108 000660 110 000732 ----------------------------------------------------------- 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