COMPILATION LISTING OF SEGMENT apl_display_ws_info Compiled by: Experimental PL/I Compiler of Friday, July 31, 1981 at 13:16 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 08/08/81 1948.4 mst Sat 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 /* Modified 790329 by PG to print a few more items. */ 11 /* Modified 791013 by PG to print output_info items */ 12 13 apl_display_ws_info: 14 adwi: 15 procedure; 16 17 /* builtins */ 18 19 declare null builtin; 20 21 /* entries */ 22 23 declare ioa_ entry options (variable); 24 25 /* include files */ 26 1 1 /* ====== BEGIN INCLUDE SEGMENT apl_number_data.incl.pl1 ================================== */ 1 2 1 3 /* 1 4* This include file contains information about the machine representation of numbers. 1 5* In all programs numbers should simply be declared 'float'. 1 6* All default statements should be in this include file. 1 7* 1 8* This is the binary version. The manifest constant Binary should be used by programs 1 9* that need to know whether we are using binary or decimal. 1 10* */ 1 11 1 12 /* format: style3,initlm0,idind30 */ 1 13 1 14 default (float & ^decimal & ^binary & ^precision & ^constant) float binary (63); 1 15 1 16 declare ( 1 17 TheBiggestNumberWeveGot float initial (0.1701411834604692317e+39), 1 18 TheSmallestNumberWeveGot float initial (.1469367938527859385e-38), 1 19 Binary bit (1) aligned initial ("1"b) 1 20 ) internal static options (constant); 1 21 1 22 /* Number of characters in a number datum entry; used for copying float number arrays as strings. 1 23* (Obsolete! use array copies!) */ 1 24 1 25 declare NumberSize fixed binary precision (4) internal static initial (8); 1 26 1 27 /* ------ END INCLUDE SEGMENT apl_number_data.incl.pl1 ---------------------------------- */ 27 2 1 /* ====== BEGIN INCLUDE SEGMENT apl_ws_info.incl.pl1 ====================================== */ 2 2 2 3 /* This structure contains all of the global data (or pointers to it) for the APL subsystem */ 2 4 2 5 /* automatic */ 2 6 2 7 declare ws_info_ptr ptr initial (apl_static_$ws_info_ptr.static_ws_info_ptr); 2 8 2 9 /* external static */ 2 10 2 11 declare 1 apl_static_$ws_info_ptr external static aligned structure, 2 12 2 static_ws_info_ptr unaligned pointer; 2 13 2 14 /* based */ 2 15 2 16 declare 1 ws_info aligned based (ws_info_ptr), 2 17 2 version_number fixed bin, /* version of this structure (3) */ 2 18 2 switches unaligned, /* mainly ws parameters */ 2 19 3 long_error_mode bit, /* if 1, long Multics format, else APL/360 format */ 2 20 3 debug_mode bit, /* if 1, system error causes escape to command level */ 2 21 3 canonicalize_mode bit, /* if 1, the editor canonicalizes user input */ 2 22 3 restrict_exec_command bit, /* if 1, the )EXEC command may not be used */ 2 23 3 restrict_debug_command bit, /* if 1, the )DEBUG command may not be used */ 2 24 3 restrict_external_functions 2 25 bit, /* if 1, the )ZFN, )MFN, and )DFN commands may not be used */ 2 26 3 restrict_load bit, /* if 1, the )LOAD and )COPY commands may not be used */ 2 27 3 restrict_load_directory bit, /* if 1, no directory allowed in )LOAD or )COPY pathnames */ 2 28 3 restrict_save bit, /* if 1, the )SAVE command may not be used */ 2 29 3 restrict_save_directory bit, /* if 1, no directory allowed in )SAVE pathnames */ 2 30 3 off_hold bit, /* if 1, )OFF HOLD was typed, else just )OFF */ 2 31 3 transparent_to_signals bit, /* if 1, any conditions slip right past APL */ 2 32 3 meter_mode bit, /* if 1, metering may be done, else speed is all-important */ 2 33 3 restrict_msg_command bit, /* if 1, the )MSG command may not be used. */ 2 34 3 compatibility_check_mode 2 35 bit, /* if 1, check for incompatible operators */ 2 36 3 no_quit_handler bit, /* if 1, do not trap QUITs. */ 2 37 /* remaining 20 bits not presently used */ 2 38 2 39 2 values, /* attributes of the workspace */ 2 40 3 digits fixed bin, /* number of digits of precision printed on output */ 2 41 3 width fixed bin, /* line length for formatted output */ 2 42 3 index_origin fixed bin, /* the index origin (0 or 1) */ 2 43 3 random_link fixed bin(35), /* seed for random number generator */ 2 44 3 fuzz float, /* comparison tolerance (relative fuzz) */ 2 45 3 float_index_origin float, /* the index origin in floating point */ 2 46 3 number_of_symbols fixed bin, /* the number of symbol_beads currently in existence */ 2 47 3 maximum_value_stack_size 2 48 fixed bin (18), /* maximum number of words in one segment of value stack */ 2 49 2 50 2 pointers, /* pointers to various internal tables */ 2 51 3 symbol_table_ptr unaligned pointer, /* -> symbol_table (apl_symbol_table.incl.pl1) */ 2 52 3 current_parse_frame_ptr unaligned pointer, /* -> topmost parse frame */ 2 53 3 value_stack_ptr unaligned pointer, /* -> next free location on value stack */ 2 54 3 alloc_free_info_ptr unaligned pointer, /* -> apl_storage_mngr_ data (apl_storage_system_data.incl.pl1) */ 2 55 2 56 2 time_invoked fixed bin(71), /* clock time that APL was entered */ 2 57 2 integer_fuzz float, /* the absolute fuzz used in checking for integers */ 2 58 2 user_number fixed bin(35), /* number under which the user is signed on */ 2 59 2 latent_expression unaligned pointer, /* -> value_bead for QuadLX */ 2 60 2 lock char(32), /* the lock currently set on this workspace (password) */ 2 61 2 wsid char(100), /* the workspace identification: name, number name, or clear ws */ 2 62 2 last_error_code fixed bin(35), /* last code passed to apl_error_ */ 2 63 2 signoff_lock character (32), 2 64 2 65 2 interrupt_info aligned, /* bits used by apl_interpreter_ to tell when to abort */ 2 66 3 dont_interrupt_parse bit, /* if 1, don't do a dirty stop because the parser is running */ 2 67 3 dont_interrupt_operator bit, /* if 1, don't do a dirty stop because an operator is running */ 2 68 3 dont_interrupt_storage_manager /* if 1, don't stop because apl_storage_mngr_ is */ 2 69 bit, /* munging his tables */ 2 70 3 unused_interrupt_bit bit, /* not presently used */ 2 71 3 dont_interrupt_command bit, 2 72 3 can_be_interrupted bit, /* if 1, OK to do a clean stop (we are between lines, reading) */ 2 73 3 clean_interrupt_pending bit, /* interrupt occured, break cleanly (between lines) */ 2 74 3 dirty_interrupt_pending bit, /* interrupt occured, break as soon as not inhibited */ 2 75 2 76 2 user_name char (32), /* process group id of user */ 2 77 2 immediate_input_prompt char (32) varying, /* normal input */ 2 78 2 evaluated_input_prompt char (32) varying, /* quad input */ 2 79 2 character_input_prompt char (32) varying, /* quad-quote input */ 2 80 2 vcpu_time aligned, 2 81 3 total fixed bin (71), 2 82 3 setup fixed bin (71), 2 83 3 parse fixed bin (71), 2 84 3 lex fixed bin (71), 2 85 3 operator fixed bin (71), 2 86 3 storage_manager fixed bin (71), 2 87 2 output_info aligned, /* data pertaining to output buffer */ 2 88 3 output_buffer_ptr unal ptr, /* ptr to output buffer */ 2 89 3 output_buffer_len fixed bin (21), /* length (bytes) of output buffer */ 2 90 3 output_buffer_pos fixed bin (21), /* index of next byte to write in */ 2 91 3 output_buffer_ll fixed bin (21), /* print positions used up so far */ 2 92 2 tab_width fixed bin (21); /* number of columns a tabs moves cursor */ 2 93 2 94 declare output_buffer char (ws_info.output_buffer_len) based (ws_info.output_buffer_ptr); 2 95 2 96 /* internal static */ 2 97 2 98 declare max_parse_stack_depth fixed bin int static init(64536); 2 99 2 100 /* ------ END INCLUDE SEGMENT apl_ws_info.incl.pl1 -------------------------------------- */ 28 29 30 /* program */ 31 32 if ws_info_ptr = null 33 then do; 34 call ioa_ ("No active workspace."); 35 return; 36 end; 37 38 call ioa_ ("ws_info at ^p", ws_info_ptr); 39 40 call ioa_ ("version_number:^-^d", ws_info.version_number); 41 call print_switch ("long_error_mode", ws_info.long_error_mode); 42 call print_switch ("debug_mode", ws_info.debug_mode); 43 call print_switch ("canonicalize_mode", ws_info.canonicalize_mode); 44 call print_switch ("transparent_mode", ws_info.transparent_to_signals); 45 call print_switch ("meter_mode", ws_info.meter_mode); 46 call print_switch ("compatibility_mode", ws_info.compatibility_check_mode); 47 call print_switch ("no_quit_handler", ws_info.no_quit_handler); 48 49 call ioa_ ("digits:^2-^d", ws_info.digits); 50 call ioa_ ("width:^2-^d", ws_info.width); 51 call ioa_ ("index_origin:^-^d", index_origin); 52 call ioa_ ("random_link:^-^d", ws_info.random_link); 53 call ioa_ ("fuzz:^2-^e", ws_info.fuzz); 54 call ioa_ ("float_index_origin:^-^f", ws_info.float_index_origin); 55 call ioa_ ("number_of_symbols:^-^d", ws_info.number_of_symbols); 56 call ioa_ ("maximum_value_stack_size:^-^d", ws_info.maximum_value_stack_size); 57 58 call ioa_ ("symbol_table_ptr:^2-^p", ws_info.symbol_table_ptr); 59 call ioa_ ("current_parse_frame_ptr:^-^p", ws_info.current_parse_frame_ptr); 60 call ioa_ ("value_stack_ptr:^2-^p", ws_info.value_stack_ptr); 61 call ioa_ ("alloc_free_info_ptr:^-^p", ws_info.alloc_free_info_ptr); 62 63 call ioa_ ("integer_fuzz:^-^f", ws_info.integer_fuzz); 64 call ioa_ ("user_number:^-^d", ws_info.user_number); 65 call ioa_ ("latent_expression:^-^p", ws_info.latent_expression); 66 call ioa_ ("wsid:^2-^a", ws_info.wsid); 67 68 call ioa_ ("interrupt_info:^-^8b", string (ws_info.interrupt_info)); 69 70 call ioa_ ("output_buffer_ptr:^-^p", ws_info.output_info.output_buffer_ptr); 71 call ioa_ ("output_buffer_len:^-^d", ws_info.output_info.output_buffer_len); 72 call ioa_ ("output_buffer_pos:^-^d", ws_info.output_info.output_buffer_pos); 73 call ioa_ ("output_buffer_ll:^-^d", ws_info.output_info.output_buffer_ll); 74 call ioa_ ("tab_width:^-^d", ws_info.tab_width); 75 return; 76 77 print_switch: 78 procedure (bv_switch_name, bv_value); 79 80 /* parameters */ 81 82 declare ( 83 bv_switch_name char (*), 84 bv_value bit (1) unaligned 85 ) parameter; 86 87 /* program */ 88 89 call ioa_ ("^a:^-^[on^;off^]", bv_switch_name, bv_value); 90 return; 91 92 end print_switch; 93 94 end /* apl_display_ws_info */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/08/81 1558.8 apl_display_ws_info.pl1 >dumps>old_dumps>on>MIB-073181>apl_display_ws_info.pl1 27 1 08/08/81 1935.2 apl_number_data.incl.pl1 >dumps>old_dumps>on>MIB-073181>apl_number_data.incl.pl1 28 2 08/08/81 1935.4 apl_ws_info.incl.pl1 >dumps>old_dumps>on>MIB-073181>apl_ws_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. alloc_free_info_ptr 17 based pointer level 3 packed unaligned dcl 2-16 set ref 61* apl_static_$ws_info_ptr 000012 external static structure level 1 dcl 2-11 bv_switch_name parameter char unaligned dcl 82 set ref 77 89* bv_value parameter bit(1) unaligned dcl 82 set ref 77 89* canonicalize_mode 1(02) based bit(1) level 3 packed unaligned dcl 2-16 set ref 43* compatibility_check_mode 1(14) based bit(1) level 3 packed unaligned dcl 2-16 set ref 46* current_parse_frame_ptr 15 based pointer level 3 packed unaligned dcl 2-16 set ref 59* debug_mode 1(01) based bit(1) level 3 packed unaligned dcl 2-16 set ref 42* digits 2 based fixed bin(17,0) level 3 dcl 2-16 set ref 49* float_index_origin 10 based float bin(63) level 3 dcl 2-16 set ref 54* fuzz 6 based float bin(63) level 3 dcl 2-16 set ref 53* index_origin 4 based fixed bin(17,0) level 3 dcl 2-16 set ref 51* integer_fuzz 22 based float bin(63) level 2 dcl 2-16 set ref 63* interrupt_info 100 based structure level 2 dcl 2-16 ref 68 68 ioa_ 000010 constant entry external dcl 23 ref 34 38 40 49 50 51 52 53 54 55 56 58 59 60 61 63 64 65 66 68 70 71 72 73 74 89 latent_expression 25 based pointer level 2 packed unaligned dcl 2-16 set ref 65* long_error_mode 1 based bit(1) level 3 packed unaligned dcl 2-16 set ref 41* maximum_value_stack_size 13 based fixed bin(18,0) level 3 dcl 2-16 set ref 56* meter_mode 1(12) based bit(1) level 3 packed unaligned dcl 2-16 set ref 45* no_quit_handler 1(15) based bit(1) level 3 packed unaligned dcl 2-16 set ref 47* null builtin function dcl 19 ref 32 number_of_symbols 12 based fixed bin(17,0) level 3 dcl 2-16 set ref 55* output_buffer_len 171 based fixed bin(21,0) level 3 dcl 2-16 set ref 71* output_buffer_ll 173 based fixed bin(21,0) level 3 dcl 2-16 set ref 73* output_buffer_pos 172 based fixed bin(21,0) level 3 dcl 2-16 set ref 72* output_buffer_ptr 170 based pointer level 3 packed unaligned dcl 2-16 set ref 70* output_info 170 based structure level 2 dcl 2-16 pointers 14 based structure level 2 dcl 2-16 random_link 5 based fixed bin(35,0) level 3 dcl 2-16 set ref 52* static_ws_info_ptr 000012 external static pointer level 2 packed unaligned dcl 2-11 ref 2-7 switches 1 based structure level 2 packed unaligned dcl 2-16 symbol_table_ptr 14 based pointer level 3 packed unaligned dcl 2-16 set ref 58* tab_width 174 based fixed bin(21,0) level 2 dcl 2-16 set ref 74* transparent_to_signals 1(11) based bit(1) level 3 packed unaligned dcl 2-16 set ref 44* user_number 24 based fixed bin(35,0) level 2 dcl 2-16 set ref 64* value_stack_ptr 16 based pointer level 3 packed unaligned dcl 2-16 set ref 60* values 2 based structure level 2 dcl 2-16 version_number based fixed bin(17,0) level 2 dcl 2-16 set ref 40* width 3 based fixed bin(17,0) level 3 dcl 2-16 set ref 50* ws_info based structure level 1 dcl 2-16 ws_info_ptr 000100 automatic pointer initial dcl 2-7 set ref 32 38* 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 58 59 60 61 63 64 65 66 68 68 70 71 72 73 74 2-7* wsid 36 based char(100) level 2 dcl 2-16 set ref 66* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Binary internal static bit(1) initial dcl 1-16 NumberSize internal static fixed bin(4,0) initial dcl 1-25 TheBiggestNumberWeveGot internal static float bin(63) initial dcl 1-16 TheSmallestNumberWeveGot internal static float bin(63) initial dcl 1-16 max_parse_stack_depth internal static fixed bin(17,0) initial dcl 2-98 output_buffer based char unaligned dcl 2-94 NAMES DECLARED BY EXPLICIT CONTEXT. adwi 000305 constant entry external dcl 13 apl_display_ws_info 000315 constant entry external dcl 13 print_switch 001426 constant entry internal dcl 77 ref 41 42 43 44 45 46 47 NAME DECLARED BY CONTEXT OR IMPLICATION. string builtin function ref 68 68 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1540 1554 1467 1550 Length 2012 1467 14 222 51 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME adwi 128 external procedure is an external procedure. print_switch internal procedure shares stack frame of external procedure adwi. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME adwi 000100 ws_info_ptr adwi 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. ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. apl_static_$ws_info_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 7 000277 13 000304 32 000323 34 000327 35 000346 38 000347 40 000370 41 000410 42 000431 43 000455 44 000502 45 000525 46 000550 47 000572 49 000615 50 000640 51 000662 52 000706 53 000730 54 000753 55 000774 56 001015 58 001036 59 001057 60 001100 61 001121 63 001142 64 001163 65 001205 66 001226 68 001250 70 001277 71 001320 72 001341 73 001362 74 001403 75 001425 77 001426 89 001437 90 001466 ----------------------------------------------------------- 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