COMPILATION LISTING OF SEGMENT apl_grp_command_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 11/29/83 1607.6 mst Tue Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 apl_grp_command_: 11 procedure (group_name); 12 13 /* 14* * command to list the members of a group 15* * written 73.9.06 by DAM 16* */ 17 18 dcl group_name char(*) parameter; 19 20 21 22 call apl_create_save_frame_; /* use global meanings */ 23 call apl_get_symbol_(before(group_name, " "), sbp, (0)); 24 if sbp -> symbol_bead.meaning_pointer = null then go to no_good; 25 if ^ sbp -> symbol_bead.meaning_pointer -> general_bead.type.group then go to no_good; 26 27 do n = 1 by 1 while(n <= sbp -> symbol_bead.meaning_pointer -> group_bead.number_of_members); 28 call apl_print_string_(sbp -> symbol_bead.meaning_pointer -> group_bead.member(n) -> 29 symbol_bead.name); 30 end; 31 32 call apl_print_newline_; 33 call apl_flush_buffer_; 34 wash_ret: 35 sbp -> symbol_bead.reference_count = sbp -> symbol_bead.reference_count - 1; 36 if sbp -> symbol_bead.reference_count <= 0 then call apl_free_bead_(sbp); 37 call apl_destroy_save_frame_; 38 return; 39 40 no_good: call ioa_$ioa_stream ("apl_output_", "^Rincorrect command^B"); 41 go to wash_ret; 42 43 44 45 dcl sbp unaligned pointer, 46 n fixed bin; 47 48 dcl apl_get_symbol_ entry(char(*), unaligned pointer, fixed bin), 49 apl_print_string_ entry (char (*)), 50 apl_print_newline_ entry, 51 apl_flush_buffer_ entry, 52 apl_create_save_frame_ entry, 53 apl_destroy_save_frame_ entry, 54 apl_free_bead_ entry (unaligned pointer); 55 56 dcl ioa_$ioa_stream entry options(variable); 57 58 dcl (null, before) builtin; 59 1 1 /* ====== BEGIN INCLUDE SEGMENT apl_bead_format.incl.pl1 ================================== */ 1 2 1 3 declare 1 general_bead aligned based, /* The Venerable Bead */ 1 4 2 type unaligned, 1 5 3 bead_type unaligned, 1 6 4 operator bit (1), /* ON if operator bead */ 1 7 4 symbol bit (1), /* ON if symbol bead */ 1 8 4 value bit (1), /* ON if value bead */ 1 9 4 function bit (1), /* ON if function bead */ 1 10 4 group bit (1), /* ON if group bead */ 1 11 4 label bit (1), /* ON if label bead */ 1 12 4 shared_variable bit (1), /* ON if shared variable bead */ 1 13 4 lexed_function bit (1), /* ON if lexed function bead */ 1 14 3 data_type unaligned, 1 15 4 list_value bit (1), /* ON if a list value bead */ 1 16 4 character_value bit (1), /* ON if a character value bead */ 1 17 4 numeric_value bit (1), /* ON if a numeric value bead */ 1 18 4 integral_value bit (1), /* ON if an integral value bead */ 1 19 4 zero_or_one_value bit (1), /* ON if a boolean value bead */ 1 20 4 complex_value bit (1), /* ON if a complex, numeric value bead */ 1 21 3 unused_bits bit (4) unaligned, /* pad to 18 bits (for future use) */ 1 22 2 size bit (18) unaligned, /* Number of words this bead occupies 1 23* (used by bead storage manager) */ 1 24 2 reference_count fixed binary (29); /* Number of pointers which point 1 25* to this bead (used by bead manager) */ 1 26 1 27 1 28 /* constant strings for initing type field in various beads */ 1 29 1 30 declare ( 1 31 operator_type init("100000000000000000"b), 1 32 symbol_type init("010000000000000000"b), 1 33 value_type init("001000000000000000"b), 1 34 function_type init("000100000000000000"b), 1 35 group_type init("000010000000000000"b), 1 36 label_type init("001001000011000000"b), 1 37 shared_variable_type init("001000100000000000"b), 1 38 lexed_function_type init("000000010000000000"b), 1 39 1 40 list_value_type init("000000001000000000"b), 1 41 character_value_type init("001000000100000000"b), 1 42 numeric_value_type init("001000000010000000"b), 1 43 integral_value_type init("001000000011000000"b), 1 44 zero_or_one_value_type init("001000000011100000"b), 1 45 complex_value_type init("001000000000010000"b), 1 46 1 47 not_integer_mask init("111111111110011111"b), /* to clear integral, zero_or_one bits */ 1 48 not_zero_or_one_mask init("111111111111011111"b) /* to clear zero_or_one bit */ 1 49 ) bit(18) internal static; 1 50 1 51 /* ------ END INCLUDE SEGMENT apl_bead_format.incl.pl1 ---------------------------------- */ 60 2 1 /* ====== BEGIN INCLUDE SEGMENT apl_symbol_bead.incl.pl1 ================================== */ 2 2 2 3 /* Explanation of fields: 2 4* symbol_bead.hash_link_pointer points to next symbol in same hash bucket in the symbol table. 2 5* symbol_bead.meaning_pointer points to current "value" of this name: 2 6* = null => unused (e.g. undefined variable) 2 7* -> group bead => group name 2 8* -> value bead => variable with a value 2 9* -> function bead => function name 2 10* -> label bead => localized label value 2 11* -> shared var bead => shared variable */ 2 12 2 13 declare 1 symbol_bead aligned based, 2 14 2 header aligned like general_bead, 2 15 2 hash_link_pointer pointer unaligned, 2 16 2 meaning_pointer pointer unaligned, 2 17 2 name_length fixed binary, 2 18 2 name character (0 refer (symbol_bead.name_length)) unaligned; 2 19 2 20 /* ------ END INCLUDE SEGMENT apl_symbol_bead.incl.pl1 ---------------------------------- */ 61 3 1 /* BEGIN INCLUDE FILE: apl_group_bead.incl.pl1 */ 3 2 3 3 /* Initial Version: 1973.06.18 3 4* Typed in by: Richard S. Lamson */ 3 5 3 6 3 7 declare 1 group_bead aligned based, /* Group: bead_type.group = "1"b */ 3 8 3 9 2 header aligned like general_bead, 3 10 3 11 2 number_of_members fixed binary, 3 12 3 13 2 member pointer unaligned dimension (0 refer (group_bead.number_of_members)); 3 14 /* Pointer to the symbol bead for each 3 15* member of the group */ 3 16 3 17 /* END INCLUDE FILE apl_group_bead.incl.pl1 */ 62 63 64 65 66 67 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/29/83 1346.4 apl_grp_command_.pl1 >special_ldd>on>apl.1129>apl_grp_command_.pl1 60 1 03/27/82 0438.5 apl_bead_format.incl.pl1 >ldd>include>apl_bead_format.incl.pl1 61 2 03/27/82 0439.2 apl_symbol_bead.incl.pl1 >ldd>include>apl_symbol_bead.incl.pl1 62 3 03/27/82 0438.7 apl_group_bead.incl.pl1 >ldd>include>apl_group_bead.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. apl_create_save_frame_ 000020 constant entry external dcl 48 ref 22 apl_destroy_save_frame_ 000022 constant entry external dcl 48 ref 37 apl_flush_buffer_ 000016 constant entry external dcl 48 ref 33 apl_free_bead_ 000024 constant entry external dcl 48 ref 36 apl_get_symbol_ 000010 constant entry external dcl 48 ref 23 apl_print_newline_ 000014 constant entry external dcl 48 ref 32 apl_print_string_ 000012 constant entry external dcl 48 ref 28 bead_type based structure level 3 packed unaligned dcl 1-3 before builtin function dcl 58 ref 23 23 general_bead based structure level 1 dcl 1-3 group 0(04) based bit(1) level 4 packed unaligned dcl 1-3 ref 25 group_bead based structure level 1 dcl 3-7 group_name parameter char unaligned dcl 18 ref 10 23 23 header based structure level 2 dcl 2-13 ioa_$ioa_stream 000026 constant entry external dcl 56 ref 40 meaning_pointer 3 based pointer level 2 packed unaligned dcl 2-13 ref 24 25 27 28 member 3 based pointer array level 2 packed unaligned dcl 3-7 ref 28 n 000101 automatic fixed bin(17,0) dcl 45 set ref 27* 27* 28* name 5 based char level 2 packed unaligned dcl 2-13 set ref 28* name_length 4 based fixed bin(17,0) level 2 dcl 2-13 ref 28 28 null builtin function dcl 58 ref 24 number_of_members 2 based fixed bin(17,0) level 2 dcl 3-7 ref 27 reference_count 1 based fixed bin(29,0) level 3 dcl 2-13 set ref 34* 34 36 sbp 000100 automatic pointer unaligned dcl 45 set ref 23* 24 25 27 28 34 34 36 36* symbol_bead based structure level 1 dcl 2-13 type based structure level 2 packed unaligned dcl 1-3 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. character_value_type internal static bit(18) initial unaligned dcl 1-30 complex_value_type internal static bit(18) initial unaligned dcl 1-30 function_type internal static bit(18) initial unaligned dcl 1-30 group_type internal static bit(18) initial unaligned dcl 1-30 integral_value_type internal static bit(18) initial unaligned dcl 1-30 label_type internal static bit(18) initial unaligned dcl 1-30 lexed_function_type internal static bit(18) initial unaligned dcl 1-30 list_value_type internal static bit(18) initial unaligned dcl 1-30 not_integer_mask internal static bit(18) initial unaligned dcl 1-30 not_zero_or_one_mask internal static bit(18) initial unaligned dcl 1-30 numeric_value_type internal static bit(18) initial unaligned dcl 1-30 operator_type internal static bit(18) initial unaligned dcl 1-30 shared_variable_type internal static bit(18) initial unaligned dcl 1-30 symbol_type internal static bit(18) initial unaligned dcl 1-30 value_type internal static bit(18) initial unaligned dcl 1-30 zero_or_one_value_type internal static bit(18) initial unaligned dcl 1-30 NAMES DECLARED BY EXPLICIT CONTEXT. apl_grp_command_ 000026 constant entry external dcl 10 no_good 000203 constant label dcl 40 ref 24 25 wash_ret 000161 constant label dcl 34 ref 41 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 360 410 231 370 Length 642 231 30 216 126 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME apl_grp_command_ 102 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME apl_grp_command_ 000100 sbp apl_grp_command_ 000101 n apl_grp_command_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. apl_create_save_frame_ apl_destroy_save_frame_ apl_flush_buffer_ apl_free_bead_ apl_get_symbol_ apl_print_newline_ apl_print_string_ ioa_$ioa_stream NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000023 22 000041 23 000045 24 000106 25 000114 27 000120 28 000130 30 000145 32 000147 33 000154 34 000161 36 000164 37 000175 38 000202 40 000203 41 000227 ----------------------------------------------------------- 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