COMPILATION LISTING OF SEGMENT default Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 02/06/84 1124.5 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 dft: default: proc; 7 8 /* This active function is used to insert the arg1 default value into a command line 9* whenever the optional second argument is not supplied, or is zero length. */ 10 11 /* Usage: [default {}] */ 12 13 /* Concept by Mike Grady, this version by Bob May, 9/30/76 */ 14 /* Modified 10/07/83 Charlie Spitzer. let work as a command. */ 15 16 dcl code fixed bin (35), /* standard return code */ 17 entrypoint_name char (7) init ("default") int static options (constant); 18 19 dcl error_table_$wrong_no_of_args fixed bin (35) external; 20 dcl error_table_$not_act_fnc fixed bin(35) ext static; 21 22 dcl active_func bit (1) aligned; 23 dcl error entry variable entry options (variable); 24 25 dcl af_arg_count fixed bin, /* to process input args */ 26 af_arg_ptr ptr, 27 af_arg_cc fixed bin, 28 af_arg char (af_arg_cc) based (af_arg_ptr); 29 30 dcl af_return_arg_ptr ptr, /* to return result */ 31 af_return_arg_cc fixed bin, 32 af_return_arg char (af_return_arg_cc) varying based (af_return_arg_ptr); 33 34 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin, fixed bin (35)), 35 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)), 36 active_fnc_err_ entry options (variable), 37 com_err_ entry() options(variable), 38 ioa_ entry() options(variable); 39 40 call cu_$af_return_arg (af_arg_count, af_return_arg_ptr, af_return_arg_cc, code); 41 if code = 0 then active_func = "1"b; 42 else if code = error_table_$not_act_fnc 43 then active_func = "0"b; 44 else do; 45 call active_fnc_err_ (code, entrypoint_name, "Attempting to get calling sequence parameters."); 46 return; /* just in case we ever get back here */ 47 end; 48 49 if active_func 50 then error = active_fnc_err_; 51 else error = com_err_; 52 53 if af_arg_count = 0 | af_arg_count > 2 then do; 54 call error (error_table_$wrong_no_of_args, entrypoint_name, 55 "^/Usage: ^[[^]default {}^[]^]", active_func, active_func); 56 return; 57 end; 58 59 rerun: 60 call cu_$arg_ptr (af_arg_count, af_arg_ptr, af_arg_cc, code); 61 if code ^= 0 then do; 62 call error (code, entrypoint_name, "Getting argument ^d from command line.", af_arg_count); 63 return; 64 end; 65 66 if af_arg_count = 2 then if af_arg_cc = 0 /* If arg2 is zero length, then return arg1 */ 67 then do; /* If we use arg1 and it is zero length... */ 68 af_arg_count = 1; /* ... then return it anyway */ 69 go to rerun; 70 end; 71 72 if active_func 73 then af_return_arg = af_arg; 74 else call ioa_ ("^a", af_arg); 75 76 return; 77 78 end /* default */ ; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/06/84 1119.3 default.pl1 >spec>on>unbound>default.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. active_fnc_err_ 000020 constant entry external dcl 34 ref 45 49 active_func 000101 automatic bit(1) dcl 22 set ref 41* 42* 49 54* 54* 72 af_arg based char unaligned dcl 25 set ref 72 74* af_arg_cc 000112 automatic fixed bin(17,0) dcl 25 set ref 59* 66 72 74 74 af_arg_count 000106 automatic fixed bin(17,0) dcl 25 set ref 40* 53 53 59* 62* 66 68* af_arg_ptr 000110 automatic pointer dcl 25 set ref 59* 72 74 af_return_arg based varying char dcl 30 set ref 72* af_return_arg_cc 000116 automatic fixed bin(17,0) dcl 30 set ref 40* 72 af_return_arg_ptr 000114 automatic pointer dcl 30 set ref 40* 72 code 000100 automatic fixed bin(35,0) dcl 16 set ref 40* 41 42 45* 59* 61 62* com_err_ 000022 constant entry external dcl 34 ref 51 cu_$af_return_arg 000014 constant entry external dcl 34 ref 40 cu_$arg_ptr 000016 constant entry external dcl 34 ref 59 entrypoint_name 000000 constant char(7) initial unaligned dcl 16 set ref 45* 54* 62* error 000102 automatic entry variable dcl 23 set ref 49* 51* 54 62 error_table_$not_act_fnc 000012 external static fixed bin(35,0) dcl 20 ref 42 error_table_$wrong_no_of_args 000010 external static fixed bin(35,0) dcl 19 set ref 54* ioa_ 000024 constant entry external dcl 34 ref 74 NAMES DECLARED BY EXPLICIT CONTEXT. default 000057 constant entry external dcl 6 dft 000066 constant entry external dcl 6 rerun 000221 constant label dcl 59 ref 69 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 454 502 344 464 Length 652 344 26 134 110 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME default 141 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME default 000100 code default 000101 active_func default 000102 error default 000106 af_arg_count default 000110 af_arg_ptr default 000112 af_arg_cc default 000114 af_return_arg_ptr default 000116 af_return_arg_cc default THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_var_desc call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_return_arg cu_$arg_ptr ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$not_act_fnc error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000056 40 000073 41 000107 42 000114 45 000121 46 000144 49 000145 51 000156 53 000163 54 000167 56 000220 59 000221 61 000236 62 000240 63 000267 66 000270 68 000275 69 000277 72 000300 74 000316 76 000340 ----------------------------------------------------------- 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