COMPILATION LISTING OF SEGMENT dmu_display_string Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/03/85 1643.8 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: style2,ind3 */ 7 dmu_display_string: 8 proc (p_field_table_ptr, p_string_ptr, p_string_length, p_code); 9 10 /* DESCRIPTION: 11* 12* This program takes as input a field_table and a "data string" and 13* displays the data string interpreted according to the field_table. 14**/ 15 16 /* HISTORY: 17* 18*Written by Lindsey L. Spratt, 05/08/83. 19*Modified: 20*05/03/84 by Matthew Pierret: Changed to FIELD_TABLE_VERSION_3. 21**/ 22 23 /* START OF DECLARATIONS */ 24 /* Parameter */ 25 26 dcl p_field_table_ptr ptr; /*is a pointer to field_table which is 27* used to control the display of the data 28* string.*/ 29 dcl p_string_ptr ptr; /*is a pointer to the data string to be 30* displayed.*/ 31 dcl p_string_length fixed bin (35); /*is the length of the data string 32* pointed at by string_ptr.*/ 33 dcl p_code fixed bin (35); /*is a standard system error code.*/ 34 35 /* Automatic */ 36 37 dcl field_idx fixed bin; 38 dcl current_varying_field_bit_index 39 fixed bin (35) init (0); 40 41 /* Based */ 42 /* Builtin */ 43 44 dcl (null, substr) builtin; 45 46 /* Constant */ 47 48 dcl myname init ("dmu_display_string") char (32) varying internal static options (constant); 49 dcl ( 50 BITS_PER_WORD init (36), 51 BITS_PER_BYTE init (9) 52 ) fixed bin internal static options (constant); 53 54 /* Entry */ 55 56 dcl ioa_ entry () options (variable); 57 dcl sub_err_ entry () options (variable); 58 59 /* External */ 60 61 dcl error_table_$unimplemented_version 62 fixed bin (35) ext; 63 dcl sys_info$max_seg_size fixed bin (35) ext static; 64 65 /* END OF DECLARATIONS */ 66 67 field_table_ptr = p_field_table_ptr; 68 call CHECK_VERSION ((field_table.version), (FIELD_TABLE_VERSION_3), "field_table"); 69 70 current_varying_field_bit_index = field_table.location_of_first_varying_field; 71 72 call ioa_ ("Id^10tName^/^2xLocation^12tValue"); 73 FIELD_LOOP: 74 do field_idx = 1 to field_table.number_of_fields; 75 call DISPLAY_FIELD (field_idx, current_varying_field_bit_index); 76 end FIELD_LOOP; 77 78 return; 79 80 DISPLAY_FIELD: 81 proc (p_field_idx, p_current_varying_field_bit_index); 82 dcl p_field_idx fixed bin; 83 dcl p_current_varying_field_bit_index 84 fixed bin (35); 85 dcl vs_length fixed bin (35); 86 dcl (varying_field_idx, temp_field_idx, temp_varying_field_length) 87 fixed bin (35); 88 dcl based_bit_string bit (sys_info$max_seg_size * BITS_PER_WORD) based; 89 90 91 if field_table.varying_field_map (p_field_idx).varying_field_index > 0 92 then 93 VARYING_FIELD: 94 do; 95 unspec (vs_length) = 96 copy ("0"b, BITS_PER_WORD - field_table.field (p_field_idx).length_in_bits) 97 || 98 substr (p_string_ptr -> based_bit_string, field_table.field (p_field_idx).location, 99 field_table.field (p_field_idx).length_in_bits); 100 if field_table.field (p_field_idx).length_is_in_characters 101 then vs_length = vs_length * BITS_PER_BYTE; 102 103 if p_current_varying_field_bit_index = -1 104 then 105 do; 106 p_current_varying_field_bit_index = field_table.location_of_first_varying_field; 107 do varying_field_idx = 1 to field_table.varying_field_map (p_field_idx).varying_field_index - 1; 108 temp_field_idx = field_table.varying_field_map (varying_field_idx).field_id; 109 unspec (temp_varying_field_length) = 110 copy ("0"b, BITS_PER_WORD - field_table.field (temp_field_idx).length_in_bits) 111 || 112 substr (p_string_ptr -> based_bit_string, field_table.field (temp_field_idx).location, 113 field_table.field (temp_field_idx).length_in_bits); 114 115 if field_table.field (temp_field_idx).flags.length_is_in_characters 116 then temp_varying_field_length = temp_varying_field_length * BITS_PER_BYTE; 117 118 p_current_varying_field_bit_index = p_current_varying_field_bit_index + temp_varying_field_length; 119 end; 120 121 end; 122 call 123 ioa_ ("(^d)^10t^a^/^2x^d^12t^.3b^/^2x^d^12t^.3b", p_field_idx, 124 substr (field_table.field_names, field_table.field (p_field_idx).location_of_name, 125 field_table.field (p_field_idx).length_of_name), field_table.field (p_field_idx).location, 126 bin ( 127 substr (p_string_ptr -> based_bit_string, field_table.field (p_field_idx).location, 128 field_table.field (p_field_idx).length_in_bits)), p_current_varying_field_bit_index, 129 substr (p_string_ptr -> based_bit_string, p_current_varying_field_bit_index, vs_length)); 130 131 p_current_varying_field_bit_index = p_current_varying_field_bit_index + vs_length; 132 end VARYING_FIELD; 133 else 134 do; 135 call 136 ioa_ ("(^d)^10t^a^/^2x^d^12t^.3b", p_field_idx, 137 substr (field_table.field_names, field_table.field (p_field_idx).location_of_name, 138 field_table.field (p_field_idx).length_of_name), field_table.field (p_field_idx).location, 139 bin ( 140 substr (p_string_ptr -> based_bit_string, field_table.field (p_field_idx).location, 141 field_table.field (p_field_idx).length_in_bits))); 142 143 end; 144 145 end DISPLAY_FIELD; 146 147 CHECK_VERSION: 148 proc (p_received_version, p_expected_version, p_structure_name); 149 dcl p_received_version char (*); 150 dcl p_expected_version char (*); 151 dcl p_structure_name char (*); 152 153 if p_received_version ^= p_expected_version 154 then call 155 sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, 156 "^/Expected version ^d of the ^a structure. 157 Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 158 159 end CHECK_VERSION; 160 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 */ 161 162 2 1 /* ********** BEGIN INCLUDE FILE dm_field_table.incl.pl1 ********** */ 2 2 2 3 /* DESCRIPTION: 2 4* 2 5* The field_table describes the layout of a set of fields in a 2 6* formatted data string. Such a string is the stored representation of a 2 7* record or a key. Fields are placed side-by-side in the string in the 2 8* order they appear in the field_table.field array. The string is divided 2 9* into the fixed portion and the varying portion. In the fixed portion 2 10* appear fixed-length fields and fixed-size length-fields for 2 11* varying-length fields. In the varying portion appear varying length 2 12* fields. The length-field for a varying-length field contains the length 2 13* of the field values either in bits or in characters, depending on the 2 14* data type of the field. 2 15**/ 2 16 2 17 /* HISTORY: 2 18*Written by Matthew Pierret, 04/01/82. 2 19*Modified: 2 20*04/20/82 by Matthew Pierret: Added length_is_in_characters, meaning, if on, 2 21* that if the field is varying, its length is expressed in 2 22* bytes/characters. 2 23*03/22/83 by Lindsey Spratt: Changed lofvf to have a precision of 35 instead 2 24* of 17, changed version to 2, changed version field to char(8) from 2 25* fixed bin (17). 2 26*05/01/84 by Matthew Pierret: Changed version to 3. Removed field.name and 2 27* put field names in one string (field_names) at the end of the 2 28* structure. Added field.location_of_name and field.length_of_name 2 29* for locating the field name in field_names. Aligned all "fixed bin" 2 30* structure elements. Changed maximum_field_name_length to 2 31* length_of_field_names. 2 32**/ 2 33 2 34 /* format: style2 */ 2 35 2 36 dcl 1 field_table aligned based (field_table_ptr), 2 37 2 version char (8) aligned init (FIELD_TABLE_VERSION_3), 2 38 2 number_of_fields fixed bin (17), 2 39 2 length_of_field_names 2 40 fixed bin (17), /* length of field_names in characters */ 2 41 2 location_of_first_varying_field 2 42 fixed bin (35), /* location of first bit in the varying portion of the formatted string */ 2 43 2 field (ft_number_of_fields refer (field_table.number_of_fields)), 2 44 3 flags aligned, 2 45 4 descriptor_is_varying 2 46 bit (1) unal, /* if on, the descriptor is not limited to the standard 36 bits */ 2 47 /* and is stored in a stand-alone fashion, with field.descriptor */ 2 48 /* containing the id of the element in which the descriptor is stored. */ 2 49 4 length_is_in_characters 2 50 bit (1) unal, /* if field is varying, the length field describes its length */ 2 51 /* in characters instead of in bits */ 2 52 4 must_be_zero bit (34) unal, 2 53 3 descriptor bit (36) aligned, 2 54 3 location fixed bin (35), /* location of first bit of field in formatted string */ 2 55 3 length_in_bits fixed bin (35), /* length of field in bits */ 2 56 3 location_of_name fixed bin (17), /* location of first character of field name in field_names */ 2 57 3 length_of_name fixed bin (17), /* length of name in characters */ 2 58 2 varying_field_map (ft_number_of_fields refer (field_table.number_of_fields)), 2 59 3 field_id fixed bin (17), /* field_id of Nth varying field */ 2 60 3 varying_field_index 2 61 fixed bin (17), /* ordinality among varying fields of field N */ 2 62 2 field_names char (ft_length_of_field_names refer (field_table.length_of_field_names)); 2 63 2 64 2 65 dcl field_table_ptr ptr; 2 66 dcl ft_length_of_field_names 2 67 fixed bin; 2 68 dcl ft_number_of_fields fixed bin; 2 69 dcl FIELD_TABLE_VERSION_3 char (8) aligned init ("FldTbl 3") internal static options (constant); 2 70 2 71 dcl field_name char (field_name_length) based (field_name_ptr); 2 72 2 73 dcl field_name_length fixed bin; 2 74 dcl field_name_ptr ptr; 2 75 2 76 /* END INCLUDE FILE dm_field_table.incl.pl1 */ 163 164 end dmu_display_string; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/03/85 1150.0 dmu_display_string.pl1 >spec>temp>famis1>dmu_display_string.pl1 161 1 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.incl.pl1 163 2 01/03/85 1003.3 dm_field_table.incl.pl1 >spec>temp>famis1>dm_field_table.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 153* BITS_PER_BYTE constant fixed bin(17,0) initial dcl 49 ref 100 115 BITS_PER_WORD constant fixed bin(17,0) initial dcl 49 ref 95 95 109 109 122 122 122 122 135 135 FIELD_TABLE_VERSION_3 000000 constant char(8) initial dcl 2-69 ref 68 based_bit_string based bit unaligned dcl 88 ref 95 109 122 122 122 122 135 135 current_varying_field_bit_index 000101 automatic fixed bin(35,0) initial dcl 38 set ref 38* 70* 75* error_table_$unimplemented_version 000014 external static fixed bin(35,0) dcl 61 set ref 153* field 5 based structure array level 2 dcl 2-36 field_id based fixed bin(17,0) array level 3 dcl 2-36 ref 108 field_idx 000100 automatic fixed bin(17,0) dcl 37 set ref 73* 75* field_names based char level 2 dcl 2-36 ref 122 122 135 135 field_table based structure level 1 dcl 2-36 field_table_ptr 000102 automatic pointer dcl 2-65 set ref 67* 68 70 73 91 95 95 95 100 106 107 108 109 109 109 115 122 122 122 122 122 122 122 122 122 122 122 135 135 135 135 135 135 135 135 135 135 135 flags 5 based structure array level 3 dcl 2-36 ioa_ 000010 constant entry external dcl 56 ref 72 122 135 length_in_bits 10 based fixed bin(35,0) array level 3 dcl 2-36 ref 95 95 109 109 122 122 135 135 length_is_in_characters 5(01) based bit(1) array level 4 packed unaligned dcl 2-36 ref 100 115 length_of_field_names 3 based fixed bin(17,0) level 2 dcl 2-36 ref 122 122 135 135 length_of_name 12 based fixed bin(17,0) array level 3 dcl 2-36 ref 122 122 135 135 location 7 based fixed bin(35,0) array level 3 dcl 2-36 set ref 95 109 122* 122 122 135* 135 135 location_of_first_varying_field 4 based fixed bin(35,0) level 2 dcl 2-36 ref 70 106 location_of_name 11 based fixed bin(17,0) array level 3 dcl 2-36 ref 122 122 135 135 myname 000003 constant varying char(32) initial dcl 48 set ref 153* null builtin function dcl 44 ref 153 153 number_of_fields 2 based fixed bin(17,0) level 2 dcl 2-36 ref 73 91 107 108 122 122 122 122 135 135 135 135 p_code parameter fixed bin(35,0) dcl 33 ref 7 p_current_varying_field_bit_index parameter fixed bin(35,0) dcl 83 set ref 80 103 106* 118* 118 122* 122 122 131* 131 p_expected_version parameter char unaligned dcl 150 set ref 147 153 153* p_field_idx parameter fixed bin(17,0) dcl 82 set ref 80 91 95 95 95 100 107 122* 122 122 122 122 122 122 122 122 122 135* 135 135 135 135 135 135 135 135 135 p_field_table_ptr parameter pointer dcl 26 ref 7 67 p_received_version parameter char unaligned dcl 149 set ref 147 153 153* p_string_length parameter fixed bin(35,0) dcl 31 ref 7 p_string_ptr parameter pointer dcl 29 ref 7 95 109 122 122 122 122 135 135 p_structure_name parameter char unaligned dcl 151 set ref 147 153* sub_err_ 000012 constant entry external dcl 57 ref 153 substr builtin function dcl 44 ref 95 109 122 122 122 122 122 122 135 135 135 135 sys_info$max_seg_size 000016 external static fixed bin(35,0) dcl 63 ref 95 109 122 122 122 122 135 135 temp_field_idx 000116 automatic fixed bin(35,0) dcl 86 set ref 108* 109 109 109 115 temp_varying_field_length 000117 automatic fixed bin(35,0) dcl 86 set ref 109* 115* 115 118 varying_field_idx 000115 automatic fixed bin(35,0) dcl 86 set ref 107* 108* varying_field_index based fixed bin(17,0) array level 3 dcl 2-36 ref 91 107 varying_field_map based structure array level 2 dcl 2-36 version based char(8) initial level 2 dcl 2-36 ref 68 vs_length 000114 automatic fixed bin(35,0) dcl 85 set ref 95* 100* 100 122 122 131 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 field_name based char unaligned dcl 2-71 field_name_length automatic fixed bin(17,0) dcl 2-73 field_name_ptr automatic pointer dcl 2-74 ft_length_of_field_names automatic fixed bin(17,0) dcl 2-66 ft_number_of_fields automatic fixed bin(17,0) dcl 2-68 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000644 constant entry internal dcl 147 ref 68 DISPLAY_FIELD 000204 constant entry internal dcl 80 ref 75 FIELD_LOOP 000166 constant label dcl 73 VARYING_FIELD 000221 constant label dcl 91 dmu_display_string 000121 constant entry external dcl 7 NAMES DECLARED BY CONTEXT OR IMPLICATION. bin builtin function ref 122 122 135 135 copy builtin function ref 95 109 unspec builtin function set ref 95 109* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1100 1120 1007 1110 Length 1330 1007 20 174 70 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dmu_display_string 224 external procedure is an external procedure. DISPLAY_FIELD internal procedure shares stack frame of external procedure dmu_display_string. CHECK_VERSION internal procedure shares stack frame of external procedure dmu_display_string. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dmu_display_string 000100 field_idx dmu_display_string 000101 current_varying_field_bit_index dmu_display_string 000102 field_table_ptr dmu_display_string 000114 vs_length DISPLAY_FIELD 000115 varying_field_idx DISPLAY_FIELD 000116 temp_field_idx DISPLAY_FIELD 000117 temp_varying_field_length DISPLAY_FIELD THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs alloc_bs cat_realloc_bs call_ext_out_desc return bs_to_fx2 shorten_stack ext_entry set_bs_eis THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version sys_info$max_seg_size CONSTANTS 000762 aa 000004000000 000763 aa 000000000000 000764 aa 600000000041 000765 aa 000100000000 000766 aa 600000000041 000767 aa 000101000000 000770 aa 000006000000 000771 aa 000006000000 000772 aa 600000000041 000773 aa 000130000000 000774 aa 600000000041 000775 aa 000132000000 000776 aa 600000000041 000777 aa 000134000000 001000 ta 000031000000 001001 aa 000000000000 001002 ta 000031000000 001003 aa 000000000000 001004 ta 000030000000 001005 aa 000000000000 000000 aa 106 154 144 124 FldT 000001 aa 142 154 040 063 bl 3 000002 aa 400000000000 000003 aa 000000000022 000004 aa 144 155 165 137 dmu_ 000005 aa 144 151 163 160 disp 000006 aa 154 141 171 137 lay_ 000007 aa 163 164 162 151 stri 000010 aa 156 147 040 040 ng 000011 aa 040 040 040 040 000012 aa 040 040 040 040 000013 aa 040 040 040 040 000014 aa 524000000107 000015 aa 404000000005 000016 aa 514000000044 000017 aa 530000000040 000020 aa 526077777777 000021 aa 524000000031 000022 aa 514000000000 000023 aa 410000000107 000024 aa 524000000000 000025 aa 524000000050 001006 aa 777777777777 000026 aa 404000000021 000027 aa 524000000040 000030 aa 524000000013 000031 aa 524000000010 000032 aa 404000000043 000033 aa 464000000000 000034 aa 077777000043 000035 aa 000001000000 000036 aa 146 151 145 154 fiel 000037 aa 144 137 164 141 d_ta 000040 aa 142 154 145 000 ble 000041 aa 050 136 144 051 (^d) 000042 aa 136 061 060 164 ^10t 000043 aa 136 141 136 057 ^a^/ 000044 aa 136 062 170 136 ^2x^ 000045 aa 144 136 061 062 d^12 000046 aa 164 136 056 063 t^.3 000047 aa 142 000 000 000 b 000050 aa 111 144 136 061 Id^1 000051 aa 060 164 116 141 0tNa 000052 aa 155 145 136 057 me^/ 000053 aa 136 062 170 114 ^2xL 000054 aa 157 143 141 164 ocat 000055 aa 151 157 156 136 ion^ 000056 aa 061 062 164 126 12tV 000057 aa 141 154 165 145 alue 000060 aa 050 136 144 051 (^d) 000061 aa 136 061 060 164 ^10t 000062 aa 136 141 136 057 ^a^/ 000063 aa 136 062 170 136 ^2x^ 000064 aa 144 136 061 062 d^12 000065 aa 164 136 056 063 t^.3 000066 aa 142 136 057 136 b^/^ 000067 aa 062 170 136 144 2x^d 000070 aa 136 061 062 164 ^12t 000071 aa 136 056 063 142 ^.3b 000072 aa 136 057 105 170 ^/Ex 000073 aa 160 145 143 164 pect 000074 aa 145 144 040 166 ed v 000075 aa 145 162 163 151 ersi 000076 aa 157 156 040 136 on ^ 000077 aa 144 040 157 146 d of 000100 aa 040 164 150 145 the 000101 aa 040 136 141 040 ^a 000102 aa 163 164 162 165 stru 000103 aa 143 164 165 162 ctur 000104 aa 145 056 012 122 e. R 000105 aa 145 143 145 151 ecei 000106 aa 166 145 144 040 ved 000107 aa 166 145 162 163 vers 000110 aa 151 157 156 040 ion 000111 aa 136 144 040 151 ^d i 000112 aa 156 163 164 145 nste 000113 aa 141 144 056 000 ad. BEGIN PROCEDURE dmu_display_string ENTRY TO dmu_display_string STATEMENT 1 ON LINE 7 dmu_display_string: proc (p_field_table_ptr, p_string_ptr, p_string_length, p_code); 000114 at 000004000033 000115 tt 000033000032 000116 ta 000032000000 000117 ta 000114000000 000120 da 000064300000 000121 aa 000340 6270 00 eax7 224 000122 aa 7 00034 3521 20 epp2 pr7|28,* 000123 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000124 aa 000010000000 000125 aa 000000000000 STATEMENT 1 ON LINE 38 000126 aa 6 00101 4501 00 stz pr6|65 current_varying_field_bit_index STATEMENT 1 ON LINE 67 field_table_ptr = p_field_table_ptr; 000127 aa 6 00032 3735 20 epp7 pr6|26,* 000130 aa 7 00002 3715 20 epp5 pr7|2,* p_field_table_ptr 000131 aa 5 00000 3715 20 epp5 pr5|0,* p_field_table_ptr 000132 aa 6 00102 6515 00 spri5 pr6|66 field_table_ptr STATEMENT 1 ON LINE 68 call CHECK_VERSION ((field_table.version), (FIELD_TABLE_VERSION_3), "field_table"); 000133 aa 5 00000 2351 00 lda pr5|0 field_table.version 000134 aa 5 00001 2361 00 ldq pr5|1 field_table.version 000135 aa 6 00130 7571 00 staq pr6|88 000136 aa 777642 2370 04 ldaq -94,ic 000000 = 106154144124 142154040063 000137 aa 6 00132 7571 00 staq pr6|90 000140 aa 777676 2370 04 ldaq -66,ic 000036 = 146151145154 144137164141 000141 aa 6 00134 7571 00 staq pr6|92 000142 aa 777676 2350 04 lda -66,ic 000040 = 142154145000 000143 aa 6 00136 7551 00 sta pr6|94 000144 aa 000624 3520 04 epp2 404,ic 000770 = 000006000000 000145 aa 2 00000 2351 00 lda pr2|0 000146 aa 000476 6700 04 tsp4 318,ic 000644 STATEMENT 1 ON LINE 70 current_varying_field_bit_index = field_table.location_of_first_varying_field; 000147 aa 6 00102 3735 20 epp7 pr6|66,* field_table_ptr 000150 aa 7 00004 2361 00 ldq pr7|4 field_table.location_of_first_varying_field 000151 aa 6 00101 7561 00 stq pr6|65 current_varying_field_bit_index STATEMENT 1 ON LINE 72 call ioa_ ("Id^10tName^/^2xLocation^12tValue"); 000152 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000153 aa 777676 00 0040 desc9a -66,32 000050 = 111144136061 000154 aa 6 00140 00 0040 desc9a pr6|96,32 000155 aa 6 00140 3521 00 epp2 pr6|96 000156 aa 6 00152 2521 00 spri2 pr6|106 000157 aa 777650 3520 04 epp2 -88,ic 000027 = 524000000040 000160 aa 6 00154 2521 00 spri2 pr6|108 000161 aa 6 00150 6211 00 eax1 pr6|104 000162 aa 004000 4310 07 fld 2048,dl 000163 aa 6 00044 3701 20 epp4 pr6|36,* 000164 la 4 00010 3521 20 epp2 pr4|8,* ioa_ 000165 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 73 FIELD_LOOP: do field_idx = 1 to field_table.number_of_fields; 000166 aa 6 00102 3735 20 epp7 pr6|66,* field_table_ptr 000167 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000170 aa 6 00104 7561 00 stq pr6|68 000171 aa 000001 2360 07 ldq 1,dl 000172 aa 6 00100 7561 00 stq pr6|64 field_idx 000173 aa 000000 0110 03 nop 0,du 000174 aa 6 00100 2361 00 ldq pr6|64 field_idx 000175 aa 6 00104 1161 00 cmpq pr6|68 000176 aa 000005 6054 04 tpnz 5,ic 000203 STATEMENT 1 ON LINE 75 call DISPLAY_FIELD (field_idx, current_varying_field_bit_index); 000177 aa 000563 3520 04 epp2 371,ic 000762 = 000004000000 000200 aa 000004 6700 04 tsp4 4,ic 000204 STATEMENT 1 ON LINE 76 end FIELD_LOOP; 000201 aa 6 00100 0541 00 aos pr6|64 field_idx 000202 aa 777772 7100 04 tra -6,ic 000174 STATEMENT 1 ON LINE 78 return; 000203 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 164 end dmu_display_string; BEGIN PROCEDURE DISPLAY_FIELD ENTRY TO DISPLAY_FIELD STATEMENT 1 ON LINE 80 DISPLAY_FIELD: proc (p_field_idx, p_current_varying_field_bit_index); 000204 aa 6 00106 6501 00 spri4 pr6|70 000205 aa 6 00110 2521 00 spri2 pr6|72 STATEMENT 1 ON LINE 91 if field_table.varying_field_map (p_field_idx).varying_field_index > 0 then VARYING_FIELD: do; 000206 aa 2 00002 2361 20 ldq pr2|2,* p_field_idx 000207 aa 000001 7360 00 qls 1 000210 aa 6 00156 7561 00 stq pr6|110 000211 aa 6 00102 3735 20 epp7 pr6|66,* field_table_ptr 000212 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000213 aa 000006 4020 07 mpy 6,dl 000214 aa 000006 0760 07 adq 6,dl 000215 aa 6 00156 0761 00 adq pr6|110 000216 aa 6 00156 7561 00 stq pr6|110 000217 aa 7 77776 2361 06 ldq pr7|-2,ql field_table.varying_field_index 000220 aa 000317 6044 04 tmoz 207,ic 000537 STATEMENT 1 ON LINE 95 unspec (vs_length) = copy ("0"b, BITS_PER_WORD - field_table.field (p_field_idx).length_in_bits) || substr (p_string_ptr -> based_bit_string, field_table.field (p_field_idx).location, field_table.field (p_field_idx).length_in_bits); 000221 aa 2 00002 2361 20 ldq pr2|2,* p_field_idx 000222 aa 000006 4020 07 mpy 6,dl 000223 aa 000000 6270 06 eax7 0,ql 000224 aa 000044 3360 07 lcq 36,dl 000225 aa 000044 7770 00 llr 36 000226 aa 000044 7330 00 lrs 36 000227 aa 7 00002 0331 17 adl pr7|2,7 field_table.length_in_bits 000230 aa 000000 5330 00 negl 0 000231 aa 6 00160 7571 00 staq pr6|112 000232 aa 0 00552 7001 00 tsx0 pr0|362 alloc_bs 000233 aa 6 00161 2351 00 lda pr6|113 000234 aa 003 140 060 400 csl (),(pr,rl),fill(0),bool(move) 000235 aa 000000 00 0000 descb 0,0 000236 aa 2 00000 00 0005 descb pr2|0,al 000237 aa 6 00160 2371 00 ldaq pr6|112 000240 aa 7 00002 0331 17 adl pr7|2,7 field_table.length_in_bits 000241 aa 6 00157 7561 00 stq pr6|111 000242 aa 0 00607 7001 00 tsx0 pr0|391 cat_realloc_bs 000243 aa 6 00161 2351 00 lda pr6|113 000244 aa 7 00001 2361 17 ldq pr7|1,7 field_table.location 000245 aa 6 00032 3715 20 epp5 pr6|26,* 000246 aa 5 00004 3535 20 epp3 pr5|4,* p_string_ptr 000247 aa 3 00000 3535 20 epp3 pr3|0,* p_string_ptr 000250 aa 000043 0760 07 adq 35,dl 000251 aa 3 77777 3515 00 epp1 pr3|-1 based_bit_string 000252 aa 1 00000 5035 06 abd pr1|0,ql 000253 aa 7 00002 2361 17 ldq pr7|2,7 field_table.length_in_bits 000254 aa 003 145 060 540 csl (pr,rl),(pr,rl,al),fill(0),bool(move) 000255 aa 1 00000 00 0006 descb pr1|0,ql based_bit_string 000256 aa 2 00000 00 0006 descb pr2|0,ql 000257 aa 6 00157 2351 00 lda pr6|111 000260 aa 003 100 060 540 csl (pr,rl),(pr),fill(0),bool(move) 000261 aa 2 00000 00 0005 descb pr2|0,al 000262 aa 6 00114 00 0044 descb pr6|76,36 STATEMENT 1 ON LINE 100 if field_table.field (p_field_idx).length_is_in_characters then vs_length = vs_length * BITS_PER_BYTE; 000263 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000264 aa 7 77777 2351 17 lda pr7|-1,7 field_table.length_is_in_characters 000265 aa 200000 3150 03 cana 65536,du 000266 aa 000004 6000 04 tze 4,ic 000272 000267 aa 6 00114 2361 00 ldq pr6|76 vs_length 000270 aa 000011 4020 07 mpy 9,dl 000271 aa 6 00114 7561 00 stq pr6|76 vs_length STATEMENT 1 ON LINE 103 if p_current_varying_field_bit_index = -1 then do; 000272 aa 6 00110 3515 20 epp1 pr6|72,* 000273 aa 1 00004 2361 20 ldq pr1|4,* p_current_varying_field_bit_index 000274 aa 000512 1160 04 cmpq 330,ic 001006 = 777777777777 000275 aa 000107 6010 04 tnz 71,ic 000404 STATEMENT 1 ON LINE 106 p_current_varying_field_bit_index = field_table.location_of_first_varying_field; 000276 aa 7 00004 2361 00 ldq pr7|4 field_table.location_of_first_varying_field 000277 aa 1 00004 7561 20 stq pr1|4,* p_current_varying_field_bit_index STATEMENT 1 ON LINE 107 do varying_field_idx = 1 to field_table.varying_field_map (p_field_idx).varying_field_index - 1; 000300 aa 6 00156 7261 00 lxl6 pr6|110 000301 aa 7 77776 2361 16 ldq pr7|-2,6 field_table.varying_field_index 000302 aa 000001 1760 07 sbq 1,dl 000303 aa 6 00120 7561 00 stq pr6|80 000304 aa 000001 2360 07 ldq 1,dl 000305 aa 6 00115 7561 00 stq pr6|77 varying_field_idx 000306 aa 6 00115 2361 00 ldq pr6|77 varying_field_idx 000307 aa 6 00120 1161 00 cmpq pr6|80 000310 aa 000074 6054 04 tpnz 60,ic 000404 STATEMENT 1 ON LINE 108 temp_field_idx = field_table.varying_field_map (varying_field_idx).field_id; 000311 aa 000001 7360 00 qls 1 000312 aa 6 00156 7561 00 stq pr6|110 000313 aa 6 00102 3735 20 epp7 pr6|66,* field_table_ptr 000314 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000315 aa 000006 4020 07 mpy 6,dl 000316 aa 000005 0760 07 adq 5,dl 000317 aa 6 00156 0761 00 adq pr6|110 000320 aa 7 77776 2361 06 ldq pr7|-2,ql field_table.field_id 000321 aa 6 00116 7561 00 stq pr6|78 temp_field_idx STATEMENT 1 ON LINE 109 unspec (temp_varying_field_length) = copy ("0"b, BITS_PER_WORD - field_table.field (temp_field_idx).length_in_bits) || substr (p_string_ptr -> based_bit_string, field_table.field (temp_field_idx).location, field_table.field (temp_field_idx).length_in_bits); 000322 aa 000006 4020 07 mpy 6,dl 000323 aa 000000 6270 06 eax7 0,ql 000324 aa 000044 3360 07 lcq 36,dl 000325 aa 000044 7770 00 llr 36 000326 aa 000044 7330 00 lrs 36 000327 aa 7 00002 0331 17 adl pr7|2,7 field_table.length_in_bits 000330 aa 000000 5330 00 negl 0 000331 aa 6 00160 7571 00 staq pr6|112 000332 aa 0 00552 7001 00 tsx0 pr0|362 alloc_bs 000333 aa 6 00161 2351 00 lda pr6|113 000334 aa 003 140 060 400 csl (),(pr,rl),fill(0),bool(move) 000335 aa 000000 00 0000 descb 0,0 000336 aa 2 00000 00 0005 descb pr2|0,al 000337 aa 6 00160 2371 00 ldaq pr6|112 000340 aa 7 00002 0331 17 adl pr7|2,7 field_table.length_in_bits 000341 aa 6 00156 7561 00 stq pr6|110 000342 aa 0 00607 7001 00 tsx0 pr0|391 cat_realloc_bs 000343 aa 6 00161 2351 00 lda pr6|113 000344 aa 7 00001 2361 17 ldq pr7|1,7 field_table.location 000345 aa 6 00032 3715 20 epp5 pr6|26,* 000346 aa 5 00004 3535 20 epp3 pr5|4,* p_string_ptr 000347 aa 3 00000 3535 20 epp3 pr3|0,* p_string_ptr 000350 aa 000043 0760 07 adq 35,dl 000351 aa 3 77777 3515 00 epp1 pr3|-1 based_bit_string 000352 aa 1 00000 5035 06 abd pr1|0,ql 000353 aa 7 00002 2361 17 ldq pr7|2,7 field_table.length_in_bits 000354 aa 003 145 060 540 csl (pr,rl),(pr,rl,al),fill(0),bool(move) 000355 aa 1 00000 00 0006 descb pr1|0,ql based_bit_string 000356 aa 2 00000 00 0006 descb pr2|0,ql 000357 aa 6 00156 2351 00 lda pr6|110 000360 aa 003 100 060 540 csl (pr,rl),(pr),fill(0),bool(move) 000361 aa 2 00000 00 0005 descb pr2|0,al 000362 aa 6 00117 00 0044 descb pr6|79,36 STATEMENT 1 ON LINE 115 if field_table.field (temp_field_idx).flags.length_is_in_characters then temp_varying_field_length = temp_varying_field_length * BITS_PER_BYTE; 000363 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000364 aa 7 77777 2351 17 lda pr7|-1,7 field_table.length_is_in_characters 000365 aa 200000 3150 03 cana 65536,du 000366 aa 000004 6000 04 tze 4,ic 000372 000367 aa 6 00117 2361 00 ldq pr6|79 temp_varying_field_length 000370 aa 000011 4020 07 mpy 9,dl 000371 aa 6 00117 7561 00 stq pr6|79 temp_varying_field_length STATEMENT 1 ON LINE 118 p_current_varying_field_bit_index = p_current_varying_field_bit_index + temp_varying_field_length; 000372 aa 6 00110 3515 20 epp1 pr6|72,* 000373 aa 1 00004 2351 20 lda pr1|4,* p_current_varying_field_bit_index 000374 aa 000044 7330 00 lrs 36 000375 aa 6 00117 0331 00 adl pr6|79 temp_varying_field_length 000376 aa 1 00004 7561 20 stq pr1|4,* p_current_varying_field_bit_index STATEMENT 1 ON LINE 119 end; 000377 aa 6 00115 2351 00 lda pr6|77 varying_field_idx 000400 aa 000044 7330 00 lrs 36 000401 aa 000001 0330 07 adl 1,dl 000402 aa 6 00115 7561 00 stq pr6|77 varying_field_idx 000403 aa 777703 7100 04 tra -61,ic 000306 STATEMENT 1 ON LINE 121 end; STATEMENT 1 ON LINE 122 call ioa_ ("(^d)^10t^a^/^2x^d^12t^.3b^/^2x^d^12t^.3b", p_field_idx, substr (field_table.field_names, field_table.field (p_field_idx).location_of_name, field_table.field (p_field_idx).length_of_name), field_table.field (p_field_idx).location, bin ( substr (p_string_ptr -> based_bit_string, field_table.field (p_field_idx).location, field_table.field (p_field_idx).length_in_bits)), p_current_varying_field_bit_index, substr (p_string_ptr -> based_bit_string, p_current_varying_field_bit_index, vs_length)); 000404 aa 6 00110 3735 20 epp7 pr6|72,* 000405 aa 7 00002 2361 20 ldq pr7|2,* p_field_idx 000406 aa 000006 4020 07 mpy 6,dl 000407 aa 6 00102 3715 20 epp5 pr6|66,* field_table_ptr 000410 aa 000000 6270 06 eax7 0,ql 000411 aa 5 00004 2361 06 ldq pr5|4,ql field_table.length_of_name 000412 aa 524000 2760 03 orq 174080,du 000413 aa 6 00156 7561 00 stq pr6|110 000414 aa 777416 2360 04 ldq -242,ic 000032 = 404000000043 000415 aa 6 00162 7561 00 stq pr6|114 000416 aa 6 00114 2361 00 ldq pr6|76 vs_length 000417 aa 514000 2760 03 orq 169984,du 000420 aa 6 00163 7561 00 stq pr6|115 000421 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000422 aa 777437 00 0050 desc9a -225,40 000060 = 050136144051 000423 aa 6 00164 00 0050 desc9a pr6|116,40 000424 aa 5 00003 2361 17 ldq pr5|3,7 field_table.location_of_name 000425 aa 000001 1760 07 sbq 1,dl 000426 aa 6 00157 7561 00 stq pr6|111 000427 aa 5 00002 2361 00 ldq pr5|2 field_table.number_of_fields 000430 aa 000001 7360 00 qls 1 000431 aa 6 00176 7561 00 stq pr6|126 000432 aa 5 00002 2361 00 ldq pr5|2 field_table.number_of_fields 000433 aa 000006 4020 07 mpy 6,dl 000434 aa 000005 0760 07 adq 5,dl 000435 aa 6 00176 0761 00 adq pr6|126 000436 aa 000002 7360 00 qls 2 000437 aa 6 00157 0761 00 adq pr6|111 000440 aa 6 00157 7561 00 stq pr6|111 000441 aa 5 00004 2361 17 ldq pr5|4,7 field_table.length_of_name 000442 aa 0 00551 7001 00 tsx0 pr0|361 alloc_cs 000443 aa 6 00212 2521 00 spri2 pr6|138 000444 aa 6 00157 2351 00 lda pr6|111 000445 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 000446 aa 5 00000 00 0006 desc9a pr5|0,ql field_table.field_names 000447 aa 2 00000 00 0006 desc9a pr2|0,ql 000450 aa 5 00002 2361 17 ldq pr5|2,7 field_table.length_in_bits 000451 aa 5 00001 2351 17 lda pr5|1,7 field_table.location 000452 aa 000043 0750 07 ada 35,dl 000453 aa 6 00032 3535 20 epp3 pr6|26,* 000454 aa 3 00004 3515 20 epp1 pr3|4,* p_string_ptr 000455 aa 1 00000 3515 20 epp1 pr1|0,* p_string_ptr 000456 aa 1 77777 3521 00 epp2 pr1|-1 based_bit_string 000457 aa 2 00000 5035 05 abd pr2|0,al 000460 aa 0 01230 7001 00 tsx0 pr0|664 set_bs_eis 000461 aa 0 00656 7001 00 tsx0 pr0|430 bs_to_fx2 000462 aa 6 00200 7571 00 staq pr6|128 000463 aa 6 00114 2361 00 ldq pr6|76 vs_length 000464 aa 0 00552 7001 00 tsx0 pr0|362 alloc_bs 000465 aa 6 00222 2521 00 spri2 pr6|146 000466 aa 7 00004 2351 20 lda pr7|4,* p_current_varying_field_bit_index 000467 aa 003 140 060 545 csl (pr,rl,al),(pr,rl),fill(0),bool(move) 000470 aa 1 77777 70 0006 descb pr1|-1(35),ql based_bit_string 000471 aa 2 00000 00 0006 descb pr2|0,ql 000472 aa 6 00164 3521 00 epp2 pr6|116 000473 aa 6 00206 2521 00 spri2 pr6|134 000474 aa 7 00002 3521 20 epp2 pr7|2,* p_field_idx 000475 aa 6 00210 2521 00 spri2 pr6|136 000476 aa 5 00001 3521 17 epp2 pr5|1,7 field_table.location 000477 aa 6 00214 2521 00 spri2 pr6|140 000500 aa 6 00200 3521 00 epp2 pr6|128 000501 aa 6 00216 2521 00 spri2 pr6|142 000502 aa 7 00004 3521 20 epp2 pr7|4,* p_current_varying_field_bit_index 000503 aa 6 00220 2521 00 spri2 pr6|144 000504 aa 777321 3520 04 epp2 -303,ic 000025 = 524000000050 000505 aa 6 00224 2521 00 spri2 pr6|148 000506 aa 777320 3520 04 epp2 -304,ic 000026 = 404000000021 000507 aa 6 00226 2521 00 spri2 pr6|150 000510 aa 6 00156 3521 00 epp2 pr6|110 000511 aa 6 00230 2521 00 spri2 pr6|152 000512 aa 6 00162 3521 00 epp2 pr6|114 000513 aa 6 00232 2521 00 spri2 pr6|154 000514 aa 777307 3520 04 epp2 -313,ic 000023 = 410000000107 000515 aa 6 00234 2521 00 spri2 pr6|156 000516 aa 777314 3520 04 epp2 -308,ic 000032 = 404000000043 000517 aa 6 00236 2521 00 spri2 pr6|158 000520 aa 6 00163 3521 00 epp2 pr6|115 000521 aa 6 00240 2521 00 spri2 pr6|160 000522 aa 6 00204 6211 00 eax1 pr6|132 000523 aa 034000 4310 07 fld 14336,dl 000524 aa 6 00044 3701 20 epp4 pr6|36,* 000525 la 4 00010 3521 20 epp2 pr4|8,* ioa_ 000526 aa 6 00177 7471 00 stx7 pr6|127 000527 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 131 p_current_varying_field_bit_index = p_current_varying_field_bit_index + vs_length; 000530 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack 000531 aa 6 00110 3735 20 epp7 pr6|72,* 000532 aa 7 00004 2351 20 lda pr7|4,* p_current_varying_field_bit_index 000533 aa 000044 7330 00 lrs 36 000534 aa 6 00114 0331 00 adl pr6|76 vs_length 000535 aa 7 00004 7561 20 stq pr7|4,* p_current_varying_field_bit_index STATEMENT 1 ON LINE 132 end VARYING_FIELD; 000536 aa 000105 7100 04 tra 69,ic 000643 STATEMENT 1 ON LINE 133 else do; STATEMENT 1 ON LINE 135 call ioa_ ("(^d)^10t^a^/^2x^d^12t^.3b", p_field_idx, substr (field_table.field_names, field_table.field (p_field_idx).location_of_name, field_table.field (p_field_idx).length_of_name), field_table.field (p_field_idx).location, bin ( substr (p_string_ptr -> based_bit_string, field_table.field (p_field_idx).location, field_table.field (p_field_idx).length_in_bits))); 000537 aa 2 00002 2361 20 ldq pr2|2,* p_field_idx 000540 aa 000006 4020 07 mpy 6,dl 000541 aa 000000 6270 06 eax7 0,ql 000542 aa 7 00004 2361 06 ldq pr7|4,ql field_table.length_of_name 000543 aa 524000 2760 03 orq 174080,du 000544 aa 6 00156 7561 00 stq pr6|110 000545 aa 777265 2360 04 ldq -331,ic 000032 = 404000000043 000546 aa 6 00163 7561 00 stq pr6|115 000547 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000550 aa 777272 00 0034 desc9a -326,28 000041 = 050136144051 000551 aa 6 00164 00 0034 desc9a pr6|116,28 000552 aa 7 00003 2361 17 ldq pr7|3,7 field_table.location_of_name 000553 aa 000001 1760 07 sbq 1,dl 000554 aa 6 00162 7561 00 stq pr6|114 000555 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000556 aa 000001 7360 00 qls 1 000557 aa 6 00177 7561 00 stq pr6|127 000560 aa 7 00002 2361 00 ldq pr7|2 field_table.number_of_fields 000561 aa 000006 4020 07 mpy 6,dl 000562 aa 000005 0760 07 adq 5,dl 000563 aa 6 00177 0761 00 adq pr6|127 000564 aa 000002 7360 00 qls 2 000565 aa 6 00162 0761 00 adq pr6|114 000566 aa 6 00162 7561 00 stq pr6|114 000567 aa 7 00004 2361 17 ldq pr7|4,7 field_table.length_of_name 000570 aa 0 00551 7001 00 tsx0 pr0|361 alloc_cs 000571 aa 6 00212 2521 00 spri2 pr6|138 000572 aa 6 00162 2351 00 lda pr6|114 000573 aa 040 140 100 545 mlr (pr,rl,al),(pr,rl),fill(040) 000574 aa 7 00000 00 0006 desc9a pr7|0,ql field_table.field_names 000575 aa 2 00000 00 0006 desc9a pr2|0,ql 000576 aa 7 00002 2361 17 ldq pr7|2,7 field_table.length_in_bits 000577 aa 7 00001 2351 17 lda pr7|1,7 field_table.location 000600 aa 000043 0750 07 ada 35,dl 000601 aa 6 00032 3715 20 epp5 pr6|26,* 000602 aa 5 00004 3535 20 epp3 pr5|4,* p_string_ptr 000603 aa 3 00000 3535 20 epp3 pr3|0,* p_string_ptr 000604 aa 3 77777 3521 00 epp2 pr3|-1 based_bit_string 000605 aa 2 00000 5035 05 abd pr2|0,al 000606 aa 0 01230 7001 00 tsx0 pr0|664 set_bs_eis 000607 aa 0 00656 7001 00 tsx0 pr0|430 bs_to_fx2 000610 aa 6 00200 7571 00 staq pr6|128 000611 aa 6 00164 3521 00 epp2 pr6|116 000612 aa 6 00206 2521 00 spri2 pr6|134 000613 aa 6 00110 3515 20 epp1 pr6|72,* 000614 aa 1 00002 3521 20 epp2 pr1|2,* p_field_idx 000615 aa 6 00210 2521 00 spri2 pr6|136 000616 aa 7 00001 3521 17 epp2 pr7|1,7 field_table.location 000617 aa 6 00214 2521 00 spri2 pr6|140 000620 aa 6 00200 3521 00 epp2 pr6|128 000621 aa 6 00216 2521 00 spri2 pr6|142 000622 aa 777177 3520 04 epp2 -385,ic 000021 = 524000000031 000623 aa 6 00220 2521 00 spri2 pr6|144 000624 aa 777202 3520 04 epp2 -382,ic 000026 = 404000000021 000625 aa 6 00222 2521 00 spri2 pr6|146 000626 aa 6 00156 3521 00 epp2 pr6|110 000627 aa 6 00224 2521 00 spri2 pr6|148 000630 aa 6 00163 3521 00 epp2 pr6|115 000631 aa 6 00226 2521 00 spri2 pr6|150 000632 aa 777171 3520 04 epp2 -391,ic 000023 = 410000000107 000633 aa 6 00230 2521 00 spri2 pr6|152 000634 aa 6 00204 6211 00 eax1 pr6|132 000635 aa 024000 4310 07 fld 10240,dl 000636 aa 6 00044 3701 20 epp4 pr6|36,* 000637 la 4 00010 3521 20 epp2 pr4|8,* ioa_ 000640 aa 6 00162 7471 00 stx7 pr6|114 000641 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 143 end; 000642 aa 0 01014 7001 00 tsx0 pr0|524 shorten_stack STATEMENT 1 ON LINE 145 end DISPLAY_FIELD; 000643 aa 6 00106 6101 00 rtcd pr6|70 END PROCEDURE DISPLAY_FIELD BEGIN PROCEDURE CHECK_VERSION ENTRY TO CHECK_VERSION STATEMENT 1 ON LINE 147 CHECK_VERSION: proc (p_received_version, p_expected_version, p_structure_name); 000644 aa 6 00122 6501 00 spri4 pr6|82 000645 aa 6 00124 2521 00 spri2 pr6|84 000646 aa 2 00002 3521 01 epp2 pr2|2,au 000647 aa 6 00126 2521 00 spri2 pr6|86 000650 aa 2 00000 2361 20 ldq pr2|0,* 000651 aa 000002 6040 04 tmi 2,ic 000653 000652 aa 777777 3760 07 anq 262143,dl 000653 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000654 aa 6 00242 7561 00 stq pr6|162 000655 aa 2 00002 2361 20 ldq pr2|2,* 000656 aa 000002 6040 04 tmi 2,ic 000660 000657 aa 777777 3760 07 anq 262143,dl 000660 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000661 aa 6 00243 7561 00 stq pr6|163 000662 aa 2 00004 2361 20 ldq pr2|4,* 000663 aa 000002 6040 04 tmi 2,ic 000665 000664 aa 777777 3760 07 anq 262143,dl 000665 aa 0 00250 3761 00 anq pr0|168 = 000077777777 000666 aa 6 00244 7561 00 stq pr6|164 STATEMENT 1 ON LINE 153 if p_received_version ^= p_expected_version then call sub_err_ (error_table_$unimplemented_version, myname, ACTION_CANT_RESTART, null, 0, "^/Expected version ^d of the ^a structure. Received version ^d instead.", p_expected_version, p_structure_name, p_received_version); 000667 aa 6 00124 3735 20 epp7 pr6|84,* 000670 aa 7 00002 3715 20 epp5 pr7|2,* 000671 aa 7 00004 3535 20 epp3 pr7|4,* 000672 aa 6 00242 2351 00 lda pr6|162 000673 aa 6 00243 2361 00 ldq pr6|163 000674 aa 040 140 106 540 cmpc (pr,rl),(pr,rl),fill(040) 000675 aa 5 00000 00 0005 desc9a pr5|0,al p_received_version 000676 aa 3 00000 00 0006 desc9a pr3|0,ql p_expected_version 000677 aa 000061 6000 04 tze 49,ic 000760 000700 aa 777134 3514 24 epp1 -420,ic* 000701 aa 6 00246 2515 00 spri1 pr6|166 000702 aa 6 00245 4501 00 stz pr6|165 000703 aa 000 100 100 404 mlr (ic),(pr),fill(000) 000704 aa 777167 00 0110 desc9a -393,72 000072 = 136057105170 000705 aa 6 00250 00 0110 desc9a pr6|168,72 000706 aa 6 00044 3701 20 epp4 pr6|36,* 000707 la 4 00014 3521 20 epp2 pr4|12,* error_table_$unimplemented_version 000710 aa 6 00274 2521 00 spri2 pr6|188 000711 aa 777073 3520 04 epp2 -453,ic 000004 = 144155165137 000712 aa 6 00276 2521 00 spri2 pr6|190 000713 aa 777067 3520 04 epp2 -457,ic 000002 = 400000000000 000714 aa 6 00300 2521 00 spri2 pr6|192 000715 aa 6 00246 3521 00 epp2 pr6|166 000716 aa 6 00302 2521 00 spri2 pr6|194 000717 aa 6 00245 3521 00 epp2 pr6|165 000720 aa 6 00304 2521 00 spri2 pr6|196 000721 aa 6 00250 3521 00 epp2 pr6|168 000722 aa 6 00306 2521 00 spri2 pr6|198 000723 aa 7 00004 3521 20 epp2 pr7|4,* p_expected_version 000724 aa 6 00310 2521 00 spri2 pr6|200 000725 aa 7 00006 3521 20 epp2 pr7|6,* p_structure_name 000726 aa 6 00312 2521 00 spri2 pr6|202 000727 aa 7 00002 3521 20 epp2 pr7|2,* p_received_version 000730 aa 6 00314 2521 00 spri2 pr6|204 000731 aa 777101 3520 04 epp2 -447,ic 000032 = 404000000043 000732 aa 6 00316 2521 00 spri2 pr6|206 000733 aa 777064 3520 04 epp2 -460,ic 000017 = 530000000040 000734 aa 6 00320 2521 00 spri2 pr6|208 000735 aa 777061 3520 04 epp2 -463,ic 000016 = 514000000044 000736 aa 6 00322 2521 00 spri2 pr6|210 000737 aa 777074 3520 04 epp2 -452,ic 000033 = 464000000000 000740 aa 6 00324 2521 00 spri2 pr6|212 000741 aa 777054 3520 04 epp2 -468,ic 000015 = 404000000005 000742 aa 6 00326 2521 00 spri2 pr6|214 000743 aa 777051 3520 04 epp2 -471,ic 000014 = 524000000107 000744 aa 6 00330 2521 00 spri2 pr6|216 000745 aa 6 00126 3535 20 epp3 pr6|86,* 000746 aa 3 00002 3521 20 epp2 pr3|2,* 000747 aa 6 00332 2521 00 spri2 pr6|218 000750 aa 3 00004 3521 20 epp2 pr3|4,* 000751 aa 6 00334 2521 00 spri2 pr6|220 000752 aa 3 00000 3521 20 epp2 pr3|0,* 000753 aa 6 00336 2521 00 spri2 pr6|222 000754 aa 6 00272 6211 00 eax1 pr6|186 000755 aa 044000 4310 07 fld 18432,dl 000756 la 4 00012 3521 20 epp2 pr4|10,* sub_err_ 000757 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 159 end CHECK_VERSION; 000760 aa 6 00122 6101 00 rtcd pr6|82 END PROCEDURE CHECK_VERSION END PROCEDURE dmu_display_string ----------------------------------------------------------- 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