COMPILATION LISTING OF SEGMENT linus_fr_get_page Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/29/86 0955.6 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* 9* 10* This module is called to get a page. 11* 12* 13* Known Bugs: 14* 15* Other Problems: 16* 17* History: 18* 19* Written - Al Dupuis - August 1983 20* 21**/ 22 23 linus_fr_get_page: proc ( 24 25 lcb_ptr_parm, /* input: ptr to linus control block */ 26 page_number_parm, /* input: desired page */ 27 page_ip_parm, /* output: ptr to page_info */ 28 code_parm /* output: success or failure */ 29 ); 30 31 dcl code_parm fixed bin (35) parm; 32 dcl lcb_ptr_parm ptr parm; 33 dcl page_number_parm fixed bin (21) parm; 34 dcl page_ip_parm ptr parm; 35 36 lcb_ptr = lcb_ptr_parm; 37 code_parm = 0; 38 page_ip_parm = null (); 39 40 /* Move the pointers for the structures we will need. */ 41 42 report_cip = lcb.report_control_info_ptr; 43 format_report_ip = report_control_info.format_report_info_ptr; 44 iocb_ptr = format_report_info.report_iocb_ptr; 45 46 /* Get set to read in the page. */ 47 48 record_key = ltrim (convert (record_key, page_number_parm)); 49 call iox_$seek_key (iocb_ptr, record_key, record_length, code_parm); 50 if code_parm ^= 0 51 then return; 52 53 /* It has it's own segment for it's exclusive use. */ 54 55 buffer_ptr = report_control_info.report_temp_seg_ptr; 56 buffer_length = sys_info$max_seg_size * 4; 57 call iox_$read_record (iocb_ptr, buffer_ptr, buffer_length, 58 record_length, code_parm); 59 if code_parm ^= 0 60 then return; 61 62 /* Get set to read in the page_info structure for the page. */ 63 64 record_key = record_key || ".page_info"; 65 call iox_$seek_key (iocb_ptr, record_key, record_length, code_parm); 66 if code_parm ^= 0 67 then return; 68 69 /* It will temporarily go into a report temp segment. */ 70 71 buffer_ptr = report_control_info.input_string_temp_seg_ptr; 72 call iox_$read_record (iocb_ptr, buffer_ptr, buffer_length, 73 record_length, code_parm); 74 if code_parm ^= 0 75 then return; 76 77 /* 78* Set the automatic pointer the structure is based on and set 79* the pointer to where the page is stored. Adjust the buffer 80* pointer and length so the next structure can share the same segment. 81**/ 82 83 page_ip = buffer_ptr; 84 page_info.page_ptr = report_control_info.report_temp_seg_ptr; 85 buffer_word_displacement = divide (record_length, 4, 21) + 1; 86 if mod (buffer_word_displacement, 2) ^= 0 87 then buffer_word_displacement = buffer_word_displacement + 1; 88 buffer_ptr = addrel (buffer_ptr, buffer_word_displacement); 89 buffer_length = buffer_length - (buffer_word_displacement * 4); 90 91 /* Get set to read in the formatted_page_info structure. */ 92 93 record_key = before (record_key, ".") || ".formatted_page_info"; 94 call iox_$seek_key (iocb_ptr, record_key, record_length, code_parm); 95 if code_parm ^= 0 96 then return; 97 98 /* Set the pointer for the structure and re-adjust buffer length. */ 99 100 call iox_$read_record (iocb_ptr, buffer_ptr, buffer_length, 101 record_length, code_parm); 102 if code_parm ^= 0 103 then return; 104 page_info.formatted_page_info_ptr = buffer_ptr; 105 buffer_length = sys_info$max_seg_size * 4; 106 107 /* 108* If the page contains overstruck characters then read in that 109* structure. Set the pointer to the structure. 110**/ 111 112 if page_info.page_overstrike_info_ptr ^= null () 113 then do; 114 buffer_ptr = report_control_info.output_string_temp_seg_ptr; 115 record_key = before (record_key, ".") || ".page_overstrike_info"; 116 call iox_$seek_key (iocb_ptr, record_key, record_length, code_parm); 117 if code_parm ^= 0 118 then return; 119 call iox_$read_record (iocb_ptr, buffer_ptr, buffer_length, 120 record_length, code_parm); 121 if code_parm ^= 0 122 then return; 123 page_info.page_overstrike_info_ptr = buffer_ptr; 124 end; 125 126 page_ip_parm = page_ip; 127 128 return; 129 130 dcl addr builtin; 131 dcl addrel builtin; 132 dcl before builtin; 133 dcl buffer_length fixed bin (21); 134 dcl buffer_ptr ptr; 135 dcl buffer_word_displacement fixed bin (21); 136 dcl convert builtin; 137 dcl divide builtin; 138 dcl fixed builtin; 139 dcl iocb_ptr ptr; 140 dcl iox_$seek_key entry (ptr, char(256) var, fixed bin(21), fixed bin(35)); 141 dcl iox_$read_record entry (ptr, ptr, fixed bin(21), fixed bin(21), fixed bin(35)); 142 dcl ltrim builtin; 143 dcl mod builtin; 144 dcl null builtin; 145 dcl record_key char (256) varying; 146 dcl record_length fixed bin (21); 147 dcl rel builtin; 148 dcl sys_info$max_seg_size fixed bin(35) ext static; 149 1 1 /* BEGIN INCLUDE FILE linus_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 linus_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 linus_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 linus_options_extents */ 150 151 2 1 /* BEGIN INCLUDE FILE linus_lcb.incl.pl1 -- jaw 8/30/77 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-04-23,Dupuis), approve(86-05-23,MCR7188), audit(86-07-23,GWMay), 2 7* install(86-07-29,MR12.0-1106): 2 8* Added general_work_area_ptr and renamed sfr_ptr to 2 9* force_retrieve_scope_ptr. 2 10* END HISTORY COMMENTS */ 2 11 2 12 2 13 /* HISTORY: 2 14* 2 15* 78-09-29 J. C. C. Jagernauth: Modified for MR7.0. 2 16* 2 17* 81-05-11 Rickie E. Brinegar: added security bit and andministrator bit as 2 18* a part of the attribute level control work. 2 19* 2 20* 81-06-17 Rickie E. Brinegar: deleted the sd_ptr as a part of removing the 2 21* scope_data structure from LINUS. LINUS now depends totally on MRDS for 2 22* scope information. 2 23* 2 24* 81-11-11 Rickie E. Brinegar: added the timing bit and three fields for 2 25* retaining various vcpu times to be collected when in timing mode. The 2 26* times to be collected are: LINUS parsing time, LINUS processing time, and 2 27* MRDS processing time. 2 28* 2 29* 82-01-15 DJ Schimke: Added the build_increment and build_start fields as 2 30* part of the line numbering implementation. This allows for possible later 2 31* LINUS control of the build defaults. 2 32* 2 33* 82-03-01 Paul W. Benjamin: Removed linus_prompt_chars_ptr, as that 2 34* information is now retained by ssu_. Removed parse_timer as no longer 2 35* meaningful. Added linus_version. Added iteration bit. Added 6 entry 2 36* variables for ssu_ replaceable procedures. Added actual_input_iocbp. 2 37* 2 38* 82-06-23 Al Dupuis: Added subsystem_control_info_ptr, 2 39* subsystem_invocation_level, and selection_expression_identifier. 2 40* 2 41* 82-08-26 DJ Schimke: Added report_control_info_ptr, and 2 42* table_control_info_ptr. 2 43* 2 44* 82-10-19 DJ Schimke: Added ssu_abort_line. 2 45* 2 46* 83-06-06 Bert Moberg: Added print_search_order (pso) and no_optimize (no_ot) 2 47* 2 48* 83-04-07 DJ Schimke: Added temp_seg_info_ptr. 2 49* 2 50* 83-08-26 Al Dupuis: Added query_temp_segment_ptr. 2 51**/ 2 52 2 53 dcl 1 lcb aligned based (lcb_ptr), /* LINUS control block */ 2 54 2 db_index fixed bin (35), /* index of open data base, or 0 */ 2 55 2 rb_len fixed bin (21), /* length of request buffer */ 2 56 2 lila_count fixed bin (35), /* number of LILA text lines */ 2 57 2 lila_chars fixed bin (35), /* number of LILA source test chars */ 2 58 2 trans_id fixed bin (35), /* used by checkpoint and rollback facilities (MR7.0) */ 2 59 2 lila_fn char (32) unal, /* entry name of lila data file */ 2 60 2 prompt_flag bit (1) unal, /* on if in prompt mode */ 2 61 2 test_flag bit (1) unal, /* on if in test mode */ 2 62 2 new_version bit (1) unal init (1), /* on for new version data base (MR7.0) */ 2 63 2 secured_db bit (1) unal, /* on if the db is in a secure state */ 2 64 2 administrator bit (1) unal, /* on if the user is a db administrator */ 2 65 2 timing_mode bit (1) unal, /* on if timing is to be done */ 2 66 2 iteration bit (1) unal, /* interpret parens as iteration sets */ 2 67 2 pso_flag bit (1) unal, /* add print_search_order to select */ 2 68 2 no_ot_flag bit (1) unal, /* add no_optimize to select */ 2 69 2 reserved bit (27) unal, 2 70 2 liocb_ptr ptr, /* iocb ptr for lila file */ 2 71 2 rb_ptr ptr, /* ptr to request buffer */ 2 72 2 is_ptr ptr, /* iocb ptr for currentinput stream switch */ 2 73 2 cal_ptr ptr, /* ptr to current arg list for invoke (or null) */ 2 74 2 ttn_ptr ptr, /* pointer to table info structure */ 2 75 2 force_retrieve_scope_info_ptr ptr, /* structure pointer to force retrieve scope operation */ 2 76 2 lv_ptr ptr, /* pointer linus variables */ 2 77 2 si_ptr ptr, /* pointer to select_info structure */ 2 78 2 setfi_ptr ptr, /* pointer to set function information */ 2 79 2 sclfi_ptr ptr, /* pointer to user declared scalar fun. names */ 2 80 2 ivs_ptr ptr, /* pointer to stack of invoke iocb pointers */ 2 81 2 lit_ptr ptr, /* pointer to literal pool */ 2 82 2 lvv_ptr ptr, /* pointer to linus variable alloc. pool */ 2 83 2 rd_ptr ptr, /* point to readied files mode information (MR7.0) */ 2 84 2 rt_ptr ptr, /* point to table of relation names and their readied modes 2 85* (MR7.0) */ 2 86 2 actual_input_iocbp ptr, /* ptr to input while in macros */ 2 87 2 lila_promp_chars_ptr ptr, /* pointer to the prompt characters for lila */ 2 88 2 linus_area_ptr ptr, /* LINUS temporary segment pointer */ 2 89 2 lila_area_ptr ptr, /* LILA temporary segment pointer */ 2 90 2 i_o_area_ptr ptr, /* temporary segment pointer used by write, print, create_list */ 2 91 2 rel_array_ptr ptr, /* ptr to array of names rslt info structure 2 92* for current lila expression */ 2 93 2 unused_timer float bin (63), /* future expansion */ 2 94 2 request_time float bin (63), /* How much request time was spent 2 95* in LINUS. (-1 = user has just enabled 2 96* timing, do not report) */ 2 97 2 mrds_time float bin (63), /* How much time was spent in MRDS */ 2 98 2 build_increment fixed bin, /* default increment for build mode */ 2 99 2 build_start fixed bin, /* default start count for build mode */ 2 100 2 linus_version char (4), /* current version of LINUS */ 2 101 2 subsystem_control_info_ptr ptr, /* the same ptr passed by ssu_ to each request procedure */ 2 102 2 subsystem_invocation_level fixed bin, /* identifies this invocation of LINUS */ 2 103 2 selection_expression_identifier fixed bin, /* identifies the current processed selection expression */ 2 104 2 report_control_info_ptr ptr, /* pointer to linus_report_control_info structure */ 2 105 2 table_control_info_ptr ptr, /* pointer to linus_table control structure */ 2 106 2 temp_seg_info_ptr ptr, /* pointer to linus_temp_seg_mgr control structure */ 2 107 2 query_temp_segment_ptr ptr, /* points to temp seg used for manipulating query */ 2 108 2 general_work_area_ptr ptr, /* a freeing area for general use */ 2 109 2 word_pad (6) bit (36) unal, 2 110 /* procedures that will be optionally */ 2 111 /* replaced by the user. Saved so they */ 2 112 /* can be reinstated if desired. */ 2 113 2 ssu_abort_line entry options (variable), 2 114 2 ssu_post_request_line variable entry (ptr), 2 115 2 ssu_pre_request_line variable entry (ptr), 2 116 2 117 2 curr_lit_offset fixed bin (35), /* index of first free bit in lit. pool */ 2 118 2 curr_lv_val_offset fixed bin (35), /* index of first free bit lv. val. pool */ 2 119 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (lcb.static_area))) + 1); 2 120 2 121 dcl lcb_ptr ptr; 2 122 2 123 /* END INCLUDE FILE linus_lcb.incl.pl1 */ 152 153 3 1 /* BEGIN INCLUDE FILE linus_page_info.incl.pl1 3 2* 3 3* Written - Al Dupuis - August 1983 3 4**/ 3 5 /* format: off */ 3 6 3 7 dcl 1 formatted_page_info aligned based (formatted_page_ip), 3 8 2 maximum_number_of_detail_blocks fixed bin, /* the most that can appear on a page */ 3 9 2 page_header_length fixed bin, /* page header in lines */ 3 10 2 title_block_length fixed bin, /* titles in lines */ 3 11 2 page_footer_length fixed bin, /* page footer in lines */ 3 12 2 number_of_detail_blocks fixed bin, 3 13 2 detail_blocks (fpi_init_maximum_number_of_detail_blocks 3 14 refer (formatted_page_info.maximum_number_of_detail_blocks)), 3 15 3 row_number fixed bin (35), /* position in the table */ 3 16 3 beginning_line_number fixed bin, /* beginning line on page */ 3 17 3 group_header_length fixed bin, /* group header length in lines */ 3 18 3 row_header_length fixed bin, /* row header in lines */ 3 19 3 row_length fixed bin, /* row value in lines */ 3 20 3 subtotal_length fixed bin, /* subtotal in lines */ 3 21 3 subcount_length fixed bin, /* subcount in lines */ 3 22 3 total_length fixed bin, /* total in lines */ 3 23 3 count_length fixed bin, /* count in lines */ 3 24 3 row_footer_length fixed bin, /* row footer in lines */ 3 25 3 group_footer_length fixed bin; /* group footer length in lines */ 3 26 dcl formatted_page_ip ptr; 3 27 dcl fpi_init_maximum_number_of_detail_blocks fixed bin; 3 28 3 29 dcl 1 page_info aligned based (page_ip), 3 30 2 width fixed bin, /* width in chars */ 3 31 2 length fixed bin, /* length in lines */ 3 32 2 total_characters fixed bin (21), /* width * length */ 3 33 2 page_info_size fixed bin, /* size of this structure in words */ 3 34 2 page_ptr ptr, /* points to the actual page */ 3 35 2 page_overstrike_info_ptr ptr, /* points to the overstrike info */ 3 36 2 formatted_page_info_ptr ptr; /* points to formatted_page_info */ 3 37 3 38 dcl page_defined_as_chars (page_info.total_characters) char (1) based (page_info.page_ptr); 3 39 dcl page_defined_as_lines (page_info.length) char (page_info.width) based (page_info.page_ptr); 3 40 dcl page_defined_as_a_string char (page_info.total_characters) based (page_info.page_ptr); 3 41 dcl page_ip ptr; 3 42 3 43 dcl 1 page_overstrike_info aligned based (page_overstrike_ip), 3 44 2 number_of_bits_or_chars fixed bin (21), /* number of chars in the page */ 3 45 2 bit_map (page_info.total_characters /* on means this char on the page is overstruck */ 3 46 refer (page_overstrike_info.number_of_bits_or_chars)) bit (1) unaligned, 3 47 2 chars (page_info.total_characters /* this is the overstrike character */ 3 48 refer (page_overstrike_info.number_of_bits_or_chars)) char (1) unaligned; 3 49 dcl page_overstrike_ip ptr; 3 50 3 51 dcl 1 page_overstrike_info_redefined aligned based (page_overstrike_ip), 3 52 2 number_of_bits_or_chars fixed bin (21), 3 53 2 bit_map bit (page_overstrike_info_redefined.number_of_bits_or_chars) unaligned, 3 54 2 chars char (page_overstrike_info_redefined.number_of_bits_or_chars) unaligned; 3 55 3 56 /* END INCLUDE FILE linus_page_info.incl.pl1 */ 154 155 4 1 /* BEGIN INCLUDE FILE linus_report_info.incl.pl1 4 2* Information needed to control the report environment. 4 3* Al Dupuis - August 1983 4 4**/ 4 5 /* format: off */ 4 6 4 7 dcl 1 report_control_info aligned based (report_cip), 4 8 2 flags, 4 9 3 report_is_paginated bit (1) unaligned, /* paged or one continous stream */ 4 10 3 table_has_been_started bit (1) unaligned, /* table clean up is necessary */ 4 11 3 table_is_full bit (1) unaligned, /* no more retrieves are necessary */ 4 12 3 report_has_been_started bit (1) unaligned, /* report clean up is necessary */ 4 13 3 report_is_formatted bit (1) unaligned, /* no more formatting is necessary */ 4 14 3 permanent_report bit (1) unaligned, /* or disposable */ 4 15 3 permanent_table bit (1) unaligned, /* or disposable */ 4 16 3 report_has_just_been_completed bit (1) unaligned, /* used for printing timers */ 4 17 3 table_has_just_been_loaded bit (1) unaligned, /* used for printing timers */ 4 18 3 multi_pass_mode bit (1) unaligned, /* on if we are to do more than 1 pass */ 4 19 3 available bit (26) unaligned, 4 20 2 format_options_flags, /* used to determine if value is default */ 4 21 3 general_report_default_value (NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE) bit (1) unaligned, 4 22 3 general_column_default_value (NUMBER_OF_GENERAL_COLUMN_OPTIONS_IN_TABLE) bit (1) unaligned, 4 23 2 value_seg_ptr ptr, /* the options value seg */ 4 24 2 name_value_area_ptr ptr, /* area for name-value allocations */ 4 25 2 name_value_temp_seg_ptr ptr, /* temp seg for name-value space */ 4 26 2 display_work_area_ptr ptr, /* display workspace */ 4 27 2 report_temp_seg_ptr ptr, /* report workspace */ 4 28 2 report_work_area_ptr ptr, /* report workspace */ 4 29 2 format_report_info_ptr ptr, /* info needed to create a report */ 4 30 2 input_string_temp_seg_ptr ptr, /* report workspace */ 4 31 2 output_string_temp_seg_ptr ptr, /* report workspace */ 4 32 2 editing_strings_temp_seg_ptr ptr, /* report workspace */ 4 33 2 headers_temp_seg_ptr ptr, /* report workspace */ 4 34 2 display_iocb_ptr ptr, /* report is displayed through this */ 4 35 2 selection_expression_identifier fixed bin, /* current selection expression */ 4 36 2 options_identifier fixed bin, /* current set of options */ 4 37 2 report_identifier fixed bin, /* current report */ 4 38 2 retrieval_identifier fixed bin, /* current retrieval */ 4 39 2 no_of_rows_retrieved fixed bin (35), /* current no of rows */ 4 40 2 no_of_formatted_pages fixed bin (21), /* current no of pages */ 4 41 2 number_of_passes fixed bin, /* number of times report will be formatted */ 4 42 2 table_loading_time float bin (63), 4 43 2 table_sorting_time float bin (63), 4 44 2 table_deletion_time float bin (63), 4 45 2 report_setup_time float bin (63), 4 46 2 report_formatting_time float bin (63), 4 47 2 report_display_time float bin (63), 4 48 2 report_deletion_time float bin (63), 4 49 2 ssu_evaluate_active_string_time float bin (63), 4 50 2 temp_dir_unique_id bit (36), /* uid of temp dir */ 4 51 2 temp_dir_name char (168) unaligned; /* the dir where we place the retrieved table and report */ 4 52 dcl report_cip ptr init (null ()); 4 53 4 54 /* END INCLUDE FILE linus_report_info.incl.pl1 */ 156 157 5 1 /* BEGIN INCLUDE FILE linus_report_structures.incl.pl1 5 2* 5 3* Written - Al Dupuis - August 1983 5 4**/ 5 5 /* format: off */ 5 6 5 7 /* Used in column_info.alignment and column_info.linus_data_type */ 5 8 5 9 dcl BIT_DATA_TYPE fixed bin static int options (constant) init (1); 5 10 dcl BOTH_ALIGNMENT fixed bin static int options (constant) init (1); 5 11 dcl CENTER_ALIGNMENT fixed bin static int options (constant) init (2); 5 12 dcl CHAR_DATA_TYPE fixed bin static int options (constant) init (2); 5 13 dcl DECIMAL_ALIGNMENT fixed bin static int options (constant) init (3); 5 14 dcl DECIMAL_DATA_TYPE fixed bin static int options (constant) init (3); 5 15 dcl LEFT_ALIGNMENT fixed bin static int options (constant) init (4); 5 16 dcl NUMERIC_DATA_TYPE fixed bin static int options (constant) init (4); 5 17 dcl RIGHT_ALIGNMENT fixed bin static int options (constant) init (5); 5 18 5 19 dcl 1 column_info aligned based (column_ip), 5 20 2 flags, 5 21 3 folding_is_fill bit (1) unaligned, /* fill or truncate */ 5 22 3 outline bit (1) unaligned, /* on means the display has been suppressed */ 5 23 3 editing bit (1) unaligned, /* on means there is an editing request */ 5 24 3 restore_editing bit (1) unaligned, /* used to toggle the editing bit */ 5 25 3 available bit (32) unaligned, 5 26 2 order fixed bin, /* as specified by the user */ 5 27 2 input_column fixed bin, /* # of the column in the table */ 5 28 2 output_column fixed bin, /* # of the column on the page */ 5 29 2 output_line fixed bin, /* within the block */ 5 30 2 starting_position fixed bin, /* within the page width */ 5 31 2 width fixed bin, /* in characters */ 5 32 2 alignment fixed bin, /* set to one of the above alignment constants */ 5 33 2 decimal_position fixed bin, /* only needed for decimal alignment */ 5 34 2 linus_data_type fixed bin, /* set to one of the above data type constants */ 5 35 2 editing_string_length fixed bin (21), /* before evaluation */ 5 36 2 editing_string_result_length fixed bin (21), /* after evaluation */ 5 37 2 editing_string_ptr ptr, /* before evaluation */ 5 38 2 editing_string_result_ptr ptr, /* after evaluation */ 5 39 2 prefix_character char (1) varying; /* column prefix */ 5 40 dcl column_ip ptr; 5 41 5 42 dcl 1 columns_info aligned based (columns_ip), /* an array of column_info's */ 5 43 2 number_of_columns fixed bin, 5 44 2 columns (initialize_number_of_columns 5 45 refer (columns_info.number_of_columns)) like column_info; 5 46 dcl columns_ip ptr; 5 47 5 48 dcl 1 column_map (column_map_number_of_columns) aligned based (column_mp), 5 49 2 present bit (1), /* the column is present in the list */ 5 50 2 position fixed bin; /* position where this column was found in the list */ 5 51 dcl column_map_number_of_columns fixed bin; 5 52 dcl column_mp ptr; 5 53 5 54 dcl 1 count_columns_info like columns_info based (count_columns_ip); 5 55 dcl count_columns_ip ptr; 5 56 5 57 dcl 1 count_info like total_info based (count_ip); 5 58 dcl count_ip ptr; 5 59 5 60 /* Used to access the current row from the table */ 5 61 dcl current_row_value char (table_info.row_value_length) based (status.current_row_ptr); 5 62 5 63 /* Used to pick up the value before or after evaluation */ 5 64 dcl editing_string_result char (editing_string_rl) based (editing_string_rp); 5 65 dcl editing_string_rl fixed bin; 5 66 dcl editing_string_rp ptr; 5 67 5 68 dcl editing_strings_next_byte fixed bin (21); 5 69 /* Used to store editing strings before and after evaluation. */ 5 70 dcl editing_strings_temp_seg char (maximum_segment_size) based (editing_strings_tsp); 5 71 dcl editing_strings_temp_seg_as_an_array (maximum_segment_size) char (1) based (editing_strings_tsp); 5 72 dcl editing_strings_tsp ptr; 5 73 5 74 dcl 1 format_report_info aligned based (format_report_ip), 5 75 2 flags, 5 76 3 unlimited_page_length bit (1) unaligned, /* -page_length equal to zero */ 5 77 3 unlimited_page_width bit (1) unaligned, /* -page_width equal to zero */ 5 78 3 page_header_is_defined bit (1) unaligned, /* -page_header_value */ 5 79 3 group_header_is_defined bit (1) unaligned, /* -group_header_value */ 5 80 3 group_header_trigger_is_defined bit (1) unaligned, /* -group_header_trigger */ 5 81 3 title_block_is_defined bit (1) unaligned, /* -title_line */ 5 82 3 row_header_is_defined bit (1) unaligned, /* -row_header_value */ 5 83 3 row_value_is_defined bit (1) unaligned, /* if all of the columns weren't excluded */ 5 84 3 row_footer_is_defined bit (1) unaligned, /* -row_footer_value */ 5 85 3 group_footer_is_defined bit (1) unaligned, /* -group_footer_value */ 5 86 3 group_footer_trigger_is_defined bit (1) unaligned, /* -group_footer_trigger */ 5 87 3 page_footer_is_defined bit (1) unaligned, /* -page_footer_value */ 5 88 3 editing_is_defined bit (1) unaligned, /* -editing */ 5 89 3 exclude_is_defined bit (1) unaligned, /* -exclude */ 5 90 3 group_is_defined bit (1) unaligned, /* -group */ 5 91 3 outline_is_defined bit (1) unaligned, /* -outline */ 5 92 3 page_break_is_defined bit (1) unaligned, /* -page_break */ 5 93 3 subtotal_is_defined bit (1) unaligned, /* -subtotal */ 5 94 3 subcount_is_defined bit (1) unaligned, /* -subcount */ 5 95 3 total_is_defined bit (1) unaligned, /* -total */ 5 96 3 count_is_defined bit (1) unaligned, /* -count */ 5 97 3 available bit (15) unaligned, 5 98 2 page_width fixed bin, /* as given by the user */ 5 99 2 page_length fixed bin, /* as given by the user */ 5 100 2 number_of_formatted_rows fixed bin (35), /* updated at the end of each page */ 5 101 2 editing_strings_next_available_byte fixed bin (21), /* beginning of temp space for execution */ 5 102 2 headers_next_available_byte fixed bin (21), /* beginning of temp space for execution */ 5 103 2 report_iocb_ptr ptr, /* for saving copies of the page */ 5 104 2 table_info_ptr ptr, /* to avoid repetitive calls to linus_table$info */ 5 105 2 format_document_op ptr, /* format_document_options structure */ 5 106 2 page_info_ptr ptr, /* page_info structure */ 5 107 2 copy_of_page_info_ptr ptr, /* version of page_info structure that can be changed */ 5 108 /* after each page */ 5 109 2 formatted_page_info_ptr ptr, /* formatted_page_info structure */ 5 110 2 overstrike_info_ptr ptr, /* page_overstrike_info structure */ 5 111 2 status_ptr ptr, /* status structure */ 5 112 2 template_map_ptr ptr, /* template_map array */ 5 113 2 page_header_info_ptr ptr, /* header_info structure */ 5 114 2 page_footer_info_ptr ptr, /* header_info structure */ 5 115 2 group_header_info_ptr ptr, /* header_info structure */ 5 116 2 group_footer_info_ptr ptr, /* header_info structure */ 5 117 2 group_header_trigger_info_ptr ptr, /* group_info structure */ 5 118 2 group_footer_trigger_info_ptr ptr, /* group_info structure */ 5 119 2 row_header_info_ptr ptr, /* header_info structure */ 5 120 2 row_footer_info_ptr ptr, /* header_info structure */ 5 121 2 title_block_columns_info_ptr ptr, /* title_block_columns_info structure */ 5 122 2 title_block_info_ptr ptr, /* title_block_info structure */ 5 123 2 input_columns_info_ptr ptr, /* input_columns_info structure */ 5 124 2 input_columns_order_ptr ptr, /* input_columns_order array */ 5 125 2 output_columns_info_ptr ptr, /* output_columns_info structure */ 5 126 2 group_info_ptr ptr, /* group_info structure */ 5 127 2 outline_info_ptr ptr, /* outline_info structure */ 5 128 2 page_break_info_ptr ptr, /* page_break_info structure */ 5 129 2 subtotal_info_ptr ptr, /* subtotal_info structure */ 5 130 2 subcount_info_ptr ptr, /* subcount_info structure */ 5 131 2 total_info_ptr ptr, /* total_info structure */ 5 132 2 count_info_ptr ptr, /* count_info structure */ 5 133 2 row_value_template_info_ptr ptr, /* row_value_template_info structure */ 5 134 2 generic_template_ptr ptr, /* generic_template char string */ 5 135 2 header_part_delimiter char (1) unaligned, /* delimits the different portions of a header/footer */ 5 136 2 truncation_indicator char (32) varying unaligned, /* used to indicate that truncation has occured */ 5 137 2 report_directory_name char (168) unaligned, /* dir where we place copies of the page */ 5 138 2 report_entry_name char (32) unaligned; /* entry name portion of above */ 5 139 dcl format_report_ip ptr; 5 140 5 141 /* used to format page/row headers and footers */ 5 142 dcl generic_template char (generic_template_length) based (generic_tp); 5 143 dcl generic_template_length fixed bin; 5 144 dcl generic_tp ptr; 5 145 5 146 /* these columns form a group of rows and are used with outlining, etc. */ 5 147 dcl 1 group_info aligned based (group_ip), 5 148 2 number_of_columns_to_group fixed bin, 5 149 2 column_number (gi_init_number_of_columns_to_group 5 150 refer (group_info.number_of_columns_to_group)) fixed bin; 5 151 dcl gi_init_number_of_columns_to_group fixed bin; 5 152 dcl group_ip ptr; 5 153 5 154 dcl headers_next_byte fixed bin (21); 5 155 /* used to hold the page/row headers/footers, and temp space for totals/subtotals. */ 5 156 dcl headers_temp_seg char (maximum_segment_size) based (headers_tsp); 5 157 dcl headers_temp_seg_as_an_array (maximum_segment_size) char (1) based (headers_tsp); 5 158 dcl headers_tsp ptr; 5 159 5 160 dcl 1 header_info aligned based (header_ip), 5 161 2 number_of_lines fixed bin, /* number of header lines typed in by the user */ 5 162 2 maximum_number_of_parts fixed bin, /* 3 parts maximum (left, right, and center) */ 5 163 2 lines (hi_init_number_of_lines 5 164 refer (header_info.number_of_lines)), 5 165 3 parts (hi_init_maximum_number_of_parts 5 166 refer (header_info.maximum_number_of_parts)), 5 167 4 flags, 5 168 5 present bit (1) unaligned, /* this particular part is defined */ 5 169 5 active bit (1) unaligned, /* and it contains active functions */ 5 170 5 available bit (34) unaligned, 5 171 4 index fixed bin (21), /* before evaluation */ 5 172 4 length fixed bin (21), /* before evaluation */ 5 173 4 starting_position fixed bin, /* within the page width */ 5 174 4 width fixed bin, /* within the page width */ 5 175 4 alignment fixed bin; /* left, right, or center */ 5 176 dcl header_ip ptr; 5 177 dcl hi_init_maximum_number_of_parts fixed bin; 5 178 dcl hi_init_number_of_lines fixed bin; 5 179 5 180 dcl initialize_number_of_columns fixed bin; /* columns_info refer extent */ 5 181 5 182 dcl 1 input_columns_info aligned like columns_info based (input_columns_ip); /* the columns in the table */ 5 183 dcl input_columns_ip ptr; 5 184 5 185 dcl input_columns_order (input_columns_info.number_of_columns) fixed bin based (input_columns_op); 5 186 dcl input_columns_op ptr; 5 187 5 188 dcl maximum_segment_size fixed bin (21); /* in characters */ 5 189 5 190 /* Used to access the next row from the table */ 5 191 dcl next_row_value char (table_info.row_value_length) based (status.next_row_ptr); 5 192 5 193 dcl 1 outline_info aligned based (outline_ip), /* who gets oulining attempted */ 5 194 2 maximum_number_of_single_columns fixed bin, 5 195 2 maximum_number_of_grouping_columns fixed bin, 5 196 2 number_of_single_columns fixed bin, /* columns who are not a member of the group */ 5 197 2 number_of_grouping_columns fixed bin, /* columns who are a member of the group */ 5 198 2 single_columns (oi_init_maximum_number_of_single_columns refer ( 5 199 outline_info.maximum_number_of_single_columns)) fixed bin, 5 200 2 grouping_columns (oi_init_maximum_number_of_grouping_columns refer ( 5 201 outline_info.maximum_number_of_grouping_columns)) fixed bin; 5 202 dcl oi_init_maximum_number_of_grouping_columns fixed bin; 5 203 dcl oi_init_maximum_number_of_single_columns fixed bin; 5 204 dcl outline_ip ptr; 5 205 5 206 dcl 1 output_columns_info like columns_info based (output_columns_ip); /* the columns that will go on the page */ 5 207 dcl output_columns_ip ptr; 5 208 5 209 /* these columns will be checked to determine if a page break is required */ 5 210 dcl 1 page_break_info aligned based (page_break_ip), 5 211 2 number_of_columns fixed bin, 5 212 2 columns (pbi_init_number_of_columns refer ( 5 213 page_break_info.number_of_columns)) bit (1) unaligned; 5 214 dcl page_break_ip ptr; 5 215 dcl pbi_init_number_of_columns fixed bin; 5 216 5 217 /* Used to access the previous row from the table */ 5 218 dcl previous_row_value char (table_info.row_value_length) based (status.previous_row_ptr); 5 219 5 220 /* The templates for the row value (also used for titles, subtotals, and totals.) */ 5 221 dcl 1 row_value_template_info like template_info based (row_value_template_ip); 5 222 dcl row_value_template_ip ptr; 5 223 5 224 /* main execution control structure for linus_fr_build_page */ 5 225 dcl 1 status aligned based (status_pointer), 5 226 2 flags, 5 227 3 still_formatting_detail_blocks bit (1), /* turned on while we are doing detail blocks */ 5 228 3 first_row_of_report bit (1), /* turned on when we are on the first row of a report */ 5 229 3 last_row_of_report bit (1), /* turned on when we are on the last row of a report */ 5 230 3 first_row_on_page bit (1), /* turned on when we are on the 1st row of a page */ 5 231 3 page_overflow bit (1), /* turned on when we are backing up */ 5 232 3 subtotals_ejection_in_progress bit (1), /* turned on when subtotals are being ejected */ 5 233 3 subcounts_ejection_in_progress bit (1), /* turned on when subcounts are being ejected */ 5 234 3 totals_ejection_in_progress bit (1), /* turned on when totals are being ejected */ 5 235 3 counts_ejection_in_progress bit (1), /* turned on when counts are being ejected */ 5 236 3 header_being_evaluated bit (1), /* turned on during header evaluation */ 5 237 3 detail_block_used_some_lines bit (1), /* turned on when a row header/footer/value/subtotal/total uses a line */ 5 238 3 row_has_been_processed_before bit (1), /* turned on when this row has been backed out of the previous page */ 5 239 3 last_pass bit (1), /* true if this is the last pass */ 5 240 2 previous_row_ptr ptr, /* points to the previous row (or null) */ 5 241 2 current_row_ptr ptr, /* points to the current row */ 5 242 2 next_row_ptr ptr, /* points to the next row (or null) */ 5 243 2 total_number_of_rows_used fixed bin, /* total # per page, used to make sure we don't */ 5 244 /* backup over the 1st row */ 5 245 2 current_pass_number fixed bin, /* [display_builtins current_pass_number] */ 5 246 2 current_row_number fixed bin (35), /* [display_builtins current_row_number] */ 5 247 2 current_column_number fixed bin, /* set to the current output column during row evaluation */ 5 248 2 current_page_number fixed bin (21), /* [display_builtins page_number] */ 5 249 2 current_line_on_page fixed bin, /* this is where the next thing is placed on the page */ 5 250 2 remaining_lines_on_page fixed bin, /* used in estimating if something will fit */ 5 251 2 highest_row_formatted fixed bin, /* used to keep track of rows backed out of the page */ 5 252 2 current_header_line fixed bin, /* set to the current header line during header evaluation */ 5 253 2 current_header_part fixed bin, /* set to the current header part during header evaluation */ 5 254 2 number_of_lines_needed_for_detail_block fixed bin, /* sum of row header, footer, and value */ 5 255 2 number_of_lines_needed_for_row_header fixed bin, /* may be zero */ 5 256 2 number_of_lines_needed_for_row_value fixed bin, /* may be zero */ 5 257 2 number_of_lines_needed_for_row_footer fixed bin, /* may be zero */ 5 258 2 number_of_lines_needed_for_page_footer fixed bin, /* may be zero */ 5 259 2 number_of_lines_needed_for_group_header fixed bin, /* may be zero */ 5 260 2 number_of_lines_needed_for_group_footer fixed bin, /* may be zero */ 5 261 2 last_row_number fixed bin (35), /* zero unless multi-pass */ 5 262 2 last_page_number fixed bin, /* zero unless multi-pass mode */ 5 263 2 object_being_evaluated char (16) varying; /* "page header", "row value", etc. */ 5 264 dcl status_pointer ptr; 5 265 5 266 dcl 1 subcount_columns_info like columns_info based (subcount_columns_ip); 5 267 dcl subcount_columns_ip ptr; 5 268 5 269 dcl 1 subcount_generation_info like subtotal_generation_info based (subcount_generation_ip); 5 270 dcl subcount_generation_ip ptr; 5 271 5 272 dcl 1 subcount_info like subtotal_info based (subcount_ip); 5 273 dcl subcount_ip ptr; 5 274 5 275 dcl 1 subtotal_columns_info like columns_info based (subtotal_columns_ip); 5 276 dcl subtotal_columns_ip ptr; 5 277 5 278 /* Used to restore subtotals when backing up on a page. */ 5 279 dcl 1 subtotal_generation_info aligned based (subtotal_generation_ip), 5 280 2 maximum_number_of_generation_blocks fixed bin, /* maximum number of subtotals possibly generated per page + 1 */ 5 281 2 number_of_subtotals fixed bin, /* # of subtotals we're taking */ 5 282 2 current_generation_block fixed bin, /* slot for next subtotal generation */ 5 283 2 generations (0:sgi_init_number_of_generations 5 284 refer (subtotal_generation_info.maximum_number_of_generation_blocks)), 5 285 3 subtotals (sgi_init_number_of_subtotals /* value of the subtotals when the break occured */ 5 286 refer (subtotal_generation_info.number_of_subtotals)) float dec (59); 5 287 dcl sgi_init_number_of_generations fixed bin; 5 288 dcl sgi_init_number_of_subtotals fixed bin; 5 289 dcl subtotal_generation_ip ptr; 5 290 5 291 dcl 1 subtotal_info aligned based (subtotal_ip), 5 292 2 columns_info_ptr ptr, /* points to subtotal_columns_info structure */ 5 293 2 subtotal_generation_info_ptr ptr, /* points to subtotal_generations_info structure */ 5 294 2 number_of_columns_to_subtotal fixed bin, /* the number of subtotals */ 5 295 2 highest_level fixed bin, /* the largest number of different subtotals on a single column */ 5 296 2 current_level fixed bin, /* the current level of subtotals being evaluated */ 5 297 2 columns (si_init_number_of_columns_to_subtotal 5 298 refer (subtotal_info.number_of_columns_to_subtotal)), 5 299 3 flags, 5 300 4 reset bit (1) unaligned, /* reset or running subtotals */ 5 301 4 group_column bit (1) unaligned, /* on means the watch column is a grouping column */ 5 302 4 available bit (34) unaligned, 5 303 3 input_column fixed bin, /* # of the input column for accumulations */ 5 304 3 watch_column fixed bin, /* # of the column to watch for generation */ 5 305 3 level fixed bin, /* different subtotals on the same column receive higher level numbers */ 5 306 3 ioa_string char (5) varying, /* used to edit the "subtotal" field */ 5 307 3 subtotal float dec (59); /* used to hold the subtotal until it needs /* 5 308* /* to be placed on the page */ 5 309 dcl si_init_number_of_columns_to_subtotal fixed bin; 5 310 dcl subtotal_ip ptr; 5 311 5 312 dcl 1 template_info aligned based (template_ip), /* templates that are laid down before the column values */ 5 313 2 template_width fixed bin, /* how wide they are */ 5 314 2 number_of_templates fixed bin, /* how many there are */ 5 315 2 templates (ti_init_number_of_templates refer (template_info.number_of_templates)) /* the templates */ 5 316 char (ti_init_template_width refer (template_info.template_width)); 5 317 dcl ti_init_number_of_templates fixed bin; 5 318 dcl template_ip ptr; 5 319 dcl ti_init_template_width fixed bin; 5 320 5 321 /* used to determine which templates have been placed */ 5 322 dcl template_map (template_map_number_of_bits) bit (1) unaligned based (template_mp); 5 323 dcl template_mp ptr; 5 324 dcl template_map_number_of_bits fixed bin; 5 325 dcl template_map_defined_as_a_string bit (template_map_number_of_bits) based (template_mp); 5 326 5 327 dcl template char (template_length) based (template_ptr); 5 328 dcl template_length fixed bin; 5 329 dcl template_ptr ptr; 5 330 5 331 dcl 1 title_block_columns_info like columns_info based (title_block_columns_ip); /* output columns for the titles */ 5 332 dcl title_block_columns_ip ptr; 5 333 5 334 /* holds the formatted title block after page 1 is finished */ 5 335 dcl 1 title_block_info aligned based (title_block_ip), 5 336 2 number_of_lines fixed bin, /* how many lines there are */ 5 337 2 line_length fixed bin, /* how long the lines are */ 5 338 2 lines (tbi_init_number_of_lines refer ( /* the formatted lines */ 5 339 title_block_info.number_of_lines)) char (tbi_init_line_length refer ( 5 340 title_block_info.line_length)); 5 341 dcl tbi_init_line_length fixed bin; 5 342 dcl tbi_init_number_of_lines fixed bin; 5 343 dcl title_block_ip ptr; 5 344 5 345 dcl 1 total_columns_info like columns_info based (total_columns_ip); /* output_columns_info for totals */ 5 346 dcl total_columns_ip ptr; 5 347 5 348 dcl 1 total_info aligned based (total_ip), 5 349 2 columns_info_ptr ptr, /* points to total_columns_info structure */ 5 350 2 number_of_columns_to_total fixed bin, /* # to total */ 5 351 2 columns (ti_init_number_of_columns_to_total 5 352 refer (total_info.number_of_columns_to_total)), 5 353 3 input_column fixed bin, /* the input column number */ 5 354 3 ioa_string char (5) varying, /* used to edit the "total" field */ 5 355 3 total float dec (59); /* used to hold the total until it's placed on the page */ 5 356 dcl ti_init_number_of_columns_to_total fixed bin; 5 357 dcl total_ip ptr; 5 358 5 359 /* END INCLUDE FILE linus_report_structures.incl.pl1 */ 158 159 160 end linus_fr_get_page; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/29/86 0939.5 linus_fr_get_page.pl1 >special_ldd>install>MR12.0-1106>linus_fr_get_page.pl1 150 1 09/16/83 1338.0 linus_options_extents.incl.pl1 >ldd>include>linus_options_extents.incl.pl1 152 2 07/29/86 0937.8 linus_lcb.incl.pl1 >special_ldd>install>MR12.0-1106>linus_lcb.incl.pl1 154 3 09/16/83 1338.1 linus_page_info.incl.pl1 >ldd>include>linus_page_info.incl.pl1 156 4 09/16/83 1338.1 linus_report_info.incl.pl1 >ldd>include>linus_report_info.incl.pl1 158 5 09/16/83 1338.1 linus_report_structures.incl.pl1 >ldd>include>linus_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 43 55 71 84 114 NUMBER_OF_GENERAL_REPORT_OPTIONS_IN_TABLE constant fixed bin(17,0) initial dcl 1-21 ref 43 55 71 84 114 addrel builtin function dcl 131 ref 88 before builtin function dcl 132 ref 93 115 buffer_length 000100 automatic fixed bin(21,0) dcl 133 set ref 56* 57* 72* 89* 89 100* 105* 119* buffer_ptr 000102 automatic pointer dcl 134 set ref 55* 57* 71* 72* 83 88* 88 100* 104 114* 119* 123 buffer_word_displacement 000104 automatic fixed bin(21,0) dcl 135 set ref 85* 86 86* 86 88 89 code_parm parameter fixed bin(35,0) dcl 31 set ref 23 37* 49* 50 57* 59 65* 66 72* 74 94* 95 100* 102 116* 117 119* 121 column_info based structure level 1 dcl 5-19 columns_info based structure level 1 dcl 5-42 convert builtin function dcl 136 ref 48 divide builtin function dcl 137 ref 85 format_report_info based structure level 1 dcl 5-74 format_report_info_ptr based pointer level 2 dcl 4-7 ref 43 format_report_ip 000220 automatic pointer dcl 5-139 set ref 43* 44 formatted_page_info_ptr 10 based pointer level 2 dcl 3-29 set ref 104* input_string_temp_seg_ptr based pointer level 2 dcl 4-7 ref 71 iocb_ptr 000106 automatic pointer dcl 139 set ref 44* 49* 57* 65* 72* 94* 100* 116* 119* iox_$read_record 000012 constant entry external dcl 141 ref 57 72 100 119 iox_$seek_key 000010 constant entry external dcl 140 ref 49 65 94 116 lcb based structure level 1 dcl 2-53 lcb_ptr 000212 automatic pointer dcl 2-121 set ref 36* 42 lcb_ptr_parm parameter pointer dcl 32 ref 23 36 ltrim builtin function dcl 142 ref 48 mod builtin function dcl 143 ref 86 null builtin function dcl 144 ref 38 112 4-52 output_string_temp_seg_ptr based pointer level 2 dcl 4-7 ref 114 page_info based structure level 1 dcl 3-29 page_ip 000214 automatic pointer dcl 3-41 set ref 83* 84 104 112 123 126 page_ip_parm parameter pointer dcl 34 set ref 23 38* 126* page_number_parm parameter fixed bin(21,0) dcl 33 ref 23 48 page_overstrike_info_ptr 6 based pointer level 2 dcl 3-29 set ref 112 123* page_ptr 4 based pointer level 2 dcl 3-29 set ref 84* record_key 000110 automatic varying char(256) dcl 145 set ref 48* 48 49* 64* 64 65* 93* 93 94* 115* 115 116* record_length 000211 automatic fixed bin(21,0) dcl 146 set ref 49* 57* 65* 72* 85 94* 100* 116* 119* report_cip 000216 automatic pointer initial dcl 4-52 set ref 42* 43 55 71 84 114 4-52* report_control_info based structure level 1 dcl 4-7 report_control_info_ptr 106 based pointer level 2 dcl 2-53 ref 42 report_iocb_ptr 6 based pointer level 2 dcl 5-74 ref 44 report_temp_seg_ptr based pointer level 2 dcl 4-7 ref 55 84 subtotal_generation_info based structure level 1 dcl 5-279 subtotal_info based structure level 1 dcl 5-291 sys_info$max_seg_size 000014 external static fixed bin(35,0) dcl 148 ref 56 105 template_info based structure level 1 dcl 5-312 total_info based structure level 1 dcl 5-348 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. BIT_DATA_TYPE internal static fixed bin(17,0) initial dcl 5-9 BOTH_ALIGNMENT internal static fixed bin(17,0) initial dcl 5-10 CENTER_ALIGNMENT internal static fixed bin(17,0) initial dcl 5-11 CHAR_DATA_TYPE internal static fixed bin(17,0) initial dcl 5-12 DECIMAL_ALIGNMENT internal static fixed bin(17,0) initial dcl 5-13 DECIMAL_DATA_TYPE internal static fixed bin(17,0) initial dcl 5-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 5-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 5-16 RIGHT_ALIGNMENT internal static fixed bin(17,0) initial dcl 5-17 SPECIFIC_COLUMN_OPTION internal static fixed bin(17,0) initial dcl 1-16 addr builtin function dcl 130 column_ip automatic pointer dcl 5-40 column_map based structure array level 1 dcl 5-48 column_map_number_of_columns automatic fixed bin(17,0) dcl 5-51 column_mp automatic pointer dcl 5-52 columns_ip automatic pointer dcl 5-46 count_columns_info based structure level 1 unaligned dcl 5-54 count_columns_ip automatic pointer dcl 5-55 count_info based structure level 1 unaligned dcl 5-57 count_ip automatic pointer dcl 5-58 current_row_value based char unaligned dcl 5-61 editing_string_result based char unaligned dcl 5-64 editing_string_rl automatic fixed bin(17,0) dcl 5-65 editing_string_rp automatic pointer dcl 5-66 editing_strings_next_byte automatic fixed bin(21,0) dcl 5-68 editing_strings_temp_seg based char unaligned dcl 5-70 editing_strings_temp_seg_as_an_array based char(1) array unaligned dcl 5-71 editing_strings_tsp automatic pointer dcl 5-72 fixed builtin function dcl 138 formatted_page_info based structure level 1 dcl 3-7 formatted_page_ip automatic pointer dcl 3-26 fpi_init_maximum_number_of_detail_blocks automatic fixed bin(17,0) dcl 3-27 generic_template based char unaligned dcl 5-142 generic_template_length automatic fixed bin(17,0) dcl 5-143 generic_tp automatic pointer dcl 5-144 gi_init_number_of_columns_to_group automatic fixed bin(17,0) dcl 5-151 group_info based structure level 1 dcl 5-147 group_ip automatic pointer dcl 5-152 header_info based structure level 1 dcl 5-160 header_ip automatic pointer dcl 5-176 headers_next_byte automatic fixed bin(21,0) dcl 5-154 headers_temp_seg based char unaligned dcl 5-156 headers_temp_seg_as_an_array based char(1) array unaligned dcl 5-157 headers_tsp automatic pointer dcl 5-158 hi_init_maximum_number_of_parts automatic fixed bin(17,0) dcl 5-177 hi_init_number_of_lines automatic fixed bin(17,0) dcl 5-178 initialize_number_of_columns automatic fixed bin(17,0) dcl 5-180 input_columns_info based structure level 1 dcl 5-182 input_columns_ip automatic pointer dcl 5-183 input_columns_op automatic pointer dcl 5-186 input_columns_order based fixed bin(17,0) array dcl 5-185 maximum_segment_size automatic fixed bin(21,0) dcl 5-188 next_row_value based char unaligned dcl 5-191 oi_init_maximum_number_of_grouping_columns automatic fixed bin(17,0) dcl 5-202 oi_init_maximum_number_of_single_columns automatic fixed bin(17,0) dcl 5-203 outline_info based structure level 1 dcl 5-193 outline_ip automatic pointer dcl 5-204 output_columns_info based structure level 1 unaligned dcl 5-206 output_columns_ip automatic pointer dcl 5-207 page_break_info based structure level 1 dcl 5-210 page_break_ip automatic pointer dcl 5-214 page_defined_as_a_string based char unaligned dcl 3-40 page_defined_as_chars based char(1) array unaligned dcl 3-38 page_defined_as_lines based char array unaligned dcl 3-39 page_overstrike_info based structure level 1 dcl 3-43 page_overstrike_info_redefined based structure level 1 dcl 3-51 page_overstrike_ip automatic pointer dcl 3-49 pbi_init_number_of_columns automatic fixed bin(17,0) dcl 5-215 previous_row_value based char unaligned dcl 5-218 rel builtin function dcl 147 row_value_template_info based structure level 1 unaligned dcl 5-221 row_value_template_ip automatic pointer dcl 5-222 sgi_init_number_of_generations automatic fixed bin(17,0) dcl 5-287 sgi_init_number_of_subtotals automatic fixed bin(17,0) dcl 5-288 si_init_number_of_columns_to_subtotal automatic fixed bin(17,0) dcl 5-309 status based structure level 1 dcl 5-225 status_pointer automatic pointer dcl 5-264 subcount_columns_info based structure level 1 unaligned dcl 5-266 subcount_columns_ip automatic pointer dcl 5-267 subcount_generation_info based structure level 1 unaligned dcl 5-269 subcount_generation_ip automatic pointer dcl 5-270 subcount_info based structure level 1 unaligned dcl 5-272 subcount_ip automatic pointer dcl 5-273 subtotal_columns_info based structure level 1 unaligned dcl 5-275 subtotal_columns_ip automatic pointer dcl 5-276 subtotal_generation_ip automatic pointer dcl 5-289 subtotal_ip automatic pointer dcl 5-310 tbi_init_line_length automatic fixed bin(17,0) dcl 5-341 tbi_init_number_of_lines automatic fixed bin(17,0) dcl 5-342 template based char unaligned dcl 5-327 template_ip automatic pointer dcl 5-318 template_length automatic fixed bin(17,0) dcl 5-328 template_map based bit(1) array unaligned dcl 5-322 template_map_defined_as_a_string based bit unaligned dcl 5-325 template_map_number_of_bits automatic fixed bin(17,0) dcl 5-324 template_mp automatic pointer dcl 5-323 template_ptr automatic pointer dcl 5-329 ti_init_number_of_columns_to_total automatic fixed bin(17,0) dcl 5-356 ti_init_number_of_templates automatic fixed bin(17,0) dcl 5-317 ti_init_template_width automatic fixed bin(17,0) dcl 5-319 title_block_columns_info based structure level 1 unaligned dcl 5-331 title_block_columns_ip automatic pointer dcl 5-332 title_block_info based structure level 1 dcl 5-335 title_block_ip automatic pointer dcl 5-343 total_columns_info based structure level 1 unaligned dcl 5-345 total_columns_ip automatic pointer dcl 5-346 total_ip automatic pointer dcl 5-357 NAME DECLARED BY EXPLICIT CONTEXT. linus_fr_get_page 000031 constant entry external dcl 23 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 564 602 505 574 Length 1076 505 16 260 56 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME linus_fr_get_page 176 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME linus_fr_get_page 000100 buffer_length linus_fr_get_page 000102 buffer_ptr linus_fr_get_page 000104 buffer_word_displacement linus_fr_get_page 000106 iocb_ptr linus_fr_get_page 000110 record_key linus_fr_get_page 000211 record_length linus_fr_get_page 000212 lcb_ptr linus_fr_get_page 000214 page_ip linus_fr_get_page 000216 report_cip linus_fr_get_page 000220 format_report_ip linus_fr_get_page THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out return mod_fx1 shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. iox_$read_record iox_$seek_key THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000024 4 52 000036 36 000040 37 000044 38 000045 42 000046 43 000050 44 000060 48 000062 49 000114 50 000130 55 000133 56 000137 57 000143 59 000161 64 000164 65 000176 66 000213 71 000216 72 000222 74 000241 83 000244 84 000246 85 000253 86 000257 88 000263 89 000266 93 000272 94 000321 95 000337 100 000342 102 000361 104 000364 105 000367 112 000373 114 000377 115 000403 116 000432 117 000447 119 000452 121 000471 123 000474 126 000477 128 000500 ----------------------------------------------------------- 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