COMPILATION LISTING OF SEGMENT linus_column_value Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/29/86 0953.4 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* This is the main level procedure called by ssu_ to implement the 9* linus column_value request. Description and usage follows. 10* 11* Description: 12* 13* This active request returns the value of the current column, the 14* previous column, or the next column. The column is named by the 15* caller. If subtotals or totals are being generated, the subtotal 16* or total for the referenced column is returned. 17* 18* Usage: "column_value STR {-control_args}" 19* 20* where STR is the name or number of the desired column. 21* 22* -control_args can be "-current_row", "-next_row", "-previous_row", 23* or "-default STR". 24* 25* Both parameters are passed to this request by ssu_. 26* 27* 28* Known Bugs: 29* 30* Other Problems: 31* 32* History: 33* 34* Written - Al Dupuis - August 1983 35* 36**/ 37 38 linus_column_value: proc ( 39 40 sci_ptr_parm, /* input: ptr to the subsystem control info structure */ 41 lcb_ptr_parm /* input: ptr to the linus control block info structure */ 42 ); 43 44 dcl sci_ptr_parm ptr parm; 45 dcl lcb_ptr_parm ptr parm; 46 47 call initialize; 48 call verify_column_name_or_number; 49 if status.flags.subtotals_ejection_in_progress 50 then call get_subtotal_value; 51 else if status.flags.totals_ejection_in_progress 52 then call get_total_value; 53 else call get_column_value; 54 55 spare_string_length = length (spare_string); 56 spare_string_redefined_ptr = addrel (addr (spare_string), 1); 57 return_value = requote_string_ (spare_string_redefined_as_nonvarying); 58 59 return; 60 61 get_column_value: proc; 62 63 if (status.flags.first_row_of_report & previous_row) 64 | (status.flags.last_row_of_report & next_row) 65 then do; 66 spare_string = default_return_value; 67 return; 68 end; 69 70 if previous_row 71 then row_value_p = status.previous_row_ptr; 72 else if next_row 73 then row_value_p = status.next_row_ptr; 74 else row_value_p = status.current_row_ptr; 75 76 spare_string = substr (row_value, 77 table_info.columns.column_index (column_number), 78 table_info.columns.column_length (column_number)); 79 80 return; 81 82 end get_column_value; 83 84 get_subtotal_value: proc; 85 86 not_found = ON; 87 subtotal_ip = format_report_info.subtotal_info_ptr; 88 89 do loop = 1 to subtotal_info.number_of_columns_to_subtotal 90 while (not_found); 91 if column_number = subtotal_info.columns (loop).input_column 92 & subtotal_info.columns (loop).level = subtotal_info.current_level 93 then do; 94 not_found = OFF; 95 subtotal_number = loop; 96 end; 97 end; 98 if not_found 99 then do; 100 call get_column_value; 101 return; 102 end; 103 104 call ioa_$rsnnl (subtotal_info.columns.ioa_string (subtotal_number), 105 spare_string, spare_string_length, 106 subtotal_info.columns.subtotal (subtotal_number)); 107 108 return; 109 110 end get_subtotal_value; 111 112 get_total_value: proc; 113 114 not_found = ON; 115 total_ip = format_report_info.total_info_ptr; 116 117 do loop = 1 to total_info.number_of_columns_to_total 118 while (not_found); 119 if column_number = total_info.input_column (loop) 120 then do; 121 not_found = OFF; 122 total_number = loop; 123 end; 124 end; 125 if not_found 126 then do; 127 call get_column_value; 128 return; 129 end; 130 131 call ioa_$rsnnl (total_info.columns.ioa_string (total_number), 132 spare_string, spare_string_length, 133 total_info.columns.total (total_number)); 134 135 return; 136 137 end get_total_value; 138 139 initialize: proc; 140 141 sci_ptr = sci_ptr_parm; 142 lcb_ptr = lcb_ptr_parm; 143 144 next_row = OFF; 145 previous_row = OFF; 146 current_row = ON; 147 default_return_value = ""; 148 149 call ssu_$return_arg (sci_ptr, number_of_args_supplied, 150 active_request_flag, return_value_ptr, return_value_length); 151 if number_of_args_supplied = 0 152 then call ssu_$abort_line (sci_ptr, error_table_$noarg, 153 "A column name or number must be supplied."); 154 155 report_cip = lcb.report_control_info_ptr; 156 if report_cip = null () 157 then call ssu_$abort_line (sci_ptr, linus_error_$no_report); 158 else if ^report_control_info.flags.report_has_been_started 159 then call ssu_$abort_line (sci_ptr, linus_error_$no_report); 160 161 format_report_ip = report_control_info.format_report_info_ptr; 162 table_ip = format_report_info.table_info_ptr; 163 row_segs_ip = table_info.row_segs_info_ptr; 164 status_pointer = format_report_info.status_ptr; 165 166 call ssu_$arg_ptr (sci_ptr, 1, arg_ptr, arg_length); 167 column_identifier = arg; 168 169 if number_of_args_supplied = 1 170 then return; 171 172 current_arg_number = 2; 173 still_processing_args = ON; 174 175 do loop = 2 to number_of_args_supplied 176 while (still_processing_args); 177 call ssu_$arg_ptr (sci_ptr, current_arg_number, arg_ptr, arg_length); 178 if arg = "-current_row" | arg = "-crw" 179 then do; 180 current_row = ON; 181 previous_row = OFF; 182 next_row = OFF; 183 end; 184 else if arg = "-next_row" | arg = "-nrw" 185 then do; 186 next_row = ON; 187 current_row = OFF; 188 previous_row = OFF; 189 end; 190 else if arg = "-previous_row" | arg = "-prw" 191 then do; 192 previous_row = ON; 193 current_row = OFF; 194 next_row = OFF; 195 end; 196 else if arg = "-default" | arg = "-df" 197 then do; 198 if current_arg_number >= number_of_args_supplied 199 then call ssu_$abort_line (sci_ptr, 200 error_table_$inconsistent, 201 "-default must be followed by a value."); 202 else; 203 current_arg_number = current_arg_number + 1; 204 call ssu_$arg_ptr (sci_ptr, current_arg_number, 205 arg_ptr, arg_length); 206 default_return_value = arg; 207 end; 208 else call ssu_$abort_line (sci_ptr, 209 error_table_$badopt, 210 "^a is not a valid control argument.", arg); 211 current_arg_number = current_arg_number + 1; 212 if current_arg_number > number_of_args_supplied 213 then still_processing_args = OFF; 214 end; 215 216 return; 217 218 end initialize; 219 220 verify_column_name_or_number: proc; 221 222 if verify (column_identifier, DIGITS) = 0 223 then do; 224 column_number = convert (column_number, column_identifier); 225 if column_number < 1 226 | column_number > table_info.column_count 227 then call ssu_$abort_line (sci_ptr, 0, 228 "^d is not a valid column number.", column_number); 229 else; 230 end; 231 else do; 232 not_found = ON; 233 do loop = 1 to table_info.column_count while (not_found); 234 if column_identifier = table_info.columns.column_name (loop) 235 then do; 236 not_found = OFF; 237 column_number = loop; 238 end; 239 end; 240 if not_found 241 then call ssu_$abort_line (sci_ptr, 0, 242 "^a is not a valid column name.", column_identifier); 243 end; 244 245 return; 246 247 end verify_column_name_or_number; 248 249 dcl DIGITS char (10) static int options (constant) init ("0123456789"); 250 dcl OFF bit (1) aligned static int options (constant) init ("0"b); 251 dcl ON bit (1) aligned static int options (constant) init ("1"b); 252 253 dcl active_request_flag bit (1) aligned; 254 dcl addr builtin; 255 dcl addrel builtin; 256 dcl arg char (arg_length) based (arg_ptr); 257 dcl arg_length fixed bin (21); 258 dcl arg_ptr ptr; 259 260 dcl column_number fixed bin; 261 dcl column_identifier char (128) varying; 262 dcl convert builtin; 263 dcl current_arg_number fixed bin; 264 dcl current_row bit (1) aligned; 265 266 dcl default_return_value char (128) varying; 267 268 dcl error_table_$badopt fixed bin(35) ext static; 269 dcl error_table_$inconsistent fixed bin(35) ext static; 270 dcl error_table_$noarg fixed bin(35) ext static; 271 272 dcl fixed builtin; 273 274 dcl ioa_$rsnnl entry() options(variable); 275 276 dcl length builtin; 277 dcl linus_error_$no_report fixed bin(35) ext static; 278 dcl loop fixed bin; 279 280 dcl next_row bit (1) aligned; 281 dcl not_found bit (1) aligned; 282 dcl null builtin; 283 dcl number_of_args_supplied fixed bin; 284 285 dcl previous_row bit (1) aligned; 286 287 dcl rel builtin; 288 dcl requote_string_ entry (char(*)) returns(char(*)); 289 dcl return_value char (return_value_length) varying based (return_value_ptr); 290 dcl return_value_length fixed bin (21); 291 dcl return_value_ptr ptr; 292 293 dcl sci_ptr ptr; 294 dcl spare_string char (MAXIMUM_OPTION_VALUE_LENGTH) varying; 295 dcl spare_string_length fixed bin (21); 296 dcl spare_string_redefined_as_nonvarying char (spare_string_length) based (spare_string_redefined_ptr); 297 dcl spare_string_redefined_ptr ptr; 298 dcl ssu_$abort_line entry() options(variable); 299 dcl ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)); 300 dcl ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, ptr, fixed bin(21)); 301 dcl still_processing_args bit (1) aligned; 302 dcl substr builtin; 303 dcl subtotal_number fixed bin; 304 dcl sys_info$max_seg_size fixed bin(35) ext static; 305 306 dcl total_number fixed bin; 307 308 dcl verify builtin; 309 1 1 /* BEGIN INCLUDE FILE ... arg_descriptor.incl.pl1 1 2* 1 3* James R. Davis 1 Mar 79 */ 1 4 /* Modified June 83 JMAthane for extended arg descriptor format */ 1 5 1 6 dcl 1 arg_descriptor based (arg_descriptor_ptr) aligned, 1 7 2 flag bit (1) unal, 1 8 2 type fixed bin (6) unsigned unal, 1 9 2 packed bit (1) unal, 1 10 2 number_dims fixed bin (4) unsigned unal, 1 11 2 size fixed bin (24) unsigned unal; 1 12 1 13 dcl 1 fixed_arg_descriptor based (arg_descriptor_ptr) aligned, 1 14 2 flag bit (1) unal, 1 15 2 type fixed bin (6) unsigned unal, 1 16 2 packed bit (1) unal, 1 17 2 number_dims fixed bin (4) unsigned unal, 1 18 2 scale fixed bin (11) unal, 1 19 2 precision fixed bin (12) unsigned unal; 1 20 1 21 dcl 1 extended_arg_descriptor based (arg_descriptor_ptr) aligned, 1 22 2 flag bit (1) unal, /* = "1"b */ 1 23 2 type fixed bin (6) unsigned unal, /* = 58 */ 1 24 2 packed bit (1) unal, /* significant if number_dims ^= 0 */ 1 25 2 number_dims fixed (4) unsigned unal,/* number of variable dimensions */ 1 26 2 size bit (24) unal, 1 27 2 dims (0 refer (extended_arg_descriptor.number_dims)), /* part referenced by called generated code */ 1 28 3 low fixed bin (35), 1 29 3 high fixed bin (35), 1 30 3 multiplier fixed bin (35), /* in bits if packed, in words if not */ 1 31 2 real_type fixed bin (18) unsigned unal, 1 32 2 type_offset fixed bin (18) unsigned unal; /* offset rel to symbol tree to symbol node for type, if any */ 1 33 1 34 dcl arg_descriptor_ptr ptr; 1 35 1 36 dcl extended_arg_type fixed bin init (58); 1 37 1 38 /* END INCLUDE file .... arg_descriptor.incl.pl1 */ 310 311 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 */ 312 313 3 1 /* BEGIN INCLUDE FILE linus_options_extents.incl.pl1 3 2* 3 3* Extents for the formatting options used for producing reports. 3 4* Kept as a separate include so that some programs may include this 3 5* file without including linus_format_options.incl.pl1 3 6* 3 7* Al Dupuis - August 1983 3 8* 3 9**/ 3 10 /* format: off */ 3 11 3 12 /* The three types of format options that we have. */ 3 13 3 14 dcl GENERAL_REPORT_OPTION fixed bin static int options (constant) init (1); 3 15 dcl GENERAL_COLUMN_OPTION fixed bin static int options (constant) init (2); 3 16 dcl SPECIFIC_COLUMN_OPTION fixed bin static int options (constant) init (3); 3 17 3 18 /* Used to determine how big the tables are without doing a hbound on it. */ 3 19 3 20 dcl NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (15); 3 21 dcl NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE fixed bin static int options (constant) init (9); 3 22 dcl NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE fixed bin static int options (constant) init (6); 3 23 3 24 /* Used to determine how much space is needed to list them. */ 3 25 3 26 dcl LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (10); /* -alignment */ 3 27 dcl LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH fixed bin static int options (constant) init (25); /* -format_document_controls */ 3 28 dcl LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH fixed bin static int options (constant) init (21); /* -group_footer_trigger */ 3 29 3 30 /* MAXIMUM_OPTION_IDENTIFIER_LENGTH + MAXIMUM_OPTION_NAME_LENGTH */ 3 31 3 32 dcl MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH fixed bin static int options (constant) init (101); 3 33 3 34 dcl MAXIMUM_OPTION_IDENTIFIER_LENGTH fixed bin static int options (constant) init (69); 3 35 dcl MAXIMUM_OPTION_NAME_LENGTH fixed bin static int options (constant) init (32); 3 36 dcl MAXIMUM_OPTION_VALUE_LENGTH fixed bin static int options (constant) init (4096); 3 37 3 38 /* Used to index into the OPTIONS tables defined in linus_format_options.incl.pl1. */ 3 39 3 40 dcl INDEX_FOR_DELIMITER fixed bin static int options (constant) init (1); 3 41 dcl INDEX_FOR_FORMAT_DOCUMENT_CONTROLS fixed bin static int options (constant) init (2); 3 42 dcl INDEX_FOR_HYPHENATION fixed bin static int options (constant) init (3); 3 43 dcl INDEX_FOR_PAGE_FOOTER_VALUE fixed bin static int options (constant) init (4); 3 44 dcl INDEX_FOR_PAGE_HEADER_VALUE fixed bin static int options (constant) init (5); 3 45 dcl INDEX_FOR_PAGE_LENGTH fixed bin static int options (constant) init (6); 3 46 dcl INDEX_FOR_PAGE_WIDTH fixed bin static int options (constant) init (7); 3 47 dcl INDEX_FOR_TITLE_LINE fixed bin static int options (constant) init (8); 3 48 dcl INDEX_FOR_TRUNCATION fixed bin static int options (constant) init (9); 3 49 3 50 dcl INDEX_FOR_COLUMN_ORDER fixed bin static int options (constant) init (1); 3 51 dcl INDEX_FOR_COUNT fixed bin static int options (constant) init (2); 3 52 dcl INDEX_FOR_EXCLUDE fixed bin static int options (constant) init (3); 3 53 dcl INDEX_FOR_GROUP fixed bin static int options (constant) init (4); 3 54 dcl INDEX_FOR_GROUP_FOOTER_TRIGGER fixed bin static int options (constant) init (5); 3 55 dcl INDEX_FOR_GROUP_FOOTER_VALUE fixed bin static int options (constant) init (6); 3 56 dcl INDEX_FOR_GROUP_HEADER_TRIGGER fixed bin static int options (constant) init (7); 3 57 dcl INDEX_FOR_GROUP_HEADER_VALUE fixed bin static int options (constant) init (8); 3 58 dcl INDEX_FOR_OUTLINE fixed bin static int options (constant) init (9); 3 59 dcl INDEX_FOR_PAGE_BREAK fixed bin static int options (constant) init (10); 3 60 dcl INDEX_FOR_ROW_FOOTER_VALUE fixed bin static int options (constant) init (11); 3 61 dcl INDEX_FOR_ROW_HEADER_VALUE fixed bin static int options (constant) init (12); 3 62 dcl INDEX_FOR_SUBCOUNT fixed bin static int options (constant) init (13); 3 63 dcl INDEX_FOR_SUBTOTAL fixed bin static int options (constant) init (14); 3 64 dcl INDEX_FOR_TOTAL fixed bin static int options (constant) init (15); 3 65 3 66 dcl INDEX_FOR_ALIGNMENT fixed bin static int options (constant) init (1); 3 67 dcl INDEX_FOR_EDITING fixed bin static int options (constant) init (2); 3 68 dcl INDEX_FOR_FOLDING fixed bin static int options (constant) init (3); 3 69 dcl INDEX_FOR_SEPARATOR fixed bin static int options (constant) init (4); 3 70 dcl INDEX_FOR_TITLE fixed bin static int options (constant) init (5); 3 71 dcl INDEX_FOR_WIDTH fixed bin static int options (constant) init (6); 3 72 3 73 /* END INCLUDE FILE linus_options_extents */ 314 315 4 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 4 2 4 3 4 4 4 5 /****^ HISTORY COMMENTS: 4 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 4 7* install(86-07-29,MR12.0-1106): 4 8* Added general_work_area_ptr and renamed sfr_ptr to 4 9* force_retrieve_scope_ptr. 4 10* END HISTORY COMMENTS */ 4 11 4 12 4 13 /* HISTORY: 4 14* 4 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 4 16* 4 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 4 18* a part of the attribute level control work. 4 19* 4 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 4 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 4 22* scope information. 4 23* 4 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 4 25* retaining various vcpu times to be collected when in timing mode. The 4 26* times to be collected are: LINUS parsing time, LINUS processing time, and 4 27* MRDS processing time. 4 28* 4 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 4 30* part of the line numbering implementation. This allows for possible later 4 31* LINUS control of the build defaults. 4 32* 4 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 4 34* information is now retained by ssu_. Removed parse_timer as no longer 4 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 4 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 4 37* 4 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 4 39* subsystem_invocation_level, and selection_expression_identifier. 4 40* 4 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 4 42* table_control_info_ptr. 4 43* 4 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 4 45* 4 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 4 47* 4 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 4 49* 4 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 4 51**/ 4 52 4 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 4 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 4 55 2 rb_len fixed bin (21), /* length of request buffer */ 4 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 4 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 4 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 4 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 4 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 4 61 2 test_flag bit (1) unal, /* on if in test mode */ 4 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 4 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 4 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 4 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 4 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 4 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 4 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 4 69 2 reserved bit (27) unal, 4 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 4 71 2 rb_ptr ptr, /* ptr to request buffer */ 4 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 4 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 4 74 2 ttn_ptr ptr, /* pointer to table info structure */ 4 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 4 76 2 lv_ptr ptr, /* pointer linus variables */ 4 77 2 si_ptr ptr, /* pointer to select_info structure */ 4 78 2 setfi_ptr ptr, /* pointer to set function information */ 4 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 4 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 4 81 2 lit_ptr ptr, /* pointer to literal pool */ 4 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 4 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 4 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 4 85* (MR7.0) */ 4 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 4 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 4 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 4 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 4 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 4 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 4 92* for current lila expression */ 4 93 2 unused_timer float bin (63), /* future expansion */ 4 94 2 request_time float bin (63), /* How much request time was spent 4 95* in LINUS. (-1 = user has just enabled 4 96* timing, do not report) */ 4 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 4 98 2 build_increment fixed bin, /* default increment for build mode */ 4 99 2 build_start fixed bin, /* default start count for build mode */ 4 100 2 linus_version char (4), /* current version of LINUS */ 4 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 4 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 4 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 4 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 4 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 4 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 4 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 4 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 4 109 2 word_pad (6) bit (36) unal, 4 110 /* procedures that will be optionally */ 4 111 /* replaced by the user. Saved so they */ 4 112 /* can be reinstated if desired. */ 4 113 2 ssu_abort_line entry options (variable), 4 114 2 ssu_post_request_line variable entry (ptr), 4 115 2 ssu_pre_request_line variable entry (ptr), 4 116 4 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 4 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 4 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 4 120 4 121 dcl lcb_ptr ptr; 4 122 4 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 316 317 5 1 /* BEGIN INCLUDE FILE linus_report_info.incl.pl1 5 2* Information needed to control the report environment. 5 3* Al Dupuis - August 1983 5 4**/ 5 5 /* format: off */ 5 6 5 7 dcl 1 report_control_info aligned based (report_cip), 5 8 2 flags, 5 9 3 report_is_paginated bit (1) unaligned, /* paged or one continous stream */ 5 10 3 table_has_been_started bit (1) unaligned, /* table clean up is necessary */ 5 11 3 table_is_full bit (1) unaligned, /* no more retrieves are necessary */ 5 12 3 report_has_been_started bit (1) unaligned, /* report clean up is necessary */ 5 13 3 report_is_formatted bit (1) unaligned, /* no more formatting is necessary */ 5 14 3 permanent_report bit (1) unaligned, /* or disposable */ 5 15 3 permanent_table bit (1) unaligned, /* or disposable */ 5 16 3 report_has_just_been_completed bit (1) unaligned, /* used for printing timers */ 5 17 3 table_has_just_been_loaded bit (1) unaligned, /* used for printing timers */ 5 18 3 multi_pass_mode bit (1) unaligned, /* on if we are to do more than 1 pass */ 5 19 3 available bit (26) unaligned, 5 20 2 format_options_flags, /* used to determine if value is default */ 5 21 3 general_report_default_value (NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE) bit (1) unaligned, 5 22 3 general_column_default_value (NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE) bit (1) unaligned, 5 23 2 value_seg_ptr ptr, /* the options value seg */ 5 24 2 name_value_area_ptr ptr, /* area for name-value allocations */ 5 25 2 name_value_temp_seg_ptr ptr, /* temp seg for name-value space */ 5 26 2 display_work_area_ptr ptr, /* display workspace */ 5 27 2 report_temp_seg_ptr ptr, /* report workspace */ 5 28 2 report_work_area_ptr ptr, /* report workspace */ 5 29 2 format_report_info_ptr ptr, /* info needed to create a report */ 5 30 2 input_string_temp_seg_ptr ptr, /* report workspace */ 5 31 2 output_string_temp_seg_ptr ptr, /* report workspace */ 5 32 2 editing_strings_temp_seg_ptr ptr, /* report workspace */ 5 33 2 headers_temp_seg_ptr ptr, /* report workspace */ 5 34 2 display_iocb_ptr ptr, /* report is displayed through this */ 5 35 2 selection_expression_identifier fixed bin, /* current selection expression */ 5 36 2 options_identifier fixed bin, /* current set of options */ 5 37 2 report_identifier fixed bin, /* current report */ 5 38 2 retrieval_identifier fixed bin, /* current retrieval */ 5 39 2 no_of_rows_retrieved fixed bin (35), /* current no of rows */ 5 40 2 no_of_formatted_pages fixed bin (21), /* current no of pages */ 5 41 2 number_of_passes fixed bin, /* number of times report will be formatted */ 5 42 2 table_loading_time float bin (63), 5 43 2 table_sorting_time float bin (63), 5 44 2 table_deletion_time float bin (63), 5 45 2 report_setup_time float bin (63), 5 46 2 report_formatting_time float bin (63), 5 47 2 report_display_time float bin (63), 5 48 2 report_deletion_time float bin (63), 5 49 2 ssu_evaluate_active_string_time float bin (63), 5 50 2 temp_dir_unique_id bit (36), /* uid of temp dir */ 5 51 2 temp_dir_name char (168) unaligned; /* the dir where we place the retrieved table and report */ 5 52 dcl report_cip ptr init (null ()); 5 53 5 54 /* END INCLUDE FILE linus_report_info.incl.pl1 */ 318 319 6 1 /* BEGIN INCLUDE FILE linus_report_structures.incl.pl1 6 2* 6 3* Written - Al Dupuis - August 1983 6 4**/ 6 5 /* format: off */ 6 6 6 7 /* Used in column_info.alignment and column_info.linus_data_type */ 6 8 6 9 dcl BIT_DATA_TYPE fixed bin static int options (constant) init (1); 6 10 dcl BOTH_ALIGNMENT fixed bin static int options (constant) init (1); 6 11 dcl CENTER_ALIGNMENT fixed bin static int options (constant) init (2); 6 12 dcl CHAR_DATA_TYPE fixed bin static int options (constant) init (2); 6 13 dcl DECIMAL_ALIGNMENT fixed bin static int options (constant) init (3); 6 14 dcl DECIMAL_DATA_TYPE fixed bin static int options (constant) init (3); 6 15 dcl LEFT_ALIGNMENT fixed bin static int options (constant) init (4); 6 16 dcl NUMERIC_DATA_TYPE fixed bin static int options (constant) init (4); 6 17 dcl RIGHT_ALIGNMENT fixed bin static int options (constant) init (5); 6 18 6 19 dcl 1 column_info aligned based (column_ip), 6 20 2 flags, 6 21 3 folding_is_fill bit (1) unaligned, /* fill or truncate */ 6 22 3 outline bit (1) unaligned, /* on means the display has been suppressed */ 6 23 3 editing bit (1) unaligned, /* on means there is an editing request */ 6 24 3 restore_editing bit (1) unaligned, /* used to toggle the editing bit */ 6 25 3 available bit (32) unaligned, 6 26 2 order fixed bin, /* as specified by the user */ 6 27 2 input_column fixed bin, /* # of the column in the table */ 6 28 2 output_column fixed bin, /* # of the column on the page */ 6 29 2 output_line fixed bin, /* within the block */ 6 30 2 starting_position fixed bin, /* within the page width */ 6 31 2 width fixed bin, /* in characters */ 6 32 2 alignment fixed bin, /* set to one of the above alignment constants */ 6 33 2 decimal_position fixed bin, /* only needed for decimal alignment */ 6 34 2 linus_data_type fixed bin, /* set to one of the above data type constants */ 6 35 2 editing_string_length fixed bin (21), /* before evaluation */ 6 36 2 editing_string_result_length fixed bin (21), /* after evaluation */ 6 37 2 editing_string_ptr ptr, /* before evaluation */ 6 38 2 editing_string_result_ptr ptr, /* after evaluation */ 6 39 2 prefix_character char (1) varying; /* column prefix */ 6 40 dcl column_ip ptr; 6 41 6 42 dcl 1 columns_info aligned based (columns_ip), /* an array of column_info's */ 6 43 2 number_of_columns fixed bin, 6 44 2 columns (initialize_number_of_columns 6 45 refer (columns_info.number_of_columns)) like column_info; 6 46 dcl columns_ip ptr; 6 47 6 48 dcl 1 column_map (column_map_number_of_columns) aligned based (column_mp), 6 49 2 present bit (1), /* the column is present in the list */ 6 50 2 position fixed bin; /* position where this column was found in the list */ 6 51 dcl column_map_number_of_columns fixed bin; 6 52 dcl column_mp ptr; 6 53 6 54 dcl 1 count_columns_info like columns_info based (count_columns_ip); 6 55 dcl count_columns_ip ptr; 6 56 6 57 dcl 1 count_info like total_info based (count_ip); 6 58 dcl count_ip ptr; 6 59 6 60 /* Used to access the current row from the table */ 6 61 dcl current_row_value char (table_info.row_value_length) based (status.current_row_ptr); 6 62 6 63 /* Used to pick up the value before or after evaluation */ 6 64 dcl editing_string_result char (editing_string_rl) based (editing_string_rp); 6 65 dcl editing_string_rl fixed bin; 6 66 dcl editing_string_rp ptr; 6 67 6 68 dcl editing_strings_next_byte fixed bin (21); 6 69 /* Used to store editing strings before and after evaluation. */ 6 70 dcl editing_strings_temp_seg char (maximum_segment_size) based (editing_strings_tsp); 6 71 dcl editing_strings_temp_seg_as_an_array (maximum_segment_size) char (1) based (editing_strings_tsp); 6 72 dcl editing_strings_tsp ptr; 6 73 6 74 dcl 1 format_report_info aligned based (format_report_ip), 6 75 2 flags, 6 76 3 unlimited_page_length bit (1) unaligned, /* -page_length equal to zero */ 6 77 3 unlimited_page_width bit (1) unaligned, /* -page_width equal to zero */ 6 78 3 page_header_is_defined bit (1) unaligned, /* -page_header_value */ 6 79 3 group_header_is_defined bit (1) unaligned, /* -group_header_value */ 6 80 3 group_header_trigger_is_defined bit (1) unaligned, /* -group_header_trigger */ 6 81 3 title_block_is_defined bit (1) unaligned, /* -title_line */ 6 82 3 row_header_is_defined bit (1) unaligned, /* -row_header_value */ 6 83 3 row_value_is_defined bit (1) unaligned, /* if all of the columns weren't excluded */ 6 84 3 row_footer_is_defined bit (1) unaligned, /* -row_footer_value */ 6 85 3 group_footer_is_defined bit (1) unaligned, /* -group_footer_value */ 6 86 3 group_footer_trigger_is_defined bit (1) unaligned, /* -group_footer_trigger */ 6 87 3 page_footer_is_defined bit (1) unaligned, /* -page_footer_value */ 6 88 3 editing_is_defined bit (1) unaligned, /* -editing */ 6 89 3 exclude_is_defined bit (1) unaligned, /* -exclude */ 6 90 3 group_is_defined bit (1) unaligned, /* -group */ 6 91 3 outline_is_defined bit (1) unaligned, /* -outline */ 6 92 3 page_break_is_defined bit (1) unaligned, /* -page_break */ 6 93 3 subtotal_is_defined bit (1) unaligned, /* -subtotal */ 6 94 3 subcount_is_defined bit (1) unaligned, /* -subcount */ 6 95 3 total_is_defined bit (1) unaligned, /* -total */ 6 96 3 count_is_defined bit (1) unaligned, /* -count */ 6 97 3 available bit (15) unaligned, 6 98 2 page_width fixed bin, /* as given by the user */ 6 99 2 page_length fixed bin, /* as given by the user */ 6 100 2 number_of_formatted_rows fixed bin (35), /* updated at the end of each page */ 6 101 2 editing_strings_next_available_byte fixed bin (21), /* beginning of temp space for execution */ 6 102 2 headers_next_available_byte fixed bin (21), /* beginning of temp space for execution */ 6 103 2 report_iocb_ptr ptr, /* for saving copies of the page */ 6 104 2 table_info_ptr ptr, /* to avoid repetitive calls to linus_table$info */ 6 105 2 format_document_op ptr, /* format_document_options structure */ 6 106 2 page_info_ptr ptr, /* page_info structure */ 6 107 2 copy_of_page_info_ptr ptr, /* version of page_info structure that can be changed */ 6 108 /* after each page */ 6 109 2 formatted_page_info_ptr ptr, /* formatted_page_info structure */ 6 110 2 overstrike_info_ptr ptr, /* page_overstrike_info structure */ 6 111 2 status_ptr ptr, /* status structure */ 6 112 2 template_map_ptr ptr, /* template_map array */ 6 113 2 page_header_info_ptr ptr, /* header_info structure */ 6 114 2 page_footer_info_ptr ptr, /* header_info structure */ 6 115 2 group_header_info_ptr ptr, /* header_info structure */ 6 116 2 group_footer_info_ptr ptr, /* header_info structure */ 6 117 2 group_header_trigger_info_ptr ptr, /* group_info structure */ 6 118 2 group_footer_trigger_info_ptr ptr, /* group_info structure */ 6 119 2 row_header_info_ptr ptr, /* header_info structure */ 6 120 2 row_footer_info_ptr ptr, /* header_info structure */ 6 121 2 title_block_columns_info_ptr ptr, /* title_block_columns_info structure */ 6 122 2 title_block_info_ptr ptr, /* title_block_info structure */ 6 123 2 input_columns_info_ptr ptr, /* input_columns_info structure */ 6 124 2 input_columns_order_ptr ptr, /* input_columns_order array */ 6 125 2 output_columns_info_ptr ptr, /* output_columns_info structure */ 6 126 2 group_info_ptr ptr, /* group_info structure */ 6 127 2 outline_info_ptr ptr, /* outline_info structure */ 6 128 2 page_break_info_ptr ptr, /* page_break_info structure */ 6 129 2 subtotal_info_ptr ptr, /* subtotal_info structure */ 6 130 2 subcount_info_ptr ptr, /* subcount_info structure */ 6 131 2 total_info_ptr ptr, /* total_info structure */ 6 132 2 count_info_ptr ptr, /* count_info structure */ 6 133 2 row_value_template_info_ptr ptr, /* row_value_template_info structure */ 6 134 2 generic_template_ptr ptr, /* generic_template char string */ 6 135 2 header_part_delimiter char (1) unaligned, /* delimits the different portions of a header/footer */ 6 136 2 truncation_indicator char (32) varying unaligned, /* used to indicate that truncation has occured */ 6 137 2 report_directory_name char (168) unaligned, /* dir where we place copies of the page */ 6 138 2 report_entry_name char (32) unaligned; /* entry name portion of above */ 6 139 dcl format_report_ip ptr; 6 140 6 141 /* used to format page/row headers and footers */ 6 142 dcl generic_template char (generic_template_length) based (generic_tp); 6 143 dcl generic_template_length fixed bin; 6 144 dcl generic_tp ptr; 6 145 6 146 /* these columns form a group of rows and are used with outlining, etc. */ 6 147 dcl 1 group_info aligned based (group_ip), 6 148 2 number_of_columns_to_group fixed bin, 6 149 2 column_number (gi_init_number_of_columns_to_group 6 150 refer (group_info.number_of_columns_to_group)) fixed bin; 6 151 dcl gi_init_number_of_columns_to_group fixed bin; 6 152 dcl group_ip ptr; 6 153 6 154 dcl headers_next_byte fixed bin (21); 6 155 /* used to hold the page/row headers/footers, and temp space for totals/subtotals. */ 6 156 dcl headers_temp_seg char (maximum_segment_size) based (headers_tsp); 6 157 dcl headers_temp_seg_as_an_array (maximum_segment_size) char (1) based (headers_tsp); 6 158 dcl headers_tsp ptr; 6 159 6 160 dcl 1 header_info aligned based (header_ip), 6 161 2 number_of_lines fixed bin, /* number of header lines typed in by the user */ 6 162 2 maximum_number_of_parts fixed bin, /* 3 parts maximum (left, right, and center) */ 6 163 2 lines (hi_init_number_of_lines 6 164 refer (header_info.number_of_lines)), 6 165 3 parts (hi_init_maximum_number_of_parts 6 166 refer (header_info.maximum_number_of_parts)), 6 167 4 flags, 6 168 5 present bit (1) unaligned, /* this particular part is defined */ 6 169 5 active bit (1) unaligned, /* and it contains active functions */ 6 170 5 available bit (34) unaligned, 6 171 4 index fixed bin (21), /* before evaluation */ 6 172 4 length fixed bin (21), /* before evaluation */ 6 173 4 starting_position fixed bin, /* within the page width */ 6 174 4 width fixed bin, /* within the page width */ 6 175 4 alignment fixed bin; /* left, right, or center */ 6 176 dcl header_ip ptr; 6 177 dcl hi_init_maximum_number_of_parts fixed bin; 6 178 dcl hi_init_number_of_lines fixed bin; 6 179 6 180 dcl initialize_number_of_columns fixed bin; /* columns_info refer extent */ 6 181 6 182 dcl 1 input_columns_info aligned like columns_info based (input_columns_ip); /* the columns in the table */ 6 183 dcl input_columns_ip ptr; 6 184 6 185 dcl input_columns_order (input_columns_info.number_of_columns) fixed bin based (input_columns_op); 6 186 dcl input_columns_op ptr; 6 187 6 188 dcl maximum_segment_size fixed bin (21); /* in characters */ 6 189 6 190 /* Used to access the next row from the table */ 6 191 dcl next_row_value char (table_info.row_value_length) based (status.next_row_ptr); 6 192 6 193 dcl 1 outline_info aligned based (outline_ip), /* who gets oulining attempted */ 6 194 2 maximum_number_of_single_columns fixed bin, 6 195 2 maximum_number_of_grouping_columns fixed bin, 6 196 2 number_of_single_columns fixed bin, /* columns who are not a member of the group */ 6 197 2 number_of_grouping_columns fixed bin, /* columns who are a member of the group */ 6 198 2 single_columns (oi_init_maximum_number_of_single_columns refer ( 6 199 outline_info.maximum_number_of_single_columns)) fixed bin, 6 200 2 grouping_columns (oi_init_maximum_number_of_grouping_columns refer ( 6 201 outline_info.maximum_number_of_grouping_columns)) fixed bin; 6 202 dcl oi_init_maximum_number_of_grouping_columns fixed bin; 6 203 dcl oi_init_maximum_number_of_single_columns fixed bin; 6 204 dcl outline_ip ptr; 6 205 6 206 dcl 1 output_columns_info like columns_info based (output_columns_ip); /* the columns that will go on the page */ 6 207 dcl output_columns_ip ptr; 6 208 6 209 /* these columns will be checked to determine if a page break is required */ 6 210 dcl 1 page_break_info aligned based (page_break_ip), 6 211 2 number_of_columns fixed bin, 6 212 2 columns (pbi_init_number_of_columns refer ( 6 213 page_break_info.number_of_columns)) bit (1) unaligned; 6 214 dcl page_break_ip ptr; 6 215 dcl pbi_init_number_of_columns fixed bin; 6 216 6 217 /* Used to access the previous row from the table */ 6 218 dcl previous_row_value char (table_info.row_value_length) based (status.previous_row_ptr); 6 219 6 220 /* The templates for the row value (also used for titles, subtotals, and totals.) */ 6 221 dcl 1 row_value_template_info like template_info based (row_value_template_ip); 6 222 dcl row_value_template_ip ptr; 6 223 6 224 /* main execution control structure for linus_fr_build_page */ 6 225 dcl 1 status aligned based (status_pointer), 6 226 2 flags, 6 227 3 still_formatting_detail_blocks bit (1), /* turned on while we are doing detail blocks */ 6 228 3 first_row_of_report bit (1), /* turned on when we are on the first row of a report */ 6 229 3 last_row_of_report bit (1), /* turned on when we are on the last row of a report */ 6 230 3 first_row_on_page bit (1), /* turned on when we are on the 1st row of a page */ 6 231 3 page_overflow bit (1), /* turned on when we are backing up */ 6 232 3 subtotals_ejection_in_progress bit (1), /* turned on when subtotals are being ejected */ 6 233 3 subcounts_ejection_in_progress bit (1), /* turned on when subcounts are being ejected */ 6 234 3 totals_ejection_in_progress bit (1), /* turned on when totals are being ejected */ 6 235 3 counts_ejection_in_progress bit (1), /* turned on when counts are being ejected */ 6 236 3 header_being_evaluated bit (1), /* turned on during header evaluation */ 6 237 3 detail_block_used_some_lines bit (1), /* turned on when a row header/footer/value/subtotal/total uses a line */ 6 238 3 row_has_been_processed_before bit (1), /* turned on when this row has been backed out of the previous page */ 6 239 3 last_pass bit (1), /* true if this is the last pass */ 6 240 2 previous_row_ptr ptr, /* points to the previous row (or null) */ 6 241 2 current_row_ptr ptr, /* points to the current row */ 6 242 2 next_row_ptr ptr, /* points to the next row (or null) */ 6 243 2 total_number_of_rows_used fixed bin, /* total # per page, used to make sure we don't */ 6 244 /* backup over the 1st row */ 6 245 2 current_pass_number fixed bin, /* [display_builtins current_pass_number] */ 6 246 2 current_row_number fixed bin (35), /* [display_builtins current_row_number] */ 6 247 2 current_column_number fixed bin, /* set to the current output column during row evaluation */ 6 248 2 current_page_number fixed bin (21), /* [display_builtins page_number] */ 6 249 2 current_line_on_page fixed bin, /* this is where the next thing is placed on the page */ 6 250 2 remaining_lines_on_page fixed bin, /* used in estimating if something will fit */ 6 251 2 highest_row_formatted fixed bin, /* used to keep track of rows backed out of the page */ 6 252 2 current_header_line fixed bin, /* set to the current header line during header evaluation */ 6 253 2 current_header_part fixed bin, /* set to the current header part during header evaluation */ 6 254 2 number_of_lines_needed_for_detail_block fixed bin, /* sum of row header, footer, and value */ 6 255 2 number_of_lines_needed_for_row_header fixed bin, /* may be zero */ 6 256 2 number_of_lines_needed_for_row_value fixed bin, /* may be zero */ 6 257 2 number_of_lines_needed_for_row_footer fixed bin, /* may be zero */ 6 258 2 number_of_lines_needed_for_page_footer fixed bin, /* may be zero */ 6 259 2 number_of_lines_needed_for_group_header fixed bin, /* may be zero */ 6 260 2 number_of_lines_needed_for_group_footer fixed bin, /* may be zero */ 6 261 2 last_row_number fixed bin (35), /* zero unless multi-pass */ 6 262 2 last_page_number fixed bin, /* zero unless multi-pass mode */ 6 263 2 object_being_evaluated char (16) varying; /* "page header", "row value", etc. */ 6 264 dcl status_pointer ptr; 6 265 6 266 dcl 1 subcount_columns_info like columns_info based (subcount_columns_ip); 6 267 dcl subcount_columns_ip ptr; 6 268 6 269 dcl 1 subcount_generation_info like subtotal_generation_info based (subcount_generation_ip); 6 270 dcl subcount_generation_ip ptr; 6 271 6 272 dcl 1 subcount_info like subtotal_info based (subcount_ip); 6 273 dcl subcount_ip ptr; 6 274 6 275 dcl 1 subtotal_columns_info like columns_info based (subtotal_columns_ip); 6 276 dcl subtotal_columns_ip ptr; 6 277 6 278 /* Used to restore subtotals when backing up on a page. */ 6 279 dcl 1 subtotal_generation_info aligned based (subtotal_generation_ip), 6 280 2 maximum_number_of_generation_blocks fixed bin, /* maximum number of subtotals possibly generated per page + 1 */ 6 281 2 number_of_subtotals fixed bin, /* # of subtotals we're taking */ 6 282 2 current_generation_block fixed bin, /* slot for next subtotal generation */ 6 283 2 generations (0:sgi_init_number_of_generations 6 284 refer (subtotal_generation_info.maximum_number_of_generation_blocks)), 6 285 3 subtotals (sgi_init_number_of_subtotals /* value of the subtotals when the break occured */ 6 286 refer (subtotal_generation_info.number_of_subtotals)) float dec (59); 6 287 dcl sgi_init_number_of_generations fixed bin; 6 288 dcl sgi_init_number_of_subtotals fixed bin; 6 289 dcl subtotal_generation_ip ptr; 6 290 6 291 dcl 1 subtotal_info aligned based (subtotal_ip), 6 292 2 columns_info_ptr ptr, /* points to subtotal_columns_info structure */ 6 293 2 subtotal_generation_info_ptr ptr, /* points to subtotal_generations_info structure */ 6 294 2 number_of_columns_to_subtotal fixed bin, /* the number of subtotals */ 6 295 2 highest_level fixed bin, /* the largest number of different subtotals on a single column */ 6 296 2 current_level fixed bin, /* the current level of subtotals being evaluated */ 6 297 2 columns (si_init_number_of_columns_to_subtotal 6 298 refer (subtotal_info.number_of_columns_to_subtotal)), 6 299 3 flags, 6 300 4 reset bit (1) unaligned, /* reset or running subtotals */ 6 301 4 group_column bit (1) unaligned, /* on means the watch column is a grouping column */ 6 302 4 available bit (34) unaligned, 6 303 3 input_column fixed bin, /* # of the input column for accumulations */ 6 304 3 watch_column fixed bin, /* # of the column to watch for generation */ 6 305 3 level fixed bin, /* different subtotals on the same column receive higher level numbers */ 6 306 3 ioa_string char (5) varying, /* used to edit the "subtotal" field */ 6 307 3 subtotal float dec (59); /* used to hold the subtotal until it needs /* 6 308* /* to be placed on the page */ 6 309 dcl si_init_number_of_columns_to_subtotal fixed bin; 6 310 dcl subtotal_ip ptr; 6 311 6 312 dcl 1 template_info aligned based (template_ip), /* templates that are laid down before the column values */ 6 313 2 template_width fixed bin, /* how wide they are */ 6 314 2 number_of_templates fixed bin, /* how many there are */ 6 315 2 templates (ti_init_number_of_templates refer (template_info.number_of_templates)) /* the templates */ 6 316 char (ti_init_template_width refer (template_info.template_width)); 6 317 dcl ti_init_number_of_templates fixed bin; 6 318 dcl template_ip ptr; 6 319 dcl ti_init_template_width fixed bin; 6 320 6 321 /* used to determine which templates have been placed */ 6 322 dcl template_map (template_map_number_of_bits) bit (1) unaligned based (template_mp); 6 323 dcl template_mp ptr; 6 324 dcl template_map_number_of_bits fixed bin; 6 325 dcl template_map_defined_as_a_string bit (template_map_number_of_bits) based (template_mp); 6 326 6 327 dcl template char (template_length) based (template_ptr); 6 328 dcl template_length fixed bin; 6 329 dcl template_ptr ptr; 6 330 6 331 dcl 1 title_block_columns_info like columns_info based (title_block_columns_ip); /* output columns for the titles */ 6 332 dcl title_block_columns_ip ptr; 6 333 6 334 /* holds the formatted title block after page 1 is finished */ 6 335 dcl 1 title_block_info aligned based (title_block_ip), 6 336 2 number_of_lines fixed bin, /* how many lines there are */ 6 337 2 line_length fixed bin, /* how long the lines are */ 6 338 2 lines (tbi_init_number_of_lines refer ( /* the formatted lines */ 6 339 title_block_info.number_of_lines)) char (tbi_init_line_length refer ( 6 340 title_block_info.line_length)); 6 341 dcl tbi_init_line_length fixed bin; 6 342 dcl tbi_init_number_of_lines fixed bin; 6 343 dcl title_block_ip ptr; 6 344 6 345 dcl 1 total_columns_info like columns_info based (total_columns_ip); /* output_columns_info for totals */ 6 346 dcl total_columns_ip ptr; 6 347 6 348 dcl 1 total_info aligned based (total_ip), 6 349 2 columns_info_ptr ptr, /* points to total_columns_info structure */ 6 350 2 number_of_columns_to_total fixed bin, /* # to total */ 6 351 2 columns (ti_init_number_of_columns_to_total 6 352 refer (total_info.number_of_columns_to_total)), 6 353 3 input_column fixed bin, /* the input column number */ 6 354 3 ioa_string char (5) varying, /* used to edit the "total" field */ 6 355 3 total float dec (59); /* used to hold the total until it's placed on the page */ 6 356 dcl ti_init_number_of_columns_to_total fixed bin; 6 357 dcl total_ip ptr; 6 358 6 359 /* END INCLUDE FILE linus_report_structures.incl.pl1 */ 320 321 7 1 /* BEGIN INCLUDE FILE linus_table_info.incl.pl1 -- Dave Schimke 1/5/83 */ 7 2 /* 7 3*09/28/83 Al Dupuis: Added the store_args_ptr variable and the store_args structure. 7 4**/ 7 5 dcl 1 table_info aligned based (table_ip), /* info on displayable table */ 7 6 2 retrieval_identifier fixed bin , /* current retrieval id */ 7 7 2 row_count fixed bin(35), /* number of rows in table */ 7 8 2 column_count fixed bin, /* number of columns in table */ 7 9 2 maximum_column_name_length fixed bin, 7 10 /* largest column name */ 7 11 2 maximum_column_value_length fixed bin, 7 12 /* largest column length */ 7 13 2 row_value_length fixed bin (21), /* length of entire row */ 7 14 /* (sum of column lengths) */ 7 15 2 row_segs_info_ptr ptr init (null), /* ptr to the row segs info */ 7 16 2 store_args_ptr ptr, /* ptr to the arg list for storing rows */ 7 17 2 columns (ti_init_column_count refer (table_info.column_count)), 7 18 /* column info */ 7 19 3 column_name char (69) var, /* column header name */ 7 20 3 column_data_type bit (36), /* original data descriptor */ 7 21 3 column_length fixed bin (21), /* length of column in chars */ 7 22 3 column_index fixed bin (21); /* index of start of column in */ 7 23 /* row value */ 7 24 7 25 dcl 1 row_segs_info aligned based (row_segs_ip), 7 26 2 max_number_of_seg_ptrs fixed bin, 7 27 2 max_number_of_ptrs_per_seg fixed bin(21), 7 28 2 number_of_seg_ptrs fixed bin, 7 29 2 seg_ptr (rsi_init_max_number_of_seg_ptrs refer (row_segs_info. 7 30 max_number_of_seg_ptrs)) ptr unal; 7 31 7 32 dcl 1 row_ptrs aligned based (row_ptrs_p), 7 33 2 number_of_ptrs_this_seg fixed bin(21), 7 34 2 row_value_ptr (row_ptrs.number_of_ptrs_this_seg) ptr unal; 7 35 7 36 dcl row_value char (table_info.row_value_length) based (row_value_p); 7 37 dcl row_value_p ptr unal; /* ptr to the current row value */ 7 38 7 39 dcl row_segs_ip ptr; /* ptr to the seg of ptrs to */ 7 40 /* the arrays of row_value_ptrs */ 7 41 dcl row_ptrs_p ptr; /* ptr to an array of */ 7 42 /* row_value_ptrs */ 7 43 7 44 dcl 1 store_args aligned based (store_ap), 7 45 2 table_name char (30), 7 46 2 error_code fixed bin (35), 7 47 2 number_of_descriptors fixed bin, 7 48 2 header like arg_list.header, 7 49 2 arg_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 7 50 2 desc_ptrs (arg_list_arg_count refer (store_args.header.arg_count)) ptr, 7 51 2 argument_list_descriptors (init_number_of_descriptors refer 7 52 (store_args.number_of_descriptors)) like arg_descriptor; 7 53 7 54 dcl init_number_of_descriptors; 7 55 dcl rsi_init_max_number_of_seg_ptrs fixed bin; 7 56 dcl store_ap ptr; 7 57 dcl table_ip ptr; 7 58 dcl ti_init_column_count fixed bin; 7 59 7 60 /* END INCLUDE FILE linus_table_info.incl.pl1 */ 322 323 324 end linus_column_value; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/29/86 0939.5 linus_column_value.pl1 >special_ldd>install>MR12.0-1106>linus_column_value.pl1 310 1 11/02/83 1845.0 arg_descriptor.incl.pl1 >ldd>include>arg_descriptor.incl.pl1 312 2 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 314 3 09/16/83 1338.0 linus_options_extents.incl.pl1 >ldd>include>linus_options_extents.incl.pl1 316 4 07/29/86 0937.8 linus_lcb.incl.pl1 >special_ldd>install>MR12.0-1106>linus_lcb.incl.pl1 318 5 09/16/83 1338.1 linus_report_info.incl.pl1 >ldd>include>linus_report_info.incl.pl1 320 6 09/16/83 1338.1 linus_report_structures.incl.pl1 >ldd>include>linus_report_structures.incl.pl1 322 7 10/06/83 1219.0 linus_table_info.incl.pl1 >ldd>include>linus_table_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. DIGITS 000000 constant char(10) initial unaligned dcl 249 ref 222 MAXIMUM_OPTION_VALUE_LENGTH constant fixed bin(17,0) initial dcl 3-36 ref 294 NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 3-20 ref 161 NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 3-21 ref 161 OFF constant bit(1) initial dcl 250 ref 94 121 144 145 181 182 187 188 193 194 212 236 ON constant bit(1) initial dcl 251 ref 86 114 146 173 180 186 192 232 active_request_flag 000100 automatic bit(1) dcl 253 set ref 149* addr builtin function dcl 254 ref 56 addrel builtin function dcl 255 ref 56 arg based char unaligned dcl 256 set ref 167 178 178 184 184 190 190 196 196 206 208* arg_descriptor based structure level 1 dcl 1-6 arg_length 000101 automatic fixed bin(21,0) dcl 257 set ref 166* 167 177* 178 178 184 184 190 190 196 196 204* 206 208 208 arg_list based structure level 1 dcl 2-5 arg_ptr 000102 automatic pointer dcl 258 set ref 166* 167 177* 178 178 184 184 190 190 196 196 204* 206 208 column_count 2 based fixed bin(17,0) level 2 dcl 7-5 ref 225 233 column_identifier 000105 automatic varying char(128) dcl 261 set ref 167* 222 224 234 240* column_index 37 based fixed bin(21,0) array level 3 dcl 7-5 ref 76 column_info based structure level 1 dcl 6-19 column_length 36 based fixed bin(21,0) array level 3 dcl 7-5 ref 76 column_name 12 based varying char(69) array level 3 dcl 7-5 ref 234 column_number 000104 automatic fixed bin(17,0) dcl 260 set ref 76 76 91 119 224* 224 225 225 225* 237* columns 3 based structure array level 2 in structure "total_info" dcl 6-348 in procedure "linus_column_value" columns 12 based structure array level 2 in structure "table_info" dcl 7-5 in procedure "linus_column_value" columns 7 based structure array level 2 in structure "subtotal_info" dcl 6-291 in procedure "linus_column_value" columns_info based structure level 1 dcl 6-42 convert builtin function dcl 262 ref 224 current_arg_number 000146 automatic fixed bin(17,0) dcl 263 set ref 172* 177* 198 203* 203 204* 211* 211 212 current_level 6 based fixed bin(17,0) level 2 dcl 6-291 ref 91 current_row 000147 automatic bit(1) dcl 264 set ref 146* 180* 187* 193* current_row_ptr 20 based pointer level 2 dcl 6-225 ref 74 default_return_value 000150 automatic varying char(128) dcl 266 set ref 66 147* 206* error_table_$badopt 000010 external static fixed bin(35,0) dcl 268 set ref 208* error_table_$inconsistent 000012 external static fixed bin(35,0) dcl 269 set ref 198* error_table_$noarg 000014 external static fixed bin(35,0) dcl 270 set ref 151* extended_arg_type 000233 automatic fixed bin(17,0) initial dcl 1-36 set ref 1-36* first_row_of_report 1 based bit(1) level 3 dcl 6-225 ref 63 flags based structure level 2 in structure "status" dcl 6-225 in procedure "linus_column_value" flags based structure level 2 in structure "report_control_info" dcl 5-7 in procedure "linus_column_value" format_report_info based structure level 1 dcl 6-74 format_report_info_ptr based pointer level 2 dcl 5-7 ref 161 format_report_ip 000240 automatic pointer dcl 6-139 set ref 87 115 161* 162 164 header based structure level 2 dcl 2-5 input_column 10 based fixed bin(17,0) array level 3 in structure "subtotal_info" dcl 6-291 in procedure "linus_column_value" ref 91 input_column 3 based fixed bin(17,0) array level 3 in structure "total_info" dcl 6-348 in procedure "linus_column_value" ref 119 ioa_$rsnnl 000016 constant entry external dcl 274 ref 104 131 ioa_string 4 based varying char(5) array level 3 in structure "total_info" dcl 6-348 in procedure "linus_column_value" set ref 131* ioa_string 13 based varying char(5) array level 3 in structure "subtotal_info" dcl 6-291 in procedure "linus_column_value" set ref 104* last_row_of_report 2 based bit(1) level 3 dcl 6-225 ref 63 lcb based structure level 1 dcl 4-53 lcb_ptr 000234 automatic pointer dcl 4-121 set ref 142* 155 lcb_ptr_parm parameter pointer dcl 45 ref 38 142 length builtin function dcl 276 ref 55 level 12 based fixed bin(17,0) array level 3 dcl 6-291 ref 91 linus_error_$no_report 000020 external static fixed bin(35,0) dcl 277 set ref 156* 158* loop 000211 automatic fixed bin(17,0) dcl 278 set ref 89* 91 91 95* 117* 119 122* 175* 233* 234 237* next_row 000212 automatic bit(1) dcl 280 set ref 63 72 144* 182* 186* 194* next_row_ptr 22 based pointer level 2 dcl 6-225 ref 72 not_found 000213 automatic bit(1) dcl 281 set ref 86* 89 94* 98 114* 117 121* 125 232* 233 236* 240 null builtin function dcl 282 ref 5-52 156 number_of_args_supplied 000214 automatic fixed bin(17,0) dcl 283 set ref 149* 151 169 175 198 212 number_of_columns_to_subtotal 4 based fixed bin(17,0) level 2 dcl 6-291 ref 89 number_of_columns_to_total 2 based fixed bin(17,0) level 2 dcl 6-348 ref 117 previous_row 000215 automatic bit(1) dcl 285 set ref 63 70 145* 181* 188* 192* previous_row_ptr 16 based pointer level 2 dcl 6-225 ref 70 report_cip 000236 automatic pointer initial dcl 5-52 set ref 5-52* 155* 156 158 161 report_control_info based structure level 1 dcl 5-7 report_control_info_ptr 106 based pointer level 2 dcl 4-53 ref 155 report_has_been_started 0(03) based bit(1) level 3 packed unaligned dcl 5-7 ref 158 requote_string_ 000022 constant entry external dcl 288 ref 57 return_value based varying char dcl 289 set ref 57* return_value_length 000216 automatic fixed bin(21,0) dcl 290 set ref 57 149* return_value_ptr 000220 automatic pointer dcl 291 set ref 57 149* row_segs_info_ptr 6 based pointer initial level 2 dcl 7-5 ref 163 row_segs_ip 000252 automatic pointer dcl 7-39 set ref 163* row_value based char unaligned dcl 7-36 ref 76 row_value_length 5 based fixed bin(21,0) level 2 dcl 7-5 ref 76 row_value_p 000250 automatic pointer unaligned dcl 7-37 set ref 70* 72* 74* 76 sci_ptr 000222 automatic pointer dcl 293 set ref 141* 149* 151* 156* 158* 166* 177* 198* 204* 208* 225* 240* sci_ptr_parm parameter pointer dcl 44 ref 38 141 spare_string 000224 automatic varying char dcl 294 set ref 55 56 66* 76* 104* 131* spare_string_length 000224 automatic fixed bin(21,0) dcl 295 set ref 55* 57 57 104* 131* spare_string_redefined_as_nonvarying based char unaligned dcl 296 set ref 57* spare_string_redefined_ptr 000226 automatic pointer dcl 297 set ref 56* 57 ssu_$abort_line 000024 constant entry external dcl 298 ref 151 156 158 198 208 225 240 ssu_$arg_ptr 000026 constant entry external dcl 299 ref 166 177 204 ssu_$return_arg 000030 constant entry external dcl 300 ref 149 status based structure level 1 dcl 6-225 status_pointer 000242 automatic pointer dcl 6-264 set ref 49 51 63 63 70 72 74 164* status_ptr 24 based pointer level 2 dcl 6-74 ref 164 still_processing_args 000230 automatic bit(1) dcl 301 set ref 173* 175 212* substr builtin function dcl 302 ref 76 subtotal 16 based float dec(59) array level 3 dcl 6-291 set ref 104* subtotal_generation_info based structure level 1 dcl 6-279 subtotal_info based structure level 1 dcl 6-291 subtotal_info_ptr 70 based pointer level 2 dcl 6-74 ref 87 subtotal_ip 000244 automatic pointer dcl 6-310 set ref 87* 89 91 91 91 104 104 subtotal_number 000231 automatic fixed bin(17,0) dcl 303 set ref 95* 104 104 subtotals_ejection_in_progress 5 based bit(1) level 3 dcl 6-225 ref 49 table_info based structure level 1 dcl 7-5 table_info_ptr 10 based pointer level 2 dcl 6-74 ref 162 table_ip 000254 automatic pointer dcl 7-57 set ref 76 76 76 162* 163 225 233 234 template_info based structure level 1 dcl 6-312 total 7 based float dec(59) array level 3 dcl 6-348 set ref 131* total_info based structure level 1 dcl 6-348 total_info_ptr 74 based pointer level 2 dcl 6-74 ref 115 total_ip 000246 automatic pointer dcl 6-357 set ref 115* 117 119 131 131 total_number 000232 automatic fixed bin(17,0) dcl 306 set ref 122* 131 131 totals_ejection_in_progress 7 based bit(1) level 3 dcl 6-225 ref 51 verify builtin function dcl 308 ref 222 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BIT_DATA_TYPE internal static fixed bin(17,0) initial dcl 6-9 BOTH_ALIGNMENT internal static fixed bin(17,0) initial dcl 6-10 CENTER_ALIGNMENT internal static fixed bin(17,0) initial dcl 6-11 CHAR_DATA_TYPE internal static fixed bin(17,0) initial dcl 6-12 DECIMAL_ALIGNMENT internal static fixed bin(17,0) initial dcl 6-13 DECIMAL_DATA_TYPE internal static fixed bin(17,0) initial dcl 6-14 Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 GENERAL_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 3-15 GENERAL_REPORT_OPTION internal static fixed bin(17,0) initial dcl 3-14 INDEX_FOR_ALIGNMENT internal static fixed bin(17,0) initial dcl 3-66 INDEX_FOR_COLUMN_ORDER internal static fixed bin(17,0) initial dcl 3-50 INDEX_FOR_COUNT internal static fixed bin(17,0) initial dcl 3-51 INDEX_FOR_DELIMITER internal static fixed bin(17,0) initial dcl 3-40 INDEX_FOR_EDITING internal static fixed bin(17,0) initial dcl 3-67 INDEX_FOR_EXCLUDE internal static fixed bin(17,0) initial dcl 3-52 INDEX_FOR_FOLDING internal static fixed bin(17,0) initial dcl 3-68 INDEX_FOR_FORMAT_DOCUMENT_CONTROLS internal static fixed bin(17,0) initial dcl 3-41 INDEX_FOR_GROUP internal static fixed bin(17,0) initial dcl 3-53 INDEX_FOR_GROUP_FOOTER_TRIGGER internal static fixed bin(17,0) initial dcl 3-54 INDEX_FOR_GROUP_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 3-55 INDEX_FOR_GROUP_HEADER_TRIGGER internal static fixed bin(17,0) initial dcl 3-56 INDEX_FOR_GROUP_HEADER_VALUE internal static fixed bin(17,0) initial dcl 3-57 INDEX_FOR_HYPHENATION internal static fixed bin(17,0) initial dcl 3-42 INDEX_FOR_OUTLINE internal static fixed bin(17,0) initial dcl 3-58 INDEX_FOR_PAGE_BREAK internal static fixed bin(17,0) initial dcl 3-59 INDEX_FOR_PAGE_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 3-43 INDEX_FOR_PAGE_HEADER_VALUE internal static fixed bin(17,0) initial dcl 3-44 INDEX_FOR_PAGE_LENGTH internal static fixed bin(17,0) initial dcl 3-45 INDEX_FOR_PAGE_WIDTH internal static fixed bin(17,0) initial dcl 3-46 INDEX_FOR_ROW_FOOTER_VALUE internal static fixed bin(17,0) initial dcl 3-60 INDEX_FOR_ROW_HEADER_VALUE internal static fixed bin(17,0) initial dcl 3-61 INDEX_FOR_SEPARATOR internal static fixed bin(17,0) initial dcl 3-69 INDEX_FOR_SUBCOUNT internal static fixed bin(17,0) initial dcl 3-62 INDEX_FOR_SUBTOTAL internal static fixed bin(17,0) initial dcl 3-63 INDEX_FOR_TITLE internal static fixed bin(17,0) initial dcl 3-70 INDEX_FOR_TITLE_LINE internal static fixed bin(17,0) initial dcl 3-47 INDEX_FOR_TOTAL internal static fixed bin(17,0) initial dcl 3-64 INDEX_FOR_TRUNCATION internal static fixed bin(17,0) initial dcl 3-48 INDEX_FOR_WIDTH internal static fixed bin(17,0) initial dcl 3-71 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 LEFT_ALIGNMENT internal static fixed bin(17,0) initial dcl 6-15 LONGEST_GENERAL_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 3-28 LONGEST_GENERAL_REPORT_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 3-27 LONGEST_SPECIFIC_COLUMN_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 3-26 MAXIMUM_NORMALIZED_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 3-32 MAXIMUM_OPTION_IDENTIFIER_LENGTH internal static fixed bin(17,0) initial dcl 3-34 MAXIMUM_OPTION_NAME_LENGTH internal static fixed bin(17,0) initial dcl 3-35 NUMBER_OF_SPECIFIC_COLUMN_OPTIONS_IN_TABLE internal static fixed bin(17,0) initial dcl 3-22 NUMERIC_DATA_TYPE internal static fixed bin(17,0) initial dcl 6-16 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 2-29 RIGHT_ALIGNMENT internal static fixed bin(17,0) initial dcl 6-17 SPECIFIC_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 3-16 arg_descriptor_ptr automatic pointer dcl 1-34 arg_list_with_envptr based structure level 1 dcl 2-17 column_ip automatic pointer dcl 6-40 column_map based structure array level 1 dcl 6-48 column_map_number_of_columns automatic fixed bin(17,0) dcl 6-51 column_mp automatic pointer dcl 6-52 columns_ip automatic pointer dcl 6-46 count_columns_info based structure level 1 unaligned dcl 6-54 count_columns_ip automatic pointer dcl 6-55 count_info based structure level 1 unaligned dcl 6-57 count_ip automatic pointer dcl 6-58 current_row_value based char unaligned dcl 6-61 editing_string_result based char unaligned dcl 6-64 editing_string_rl automatic fixed bin(17,0) dcl 6-65 editing_string_rp automatic pointer dcl 6-66 editing_strings_next_byte automatic fixed bin(21,0) dcl 6-68 editing_strings_temp_seg based char unaligned dcl 6-70 editing_strings_temp_seg_as_an_array based char(1) array unaligned dcl 6-71 editing_strings_tsp automatic pointer dcl 6-72 extended_arg_descriptor based structure level 1 dcl 1-21 fixed builtin function dcl 272 fixed_arg_descriptor based structure level 1 dcl 1-13 generic_template based char unaligned dcl 6-142 generic_template_length automatic fixed bin(17,0) dcl 6-143 generic_tp automatic pointer dcl 6-144 gi_init_number_of_columns_to_group automatic fixed bin(17,0) dcl 6-151 group_info based structure level 1 dcl 6-147 group_ip automatic pointer dcl 6-152 header_info based structure level 1 dcl 6-160 header_ip automatic pointer dcl 6-176 headers_next_byte automatic fixed bin(21,0) dcl 6-154 headers_temp_seg based char unaligned dcl 6-156 headers_temp_seg_as_an_array based char(1) array unaligned dcl 6-157 headers_tsp automatic pointer dcl 6-158 hi_init_maximum_number_of_parts automatic fixed bin(17,0) dcl 6-177 hi_init_number_of_lines automatic fixed bin(17,0) dcl 6-178 init_number_of_descriptors automatic fixed bin(17,0) dcl 7-54 initialize_number_of_columns automatic fixed bin(17,0) dcl 6-180 input_columns_info based structure level 1 dcl 6-182 input_columns_ip automatic pointer dcl 6-183 input_columns_op automatic pointer dcl 6-186 input_columns_order based fixed bin(17,0) array dcl 6-185 maximum_segment_size automatic fixed bin(21,0) dcl 6-188 next_row_value based char unaligned dcl 6-191 oi_init_maximum_number_of_grouping_columns automatic fixed bin(17,0) dcl 6-202 oi_init_maximum_number_of_single_columns automatic fixed bin(17,0) dcl 6-203 outline_info based structure level 1 dcl 6-193 outline_ip automatic pointer dcl 6-204 output_columns_info based structure level 1 unaligned dcl 6-206 output_columns_ip automatic pointer dcl 6-207 page_break_info based structure level 1 dcl 6-210 page_break_ip automatic pointer dcl 6-214 pbi_init_number_of_columns automatic fixed bin(17,0) dcl 6-215 previous_row_value based char unaligned dcl 6-218 rel builtin function dcl 287 row_ptrs based structure level 1 dcl 7-32 row_ptrs_p automatic pointer dcl 7-41 row_segs_info based structure level 1 dcl 7-25 row_value_template_info based structure level 1 unaligned dcl 6-221 row_value_template_ip automatic pointer dcl 6-222 rsi_init_max_number_of_seg_ptrs automatic fixed bin(17,0) dcl 7-55 sgi_init_number_of_generations automatic fixed bin(17,0) dcl 6-287 sgi_init_number_of_subtotals automatic fixed bin(17,0) dcl 6-288 si_init_number_of_columns_to_subtotal automatic fixed bin(17,0) dcl 6-309 store_ap automatic pointer dcl 7-56 store_args based structure level 1 dcl 7-44 subcount_columns_info based structure level 1 unaligned dcl 6-266 subcount_columns_ip automatic pointer dcl 6-267 subcount_generation_info based structure level 1 unaligned dcl 6-269 subcount_generation_ip automatic pointer dcl 6-270 subcount_info based structure level 1 unaligned dcl 6-272 subcount_ip automatic pointer dcl 6-273 subtotal_columns_info based structure level 1 unaligned dcl 6-275 subtotal_columns_ip automatic pointer dcl 6-276 subtotal_generation_ip automatic pointer dcl 6-289 sys_info$max_seg_size external static fixed bin(35,0) dcl 304 tbi_init_line_length automatic fixed bin(17,0) dcl 6-341 tbi_init_number_of_lines automatic fixed bin(17,0) dcl 6-342 template based char unaligned dcl 6-327 template_ip automatic pointer dcl 6-318 template_length automatic fixed bin(17,0) dcl 6-328 template_map based bit(1) array unaligned dcl 6-322 template_map_defined_as_a_string based bit unaligned dcl 6-325 template_map_number_of_bits automatic fixed bin(17,0) dcl 6-324 template_mp automatic pointer dcl 6-323 template_ptr automatic pointer dcl 6-329 ti_init_column_count automatic fixed bin(17,0) dcl 7-58 ti_init_number_of_columns_to_total automatic fixed bin(17,0) dcl 6-356 ti_init_number_of_templates automatic fixed bin(17,0) dcl 6-317 ti_init_template_width automatic fixed bin(17,0) dcl 6-319 title_block_columns_info based structure level 1 unaligned dcl 6-331 title_block_columns_ip automatic pointer dcl 6-332 title_block_info based structure level 1 dcl 6-335 title_block_ip automatic pointer dcl 6-343 total_columns_info based structure level 1 unaligned dcl 6-345 total_columns_ip automatic pointer dcl 6-346 NAMES DECLARED BY EXPLICIT CONTEXT. get_column_value 000235 constant entry internal dcl 61 ref 53 100 127 get_subtotal_value 000315 constant entry internal dcl 84 ref 49 get_total_value 000416 constant entry internal dcl 112 ref 51 initialize 000512 constant entry internal dcl 139 ref 47 linus_column_value 000126 constant entry external dcl 38 verify_column_name_or_number 001151 constant entry internal dcl 220 ref 48 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1652 1704 1523 1662 Length 2244 1523 32 323 126 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_column_value 500 external procedure is an external procedure. get_column_value internal procedure shares stack frame of external procedure linus_column_value. get_subtotal_value internal procedure shares stack frame of external procedure linus_column_value. get_total_value internal procedure shares stack frame of external procedure linus_column_value. initialize internal procedure shares stack frame of external procedure linus_column_value. verify_column_name_or_number internal procedure shares stack frame of external procedure linus_column_value. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_column_value 000100 active_request_flag linus_column_value 000101 arg_length linus_column_value 000102 arg_ptr linus_column_value 000104 column_number linus_column_value 000105 column_identifier linus_column_value 000146 current_arg_number linus_column_value 000147 current_row linus_column_value 000150 default_return_value linus_column_value 000211 loop linus_column_value 000212 next_row linus_column_value 000213 not_found linus_column_value 000214 number_of_args_supplied linus_column_value 000215 previous_row linus_column_value 000216 return_value_length linus_column_value 000220 return_value_ptr linus_column_value 000222 sci_ptr linus_column_value 000224 spare_string_length linus_column_value 000224 spare_string linus_column_value 000226 spare_string_redefined_ptr linus_column_value 000230 still_processing_args linus_column_value 000231 subtotal_number linus_column_value 000232 total_number linus_column_value 000233 extended_arg_type linus_column_value 000234 lcb_ptr linus_column_value 000236 report_cip linus_column_value 000240 format_report_ip linus_column_value 000242 status_pointer linus_column_value 000244 subtotal_ip linus_column_value 000246 total_ip linus_column_value 000250 row_value_p linus_column_value 000252 row_segs_ip linus_column_value 000254 table_ip linus_column_value THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return alloc_auto_adj shorten_stack ext_entry any_to_any_tr THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_$rsnnl requote_string_ ssu_$abort_line ssu_$arg_ptr ssu_$return_arg THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$noarg linus_error_$no_report LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 38 000122 294 000133 1 36 000143 5 52 000145 104 000147 131 000152 47 000155 48 000156 49 000157 51 000164 53 000170 55 000171 56 000173 57 000177 59 000233 61 000235 63 000236 66 000247 67 000260 70 000261 72 000266 74 000273 76 000275 80 000314 84 000315 86 000316 87 000320 89 000323 91 000335 94 000347 95 000350 97 000352 98 000354 100 000356 101 000357 104 000360 108 000415 112 000416 114 000417 115 000421 117 000424 119 000435 121 000443 122 000444 124 000446 125 000450 127 000452 128 000453 131 000454 135 000511 139 000512 141 000513 142 000517 144 000522 145 000523 146 000524 147 000526 149 000527 151 000546 155 000574 156 000577 158 000621 161 000641 162 000652 163 000654 164 000656 166 000660 167 000677 169 000710 172 000714 173 000716 175 000720 177 000731 178 000746 180 000760 181 000762 182 000763 183 000764 184 000765 186 000775 187 000777 188 001000 189 001001 190 001002 192 001012 193 001014 194 001015 195 001016 196 001017 198 001027 203 001056 204 001057 206 001074 207 001105 208 001106 211 001141 212 001142 214 001146 216 001150 220 001151 222 001152 224 001165 225 001175 230 001234 232 001235 233 001237 234 001251 236 001262 237 001263 239 001265 240 001267 245 001322 ----------------------------------------------------------- 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