COMPILATION LISTING OF SEGMENT gcos_fault_processor_ Compiled by: Multics PL/I Compiler, Release 28b, of April 11, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 09/09/83 1130.0 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 gcos_fault_processor_: proc; 7 8 /* 9* This procedure handles all faults occurring in a gcos program 10* except the MME. Once the fault cause is interpreted, the gcos 11* slave program prefix fault vector is examined to see if the gcos 12* program has set up a handler for this fault. Each fault vector 13* consists of two words except for lockup. The first word is used 14* to store the instruction counter and indicators at the time of 15* the fault. The second word contains the address of where to go in 16* the gcos program to process the fault. If the location is 0, the 17* program will be aborted. If a fault processing routine is 18* specified, the scu data will be modified to cause control to 19* return to the gcos program at that location. 20* 21* Author: DICK SNYDER OCTOBER 2, 1970 22* Change: T. CASEY SEPTEMBER 1973, FEBRUARY 1974, APRIL 1974 23* Change: D. KAYDEN JUNE 1974, DECEMBER 1974 24* Change: T. CASEY AUGUST 1975 25* Change: M. R. Jordan, October 1977 26* Change: Dave Ward 06/03/81 hashed fault name list. 27* Change: Dave Ward 06/03/81 RSW (2) provision. 28**/ 29 cond_info.version = 1; /* expect version 1 of info structure */ 30 call find_condition_info_ (null, addr (cond_info), code); 31 mcp = cond_info.mcptr; /* Location of machine conditions at fault time. */ 32 scup = addr (mc.scu); /* Corresponding SCU data. */ 33 34 /* Hash the condition name. */ 35 unspec (hv) = 36 cn.l /* Length of condition name, */ 37 ||cn.b (1) /* leftmost character, */ 38 ||cn.b (divide (length (condition_name)+1, 2, 17)) /* middle character, */ 39 ||cn.b (length (condition_name)); /* rightmost character. */ 40 i = THL (mod (hv, hbound (THL, 1)+1)); /* Probe the hash start list. */ 41 if i>0 then /* Name possibly in hash list. */ 42 if condition_name = substr (string (TC), TL (i).fc, TL (i).ln) then do; /* Fault name found. */ 43 if scu.ppr.psr ^= substr (baseno (gcos_ext_stat_$gcos_slave_area_seg), 4, 15) then 44 goto general_abort; /* abort if fault occurred outside gcos segment */ 45 faultv.ic = instruction_counter+1; /* get IC */ 46 faultv.ind = string (scu.ir); /* and I */ 47 goto fault (i); /* handle fault if we want */ 48 end; 49 if condition_name = "simfault_" then goto general_abort; 50 51 pass_it_on: 52 call continue_to_signal_ (code); /* let's pass it on */ 53 54 return_to_gcos_code: ; 55 return; 56 57 /* Come here on a wide class of faults we won't take specific action on */ 58 59 /* "page" fault. */ 60 fault (10): 61 general_abort: 62 63 /* to avoid aborting job because of something like a missing segment, or 64* bad access (which Multics normally allows users to recover from) we will 65* ask the user if he wants to abort or let Multics handle it - but only if -db was given */ 66 67 if gcos_ext_stat_$save_data.debug then do; 68 query_info.yes_or_no_sw = "1"b; 69 call command_query_ ( 70 addr (query_info) 71 , answer 72 , "gcos" 73 , "fault: ^a occurred while running an activity." 74 ||"^/Do you wish to invoke the Multics fault handlers ?" 75 , cond_info.condition_name 76 ); 77 if answer = "yes" then goto pass_it_on; 78 end; 79 80 abort_code = gcos_et_$non_gcos_fault; /* abort */ 81 goto abrt1; 82 83 /* derail */ 84 85 fault (01): 86 87 abort_code = gcos_et_$derail_flt; /* abort type */ 88 fault_vector = 12; /* vector offset */ 89 goto user_fault; /* see if user has handler for fault */ 90 91 /* fault tag 1 */ 92 93 fault (04): 94 95 abort_code = gcos_et_$fault_tag_flt; /* abort type */ 96 fault_vector = 4; /* vector offset */ 97 goto user_fault; /* see if user has handler */ 98 99 /* Illegal procedure fault (used for RSW recognition). */ 100 fault (05): ; 101 if baseno (cond_info.loc_ptr) 102 = 103 baseno (gcos_ext_stat_$gcos_slave_area_seg) then /* Fault occured in gcos memory segment. */ 104 if cond_info.loc_ptr -> INS.OPCODE = "231"b3 then /* => RSW instruction. */ 105 if cond_info.loc_ptr -> INS.ADDRESS.r3b = 2 then do; /* Switches selected. */ 106 instruction_counter = instruction_counter+1; /* Increment to instruction after RSW. */ 107 scu.rfi = "1"b; /* Refetch instruction. */ 108 scu.if = "0"b; /* Reset fault indicator. */ 109 110 /* Set the A register to reflect switch info. */ 111 mc.regs.a = 112 113 /* (A-reg bits) */ 114 /* (0-3) Port address expansion option: */ (4)"0"b 115 /* (4-5) Reserved for future use: */ || (2)"0"b 116 /* (6-12) Processor fault base address switches: */ || (7)"0"b 117 /* (13-16) L66 peripheral connectability: */ || (4)"0"b 118 /* (17) Future use (must be zero): */ || (1)"1"b 119 /* (18) BCD option installed: */ || (1)"1"b 120 /* (19) DPS type processor: */ || (1)"0"b 121 /* (20) 8K cache option installed: */ || (1)"0"b 122 /* (21) Gear shift model processor: */ || (1)"0"b 123 /* (22) Power pach option installed: */ || (1)"0"b 124 /* (23) VMS-CU option installed - 66B' proc: */ || (1)"0"b 125 /* (24) VMS-VU option installed - 66B proc: */ || (1)"0"b 126 /* (25) Type processor (0) CPL, (1) DPSE-NPL: */ || (1)"0"b 127 /* (26) 6025, 6605 or 6610 type processor: */ || (1)"0"b 128 /* (27) 2K cache option installed: */ || (1)"0"b 129 /* (28) Extended memory option installed: */ || (1)"0"b 130 /* (29-30) cabinet (00) 8/70, (01) 8/52, (10) 862, (11) 846: */ || (2)"0"b 131 /* (31) EIS option installed: */ || (1)"1"b 132 /* (32) (1) slow memory access, (0) fast memory: */ || (1)"0"b 133 /* (33) (1) no instruction overlap, (0) overlap: */ || (1)"0"b 134 /* (34-35) Processor number: */ ||unspec (mc.cpu_type); 135 goto return_to_gcos_code; 136 end; 137 goto illegal_proc; 138 139 /* MME3 fault. */ 140 fault (02): 141 if gcos_ext_stat_$save_data.debug then goto pass_it_on; /* user must say -db in order to use the debugger */ 142 143 /* MME4 fault. */ 144 fault (03): 145 146 /* Illegal modifier. */ 147 fault (06): 148 149 /* Linkage error. */ 150 fault (07): 151 152 /* Fault tag 3. */ 153 fault (08): 154 155 /* Segment fault error. */ 156 fault (09): 157 158 /* Gate error. */ 159 fault (11): 160 161 /* Illegal opcode. */ 162 fault (21): 163 164 illegal_proc: ; 165 abort_code = gcos_et_$illegal_procedure; /* abort type */ 166 fault_vector = 0; /* vector offset */ 167 goto user_fault; /* see if user has handler */ 168 169 /* attempt to read or write out of partition bounds */ 170 171 /* Store fault. */ 172 fault (12): 173 174 /* Out_of_bounds fault. */ 175 fault (20): 176 177 abort_code = gcos_et_$mem_addr_flt; /* abort type */ 178 fault_vector = 2; /* vector offset */ 179 goto user_fault; /* see if user has handler */ 180 181 /* overflow */ 182 183 fault (16): 184 fault_flags = "020000"b3 ; /* turn on bit 22 of accum. fault status */ 185 goto common_flow; 186 187 /* fixedoverflow */ 188 189 fault (15): 190 fault_flags = "040000"b3 ; /* turn on bit 21 of accum. fault status */ 191 goto common_flow; 192 193 /* underflow */ 194 195 fault (14): 196 197 fault_flags = "010000"b3 ; /* turn on bit 23 of accum. fault status */ 198 199 common_flow: 200 201 abort_code = gcos_et_$over_or_under_flow; /* abort type */ 202 fault_vector = 8; /* vector offset */ 203 goto user_faultx; /* see if user has handler */ 204 205 /* zero divide */ 206 207 fault (17): 208 209 abort_code = gcos_et_$divide_check_flt; /* abort type */ 210 fault_vector = 6; /* vector offset */ 211 fault_flags = "000100"b3 ; /* turn on bit 29 of accum. fault status */ 212 213 /* Come here with a fault which the gcos user can potentially handle. */ 214 /* "fault_vector" holds the offset from the base of the gcos segment where */ 215 /* the user's fault vector for the particular fault which occurred is located. */ 216 /* If the user has no address specifed to which control should go on a fault */ 217 /* of the type which occurred, "abort_code" holds the type of abort to */ 218 /* be taken. */ 219 220 /* Put the accumulated fault status into word 25 of prefix */ 221 user_faultx: 222 p = addrel (gcos_ext_stat_$gcos_slave_area_seg, 25); /* get pointer to it */ 223 p -> accum_stat = p -> accum_stat | ((6)"0"b3 || fault_flags); /* or in the gcos_ext_stat_$save_data */ 224 225 user_fault: 226 227 prefix_vector (fault_vector) = ic_i; /* copy ic and indicators into fault vector */ 228 229 if prefix_vector (fault_vector+1) = (36)"0"b then do; /* if user has no handler, abort the job */ 230 231 abrt: unspec (gcos_ext_stat_$mc) = unspec (mc); /* save fault data for gcos_mme_bort_ */ 232 abrt1: call condition_interpreter_ (null, p, i, 3, mcptr, (condition_name), wcptr, infoptr); 233 call gcos_mme_bort_$system (abort_code); 234 goto return_to_gcos_code; /* just in case */ 235 end; 236 237 /* Set scu data to cause processor to resume execution at the */ 238 /* second word of the fault vector. This is done by setting the ilc to */ 239 /* the address of that word and turning on "rfi" and "if "in the */ 240 /* scu data, to force the cpu to refetch the instruction from the */ 241 /* word pointed to by the ilc. */ 242 243 /* Useg instruction in gcos code at 2nd word of fault entry. */ 244 instruction_counter = fault_vector+1; 245 scu.rfi = "1"b; /* Refetch this instruction. */ 246 scu.if = "0"b; /* Turn off indicator indicating instruction caused fault. */ 247 goto return_to_gcos_code; /* goto return_to_gcos_code to the gcos program */ 248 249 /* HANDLERS FOR FAULTS THAT THE USER'S FAULT VECTOR CAN NOT HANDLE */ 250 251 /* parity */ 252 253 fault (13): 254 255 abort_code = gcos_et_$mem_parity_flt; 256 fault_vector = 6; /* say where to put IC and I */ 257 goto ic_and_i; /* and go do it */ 258 259 /* op_not_complete */ 260 261 fault (19): 262 263 abort_code = gcos_et_$op_not_complete_flt; /* abort */ 264 fault_vector = 4; /* say where to put IC and I */ 265 goto ic_and_i; /* and go do it */ 266 267 /* lockup */ 268 269 fault (18): 270 271 abort_code = gcos_et_$lockup_flt; /* abort */ 272 fault_vector = 2; /* say where to put IC and I */ 273 274 /* Come here to put IC and I in word 10 and one other word (specified by fault_vector) */ 275 276 ic_and_i: 277 278 prefix_vector (10) = ic_i; /* put it into word 10 */ 279 prefix_vector (fault_vector) = ic_i; /* and also word 2, 4, or 6 */ 280 281 goto abrt; /* and go abort the activity */ 282 283 timer_runout: entry (mcp_val, fault_name); 284 285 /* Come here if fault is a timer runout */ 286 dcl fault_name char(*)parm /* fault name from fim */; 287 dcl mcp_val ptr parm; 288 mcp = mcp_val; 289 scup = addr (mc.scu); 290 291 292 abort_code = gcos_et_$out_of_time; /* abort */ 293 294 unspec (gcos_ext_stat_$mc) = unspec (mc); /* save fault data for gcos_mme_bort_ */ 295 296 abrt2: call gcos_mme_bort_$system (abort_code); 297 goto return_to_gcos_code; /* just in case */ 298 299 /* Variables for gcos_fault_processor_: */ 300 /* IDENTIFIER ATTRIBUTES */ 301 dcl abort_code fixed bin(35) /* abort code for this fault */; 302 dcl accum_stat bit(36) aligned based /* overlay for accumulated */; 303 dcl addr builtin; 304 dcl addrel builtin; 305 dcl answer char(4) varying; 306 dcl baseno builtin; 307 dcl code fixed bin(35); 308 dcl command_query_ ext entry options (variable); 309 dcl condition_interpreter_ ext entry (ptr, ptr, fixed bin(24), fixed bin(24), ptr, char(*), ptr, ptr); 310 dcl continue_to_signal_ ext entry (fixed bin(35)); 311 dcl divide builtin; 312 dcl fault_flags bit(18) /* gcos_ext_stat_$save_data to set accumulated */; 313 dcl fault_vector fixed bin(24)/* offset from base of gcos segment */; 314 dcl find_condition_info_ ext entry (ptr, ptr, fixed bin(35)); 315 dcl fixed builtin; 316 dcl gcos_et_$derail_flt fixed bin(35) ext; 317 dcl gcos_et_$divide_check_flt fixed bin(35) ext; 318 dcl gcos_et_$fault_tag_flt fixed bin(35) ext; 319 dcl gcos_et_$illegal_procedure fixed bin(35) ext; 320 dcl gcos_et_$lockup_flt fixed bin(35) ext; 321 dcl gcos_et_$mem_addr_flt fixed bin(35) ext; 322 dcl gcos_et_$mem_parity_flt fixed bin(35) ext; 323 dcl gcos_et_$non_gcos_fault fixed bin(35) ext; 324 dcl gcos_et_$op_not_complete_flt fixed bin(35) ext; 325 dcl gcos_et_$out_of_time fixed bin(35) ext; 326 dcl gcos_et_$over_or_under_flow fixed bin(35) ext; 327 dcl gcos_mme_bort_$system ext entry options (variable); 328 dcl hbound builtin; 329 dcl hv fixed bin(35); 330 dcl i fixed bin(24); 331 dcl ic_i bit(36) aligned; 332 dcl instruction_counter fixed bin(18)unsigned unal based(addr(scu.ilc)); 333 dcl length builtin; 334 dcl mod builtin; 335 dcl null builtin; 336 dcl p pointer; 337 dcl prefix_vector (0:13) bit(36) aligned based (gcos_ext_stat_$gcos_slave_area_seg); 338 dcl string builtin; 339 dcl substr builtin; 340 dcl unspec builtin; 341 342 dcl 1 INS aligned based 343 ,2 ADDRESS unal 344 , 3 fill bit(15)unal 345 , 3 r3b fixed bin(3)unsigned unal 346 ,2 OPCODE bit(10)unal 347 ,2 I bit(1)unal 348 ,2 T bit(1)unal 349 ,2 TAG bit(6)unal 350 ; 351 352 353 /* Structure overlays varying string "condition name" 354* to provide formation of hash value. 355**/ 356 dcl 1 cn aligned based(addr(condition_name)) 357 ,2 f bit(27)unal 358 ,2 l bit( 9)unal 359 ,2 b (32)bit(9)unal 360 ; 361 362 dcl 1 faultv aligned based (addr (ic_i)) /* overlay for ic_i */, 363 2 ic fixed bin(18)unsigned unaligned /* instruction counter */, 364 2 ind bit(18) unaligned /* indicators */; 365 366 dcl 1 cond_info aligned, 1 1 /* BEGIN INCLUDE FILE ... cond_info.incl.pl1 1 2* coded by M. Weaver 12 July 1973 */ 1 3 1 4 2 mcptr ptr, /* ptr to machine conditions at time of fault */ 1 5 2 version fixed bin, /* version of this structure (now=1) */ 1 6 2 condition_name char(32) var, /* name of condition */ 1 7 2 infoptr ptr, /* ptr to software info structure */ 1 8 2 wcptr ptr, /* ptr to wall crossing machine conditions */ 1 9 2 loc_ptr ptr, /* ptr to location where condition occurred */ 1 10 2 flags aligned, 1 11 3 crawlout bit(1) unal, /* = "1"b if condition occurred in inner ring */ 1 12 3 pad1 bit(35) unal, 1 13 2 pad_word bit(36) aligned, 1 14 2 user_loc_ptr ptr, /* ptr to last non-support loc before condition */ 1 15 2 pad (4) bit(36) aligned; 1 16 1 17 /* END INCLUDE FILE ... cond_info.incl.pl1 */ 367 368 2 1 /* BEGIN INCLUDE FILE gcos_fault_names.incl.pl1 (Wardd Multics) 06/03/81 1539.2 mst Wed */ 2 2 2 3 /* Created from gcos_fault_names.ec 2 4* 2 5* 1 derail 2 6* 2 mme3 2 7* 3 mme4 2 8* 4 fault_tag_1 2 9* 5 illegal_procedure 2 10* 6 illegal_modifier 2 11* 7 linkage_error 2 12* 8 fault_tag_3 2 13* 9 seg_fault_error 2 14* 10 page_fault_error 2 15* 11 gate_error 2 16* 12 store 2 17* 13 parity 2 18* 14 underflow 2 19* 15 fixedoverflow 2 20* 16 overflow 2 21* 17 zerodivide 2 22* 18 lockup 2 23* 19 op_not_complete 2 24* 20 out_of_bounds 2 25* 21 illegal_opcode 2 26**/ 2 27 2 28 dcl 1 gcos_fault_names static internal options(constant), 2 29 2 TC ( 222) char(1) init( 2 30 "d","e","r","a","i","l","m","m","e","3","m","m","e","4", 2 31 "f","a","u","l","t","_","t","a","g","_","1","i","l","l", 2 32 "e","g","a","l","_","p","r","o","c","e","d","u","r","e", 2 33 "i","l","l","e","g","a","l","_","m","o","d","i","f","i", 2 34 "e","r","l","i","n","k","a","g","e","_","e","r","r","o", 2 35 "r","f","a","u","l","t","_","t","a","g","_","3","s","e", 2 36 "g","_","f","a","u","l","t","_","e","r","r","o","r","p", 2 37 "a","g","e","_","f","a","u","l","t","_","e","r","r","o", 2 38 "r","g","a","t","e","_","e","r","r","o","r","s","t","o", 2 39 "r","e","p","a","r","i","t","y","u","n","d","e","r","f", 2 40 "l","o","w","f","i","x","e","d","o","v","e","r","f","l", 2 41 "o","w","o","v","e","r","f","l","o","w","z","e","r","o", 2 42 "d","i","v","i","d","e","l","o","c","k","u","p","o","p", 2 43 "_","n","o","t","_","c","o","m","p","l","e","t","e","o", 2 44 "u","t","_","o","f","_","b","o","u","n","d","s","i","l", 2 45 "l","e","g","a","l","_","o","p","c","o","d","e"), 2 46 2 TL ( 21), 2 47 3 lk fixed bin(24) init( 2 48 ( 14) 0, 2 49 ( 7) 0), 2 50 3 fc fixed bin(24) init( 2 51 1, 7, 11, 15, 26, 43, 59, 72, 83, 98, 114, 124, 129, 135, 2 52 144, 157, 165, 175, 181, 196, 209), 2 53 3 ln fixed bin(24) init( 2 54 6, 4, 4, 11, 17, 16, 13, 11, 15, 16, 10, 5, 6, 9, 2 55 13, 8, 10, 6, 15, 13, 14), 2 56 2 THL (0: 88) fixed bin(24) init( 2 57 0, 1,( 9) 0, 20, 0, 0, 2 58 ( 3) 0, 10,( 6) 0, 18,( 3) 0, 2 59 7,( 4) 0, 9,( 3) 0, 13,( 4) 0, 2 60 17, 21,( 3) 0, 11, 15, 0, 6, 5,( 4) 0, 2 61 ( 3) 0, 14, 16, 0, 19, 0, 4, 0, 8,( 3) 0, 2 62 ( 4) 0, 2, 3,( 3) 0, 12,( 4) 0, 2 63 ( 5) 0); 2 64 2 65 /* END INCLUDE FILE gcos_fault_names.incl.pl1 */ 369 370 3 1 /* BEGIN INCLUDE FILE query_info.incl.pl1 TAC June 1, 1973 */ 3 2 /* Renamed to query_info.incl.pl1 and cp_escape_control added, 08/10/78 WOS */ 3 3 /* version number changed to 4, 08/10/78 WOS */ 3 4 /* Version 5 adds explanation_(ptr len) 05/08/81 S. Herbst */ 3 5 /* Version 6 adds literal_sw, prompt_after_explanation switch 12/15/82 S. Herbst */ 3 6 3 7 dcl 1 query_info aligned, /* argument structure for command_query_ call */ 3 8 2 version fixed bin, /* version of this structure - must be set, see below */ 3 9 2 switches aligned, /* various bit switch values */ 3 10 3 yes_or_no_sw bit (1) unaligned init ("0"b), /* not a yes-or-no question, by default */ 3 11 3 suppress_name_sw bit (1) unaligned init ("0"b), /* do not suppress command name */ 3 12 3 cp_escape_control bit (2) unaligned init ("00"b), /* obey static default value */ 3 13 /* "01" -> invalid, "10" -> don't allow, "11" -> allow */ 3 14 3 suppress_spacing bit (1) unaligned init ("0"b), /* whether to print extra spacing */ 3 15 3 literal_sw bit (1) unaligned init ("0"b), /* ON => do not strip leading/trailing white space */ 3 16 3 prompt_after_explanation bit (1) unaligned init ("0"b), /* ON => repeat question after explanation */ 3 17 3 padding bit (29) unaligned init (""b), /* pads it out to t word */ 3 18 2 status_code fixed bin (35) init (0), /* query not prompted by any error, by default */ 3 19 2 query_code fixed bin (35) init (0), /* currently has no meaning */ 3 20 3 21 /* Limit of data defined for version 2 */ 3 22 3 23 2 question_iocbp ptr init (null ()), /* IO switch to write question */ 3 24 2 answer_iocbp ptr init (null ()), /* IO switch to read answer */ 3 25 2 repeat_time fixed bin (71) init (0), /* repeat question every N seconds if no answer */ 3 26 /* minimum of 30 seconds required for repeat */ 3 27 /* otherwise, no repeat will occur */ 3 28 /* Limit of data defined for version 4 */ 3 29 3 30 2 explanation_ptr ptr init (null ()), /* explanation of question to be printed if */ 3 31 2 explanation_len fixed bin (21) init (0); /* user answers "?" (disabled if ptr=null or len=0) */ 3 32 3 33 dcl query_info_version_3 fixed bin int static options (constant) init (3); 3 34 dcl query_info_version_4 fixed bin int static options (constant) init (4); 3 35 dcl query_info_version_5 fixed bin int static options (constant) init (5); 3 36 dcl query_info_version_6 fixed bin int static options (constant) init (6); /* the current version number */ 3 37 3 38 /* END INCLUDE FILE query_info.incl.pl1 */ 371 372 4 1 /* BEGIN INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 4 2 /* 4 3* Changes to gcos_ext_stat_ must be made here AND gcos_ext_stat_.cds 4 4**/ 4 5 /* July 77 (MRJ) Mike Jordan. */ 4 6 /* Change: Mel Wilson Oct 1979 for gtss compatibility (Bell Canada). */ 4 7 /* Change: A. N. Kepner, March, 1978 to allow courtesy call i/o within cc routines. */ 4 8 /* Change: Dave Ward 06/01/81 Reorganized to eliminate alm object (using cds). Use of like structures. */ 4 9 /* Change: Scott C. Akers 01/26/82 Add tape_buffer_size for GEINOS processing. */ 4 10 /* Change: Ron Barstad 83-08-02 Added activity_card_num for execution report */ 4 11 /* Increased size of statistics for 4js3 MMEs */ 4 12 4 13 dcl gcos_ext_stat_$abort_reason char(128) varying /* abort reason from gcos pgm */ ext; 4 14 dcl gcos_ext_stat_$abort_return label /* abort return point */ ext; 4 15 dcl gcos_ext_stat_$activity_card_num pic "9999" ext; /* card number defining current activity */ 4 16 dcl gcos_ext_stat_$activity_name char(8) /* name of activity to be run */ ext; 4 17 dcl gcos_ext_stat_$activity_start_time fixed bin(71) /* TOD start of activity */ ext; 4 18 dcl gcos_ext_stat_$card_num pic "9999" /* ordinal number of card in input stream */ ext; 4 19 dcl gcos_ext_stat_$dbs (36)bit(1) /* Debugging switch. */ ext; 4 20 dcl gcos_ext_stat_$default_nondollar char(2) /* filecode where nondollar cards go by default */ ext; 4 21 dcl gcos_ext_stat_$dir_rings (3) fixed bin(3) /* ring brackets for created catalogs */ ext; 4 22 dcl gcos_ext_stat_$dpno char(100) varying /* arguments for call to dpunch */ ext; 4 23 dcl gcos_ext_stat_$dpo char(100) varying /* arguments for call to dprint */ ext; 4 24 dcl gcos_ext_stat_$endfc char(2) /* endfc value for endcopy processing */ ext; 4 25 dcl gcos_ext_stat_$er ptr /* fib pointer for *er */ ext; 4 26 dcl gcos_ext_stat_$etc_filecode char(2) /* filecode where $ ETC cards should be written */ ext; 4 27 dcl gcos_ext_stat_$gcos_slave_area_seg ptr /* pointer to gcos slave area segment */ ext; 4 28 dcl gcos_ext_stat_$gf fixed bin(24)/* sw used by getfield rtn */ ext; 4 29 dcl gcos_ext_stat_$incode fixed bin(24) /* switches to control incode processing */ ext; 4 30 dcl gcos_ext_stat_$increment_hold fixed bin(24) /* Holds increment for courtesy call returns. */ ext; 4 31 dcl gcos_ext_stat_$initial_cpu_time fixed bin(71) /* vcu time at activity start */ ext; 4 32 dcl gcos_ext_stat_$input_segment_path char(168) varying /* pathname of input segment */ ext; 4 33 dcl gcos_ext_stat_$jcl_warnings fixed bin(24) /* number warnings issued processing control cards */ ext; 4 34 dcl gcos_ext_stat_$job_cpu_time fixed bin(71) /* cpu usage at job start */ ext; 4 35 dcl gcos_ext_stat_$job_id char(18) varying /* unique job id for file naming */ ext; 4 36 dcl gcos_ext_stat_$job_real_time fixed bin(71) /* job start time in microseconds */ ext; 4 37 dcl gcos_ext_stat_$last_mme fixed bin(24)/* number of last mme executed */ ext; 4 38 dcl gcos_ext_stat_$ldrss fixed bin(24) /* loader shared stg. */ ext; 4 39 dcl gcos_ext_stat_$max_activities fixed bin(24)/* max activities in a job */ ext; 4 40 dcl gcos_ext_stat_$max_mem fixed bin(19) /* maximum memory available to an activity */ ext; 4 41 dcl gcos_ext_stat_$mme_rtrn label /* where to return at activity end */ ext; 4 42 dcl gcos_ext_stat_$nondollar char(2) /* non-dollar card file code */ ext; 4 43 dcl gcos_ext_stat_$nongcos char(2) /* filecode where nongcos dollar cards go */ ext; 4 44 dcl gcos_ext_stat_$normal_return label /* nonlocal goto for normal termination */ ext; 4 45 dcl gcos_ext_stat_$patchfile_ptr ptr /* pointer to patchfile */ ext; 4 46 dcl gcos_ext_stat_$pathname_prefix char(168)var ext; 4 47 dcl gcos_ext_stat_$pch ptr /* pointer to fib for syspunch collector file */ ext; 4 48 dcl gcos_ext_stat_$pdir char(168) varying /* pathname of process directory */ ext; 4 49 dcl gcos_ext_stat_$prt ptr /* pointer to fib for sysprint collector file */ ext; 4 50 dcl gcos_ext_stat_$rs ptr /* pointer to fib for geload r* collector file */ ext; 4 51 dcl gcos_ext_stat_$saveseg_ptr ptr /* pointer to save segment used by save/restart */ ext; 4 52 dcl gcos_ext_stat_$save_dir char(168) varying /* pathname of temp save directory */ ext; 4 53 dcl gcos_ext_stat_$seg_rings (3) fixed bin(3) /* ring brackets for created files */ ext; 4 54 dcl gcos_ext_stat_$sig_ptr ptr /* saved pointer to signal_ */ ext; 4 55 dcl gcos_ext_stat_$skip_umc bit(1) ext; 4 56 dcl gcos_ext_stat_$snumb bit (30) aligned /* snumb of the current job */ ext; 4 57 dcl gcos_ext_stat_$sought_label char(8) /* Label from GOTO, IF, or WHEN card */ ext; 4 58 dcl gcos_ext_stat_$statistics (3*44) fixed bin(24) /* mme usage statistics- 3 per mme */ ext; 4 59 dcl gcos_ext_stat_$stop_code fixed bin(24) /* debugging, print results and stop. */ ext; 4 60 dcl gcos_ext_stat_$storage_limit fixed bin(19) /* activity storage limit */ ext; 4 61 dcl gcos_ext_stat_$sysout_limit fixed bin(35) /* sysout line limit */ ext; 4 62 dcl gcos_ext_stat_$sysout_lines fixed bin(35) /* sysout lines used */ ext; 4 63 dcl gcos_ext_stat_$system_free_pointer ptr /* pointer to area for allocating in ext; set by gcos */ ext; 4 64 dcl gcos_ext_stat_$tape_buffer_size fixed bin(35) external static; /* tape buffer size for GEINOS. */ 4 65 dcl gcos_ext_stat_$temp_dir char(168) varying /* pathname of directory to hold temp files */ ext; 4 66 dcl gcos_ext_stat_$temp_seg_ptr ptr ext; 4 67 dcl gcos_ext_stat_$termination_code bit (18) /* termination code from gcos_mme_bort_ */ ext; 4 68 dcl gcos_ext_stat_$time_limit fixed bin(71) /* activity time limit */ ext; 4 69 dcl gcos_ext_stat_$userid char(12) /* the USERID */ ext; 4 70 dcl gcos_ext_stat_$validation_level fixed bin(3) /* current ring of execution */ ext; 4 71 4 72 /* Courtesy Call Queue 4 73* A queue for courtesy call addresses which must be saved during 4 74* execution of courtesy call routines. A courtesy call address is 4 75* saved each time a MME GEROUT or MME GEINOS, which specifies a 4 76* courtesy call, is executed within a courtesy call routine. Each 4 77* time a MME GEENDC is executed a courtesy call address will be 4 78* removed from this FIFO queue and the corresponding courtesy call 4 79* routine executed until the queue is empty. The FIFO "queue" is 4 80* implemented in a circular fashion. "next_avail" points to the 4 81* next empty location in the queue. "next_out" points to the 4 82* entry in the queue which has been in the queue longest. When 4 83* entering or removing entries from the queue the appropriate index 4 84* is incremented modulo the length of the queue. By convention the 4 85* queue is empty when "next_avail" equals "next_out". A 4 86* second convention is that the queue is considered to overflow 4 87* during an attempt to add an entry to the queue which would force 4 88* "next_avail" to "catch up" with "next_out". This means that 4 89* the last empty position in the queue will never be used. 4 90**/ 4 91 4 92 dcl 1 gcos_ext_stat_$courtesy_call_control aligned ext 4 93 , 3 courtesy_call 4 94 , 4 hold like save_machine_conditions /* Mach. conds. restored on courtesy call returns. */ 4 95 , 4 next_avail fixed bin(24) /* next available empty location in cc_queue. */ 4 96 , 4 next_out fixed bin(24) /* next entry to remove from cc_queue. */ 4 97 , 4 queue (6) fixed bin(24) 4 98 ; 4 99 5 1 /* BEGIN INCLUDE FILE gcos_save_mc.incl.pl1 (Wardd Multics) 09/12/81 0905.9 mst Sat */ 5 2 5 3 /* Structure to isolate the definition of the size of the 5 4*space needed to store he machine conditions structure (mc). 5 5**/ 5 6 dcl 1 save_machine_conditions based 5 7 , 3 save_space bit(1728) 5 8 ; 5 9 5 10 /* END INCLUDE FILE gcos_save_mc.incl.pl1 */ 4 100 4 101 4 102 dcl 1 gcos_ext_stat_$fct aligned ext, 4 103 3 fct (40) like fct_entry; 6 1 /* BEGIN INCLUDE FILE gcos_fct_entry.incl.pl1 (Wardd Multics) 05/30/81 1758.6 mst Sat */ 6 2 6 3 dcl 1 fct_entry aligned based, 6 4 2 filecode char(2) aligned, /* file code (or blank) */ 6 5 /* flags */ 6 6 2 sysout bit(1) unaligned, /* 1=file is sysout or dac */ 6 7 2 dac bit(1) unaligned, /* 1=file is dac,0=file is sysout */ 6 8 2 pad bit(34) unaligned, /* unused */ 6 9 2 fibptr ptr aligned /* ptr to fib for this file */ 6 10 ; 6 11 6 12 /* END INCLUDE FILE gcos_fct_entry.incl.pl1 */ 4 104 4 105 4 106 dcl 1 gcos_ext_stat_$save_data aligned ext, 4 107 3 save_data like save_data_entry; 7 1 /* BEGIN INCLUDE FILE gcos_save_data_entry.incl.pl1 (Wardd Multics) 07/01/81 1339.9 mst Wed */ 7 2 /* Change: Dave Ward 07/01/81 include gcos_flags_. */ 7 3 /* Change: Dave Ward 09/10/81 fib changed to fibs & likened to fib. */ 7 4 7 5 dcl 1 save_data_entry aligned based 7 6 ,3 flgs like flags /* system wide flgs */ 7 7 ,3 actid char(8) /* activity no. and accnt i.d. */ 7 8 ,3 short_actid bit(36) aligned /* short form of activity id */ 7 9 ,3 ident char(60) /* holds ident info from snumb card */ 7 10 ,3 psw bit(36) aligned /* program switch word */ 7 11 ,3 last_execute_act_no fixed bin(24)/* activity number of last $ EXECUTE card in job */ 7 12 ,3 activity_no fixed bin(24)/* activity number */ 7 13 ,3 job_time_limit fixed bin(71) /* job time limit */ 7 14 ,3 job_sysout_limit fixed bin(24)/* job sysout line limit */ 7 15 ,3 sysout_queue (10) char(32) /* sysout queue */ 7 16 ,3 sysout_queue_media (10) fixed bin(24)/* medium (print,punch) of each file on queue */ 7 17 ,3 sqindex fixed bin(24)/* curr offset in sysout queue */ 7 18 ,3 pathname_prefix char(168)varying /* prefix for gcos cfdescs */ 7 19 ,3 skip_umc aligned bit(1) /* flag to tell if we should skip umc names */ 7 20 ,3 job_deck pointer /* pointer to seg holding canonicalized job deck */ 7 21 ,3 jd_size fixed bin(24)/* size in words of job deck */ 7 22 ,3 jd_position fixed bin(24) /* position of current block of job deck */ 7 23 ,3 jd_rem_block_len fixed bin(24)/* words remaining in current block of job deck */ 7 24 ,3 syot_dir char(168)varying /* pathname of directory to hold sysout files */ 7 25 ,3 fibs (40) like fib 7 26 ,3 param (32) char(57)varying /* parameters */ 7 27 ; 7 28 8 1 /* BEGIN INCLUDE FILE gcos_flags.incl.pl1 (Wardd Multics) 07/01/81 1344.7 mst Wed */ 8 2 /* Change: Mel Wilson 03/01/79 to add gtssflag & identflag */ 8 3 /* Change: Dave Ward 07/01/81 revised, mad apart of gcos_ext_stat_. */ 8 4 8 5 8 6 /* Declaration of Simulator Wide Flags */ 8 7 8 8 dcl 1 flags aligned based, 8 9 2 ( 8 10 pad1, /* no longer used */ 8 11 copy, /* 1=copy option on|0=off */ 8 12 snumb, /* 1=snumb card read|0=not */ 8 13 ident, /* 1=ident card read|0=not */ 8 14 activ, /* 1=activity being defined|0=not */ 8 15 cc, /* 1=courtesy call active|0=not */ 8 16 pad2, /* no longer used */ 8 17 cksum, /* 1=don't check checksums|0=do */ 8 18 pad3, /* no longer used */ 8 19 wrapup, /* 1=processing wrapup after abort */ 8 20 8 21 /* FOLLOWING ADDED AFTER MARCH 73 */ 8 22 8 23 nosave, /* 1=disable save/restart function,0=not */ 8 24 pad4, /* no longer used */ 8 25 gcos, /* 1=job deck segment in gcos file format */ 8 26 raw, /* 1=sysout punch files to be converted to raw bit strings */ 8 27 list, /* 1=sysout print files to be converted to ascii */ 8 28 brief, /* 1=print nothing but fatal error messages on terminal */ 8 29 debug, /* 1=give option to call debug before aborting */ 8 30 no_canonicalize, /* 1=do NOT canonicalize job deck */ 8 31 8 32 /* 18 bits into first word */ 8 33 8 34 pad5, /* no longer used */ 8 35 dpunch, /* 1=dpunch sysout punch files;0=don't */ 8 36 dprint, /* 1=dprint sysout print files,0=don't */ 8 37 userid, /* 1=userid card read,0=not */ 8 38 userlib, /* 1= -userlib ctl arg given, see gcos_gein_ */ 8 39 dstar, /* 1=current activity card written on d* */ 8 40 write_etc, /* 1 tells get_cc_field to write $ ETC cards on etc_filecode */ 8 41 prev_act_abort, /* turned on by abort and off by $ BREAK */ 8 42 this_act_abort, /* turned on by abort to select abort disp codes */ 8 43 abort_subact, /* 1=processing abort subactivity */ 8 44 dump, /* 1=dump option given on activity card */ 8 45 nondollar, /* 1=reading nondollar card deck in gein */ 8 46 endjob, /* 1=cc_endjob already called once in this job */ 8 47 abort_card, /* 1=the terminator for this activity was a $ ABORT card */ 8 48 truncate, /* 1=truncate option given:truncate long ascii input lines */ 8 49 continue, /* 1=continue option given:continue after nonfatal errors */ 8 50 rout, /* 1=gcos_mme_rout_ was called in this activity */ 8 51 seeking, /* 1=gein is looking for a label and/or terminator */ 8 52 8 53 /* end of first word */ 8 54 8 55 seeking_terminator, /* 1=gein is looking for a terminator */ 8 56 lower_case, /* 1=lower case print conversion wanted */ 8 57 no_bar, /* 1=do not run slave program in BAR mode */ 8 58 long, /* 1=print some lines from execution reort on terminal */ 8 59 endfc, /* 1=process endfc option on endcopy card */ 8 60 gtssflag, /* 1=update gtss_user_state_ during execution */ 8 61 identflag, /* 1= use $ident banner info for print & punch */ 8 62 spawnflag, /* 1= entry due to tss spawn */ 8 63 taskflag /* 1= entry due to tss drl task */ 8 64 ) bit(1) unal, 8 65 2 pad6 bit(27)unal 8 66 ; 8 67 8 68 /* END INCLUDE FILE gcos_flags.incl.pl1 */ 7 29 7 30 7 31 /* END INCLUDE FILE gcos_save_data_entry.incl.pl1 */ 4 108 4 109 9 1 /* BEGIN INCLUDE FILE gcos_file_info_block_.incl.pl1 DAK - APRIL 74 */ 9 2 9 3 /* Declaration of File Information Block (fib) 9 4* 9 5* Change: Mel Wilson 11/01/79 for gtss compatibility 9 6* Change: Dave Ward 05/20/81 *_file constants. 9 7* Change: Dave Ward 05/29/81 separated fct structures. 9 8* Change: Dave Ward 09/02/81 provision for tape density 6250, dens_hist 2 bits (not 3). 9 9**/ 9 10 dcl 1 fib aligned based (fibptr) /* fib structure */ 9 11 9 12 , 2 buffer ptr aligned /* pointer to current buffer (gcos_write_) */ 9 13 , 2 buffer_indx fixed bin /* Index to buffer in use. */ 9 14 , 2 stream char(8)unal /* stream name for attaching this file */ 9 15 , 2 pathnm char(168)unal /* pathname (for disk, print or punch files) */ 9 16 , 2 unique_file_id bit(36) /* multics unique segment id for file */ 9 17 , 2 indicators /* five words of flags */ 9 18 9 19 , 3 indicators_word_1 9 20 , 4 used bit(1) unal /* 1=fib used, 0=fib used */ 9 21 , 4 attached bit(1) unal /* 1=stream is attached */ 9 22 , 4 type bit(1) unal /* 1=random, 0=linked */ 9 23 , 4 perm bit(1) unal /* 1=permanent file, 0=not */ 9 24 , 4 print bit(1) unal /* 1=file type is printer */ 9 25 , 4 punch bit(1) unal /* 1=file type is punch */ 9 26 , 4 reader bit(1) unal /* 1=file type is card reader */ 9 27 , 4 tape bit(1) unal /* 1=file type is tape */ 9 28 , 4 console bit(1) unal /* 1=file type is console typewriter */ 9 29 , 4 read bit(1) unal /* 1=read access permitted */ 9 30 , 4 write bit(1) unal /* 1=write access permitted */ 9 31 , 4 null bit(1) unal /* 1=file is null */ 9 32 , 4 purge bit(1) unal /* 1=purge file at time on release */ 9 33 , 4 gein bit(1) unal /* 1 = this file contains data cards from the job deck */ 9 34 , 4 disp bit(2) unal /* disposition code: 9 35* 00 = dismount 9 36* 01 = release 9 37* 10 = save 9 38* 11 = continue */ 9 39 , 4 adisp bit(2) unal /* abort disp - same codes as disp */ 9 40 , 4 order bit(1) unal /* 1 = write, 0 = read or other */ 9 41 , 4 mode bit(2) unal /* tape i/o mode 9 42* 00 = binary 9 43* 01 = decimal 9 44* 10 = nine */ 9 45 , 4 tracks bit(2) unal /* tape request code: 9 46* 00 = installation default 9 47* 01 = 7 track 9 48* 10 = 9 track */ 9 49 , 4 density bit(4) unal /* tape density from $ TAPE card 9 50* 0000 = site standard high 9 51* 0001 = 200 bpi 9 52* 0010 = 556 bpi 9 53* 0100 = 800 bpi 9 54* 1001 = 1600 bpi 9 55* 1100 = 6250 bpi 9 56* 1111 = handler capable of any appropriate denisty */ 9 57 , 4 dens_hist bit(2) unal /* density history for MME GEFADD */ 9 58 , 4 forced_acl_flag bit(1) unal /* 1 => acl forced for gtss file (2.4) */ 9 59 , 4 fill bit(6) unal /* reserved for future use */ 9 60 , 3 indicators_word_2 9 61 , 4 plud bit(18) unal /* primary log unit designator */ 9 62 /* bcd channel and channel number */ 9 63 9 64 , 4 slud bit(18) unal /* secondary log. unit designator */ 9 65 /* bcd channel and channel number */ 9 66 , 3 indicators_word_3 9 67 , 4 serial_no bit(30) unal /* tape serial number */ 9 68 , 4 pad bit( 6) unal /* unused */ 9 69 , 3 indicators_word_4 9 70 , 4 tape_name bit(72) unal /* tape name */ 9 71 9 72 , 2 current fixed bin(21) /* current file position */ 9 73 , 2 last fixed bin(21) /* eof for sequential disk files */ 9 74 , 2 size fixed bin(24) /* offset of end of file in words */ 9 75 , 2 init_size fixed bin(24) /* file size at start of activity */ 9 76 , 2 init_posit fixed bin(24) /* file position at start of activity */ 9 77 , 2 iocount fixed bin(35) /* total no. of i/o operations */ 9 78 , 2 rec_len fixed bin(24) /* length of current record (gcos_write_) */ 9 79 , 2 command_count fixed bin(17) unal /* size of command table for device (gcos_mme_inos_) */ 9 80 , 2 command_index fixed bin(17) unal /* pointer to command table entry (gcos_mme_inos_) */ 9 81 , 2 error_retry fixed bin(17) unal /* error retry counter */ 9 82 , 2 seq_no fixed bin(17) unal /* tape reel sequence no */ 9 83 ; 9 84 dcl fibptr ptr /* pointer to current fib in gcos_ext_stat_ */; 9 85 9 86 /* File usage classification constants: */ 9 87 dcl linked_file bit(1)static int options(constant)init("0"b); 9 88 dcl random_file bit(1)static int options(constant)init("1"b); 9 89 dcl read_file bit(1)static int options(constant)init("0"b); 9 90 dcl write_file bit(1)static int options(constant)init("1"b); 9 91 9 92 /* END INCLUDE FILE gcos_file_info_block_.incl.pl1 */ 4 110 4 111 4 112 dcl 1 gcos_ext_stat_$mc like mc /* machine condition from abort or fault */ ext; 10 1 /* */ 10 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 10 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 10 4 /* Modified 07/07/76 by Morris for fault register data */ 10 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 10 6 /* Modified '82 to make values constant */ 10 7 10 8 /* words 0-15 pointer registers */ 10 9 10 10 dcl mcp ptr; 10 11 10 12 dcl 1 mc based (mcp) aligned, 10 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 10 14 (2 regs, /* registers */ 10 15 3 x (0:7) bit (18), /* index registers */ 10 16 3 a bit (36), /* accumulator */ 10 17 3 q bit (36), /* q-register */ 10 18 3 e bit (8), /* exponent */ 10 19 3 pad1 bit (28), 10 20 3 t bit (27), /* timer register */ 10 21 3 pad2 bit (6), 10 22 3 ralr bit (3), /* ring alarm register */ 10 23 10 24 2 scu (0:7) bit (36), 10 25 10 26 2 mask bit (72), /* mem controller mask at time of fault */ 10 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 10 28 2 errcode fixed bin (35), /* fault handler's error code */ 10 29 2 fim_temp, 10 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 10 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 10 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 10 33 2 fault_reg bit (36), /* fault register */ 10 34 2 pad2 bit (1), 10 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 10 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 10 37 2 fault_time bit (54), /* time of fault */ 10 38 10 39 2 eis_info (0:7) bit (36)) unaligned; 10 40 10 41 10 42 dcl (apx fixed bin init (0), 10 43 abx fixed bin init (1), 10 44 bpx fixed bin init (2), 10 45 bbx fixed bin init (3), 10 46 lpx fixed bin init (4), 10 47 lbx fixed bin init (5), 10 48 spx fixed bin init (6), 10 49 sbx fixed bin init (7)) internal static options (constant); 10 50 10 51 10 52 10 53 10 54 dcl scup ptr; 10 55 10 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 10 57 10 58 10 59 /* WORD (0) */ 10 60 10 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 10 62 3 prr bit (3), /* procedure ring register */ 10 63 3 psr bit (15), /* procedure segment register */ 10 64 3 p bit (1), /* procedure privileged bit */ 10 65 10 66 2 apu, /* APPENDING UNIT STATUS */ 10 67 3 xsf bit (1), /* ext seg flag - IT modification */ 10 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 10 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 10 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 10 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 10 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 10 73 3 dsptw bit (1), /* Fetch of DSPTW */ 10 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 10 75 3 sdwp bit (1), /* Fetch of SDW paged */ 10 76 3 ptw bit (1), /* Fetch of PTW */ 10 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 10 78 3 fap bit (1), /* Fetch of final address paged */ 10 79 3 fanp bit (1), /* Fetch of final address non-paged */ 10 80 3 fabs bit (1), /* Fetch of final address absolute */ 10 81 10 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 10 83 10 84 10 85 /* WORD (1) */ 10 86 10 87 2 fd, /* FAULT DATA */ 10 88 3 iro bit (1), /* illegal ring order */ 10 89 3 oeb bit (1), /* out of execute bracket */ 10 90 3 e_off bit (1), /* no execute */ 10 91 3 orb bit (1), /* out of read bracket */ 10 92 3 r_off bit (1), /* no read */ 10 93 3 owb bit (1), /* out of write bracket */ 10 94 3 w_off bit (1), /* no write */ 10 95 3 no_ga bit (1), /* not a gate */ 10 96 3 ocb bit (1), /* out of call bracket */ 10 97 3 ocall bit (1), /* outward call */ 10 98 3 boc bit (1), /* bad outward call */ 10 99 3 inret bit (1), /* inward return */ 10 100 3 crt bit (1), /* cross ring transfer */ 10 101 3 ralr bit (1), /* ring alarm register */ 10 102 3 am_er bit (1), /* associative memory fault */ 10 103 3 oosb bit (1), /* out of segment bounds */ 10 104 3 paru bit (1), /* processor parity upper */ 10 105 3 parl bit (1), /* processor parity lower */ 10 106 3 onc_1 bit (1), /* op not complete type 1 */ 10 107 3 onc_2 bit (1), /* op not complete type 2 */ 10 108 10 109 2 port_stat, /* PORT STATUS */ 10 110 3 ial bit (4), /* illegal action lines */ 10 111 3 iac bit (3), /* illegal action channel */ 10 112 3 con_chan bit (3), /* connect channel */ 10 113 10 114 2 fi_num bit (5), /* (fault/interrupt) number */ 10 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 10 116 10 117 10 118 /* WORD (2) */ 10 119 10 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 10 121 3 trr bit (3), /* temporary ring register */ 10 122 3 tsr bit (15), /* temporary segment register */ 10 123 10 124 2 pad2 bit (9), 10 125 10 126 2 cpu_no bit (3), /* CPU number */ 10 127 10 128 2 delta bit (6), /* tally modification DELTA */ 10 129 10 130 10 131 /* WORD (3) */ 10 132 10 133 2 word3 bit (18), 10 134 10 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 10 136 3 tsna, /* Word 1 status */ 10 137 4 prn bit (3), /* Word 1 PR number */ 10 138 4 prv bit (1), /* Word 1 PR valid bit */ 10 139 3 tsnb, /* Word 2 status */ 10 140 4 prn bit (3), /* Word 2 PR number */ 10 141 4 prv bit (1), /* Word 2 PR valid bit */ 10 142 3 tsnc, /* Word 3 status */ 10 143 4 prn bit (3), /* Word 3 PR number */ 10 144 4 prv bit (1), /* Word 3 PR valid bit */ 10 145 10 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 10 147 10 148 10 149 /* WORD (4) */ 10 150 10 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 10 152 10 153 2 ir, /* INDICATOR REGISTERS */ 10 154 3 zero bit (1), /* zero indicator */ 10 155 3 neg bit (1), /* negative indicator */ 10 156 3 carry bit (1), /* carryry indicator */ 10 157 3 ovfl bit (1), /* overflow indicator */ 10 158 3 eovf bit (1), /* eponent overflow */ 10 159 3 eufl bit (1), /* exponent underflow */ 10 160 3 oflm bit (1), /* overflow mask */ 10 161 3 tro bit (1), /* tally runout */ 10 162 3 par bit (1), /* parity error */ 10 163 3 parm bit (1), /* parity mask */ 10 164 3 bm bit (1), /* ^bar mode */ 10 165 3 tru bit (1), /* truncation mode */ 10 166 3 mif bit (1), /* multi-word instruction mode */ 10 167 3 abs bit (1), /* absolute mode */ 10 168 3 pad bit (4), 10 169 10 170 10 171 /* WORD (5) */ 10 172 10 173 2 ca bit (18), /* COMPUTED ADDRESS */ 10 174 10 175 2 cu, /* CONTROL UNIT STATUS */ 10 176 3 rf bit (1), /* on first cycle of repeat instr */ 10 177 3 rpt bit (1), /* repeat instruction */ 10 178 3 rd bit (1), /* repeat double instruction */ 10 179 3 rl bit (1), /* repeat link instruciton */ 10 180 3 pot bit (1), /* IT modification */ 10 181 3 pon bit (1), /* return type instruction */ 10 182 3 xde bit (1), /* XDE from Even location */ 10 183 3 xdo bit (1), /* XDE from Odd location */ 10 184 3 poa bit (1), /* operation preparation */ 10 185 3 rfi bit (1), /* tells CPU to refetch instruction */ 10 186 3 its bit (1), /* ITS modification */ 10 187 3 if bit (1), /* fault occured during instruction fetch */ 10 188 10 189 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 10 190 10 191 10 192 /* WORDS (6,7) */ 10 193 10 194 2 even_inst bit (36), /* even instruction of faulting pair */ 10 195 10 196 2 odd_inst bit (36); /* odd instruction of faulting pair */ 10 197 10 198 10 199 10 200 10 201 10 202 10 203 /* ALTERNATE SCU DECLARATION */ 10 204 10 205 10 206 dcl 1 scux based (scup) aligned, 10 207 10 208 (2 pad0 bit (36), 10 209 10 210 2 fd, /* GROUP II FAULT DATA */ 10 211 3 isn bit (1), /* illegal segment number */ 10 212 3 ioc bit (1), /* illegal op code */ 10 213 3 ia_am bit (1), /* illegal address - modifier */ 10 214 3 isp bit (1), /* illegal slave procedure */ 10 215 3 ipr bit (1), /* illegal procedure */ 10 216 3 nea bit (1), /* non existent address */ 10 217 3 oobb bit (1), /* out of bounds */ 10 218 3 pad bit (29), 10 219 10 220 2 pad2 bit (36), 10 221 10 222 2 pad3a bit (18), 10 223 10 224 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 10 225 3 prn bit (3), /* PR number */ 10 226 3 prv bit (1), /* PR valid bit */ 10 227 10 228 2 pad3b bit (6)) unaligned, 10 229 10 230 2 pad45 (0:1) bit (36), 10 231 10 232 2 instr (0:1) bit (36); /* Instruction ARRAY */ 10 233 10 234 10 235 10 236 /* END INCLUDE FILE mc.incl.pl1 */ 4 113 4 114 4 115 dcl 1 gcos_ext_stat_$gcos_gtss ext 4 116 , 3 gcos_gtss_ext 4 117 , 4 u_state_ptr ptr 4 118 , 4 snumb_index fixed bin(24) 4 119 , 4 home_path char(168) 4 120 ; 4 121 4 122 /* END INCLUDE FILE gcos_ext_stat_.incl.pl1 */ 373 374 end gcos_fault_processor_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/09/83 1006.8 gcos_fault_processor_.pl1 >spec>on>09/07/83-gcos>gcos_fault_processor_.pl1 367 1 05/06/74 1741.0 cond_info.incl.pl1 >ldd>include>cond_info.incl.pl1 369 2 03/27/82 0424.8 gcos_fault_names.incl.pl1 >ldd>include>gcos_fault_names.incl.pl1 371 3 03/11/83 1204.3 query_info.incl.pl1 >ldd>include>query_info.incl.pl1 373 4 09/08/83 1229.3 gcos_ext_stat_.incl.pl1 >spec>on>09/07/83-gcos>gcos_ext_stat_.incl.pl1 4-100 5 03/27/82 0424.8 gcos_save_mc.incl.pl1 >ldd>include>gcos_save_mc.incl.pl1 4-104 6 03/27/82 0424.8 gcos_fct_entry.incl.pl1 >ldd>include>gcos_fct_entry.incl.pl1 4-108 7 03/27/82 0424.8 gcos_save_data_entry.incl.pl1 >ldd>include>gcos_save_data_entry.incl.pl1 7-29 8 09/08/83 1230.3 gcos_flags.incl.pl1 >spec>on>09/07/83-gcos>gcos_flags.incl.pl1 4-110 9 03/27/82 0424.8 gcos_file_info_block_.incl.pl1 >ldd>include>gcos_file_info_block_.incl.pl1 4-113 10 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. ADDRESS based structure level 2 packed unaligned dcl 342 INS based structure level 1 dcl 342 OPCODE 0(18) based bit(10) level 2 packed unaligned dcl 342 ref 101 TC 000025 constant char(1) initial array level 2 packed unaligned dcl 2-28 ref 41 THL 167 000025 constant fixed bin(24,0) initial array level 2 dcl 2-28 ref 40 40 TL 70 000025 constant structure array level 2 unaligned dcl 2-28 a 24 based bit(36) level 3 packed unaligned dcl 10-12 set ref 111* abort_code 000100 automatic fixed bin(35,0) dcl 301 set ref 80* 85* 93* 165* 172* 199* 207* 233* 253* 261* 269* 292* 296* accum_stat based bit(36) dcl 302 set ref 223* 223 addr builtin function dcl 303 ref 30 30 32 35 35 35 35 45 45 46 69 69 106 106 244 289 addrel builtin function dcl 304 ref 221 answer 000102 automatic varying char(4) dcl 305 set ref 69* 77 answer_iocbp 6 000146 automatic pointer initial level 2 dcl 3-7 set ref 3-7* b 1 based bit(9) array level 2 packed unaligned dcl 356 ref 35 35 35 baseno builtin function dcl 306 ref 43 101 101 cn based structure level 1 dcl 356 code 000104 automatic fixed bin(35,0) dcl 307 set ref 30* 51* command_query_ 000010 constant entry external dcl 308 ref 69 cond_info 000114 automatic structure level 1 dcl 366 set ref 30 30 condition_interpreter_ 000012 constant entry external dcl 309 ref 232 condition_name 3 000114 automatic varying char(32) level 2 dcl 366 set ref 35 35 35 35 35 35 41 49 69* 232 continue_to_signal_ 000014 constant entry external dcl 310 ref 51 cp_escape_control 1(02) 000146 automatic bit(2) initial level 3 packed unaligned dcl 3-7 set ref 3-7* cpu_type 46(01) based fixed bin(2,0) level 2 packed unsigned unaligned dcl 10-12 ref 111 cu 5(18) based structure level 2 packed unaligned dcl 10-56 debug 0(16) 000052 external static bit(1) level 4 packed unaligned dcl 4-106 ref 60 140 divide builtin function dcl 311 ref 35 explanation_len 14 000146 automatic fixed bin(21,0) initial level 2 dcl 3-7 set ref 3-7* explanation_ptr 12 000146 automatic pointer initial level 2 dcl 3-7 set ref 3-7* fault_flags 000105 automatic bit(18) unaligned dcl 312 set ref 183* 189* 195* 211* 223 fault_name parameter char unaligned dcl 286 ref 283 fault_vector 000106 automatic fixed bin(24,0) dcl 313 set ref 88* 96* 166* 178* 202* 210* 225 229 244 256* 264* 272* 279 faultv based structure level 1 dcl 362 fc 71 000025 constant fixed bin(24,0) initial array level 3 dcl 2-28 ref 41 fct_entry based structure level 1 dcl 6-3 fib based structure level 1 dcl 9-10 find_condition_info_ 000016 constant entry external dcl 314 ref 30 flags based structure level 1 dcl 8-8 flgs 000052 external static structure level 3 dcl 4-106 gcos_et_$derail_flt 000020 external static fixed bin(35,0) dcl 316 ref 85 gcos_et_$divide_check_flt 000022 external static fixed bin(35,0) dcl 317 ref 207 gcos_et_$fault_tag_flt 000024 external static fixed bin(35,0) dcl 318 ref 93 gcos_et_$illegal_procedure 000026 external static fixed bin(35,0) dcl 319 ref 165 gcos_et_$lockup_flt 000030 external static fixed bin(35,0) dcl 320 ref 269 gcos_et_$mem_addr_flt 000032 external static fixed bin(35,0) dcl 321 ref 172 gcos_et_$mem_parity_flt 000034 external static fixed bin(35,0) dcl 322 ref 253 gcos_et_$non_gcos_fault 000036 external static fixed bin(35,0) dcl 323 ref 80 gcos_et_$op_not_complete_flt 000040 external static fixed bin(35,0) dcl 324 ref 261 gcos_et_$out_of_time 000042 external static fixed bin(35,0) dcl 325 ref 292 gcos_et_$over_or_under_flow 000044 external static fixed bin(35,0) dcl 326 ref 199 gcos_ext_stat_$gcos_slave_area_seg 000050 external static pointer dcl 4-27 ref 43 101 221 225 229 276 279 gcos_ext_stat_$mc 000054 external static structure level 1 unaligned dcl 4-112 set ref 231* 294* gcos_ext_stat_$save_data 000052 external static structure level 1 dcl 4-106 gcos_fault_names 000025 constant structure level 1 unaligned dcl 2-28 gcos_mme_bort_$system 000046 constant entry external dcl 327 ref 233 296 hbound builtin function dcl 328 ref 40 hv 000107 automatic fixed bin(35,0) dcl 329 set ref 35* 40 i 000110 automatic fixed bin(24,0) dcl 330 set ref 40* 41 41 41 47 232* ic based fixed bin(18,0) level 2 packed unsigned unaligned dcl 362 set ref 45* ic_i 000111 automatic bit(36) dcl 331 set ref 45 46 225 276 279 if 5(29) based bit(1) level 3 packed unaligned dcl 10-56 set ref 108* 246* ilc 4 based bit(18) level 2 packed unaligned dcl 10-56 set ref 45 106 106 244 ind 0(18) based bit(18) level 2 packed unaligned dcl 362 set ref 46* infoptr 14 000114 automatic pointer level 2 dcl 366 set ref 232* instruction_counter based fixed bin(18,0) unsigned unaligned dcl 332 set ref 45 106* 106 244* ir 4(18) based structure level 2 packed unaligned dcl 10-56 ref 46 l 0(27) based bit(9) level 2 packed unaligned dcl 356 ref 35 length builtin function dcl 333 ref 35 35 literal_sw 1(05) 000146 automatic bit(1) initial level 3 packed unaligned dcl 3-7 set ref 3-7* ln 72 000025 constant fixed bin(24,0) initial array level 3 dcl 2-28 ref 41 loc_ptr 20 000114 automatic pointer level 2 dcl 366 set ref 101 101 101 mc based structure level 1 dcl 10-12 set ref 231 294 mcp 000164 automatic pointer dcl 10-10 set ref 31* 32 111 111 231 288* 289 294 mcp_val parameter pointer dcl 287 ref 283 288 mcptr 000114 automatic pointer level 2 dcl 366 set ref 31 232* mod builtin function dcl 334 ref 40 null builtin function dcl 335 ref 30 30 232 232 3-7 3-7 3-7 p 000112 automatic pointer dcl 336 set ref 221* 223 223 232* padding 1(07) 000146 automatic bit(29) initial level 3 packed unaligned dcl 3-7 set ref 3-7* ppr based structure level 2 packed unaligned dcl 10-56 prefix_vector based bit(36) array dcl 337 set ref 225* 229 276* 279* prompt_after_explanation 1(06) 000146 automatic bit(1) initial level 3 packed unaligned dcl 3-7 set ref 3-7* psr 0(03) based bit(15) level 3 packed unaligned dcl 10-56 ref 43 query_code 3 000146 automatic fixed bin(35,0) initial level 2 dcl 3-7 set ref 3-7* query_info 000146 automatic structure level 1 dcl 3-7 set ref 69 69 question_iocbp 4 000146 automatic pointer initial level 2 dcl 3-7 set ref 3-7* r3b 0(15) based fixed bin(3,0) level 3 packed unsigned unaligned dcl 342 ref 101 regs 20 based structure level 2 packed unaligned dcl 10-12 repeat_time 10 000146 automatic fixed bin(71,0) initial level 2 dcl 3-7 set ref 3-7* rfi 5(27) based bit(1) level 3 packed unaligned dcl 10-56 set ref 107* 245* save_data 000052 external static structure level 2 dcl 4-106 save_data_entry based structure level 1 dcl 7-5 save_machine_conditions based structure level 1 packed unaligned dcl 5-6 scu based structure level 1 dcl 10-56 in procedure "gcos_fault_processor_" scu 30 based bit(36) array level 2 in structure "mc" packed unaligned dcl 10-12 in procedure "gcos_fault_processor_" set ref 32 289 scup 000166 automatic pointer dcl 10-54 set ref 32* 43 45 46 106 106 107 108 244 245 246 289* status_code 2 000146 automatic fixed bin(35,0) initial level 2 dcl 3-7 set ref 3-7* string builtin function dcl 338 ref 41 46 substr builtin function dcl 339 ref 41 43 suppress_name_sw 1(01) 000146 automatic bit(1) initial level 3 packed unaligned dcl 3-7 set ref 3-7* suppress_spacing 1(04) 000146 automatic bit(1) initial level 3 packed unaligned dcl 3-7 set ref 3-7* switches 1 000146 automatic structure level 2 dcl 3-7 unspec builtin function dcl 340 set ref 35* 111 231* 231 294* 294 version 2 000114 automatic fixed bin(17,0) level 2 dcl 366 set ref 29* wcptr 16 000114 automatic pointer level 2 dcl 366 set ref 232* yes_or_no_sw 1 000146 automatic bit(1) initial level 3 packed unaligned dcl 3-7 set ref 68* 3-7* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. abx internal static fixed bin(17,0) initial dcl 10-42 apx internal static fixed bin(17,0) initial dcl 10-42 bbx internal static fixed bin(17,0) initial dcl 10-42 bpx internal static fixed bin(17,0) initial dcl 10-42 fibptr automatic pointer dcl 9-84 fixed builtin function dcl 315 gcos_ext_stat_$abort_reason external static varying char(128) dcl 4-13 gcos_ext_stat_$abort_return external static label variable dcl 4-14 gcos_ext_stat_$activity_card_num external static picture(4) unaligned dcl 4-15 gcos_ext_stat_$activity_name external static char(8) unaligned dcl 4-16 gcos_ext_stat_$activity_start_time external static fixed bin(71,0) dcl 4-17 gcos_ext_stat_$card_num external static picture(4) unaligned dcl 4-18 gcos_ext_stat_$courtesy_call_control external static structure level 1 dcl 4-92 gcos_ext_stat_$dbs external static bit(1) array unaligned dcl 4-19 gcos_ext_stat_$default_nondollar external static char(2) unaligned dcl 4-20 gcos_ext_stat_$dir_rings external static fixed bin(3,0) array dcl 4-21 gcos_ext_stat_$dpno external static varying char(100) dcl 4-22 gcos_ext_stat_$dpo external static varying char(100) dcl 4-23 gcos_ext_stat_$endfc external static char(2) unaligned dcl 4-24 gcos_ext_stat_$er external static pointer dcl 4-25 gcos_ext_stat_$etc_filecode external static char(2) unaligned dcl 4-26 gcos_ext_stat_$fct external static structure level 1 dcl 4-102 gcos_ext_stat_$gcos_gtss external static structure level 1 unaligned dcl 4-115 gcos_ext_stat_$gf external static fixed bin(24,0) dcl 4-28 gcos_ext_stat_$incode external static fixed bin(24,0) dcl 4-29 gcos_ext_stat_$increment_hold external static fixed bin(24,0) dcl 4-30 gcos_ext_stat_$initial_cpu_time external static fixed bin(71,0) dcl 4-31 gcos_ext_stat_$input_segment_path external static varying char(168) dcl 4-32 gcos_ext_stat_$jcl_warnings external static fixed bin(24,0) dcl 4-33 gcos_ext_stat_$job_cpu_time external static fixed bin(71,0) dcl 4-34 gcos_ext_stat_$job_id external static varying char(18) dcl 4-35 gcos_ext_stat_$job_real_time external static fixed bin(71,0) dcl 4-36 gcos_ext_stat_$last_mme external static fixed bin(24,0) dcl 4-37 gcos_ext_stat_$ldrss external static fixed bin(24,0) dcl 4-38 gcos_ext_stat_$max_activities external static fixed bin(24,0) dcl 4-39 gcos_ext_stat_$max_mem external static fixed bin(19,0) dcl 4-40 gcos_ext_stat_$mme_rtrn external static label variable dcl 4-41 gcos_ext_stat_$nondollar external static char(2) unaligned dcl 4-42 gcos_ext_stat_$nongcos external static char(2) unaligned dcl 4-43 gcos_ext_stat_$normal_return external static label variable dcl 4-44 gcos_ext_stat_$patchfile_ptr external static pointer dcl 4-45 gcos_ext_stat_$pathname_prefix external static varying char(168) dcl 4-46 gcos_ext_stat_$pch external static pointer dcl 4-47 gcos_ext_stat_$pdir external static varying char(168) dcl 4-48 gcos_ext_stat_$prt external static pointer dcl 4-49 gcos_ext_stat_$rs external static pointer dcl 4-50 gcos_ext_stat_$save_dir external static varying char(168) dcl 4-52 gcos_ext_stat_$saveseg_ptr external static pointer dcl 4-51 gcos_ext_stat_$seg_rings external static fixed bin(3,0) array dcl 4-53 gcos_ext_stat_$sig_ptr external static pointer dcl 4-54 gcos_ext_stat_$skip_umc external static bit(1) unaligned dcl 4-55 gcos_ext_stat_$snumb external static bit(30) dcl 4-56 gcos_ext_stat_$sought_label external static char(8) unaligned dcl 4-57 gcos_ext_stat_$statistics external static fixed bin(24,0) array dcl 4-58 gcos_ext_stat_$stop_code external static fixed bin(24,0) dcl 4-59 gcos_ext_stat_$storage_limit external static fixed bin(19,0) dcl 4-60 gcos_ext_stat_$sysout_limit external static fixed bin(35,0) dcl 4-61 gcos_ext_stat_$sysout_lines external static fixed bin(35,0) dcl 4-62 gcos_ext_stat_$system_free_pointer external static pointer dcl 4-63 gcos_ext_stat_$tape_buffer_size external static fixed bin(35,0) dcl 4-64 gcos_ext_stat_$temp_dir external static varying char(168) dcl 4-65 gcos_ext_stat_$temp_seg_ptr external static pointer dcl 4-66 gcos_ext_stat_$termination_code external static bit(18) unaligned dcl 4-67 gcos_ext_stat_$time_limit external static fixed bin(71,0) dcl 4-68 gcos_ext_stat_$userid external static char(12) unaligned dcl 4-69 gcos_ext_stat_$validation_level external static fixed bin(3,0) dcl 4-70 lbx internal static fixed bin(17,0) initial dcl 10-42 linked_file internal static bit(1) initial unaligned dcl 9-87 lpx internal static fixed bin(17,0) initial dcl 10-42 query_info_version_3 internal static fixed bin(17,0) initial dcl 3-33 query_info_version_4 internal static fixed bin(17,0) initial dcl 3-34 query_info_version_5 internal static fixed bin(17,0) initial dcl 3-35 query_info_version_6 internal static fixed bin(17,0) initial dcl 3-36 random_file internal static bit(1) initial unaligned dcl 9-88 read_file internal static bit(1) initial unaligned dcl 9-89 sbx internal static fixed bin(17,0) initial dcl 10-42 scux based structure level 1 dcl 10-206 spx internal static fixed bin(17,0) initial dcl 10-42 write_file internal static bit(1) initial unaligned dcl 9-90 NAMES DECLARED BY EXPLICIT CONTEXT. abrt 001045 constant label dcl 231 ref 281 abrt1 001053 constant label dcl 232 ref 81 abrt2 001233 constant label dcl 296 common_flow 001016 constant label dcl 199 ref 185 191 fault 000000 constant label array(21) dcl 60 ref 47 gcos_fault_processor_ 000456 constant entry external dcl 6 general_abort 000640 constant label dcl 60 ref 43 49 ic_and_i 001171 constant label dcl 276 ref 257 265 illegal_proc 000773 constant label dcl 144 ref 137 pass_it_on 000627 constant label dcl 51 ref 77 140 return_to_gcos_code 000636 constant label dcl 54 ref 135 234 247 297 timer_runout 001202 constant entry external dcl 283 user_fault 001036 constant label dcl 225 set ref 89 97 167 179 user_faultx 001031 constant label dcl 221 ref 203 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1532 1610 1253 1542 Length 2230 1253 56 403 257 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gcos_fault_processor_ 219 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gcos_fault_processor_ 000100 abort_code gcos_fault_processor_ 000102 answer gcos_fault_processor_ 000104 code gcos_fault_processor_ 000105 fault_flags gcos_fault_processor_ 000106 fault_vector gcos_fault_processor_ 000107 hv gcos_fault_processor_ 000110 i gcos_fault_processor_ 000111 ic_i gcos_fault_processor_ 000112 p gcos_fault_processor_ 000114 cond_info gcos_fault_processor_ 000146 query_info gcos_fault_processor_ 000164 mcp gcos_fault_processor_ 000166 scup gcos_fault_processor_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return mod_fx1 shorten_stack ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. command_query_ condition_interpreter_ continue_to_signal_ find_condition_info_ gcos_mme_bort_$system THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. gcos_et_$derail_flt gcos_et_$divide_check_flt gcos_et_$fault_tag_flt gcos_et_$illegal_procedure gcos_et_$lockup_flt gcos_et_$mem_addr_flt gcos_et_$mem_parity_flt gcos_et_$non_gcos_fault gcos_et_$op_not_complete_flt gcos_et_$out_of_time gcos_et_$over_or_under_flow gcos_ext_stat_$gcos_slave_area_seg gcos_ext_stat_$mc gcos_ext_stat_$save_data LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 3 7 000423 6 000455 29 000464 30 000466 31 000505 32 000507 35 000512 40 000551 41 000560 43 000572 45 000610 46 000616 47 000620 49 000622 51 000627 54 000636 55 000637 60 000640 68 000644 69 000646 77 000705 80 000712 81 000715 85 000716 88 000720 89 000722 93 000723 96 000725 97 000727 100 000730 101 000731 106 000747 107 000754 108 000756 111 000760 135 000766 137 000767 140 000770 144 000773 165 000774 166 000777 167 001000 172 001001 178 001003 179 001005 183 001006 185 001010 189 001011 191 001013 195 001014 199 001016 202 001020 203 001022 207 001023 210 001025 211 001027 221 001031 223 001034 225 001036 229 001042 231 001045 232 001053 233 001126 234 001140 244 001141 245 001146 246 001150 247 001152 253 001153 256 001155 257 001157 261 001160 264 001162 265 001164 269 001165 272 001167 276 001171 279 001173 281 001175 283 001176 288 001216 289 001222 292 001224 294 001227 296 001233 297 001243 ----------------------------------------------------------- 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