COMPILATION LISTING OF SEGMENT gcos_cc_endjob_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 09/09/83 1119.2 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* *************************************************************************************** 12* ***************************************************************************************** 13* * 14* * 15* * $ E N D J O B C A R D P R O C E S S O R 16* * 17* * 18* * This procedure processes $ ENDJOB cards which have the following format: 19* * 20* * 21* * CONTROL CARD: ENDJOB 22* * 23* * 24* * FORMAT: $ ENDJOB 25* * 26* * 27* * FIELDS: none 28* * 29* * This procedure writes termination messages on console and execution report; 30* * finishes writing (and outputs) the execution report, sysout, print, and punch 31* * files; closes all files; and terminates the simulation via a nonlocal GOTO 32* * to a label in procedure gcos_gein_, thus cleaning up the stack. 33* * 34* * This procedure is called: 35* * 36* * 1) when a $ ENDJOB card is encountered by gcos_gein_; 37* * 38* * 2) when the job is to be terminated for any reason other than a $ ENDJOB card, 39* * (provided that it has not already been called once - thus an error in 40* * this procedure or one that it calls cannot cause an infinite loop). 41* * 42* * 43* * 44* ***************************************************************************************** 45* *************************************************************************************** */ 46 47 /* 48* * 49* * WRITTEN BY DICK SNYDER SEP 70 50* * MODIFIED BY T.CASEY DEC 72 51* * OCT 73 52* * APR 74 53* * AUG 74 54* * MODIFIED BY D. KAYDEN APR 74 55* * FEB 75 56* * MODIFIED BY R.H. MORRISON MAY 75 57* * MODIFIED BY S.C. AKERS DEC 81 Change \014 to %page; 58* Modified: Ron Barstad 82-11-00 Fix format of EOJ console msg 59* Modified: Ron Barstad 83-04-28 Print EOJ only if not abort and before dprint queued message 60**/ 61 62 gcos_cc_endjob_: proc (card); 63 64 gcos_ext_stat_$save_data.endjob = "1"b; /* remember that this procedure has been called 65* in this job, and therefore should not be 66* called again after any fault or error */ 67 68 er = gcos_ext_stat_$er; /* copy fib pointer for speed */ 69 70 sysprint_stream = gcos_ext_stat_$prt -> fib.stream; /* copy stream names for speed */ 71 er_stream = er -> fib.stream; 72 73 /* job accounting */ 74 75 call gcos_time_convert_ ((clock_ ())-gcos_ext_stat_$job_real_time, rtt.time); /* get real time for job */ 76 77 call gcos_write_$ptr (er, string (rtt), "11111100"b); /* write on execution report */ 78 79 call hcs_$get_usage_values (k, cptime, k); /* get current cputime */ 80 81 call gcos_time_convert_ (cptime-gcos_ext_stat_$job_cpu_time, ptt.time); /* get cp time for job */ 82 83 call gcos_write_$ptr (er, string (ptt), "11111100"b); /* put on execution report */ 84 85 call gcos_write_$ptr (er, eoj, "11111100"b); /* end job on execution report */ 86 87 call gcos_write_$ptr (er, "", (8)"0"b); /* eof on execution report */ 88 89 /* Append execution report to sysout print collector file. First, though, 90* write an ASCII record on that file, flagging the start of the execution report, 91* force out the block containing that record, find the offset in the file of the 92* next block (which will be the first block of the execution report), and write 93* that offset, and the snumb of the job, into a record at the beginning of the 94* sysout print collector file, that was written there earlier, to reserve 95* space for this information. This facilitates printing the file in a GCOS-like 96* format, by gcos_sysprint. */ 97 98 call gcos_write_$record_ptr (gcos_ext_stat_$prt, endrecord, (8)"0"b); /* write "start ex rpt" */ 99 100 call gcos_write_$force_ptr (gcos_ext_stat_$prt); /* force out the block */ 101 102 call ios_$tell (sysprint_stream, "write", "first", ex_rpt_offset, status); /* get offset of next block */ 103 if code ^= 0 then do; 104 error_entry = "tell"; 105 p_error: error_stream = sysprint_stream; 106 ios_error: call gcos_error_ (code, "from ios_$^a ^a", error_entry, error_stream); 107 end; 108 109 call ios_$seek (sysprint_stream, "write", "first", 4, status); /* seek to word 4 (counting from zero) 110* 0=bcw,1=rcw,2=newline,3=rec1,4=offset */ 111 if code ^= 0 then do; 112 seek_error: error_entry = "seek"; 113 goto p_error; 114 end; 115 116 first_record_subset.er_offset = ex_rpt_offset; /* put in offset of first block */ 117 first_record_subset.snumb = substr (save_data.actid, 1, 5); /* put in snumb */ 118 119 call ios_$write (sysprint_stream, addr (first_record_subset), 0, 3, j, status); /* write 3 words */ 120 if code ^= 0 then do; 121 error_entry = "write"; 122 goto p_error; 123 end; 124 125 call ios_$seek (sysprint_stream, "write", "first", ex_rpt_offset, status); 126 /* seek write pointer back to first block */ 127 if code ^= 0 then goto seek_error; 128 129 call ios_$seek (er_stream, "read", "first", 0, status); /* seek read pointer to start of file */ 130 if code ^= 0 then do; 131 error_entry = "seek"; 132 er_error: error_stream = er_stream; 133 goto ios_error; 134 end; 135 136 eofsw = ""b; 137 do while (^eofsw); /* read 'til eof on execution report */ 138 call ios_$read (er_stream, addr (buffer), 0, 320, j, status); /* read exec. report block */ 139 if code ^= 0 then do; 140 error_entry = "read"; 141 goto er_error; 142 end; 143 144 eofsw = substr (status, 46, 1); /* save eof switch returned by ios_$read */ 145 146 call gcos_write_$block_ptr (gcos_ext_stat_$prt, buffer); /* write block on sysout print collector */ 147 /* we use gcos_write_$block_ptr instead of ios_$write, here, 148* because the former puts the correct bsn into the bcw before 149* writing, thus avoiding bsn errors while reading it back */ 150 151 end; /* end of do-while group */ 152 /* we fall thru here when we hit eof */ 153 er -> fib.print = "0"b; /* reset so close_file_ will not queue it for sysout */ 154 155 156 /* avoid writing EOF on an otherwise empty sysout punch collector file */ 157 158 if gcos_ext_stat_$pch -> fib.buffer ^= null then /* if file not empty */ 159 call gcos_write_$record_ptr (gcos_ext_stat_$pch, "", (8)"0"b); /* write EOF on it */ 160 161 if ^gcos_ext_stat_$save_data.nosave then /* if save/restart specified */ 162 call gcos_restart_$save; /* save restart data */ 163 164 restart: entry; /* entry for restart */ 165 166 if ^gcos_ext_stat_$save_data.brief & ^gcos_ext_stat_$save_data.this_act_abort 167 then do; /* print end of job message on terminal, 168* unless user said -brief */ 169 call date_time_ ((clock_ ()), holdtime); /* get date and time */ 170 call ioa_ (" *EOJ ^a @^a", save_data.actid, substr (holdtime, 11, 6)); 171 end; 172 /* queue sysout and close files */ 173 174 fibptr = addr (save_data.fibs); /* close all remaining files */ 175 do i = 1 to hbound (save_data.fibs, 1); 176 177 if ^fib.used then go to not_used; 178 fib.disp = "01"b; /* force file to be released */ 179 call gcos_close_file_ (fibptr); 180 181 not_used: fibptr = addrel (fibptr, size (fib)); 182 end; 183 184 call ios_$detach ("glib", "", "", status); /* now detach the software libraries */ 185 if gcos_ext_stat_$save_data.userlib then 186 call ios_$detach ("slib", "", "", status); 187 188 189 call gcos_sysout_writer_; /* dispose of all files which are */ 190 /* queued in the sysout queue */ 191 192 call hcs_$truncate_seg (gcos_ext_stat_$gcos_slave_area_seg, 0, code); /* truncate slave segment */ 193 194 call ios_$detach ("gcos_job_stream_", "", "", status); /* in case it was a msf */ 195 call delete_$path (string (gcos_ext_stat_$save_dir), gcos_ext_stat_$job_id || ".job_deck", "000100"b, "gcos", code); 196 197 if ^gcos_ext_stat_$save_data.nosave then 198 call delete_$path (string (gcos_ext_stat_$save_dir), gcos_ext_stat_$job_id || ".save_data", 199 "000100"b, "gcos", code); /* get rid of it */ 200 goto gcos_ext_stat_$normal_return; /* revert stack and return to gcos_gein_ */ 201 202 /* D E C L A R A T I O N S */ 203 204 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 */ 205 206 /* External Entries */ 207 208 209 dcl (ios_$read, ios_$write) ext entry (char (*) aligned, ptr, fixed bin(24), fixed bin(24), fixed bin(24), bit (72) aligned); 210 dcl size builtin; 211 dcl (ios_$seek, ios_$tell) ext entry (char (*) aligned, char (*), char (*), fixed bin(24), bit (72) aligned); 212 dcl ios_$detach ext entry (char (*) aligned, char (*), char (*), bit (72) aligned); 213 dcl clock_ ext entry returns (fixed bin(71)); 214 dcl ioa_ ext entry options (variable); 215 dcl gcos_time_convert_ ext entry (fixed bin(71), char (19)); 216 dcl gcos_write_$ptr ext entry (ptr, char (*), bit (8)); 217 dcl gcos_write_$record_ptr ext entry (ptr, char (*), bit (8)); 218 dcl gcos_write_$block_ptr ext entry (ptr, char (*)); 219 dcl gcos_write_$force_ptr ext entry (ptr); 220 221 dcl hcs_$get_usage_values ext entry (fixed bin(24), fixed bin(71), fixed bin(24)); 222 dcl hcs_$truncate_seg ext entry (pointer, fixed bin(24), fixed bin(35)); 223 dcl date_time_ ext entry (fixed bin(71), char (*)); 224 225 dcl gcos_close_file_ ext entry (pointer); 226 dcl gcos_sysout_writer_ ext entry; 227 228 dcl gcos_error_ ext entry options (variable); 229 230 dcl delete_$path ext entry (char (*) aligned, char (*) aligned, bit (6), char (*), fixed bin(35)); 231 232 dcl gcos_restart_$save ext entry; /* restart procedures */ 233 234 235 /* Work Variables */ 236 237 dcl endrecord char (20) based (addr (end_record)); 238 dcl 1 end_record aligned int static, 239 2 rcw bit (36) init ("000000000000000100000000000011111100"b), /* length=4,media=3,report=74 */ 240 2 newline_word bit (36) init ("111111000001000000000000000000000000"b), /* 7701 */ 241 2 end_message char (12) init ("start ex rpt"); 242 243 dcl 1 first_record_subset aligned, 244 2 er_offset fixed bin(24)aligned, 245 2 snumb char (5), 246 2 pad char (3); 247 248 dcl buffer char (1280); /* 320 words */ 249 250 dcl ex_rpt_offset fixed bin(24); 251 252 dcl status bit (72) aligned; 253 dcl code fixed bin(35) based (addr (status)); 254 255 dcl error_entry char (32); 256 dcl error_stream char (32); 257 258 dcl eofsw bit (1) aligned; 259 260 dcl er pointer; /* local for fib pointer of execution report */ 261 262 dcl er_stream char (8) aligned; /* for stream name of execution report */ 263 dcl sysprint_stream char (8) aligned; /* stream name of sysprint file */ 264 265 266 dcl card char (80); /* input card */ 267 dcl (i, j) fixed bin(24); /* temp */ 268 269 dcl k fixed bin(24); /* temp */ 270 dcl cptime fixed bin(71); /* cpu usage */ 271 dcl holdtime char (24); /* date and time */ 272 dcl 1 rtt int static, 273 2 msg char (18) init ("real time total = "), 274 2 time char (19), 275 2 nls char (4) init (" 276 277 278 279 "); 280 281 dcl (addr, addrel, null, string, substr) builtin; 282 283 284 dcl 1 ptt int static, 285 2 msg char (23) init ("processor time total = "), 286 2 time char (19), 287 2 nls char (2) init (" 288 289 "); 290 291 dcl eoj char (12) int static init ("end-of-job 292 293 "); 294 end gcos_cc_endjob_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/09/83 1006.8 gcos_cc_endjob_.pl1 >spec>on>09/07/83-gcos>gcos_cc_endjob_.pl1 205 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 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. actid 2 000070 external static char(8) level 3 dcl 1-106 set ref 117 170* addr builtin function dcl 281 ref 98 103 106 111 119 119 120 127 130 138 138 139 174 192 195 197 addrel builtin function dcl 281 ref 181 brief 0(15) 000070 external static bit(1) level 4 packed unaligned dcl 1-106 ref 166 buffer based pointer level 2 in structure "fib" dcl 6-10 in procedure "gcos_cc_endjob_" ref 158 buffer 000106 automatic char(1280) unaligned dcl 248 in procedure "gcos_cc_endjob_" set ref 138 138 146* card parameter char(80) unaligned dcl 266 ref 62 clock_ 000104 constant entry external dcl 213 ref 75 169 code based fixed bin(35,0) dcl 253 set ref 103 106* 111 120 127 130 139 192* 195* 197* cptime 000646 automatic fixed bin(71,0) dcl 270 set ref 79* 81 date_time_ 000126 constant entry external dcl 223 ref 169 delete_$path 000136 constant entry external dcl 230 ref 195 197 disp 60(14) based bit(2) level 4 packed unaligned dcl 6-10 set ref 178* end_record 000010 internal static structure level 1 dcl 238 set ref 98 endjob 0(30) 000070 external static bit(1) level 4 packed unaligned dcl 1-106 set ref 64* endrecord based char(20) unaligned dcl 237 set ref 98* eofsw 000632 automatic bit(1) dcl 258 set ref 136* 137 144* eoj 000043 internal static char(12) initial unaligned dcl 291 set ref 85* er 000634 automatic pointer dcl 260 set ref 68* 71 77* 83* 85* 87* 153 er_offset 000102 automatic fixed bin(24,0) level 2 dcl 243 set ref 116* er_stream 000636 automatic char(8) dcl 262 set ref 71* 129* 132 138* error_entry 000612 automatic char(32) unaligned dcl 255 set ref 104* 106* 112* 121* 131* 140* error_stream 000622 automatic char(32) unaligned dcl 256 set ref 105* 106* 132* ex_rpt_offset 000606 automatic fixed bin(24,0) dcl 250 set ref 102* 116 125* fct_entry based structure level 1 dcl 3-3 fib based structure level 1 dcl 6-10 set ref 181 fibptr 000100 automatic pointer dcl 6-84 set ref 174* 177 178 179* 181* 181 181 fibs 322 000070 external static structure array level 3 dcl 1-106 set ref 174 175 first_record_subset 000102 automatic structure level 1 dcl 243 set ref 119 119 flags based structure level 1 dcl 5-8 flgs 000070 external static structure level 3 dcl 1-106 gcos_close_file_ 000130 constant entry external dcl 225 ref 179 gcos_error_ 000134 constant entry external dcl 228 ref 106 gcos_ext_stat_$er 000046 external static pointer dcl 1-25 ref 68 gcos_ext_stat_$gcos_slave_area_seg 000050 external static pointer dcl 1-27 set ref 192* gcos_ext_stat_$job_cpu_time 000052 external static fixed bin(71,0) dcl 1-34 ref 81 gcos_ext_stat_$job_id 000054 external static varying char(18) dcl 1-35 ref 195 197 gcos_ext_stat_$job_real_time 000056 external static fixed bin(71,0) dcl 1-36 ref 75 gcos_ext_stat_$normal_return 000060 external static label variable dcl 1-44 ref 200 gcos_ext_stat_$pch 000062 external static pointer dcl 1-47 set ref 158 158* gcos_ext_stat_$prt 000064 external static pointer dcl 1-49 set ref 70 98* 100* 146* gcos_ext_stat_$save_data 000070 external static structure level 1 dcl 1-106 gcos_ext_stat_$save_dir 000066 external static varying char(168) dcl 1-52 ref 195 195 197 197 gcos_restart_$save 000140 constant entry external dcl 232 ref 161 gcos_sysout_writer_ 000132 constant entry external dcl 226 ref 189 gcos_time_convert_ 000110 constant entry external dcl 215 ref 75 81 gcos_write_$block_ptr 000116 constant entry external dcl 218 ref 146 gcos_write_$force_ptr 000120 constant entry external dcl 219 ref 100 gcos_write_$ptr 000112 constant entry external dcl 216 ref 77 83 85 87 gcos_write_$record_ptr 000114 constant entry external dcl 217 ref 98 158 hcs_$get_usage_values 000122 constant entry external dcl 221 ref 79 hcs_$truncate_seg 000124 constant entry external dcl 222 ref 192 holdtime 000650 automatic char(24) unaligned dcl 271 set ref 169* 170 170 i 000642 automatic fixed bin(24,0) dcl 267 set ref 175* indicators 60 based structure level 2 dcl 6-10 indicators_word_1 60 based structure level 3 dcl 6-10 ioa_ 000106 constant entry external dcl 214 ref 170 ios_$detach 000102 constant entry external dcl 212 ref 184 185 194 ios_$read 000072 constant entry external dcl 209 ref 138 ios_$seek 000076 constant entry external dcl 211 ref 109 125 129 ios_$tell 000100 constant entry external dcl 211 ref 102 ios_$write 000074 constant entry external dcl 209 ref 119 j 000643 automatic fixed bin(24,0) dcl 267 set ref 119* 138* k 000644 automatic fixed bin(24,0) dcl 269 set ref 79* 79* mc based structure level 1 dcl 7-12 nosave 0(10) 000070 external static bit(1) level 4 packed unaligned dcl 1-106 ref 161 197 null builtin function dcl 281 ref 158 print 60(04) based bit(1) level 4 packed unaligned dcl 6-10 set ref 153* ptt 000030 internal static structure level 1 packed unaligned dcl 284 set ref 83 83 rtt 000015 internal static structure level 1 packed unaligned dcl 272 set ref 77 77 save_data 000070 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 size builtin function dcl 210 ref 181 snumb 1 000102 automatic char(5) level 2 dcl 243 set ref 117* status 000610 automatic bit(72) dcl 252 set ref 102* 103 106 109* 111 119* 120 125* 127 129* 130 138* 139 144 184* 185* 192 194* 195 197 stream 3 based char(8) level 2 packed unaligned dcl 6-10 ref 70 71 string builtin function dcl 281 ref 77 77 83 83 195 195 197 197 substr builtin function dcl 281 ref 117 144 170 170 sysprint_stream 000640 automatic char(8) dcl 263 set ref 70* 102* 105 109* 119* 125* this_act_abort 0(26) 000070 external static bit(1) level 4 packed unaligned dcl 1-106 ref 166 time 5(27) 000030 internal static char(19) level 2 in structure "ptt" packed unaligned dcl 284 in procedure "gcos_cc_endjob_" set ref 81* time 4(18) 000015 internal static char(19) level 2 in structure "rtt" packed unaligned dcl 272 in procedure "gcos_cc_endjob_" set ref 75* used 60 based bit(1) level 4 packed unaligned dcl 6-10 ref 177 userlib 0(22) 000070 external static bit(1) level 4 packed unaligned dcl 1-106 ref 185 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. 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 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_$dpno external static varying char(100) dcl 1-22 gcos_ext_stat_$dpo external static varying char(100) dcl 1-23 gcos_ext_stat_$endfc external static char(2) unaligned dcl 1-24 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_$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_$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_$patchfile_ptr external static pointer dcl 1-45 gcos_ext_stat_$pathname_prefix external static varying char(168) dcl 1-46 gcos_ext_stat_$pdir external static varying char(168) dcl 1-48 gcos_ext_stat_$rs external static pointer dcl 1-50 gcos_ext_stat_$saveseg_ptr external static pointer dcl 1-51 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 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 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. er_error 000662 constant label dcl 132 ref 141 gcos_cc_endjob_ 000067 constant entry external dcl 62 ios_error 000407 constant label dcl 106 ref 133 not_used 001144 constant label dcl 181 ref 177 p_error 000404 constant label dcl 105 ref 113 122 restart 001026 constant entry external dcl 164 seek_error 000477 constant label dcl 112 ref 127 NAME DECLARED BY CONTEXT OR IMPLICATION. hbound builtin function ref 175 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2020 2162 1465 2030 Length 2564 1465 142 365 333 36 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_cc_endjob_ 522 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 end_record gcos_cc_endjob_ 000015 rtt gcos_cc_endjob_ 000030 ptt gcos_cc_endjob_ 000043 eoj gcos_cc_endjob_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_cc_endjob_ 000100 fibptr gcos_cc_endjob_ 000102 first_record_subset gcos_cc_endjob_ 000106 buffer gcos_cc_endjob_ 000606 ex_rpt_offset gcos_cc_endjob_ 000610 status gcos_cc_endjob_ 000612 error_entry gcos_cc_endjob_ 000622 error_stream gcos_cc_endjob_ 000632 eofsw gcos_cc_endjob_ 000634 er gcos_cc_endjob_ 000636 er_stream gcos_cc_endjob_ 000640 sysprint_stream gcos_cc_endjob_ 000642 i gcos_cc_endjob_ 000643 j gcos_cc_endjob_ 000644 k gcos_cc_endjob_ 000646 cptime gcos_cc_endjob_ 000650 holdtime gcos_cc_endjob_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out tra_label_var shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. clock_ date_time_ delete_$path gcos_close_file_ gcos_error_ gcos_restart_$save gcos_sysout_writer_ gcos_time_convert_ gcos_write_$block_ptr gcos_write_$force_ptr gcos_write_$ptr gcos_write_$record_ptr hcs_$get_usage_values hcs_$truncate_seg ioa_ ios_$detach ios_$read ios_$seek ios_$tell ios_$write THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_ext_stat_$er gcos_ext_stat_$gcos_slave_area_seg gcos_ext_stat_$job_cpu_time gcos_ext_stat_$job_id gcos_ext_stat_$job_real_time gcos_ext_stat_$normal_return gcos_ext_stat_$pch gcos_ext_stat_$prt gcos_ext_stat_$save_data gcos_ext_stat_$save_dir LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 62 000064 64 000074 68 000076 70 000101 71 000106 75 000112 77 000136 79 000164 81 000177 83 000215 85 000243 87 000266 98 000311 100 000334 102 000343 103 000377 104 000401 105 000404 106 000407 109 000437 111 000475 112 000477 113 000502 116 000503 117 000505 119 000514 120 000553 121 000555 122 000560 125 000561 127 000615 129 000617 130 000655 131 000657 132 000662 133 000665 136 000666 137 000667 138 000672 139 000732 140 000734 141 000737 144 000740 146 000744 151 000761 153 000762 158 000765 161 001014 164 001024 166 001033 169 001037 170 001062 174 001113 175 001117 177 001125 178 001131 179 001135 181 001144 182 001147 184 001151 185 001177 189 001230 192 001235 194 001251 195 001301 197 001366 200 001457 ----------------------------------------------------------- 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