COMPILATION LISTING OF SEGMENT rdm_fwd_debug_requests_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 10/27/83 1237.4 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* format: off */ 8 9 /* Debugging requests for the read_mail forwarding sub-request-loop */ 10 11 /* Created: October 1983 by B. Margolin (from sdm_debug_requests_) */ 12 13 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 14 15 16 rdm_fwd_debug_requests_: 17 procedure (P_sci_ptr, P_rdm_forward_invocation_ptr); 18 19 put file (rdm_fwd_debug_) data; /* forces a full symbol table ... */ 20 21 return; /* ... but not really an entrypoint */ 22 23 24 dcl P_sci_ptr pointer parameter; 25 dcl P_rdm_forward_invocation_ptr pointer parameter; 26 27 dcl sci_ptr pointer; 28 29 dcl argument character (argument_lth) unaligned based (argument_ptr); 30 dcl argument_ptr pointer; 31 dcl argument_lth fixed binary (21); 32 dcl (n_arguments, argument_idx) fixed binary; 33 34 dcl new_debug_mode bit (1) aligned; 35 dcl code fixed binary (35); 36 37 dcl rdm_fwd_debug_ file stream internal; 38 dcl buffer char (rdm_forward_invocation.buffer_used) based (rdm_forward_invocation.buffer_ptr); 39 40 dcl error_table_$bad_arg fixed binary (35) external; 41 dcl error_table_$badopt fixed binary (35) external; 42 43 dcl ssu_$abort_line entry () options (variable); 44 dcl ssu_$arg_count entry (pointer, fixed binary); 45 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 46 dcl ssu_$set_debug_mode entry (pointer, bit (1) aligned); 47 dcl probe entry () options (variable); 48 49 dcl index builtin; 50 51 /* The "debug_mode" request: enables/disables send_mail debugging facilities */ 52 53 debug_mode: 54 entry (P_sci_ptr, P_rdm_forward_invocation_ptr); 55 56 sci_ptr = P_sci_ptr; 57 rdm_forward_invocation_ptr = P_rdm_forward_invocation_ptr; 58 59 new_debug_mode = "1"b; /* defaults to turn on debug_mode */ 60 61 call ssu_$arg_count (sci_ptr, n_arguments); 62 63 do argument_idx = 1 to n_arguments; 64 call ssu_$arg_ptr (sci_ptr, argument_idx, argument_ptr, argument_lth); 65 if index (argument, "-") = 1 then /* a control argument */ 66 if argument = "-on" then new_debug_mode = "1"b; 67 else if argument = "-off" then new_debug_mode = "0"b; 68 else call ssu_$abort_line (sci_ptr, error_table_$badopt, """^a""", argument); 69 else call ssu_$abort_line (sci_ptr, error_table_$bad_arg, 70 "This request only accepts control arguments. ""^a""", argument); 71 end; 72 73 rdm_forward_invocation.debug_mode = new_debug_mode; 74 75 call ssu_$set_debug_mode (sci_ptr, (rdm_forward_invocation.debug_mode)); 76 /* keep ssu_ in step */ 77 78 return; 79 80 /* The "probe" request: invokes the probe symbolic debugger in a stack frame with all relavent data structure available */ 81 82 probe: 83 entry (P_sci_ptr, P_rdm_forward_invocation_ptr); 84 85 sci_ptr = P_sci_ptr; 86 rdm_forward_invocation_ptr = P_rdm_forward_invocation_ptr; 87 88 call ssu_$arg_count (sci_ptr, n_arguments); 89 if n_arguments ^= 0 then call ssu_$abort_line (sci_ptr, 0, "No arguments may be supplied."); 90 91 call probe (); 92 93 return; 94 95 /* Several include files just so that you can examine things */ 96 97 1 1 /* START OF: rdm_forward_invocation.incl.pl1 * * * * * * * * * * * * * * * * */ 1 2 1 3 /* Structure used internally by the read_mail forward sub-request-loop */ 1 4 1 5 /* Written: 07 Oct 1983 by B. Margolin */ 1 6 1 7 dcl 1 rdm_forward_invocation aligned based (rdm_forward_invocation_ptr), 1 8 2 type char (8), 1 9 2 sci_ptr ptr, 1 10 2 rfso_ptr ptr, /* -> rdm_forward_subsystem_options */ 1 11 2 rdm_invocation_ptr ptr, /* for the read_mail that created this forwarding invocation */ 1 12 2 area_ptr ptr, 1 13 2 text_buffer, 1 14 3 buffer_ptr ptr, 1 15 3 buffer_used fixed bin (21), 1 16 2 flags, 1 17 3 debug_mode bit (1) unaligned, 1 18 3 fill bit (1) unaligned, 1 19 3 enter_request_loop bit (1) unaligned, 1 20 3 auto_write bit (1) unaligned, 1 21 3 pad bit (31) unaligned, 1 22 2 fill_width fixed bin, 1 23 2 temp_seg_ptr ptr, 1 24 2 abort_code fixed bin (35); 1 25 1 26 dcl rdm_forward_invocation_ptr ptr; 1 27 dcl RDM_FORWARD_INVOCATION char (8) int static options (constant) init ("rdmfwdin"); 1 28 1 29 /* END OF: rdm_forward_invocation.incl.pl1 * * * * * * * * * * * * * * * * */ 98 99 2 1 /* START OF: rdm_fwd_subsystem_opts.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* Option structure for the read_mail forwarding subsystem. */ 2 4 2 5 /* Written: 10/3/83 by B. Margolin */ 2 6 2 7 dcl 1 rdm_forward_subsystem_options aligned based (rdm_forward_subsystem_options_ptr), 2 8 2 version char (8), 2 9 2 input_type char (4), /* terminal/file */ 2 10 2 input_file, 2 11 3 input_file_ptr ptr, 2 12 3 input_file_lth fixed bin (21), 2 13 2 request_loop_control, 2 14 3 initial_requests_ptr ptr, 2 15 3 initial_requests_lth fixed bin (21), 2 16 3 enter_request_loop bit (2) aligned, /* default/-rql/-nrql */ 2 17 2 fill_control, 2 18 3 fill_width fixed bin, /* default 62 (caller should set) */ 2 19 3 enable_filling bit (2) aligned, /* default/-fill/-no_fill */ 2 20 2 prompt_control, 2 21 3 prompt_string char (64) var, 2 22 3 enable_prompt bit (2) aligned, /* default/-prompt prompt_string/-no_prompt */ 2 23 2 abbrev_control, 2 24 3 default_profile_ptr ptr, 2 25 3 profile_ptr ptr, 2 26 3 enable_abbrev bit (1) aligned, 2 27 2 flags, 2 28 3 auto_write bit (1) unaligned, 2 29 3 pad bit (35) unaligned; 2 30 2 31 dcl rdm_forward_subsystem_options_ptr ptr; 2 32 dcl RDM_FORWARD_SUBSYSTEM_OPTIONS_VERSION_1 2 33 char (8) int static options (constant) init ("rfso_001"); 2 34 2 35 dcl (DEFAULT_PROMPT init ("00"b), 2 36 USE_PROMPT_STRING init ("01"b), 2 37 NO_PROMPT init ("10"b), 2 38 2 39 DEFAULT_FILL init ("00"b), 2 40 FILL init ("01"b), 2 41 NO_FILL init ("10"b), 2 42 2 43 DEFAULT_REQUEST_LOOP init ("00"b), 2 44 REQUEST_LOOP init ("01"b), 2 45 NO_REQUEST_LOOP init ("10"b)) 2 46 bit (2) aligned int static options (constant); 2 47 2 48 dcl (TERMINAL_INPUT init ("term"), 2 49 FILE_INPUT init ("file")) 2 50 char (4) int static options (constant); 2 51 2 52 /* END OF: rdm_fwd_subsystem_opts.incl.pl1 * * * * * * * * * * * * * * * * */ 100 101 3 1 /* BEGIN INCLUDE FILE ... rdm_invocation.incl.pl1 */ 3 2 /* Created: September 1983 by G. Palter from portions of emf_info.incl.pl1 */ 3 3 3 4 /* Definition of a single invocation of read_mail */ 3 5 3 6 dcl 1 rdm_invocation aligned based (rdm_invocation_ptr), 3 7 2 type character (8), /* defines this structure as a read_mail invocation */ 3 8 2 sci_ptr pointer, /* -> subsystem utilities invocation data */ 3 9 2 area_ptr pointer, /* -> area to be used by the subsystem */ 3 10 3 11 2 mailbox_info, 3 12 3 mailbox_ptr pointer, /* -> mailbox structure being examined by this invocation */ 3 13 3 message_list_ptr pointer, /* -> list of read_mail specific information retained for each 3 14* message (eg: the "processed" flag) */ 3 15 3 message_chains, /*the various message chains ... */ 3 16 4 all pointer, /* ... all unexpunged messages */ 3 17 4 undeleted pointer, /* ... all undeleted messages */ 3 18 4 deleted pointer, /* ... all deleted messages */ 3 19 4 marked pointer, /* ... messages to be processed by the current request */ 3 20 4 marked_as_original pointer, /* ... messages being processed by a reply/forward request */ 3 21 3 mailbox_name character (168) varying, /* name of the mailbox (your mailbox/logbox/pathname) */ 3 22 3 23 2 current_message fixed binary, /* index of the current message; 0 => no current message */ 3 24 3 25 2 last_search_buffer, /* describes the buffer where read_mail constructs the ... */ 3 26 3 buffer_ptr pointer, /* ... the printed representation of messages in order ... */ 3 27 3 buffer_used fixed binary (21), /* ... to speed up regular expression searching */ 3 28 3 29 2 global_options, /* command line options affecting all of read_mail ... */ 3 30 3 flags, 3 31 4 acknowledge bit (1) unaligned, /* ... ON => acknowledge messages after printing */ 3 32 4 brief bit (1) unaligned, /* ... ON => shorten some messages and omit others */ 3 33 4 debug_mode bit (1) unaligned, /* ... ON => enable debugging features */ 3 34 4 pad bit (33) unaligned, 3 35 3 36 2 print_options, /* command line options affecting the print request ... */ 3 37 3 formatting_mode fixed binary, /* ... output mode for the message header, etc. */ 3 38 3 39 2 reply_options, /* command line options affecting the reply request ... */ 3 40 3 line_length fixed binary, /* ... line length to be used by send_mail for filling */ 3 41 3 indentation fixed binary, /* ... amount to indent original text when included */ 3 42 3 flags, 3 43 4 include_original bit (1) unaligned, /* ... ON => include original message text in the reply */ 3 44 4 include_authors bit (1) unaligned, /* ... ON => include original authors as recipients */ 3 45 4 include_recipients bit (1) unaligned, /* ... ON => include original recipients as recipients */ 3 46 4 include_self bit (2) unaligned, /* ... ON => include this user as a recipient of the reply if 3 47* selected by include_authors/include_recipients */ 3 48 4 fill_control bit (2) unaligned, /* ... controls message filling by send_mail */ 3 49 4 pad bit (29) unaligned; 3 50 3 51 dcl RDM_INVOCATION character (8) static options (constant) initial ("rdm_0009"); 3 52 3 53 dcl rdm_invocation_ptr pointer; 3 54 3 55 dcl rdm_area area based (rdm_invocation.area_ptr); 3 56 3 57 3 58 /* Defined settings for reply_options.include_self */ 3 59 3 60 dcl (DEFAULT_INCLUDE_SELF initial ("00"b), /* neither -include_self nor -no_include_self given */ 3 61 NO_INCLUDE_SELF initial ("01"b), /* -no_include_self explicitly given */ 3 62 INCLUDE_SELF initial ("10"b)) /* -include_self explicitly given */ 3 63 bit (2) aligned static options (constant); 3 64 3 65 /* END INCLUDE FILE ... rdm_invocation.incl.pl1 */ 102 103 104 end rdm_fwd_debug_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/83 1104.0 rdm_fwd_debug_requests_.pl1 >spec>on>10/27/83-mail>rdm_fwd_debug_requests_.pl1 98 1 10/27/83 1050.8 rdm_fwd_invocation.incl.pl1 >spec>on>10/27/83-mail>rdm_fwd_invocation.incl.pl1 100 2 10/27/83 1050.8 rdm_fwd_subsystem_opts.incl.pl1 >spec>on>10/27/83-mail>rdm_fwd_subsystem_opts.incl.pl1 102 3 10/27/83 1050.3 rdm_invocation.incl.pl1 >spec>on>10/27/83-mail>rdm_invocation.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. P_rdm_forward_invocation_ptr parameter pointer dcl 25 ref 16 53 57 82 86 P_sci_ptr parameter pointer dcl 24 ref 16 53 56 82 85 area_ptr 4 based pointer level 2 dcl 3-6 ref 3-55 argument based char unaligned dcl 29 set ref 65 65 67 68* 69* argument_idx 000106 automatic fixed bin(17,0) dcl 32 set ref 63* 64* argument_lth 000104 automatic fixed bin(21,0) dcl 31 set ref 29 64* 65 65 67 68 68 69 69 argument_ptr 000102 automatic pointer dcl 30 set ref 29 64* 65 65 67 68 69 buffer_ptr 12 based pointer level 3 dcl 1-7 ref 38 buffer_used 14 based fixed bin(21,0) level 3 dcl 1-7 ref 38 debug_mode 15 based bit(1) level 3 packed unaligned dcl 1-7 set ref 73* 75 error_table_$bad_arg 000462 external static fixed bin(35,0) dcl 40 set ref 69* error_table_$badopt 000464 external static fixed bin(35,0) dcl 41 set ref 68* flags 15 based structure level 2 dcl 1-7 index builtin function dcl 49 ref 65 n_arguments 000105 automatic fixed bin(17,0) dcl 32 set ref 61* 63 88* 89 new_debug_mode 000107 automatic bit(1) dcl 34 set ref 59* 65* 67* 73 probe 000476 constant entry external dcl 47 ref 91 rdm_forward_invocation based structure level 1 dcl 1-7 rdm_forward_invocation_ptr 000112 automatic pointer dcl 1-26 set ref 38 38 57* 73 75 86* 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 1-7 rdm_forward_subsystem_options_ptr 000114 automatic pointer dcl 2-31 ref 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 2-7 rdm_fwd_debug_ 000010 constant file stream dcl 37 set ref 19* rdm_invocation based structure level 1 dcl 3-6 rdm_invocation_ptr 000116 automatic pointer dcl 3-53 ref 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 sci_ptr 000100 automatic pointer dcl 27 set ref 56* 61* 64* 68* 69* 75* 85* 88* 89* ssu_$abort_line 000466 constant entry external dcl 43 ref 68 69 89 ssu_$arg_count 000470 constant entry external dcl 44 ref 61 88 ssu_$arg_ptr 000472 constant entry external dcl 45 ref 64 ssu_$set_debug_mode 000474 constant entry external dcl 46 ref 75 text_buffer 12 based structure level 2 dcl 1-7 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DEFAULT_FILL constant bit(2) initial dcl 2-35 DEFAULT_INCLUDE_SELF constant bit(2) initial dcl 3-60 DEFAULT_PROMPT constant bit(2) initial dcl 2-35 DEFAULT_REQUEST_LOOP constant bit(2) initial dcl 2-35 FILE_INPUT constant char(4) initial unaligned dcl 2-48 FILL constant bit(2) initial dcl 2-35 INCLUDE_SELF constant bit(2) initial dcl 3-60 NO_FILL constant bit(2) initial dcl 2-35 NO_INCLUDE_SELF constant bit(2) initial dcl 3-60 NO_PROMPT constant bit(2) initial dcl 2-35 NO_REQUEST_LOOP constant bit(2) initial dcl 2-35 RDM_FORWARD_INVOCATION constant char(8) initial unaligned dcl 1-27 RDM_FORWARD_SUBSYSTEM_OPTIONS_VERSION_1 constant char(8) initial unaligned dcl 2-32 RDM_INVOCATION constant char(8) initial unaligned dcl 3-51 REQUEST_LOOP constant bit(2) initial dcl 2-35 TERMINAL_INPUT constant char(4) initial unaligned dcl 2-48 USE_PROMPT_STRING constant bit(2) initial dcl 2-35 buffer based char unaligned dcl 38 code 000110 automatic fixed bin(35,0) dcl 35 rdm_area based area(1024) dcl 3-55 rdm_forward_subsystem_options based structure level 1 dcl 2-7 NAMES DECLARED BY EXPLICIT CONTEXT. debug_mode 000131 constant entry external dcl 53 probe 000353 constant entry external dcl 82 rdm_fwd_debug_requests_ 000110 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 556 1256 436 566 Length 3734 436 500 2442 120 450 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rdm_fwd_debug_requests_ 192 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rdm_fwd_debug_requests_ 000100 sci_ptr rdm_fwd_debug_requests_ 000102 argument_ptr rdm_fwd_debug_requests_ 000104 argument_lth rdm_fwd_debug_requests_ 000105 n_arguments rdm_fwd_debug_requests_ 000106 argument_idx rdm_fwd_debug_requests_ 000107 new_debug_mode rdm_fwd_debug_requests_ 000110 code rdm_fwd_debug_requests_ 000112 rdm_forward_invocation_ptr rdm_fwd_debug_requests_ 000114 rdm_forward_subsystem_options_ptr rdm_fwd_debug_requests_ 000116 rdm_invocation_ptr rdm_fwd_debug_requests_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry put_end stream_io THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. probe ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$set_debug_mode THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 37 000067 16 000104 19 000116 21 000126 53 000127 56 000137 57 000143 59 000146 61 000150 63 000161 64 000171 65 000206 67 000231 68 000237 69 000272 71 000325 73 000327 75 000334 78 000350 82 000351 85 000361 86 000365 88 000370 89 000401 91 000430 93 000435 ----------------------------------------------------------- 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