COMPILATION LISTING OF SEGMENT exponent_control_ Compiled by: Multics PL/I Compiler, Release 33d, of April 24, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 92-09-24_2234.76_Thu_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1991 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 15 16 17 /****^ HISTORY COMMENTS: 18* 1) change(91-10-25,Schroth), approve(91-11-28,MECR0015), 19* audit(91-11-25,WAAnderson), install(91-11-28,MR12.5-1001): 20* Correct MR12.4 source code corruption. 21* 2) change(92-05-14,Schroth), approve(91-11-25,MCR8251), 22* audit(92-09-22,WAAnderson), install(92-09-24,MR12.5-1016): 23* Replace MECR0015: Correct MR12.4 source code corruption. 24* END HISTORY COMMENTS */ 25 26 27 28 /* exponent_control_ 29* 30* subroutine interface to exponent control flags 31* 32**/ 33 34 exponent_control_: 35 proc; 36 37 return; 38 39 /* Date Changed (and reason) */ 40 /* Coded February 28 1980 Benson I. Margulies */ 41 42 dcl hcs_$get_exponent_control entry (bit (1) aligned, bit (1) aligned, bit (72) aligned); 43 dcl hcs_$set_exponent_control entry (bit (1) aligned, bit (1) aligned, bit (72) aligned, fixed bin (35)); 44 45 dcl (restart_underflow, restart_overflow) bit (1) aligned; 46 dcl overflow_value float bin (63); 47 dcl (a_code, code) fixed bin (35); 48 49 dcl bool_mask bit (3) aligned; 50 dcl bool_op bit (4) aligned; 51 1 1 1 2 /* BEGIN INCLUDE FILE ... exponent_control_info.incl.pl1 */ 1 3 1 4 /* Created by Benson I. Margulies 2-80 */ 1 5 1 6 declare Default_exponent_control_overflow_value float bin (63) aligned 1 7 internal static options (constant) init 1 8 (0.111111111111111111111111111111111111111111111111111111111111111e+127b); 1 9 1 10 declare Default_hex_exponent_control_overflow_value float bin (63) aligned 1 11 internal static options (constant) init 1 12 (0.111111111111111111111111111111111111111111111111111111111111111e+127b); 1 13 1 14 /* END INCLUDE FILE ... exponent_control_info.incl.pl1 */ 1 15 52 53 54 /* */ 55 fault_underflow: 56 entry (a_code); 57 58 bool_mask = "010"b; /* ^underflow, overflow, ^value */ 59 goto FAULT_COMMON; 60 61 fault_overflow: 62 entry (a_code); 63 64 bool_mask = "100"b; /* underflow, ^overflow, ^value */ 65 66 FAULT_COMMON: 67 bool_op = "1"b4; /* and */ 68 goto COMMON; 69 70 restart_underflow: 71 entry (a_code); 72 73 bool_mask = "100"b; /* underflow, ^overflow, ^value */ 74 goto RESTART_COMMON; 75 76 restart_overflow: 77 entry (a_code); 78 79 bool_mask = "010"b; /* ^underflow, overflow, ^value */ 80 goto RESTART_COMMON; 81 82 restart_overflow_value: 83 entry (New_value, a_code); 84 85 dcl New_value float bin (63) parameter; 86 87 bool_mask = "011"b; /* ^underflow, overflow, value */ 88 89 RESTART_COMMON: 90 bool_op = "7"b4; /* or */ 91 92 COMMON: call GET_CURRENT_VALUES; 93 94 restart_underflow = bool (restart_underflow, substr (bool_mask, 1, 1), bool_op); 95 restart_overflow = bool (restart_overflow, substr (bool_mask, 2, 1), bool_op); 96 97 if bool_op = "7"b4 then /* setting restart flags */ 98 if substr (bool_mask, 2, 1) then /* overflow flag */ 99 if substr (bool_mask, 3, 1) then /* value flag */ 100 overflow_value = New_value; 101 else overflow_value = Default_exponent_control_overflow_value; 102 103 call PUT_CURRENT_VALUES; 104 a_code = 0; 105 return; 106 107 /* */ 108 GET_CURRENT_VALUES: 109 procedure; 110 111 dcl overflow_bits bit (72) aligned; 112 113 call hcs_$get_exponent_control (restart_underflow, restart_overflow, overflow_bits); 114 unspec (overflow_value) = overflow_bits; 115 return; 116 117 PUT_CURRENT_VALUES: 118 entry; 119 120 overflow_bits = unspec (overflow_value); 121 call hcs_$set_exponent_control (restart_underflow, restart_overflow, overflow_bits, code); 122 if code ^= 0 then do; 123 a_code = code; 124 goto exit; 125 end; 126 return; 127 end; 128 129 exit: return; 130 131 end; 132 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/24/92 2234.7 exponent_control_.pl1 >spec>inst>1016>exponent_control_.pl1 52 1 12/15/83 1200.4 exponent_control_info.incl.pl1 >ldd>incl>exponent_control_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. Default_exponent_control_overflow_value 000000 constant float bin(63) initial dcl 1-6 ref 101 New_value parameter float bin(63) dcl 85 ref 82 97 a_code parameter fixed bin(35,0) dcl 47 set ref 55 61 70 76 82 104* 123* bool_mask 000105 automatic bit(3) dcl 49 set ref 58* 64* 73* 79* 87* 94 95 97 97 bool_op 000106 automatic bit(4) dcl 50 set ref 66* 89* 94 95 97 code 000104 automatic fixed bin(35,0) dcl 47 set ref 121* 122 123 hcs_$get_exponent_control 000010 constant entry external dcl 42 ref 113 hcs_$set_exponent_control 000012 constant entry external dcl 43 ref 121 overflow_bits 000120 automatic bit(72) dcl 111 set ref 113* 114 120* 121* overflow_value 000102 automatic float bin(63) dcl 46 set ref 97* 101* 114* 120 restart_overflow 000101 automatic bit(1) dcl 45 set ref 95* 95 113* 121* restart_underflow 000100 automatic bit(1) dcl 45 set ref 94* 94 113* 121* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Default_hex_exponent_control_overflow_value internal static float bin(63) initial dcl 1-10 NAMES DECLARED BY EXPLICIT CONTEXT. COMMON 000122 constant label dcl 92 ref 68 FAULT_COMMON 000045 constant label dcl 66 ref 59 GET_CURRENT_VALUES 000175 constant entry internal dcl 108 ref 92 PUT_CURRENT_VALUES 000214 constant entry internal dcl 117 ref 103 RESTART_COMMON 000120 constant label dcl 89 ref 74 80 exit 000174 constant label dcl 129 ref 124 exponent_control_ 000005 constant entry external dcl 34 fault_overflow 000033 constant entry external dcl 61 fault_underflow 000016 constant entry external dcl 55 restart_overflow 000067 constant entry external dcl 76 restart_overflow_value 000106 constant entry external dcl 82 restart_underflow 000052 constant entry external dcl 70 NAMES DECLARED BY CONTEXT OR IMPLICATION. bool builtin function ref 94 95 substr builtin function ref 94 95 97 97 unspec builtin function ref 114 120 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 362 376 241 372 Length 572 241 14 160 121 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME exponent_control_ 102 external procedure is an external procedure. GET_CURRENT_VALUES internal procedure shares stack frame of external procedure exponent_control_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME exponent_control_ 000100 restart_underflow exponent_control_ 000101 restart_overflow exponent_control_ 000102 overflow_value exponent_control_ 000104 code exponent_control_ 000105 bool_mask exponent_control_ 000106 bool_op exponent_control_ 000120 overflow_bits GET_CURRENT_VALUES THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hcs_$get_exponent_control hcs_$set_exponent_control NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 34 000004 37 000012 55 000013 58 000026 59 000030 61 000031 64 000043 66 000045 68 000047 70 000050 73 000062 74 000064 76 000065 79 000077 80 000101 82 000102 87 000116 89 000120 92 000122 94 000123 95 000137 97 000152 101 000167 103 000171 104 000172 105 000173 129 000174 108 000175 113 000176 114 000211 115 000213 117 000214 120 000215 121 000217 122 000234 123 000236 124 000237 126 000240 ----------------------------------------------------------- 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