COMPILATION LISTING OF SEGMENT deckfile_manager Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 10/21/92 1022.7 mdt Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Bull Inc., 1989 * 6* * * 7* * Copyright, (C) Honeywell Information Systems Inc., 1986 * 8* * * 9* *********************************************************** */ 10 11 12 13 /****^ HISTORY COMMENTS: 14* 1) change(86-08-21,Fakoury), approve(86-08-21,MCR7515), 15* audit(87-01-07,Farley), install(87-01-08,MR12.0-1263): 16* Originally coded 0682 by R. Fakoury for MR12. 17* 2) change(89-11-08,Fakoury), approve(89-11-20,MECR0014), 18* audit(89-11-09,Parisek), install(89-11-20,MR12.3-1120): 19* To correct the path for the info dir. 20* 3) change(89-11-20,Fakoury), approve(89-11-20,PBF8146), 21* audit(89-11-20,Parisek), install(89-11-20,MR12.3-1120): 22* Again, correct info dir problem. Let ssu_ figure it out. 23* END HISTORY COMMENTS */ 24 25 26 /* The deckfile_manager command provides the functionallity to maintain a tandd_deck_file */ 27 28 29 /* format: style4,ifthenstmt,ifthen,ind3,ll125,lineconind1 */ 30 deckfile_manager: 31 dfm: proc (); 32 33 34 /* Automatic */ 35 36 dcl ab_sw bit (1) aligned; 37 dcl argl fixed bin (21); 38 dcl argp ptr; 39 dcl arg_num fixed bin; 40 dcl code fixed bin (35); 41 dcl debug_sw bit (1) aligned; 42 dcl deckfile_length fixed bin (21); 43 dcl deckfile_ptr ptr; 44 dcl nargs fixed bin; 45 dcl profile_dir char (168); 46 dcl profile_entry char (32); 47 dcl profile_length fixed bin (21); 48 dcl profile_ptr ptr; 49 dcl profile_sw bit (1); 50 dcl prompt_length fixed bin (21); 51 dcl prompt_ptr ptr; 52 dcl prompt_sw bit (1); 53 dcl quit_sw bit (1); 54 dcl request_loop_sw bit (1); 55 dcl ready_sw bit (1) aligned; 56 dcl request_sw bit (1); 57 dcl request_line_length fixed bin (21); 58 dcl request_line_ptr ptr; 59 dcl sci_ptr ptr; 60 dcl startup_sw bit (1); 61 62 /* Based */ 63 64 dcl arg char (argl) based (argp); 65 dcl deckfile_string char (deckfile_length) based (deckfile_ptr); 66 dcl free_area area based (get_system_free_area_ ()); 67 dcl profile_string char (profile_length) based (profile_ptr); 68 dcl prompt_string char (prompt_length) aligned based (prompt_ptr); 69 70 71 /* Builtins */ 72 73 dcl addr builtin; 74 dcl codeptr builtin; 75 dcl null builtin; 76 77 78 /* Conditions */ 79 80 dcl cleanup condition; 81 82 83 /* Constants */ 84 85 dcl dfm_version_1 char (4) int static options (constant) init ("1.0a"); 86 dcl false bit (1) int static options (constant) init ("0"b); 87 dcl last_position fixed bin int static options (constant) init (9999); 88 dcl max_prompt_length fixed bin int static options (constant) init (64); 89 dcl myname char (3) int static options (constant) init ("dfm"); 90 dcl true bit (1) int static options (constant) init ("1"b); 91 92 /* Entries */ 93 94 dcl active_fnc_err_ entry options (variable); 95 dcl com_err_ entry () options (variable); 96 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 97 dcl cu_$arg_list_ptr entry () returns (ptr); 98 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 99 dcl cu_$generate_call entry (entry, ptr); 100 dcl dfm_$clean_up entry (ptr, ptr); 101 dcl dfm_$pi_handler entry; 102 dcl expand_pathname_ entry (char (*), char (*), char (*), fixed bin (35)); 103 dcl expand_pathname_$add_suffix entry (char (*), char (*), char (*), char (*), fixed bin (35)); 104 dcl get_system_free_area_ entry () returns (ptr); 105 dcl initiate_file_ entry (char (*), char (*), bit (*), ptr, fixed bin (24), fixed bin (35)); 106 dcl ssu_$add_info_dir entry (ptr, char (*), fixed bin, fixed bin (35)); 107 dcl ssu_$add_request_table entry (ptr, ptr, fixed bin, fixed bin (35)); 108 dcl ssu_$create_invocation entry (char (*), char (*), ptr, ptr, char (*), ptr, fixed bin (35)); 109 dcl ssu_$destroy_invocation entry (ptr); 110 dcl ssu_$execute_line entry (ptr, ptr, fixed bin (21), fixed bin (35)); 111 dcl ssu_$execute_start_up entry () options (variable); 112 dcl ssu_$get_temp_segment entry (ptr, char (*), ptr); 113 dcl ssu_$listen entry (ptr, ptr, fixed bin (35)); 114 dcl ssu_$record_usage entry (ptr, ptr, fixed bin (35)); 115 dcl ssu_$release_temp_segment entry (ptr, ptr); 116 dcl ssu_$set_abbrev_info entry (ptr, ptr, ptr, bit (1) aligned); 117 dcl ssu_$set_debug_mode entry (ptr, bit (1) aligned); 118 dcl ssu_$set_ec_suffix entry (ptr, char (32)); 119 dcl ssu_$set_procedure entry (ptr, char (*), entry, fixed bin (35)); 120 dcl ssu_$set_prompt entry (ptr, char (64) var); 121 dcl ssu_$set_prompt_mode entry (ptr, bit (*)); 122 dcl ssu_$set_ready_mode entry (ptr, bit (1) aligned); 123 124 /* External */ 125 126 dcl dfm_request_table_$dfm_request_table_ fixed bin ext static; 127 dcl error_table_$active_function fixed bin (35) ext static; 128 dcl error_table_$badopt fixed bin (35) ext static; 129 dcl error_table_$bigarg fixed bin (35) ext static; 130 dcl error_table_$inconsistent fixed bin (35) ext static; 131 dcl error_table_$not_act_fnc fixed bin (35) ext static; 132 dcl ssu_et_$subsystem_aborted fixed bin (35) ext static; 133 dcl ssu_et_$program_interrupt fixed bin (35) ext static; 134 dcl ssu_et_$null_request_line fixed bin (35) ext static; 135 dcl ssu_et_$request_line_aborted fixed bin (35) ext static; 136 dcl ssu_info_directories_$standard_requests char (168) external; 137 dcl ssu_request_tables_$standard_requests bit (36) aligned external; 138 139 140 141 142 call cu_$af_return_arg (nargs, null (), 0, code); 143 if code ^= error_table_$not_act_fnc then do; 144 if code = 0 then call active_fnc_err_ (error_table_$active_function, myname); 145 else call com_err_ (code, myname); 146 return; 147 end; 148 149 call dfm_init (); 150 151 on cleanup call deckfile_manager_cleanup (); 152 153 do arg_num = 1 to nargs; /* process all the arguments */ 154 call cu_$arg_ptr (arg_num, argp, argl, code); 155 if code ^= 0 then call complain (code, myname, "Getting arg ptr."); 156 157 if arg = "-abbrev" | arg = "-ab" then ab_sw = true; 158 159 else if arg = "-debug" | arg = "-db" then debug_sw = true; 160 161 else if arg = "-deckfile" | arg = "-dkf" then do; 162 call next_arg (deckfile_ptr, deckfile_length, code); 163 if code ^= 0 then call complain (code, myname, "Getting deckfile pathname."); 164 call expand_pathname_ (deckfile_string, dfm_info.deckfile_dir, 165 dfm_info.deckfile_entry, code); 166 if code ^= 0 then call complain (code, myname, "Expanding deckfile pathname."); 167 end; 168 169 else if arg = "-no_abbrev" | arg = "-nab" then ab_sw = false; 170 171 else if arg = "-no_debug" | arg = "-ndb" then debug_sw = false; 172 173 else if arg = "-no_prompt" then prompt_sw = false; 174 175 else if arg = "-no_startup" | arg = "-nsu" then startup_sw = false; 176 177 else if arg = "-profile" | arg = "-pf" then do; 178 call next_arg (profile_ptr, profile_length, code); 179 if code ^= 0 then call complain (code, myname, "Getting profile pathname."); 180 call expand_pathname_$add_suffix (profile_string, "profile", profile_dir, profile_entry, code); 181 if code ^= 0 then call complain (code, myname, "Expanding profile pathname."); 182 call initiate_file_ (profile_dir, profile_entry, R_ACCESS, profile_ptr, 0, code); 183 if profile_ptr = null () then call complain (code, myname, 184 "Initiating the profile ^a>^a.", profile_dir, profile_entry); 185 186 ab_sw, profile_sw = true; 187 end; 188 189 else if arg = "-prompt" then do; 190 call next_arg (prompt_ptr, prompt_length, code); 191 if code ^= 0 then call complain (code, myname, "Getting prompt string"); 192 if prompt_length > max_prompt_length then 193 call complain (error_table_$bigarg, myname, 194 "The prompt may be a maximum of ^d characters", max_prompt_length); 195 prompt_sw = true; 196 end; 197 198 else if arg = "-quit" | arg = "-q" then 199 quit_sw, dfm_info.flags.force_quit = true; 200 201 else if arg = "-ready_off" | arg = "-rdf" then ready_sw = false; 202 203 else if arg = "-ready_on" | arg = "-rdn" then ready_sw = true; 204 205 else if arg = "-request" | arg = "-rq" then do; 206 if request_sw then call complain (error_table_$inconsistent, 207 myname, "Only one request per invocation"); 208 call next_arg (request_line_ptr, request_line_length, code); 209 if code ^= 0 then call complain (code, myname, "Getting request line"); 210 request_sw = true; 211 end; 212 213 else if arg = "-request_loop" 214 | arg = "-rql" then request_loop_sw = true; 215 216 else if arg = "-startup" | arg = "su" then startup_sw = true; 217 218 else call complain (error_table_$badopt, myname, "^a", arg); 219 220 end; /* end argument processing */ 221 222 call ssu_$create_invocation (myname, dfm_version_1, dfm_infop, 223 addr (dfm_request_table_$dfm_request_table_), ">doc>subsystem>dfm", sci_ptr, code); 224 if code ^= 0 then call complain (code, myname, "Creating subsystem invocation."); 225 226 call ssu_$record_usage (sci_ptr, codeptr (dfm), 0); 227 228 call ssu_$add_info_dir (sci_ptr, ssu_info_directories_$standard_requests, last_position, code); 229 if code ^= 0 then call complain (code, myname, "Adding ssu info dir."); 230 231 call ssu_$add_request_table (sci_ptr, addr (ssu_request_tables_$standard_requests), last_position, code); 232 if code ^= 0 then call complain (code, myname, "Adding ssu request table."); 233 234 call ssu_$set_procedure (sci_ptr, "program_interrupt", dfm_$pi_handler, code); 235 if code ^= 0 then call complain (code, myname, "Adding pi handler."); 236 237 call ssu_$set_ec_suffix (sci_ptr, "dfmec"); 238 239 call ssu_$get_temp_segment (sci_ptr, "dfm_data", dfm_info.dfm_data_ptr); 240 241 call ssu_$set_abbrev_info (sci_ptr, profile_ptr, profile_ptr, ab_sw); 242 243 call ssu_$set_debug_mode (sci_ptr, debug_sw); 244 245 if prompt_sw & prompt_length > 0 then 246 call ssu_$set_prompt (sci_ptr, (prompt_string)); 247 248 call ssu_$set_prompt_mode (sci_ptr, ^prompt_sw); 249 250 call ssu_$set_ready_mode (sci_ptr, ready_sw); 251 252 if startup_sw then do; 253 call ssu_$execute_start_up (sci_ptr, code); 254 if code ^= 0 then call complain (code, myname, "Executing ssu startup."); 255 end; 256 257 if request_sw then do; 258 call ssu_$execute_line (sci_ptr, request_line_ptr, request_line_length, code); 259 if code ^= 0 then do; 260 if (code = ssu_et_$null_request_line 261 | code = ssu_et_$program_interrupt 262 | code = ssu_et_$request_line_aborted) 263 & request_loop_sw then goto listen; 264 else if code = ssu_et_$subsystem_aborted then goto subsystem_wrapup; /* normal end of subsystem */ 265 else call complain (code, myname, "Encountered while executing request line"); 266 end; 267 end; 268 269 if quit_sw then goto subsystem_wrapup; 270 271 272 listen: 273 call ssu_$listen (sci_ptr, null (), code); 274 if code ^= ssu_et_$subsystem_aborted then 275 call com_err_ (code, myname, "Calling the listener."); 276 277 subsystem_wrapup: 278 call deckfile_manager_cleanup (); 279 return; 280 281 282 /* complain - an internal proc to print an error message and wrapup. */ 283 284 285 complain: proc () options (variable); 286 287 call cu_$generate_call (com_err_, cu_$arg_list_ptr ()); 288 goto subsystem_wrapup; 289 290 291 end complain; 292 293 294 295 296 297 /* deckfile_manager_cleanup - internal proc to cleanup a deckfile_manager invocation. */ 298 299 300 deckfile_manager_cleanup: proc (); 301 302 if dfm_infop ^= null then do; 303 304 if dfm_info.flags.request_active then call dfm_$clean_up (sci_ptr, dfm_infop); 305 306 if dfm_info.dfm_data_ptr ^= null () then 307 call ssu_$release_temp_segment (sci_ptr, dfm_info.dfm_data_ptr); 308 309 if sci_ptr ^= null then call ssu_$destroy_invocation (sci_ptr); 310 311 free dfm_info in (free_area); 312 dfm_infop = null; 313 end; 314 315 316 end deckfile_manager_cleanup; 317 318 319 /* Internal proc that initializes dfm variables */ 320 321 dfm_init: proc (); 322 323 dfm_infop = null; 324 allocate dfm_info in (free_area) set (dfm_infop); 325 326 ab_sw = false; 327 debug_sw = false; 328 dfm_info.deckfile_dir = ""; 329 dfm_info.deckfile_entry = ""; 330 dfm_info.dfm_data_ptr = null; 331 dfm_info.page_number = 0; 332 dfm_info.flags.request_active = false; 333 dfm_info.force_quit = false; 334 dfm_info.pad = "0"b; 335 dfm_info.version = dfm_info_version_1; 336 profile_ptr = null; 337 profile_sw = false; 338 prompt_length = 0; 339 prompt_ptr = null; 340 prompt_sw = true; /* default is to prompt */ 341 quit_sw = false; 342 request_loop_sw = false; 343 ready_sw = false; 344 request_sw = false; 345 request_line_length = 0; 346 request_line_ptr = null; 347 sci_ptr = null; 348 startup_sw = false; 349 350 end dfm_init; 351 352 353 354 /* Internal proc that gets the next argument from the argument string, complaining if it's not there */ 355 356 next_arg: proc (nargp, nargl, nacode); 357 358 dcl nargp ptr; 359 dcl nacode fixed bin (35); 360 dcl nargl fixed bin (21); 361 362 arg_num = arg_num + 1; 363 call cu_$arg_ptr (arg_num, nargp, nargl, nacode); 364 365 366 end next_arg; 367 368 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 369 370 2 1 /* BEGIN INCLUDE FILE dfm_info.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(86-08-21,Fakoury), approve(86-08-21,MCR7515), 2 6* audit(87-01-07,Farley), install(87-01-08,MR12.0-1263): 2 7* Originally coded 0782 by Rick Fakoury for MR12. 2 8* END HISTORY COMMENTS */ 2 9 2 10 2 11 2 12 2 13 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 2 14 /* */ 2 15 /* This include file is used by deckfile_manager to pass information */ 2 16 /* about a particular invocation of the command to the utility routines. */ 2 17 /* */ 2 18 /* Originally code by R. Fakoury 06/82. */ 2 19 /* */ 2 20 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 2 21 2 22 2 23 /* format: style4,ifthenstmt,ifthen,ind3,ll125,lineconind1 */ 2 24 2 25 dcl 1 dfm_info aligned based (dfm_infop), 2 26 2 version char (8), /* version of this structure */ 2 27 2 dfm_data_ptr ptr, /* ptr to the dfm_data structure for this invocation */ 2 28 2 info_dir char (168) unal, /* ssu info segs dir */ 2 29 2 flags, 2 30 3 request_active bit (1) unal, /* current request active */ 2 31 3 force_quit bit (1) unal, /* OK to quit or abort without query */ 2 32 3 pad bit (34) unal, /* spares */ 2 33 2 page_number fixed bin, /* for listings */ 2 34 2 deckfile_dir char (168) unal, /* location of the deckfile - if inputted with dfm -dkf arg */ 2 35 2 deckfile_entry char (32) unal; /* entry name of the deckfile - if inputted with dfm -dkf arg */ 2 36 2 37 dcl dfm_infop ptr; 2 38 2 39 dcl dfm_info_version_1 char (8) init ("dfmi_001") int static options (constant); 2 40 2 41 /* END OF: dfm_info.incl.pl1 * * * * * * * * * * * * * * * * */ 371 372 3 1 /* BEGIN INCLUDE FILE ... ssu_prompt_modes.incl.pl1 */ 3 2 /* Created: 15 February 1982 by G. Palter */ 3 3 3 4 /* Values for use in calls to ssu_$set_prompt_mode to control prompting by the subsystem listener */ 3 5 3 6 dcl PROMPT bit (1) static options (constant) initial ("0"b); 3 7 dcl DONT_PROMPT bit (1) static options (constant) initial ("1"b); 3 8 3 9 dcl PROMPT_AFTER_NULL_LINES bit (2) static options (constant) initial ("01"b); 3 10 dcl DONT_PROMPT_AFTER_NULL_LINES bit (2) static options (constant) initial ("00"b); 3 11 3 12 dcl PROMPT_IF_TYPEAHEAD bit (3) static options (constant) initial ("000"b); 3 13 dcl DONT_PROMPT_IF_TYPEAHEAD bit (3) static options (constant) initial ("001"b); 3 14 3 15 /* For example: 3 16* call ssu_$set_prompt_mode (sci_ptr, PROMPT | DONT_PROMPT_AFTER_NULL_LINES | DONT_PROMPT_IF_TYPEAHEAD); */ 3 17 3 18 /* END INCLUDE FILE ... ssu_prompt_modes.incl.pl1 */ 373 374 375 end deckfile_manager; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/21/92 1021.1 deckfile_manager.pl1 >spec>install>1031>deckfile_manager.pl1 369 1 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 371 2 01/08/87 1244.2 dfm_info.incl.pl1 >ldd>include>dfm_info.incl.pl1 373 3 04/13/82 1720.2 ssu_prompt_modes.incl.pl1 >ldd>include>ssu_prompt_modes.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. R_ACCESS 000002 constant bit(3) initial packed unaligned dcl 1-11 set ref 182* ab_sw 000100 automatic bit(1) dcl 36 set ref 157* 169* 186* 241* 326* active_fnc_err_ 000010 constant entry external dcl 94 ref 144 addr builtin function dcl 73 ref 222 222 231 231 arg based char packed unaligned dcl 64 set ref 157 157 159 159 161 161 169 169 171 171 173 175 175 177 177 189 198 198 201 201 203 203 205 205 213 213 216 216 218* arg_num 000104 automatic fixed bin(17,0) dcl 39 set ref 153* 154* 362* 362 363* argl 000101 automatic fixed bin(21,0) dcl 37 set ref 154* 157 157 159 159 161 161 169 169 171 171 173 175 175 177 177 189 198 198 201 201 203 203 205 205 213 213 216 216 218 218 argp 000102 automatic pointer dcl 38 set ref 154* 157 157 159 159 161 161 169 169 171 171 173 175 175 177 177 189 198 198 201 201 203 203 205 205 213 213 216 216 218 cleanup 000220 stack reference condition dcl 80 ref 151 code 000105 automatic fixed bin(35,0) dcl 40 set ref 142* 143 144 145* 154* 155 155* 162* 163 163* 164* 166 166* 178* 179 179* 180* 181 181* 182* 183* 190* 191 191* 208* 209 209* 222* 224 224* 228* 229 229* 231* 232 232* 234* 235 235* 253* 254 254* 258* 259 260 260 260 264 265* 272* 274 274* codeptr builtin function dcl 74 ref 226 226 com_err_ 000012 constant entry external dcl 95 ref 145 274 287 287 cu_$af_return_arg 000014 constant entry external dcl 96 ref 142 cu_$arg_list_ptr 000016 constant entry external dcl 97 ref 287 287 cu_$arg_ptr 000020 constant entry external dcl 98 ref 154 363 cu_$generate_call 000022 constant entry external dcl 99 ref 287 debug_sw 000106 automatic bit(1) dcl 41 set ref 159* 171* 243* 327* deckfile_dir 60 based char(168) level 2 packed packed unaligned dcl 2-25 set ref 164* 328* deckfile_entry 132 based char(32) level 2 packed packed unaligned dcl 2-25 set ref 164* 329* deckfile_length 000107 automatic fixed bin(21,0) dcl 42 set ref 162* 164 164 deckfile_ptr 000110 automatic pointer dcl 43 set ref 162* 164 deckfile_string based char packed unaligned dcl 65 set ref 164* dfm_$clean_up 000024 constant entry external dcl 100 ref 304 dfm_$pi_handler 000026 constant entry external dcl 101 ref 234 234 dfm_data_ptr 2 based pointer level 2 dcl 2-25 set ref 239* 306 306* 330* dfm_info based structure level 1 dcl 2-25 set ref 311 324 dfm_info_version_1 000000 constant char(8) initial packed unaligned dcl 2-39 ref 335 dfm_infop 000226 automatic pointer dcl 2-37 set ref 164 164 198 222* 239 302 304 304* 306 306 311 312* 323* 324* 328 329 330 331 332 333 334 335 dfm_request_table_$dfm_request_table_ 000102 external static fixed bin(17,0) dcl 126 set ref 222 222 dfm_version_1 000006 constant char(4) initial packed unaligned dcl 85 set ref 222* error_table_$active_function 000104 external static fixed bin(35,0) dcl 127 set ref 144* error_table_$badopt 000106 external static fixed bin(35,0) dcl 128 set ref 218* error_table_$bigarg 000110 external static fixed bin(35,0) dcl 129 set ref 192* error_table_$inconsistent 000112 external static fixed bin(35,0) dcl 130 set ref 206* error_table_$not_act_fnc 000114 external static fixed bin(35,0) dcl 131 ref 143 expand_pathname_ 000030 constant entry external dcl 102 ref 164 expand_pathname_$add_suffix 000032 constant entry external dcl 103 ref 180 false constant bit(1) initial packed unaligned dcl 86 ref 169 171 173 175 201 326 327 332 333 337 341 342 343 344 348 flags 56 based structure level 2 dcl 2-25 force_quit 56(01) based bit(1) level 3 packed packed unaligned dcl 2-25 set ref 198* 333* free_area based area(1024) dcl 66 ref 311 324 get_system_free_area_ 000034 constant entry external dcl 104 ref 311 324 initiate_file_ 000036 constant entry external dcl 105 ref 182 last_position 000005 constant fixed bin(17,0) initial dcl 87 set ref 228* 231* max_prompt_length 000004 constant fixed bin(17,0) initial dcl 88 set ref 192 192* myname 000003 constant char(3) initial packed unaligned dcl 89 set ref 144* 145* 155* 163* 166* 179* 181* 183* 191* 192* 206* 209* 218* 222* 224* 229* 232* 235* 254* 265* 274* nacode parameter fixed bin(35,0) dcl 359 set ref 356 363* nargl parameter fixed bin(21,0) dcl 360 set ref 356 363* nargp parameter pointer dcl 358 set ref 356 363* nargs 000112 automatic fixed bin(17,0) dcl 44 set ref 142* 153 null builtin function dcl 75 ref 142 142 183 272 272 302 306 309 312 323 330 336 339 346 347 pad 56(02) based bit(34) level 3 packed packed unaligned dcl 2-25 set ref 334* page_number 57 based fixed bin(17,0) level 2 dcl 2-25 set ref 331* profile_dir 000113 automatic char(168) packed unaligned dcl 45 set ref 180* 182* 183* profile_entry 000165 automatic char(32) packed unaligned dcl 46 set ref 180* 182* 183* profile_length 000175 automatic fixed bin(21,0) dcl 47 set ref 178* 180 180 profile_ptr 000176 automatic pointer dcl 48 set ref 178* 180 182* 183 241* 241* 336* profile_string based char packed unaligned dcl 67 set ref 180* profile_sw 000200 automatic bit(1) packed unaligned dcl 49 set ref 186* 337* prompt_length 000201 automatic fixed bin(21,0) dcl 50 set ref 190* 192 245 245 338* prompt_ptr 000202 automatic pointer dcl 51 set ref 190* 245 339* prompt_string based char dcl 68 ref 245 prompt_sw 000204 automatic bit(1) packed unaligned dcl 52 set ref 173* 195* 245 248 340* quit_sw 000205 automatic bit(1) packed unaligned dcl 53 set ref 198* 269 341* ready_sw 000207 automatic bit(1) dcl 55 set ref 201* 203* 250* 343* request_active 56 based bit(1) level 3 packed packed unaligned dcl 2-25 set ref 304 332* request_line_length 000211 automatic fixed bin(21,0) dcl 57 set ref 208* 258* 345* request_line_ptr 000212 automatic pointer dcl 58 set ref 208* 258* 346* request_loop_sw 000206 automatic bit(1) packed unaligned dcl 54 set ref 213* 260 342* request_sw 000210 automatic bit(1) packed unaligned dcl 56 set ref 206 210* 257 344* sci_ptr 000214 automatic pointer dcl 59 set ref 222* 226* 228* 231* 234* 237* 239* 241* 243* 245* 248* 250* 253* 258* 272* 304* 306* 309 309* 347* ssu_$add_info_dir 000040 constant entry external dcl 106 ref 228 ssu_$add_request_table 000042 constant entry external dcl 107 ref 231 ssu_$create_invocation 000044 constant entry external dcl 108 ref 222 ssu_$destroy_invocation 000046 constant entry external dcl 109 ref 309 ssu_$execute_line 000050 constant entry external dcl 110 ref 258 ssu_$execute_start_up 000052 constant entry external dcl 111 ref 253 ssu_$get_temp_segment 000054 constant entry external dcl 112 ref 239 ssu_$listen 000056 constant entry external dcl 113 ref 272 ssu_$record_usage 000060 constant entry external dcl 114 ref 226 ssu_$release_temp_segment 000062 constant entry external dcl 115 ref 306 ssu_$set_abbrev_info 000064 constant entry external dcl 116 ref 241 ssu_$set_debug_mode 000066 constant entry external dcl 117 ref 243 ssu_$set_ec_suffix 000070 constant entry external dcl 118 ref 237 ssu_$set_procedure 000072 constant entry external dcl 119 ref 234 ssu_$set_prompt 000074 constant entry external dcl 120 ref 245 ssu_$set_prompt_mode 000076 constant entry external dcl 121 ref 248 ssu_$set_ready_mode 000100 constant entry external dcl 122 ref 250 ssu_et_$null_request_line 000122 external static fixed bin(35,0) dcl 134 ref 260 ssu_et_$program_interrupt 000120 external static fixed bin(35,0) dcl 133 ref 260 ssu_et_$request_line_aborted 000124 external static fixed bin(35,0) dcl 135 ref 260 ssu_et_$subsystem_aborted 000116 external static fixed bin(35,0) dcl 132 ref 264 274 ssu_info_directories_$standard_requests 000126 external static char(168) packed unaligned dcl 136 set ref 228* ssu_request_tables_$standard_requests 000130 external static bit(36) dcl 137 set ref 231 231 startup_sw 000216 automatic bit(1) packed unaligned dcl 60 set ref 175* 216* 252 348* true 000002 constant bit(1) initial packed unaligned dcl 90 ref 157 159 186 195 198 203 210 213 216 340 version based char(8) level 2 dcl 2-25 set ref 335* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 DONT_PROMPT internal static bit(1) initial packed unaligned dcl 3-7 DONT_PROMPT_AFTER_NULL_LINES internal static bit(2) initial packed unaligned dcl 3-10 DONT_PROMPT_IF_TYPEAHEAD internal static bit(3) initial packed unaligned dcl 3-13 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 PROMPT internal static bit(1) initial packed unaligned dcl 3-6 PROMPT_AFTER_NULL_LINES internal static bit(2) initial packed unaligned dcl 3-9 PROMPT_IF_TYPEAHEAD internal static bit(3) initial packed unaligned dcl 3-12 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 NAMES DECLARED BY EXPLICIT CONTEXT. complain 002371 constant entry internal dcl 285 ref 155 163 166 179 181 183 191 192 206 209 218 224 229 232 235 254 265 deckfile_manager 000352 constant entry external dcl 30 deckfile_manager_cleanup 002425 constant entry internal dcl 300 ref 151 277 dfm 000343 constant entry external dcl 30 ref 226 226 dfm_init 002524 constant entry internal dcl 321 ref 149 listen 002314 constant label dcl 272 ref 260 next_arg 002611 constant entry internal dcl 356 ref 162 178 190 208 subsystem_wrapup 002363 constant label dcl 277 ref 264 269 288 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3446 3600 2702 3456 Length 4124 2702 132 310 544 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dfm 308 external procedure is an external procedure. on unit on line 151 64 on unit complain 80 internal procedure is declared options(variable). deckfile_manager_cleanup 72 internal procedure is called by several nonquick procedures. dfm_init internal procedure shares stack frame of external procedure dfm. next_arg internal procedure shares stack frame of external procedure dfm. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME dfm 000100 ab_sw dfm 000101 argl dfm 000102 argp dfm 000104 arg_num dfm 000105 code dfm 000106 debug_sw dfm 000107 deckfile_length dfm 000110 deckfile_ptr dfm 000112 nargs dfm 000113 profile_dir dfm 000165 profile_entry dfm 000175 profile_length dfm 000176 profile_ptr dfm 000200 profile_sw dfm 000201 prompt_length dfm 000202 prompt_ptr dfm 000204 prompt_sw dfm 000205 quit_sw dfm 000206 request_loop_sw dfm 000207 ready_sw dfm 000210 request_sw dfm 000211 request_line_length dfm 000212 request_line_ptr dfm 000214 sci_ptr dfm 000216 startup_sw dfm 000226 dfm_infop dfm THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return_mac tra_ext_1 enable_op ext_entry int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_return_arg cu_$arg_list_ptr cu_$arg_ptr cu_$generate_call dfm_$clean_up dfm_$pi_handler expand_pathname_ expand_pathname_$add_suffix get_system_free_area_ initiate_file_ ssu_$add_info_dir ssu_$add_request_table ssu_$create_invocation ssu_$destroy_invocation ssu_$execute_line ssu_$execute_start_up ssu_$get_temp_segment ssu_$listen ssu_$record_usage ssu_$release_temp_segment ssu_$set_abbrev_info ssu_$set_debug_mode ssu_$set_ec_suffix ssu_$set_procedure ssu_$set_prompt ssu_$set_prompt_mode ssu_$set_ready_mode THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dfm_request_table_$dfm_request_table_ error_table_$active_function error_table_$badopt error_table_$bigarg error_table_$inconsistent error_table_$not_act_fnc ssu_et_$null_request_line ssu_et_$program_interrupt ssu_et_$request_line_aborted ssu_et_$subsystem_aborted ssu_info_directories_$standard_requests ssu_request_tables_$standard_requests LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 30 000342 142 000357 143 000376 144 000402 145 000421 146 000435 149 000436 151 000437 153 000461 154 000471 155 000506 157 000536 159 000553 161 000566 162 000576 163 000600 164 000625 166 000656 167 000703 169 000704 171 000716 173 000730 175 000736 177 000750 178 000760 179 000762 180 001007 181 001045 182 001072 183 001130 186 001167 187 001172 189 001173 190 001177 191 001201 192 001231 195 001264 196 001266 198 001267 201 001307 203 001321 205 001334 206 001344 208 001372 209 001374 210 001421 211 001423 213 001424 216 001437 218 001452 220 001504 222 001506 224 001555 226 001602 228 001620 229 001645 231 001672 232 001711 234 001736 235 001775 237 002022 239 002036 241 002061 243 002075 245 002106 248 002133 250 002153 252 002164 253 002166 254 002203 257 002233 258 002235 259 002252 260 002254 264 002265 265 002267 269 002312 272 002314 274 002331 277 002363 279 002367 285 002370 287 002376 288 002421 300 002424 302 002432 304 002437 306 002453 309 002472 311 002506 312 002520 316 002523 321 002524 323 002525 324 002527 326 002543 327 002544 328 002545 329 002550 330 002553 331 002555 332 002557 333 002561 334 002563 335 002565 336 002570 337 002572 338 002573 339 002574 340 002575 341 002577 342 002600 343 002601 344 002602 345 002603 346 002604 347 002606 348 002607 350 002610 356 002611 362 002613 363 002614 366 002632 ----------------------------------------------------------- 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