COMPILATION LISTING OF SEGMENT rdm_fwd_text_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 1238.7 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* format: off */ 8 9 /* read_mail forwarding sub-requests which manipulate the comment text */ 10 11 /* Created: October 1983 by B. Margolin (from sdm_message_requests_) */ 12 13 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 14 15 16 rdm_fwd_text_requests_: 17 procedure (P_sci_ptr, P_rdm_forward_invocation_ptr); 18 19 return; /* not an entry */ 20 21 22 /* Parameters */ 23 24 dcl P_sci_ptr pointer parameter; 25 dcl P_rdm_forward_invocation_ptr pointer parameter; 26 27 28 /* Remaining declarations */ 29 30 dcl argument character (argument_lth) unaligned based (argument_ptr); 31 dcl argument_ptr pointer; 32 dcl argument_lth fixed binary (21); 33 dcl (n_arguments, argument_idx) fixed binary; 34 35 dcl request_line character (request_line_lth) unaligned based (request_line_ptr); 36 dcl request_line_ptr pointer; 37 dcl request_line_lth fixed binary (21); 38 39 dcl 1 local_qi aligned, /* data structure for invoking qedx_ */ 40 2 header like qedx_info.header, 41 2 buffers (2) like qedx_info.buffers; /* ... buffers 0 and (maybe) exec */ 42 43 dcl fatal_error bit (1) aligned; /* set ON by rdm_fwd_text_mgr_$fill_text when necessary */ 44 dcl code fixed binary (35); 45 46 dcl fill bit (1) aligned; /* ON => fill the message after editing */ 47 dcl auto_write bit (1) aligned; /* ON => enable auto-writing in qedx (sigh) */ 48 49 dcl first_command_argument_idx fixed binary; /* where command line starts in the apply request */ 50 51 dcl fill_width fixed binary; 52 53 dcl text_buffer char (rdm_forward_invocation.buffer_used) based (rdm_forward_invocation.buffer_ptr); 54 dcl temp_seg char (rdm_forward_invocation.buffer_used) based (rdm_forward_invocation.temp_seg_ptr); 55 56 dcl sys_info$max_seg_size fixed binary (19) external; 57 dcl iox_$user_output pointer external; 58 59 /* format: off */ 60 dcl (error_table_$bad_conversion, error_table_$badopt, error_table_$fatal_error, error_table_$noarg) 61 fixed binary (35) external; 62 /* format: on */ 63 64 dcl cv_dec_check_ entry (character (*), fixed binary (35)) returns (fixed binary (35)); 65 dcl iox_$put_chars entry (pointer, pointer, fixed binary (21), fixed binary (35)); 66 dcl qedx_ entry (pointer, fixed binary (35)); 67 dcl rdm_fwd_text_mgr_$fill_text entry (pointer, fixed binary, bit (1) aligned); 68 dcl ssu_$abort_line entry () options (variable); 69 dcl ssu_$arg_count entry (pointer, fixed binary); 70 dcl ssu_$arg_ptr entry (pointer, fixed binary, pointer, fixed binary (21)); 71 dcl ssu_$apply_request_util entry (pointer, fixed binary, pointer, fixed binary (21), fixed binary (21)); 72 dcl ssu_$get_subsystem_and_request_name entry (pointer) returns (character (72) varying); 73 dcl ssu_$print_message entry () options (variable); 74 75 dcl (addr, clock, index, length, null, string, unspec) builtin; 76 77 /* The "print" request: prints the comment text */ 78 79 print_request: 80 entry (P_sci_ptr, P_rdm_forward_invocation_ptr); 81 82 rdm_forward_invocation_ptr = P_rdm_forward_invocation_ptr; 83 84 call ssu_$arg_count (P_sci_ptr, n_arguments); 85 86 if n_arguments ^= 0 then call ssu_$abort_line (P_sci_ptr, 0, "Usage: print"); 87 88 call iox_$put_chars (iox_$user_output, rdm_forward_invocation.buffer_ptr, rdm_forward_invocation.buffer_used, 89 code); 90 if code ^= 0 then call ssu_$abort_line (P_sci_ptr, code, "Attempting to print the comment text."); 91 92 return; 93 94 /* The "qedx" request: invokes the qedx editor on the comment text */ 95 96 qedx_request: 97 entry (P_sci_ptr, P_rdm_forward_invocation_ptr); 98 99 rdm_forward_invocation_ptr = P_rdm_forward_invocation_ptr; 100 101 call ssu_$arg_count (P_sci_ptr, n_arguments); 102 103 fill_width = rdm_forward_invocation.fill_width; /* set default width */ 104 105 fill = rdm_forward_invocation.fill; /* use global fill specification */ 106 auto_write = rdm_forward_invocation.auto_write; /* use global auto-write specification (sigh) */ 107 request_line_lth = 0; /* no -request */ 108 109 do argument_idx = 1 to n_arguments; 110 111 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 112 113 if index (argument, "-") = 1 then /* a control agument */ 114 /*** ... these first two control arguments are bought to you by the MCR boards (sigh) */ 115 if argument = "-auto_write" then auto_write = "1"b; 116 else if argument = "-no_auto_write" then auto_write = "0"b; 117 118 else if (argument = "-fill") | (argument = "-fi") then fill = "1"b; 119 else if (argument = "-no_fill") | (argument = "-nfi") then fill = "0"b; 120 121 else if (argument = "-line_length") | (argument = "-ll") then 122 if argument_idx = n_arguments then 123 call ssu_$abort_line (P_sci_ptr, error_table_$noarg, "Number after ""-line_length""."); 124 else do; /* user supplied fill width */ 125 argument_idx = argument_idx + 1; 126 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 127 fill_width = cv_dec_check_ (argument, code); 128 if code ^= 0 then 129 call ssu_$abort_line (P_sci_ptr, error_table_$bad_conversion, "", "-line_length ^a", 130 argument); 131 if fill_width < 31 then 132 call ssu_$abort_line (P_sci_ptr, 0, "Line length must be greater than 30."); 133 end; 134 135 else if (argument = "-request") | (argument = "-rq") then do; 136 if argument_idx = n_arguments then 137 call ssu_$abort_line (P_sci_ptr, error_table_$noarg, "String after ""-request""."); 138 argument_idx = argument_idx + 1; 139 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 140 request_line_ptr = addr (argument); 141 request_line_lth = length (argument); 142 end; 143 144 else call ssu_$abort_line (P_sci_ptr, error_table_$badopt, """^a""", argument); 145 146 else call ssu_$abort_line (P_sci_ptr, 0, "Usage: qedx {-control_args}"); 147 end; 148 149 if rdm_forward_invocation.buffer_ptr ^= rdm_forward_invocation.temp_seg_ptr then do; 150 /* points at -input_file */ 151 temp_seg = text_buffer; 152 rdm_forward_invocation.buffer_ptr = rdm_forward_invocation.temp_seg_ptr; 153 end; 154 155 local_qi.header.version = QEDX_INFO_VERSION_1; 156 local_qi.editor_name = ssu_$get_subsystem_and_request_name (sci_ptr); 157 string (local_qi.header.flags) = ""b; 158 local_qi.header.query_if_modified = "1"b; /* can't exit without writing */ 159 160 local_qi.n_buffers = 1; /* start with just the comment text buffer */ 161 162 local_qi.buffers (1).buffer_name = "0"; /* it's buffer 0 (the default one) */ 163 local_qi.buffers (1).buffer_pathname = ""; 164 local_qi.buffers (1).region_ptr = rdm_forward_invocation.buffer_ptr; 165 local_qi.buffers (1).region_max_lth = 4 * sys_info$max_seg_size; 166 local_qi.buffers (1).region_initial_lth = rdm_forward_invocation.buffer_used; 167 string (local_qi.buffers (1).flags) = ""b; 168 local_qi.buffers (1).read_write_region, /* ... straight into/out of our temporary segment */ 169 local_qi.buffers (1).locked_pathname, local_qi.buffers (1).default_read_ok, 170 local_qi.buffers (1).default_write_ok = "1"b; 171 local_qi.buffers (1).auto_write = auto_write; /* ... sigh */ 172 173 if request_line_lth > 0 then do; /* need an "exec" buffer for the requests */ 174 local_qi.n_buffers = 2; /* ... obviously */ 175 local_qi.buffers (2).buffer_name = "exec"; 176 local_qi.buffers (2).buffer_pathname = ""; /* ... doesn't come from anywhere */ 177 local_qi.buffers (2).region_ptr = request_line_ptr; 178 local_qi.buffers (2).region_max_lth, local_qi.buffers (2).region_initial_lth = request_line_lth; 179 string (local_qi.buffers (2).flags) = ""b; 180 local_qi.buffers (2).read_write_region, local_qi.buffers (2).execute_buffer, 181 local_qi.buffers (2).locked_pathname = "1"b; 182 end; 183 184 call qedx_ (addr (local_qi), code); 185 if code = error_table_$fatal_error then /* couldn't initialize: message already printed... */ 186 call ssu_$abort_line (P_sci_ptr, 0); 187 188 rdm_forward_invocation.buffer_used = local_qi.buffers (1).region_final_lth; 189 /* get length of the buffer after editing */ 190 191 if fill then do; /* refill it */ 192 call rdm_fwd_text_mgr_$fill_text (rdm_forward_invocation_ptr, fill_width, fatal_error); 193 if fatal_error then call ssu_$abort_line (P_sci_ptr, 0); 194 end; /* ... fill_text will print appropriate messages */ 195 196 return; 197 198 /* The "apply" request: applies an arbitrary Multics command line to a temporary segment containing the comment text 199* and updates the comment with the contents of the segment upon completion of the command 200* line. This request can be used to invoke editors other than qedx (eg: Emacs) on the comment */ 201 202 apply_request: 203 entry (P_sci_ptr, P_rdm_forward_invocation_ptr); 204 205 rdm_forward_invocation_ptr = P_rdm_forward_invocation_ptr; 206 207 call ssu_$arg_count (P_sci_ptr, n_arguments); 208 209 if n_arguments = 0 then call ssu_$abort_line (P_sci_ptr, 0, "Usage: apply {-control_args} command-line"); 210 211 fill_width = rdm_forward_invocation.fill_width; /* set default width */ 212 213 fill = rdm_forward_invocation.fill; /* defaults to global fill specification */ 214 first_command_argument_idx = 0; /* haven't found the start of the command line yet */ 215 216 do argument_idx = 1 to n_arguments /* look for control arguments ... */ 217 while (first_command_argument_idx = 0); /* ... until the start of the command line */ 218 219 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 220 221 if index (argument, "-") = 1 then /* a control argument */ 222 if (argument = "-fill") | (argument = "-fi") then fill = "1"b; 223 else if (argument = "-no_fill") | (argument = "-nfi") then fill = "0"b; 224 225 else if (argument = "-line_length") | (argument = "-ll") then 226 if argument_idx = n_arguments then 227 call ssu_$abort_line (P_sci_ptr, error_table_$noarg, "Number after ""-line_length""."); 228 else do; /* user supplied fill width */ 229 argument_idx = argument_idx + 1; 230 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 231 fill_width = cv_dec_check_ (argument, code); 232 if code ^= 0 then 233 call ssu_$abort_line (P_sci_ptr, error_table_$bad_conversion, "", "-line_length ^a", 234 argument); 235 if fill_width < 31 then 236 call ssu_$abort_line (P_sci_ptr, 0, "Line length must be greater than 30."); 237 end; 238 239 else call ssu_$abort_line (P_sci_ptr, error_table_$badopt, """^a""", argument); 240 241 else first_command_argument_idx = argument_idx; 242 end; /* command line starts here */ 243 244 if first_command_argument_idx = 0 then 245 call ssu_$abort_line (P_sci_ptr, error_table_$noarg, "Multics command line."); 246 247 if rdm_forward_invocation.buffer_ptr ^= rdm_forward_invocation.temp_seg_ptr then do; 248 /* points at -input_file */ 249 temp_seg = text_buffer; 250 rdm_forward_invocation.buffer_ptr = rdm_forward_invocation.temp_seg_ptr; 251 end; 252 253 call ssu_$apply_request_util (P_sci_ptr, first_command_argument_idx, rdm_forward_invocation.buffer_ptr, 254 rdm_forward_invocation.buffer_used, rdm_forward_invocation.buffer_used); 255 /* call ssu_ to construct and execute the command line */ 256 257 if fill then do; /* refill it */ 258 call rdm_fwd_text_mgr_$fill_text (rdm_forward_invocation_ptr, fill_width, fatal_error); 259 if fatal_error then call ssu_$abort_line (P_sci_ptr, 0); 260 end; 261 262 return; 263 264 /* The "fill" request: reformats the comment text using format_document_ with fill-on and align-left modes */ 265 266 fill_request: 267 entry (P_sci_ptr, P_rdm_forward_invocation_ptr); 268 269 rdm_forward_invocation_ptr = P_rdm_forward_invocation_ptr; 270 271 call ssu_$arg_count (P_sci_ptr, n_arguments); 272 273 fill_width = rdm_forward_invocation.fill_width; /* set default width */ 274 275 do argument_idx = 1 to n_arguments; 276 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 277 if index (argument, "-") = 1 then /* a control argument */ 278 if (argument = "-line_length") | (argument = "-ll") then 279 if argument_idx = n_arguments then 280 call ssu_$abort_line (P_sci_ptr, error_table_$noarg, "Number after ""-line_length""."); 281 else do; /* user supplied fill width */ 282 argument_idx = argument_idx + 1; 283 call ssu_$arg_ptr (P_sci_ptr, argument_idx, argument_ptr, argument_lth); 284 fill_width = cv_dec_check_ (argument, code); 285 if code ^= 0 then 286 call ssu_$abort_line (P_sci_ptr, error_table_$bad_conversion, "", "-line_length ^a", 287 argument); 288 if fill_width < 31 then 289 call ssu_$abort_line (P_sci_ptr, 0, "Line length must be greater than 30."); 290 end; 291 else call ssu_$abort_line (P_sci_ptr, error_table_$badopt, """^a""", argument); 292 else call ssu_$abort_line (P_sci_ptr, 0, "Usage: fill {-control_args}"); 293 end; 294 295 call rdm_fwd_text_mgr_$fill_text (rdm_forward_invocation_ptr, fill_width, fatal_error); 296 if fatal_error then call ssu_$abort_line (P_sci_ptr, 0); 297 298 return; 299 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 * * * * * * * * * * * * * * * * */ 300 301 2 1 /* BEGIN INCLUDE FILE ... qedx_info.incl.pl1 */ 2 2 /* Created: January 1983 by G. Palter */ 2 3 2 4 /* Data structure which supplies input/output arguments to qedx_ subroutine */ 2 5 2 6 dcl 1 qedx_info aligned based (qedx_info_ptr), 2 7 2 header, /* allows use of like to build automatic version */ 2 8 3 version character (8), 2 9 3 editor_name character (72) unaligned, 2 10 3 buffer_io entry (pointer, bit (1) aligned), /* procedure invoked to read/write an editor buffer */ 2 11 3 flags, 2 12 4 no_rw_path bit (1) unaligned, /* ON => no r/w may use a pathname and R/W are illegal */ 2 13 4 query_if_modified bit (1) unaligned, /* ON => query on exit if modified buffers exist */ 2 14 4 caller_does_io bit (1) unaligned, /* ON => caller does actual work of read/write requests */ 2 15 4 quit_forced bit (1) unaligned, /* set ON => user used Q or asked to punt modified buffers */ 2 16 4 buffers_truncated bit (1) unaligned, /* set ON => some editing lost when written */ 2 17 4 pad bit (29) unaligned, 2 18 3 n_buffers fixed binary, /* # of buffers supplied by caller */ 2 19 2 buffers (qedx_info_n_buffers refer (qedx_info.n_buffers)), 2 20 3 buffer_name character (16) unaligned, /* name of the buffer */ 2 21 3 buffer_pathname character (256) unaligned, /* initial default pathname of buffer */ 2 22 3 region_ptr pointer, /* -> caller's optional region */ 2 23 3 region_max_lth fixed binary (21), /* # of characters which will fit in caller's region */ 2 24 3 region_initial_lth fixed binary (21), /* # of characters in caller's region for initial read */ 2 25 3 region_final_lth fixed binary (21), /* set to # of characters placed in caller's region on exit */ 2 26 3 flags, 2 27 4 read_write_region bit (1) unaligned, /* ON => use caller's region as default for read/write; 2 28* OFF => use file specified by pathname as default */ 2 29 4 locked_pathname bit (1) unaligned, /* ON => read/write will never change default pathname or 2 30* prevent qedx from trusting the default path; 2 31* OFF => read with pathname sets ^trusted and write with 2 32* pathname changes the default */ 2 33 4 execute_buffer bit (1) unaligned, /* ON => execute it's contents before reading from terminal */ 2 34 /*** following switches apply only when read_write_region is ON ... */ 2 35 4 default_read_ok bit (1) unaligned, /* ON => r without explicit pathname is OK */ 2 36 4 default_write_ok bit (1) unaligned, /* ON => w without explicit pathname is OK */ 2 37 4 auto_write bit (1) unaligned, /* ON => automatically write buffer contents on "q" */ 2 38 4 truncated bit (1) unaligned, /* set ON => edited version is too long for caller's region */ 2 39 4 pad bit (29) unaligned; 2 40 2 41 dcl qedx_info_ptr pointer; 2 42 dcl qedx_info_n_buffers fixed binary; /* needed to allocate above structure */ 2 43 2 44 dcl QEDX_INFO_VERSION_1 character (8) static options (constant) initial ("qxi_01.1"); 2 45 2 46 /* END INCLUDE FILE ... qedx_info.incl.pl1 */ 302 303 304 end rdm_fwd_text_requests_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/27/83 1104.2 rdm_fwd_text_requests_.pl1 >spec>on>10/27/83-mail>rdm_fwd_text_requests_.pl1 300 1 10/27/83 1050.8 rdm_fwd_invocation.incl.pl1 >spec>on>10/27/83-mail>rdm_fwd_invocation.incl.pl1 302 2 05/04/83 1118.0 qedx_info.incl.pl1 >ldd>include>qedx_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. P_rdm_forward_invocation_ptr parameter pointer dcl 25 ref 16 79 82 96 99 202 205 266 269 P_sci_ptr parameter pointer dcl 24 set ref 16 79 84* 86* 90* 96 101* 111* 121* 126* 128* 131* 136* 139* 144* 146* 185* 193* 202 207* 209* 219* 225* 230* 232* 235* 239* 244* 253* 259* 266 271* 276* 277* 283* 285* 288* 291* 292* 296* QEDX_INFO_VERSION_1 000000 constant char(8) initial unaligned dcl 2-44 ref 155 addr builtin function dcl 75 ref 140 184 184 argument based char unaligned dcl 30 set ref 113 113 116 118 118 119 119 121 121 127* 128* 135 135 140 141 144* 221 221 221 223 223 225 225 231* 232* 239* 277 277 277 284* 285* 291* argument_idx 000104 automatic fixed bin(17,0) dcl 33 set ref 109* 111* 121 125* 125 126* 136 138* 138 139* 216* 219* 225 229* 229 230* 241* 275* 276* 277 282* 282 283* argument_lth 000102 automatic fixed bin(21,0) dcl 32 set ref 111* 113 113 116 118 118 119 119 121 121 126* 127 127 128 128 135 135 139* 140 141 144 144 219* 221 221 221 223 223 225 225 230* 231 231 232 232 239 239 276* 277 277 277 283* 284 284 285 285 291 291 argument_ptr 000100 automatic pointer dcl 31 set ref 111* 113 113 116 118 118 119 119 121 121 126* 127 128 135 135 139* 140 141 144 219* 221 221 221 223 223 225 225 230* 231 232 239 276* 277 277 277 283* 284 285 291 auto_write 143(05) 000112 automatic bit(1) array level 4 in structure "local_qi" packed unaligned dcl 39 in procedure "rdm_fwd_text_requests_" set ref 171* auto_write 000373 automatic bit(1) dcl 47 in procedure "rdm_fwd_text_requests_" set ref 106* 113* 116* 171 auto_write 15(03) based bit(1) level 3 in structure "rdm_forward_invocation" packed unaligned dcl 1-7 in procedure "rdm_fwd_text_requests_" ref 106 buffer_name 32 000112 automatic char(16) array level 3 packed unaligned dcl 39 set ref 162* 175* buffer_pathname 36 000112 automatic char(256) array level 3 packed unaligned dcl 39 set ref 163* 176* buffer_ptr 12 based pointer level 3 dcl 1-7 set ref 88* 149 151 152* 164 247 249 250* 253* buffer_used 14 based fixed bin(21,0) level 3 dcl 1-7 set ref 88* 151 151 166 188* 249 249 253* 253* buffers 32 000112 automatic structure array level 2 in structure "local_qi" dcl 39 in procedure "rdm_fwd_text_requests_" buffers 32 based structure array level 2 in structure "qedx_info" dcl 2-6 in procedure "rdm_fwd_text_requests_" code 000371 automatic fixed bin(35,0) dcl 44 set ref 88* 90 90* 127* 128 184* 185 231* 232 284* 285 cv_dec_check_ 000024 constant entry external dcl 64 ref 127 231 284 default_read_ok 143(03) 000112 automatic bit(1) array level 4 packed unaligned dcl 39 set ref 168* default_write_ok 143(04) 000112 automatic bit(1) array level 4 packed unaligned dcl 39 set ref 168* editor_name 2 000112 automatic char(72) level 3 packed unaligned dcl 39 set ref 156* error_table_$bad_conversion 000014 external static fixed bin(35,0) dcl 60 set ref 128* 232* 285* error_table_$badopt 000016 external static fixed bin(35,0) dcl 60 set ref 144* 239* 291* error_table_$fatal_error 000020 external static fixed bin(35,0) dcl 60 ref 185 error_table_$noarg 000022 external static fixed bin(35,0) dcl 60 set ref 121* 136* 225* 244* 277* execute_buffer 143(02) 000112 automatic bit(1) array level 4 packed unaligned dcl 39 set ref 180* fatal_error 000370 automatic bit(1) dcl 43 set ref 192* 193 258* 259 295* 296 fill 15(01) based bit(1) level 3 in structure "rdm_forward_invocation" packed unaligned dcl 1-7 in procedure "rdm_fwd_text_requests_" ref 105 213 fill 000372 automatic bit(1) dcl 46 in procedure "rdm_fwd_text_requests_" set ref 105* 118* 119* 191 213* 221* 223* 257 fill_width 16 based fixed bin(17,0) level 2 in structure "rdm_forward_invocation" dcl 1-7 in procedure "rdm_fwd_text_requests_" ref 103 211 273 fill_width 000375 automatic fixed bin(17,0) dcl 51 in procedure "rdm_fwd_text_requests_" set ref 103* 127* 131 192* 211* 231* 235 258* 273* 284* 288 295* first_command_argument_idx 000374 automatic fixed bin(17,0) dcl 49 set ref 214* 216 241* 244 253* flags 15 based structure level 2 in structure "rdm_forward_invocation" dcl 1-7 in procedure "rdm_fwd_text_requests_" flags 143 000112 automatic structure array level 3 in structure "local_qi" dcl 39 in procedure "rdm_fwd_text_requests_" set ref 167* 179* flags 30 000112 automatic structure level 3 in structure "local_qi" dcl 39 in procedure "rdm_fwd_text_requests_" set ref 157* header based structure level 2 in structure "qedx_info" dcl 2-6 in procedure "rdm_fwd_text_requests_" header 000112 automatic structure level 2 in structure "local_qi" dcl 39 in procedure "rdm_fwd_text_requests_" index builtin function dcl 75 ref 113 221 277 iox_$put_chars 000026 constant entry external dcl 65 ref 88 iox_$user_output 000012 external static pointer dcl 57 set ref 88* length builtin function dcl 75 ref 141 local_qi 000112 automatic structure level 1 dcl 39 set ref 184 184 locked_pathname 143(01) 000112 automatic bit(1) array level 4 packed unaligned dcl 39 set ref 168* 180* n_arguments 000103 automatic fixed bin(17,0) dcl 33 set ref 84* 86 101* 109 121 136 207* 209 216 225 271* 275 277 n_buffers 31 000112 automatic fixed bin(17,0) level 3 dcl 39 set ref 160* 174* qedx_ 000030 constant entry external dcl 66 ref 184 qedx_info based structure level 1 dcl 2-6 query_if_modified 30(01) 000112 automatic bit(1) level 4 packed unaligned dcl 39 set ref 158* rdm_forward_invocation based structure level 1 dcl 1-7 rdm_forward_invocation_ptr 000376 automatic pointer dcl 1-26 set ref 82* 88 88 99* 103 105 106 149 149 151 151 151 151 152 152 156 164 166 188 192* 205* 211 213 247 247 249 249 249 249 250 250 253 253 253 258* 269* 273 295* rdm_fwd_text_mgr_$fill_text 000032 constant entry external dcl 67 ref 192 258 295 read_write_region 143 000112 automatic bit(1) array level 4 packed unaligned dcl 39 set ref 168* 180* region_final_lth 142 000112 automatic fixed bin(21,0) array level 3 dcl 39 set ref 188 region_initial_lth 141 000112 automatic fixed bin(21,0) array level 3 dcl 39 set ref 166* 178* region_max_lth 140 000112 automatic fixed bin(21,0) array level 3 dcl 39 set ref 165* 178* region_ptr 136 000112 automatic pointer array level 3 dcl 39 set ref 164* 177* request_line_lth 000110 automatic fixed bin(21,0) dcl 37 set ref 107* 141* 173 178 request_line_ptr 000106 automatic pointer dcl 36 set ref 140* 177 sci_ptr 2 based pointer level 2 dcl 1-7 set ref 156* ssu_$abort_line 000034 constant entry external dcl 68 ref 86 90 121 128 131 136 144 146 185 193 209 225 232 235 239 244 259 277 285 288 291 292 296 ssu_$apply_request_util 000042 constant entry external dcl 71 ref 253 ssu_$arg_count 000036 constant entry external dcl 69 ref 84 101 207 271 ssu_$arg_ptr 000040 constant entry external dcl 70 ref 111 126 139 219 230 276 283 ssu_$get_subsystem_and_request_name 000044 constant entry external dcl 72 ref 156 string builtin function dcl 75 set ref 157* 167* 179* sys_info$max_seg_size 000010 external static fixed bin(19,0) dcl 56 ref 165 temp_seg based char unaligned dcl 54 set ref 151* 249* temp_seg_ptr 20 based pointer level 2 dcl 1-7 ref 149 151 152 247 249 250 text_buffer 12 based structure level 2 in structure "rdm_forward_invocation" dcl 1-7 in procedure "rdm_fwd_text_requests_" text_buffer based char unaligned dcl 53 in procedure "rdm_fwd_text_requests_" ref 151 249 version 000112 automatic char(8) level 3 dcl 39 set ref 155* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. RDM_FORWARD_INVOCATION internal static char(8) initial unaligned dcl 1-27 clock builtin function dcl 75 null builtin function dcl 75 qedx_info_n_buffers automatic fixed bin(17,0) dcl 2-42 qedx_info_ptr automatic pointer dcl 2-41 request_line based char unaligned dcl 35 ssu_$print_message 000000 constant entry external dcl 73 unspec builtin function dcl 75 NAMES DECLARED BY EXPLICIT CONTEXT. apply_request 001264 constant entry external dcl 202 fill_request 002025 constant entry external dcl 266 print_request 000200 constant entry external dcl 79 qedx_request 000323 constant entry external dcl 96 rdm_fwd_text_requests_ 000170 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 2704 2752 2440 2714 Length 3242 2440 46 254 243 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rdm_fwd_text_requests_ 320 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rdm_fwd_text_requests_ 000100 argument_ptr rdm_fwd_text_requests_ 000102 argument_lth rdm_fwd_text_requests_ 000103 n_arguments rdm_fwd_text_requests_ 000104 argument_idx rdm_fwd_text_requests_ 000106 request_line_ptr rdm_fwd_text_requests_ 000110 request_line_lth rdm_fwd_text_requests_ 000112 local_qi rdm_fwd_text_requests_ 000370 fatal_error rdm_fwd_text_requests_ 000371 code rdm_fwd_text_requests_ 000372 fill rdm_fwd_text_requests_ 000373 auto_write rdm_fwd_text_requests_ 000374 first_command_argument_idx rdm_fwd_text_requests_ 000375 fill_width rdm_fwd_text_requests_ 000376 rdm_forward_invocation_ptr rdm_fwd_text_requests_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cv_dec_check_ iox_$put_chars qedx_ rdm_fwd_text_mgr_$fill_text ssu_$abort_line ssu_$apply_request_util ssu_$arg_count ssu_$arg_ptr ssu_$get_subsystem_and_request_name THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_conversion error_table_$badopt error_table_$fatal_error error_table_$noarg iox_$user_output sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000164 19 000175 79 000176 82 000205 84 000211 86 000222 88 000253 90 000271 92 000320 96 000321 99 000330 101 000334 103 000345 105 000350 106 000354 107 000360 109 000361 111 000371 113 000407 116 000432 118 000440 119 000453 121 000465 125 000526 126 000527 127 000545 128 000572 131 000635 133 000666 135 000667 136 000677 138 000727 139 000730 140 000746 141 000750 142 000752 144 000753 146 001007 147 001035 149 001037 151 001044 152 001052 155 001053 156 001055 157 001072 158 001073 160 001075 162 001077 163 001102 164 001105 165 001110 166 001114 167 001117 168 001120 171 001130 173 001135 174 001137 175 001141 176 001144 177 001147 178 001151 179 001154 180 001155 184 001163 185 001175 188 001217 191 001222 192 001224 193 001237 196 001261 202 001262 205 001271 207 001275 209 001306 211 001336 213 001341 214 001345 216 001346 219 001357 221 001375 223 001424 225 001436 229 001477 230 001500 231 001516 232 001543 235 001606 237 001637 239 001640 241 001674 242 001676 244 001700 247 001727 249 001734 250 001742 253 001743 257 001763 258 001765 259 002000 262 002022 266 002023 269 002032 271 002036 273 002047 275 002052 276 002061 277 002077 282 002154 283 002155 284 002173 285 002220 288 002263 290 002314 291 002315 292 002351 293 002377 295 002401 296 002414 298 002436 ----------------------------------------------------------- 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