/* begin include file ...cobol_report_writer.incl.pl1 */ /* Modified since Version 5.0 */ declare 1 list_link based(list_link_ptr), 2 next ptr, 2 loc ptr; declare list_link_ptr ptr; declare 1 list_def based(list_def_ptr), 2 first ptr, /* first elem */ 2 last ptr, /* last_elem */ 2 count fixed bin; /* elem count */ declare list_def_ptr ptr; declare 1 integer_spec based(integer_spec_ptr), 2 first ptr, /* first token */ 2 last ptr, /* last token */ 2 count fixed bin, /* value */ 2 type fixed bin; /* 0(missing)1(integer)2(ae) */ declare integer_spec_ptr ptr; /* report description */ declare 1 report based(current_report_loc), 2 rep_next ptr, 2 rep_up ptr, /* parent, null() */ 2 rep_tok_line fixed bin, 2 rep_tok_column fixed bin, 2 rep_type fixed bin, /* 0 */ 2 rep_level fixed bin, /* 0 */ 2 rep_name_ptr ptr, /* report name */ 2 code char(32) varying, /* CODE clause */ 2 page /* PAGE clause */ like integer_spec, 2 heading /* HEADING clause */ like integer_spec, 2 first_detail /* FIRST DETAIL clause */ like integer_spec, 2 last_detail /* LAST DETAIL clause */ like integer_spec, 2 footing /* FOOTING clause */ like integer_spec, 2 file_name ptr, /* report file name */ 2 rep_sum_ptr ptr, 2 controls, 3 loc ptr, 3 final bit(1), 2 g_i_count fixed bin, 2 rh ptr, /* RH group */ 2 rf ptr, /* RF group */ 2 ph ptr, /* PH group */ 2 pf ptr, /* PF group */ 2 de ptr, /* DE table */ 2 ch ptr, /* CH table */ 2 cf ptr, /* CF table */ 2 rep_num fixed bin, 2 indicators, 3 ng_exists bit(1); /* "1"b if group has NEXT GROUP clause */ declare current_report_loc ptr; /* root node */ declare 1 root based(rt_ptr), /* report group descr */ 2 rt_next ptr, 2 rt_up ptr, /* parent chain */ 2 rt_tok_line fixed bin, 2 rt_tok_column fixed bin, 2 rt_type fixed bin, /* 3 */ 2 rt_level fixed bin, 2 rt_name_ptr ptr, /* report group name */ 2 line, /* LINE clause */ 3 value fixed bin, 3 type fixed bin, /* 0(missing)1(integer)2(PLUS integer)3(PAGE integer) */ 2 next_group, /* NEXT GROUP clause */ 3 value fixed bin, 3 type fixed bin, /*0(missing)1(NEXT PAGE),2(integer),3(PLUS integer)*/ 2 use_proc, 3 use_proc_name_ptr ptr, /* loc of use proc name */ 3 suppress bit(1), /* SUPPRESS PRINTING */ 2 group_type fixed bin, /* 1(RH), 2(PH), 3(CH), 4(DE), 5(CF), 6(PF), 7(RF) */ 2 field_table_ptr ptr, /* field table loc */ 2 line_table_ptr ptr, /* line table loc */ 2 group_desc, 3 type fixed bin, /*0(missing)1(abs)2(rel)3(page)*/ 3 line fixed bin, /* i1(page,abs),j1(rel)*/ 3 size fixed bin, /* first line to last line */ 2 group_number fixed bin, /* group number */ 2 usage_disp bit(1) unal, 2 nodes /* report group nodes */ like list_def; declare rt_ptr ptr; /* non_terminal node */ declare 1 non_term_node based(ntn_ptr), /* non-terminal node */ 2 ntn_next ptr, 2 ntn_up ptr, /* parent chain */ 2 ntn_tok_line fixed bin, 2 ntn_tok_column fixed bin, 2 ntn_type fixed bin, /* 1 */ 2 ntn_level fixed bin, /* ntn_level number */ 2 ntn_name_ptr ptr, /* node name */ 2 LINE like non_term_node_line; declare ntn_ptr ptr; declare 1 non_term_node_line based, 2 line, /* LINE clause */ 3 value fixed bin, 3 type fixed bin, /* 0(missing)1(integer)2(PLUS integer)3(PAGE integer) */ 2 usage_disp bit(1) unal; /* USAGE clause */ /* terminal node */ declare 1 term_node based(tn_ptr), /* terminal node */ 2 tn_next ptr, 2 tn_up ptr, /* parent ptr */ 2 tn_tok_line fixed bin, 2 tn_tok_column fixed bin, 2 tn_type fixed bin, /* 2 */ 2 tn_level fixed bin, /* level number */ 2 tn_name_ptr ptr, /* node tn_name */ 2 LINE like term_node_line; declare tn_ptr ptr; declare 1 term_node_line based, 2 line, /* LINE clause */ 3 value fixed bin, 3 type fixed bin, /* 0(missing)1(integer)2(PLUS integer)3(PAGE integer) */ 2 usage_disp bit(1) unal, /* USAGE clause */ 2 blank_zero bit(1) unal, /* BLANK clause */ 2 group_ind bit(1) unal, /* GROUP INDICATE clause */ 2 just_right bit(1) unal, /* JUSTIFIED clause */ 2 reset bit(1) unal, 2 non_num bit(1) unal, 2 sign fixed bin(4) unal unsigned, /* 0(missing)1(leading)2(trailing)3(leading sep)4(trailing sep) */ /* SIGN clause */ 2 data_type fixed bin(2) unal unsigned, /* 0(missing)1(SOURCE)2(VALUE)3(SUM) */ 2 g_i_count fixed bin, /* group indicate number */ 2 rep_sum_ptr ptr, /* sum counter chain for the report */ 2 column, /* COLUMN clause */ 3 value fixed bin, /* lexeme defining integer */ 3 type fixed bin, /* 0(missing)1(integer)2(PLUS integer) */ 2 picture ptr, /* PICTURE clause */ 2 nd_loc ptr, /* source-sum-value clause */ 2 rep_group_ptr ptr; /* loc of group node */ /* CH table */ declare 1 ch_table based(ch_table_ptr), 2 ch_size fixed bin, 2 entry(0: ch_table_size refer(ch_table.ch_size)), 3 ch_loc ptr, /* node defining CH group */ 3 ch_sum_chain ptr, 3 ch_crossfoot like list_def, 3 ch_rollfwd like list_def, 3 ch_reset like list_def, 3 ch_sum_name_seq_ptr ptr; declare ch_table_ptr ptr; declare ch_table_size fixed bin; /* CF table */ declare 1 cf_table based(cf_table_ptr), 2 cf_size fixed bin, 2 entry(0:cf_table_size refer(cf_table.cf_size)), 3 cf_loc ptr, /* node defining CF group */ 3 cf_sum_chain ptr, /* sum counter chain */ 3 cf_crossfoot like list_def, 3 cf_rollfwd like list_def, 3 cf_reset like list_def, 3 cf_sum_name_seq_ptr ptr; /* seq of sum ctr names */ declare cf_table_ptr ptr; declare cf_table_size fixed bin; /* de table */ declare 1 de_table based(de_table_ptr), 2 det_name_seq_ptr ptr, /* seq of de group names */ 2 det_subtot_all like list_def, 2 det_size fixed bin, 2 entry(de_table_size refer(de_table.det_size)), 3 det_loc ptr, 3 det_subtot like list_def; declare de_table_ptr ptr; declare de_table_size fixed bin; /* group table */ /* line table */ declare 1 LINE_table based(LINE_table_ptr), 2 LT_size fixed bin, 2 LT(line_table_size refer(LINE_table.LT_size)), 3 LT_first_field fixed bin, /* field table entry, first field */ 3 LT_field_count fixed bin, /* field count */ 3 LT_line_size fixed bin, /* size of the line */ 3 LT_line_num fixed bin; /* pos(abs), neg(rel) */ declare LINE_table_ptr ptr; declare line_table_size fixed bin; /* field table */ declare 1 FIELD_table based(FIELD_table_ptr), 2 FT_size fixed bin, 2 FT(field_table_size refer(FIELD_table.FT_size)), 3 FT_loc ptr, /* node defining field */ 3 FT_field_pos fixed bin, /* abs col num if printable */ 3 FT_field_size fixed bin, /* size(pic and sign) */ 3 FT_left_fill_size fixed bin; /* pos(rel), neg(abs) */ declare FIELD_table_ptr ptr; declare field_table_size fixed bin; /* qual name */ declare 1 qual_name based(qual_name_ptr), /* descr of qual name */ 2 qn_size fixed bin, /* count of comps */ 2 qn_loc(qual_name_size refer(qual_name.qn_size)) ptr; declare qual_name_size fixed bin; declare qual_name_ptr ptr; /* qual name sequence */ declare 1 qual_name_seq based(qual_name_seq_ptr), 2 qns_size fixed bin, 2 qns_loc(qual_name_seq_size refer(qual_name_seq.qns_size)) ptr; declare qual_name_seq_size fixed bin; declare qual_name_seq_ptr ptr; /* sum counter chain entry */ declare 1 sum based(sum_ptr), 2 sum_next ptr, 2 sum_loc ptr, 2 sum_qn_ptr ptr; declare sum_SIZE fixed bin; declare sum_ptr ptr; /* def of identifier */ declare 1 ident based(ident_ptr), 2 id_name_loc ptr, /* def of qual id_name */ 2 subscripts like list_def; declare ident_ptr ptr; declare ident_SIZE fixed bin; /* sum_counter def */ declare 1 sum_counter based(sum_counter_ptr), 2 sct_reset_loc ptr, /* def of RESET clause */ 2 sct_size fixed bin, /* count of SUM clauses */ 2 sct_loc(sum_counter_size refer(sum_counter.sct_size)) ptr; declare sum_counter_size fixed bin; declare sum_counter_ptr ptr; declare sum_counter_lifo_ptr ptr; /* def of sum clause */ declare 1 sum_clause based(sum_clause_ptr), 2 sc_upon_loc ptr, /* def of UPON clause */ 2 sc_size fixed bin, /* ident count */ 2 sc_loc(sum_clause_size refer(sum_clause.sc_size)) ptr; declare sum_clause_size fixed bin; declare sum_clause_ptr ptr; declare sum_clause_lifo_ptr ptr; /* upon clause */ declare 1 upon_clause based(upon_clause_ptr), 2 upon_size fixed bin, 2 upon_loc(0 refer(upon_clause.upon_size)) ptr; declare upon_clause_ptr ptr; /* reset clause description */ declare 1 reset_clause based(reset_clause_ptr), 2 rc_loc ptr, 2 rc_final bit(1); declare reset_clause_ptr ptr; declare reset_clause_SIZE fixed bin; /* reset chain entry */ declare 1 reset_chain_entry based(reset_chain_entry_ptr) like list_link; declare reset_chain_entry_ptr ptr; declare reset_chain_entry_SIZE fixed bin; /* chain entry */ declare 1 chain_entry based(chain_entry_ptr), 2 ce_next ptr, 2 ce_loc ptr, /* addend loc */ 2 ce_sum_loc ptr; /* sum counter loc */ declare chain_entry_ptr ptr; declare chain_entry_SIZE fixed bin; declare 1 picture based(addr_record), 2 size fixed bin, 2 line fixed bin, 2 column fixed bin, 2 type fixed bin, 2 length fixed bin, 2 string char(0 refer(picture.length)); declare (sum_ctr_ctr , user_word_size) fixed bin; declare user_word_ptr ptr; declare 1 user_word based(addr_record), 2 size fixed bin, 2 line fixed bin, 2 column fixed bin, 2 type fixed bin, 2 info bit(8), 2 length fixed bin, 2 word char(0 refer(user_word.length)); /* end include file ... cobol_report_writer.incl.pl1 */ */ ----------------------------------------------------------- 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 */