COMPILATION LISTING OF SEGMENT gcos_sysout_writer_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 09/09/83 1145.4 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gcos_sysout_writer_: proc; 7 8 /* ****************************************************** 9* * * 10* * * 11* * Copyright (c) 1972 by Massachusetts Institute of * 12* * Technology and Honeywell Information Systems, Inc. * 13* * * 14* * * 15* ****************************************************** */ 16 17 /* PROCEDURE TO SEND SYSOUT FILES TO PRINTER OR CARD PUNCH 18* 19* Calls gcos_sysprint and gcos_syspunch commands to translate files from BCD 20* to Multics-usable format (Multics ASCII for printer, RAW mode for punch). 21* 22* Calls dprint and dpunch commands (if necessary) to place converted files on 23* daemon output queues. 24* 25* We use cu_$cp to call these commands. This has two side effects: 26* 27* 1) ABBREV may be used to supply default arguments to these commands 28* (e.g. -he -ds), and 29* 30* 2) the search rule "referencing directory" will not find gcos_sysprint 31* or gcos_syspunch, even if they are in the same directory as the gcos 32* simulator. 33* 34**/ 35 36 /* 37* 38* WRITTEN BY T. CASEY MAR 73 39* MODIFIED BY T. CASEY APR 74 40* AUG 74 41* MODIFIED BY D. KAYDEN MAR 75 42* JUN 75 43* MODIFIED BY R.H. MORRISON JUL 75 44* MODIFIED BY S.C. AKERS DEC 81 Fix "-syot_dir" ctl_arg so gsp and gspn 45* look in the right place for input, and 46* put the output in the working_dir. 47* 48**/ 49 50 call initialize_routine; 51 52 do i = save_data.sqindex-1 to 1 by -1; /* sqindex points to first FREE spot in queue */ 53 converted = "0"b; 54 call build_io_pathnames; /* Build the pathnames for input and output files. */ 55 56 medium = save_data.sysout_queue_media (i); /* pick up media code */ 57 58 if medium = 1 /* punch file */ 59 then call process_punch; 60 else if medium = 3 61 then call process_print; /* print file */ 62 63 else do; /* must be bad media code */ 64 call com_err_ (0, "gcos", 65 "Bad sysout media code; file not processed:^/^a", 66 in_pathname); 67 68 goto next_file; 69 end; 70 71 if ^gcos_ext_stat_$save_data.nosave /* if save/restart is active */ 72 then do; 73 save_data.sqindex = i; /* set sysout queue index so that this entry is not */ 74 /* processed again */ 75 saved_sqindex = i; /* and also saved value of sqindex */ 76 end; 77 78 if delete 79 then call delete_original; 80 81 if gcos_ext_stat_$save_data.gtssflag 82 then if not_queued 83 then call gcos_gtss_update_$status_update (OUTPUT_WAITING); 84 else call gcos_gtss_update_$status_update (OUTPUT_COMPLETE); 85 86 if ^gcos_ext_stat_$save_data.brief /* unless told otherwise, */ 87 & not_queued /* print names of files not queued for daemon output */ 88 then do; 89 if ^printed_heading /* print heading once PER CALL */ 90 then do; 91 call ioa_ ("^/GCOS sysout files NOT queued for daemon output:"); 92 printed_heading = "1"b; 93 end; 94 if ^converted /* Which name to ship to user. */ 95 then call ioa_ (in_pathname); 96 else call ioa_ (out_pathname); 97 end; 98 next_file: ; 99 end; 100 101 return; 102 103 build_io_pathnames: proc; /* Build the input and output pathnames. */ 104 105 in_pathname = save_data.syot_dir 106 ||">" 107 ||rtrim (save_data.sysout_queue (i)); 108 109 l = length (in_pathname); /* remember pathname length */ 110 111 out_pathname = rtrim (output_dir) 112 ||">" 113 ||rtrim (save_data.sysout_queue (i)); 114 115 return; 116 117 end build_io_pathnames; 118 119 command_error_handler: proc; /* Does the dirty work when command_error 120* occurs in the syspunch, sysprint, dpunch, 121* or dprint routines. */ 122 123 on condition (command_error); /* Can't handle it here. */ 124 command_error_switch = "1"b; /* turn on a static switch */ 125 call continue_to_signal_ (code); /* and then go print normal message on terminal */ 126 if code ^= 0 /* can't figure why, but better say something */ 127 then call com_err_ (code, "gcos_sysout_writer_:", 128 "Error while attempting to ""continue_to_signal_ command_error"" "); 129 revert command_error; 130 131 return; 132 133 end command_error_handler; 134 135 delete_original: proc; 136 delete = "0"b; /* turn off delete switch */ 137 call delete_$path (syotdir, /* directory portion of pathname */ 138 (save_data.sysout_queue (i)), /* entry portion of pathname */ 139 "000100"b, /* noforce,noquestion,nodirectories,segments,nolinks,nochase */ 140 "gcos", /* name of caller */ 141 code); /* error code */ 142 if code ^= 0 143 then call com_err_ (code, "gcos", "while attempting to delete ^a", 144 substr (in_pathname, 1, l)); /* pathname, less .raw or .list suffix */ 145 146 return; 147 148 end delete_original; 149 150 initialize_routine: proc; /* Performs initialization chores. */ 151 152 153 delete, not_queued, printed_heading = "0"b; /* Turn off the flags. */ 154 155 syotdir = save_data.syot_dir; /* Save for "delete" call */ 156 output_dir = get_wdir_ (); /* Where to put the Multics 157* printer and punch files. */ 158 159 saved_sqindex_offset = fixed (rel (addr (save_data.sqindex))) 160 - fixed (rel (addr (gcos_ext_stat_$save_data))); 161 saved_sqindex_ptr = addrel (addr (restart_control.restart_data), 162 saved_sqindex_offset); 163 164 return; 165 166 end initialize_routine; 167 168 process_print: proc; /* Process a print file. */ 169 170 not_queued = "1"b; /* switch turned off only if dprint called later */ 171 if gcos_ext_stat_$save_data.list /* If we need to translate from bcd */ 172 then do; /* then call translation command */ 173 out_pathname = out_pathname || ".list"; 174 175 varline = "gcos_sysprint " || in_pathname || " " || out_pathname; 176 177 if gcos_ext_stat_$save_data.lower_case 178 then varline = varline || " -lower_case"; 179 line = varline; 180 len = length (varline); 181 command_error_switch = "0"b; 182 on condition (command_error) 183 call command_error_handler; 184 call cu_$cp (addr (line), len, code); 185 revert command_error; 186 if code ^= 0 187 | command_error_switch 188 then do; /* if any problem */ 189 call com_err_ (code, "gcos_sysout_writer_", 190 "Error in sysout conversion; original not deleted:^/^a", 191 in_pathname); 192 193 goto next_file; 194 end; 195 196 delete = "1"b; /* remember to delete original */ 197 converted = "1"b; 198 if gcos_ext_stat_$save_data.dprint /* If we're to print it */ 199 then do; /* then call dprint command */ 200 varline = "dprint " || gcos_ext_stat_$dpo || " " || out_pathname; 201 line = varline; 202 len = length (varline); 203 204 command_error_switch = "0"b; 205 on condition (command_error) 206 call command_error_handler; 207 call cu_$cp (addr (line), len, code); 208 revert command_error; 209 if code ^= 0 210 | command_error_switch /* if any problem */ 211 then do; 212 call com_err_ (code, "gcos_sysout_writer_", 213 "^/Error in sysout call; listing file not dprinted or deleted:^/^a", 214 out_pathname); 215 goto next_file; 216 end; 217 218 not_queued = "0"b; /* file on dprint queue so turn off switch */ 219 end; 220 end; 221 222 return; 223 224 end process_print; 225 226 process_punch: proc; 227 228 not_queued = "1"b; /* switch turned off only if dpunch called later */ 229 230 if gcos_ext_stat_$save_data.raw /* If we're to translate from BCD */ 231 then do; /* then call translation command */ 232 out_pathname = out_pathname || ".raw"; /* syspunch so names its output file */ 233 varline = "gcos_syspunch " || in_pathname; 234 line = varline; 235 len = length (varline); 236 237 command_error_switch = "0"b; 238 on condition (command_error) 239 call command_error_handler; 240 call cu_$cp (addr (line), len, code); 241 revert command_error; 242 243 if code ^= 0 244 | command_error_switch 245 then do; /* if any problem, print message and go on to next file */ 246 call com_err_ (code, "gcos_sysout_writer_", 247 "Error in sysout conversion; original not deleted:^/^a", 248 in_pathname); 249 goto next_file; 250 end; 251 252 delete = "1"b; /* remember to delete the original */ 253 converted = "1"b; 254 255 if gcos_ext_stat_$save_data.dpunch /* if to be dpunched */ 256 then do; 257 varline = "dpunch " || gcos_ext_stat_$dpno || " " || out_pathname; 258 line = varline; 259 len = length (varline); 260 261 command_error_switch = "0"b; 262 on condition (command_error) 263 call command_error_handler; 264 call cu_$cp (addr (line), len, code); 265 revert command_error; 266 if code ^= 0 | command_error_switch 267 then do; /* if problem in dpunch */ 268 call com_err_ (code, "gcos_sysout_writer_", 269 "Error in sysout dpunch call; output file will not dpunched or deleted:^/^a", 270 out_pathname); 271 goto next_file; 272 end; 273 274 not_queued = "0"b; /* file on dpunch queue, so turn off switch */ 275 end; 276 277 end; 278 279 return; 280 281 end process_punch; 282 283 /* External Entries */ 284 285 dcl ioa_ ext entry options (variable); 286 dcl size builtin; 287 dcl com_err_ ext entry options (variable); 288 dcl continue_to_signal_ ext entry (fixed bin(35)); 289 dcl cu_$cp ext entry (ptr, fixed bin(24), fixed bin(35)); 290 dcl delete_$path ext entry (char (*), char (*), bit (6), char (*), fixed bin(35)); 291 dcl get_wdir_ entry() returns(char(168)); 292 dcl gcos_restart_$save ext entry; 293 294 /* Work Variables */ 295 296 dcl code fixed bin(35); 297 dcl command_error condition; 298 dcl command_error_switch bit (1) aligned int static; 299 dcl converted bit (1); 300 dcl delete bit (1); /* switch on if bcd file to be deleted */ 301 dcl in_pathname char (168) varying; 302 dcl len fixed bin(24); 303 dcl line char (500); /* fixed length version for cu_$cp parameter */ 304 dcl not_queued bit (1); /* switch on if "not queued" message needed for this file */ 305 dcl out_pathname char (168) varying; 306 dcl output_dir char (168); 307 dcl printed_heading bit (1); /* switch on if "not queued" heading already printed */ 308 dcl saved_sqindex fixed bin (24) 309 based (saved_sqindex_ptr); /* sqindex value in save_data */ 310 dcl saved_sqindex_offset fixed bin(24); 311 dcl saved_sqindex_ptr ptr; 312 dcl syotdir char (168); 313 dcl varline char (500) varying; /* place to construct command line for cu_$cp calls */ 314 dcl (addr, addrel, rel, index, length, substr) builtin; 315 dcl (i, j, l, medium) fixed bin(24); 316 1 1 /* BEGIN INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 1 2 /* 1 3* Changes to gcos_ext_stat_ must be made here AND gcos_ext_stat_.cds 1 4**/ 1 5 /* July 77 (MRJ) Mike Jordan. */ 1 6 /* Change: Mel Wilson Oct 1979 for gtss compatibility (Bell Canada). */ 1 7 /* Change: A. N. Kepner, March, 1978 to allow courtesy call i/o within cc routines. */ 1 8 /* Change: Dave Ward 06/01/81 Reorganized to eliminate alm object (using cds). Use of like structures. */ 1 9 /* Change: Scott C. Akers 01/26/82 Add tape_buffer_size for GEINOS processing. */ 1 10 /* Change: Ron Barstad 83-08-02 Added activity_card_num for execution report */ 1 11 /* Increased size of statistics for 4js3 MMEs */ 1 12 1 13 dcl gcos_ext_stat_$abort_reason char(128) varying /* abort reason from gcos pgm */ ext; 1 14 dcl gcos_ext_stat_$abort_return label /* abort return point */ ext; 1 15 dcl gcos_ext_stat_$activity_card_num pic "9999" ext; /* card number defining current activity */ 1 16 dcl gcos_ext_stat_$activity_name char(8) /* name of activity to be run */ ext; 1 17 dcl gcos_ext_stat_$activity_start_time fixed bin(71) /* TOD start of activity */ ext; 1 18 dcl gcos_ext_stat_$card_num pic "9999" /* ordinal number of card in input stream */ ext; 1 19 dcl gcos_ext_stat_$dbs (36)bit(1) /* Debugging switch. */ ext; 1 20 dcl gcos_ext_stat_$default_nondollar char(2) /* filecode where nondollar cards go by default */ ext; 1 21 dcl gcos_ext_stat_$dir_rings (3) fixed bin(3) /* ring brackets for created catalogs */ ext; 1 22 dcl gcos_ext_stat_$dpno char(100) varying /* arguments for call to dpunch */ ext; 1 23 dcl gcos_ext_stat_$dpo char(100) varying /* arguments for call to dprint */ ext; 1 24 dcl gcos_ext_stat_$endfc char(2) /* endfc value for endcopy processing */ ext; 1 25 dcl gcos_ext_stat_$er ptr /* fib pointer for *er */ ext; 1 26 dcl gcos_ext_stat_$etc_filecode char(2) /* filecode where $ ETC cards should be written */ ext; 1 27 dcl gcos_ext_stat_$gcos_slave_area_seg ptr /* pointer to gcos slave area segment */ ext; 1 28 dcl gcos_ext_stat_$gf fixed bin(24)/* sw used by getfield rtn */ ext; 1 29 dcl gcos_ext_stat_$incode fixed bin(24) /* switches to control incode processing */ ext; 1 30 dcl gcos_ext_stat_$increment_hold fixed bin(24) /* Holds increment for courtesy call returns. */ ext; 1 31 dcl gcos_ext_stat_$initial_cpu_time fixed bin(71) /* vcu time at activity start */ ext; 1 32 dcl gcos_ext_stat_$input_segment_path char(168) varying /* pathname of input segment */ ext; 1 33 dcl gcos_ext_stat_$jcl_warnings fixed bin(24) /* number warnings issued processing control cards */ ext; 1 34 dcl gcos_ext_stat_$job_cpu_time fixed bin(71) /* cpu usage at job start */ ext; 1 35 dcl gcos_ext_stat_$job_id char(18) varying /* unique job id for file naming */ ext; 1 36 dcl gcos_ext_stat_$job_real_time fixed bin(71) /* job start time in microseconds */ ext; 1 37 dcl gcos_ext_stat_$last_mme fixed bin(24)/* number of last mme executed */ ext; 1 38 dcl gcos_ext_stat_$ldrss fixed bin(24) /* loader shared stg. */ ext; 1 39 dcl gcos_ext_stat_$max_activities fixed bin(24)/* max activities in a job */ ext; 1 40 dcl gcos_ext_stat_$max_mem fixed bin(19) /* maximum memory available to an activity */ ext; 1 41 dcl gcos_ext_stat_$mme_rtrn label /* where to return at activity end */ ext; 1 42 dcl gcos_ext_stat_$nondollar char(2) /* non-dollar card file code */ ext; 1 43 dcl gcos_ext_stat_$nongcos char(2) /* filecode where nongcos dollar cards go */ ext; 1 44 dcl gcos_ext_stat_$normal_return label /* nonlocal goto for normal termination */ ext; 1 45 dcl gcos_ext_stat_$patchfile_ptr ptr /* pointer to patchfile */ ext; 1 46 dcl gcos_ext_stat_$pathname_prefix char(168)var ext; 1 47 dcl gcos_ext_stat_$pch ptr /* pointer to fib for syspunch collector file */ ext; 1 48 dcl gcos_ext_stat_$pdir char(168) varying /* pathname of process directory */ ext; 1 49 dcl gcos_ext_stat_$prt ptr /* pointer to fib for sysprint collector file */ ext; 1 50 dcl gcos_ext_stat_$rs ptr /* pointer to fib for geload r* collector file */ ext; 1 51 dcl gcos_ext_stat_$saveseg_ptr ptr /* pointer to save segment used by save/restart */ ext; 1 52 dcl gcos_ext_stat_$save_dir char(168) varying /* pathname of temp save directory */ ext; 1 53 dcl gcos_ext_stat_$seg_rings (3) fixed bin(3) /* ring brackets for created files */ ext; 1 54 dcl gcos_ext_stat_$sig_ptr ptr /* saved pointer to signal_ */ ext; 1 55 dcl gcos_ext_stat_$skip_umc bit(1) ext; 1 56 dcl gcos_ext_stat_$snumb bit (30) aligned /* snumb of the current job */ ext; 1 57 dcl gcos_ext_stat_$sought_label char(8) /* Label from GOTO, IF, or WHEN card */ ext; 1 58 dcl gcos_ext_stat_$statistics (3*44) fixed bin(24) /* mme usage statistics- 3 per mme */ ext; 1 59 dcl gcos_ext_stat_$stop_code fixed bin(24) /* debugging, print results and stop. */ ext; 1 60 dcl gcos_ext_stat_$storage_limit fixed bin(19) /* activity storage limit */ ext; 1 61 dcl gcos_ext_stat_$sysout_limit fixed bin(35) /* sysout line limit */ ext; 1 62 dcl gcos_ext_stat_$sysout_lines fixed bin(35) /* sysout lines used */ ext; 1 63 dcl gcos_ext_stat_$system_free_pointer ptr /* pointer to area for allocating in ext; set by gcos */ ext; 1 64 dcl gcos_ext_stat_$tape_buffer_size fixed bin(35) external static; /* tape buffer size for GEINOS. */ 1 65 dcl gcos_ext_stat_$temp_dir char(168) varying /* pathname of directory to hold temp files */ ext; 1 66 dcl gcos_ext_stat_$temp_seg_ptr ptr ext; 1 67 dcl gcos_ext_stat_$termination_code bit (18) /* termination code from gcos_mme_bort_ */ ext; 1 68 dcl gcos_ext_stat_$time_limit fixed bin(71) /* activity time limit */ ext; 1 69 dcl gcos_ext_stat_$userid char(12) /* the USERID */ ext; 1 70 dcl gcos_ext_stat_$validation_level fixed bin(3) /* current ring of execution */ ext; 1 71 1 72 /* Courtesy Call Queue 1 73* A queue for courtesy call addresses which must be saved during 1 74* execution of courtesy call routines. A courtesy call address is 1 75* saved each time a MME GEROUT or MME GEINOS, which specifies a 1 76* courtesy call, is executed within a courtesy call routine. Each 1 77* time a MME GEENDC is executed a courtesy call address will be 1 78* removed from this FIFO queue and the corresponding courtesy call 1 79* routine executed until the queue is empty. The FIFO "queue" is 1 80* implemented in a circular fashion. "next_avail" points to the 1 81* next empty location in the queue. "next_out" points to the 1 82* entry in the queue which has been in the queue longest. When 1 83* entering or removing entries from the queue the appropriate index 1 84* is incremented modulo the length of the queue. By convention the 1 85* queue is empty when "next_avail" equals "next_out". A 1 86* second convention is that the queue is considered to overflow 1 87* during an attempt to add an entry to the queue which would force 1 88* "next_avail" to "catch up" with "next_out". This means that 1 89* the last empty position in the queue will never be used. 1 90**/ 1 91 1 92 dcl 1 gcos_ext_stat_$courtesy_call_control aligned ext 1 93 , 3 courtesy_call 1 94 , 4 hold like save_machine_conditions /* Mach. conds. restored on courtesy call returns. */ 1 95 , 4 next_avail fixed bin(24) /* next available empty location in cc_queue. */ 1 96 , 4 next_out fixed bin(24) /* next entry to remove from cc_queue. */ 1 97 , 4 queue (6) fixed bin(24) 1 98 ; 1 99 2 1 /* BEGIN INCLUDE FILE gcos_save_mc.incl.pl1 (Wardd Multics) 09/12/81 0905.9 mst Sat */ 2 2 2 3 /* Structure to isolate the definition of the size of the 2 4*space needed to store he machine conditions structure (mc). 2 5**/ 2 6 dcl 1 save_machine_conditions based 2 7 , 3 save_space bit(1728) 2 8 ; 2 9 2 10 /* END INCLUDE FILE gcos_save_mc.incl.pl1 */ 1 100 1 101 1 102 dcl 1 gcos_ext_stat_$fct aligned ext, 1 103 3 fct (40) like fct_entry; 3 1 /* BEGIN INCLUDE FILE gcos_fct_entry.incl.pl1 (Wardd Multics) 05/30/81 1758.6 mst Sat */ 3 2 3 3 dcl 1 fct_entry aligned based, 3 4 2 filecode char(2) aligned, /* file code (or blank) */ 3 5 /* flags */ 3 6 2 sysout bit(1) unaligned, /* 1=file is sysout or dac */ 3 7 2 dac bit(1) unaligned, /* 1=file is dac,0=file is sysout */ 3 8 2 pad bit(34) unaligned, /* unused */ 3 9 2 fibptr ptr aligned /* ptr to fib for this file */ 3 10 ; 3 11 3 12 /* END INCLUDE FILE gcos_fct_entry.incl.pl1 */ 1 104 1 105 1 106 dcl 1 gcos_ext_stat_$save_data aligned ext, 1 107 3 save_data like save_data_entry; 4 1 /* BEGIN INCLUDE FILE gcos_save_data_entry.incl.pl1 (Wardd Multics) 07/01/81 1339.9 mst Wed */ 4 2 /* Change: Dave Ward 07/01/81 include gcos_flags_. */ 4 3 /* Change: Dave Ward 09/10/81 fib changed to fibs & likened to fib. */ 4 4 4 5 dcl 1 save_data_entry aligned based 4 6 ,3 flgs like flags /* system wide flgs */ 4 7 ,3 actid char(8) /* activity no. and accnt i.d. */ 4 8 ,3 short_actid bit(36) aligned /* short form of activity id */ 4 9 ,3 ident char(60) /* holds ident info from snumb card */ 4 10 ,3 psw bit(36) aligned /* program switch word */ 4 11 ,3 last_execute_act_no fixed bin(24)/* activity number of last $ EXECUTE card in job */ 4 12 ,3 activity_no fixed bin(24)/* activity number */ 4 13 ,3 job_time_limit fixed bin(71) /* job time limit */ 4 14 ,3 job_sysout_limit fixed bin(24)/* job sysout line limit */ 4 15 ,3 sysout_queue (10) char(32) /* sysout queue */ 4 16 ,3 sysout_queue_media (10) fixed bin(24)/* medium (print,punch) of each file on queue */ 4 17 ,3 sqindex fixed bin(24)/* curr offset in sysout queue */ 4 18 ,3 pathname_prefix char(168)varying /* prefix for gcos cfdescs */ 4 19 ,3 skip_umc aligned bit(1) /* flag to tell if we should skip umc names */ 4 20 ,3 job_deck pointer /* pointer to seg holding canonicalized job deck */ 4 21 ,3 jd_size fixed bin(24)/* size in words of job deck */ 4 22 ,3 jd_position fixed bin(24) /* position of current block of job deck */ 4 23 ,3 jd_rem_block_len fixed bin(24)/* words remaining in current block of job deck */ 4 24 ,3 syot_dir char(168)varying /* pathname of directory to hold sysout files */ 4 25 ,3 fibs (40) like fib 4 26 ,3 param (32) char(57)varying /* parameters */ 4 27 ; 4 28 5 1 /* BEGIN INCLUDE FILE gcos_flags.incl.pl1 (Wardd Multics) 07/01/81 1344.7 mst Wed */ 5 2 /* Change: Mel Wilson 03/01/79 to add gtssflag & identflag */ 5 3 /* Change: Dave Ward 07/01/81 revised, mad apart of gcos_ext_stat_. */ 5 4 5 5 5 6 /* Declaration of Simulator Wide Flags */ 5 7 5 8 dcl 1 flags aligned based, 5 9 2 ( 5 10 pad1, /* no longer used */ 5 11 copy, /* 1=copy option on|0=off */ 5 12 snumb, /* 1=snumb card read|0=not */ 5 13 ident, /* 1=ident card read|0=not */ 5 14 activ, /* 1=activity being defined|0=not */ 5 15 cc, /* 1=courtesy call active|0=not */ 5 16 pad2, /* no longer used */ 5 17 cksum, /* 1=don't check checksums|0=do */ 5 18 pad3, /* no longer used */ 5 19 wrapup, /* 1=processing wrapup after abort */ 5 20 5 21 /* FOLLOWING ADDED AFTER MARCH 73 */ 5 22 5 23 nosave, /* 1=disable save/restart function,0=not */ 5 24 pad4, /* no longer used */ 5 25 gcos, /* 1=job deck segment in gcos file format */ 5 26 raw, /* 1=sysout punch files to be converted to raw bit strings */ 5 27 list, /* 1=sysout print files to be converted to ascii */ 5 28 brief, /* 1=print nothing but fatal error messages on terminal */ 5 29 debug, /* 1=give option to call debug before aborting */ 5 30 no_canonicalize, /* 1=do NOT canonicalize job deck */ 5 31 5 32 /* 18 bits into first word */ 5 33 5 34 pad5, /* no longer used */ 5 35 dpunch, /* 1=dpunch sysout punch files;0=don't */ 5 36 dprint, /* 1=dprint sysout print files,0=don't */ 5 37 userid, /* 1=userid card read,0=not */ 5 38 userlib, /* 1= -userlib ctl arg given, see gcos_gein_ */ 5 39 dstar, /* 1=current activity card written on d* */ 5 40 write_etc, /* 1 tells get_cc_field to write $ ETC cards on etc_filecode */ 5 41 prev_act_abort, /* turned on by abort and off by $ BREAK */ 5 42 this_act_abort, /* turned on by abort to select abort disp codes */ 5 43 abort_subact, /* 1=processing abort subactivity */ 5 44 dump, /* 1=dump option given on activity card */ 5 45 nondollar, /* 1=reading nondollar card deck in gein */ 5 46 endjob, /* 1=cc_endjob already called once in this job */ 5 47 abort_card, /* 1=the terminator for this activity was a $ ABORT card */ 5 48 truncate, /* 1=truncate option given:truncate long ascii input lines */ 5 49 continue, /* 1=continue option given:continue after nonfatal errors */ 5 50 rout, /* 1=gcos_mme_rout_ was called in this activity */ 5 51 seeking, /* 1=gein is looking for a label and/or terminator */ 5 52 5 53 /* end of first word */ 5 54 5 55 seeking_terminator, /* 1=gein is looking for a terminator */ 5 56 lower_case, /* 1=lower case print conversion wanted */ 5 57 no_bar, /* 1=do not run slave program in BAR mode */ 5 58 long, /* 1=print some lines from execution reort on terminal */ 5 59 endfc, /* 1=process endfc option on endcopy card */ 5 60 gtssflag, /* 1=update gtss_user_state_ during execution */ 5 61 identflag, /* 1= use $ident banner info for print & punch */ 5 62 spawnflag, /* 1= entry due to tss spawn */ 5 63 taskflag /* 1= entry due to tss drl task */ 5 64 ) bit(1) unal, 5 65 2 pad6 bit(27)unal 5 66 ; 5 67 5 68 /* END INCLUDE FILE gcos_flags.incl.pl1 */ 4 29 4 30 4 31 /* END INCLUDE FILE gcos_save_data_entry.incl.pl1 */ 1 108 1 109 6 1 /* BEGIN INCLUDE FILE gcos_file_info_block_.incl.pl1 DAK - APRIL 74 */ 6 2 6 3 /* Declaration of File Information Block (fib) 6 4* 6 5* Change: Mel Wilson 11/01/79 for gtss compatibility 6 6* Change: Dave Ward 05/20/81 *_file constants. 6 7* Change: Dave Ward 05/29/81 separated fct structures. 6 8* Change: Dave Ward 09/02/81 provision for tape density 6250, dens_hist 2 bits (not 3). 6 9**/ 6 10 dcl 1 fib aligned based (fibptr) /* fib structure */ 6 11 6 12 , 2 buffer ptr aligned /* pointer to current buffer (gcos_write_) */ 6 13 , 2 buffer_indx fixed bin /* Index to buffer in use. */ 6 14 , 2 stream char(8)unal /* stream name for attaching this file */ 6 15 , 2 pathnm char(168)unal /* pathname (for disk, print or punch files) */ 6 16 , 2 unique_file_id bit(36) /* multics unique segment id for file */ 6 17 , 2 indicators /* five words of flags */ 6 18 6 19 , 3 indicators_word_1 6 20 , 4 used bit(1) unal /* 1=fib used, 0=fib used */ 6 21 , 4 attached bit(1) unal /* 1=stream is attached */ 6 22 , 4 type bit(1) unal /* 1=random, 0=linked */ 6 23 , 4 perm bit(1) unal /* 1=permanent file, 0=not */ 6 24 , 4 print bit(1) unal /* 1=file type is printer */ 6 25 , 4 punch bit(1) unal /* 1=file type is punch */ 6 26 , 4 reader bit(1) unal /* 1=file type is card reader */ 6 27 , 4 tape bit(1) unal /* 1=file type is tape */ 6 28 , 4 console bit(1) unal /* 1=file type is console typewriter */ 6 29 , 4 read bit(1) unal /* 1=read access permitted */ 6 30 , 4 write bit(1) unal /* 1=write access permitted */ 6 31 , 4 null bit(1) unal /* 1=file is null */ 6 32 , 4 purge bit(1) unal /* 1=purge file at time on release */ 6 33 , 4 gein bit(1) unal /* 1 = this file contains data cards from the job deck */ 6 34 , 4 disp bit(2) unal /* disposition code: 6 35* 00 = dismount 6 36* 01 = release 6 37* 10 = save 6 38* 11 = continue */ 6 39 , 4 adisp bit(2) unal /* abort disp - same codes as disp */ 6 40 , 4 order bit(1) unal /* 1 = write, 0 = read or other */ 6 41 , 4 mode bit(2) unal /* tape i/o mode 6 42* 00 = binary 6 43* 01 = decimal 6 44* 10 = nine */ 6 45 , 4 tracks bit(2) unal /* tape request code: 6 46* 00 = installation default 6 47* 01 = 7 track 6 48* 10 = 9 track */ 6 49 , 4 density bit(4) unal /* tape density from $ TAPE card 6 50* 0000 = site standard high 6 51* 0001 = 200 bpi 6 52* 0010 = 556 bpi 6 53* 0100 = 800 bpi 6 54* 1001 = 1600 bpi 6 55* 1100 = 6250 bpi 6 56* 1111 = handler capable of any appropriate denisty */ 6 57 , 4 dens_hist bit(2) unal /* density history for MME GEFADD */ 6 58 , 4 forced_acl_flag bit(1) unal /* 1 => acl forced for gtss file (2.4) */ 6 59 , 4 fill bit(6) unal /* reserved for future use */ 6 60 , 3 indicators_word_2 6 61 , 4 plud bit(18) unal /* primary log unit designator */ 6 62 /* bcd channel and channel number */ 6 63 6 64 , 4 slud bit(18) unal /* secondary log. unit designator */ 6 65 /* bcd channel and channel number */ 6 66 , 3 indicators_word_3 6 67 , 4 serial_no bit(30) unal /* tape serial number */ 6 68 , 4 pad bit( 6) unal /* unused */ 6 69 , 3 indicators_word_4 6 70 , 4 tape_name bit(72) unal /* tape name */ 6 71 6 72 , 2 current fixed bin(21) /* current file position */ 6 73 , 2 last fixed bin(21) /* eof for sequential disk files */ 6 74 , 2 size fixed bin(24) /* offset of end of file in words */ 6 75 , 2 init_size fixed bin(24) /* file size at start of activity */ 6 76 , 2 init_posit fixed bin(24) /* file position at start of activity */ 6 77 , 2 iocount fixed bin(35) /* total no. of i/o operations */ 6 78 , 2 rec_len fixed bin(24) /* length of current record (gcos_write_) */ 6 79 , 2 command_count fixed bin(17) unal /* size of command table for device (gcos_mme_inos_) */ 6 80 , 2 command_index fixed bin(17) unal /* pointer to command table entry (gcos_mme_inos_) */ 6 81 , 2 error_retry fixed bin(17) unal /* error retry counter */ 6 82 , 2 seq_no fixed bin(17) unal /* tape reel sequence no */ 6 83 ; 6 84 dcl fibptr ptr /* pointer to current fib in gcos_ext_stat_ */; 6 85 6 86 /* File usage classification constants: */ 6 87 dcl linked_file bit(1)static int options(constant)init("0"b); 6 88 dcl random_file bit(1)static int options(constant)init("1"b); 6 89 dcl read_file bit(1)static int options(constant)init("0"b); 6 90 dcl write_file bit(1)static int options(constant)init("1"b); 6 91 6 92 /* END INCLUDE FILE gcos_file_info_block_.incl.pl1 */ 1 110 1 111 1 112 dcl 1 gcos_ext_stat_$mc like mc /* machine condition from abort or fault */ ext; 7 1 /* */ 7 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 7 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 7 4 /* Modified 07/07/76 by Morris for fault register data */ 7 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 7 6 /* Modified '82 to make values constant */ 7 7 7 8 /* words 0-15 pointer registers */ 7 9 7 10 dcl mcp ptr; 7 11 7 12 dcl 1 mc based (mcp) aligned, 7 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 7 14 (2 regs, /* registers */ 7 15 3 x (0:7) bit (18), /* index registers */ 7 16 3 a bit (36), /* accumulator */ 7 17 3 q bit (36), /* q-register */ 7 18 3 e bit (8), /* exponent */ 7 19 3 pad1 bit (28), 7 20 3 t bit (27), /* timer register */ 7 21 3 pad2 bit (6), 7 22 3 ralr bit (3), /* ring alarm register */ 7 23 7 24 2 scu (0:7) bit (36), 7 25 7 26 2 mask bit (72), /* mem controller mask at time of fault */ 7 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 7 28 2 errcode fixed bin (35), /* fault handler's error code */ 7 29 2 fim_temp, 7 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 7 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 7 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 7 33 2 fault_reg bit (36), /* fault register */ 7 34 2 pad2 bit (1), 7 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 7 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 7 37 2 fault_time bit (54), /* time of fault */ 7 38 7 39 2 eis_info (0:7) bit (36)) unaligned; 7 40 7 41 7 42 dcl (apx fixed bin init (0), 7 43 abx fixed bin init (1), 7 44 bpx fixed bin init (2), 7 45 bbx fixed bin init (3), 7 46 lpx fixed bin init (4), 7 47 lbx fixed bin init (5), 7 48 spx fixed bin init (6), 7 49 sbx fixed bin init (7)) internal static options (constant); 7 50 7 51 7 52 7 53 7 54 dcl scup ptr; 7 55 7 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 7 57 7 58 7 59 /* WORD (0) */ 7 60 7 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 7 62 3 prr bit (3), /* procedure ring register */ 7 63 3 psr bit (15), /* procedure segment register */ 7 64 3 p bit (1), /* procedure privileged bit */ 7 65 7 66 2 apu, /* APPENDING UNIT STATUS */ 7 67 3 xsf bit (1), /* ext seg flag - IT modification */ 7 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 7 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 7 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 7 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 7 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 7 73 3 dsptw bit (1), /* Fetch of DSPTW */ 7 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 7 75 3 sdwp bit (1), /* Fetch of SDW paged */ 7 76 3 ptw bit (1), /* Fetch of PTW */ 7 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 7 78 3 fap bit (1), /* Fetch of final address paged */ 7 79 3 fanp bit (1), /* Fetch of final address non-paged */ 7 80 3 fabs bit (1), /* Fetch of final address absolute */ 7 81 7 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 7 83 7 84 7 85 /* WORD (1) */ 7 86 7 87 2 fd, /* FAULT DATA */ 7 88 3 iro bit (1), /* illegal ring order */ 7 89 3 oeb bit (1), /* out of execute bracket */ 7 90 3 e_off bit (1), /* no execute */ 7 91 3 orb bit (1), /* out of read bracket */ 7 92 3 r_off bit (1), /* no read */ 7 93 3 owb bit (1), /* out of write bracket */ 7 94 3 w_off bit (1), /* no write */ 7 95 3 no_ga bit (1), /* not a gate */ 7 96 3 ocb bit (1), /* out of call bracket */ 7 97 3 ocall bit (1), /* outward call */ 7 98 3 boc bit (1), /* bad outward call */ 7 99 3 inret bit (1), /* inward return */ 7 100 3 crt bit (1), /* cross ring transfer */ 7 101 3 ralr bit (1), /* ring alarm register */ 7 102 3 am_er bit (1), /* associative memory fault */ 7 103 3 oosb bit (1), /* out of segment bounds */ 7 104 3 paru bit (1), /* processor parity upper */ 7 105 3 parl bit (1), /* processor parity lower */ 7 106 3 onc_1 bit (1), /* op not complete type 1 */ 7 107 3 onc_2 bit (1), /* op not complete type 2 */ 7 108 7 109 2 port_stat, /* PORT STATUS */ 7 110 3 ial bit (4), /* illegal action lines */ 7 111 3 iac bit (3), /* illegal action channel */ 7 112 3 con_chan bit (3), /* connect channel */ 7 113 7 114 2 fi_num bit (5), /* (fault/interrupt) number */ 7 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 7 116 7 117 7 118 /* WORD (2) */ 7 119 7 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 7 121 3 trr bit (3), /* temporary ring register */ 7 122 3 tsr bit (15), /* temporary segment register */ 7 123 7 124 2 pad2 bit (9), 7 125 7 126 2 cpu_no bit (3), /* CPU number */ 7 127 7 128 2 delta bit (6), /* tally modification DELTA */ 7 129 7 130 7 131 /* WORD (3) */ 7 132 7 133 2 word3 bit (18), 7 134 7 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 7 136 3 tsna, /* Word 1 status */ 7 137 4 prn bit (3), /* Word 1 PR number */ 7 138 4 prv bit (1), /* Word 1 PR valid bit */ 7 139 3 tsnb, /* Word 2 status */ 7 140 4 prn bit (3), /* Word 2 PR number */ 7 141 4 prv bit (1), /* Word 2 PR valid bit */ 7 142 3 tsnc, /* Word 3 status */ 7 143 4 prn bit (3), /* Word 3 PR number */ 7 144 4 prv bit (1), /* Word 3 PR valid bit */ 7 145 7 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 7 147 7 148 7 149 /* WORD (4) */ 7 150 7 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 7 152 7 153 2 ir, /* INDICATOR REGISTERS */ 7 154 3 zero bit (1), /* zero indicator */ 7 155 3 neg bit (1), /* negative indicator */ 7 156 3 carry bit (1), /* carryry indicator */ 7 157 3 ovfl bit (1), /* overflow indicator */ 7 158 3 eovf bit (1), /* eponent overflow */ 7 159 3 eufl bit (1), /* exponent underflow */ 7 160 3 oflm bit (1), /* overflow mask */ 7 161 3 tro bit (1), /* tally runout */ 7 162 3 par bit (1), /* parity error */ 7 163 3 parm bit (1), /* parity mask */ 7 164 3 bm bit (1), /* ^bar mode */ 7 165 3 tru bit (1), /* truncation mode */ 7 166 3 mif bit (1), /* multi-word instruction mode */ 7 167 3 abs bit (1), /* absolute mode */ 7 168 3 pad bit (4), 7 169 7 170 7 171 /* WORD (5) */ 7 172 7 173 2 ca bit (18), /* COMPUTED ADDRESS */ 7 174 7 175 2 cu, /* CONTROL UNIT STATUS */ 7 176 3 rf bit (1), /* on first cycle of repeat instr */ 7 177 3 rpt bit (1), /* repeat instruction */ 7 178 3 rd bit (1), /* repeat double instruction */ 7 179 3 rl bit (1), /* repeat link instruciton */ 7 180 3 pot bit (1), /* IT modification */ 7 181 3 pon bit (1), /* return type instruction */ 7 182 3 xde bit (1), /* XDE from Even location */ 7 183 3 xdo bit (1), /* XDE from Odd location */ 7 184 3 poa bit (1), /* operation preparation */ 7 185 3 rfi bit (1), /* tells CPU to refetch instruction */ 7 186 3 its bit (1), /* ITS modification */ 7 187 3 if bit (1), /* fault occured during instruction fetch */ 7 188 7 189 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 7 190 7 191 7 192 /* WORDS (6,7) */ 7 193 7 194 2 even_inst bit (36), /* even instruction of faulting pair */ 7 195 7 196 2 odd_inst bit (36); /* odd instruction of faulting pair */ 7 197 7 198 7 199 7 200 7 201 7 202 7 203 /* ALTERNATE SCU DECLARATION */ 7 204 7 205 7 206 dcl 1 scux based (scup) aligned, 7 207 7 208 (2 pad0 bit (36), 7 209 7 210 2 fd, /* GROUP II FAULT DATA */ 7 211 3 isn bit (1), /* illegal segment number */ 7 212 3 ioc bit (1), /* illegal op code */ 7 213 3 ia_am bit (1), /* illegal address - modifier */ 7 214 3 isp bit (1), /* illegal slave procedure */ 7 215 3 ipr bit (1), /* illegal procedure */ 7 216 3 nea bit (1), /* non existent address */ 7 217 3 oobb bit (1), /* out of bounds */ 7 218 3 pad bit (29), 7 219 7 220 2 pad2 bit (36), 7 221 7 222 2 pad3a bit (18), 7 223 7 224 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 7 225 3 prn bit (3), /* PR number */ 7 226 3 prv bit (1), /* PR valid bit */ 7 227 7 228 2 pad3b bit (6)) unaligned, 7 229 7 230 2 pad45 (0:1) bit (36), 7 231 7 232 2 instr (0:1) bit (36); /* Instruction ARRAY */ 7 233 7 234 7 235 7 236 /* END INCLUDE FILE mc.incl.pl1 */ 1 113 1 114 1 115 dcl 1 gcos_ext_stat_$gcos_gtss ext 1 116 , 3 gcos_gtss_ext 1 117 , 4 u_state_ptr ptr 1 118 , 4 snumb_index fixed bin(24) 1 119 , 4 home_path char(168) 1 120 ; 1 121 1 122 /* END INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 317 318 8 1 /* BEGIN INCLUDE FILE gcos_gtss_dcls.incl.pl1 (MWilson Multics) 03Apr79 */ 8 2 8 3 dcl 1 gtss_snumb_xref_ based (gcos_gtss_ext.u_state_ptr), 8 4 2 snumb_sequence pic "9999", 8 5 2 entry_count fixed bin(24), 8 6 2 snumb_entry (100), 8 7 3 snumb char (5), 8 8 3 jout_id bit (12), 8 9 3 activity_no fixed bin(24), 8 10 3 job_status fixed bin(24); 8 11 8 12 /** snumb_entry.job_status key values */ 8 13 dcl ( 8 14 COMPLETE init (-1) 8 15 , (READING_RMT, INITIATED) init (3) 8 16 , WAIT_PERIPH init (5) 8 17 , EXECUTING init (9) 8 18 , WAIT_MEDIA init (11) 8 19 , TERMINATING init (15) 8 20 , OUTPUT_WAITING init (16) 8 21 , OUTPUT_COMPLETE init (17) 8 22 ) fixed bin(24)static int options(constant); 8 23 8 24 dcl gcos_gtss_update_$new_activity entry (fixed bin(24), fixed bin(24)); 8 25 dcl gcos_gtss_update_$status_update entry (fixed bin(24)); 8 26 8 27 8 28 /** END INCLUDE FILE gcos_gtss.incl.pl1 */ 319 320 9 1 /* BEGIN INCLUDE FILE gcos_restart_control_.incl.pl1 RHM - MAY 1975 */ 9 2 9 3 dcl 1 restart_control aligned based (gcos_ext_stat_$saveseg_ptr), /* control word for save/restart */ 9 4 2 nj_restart bit(1) unaligned, 9 5 2 na_restart bit(1) unaligned, 9 6 2 chkpnt bit(1) unaligned, 9 7 2 cant_do bit(1) unaligned, 9 8 2 saved bit(1) unaligned, 9 9 2 na_hold bit(1) unaligned, 9 10 2 pad bit (30) unaligned, 9 11 2 restart_data (size(save_data_entry)) bit(36) aligned; 9 12 9 13 /* END INCLUDE FILE gcos_restart_control_.incl.pl1 */ 321 322 323 end gcos_sysout_writer_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/09/83 1007.1 gcos_sysout_writer_.pl1 >spec>on>09/07/83-gcos>gcos_sysout_writer_.pl1 317 1 09/08/83 1229.3 gcos_ext_stat_.incl.pl1 >spec>on>09/07/83-gcos>gcos_ext_stat_.incl.pl1 1-100 2 03/27/82 0424.8 gcos_save_mc.incl.pl1 >ldd>include>gcos_save_mc.incl.pl1 1-104 3 03/27/82 0424.8 gcos_fct_entry.incl.pl1 >ldd>include>gcos_fct_entry.incl.pl1 1-108 4 03/27/82 0424.8 gcos_save_data_entry.incl.pl1 >ldd>include>gcos_save_data_entry.incl.pl1 4-29 5 09/08/83 1230.3 gcos_flags.incl.pl1 >spec>on>09/07/83-gcos>gcos_flags.incl.pl1 1-110 6 03/27/82 0424.8 gcos_file_info_block_.incl.pl1 >ldd>include>gcos_file_info_block_.incl.pl1 1-113 7 08/17/83 1135.7 mc.incl.pl1 >ldd>include>mc.incl.pl1 319 8 03/27/82 0424.8 gcos_gtss_dcls.incl.pl1 >ldd>include>gcos_gtss_dcls.incl.pl1 321 9 03/27/82 0424.8 gcos_restart_control_.incl.pl1 >ldd>include>gcos_restart_control_.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. OUTPUT_COMPLETE 000000 constant fixed bin(24,0) initial dcl 8-13 set ref 84* OUTPUT_WAITING 000023 constant fixed bin(24,0) initial dcl 8-13 set ref 81* addr builtin function dcl 314 ref 159 159 161 184 184 207 207 240 240 264 264 addrel builtin function dcl 314 ref 161 brief 0(15) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 86 code 000100 automatic fixed bin(35,0) dcl 296 set ref 125* 126 126* 137* 142 142* 184* 186 189* 207* 209 212* 240* 243 246* 264* 266 268* com_err_ 000014 constant entry external dcl 287 ref 64 126 142 189 212 246 268 command_error 000000 stack reference condition dcl 297 ref 123 129 182 185 205 208 238 241 262 265 command_error_switch 000010 internal static bit(1) dcl 298 set ref 124* 181* 186 204* 209 237* 243 261* 266 continue_to_signal_ 000016 constant entry external dcl 288 ref 125 converted 000101 automatic bit(1) unaligned dcl 299 set ref 53* 94 197* 253* cu_$cp 000020 constant entry external dcl 289 ref 184 207 240 264 delete 000102 automatic bit(1) unaligned dcl 300 set ref 78 136* 153* 196* 252* delete_$path 000022 constant entry external dcl 290 ref 137 dprint 0(20) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 198 dpunch 0(19) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 255 fct_entry based structure level 1 dcl 3-3 fib based structure level 1 dcl 6-10 flags based structure level 1 dcl 5-8 flgs 000034 external static structure level 3 dcl 1-106 gcos_ext_stat_$dpno 000026 external static varying char(100) dcl 1-22 ref 257 gcos_ext_stat_$dpo 000030 external static varying char(100) dcl 1-23 ref 200 gcos_ext_stat_$save_data 000034 external static structure level 1 dcl 1-106 set ref 159 gcos_ext_stat_$saveseg_ptr 000032 external static pointer dcl 1-51 ref 161 gcos_gtss_update_$status_update 000036 constant entry external dcl 8-25 ref 81 84 get_wdir_ 000024 constant entry external dcl 291 ref 156 gtssflag 1(05) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 81 i 000756 automatic fixed bin(24,0) dcl 315 set ref 52* 56 73 75* 105 111 137 in_pathname 000103 automatic varying char(168) dcl 301 set ref 64* 94* 105* 109 142 142 175 189* 233 246* ioa_ 000012 constant entry external dcl 285 ref 91 94 96 l 000757 automatic fixed bin(24,0) dcl 315 set ref 109* 142 142 len 000156 automatic fixed bin(24,0) dcl 302 set ref 180* 184* 202* 207* 235* 240* 259* 264* length builtin function dcl 314 ref 109 180 202 235 259 line 000157 automatic char(500) unaligned dcl 303 set ref 179* 184 184 201* 207 207 234* 240 240 258* 264 264 list 0(14) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 171 lower_case 1(01) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 177 mc based structure level 1 dcl 7-12 medium 000760 automatic fixed bin(24,0) dcl 315 set ref 56* 58 60 nosave 0(10) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 71 not_queued 000354 automatic bit(1) unaligned dcl 304 set ref 81 86 153* 170* 218* 228* 274* out_pathname 000355 automatic varying char(168) dcl 305 set ref 96* 111* 173* 173 175 200 212* 232* 232 257 268* output_dir 000430 automatic char(168) unaligned dcl 306 set ref 111 156* printed_heading 000502 automatic bit(1) unaligned dcl 307 set ref 89 92* 153* raw 0(13) 000034 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 230 rel builtin function dcl 314 ref 159 159 restart_control based structure level 1 dcl 9-3 restart_data 1 based bit(36) array level 2 dcl 9-3 set ref 161 save_data 000034 external static structure level 2 dcl 1-106 save_data_entry based structure level 1 dcl 4-5 save_machine_conditions based structure level 1 packed unaligned dcl 2-6 saved_sqindex based fixed bin(24,0) dcl 308 set ref 75* saved_sqindex_offset 000503 automatic fixed bin(24,0) dcl 310 set ref 159* 161 saved_sqindex_ptr 000504 automatic pointer dcl 311 set ref 75 161* sqindex 165 000034 external static fixed bin(24,0) level 3 dcl 1-106 set ref 52 73* 159 substr builtin function dcl 314 ref 142 142 syot_dir 247 000034 external static varying char(168) level 3 dcl 1-106 set ref 105 155 syotdir 000506 automatic char(168) unaligned dcl 312 set ref 137* 155* sysout_queue 33 000034 external static char(32) array level 3 dcl 1-106 set ref 105 111 137 sysout_queue_media 153 000034 external static fixed bin(24,0) array level 3 dcl 1-106 set ref 56 varline 000560 automatic varying char(500) dcl 313 set ref 175* 177* 177 179 180 200* 201 202 233* 234 235 257* 258 259 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. COMPLETE internal static fixed bin(24,0) initial dcl 8-13 EXECUTING internal static fixed bin(24,0) initial dcl 8-13 INITIATED internal static fixed bin(24,0) initial dcl 8-13 READING_RMT internal static fixed bin(24,0) initial dcl 8-13 TERMINATING internal static fixed bin(24,0) initial dcl 8-13 WAIT_MEDIA internal static fixed bin(24,0) initial dcl 8-13 WAIT_PERIPH internal static fixed bin(24,0) initial dcl 8-13 abx internal static fixed bin(17,0) initial dcl 7-42 apx internal static fixed bin(17,0) initial dcl 7-42 bbx internal static fixed bin(17,0) initial dcl 7-42 bpx internal static fixed bin(17,0) initial dcl 7-42 fibptr automatic pointer dcl 6-84 gcos_ext_stat_$abort_reason external static varying char(128) dcl 1-13 gcos_ext_stat_$abort_return external static label variable dcl 1-14 gcos_ext_stat_$activity_card_num external static picture(4) unaligned dcl 1-15 gcos_ext_stat_$activity_name external static char(8) unaligned dcl 1-16 gcos_ext_stat_$activity_start_time external static fixed bin(71,0) dcl 1-17 gcos_ext_stat_$card_num external static picture(4) unaligned dcl 1-18 gcos_ext_stat_$courtesy_call_control external static structure level 1 dcl 1-92 gcos_ext_stat_$dbs external static bit(1) array unaligned dcl 1-19 gcos_ext_stat_$default_nondollar external static char(2) unaligned dcl 1-20 gcos_ext_stat_$dir_rings external static fixed bin(3,0) array dcl 1-21 gcos_ext_stat_$endfc external static char(2) unaligned dcl 1-24 gcos_ext_stat_$er external static pointer dcl 1-25 gcos_ext_stat_$etc_filecode external static char(2) unaligned dcl 1-26 gcos_ext_stat_$fct external static structure level 1 dcl 1-102 gcos_ext_stat_$gcos_gtss external static structure level 1 unaligned dcl 1-115 gcos_ext_stat_$gcos_slave_area_seg external static pointer dcl 1-27 gcos_ext_stat_$gf external static fixed bin(24,0) dcl 1-28 gcos_ext_stat_$incode external static fixed bin(24,0) dcl 1-29 gcos_ext_stat_$increment_hold external static fixed bin(24,0) dcl 1-30 gcos_ext_stat_$initial_cpu_time external static fixed bin(71,0) dcl 1-31 gcos_ext_stat_$input_segment_path external static varying char(168) dcl 1-32 gcos_ext_stat_$jcl_warnings external static fixed bin(24,0) dcl 1-33 gcos_ext_stat_$job_cpu_time external static fixed bin(71,0) dcl 1-34 gcos_ext_stat_$job_id external static varying char(18) dcl 1-35 gcos_ext_stat_$job_real_time external static fixed bin(71,0) dcl 1-36 gcos_ext_stat_$last_mme external static fixed bin(24,0) dcl 1-37 gcos_ext_stat_$ldrss external static fixed bin(24,0) dcl 1-38 gcos_ext_stat_$max_activities external static fixed bin(24,0) dcl 1-39 gcos_ext_stat_$max_mem external static fixed bin(19,0) dcl 1-40 gcos_ext_stat_$mc external static structure level 1 unaligned dcl 1-112 gcos_ext_stat_$mme_rtrn external static label variable dcl 1-41 gcos_ext_stat_$nondollar external static char(2) unaligned dcl 1-42 gcos_ext_stat_$nongcos external static char(2) unaligned dcl 1-43 gcos_ext_stat_$normal_return external static label variable dcl 1-44 gcos_ext_stat_$patchfile_ptr external static pointer dcl 1-45 gcos_ext_stat_$pathname_prefix external static varying char(168) dcl 1-46 gcos_ext_stat_$pch external static pointer dcl 1-47 gcos_ext_stat_$pdir external static varying char(168) dcl 1-48 gcos_ext_stat_$prt external static pointer dcl 1-49 gcos_ext_stat_$rs external static pointer dcl 1-50 gcos_ext_stat_$save_dir external static varying char(168) dcl 1-52 gcos_ext_stat_$seg_rings external static fixed bin(3,0) array dcl 1-53 gcos_ext_stat_$sig_ptr external static pointer dcl 1-54 gcos_ext_stat_$skip_umc external static bit(1) unaligned dcl 1-55 gcos_ext_stat_$snumb external static bit(30) dcl 1-56 gcos_ext_stat_$sought_label external static char(8) unaligned dcl 1-57 gcos_ext_stat_$statistics external static fixed bin(24,0) array dcl 1-58 gcos_ext_stat_$stop_code external static fixed bin(24,0) dcl 1-59 gcos_ext_stat_$storage_limit external static fixed bin(19,0) dcl 1-60 gcos_ext_stat_$sysout_limit external static fixed bin(35,0) dcl 1-61 gcos_ext_stat_$sysout_lines external static fixed bin(35,0) dcl 1-62 gcos_ext_stat_$system_free_pointer external static pointer dcl 1-63 gcos_ext_stat_$tape_buffer_size external static fixed bin(35,0) dcl 1-64 gcos_ext_stat_$temp_dir external static varying char(168) dcl 1-65 gcos_ext_stat_$temp_seg_ptr external static pointer dcl 1-66 gcos_ext_stat_$termination_code external static bit(18) unaligned dcl 1-67 gcos_ext_stat_$time_limit external static fixed bin(71,0) dcl 1-68 gcos_ext_stat_$userid external static char(12) unaligned dcl 1-69 gcos_ext_stat_$validation_level external static fixed bin(3,0) dcl 1-70 gcos_gtss_update_$new_activity 000000 constant entry external dcl 8-24 gcos_restart_$save 000000 constant entry external dcl 292 gtss_snumb_xref_ based structure level 1 unaligned dcl 8-3 index builtin function dcl 314 j automatic fixed bin(24,0) dcl 315 lbx internal static fixed bin(17,0) initial dcl 7-42 linked_file internal static bit(1) initial unaligned dcl 6-87 lpx internal static fixed bin(17,0) initial dcl 7-42 mcp automatic pointer dcl 7-10 random_file internal static bit(1) initial unaligned dcl 6-88 read_file internal static bit(1) initial unaligned dcl 6-89 sbx internal static fixed bin(17,0) initial dcl 7-42 scu based structure level 1 dcl 7-56 scup automatic pointer dcl 7-54 scux based structure level 1 dcl 7-206 size builtin function dcl 286 spx internal static fixed bin(17,0) initial dcl 7-42 write_file internal static bit(1) initial unaligned dcl 6-90 NAMES DECLARED BY EXPLICIT CONTEXT. build_io_pathnames 000445 constant entry internal dcl 103 ref 54 command_error_handler 000601 constant entry internal dcl 119 ref 182 205 238 262 delete_original 000674 constant entry internal dcl 135 ref 78 gcos_sysout_writer_ 000231 constant entry external dcl 6 initialize_routine 001007 constant entry internal dcl 150 ref 50 next_file 000440 constant label dcl 98 ref 68 193 215 249 271 process_print 001051 constant entry internal dcl 168 ref 60 process_punch 001466 constant entry internal dcl 226 ref 58 NAMES DECLARED BY CONTEXT OR IMPLICATION. fixed builtin function ref 159 159 rtrim builtin function ref 105 111 111 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2276 2336 2044 2306 Length 2760 2044 40 406 232 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_sysout_writer_ 592 external procedure is an external procedure. build_io_pathnames internal procedure shares stack frame of external procedure gcos_sysout_writer_. command_error_handler 110 internal procedure enables or reverts conditions. on unit on line 123 64 on unit delete_original internal procedure shares stack frame of external procedure gcos_sysout_writer_. initialize_routine internal procedure shares stack frame of external procedure gcos_sysout_writer_. process_print 132 internal procedure enables or reverts conditions. on unit on line 182 64 on unit on unit on line 205 64 on unit process_punch 133 internal procedure enables or reverts conditions. on unit on line 238 64 on unit on unit on line 262 64 on unit STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 command_error_switch gcos_sysout_writer_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_sysout_writer_ 000100 code gcos_sysout_writer_ 000101 converted gcos_sysout_writer_ 000102 delete gcos_sysout_writer_ 000103 in_pathname gcos_sysout_writer_ 000156 len gcos_sysout_writer_ 000157 line gcos_sysout_writer_ 000354 not_queued gcos_sysout_writer_ 000355 out_pathname gcos_sysout_writer_ 000430 output_dir gcos_sysout_writer_ 000502 printed_heading gcos_sysout_writer_ 000503 saved_sqindex_offset gcos_sysout_writer_ 000504 saved_sqindex_ptr gcos_sysout_writer_ 000506 syotdir gcos_sysout_writer_ 000560 varline gcos_sysout_writer_ 000756 i gcos_sysout_writer_ 000757 l gcos_sysout_writer_ 000760 medium gcos_sysout_writer_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return tra_ext enable shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ continue_to_signal_ cu_$cp delete_$path gcos_gtss_update_$status_update get_wdir_ ioa_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_ext_stat_$dpno gcos_ext_stat_$dpo gcos_ext_stat_$save_data gcos_ext_stat_$saveseg_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000230 50 000236 52 000237 53 000247 54 000250 56 000251 58 000256 60 000265 64 000274 68 000326 71 000327 73 000333 75 000336 78 000337 81 000342 84 000360 86 000366 89 000374 91 000376 92 000411 94 000413 96 000427 98 000440 99 000441 101 000444 103 000445 105 000446 109 000527 111 000532 115 000576 119 000600 123 000606 124 000623 125 000626 126 000635 129 000672 131 000673 135 000674 136 000675 137 000676 142 000742 146 001005 150 001007 153 001010 155 001013 156 001021 159 001027 161 001042 164 001047 168 001050 170 001056 171 001061 173 001064 175 001076 177 001141 179 001160 180 001164 181 001166 182 001167 184 001211 185 001227 186 001230 189 001236 193 001271 196 001274 197 001276 198 001277 200 001302 201 001346 202 001353 204 001355 205 001356 207 001400 208 001416 209 001417 212 001425 215 001460 218 001463 222 001464 226 001465 228 001473 230 001476 232 001501 233 001513 234 001534 235 001541 237 001543 238 001544 240 001566 241 001604 243 001605 246 001613 249 001646 252 001651 253 001653 255 001654 257 001657 258 001723 259 001730 261 001732 262 001733 264 001755 265 001773 266 001774 268 002002 271 002035 274 002040 279 002041 ----------------------------------------------------------- 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