COMPILATION LISTING OF SEGMENT vu_cv_pva_to_string Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 02/16/84 1305.4 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: style2,ind3 */ 7 vu_cv_pva_to_string: 8 proc (p_print_vector_array_ptr, p_pva_string_ptr, p_pva_string_length, p_code); 9 10 /* DESCRIPTION: 11* 12* This entry takes a print_vector_array as input and produces a bit 13* string as output which is suitable for permanent storage, formatted as a 14* pva_string followed by any number of pv_strings. 15**/ 16 17 /* HISTORY: 18* 19*Written by Lindsey L. Spratt, 07/24/83. 20*Modified: 21**/ 22 23 /* START OF DECLARATIONS */ 24 /* Parameter */ 25 26 dcl p_print_vector_array_ptr 27 ptr; /*is a pointer to a 28* print_vector_array.*/ 29 dcl p_pva_string_ptr ptr; /*is a pointer to a buffer in 30* which the pva_string is to be 31* placed.*/ 32 dcl p_pva_string_length fixed bin (35); /*on input, this is the length in 33* bytes of the pva_string buffer; 34* on output, this is the length in 35* bytes of the pva_string 36* produced.*/ 37 dcl p_code fixed bin (35); /*is a standard system error 38* code.*/ 39 40 /* Automatic */ 41 42 dcl (pva_string_length_in_words, pva_string_buffer_length_in_words) 43 fixed bin (35) init (0); 44 dcl (dim_idx, vector_idx) init (0) fixed bin; 45 46 /* Based */ 47 /* Builtin */ 48 49 dcl (addwordno, currentsize, divide, null) 50 builtin; 51 52 /* Constant */ 53 54 dcl BYTES_PER_WORD init (4) fixed bin (35) internal static options (constant); 55 56 dcl myname init ("vu_cv_pva_to_string") char (32) varying internal static options (constant); 57 58 /* Entry */ 59 60 dcl sub_err_ entry () options (variable); 61 62 /* External */ 63 64 dcl ( 65 error_table_$unimplemented_version, 66 error_table_$fatal_error 67 ) fixed bin (35) ext; 68 69 /* END OF DECLARATIONS */ 70 71 p_code = 0; 72 73 print_vector_array_ptr = p_print_vector_array_ptr; 74 call CHECK_VERSION (print_vector_array.version, PRINT_VECTOR_ARRAY_VERSION_2, "print_vector_array"); 75 76 pva_string_ptr = p_pva_string_ptr; 77 pva_string.number_of_dimensions = print_vector_array.number_of_dimensions; 78 pva_string.maximum_name_length = print_vector_array.maximum_dimension_name_length; 79 80 pva_string_buffer_length_in_words = divide (p_pva_string_length, BYTES_PER_WORD, 35, 0); 81 pva_string_length_in_words = currentsize (pva_string); 82 83 if pva_string_length_in_words > pva_string_buffer_length_in_words 84 then call 85 sub_err_ (error_table_$fatal_error, myname, ACTION_CANT_RESTART, null, 0, 86 "^/The buffer provided by the caller to hold the pva_string was only ^d words 87 long, when ^d words are required to hold just the pva_string structure.", pva_string_buffer_length_in_words, 88 pva_string_length_in_words); 89 90 pva_string.version = PVA_STRING_VERSION_1; 91 pva_string.number_of_vectors = print_vector_array.number_of_vectors; 92 93 do dim_idx = 1 to print_vector_array.number_of_dimensions; 94 pva_string.dimension_table (dim_idx).name = print_vector_array.dimension_table (dim_idx).name; 95 end; 96 97 do vector_idx = 1 to print_vector_array.number_of_vectors; 98 99 pv_string_ptr = addwordno (pva_string_ptr, pva_string_length_in_words); 100 print_vector_ptr = print_vector_array.vector_slot (vector_idx); 101 102 pv_string.number_of_dimensions = print_vector.number_of_dimensions; 103 pv_string.maximum_value_length = print_vector.maximum_value_length; 104 105 do dim_idx = 1 to print_vector.number_of_dimensions; 106 107 pv_string.dimension (dim_idx).identifier = print_vector.dimension (dim_idx).identifier; 108 pv_string.dimension (dim_idx).value = print_vector.dimension (dim_idx).value; 109 110 end; 111 112 pva_string_length_in_words = pva_string_length_in_words + currentsize (pv_string); 113 114 end; 115 116 p_pva_string_length = BYTES_PER_WORD * pva_string_length_in_words; 117 118 return; 119 120 CHECK_VERSION: 121 proc (p_received_version, p_expected_version, p_structure_name); 122 dcl p_received_version fixed bin (35); 123 dcl p_expected_version fixed bin (35); 124 dcl p_structure_name char (*); 125 126 if p_received_version ^= p_expected_version 127 then call 128 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 129 "^/Expected version ^a of the ^a structure. 130 Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 131 132 end CHECK_VERSION; 133 1 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 1 2 /* format: style3 */ 1 3 1 4 /* These constants are to be used for the flags argument of sub_err_ */ 1 5 /* They are just "string (condition_info_header.action_flags)" */ 1 6 1 7 declare ( 1 8 ACTION_CAN_RESTART init (""b), 1 9 ACTION_CANT_RESTART init ("1"b), 1 10 ACTION_DEFAULT_RESTART 1 11 init ("01"b), 1 12 ACTION_QUIET_RESTART 1 13 init ("001"b), 1 14 ACTION_SUPPORT_SIGNAL 1 15 init ("0001"b) 1 16 ) bit (36) aligned internal static options (constant); 1 17 1 18 /* End include file */ 134 135 2 1 /* BEGIN INCLUDE FILE - vu_pva_string.incl.pl1 */ 2 2 2 3 /* DESCRIPTION: 2 4* This include file defines the pva_string and pv_string structures. 2 5* A pva_string consists of the pva_string structure followed by N pv_string 2 6* structures, where N = pva_string.number_of_vectors. The pva_string is a 2 7* representation of the print_vector_array which can be permanently stored, 2 8* and from which the print_vector_array can be reconstructed. 2 9**/ 2 10 2 11 /* HISTORY: 2 12*Written by Lindsey Spratt, 07/24/83. 2 13*Modified: 2 14**/ 2 15 2 16 /* format: style2,ind3 */ 2 17 dcl 1 pva_string based (pva_string_ptr), 2 18 2 version char (8) init (PVA_STRING_VERSION_1), 2 19 2 number_of_vectors fixed bin (17) unal, 2 20 2 number_of_dimensions 2 21 fixed bin (17) unal, 2 22 2 maximum_name_length 2 23 fixed bin (17) unal, 2 24 2 pad bit (18) unal, 2 25 2 dimension_table (pvas_number_of_dimensions refer (pva_string.number_of_dimensions)), 2 26 3 name char (pvas_maximum_name_length refer (pva_string.maximum_name_length)) varying; 2 27 2 28 dcl pva_string_ptr ptr init (null); 2 29 dcl pvas_number_of_dimensions 2 30 fixed bin (17) init (0); 2 31 dcl pvas_maximum_name_length 2 32 fixed bin (17) init (0); 2 33 2 34 dcl PVA_STRING_VERSION_1 char (8) init ("pvastr 1") internal static options (constant); 2 35 2 36 dcl 1 pv_string based (pv_string_ptr), 2 37 2 number_of_dimensions 2 38 fixed bin (17) unal, 2 39 2 pad bit (18) unal, 2 40 2 maximum_value_length 2 41 fixed bin (35), 2 42 2 dimension (pvs_number_of_dimensions refer (pv_string.number_of_dimensions)), 2 43 3 identifier fixed bin (17) unal, 2 44 3 pad bit (18) unal, 2 45 3 value char (pvs_maximum_value_length refer (pv_string.maximum_value_length)) varying; 2 46 2 47 dcl pv_string_ptr ptr init (null); 2 48 dcl pvs_number_of_dimensions 2 49 fixed bin (17) init (0); 2 50 dcl pvs_maximum_value_length 2 51 fixed bin (35) init (0); 2 52 2 53 /* END INCLUDE FILE - vu_pva_string.incl.pl1 */ 136 137 3 1 /* *********************************************************** 3 2* * * 3 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 3 4* * * 3 5* *********************************************************** */ 3 6 /* BEGIN INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 3 7 /* Written by Matthew C. Pierret, 01/21/82 3 8*Modified: 3 9**/ 3 10 3 11 /* format: style2,ind3 */ 3 12 dcl 1 print_vector_array based (print_vector_array_ptr), 3 13 2 version fixed bin (35), 3 14 2 number_of_dimensions 3 15 fixed bin (17), 3 16 2 maximum_dimension_name_length 3 17 fixed bin (17), 3 18 2 number_of_vectors fixed bin (17), 3 19 2 number_of_vector_slots 3 20 fixed bin (17), 3 21 2 dimension_table (pva_number_of_dimensions refer (print_vector_array.number_of_dimensions)), 3 22 3 name char (pva_maximum_dimension_name_length 3 23 refer (print_vector_array.maximum_dimension_name_length)) varying, 3 24 3 descriptor_ptr ptr, 3 25 3 cv_to_print entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 3 26 3 cv_to_typed entry (ptr, fixed bin (17), fixed bin (17), ptr, ptr, fixed bin (35)), 3 27 3 maximum_value_length 3 28 fixed bin (17), 3 29 2 vector_slot (pva_number_of_vector_slots refer (print_vector_array.number_of_vector_slots)) ptr; 3 30 3 31 dcl 1 print_vector based (print_vector_ptr), 3 32 2 number_of_dimensions 3 33 fixed bin (17), 3 34 2 maximum_value_length 3 35 fixed bin (35), 3 36 2 dimension (pv_number_of_dimensions refer (print_vector.number_of_dimensions)), 3 37 3 identifier fixed bin (17), 3 38 3 value char (pv_maximum_value_length refer (print_vector.maximum_value_length)) varying; 3 39 3 40 dcl pva_number_of_dimensions 3 41 fixed bin; 3 42 dcl pva_number_of_vector_slots 3 43 fixed bin; 3 44 dcl pva_maximum_dimension_name_length 3 45 fixed bin; 3 46 dcl pv_number_of_dimensions 3 47 fixed bin; 3 48 dcl pv_maximum_value_length 3 49 fixed bin; 3 50 3 51 dcl print_vector_array_ptr ptr; 3 52 dcl print_vector_ptr ptr; 3 53 dcl PRINT_VECTOR_ARRAY_VERSION_2 3 54 fixed bin (35) init (2) internal static options (constant); 3 55 3 56 /* END INCLUDE FILE - vu_print_vector_array.incl.pl1 */ 138 139 end vu_cv_pva_to_string; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/16/84 1249.9 vu_cv_pva_to_string.pl1 >spec>on>mtape>vu_cv_pva_to_string.pl1 134 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 136 2 02/16/84 1230.3 vu_pva_string.incl.pl1 >spec>on>mtape>vu_pva_string.incl.pl1 138 3 02/16/84 1230.3 vu_print_vector_array.incl.pl1 >spec>on>mtape>vu_print_vector_array.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. ACTION_CANT_RESTART 000002 constant bit(36) initial dcl 1-7 set ref 83* 126* BYTES_PER_WORD constant fixed bin(35,0) initial dcl 54 ref 80 116 PRINT_VECTOR_ARRAY_VERSION_2 000024 constant fixed bin(35,0) initial dcl 3-53 set ref 74* PVA_STRING_VERSION_1 000000 constant char(8) initial unaligned dcl 2-34 ref 90 addwordno builtin function dcl 49 ref 99 currentsize builtin function dcl 49 ref 81 112 dim_idx 000102 automatic fixed bin(17,0) initial dcl 44 set ref 44* 93* 94 94* 105* 107 107 108 108* dimension 2 based structure array level 2 in structure "print_vector" unaligned dcl 3-31 in procedure "vu_cv_pva_to_string" dimension 2 based structure array level 2 in structure "pv_string" unaligned dcl 2-36 in procedure "vu_cv_pva_to_string" dimension_table 4 based structure array level 2 in structure "pva_string" unaligned dcl 2-17 in procedure "vu_cv_pva_to_string" dimension_table 6 based structure array level 2 in structure "print_vector_array" unaligned dcl 3-12 in procedure "vu_cv_pva_to_string" divide builtin function dcl 49 ref 80 error_table_$fatal_error 000014 external static fixed bin(35,0) dcl 64 set ref 83* error_table_$unimplemented_version 000012 external static fixed bin(35,0) dcl 64 set ref 126* identifier 2 based fixed bin(17,0) array level 3 in structure "pv_string" packed unaligned dcl 2-36 in procedure "vu_cv_pva_to_string" set ref 107* identifier 2 based fixed bin(17,0) array level 3 in structure "print_vector" dcl 3-31 in procedure "vu_cv_pva_to_string" ref 107 maximum_dimension_name_length 2 based fixed bin(17,0) level 2 dcl 3-12 ref 78 94 94 100 maximum_name_length 3 based fixed bin(17,0) level 2 packed unaligned dcl 2-17 set ref 78* 81 94 94 94 maximum_value_length 1 based fixed bin(35,0) level 2 in structure "print_vector" dcl 3-31 in procedure "vu_cv_pva_to_string" ref 103 107 107 108 108 maximum_value_length 1 based fixed bin(35,0) level 2 in structure "pv_string" dcl 2-36 in procedure "vu_cv_pva_to_string" set ref 103* 107 107 108 108 108 112 myname 000003 constant varying char(32) initial dcl 56 set ref 83* 126* name 6 based varying char array level 3 in structure "print_vector_array" dcl 3-12 in procedure "vu_cv_pva_to_string" ref 94 name 4 based varying char array level 3 in structure "pva_string" dcl 2-17 in procedure "vu_cv_pva_to_string" set ref 94* null builtin function dcl 49 ref 83 83 2-28 2-47 126 126 number_of_dimensions based fixed bin(17,0) level 2 in structure "print_vector" dcl 3-31 in procedure "vu_cv_pva_to_string" ref 102 105 number_of_dimensions 2(18) based fixed bin(17,0) level 2 in structure "pva_string" packed unaligned dcl 2-17 in procedure "vu_cv_pva_to_string" set ref 77* 81 number_of_dimensions based fixed bin(17,0) level 2 in structure "pv_string" packed unaligned dcl 2-36 in procedure "vu_cv_pva_to_string" set ref 102* 112 number_of_dimensions 1 based fixed bin(17,0) level 2 in structure "print_vector_array" dcl 3-12 in procedure "vu_cv_pva_to_string" ref 77 93 100 number_of_vectors 3 based fixed bin(17,0) level 2 in structure "print_vector_array" dcl 3-12 in procedure "vu_cv_pva_to_string" ref 91 97 number_of_vectors 2 based fixed bin(17,0) level 2 in structure "pva_string" packed unaligned dcl 2-17 in procedure "vu_cv_pva_to_string" set ref 91* p_code parameter fixed bin(35,0) dcl 37 set ref 7 71* p_expected_version parameter fixed bin(35,0) dcl 123 set ref 120 126 126* p_print_vector_array_ptr parameter pointer dcl 26 ref 7 73 p_pva_string_length parameter fixed bin(35,0) dcl 32 set ref 7 80 116* p_pva_string_ptr parameter pointer dcl 29 ref 7 76 p_received_version parameter fixed bin(35,0) dcl 122 set ref 120 126 126* p_structure_name parameter char unaligned dcl 124 set ref 120 126* print_vector based structure level 1 unaligned dcl 3-31 print_vector_array based structure level 1 unaligned dcl 3-12 print_vector_array_ptr 000114 automatic pointer dcl 3-51 set ref 73* 74 77 78 91 93 94 97 100 print_vector_ptr 000116 automatic pointer dcl 3-52 set ref 100* 102 103 105 107 108 pv_string based structure level 1 unaligned dcl 2-36 set ref 112 pv_string_ptr 000110 automatic pointer initial dcl 2-47 set ref 99* 102 103 107 108 112 2-47* pva_string based structure level 1 unaligned dcl 2-17 set ref 81 pva_string_buffer_length_in_words 000101 automatic fixed bin(35,0) initial dcl 42 set ref 42* 80* 83 83* pva_string_length_in_words 000100 automatic fixed bin(35,0) initial dcl 42 set ref 42* 81* 83 83* 99 112* 112 116 pva_string_ptr 000104 automatic pointer initial dcl 2-28 set ref 76* 77 78 81 90 91 94 99 2-28* pvas_maximum_name_length 000107 automatic fixed bin(17,0) initial dcl 2-31 set ref 2-31* pvas_number_of_dimensions 000106 automatic fixed bin(17,0) initial dcl 2-29 set ref 2-29* pvs_maximum_value_length 000113 automatic fixed bin(35,0) initial dcl 2-50 set ref 2-50* pvs_number_of_dimensions 000112 automatic fixed bin(17,0) initial dcl 2-48 set ref 2-48* sub_err_ 000010 constant entry external dcl 60 ref 83 126 value 3 based varying char array level 3 in structure "print_vector" dcl 3-31 in procedure "vu_cv_pva_to_string" ref 108 value 3 based varying char array level 3 in structure "pv_string" dcl 2-36 in procedure "vu_cv_pva_to_string" set ref 108* vector_idx 000103 automatic fixed bin(17,0) initial dcl 44 set ref 44* 97* 100* vector_slot based pointer array level 2 dcl 3-12 ref 100 version based char(8) initial level 2 in structure "pva_string" packed unaligned dcl 2-17 in procedure "vu_cv_pva_to_string" set ref 90* version based fixed bin(35,0) level 2 in structure "print_vector_array" dcl 3-12 in procedure "vu_cv_pva_to_string" set ref 74* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 1-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 1-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 1-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 1-7 pv_maximum_value_length automatic fixed bin(17,0) dcl 3-48 pv_number_of_dimensions automatic fixed bin(17,0) dcl 3-46 pva_maximum_dimension_name_length automatic fixed bin(17,0) dcl 3-44 pva_number_of_dimensions automatic fixed bin(17,0) dcl 3-40 pva_number_of_vector_slots automatic fixed bin(17,0) dcl 3-42 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000544 constant entry internal dcl 120 ref 74 vu_cv_pva_to_string 000131 constant entry external dcl 7 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 720 736 640 730 Length 1162 640 16 207 57 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vu_cv_pva_to_string 248 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure vu_cv_pva_to_string. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vu_cv_pva_to_string 000100 pva_string_length_in_words vu_cv_pva_to_string 000101 pva_string_buffer_length_in_words vu_cv_pva_to_string 000102 dim_idx vu_cv_pva_to_string 000103 vector_idx vu_cv_pva_to_string 000104 pva_string_ptr vu_cv_pva_to_string 000106 pvas_number_of_dimensions vu_cv_pva_to_string 000107 pvas_maximum_name_length vu_cv_pva_to_string 000110 pv_string_ptr vu_cv_pva_to_string 000112 pvs_number_of_dimensions vu_cv_pva_to_string 000113 pvs_maximum_value_length vu_cv_pva_to_string 000114 print_vector_array_ptr vu_cv_pva_to_string 000116 print_vector_ptr vu_cv_pva_to_string THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$fatal_error error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000124 42 000136 44 000140 2 28 000142 2 29 000144 2 31 000145 2 47 000146 2 48 000147 2 50 000150 71 000151 73 000153 74 000156 76 000203 77 000207 78 000212 80 000215 81 000220 83 000234 90 000307 91 000313 93 000317 94 000327 95 000374 97 000376 99 000407 100 000413 102 000441 103 000444 105 000446 107 000455 108 000503 110 000515 112 000517 114 000535 116 000537 118 000543 120 000544 126 000555 132 000637 ----------------------------------------------------------- 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