COMPILATION LISTING OF SEGMENT analyze_detail_stat_ Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 08/18/86 1310.3 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 11 12 analyze_detail_stat_: 13 proc (dev_name, iom_stats, det_stats, auto_analp, code); 14 15 /* Completed for installation May, 1981 by Rich Coppola */ 16 /* Modified Apr 12, 1982 by Rich Coppola to add support for STC tape drives and 17* PR54 */ 18 /* Modified September 1982 by C. Hornig for new PRPH TAP config card. */ 19 /* Modified Oct 1982 by Rich Coppola to fix bugs in initialization of variables 20* used by the rs and rsnnl entries and in their return. Also added code to 21* decode byte 10 and 11 of disk detail status now that all of it is available. 22* The calling sequence to the rs and rsnnl had to be changed by the way. 23* 24* Modified Oct 1983 by Paul Farley to change tape analysis to conform to 25* io_log_status_info.cds. Also changed tracks_in_error to be sorted by track. 26* Modified Feb. 1985 by Paul Farley to check for null ptrs from find_config_card_. 27* Modified June 1985 by Paul Farley to handle FIPS tape & disk, and 28* to handle PR54 if it is configed as a PR71. Also removed support of DSU190(A&B). 29**/ 30 /****^ HISTORY COMMENTS: 31* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 32* audit(86-02-18,Coppola), install(86-03-21,MR12.0-1033): 33* Support FIPS. 34* 2) change(86-08-05,Farley), approve(86-08-05,MCR6979), 35* audit(86-08-08,Fawcett), install(86-08-18,MR12.0-1125): 36* Post bug fix to look for an IPC card instead of a FIPS card. 37* END HISTORY COMMENTS */ 38 39 dcl iom_stats bit (36) aligned, 40 dev_name char (*), /* the name of the device */ 41 det_stats bit (*) unal, 42 auto_analp ptr, 43 message char (256) var, /* return STR for rs and rsnnl entries */ 44 is_interesting bit (1), 45 code fixed bin (35); 46 47 /* External */ 48 49 dcl config_deck$ ext; 50 dcl hcs_$fs_get_mode entry (ptr, fixed bin (5), fixed bin (35)); 51 dcl hcs_$make_seg entry (char (*), char (*), char (*), fixed bin (5), ptr, fixed bin (35)); 52 dcl error_table_$no_r_permission fixed bin (35) ext static; 53 dcl error_table_$resource_unknown fixed bin (35) ext static; 54 dcl error_table_$resource_type_inappropriate fixed bin (35) ext static; 55 dcl error_table_$unimplemented_version fixed bin (35) ext static; 56 dcl error_table_$bad_arg fixed bin (35) ext static; 57 dcl error_table_$request_not_recognized fixed bin (35) ext static; 58 dcl cv_dec_check_ entry (char (*), fixed bin (35)) returns (fixed bin (35)); 59 dcl ioa_$rsnnl entry () options (variable); 60 dcl config_$find entry (char (4) aligned, ptr); 61 dcl config_$find_periph entry (char (4) aligned, ptr); 62 63 dcl 1 status aligned based (statp), 64 2 stat_pad bit (2) unal, 65 2 stat_maj bit (4) unal, 66 2 stat_min bit (6) unal, 67 2 stat_pad1 bit (4) unal, 68 2 stat_init bit (1) unal, 69 2 stat_pad2 bit (1) unal, 70 2 stat_chan bit (3) unal, 71 2 stat_cent bit (3) unal, 72 2 stat_pad3 bit (48) unal; 73 74 75 dcl statp ptr; 76 77 dcl (i, j) fixed bin; 78 dcl name char (7) var; 79 dcl a_is_interesting bit (1) init ("0"b); /* det. stat has data of import */ 80 dcl fips_controller bit (1); 81 dcl (number_analyzed, anlzd) fixed bin; /* number of bits analyzed */ 82 dcl mode fixed bin (5); 83 dcl ret_str char (20) var init (""); /* return string for ioa_$rsnnl */ 84 85 dcl 1 a_tape_analysis, 86 2 mth_model char (8), 87 2 num_tracks fixed bin, 88 2 trks_in_err char (18), 89 2 dbie_array (9) fixed bin, 90 2 modes, 91 3 density fixed bin, 92 3 operation char (6) var, /* write/read/rew */ 93 2 anal (50) char (65) var; 94 95 dcl 1 a_disk_analysis, 96 2 dsk_model char (7) var, 97 2 CA fixed bin, 98 2 PORT fixed bin, 99 2 analyses (50) char (50) var; 100 101 dcl 1 a_prt_analysis, 102 2 prt_model char (7) var, 103 2 density char (6), /* 6/8 lpi */ 104 2 analyses (50) char (40) var; 105 106 dcl 1 a_rdr_pun_analysis, 107 2 rdr_pun_model char (6), 108 2 analyses (60) char (40) var; 109 110 dcl (rs_sw, rsnnl_sw) bit (1) init ("0"b); 111 dcl xcode fixed bin (35); 112 dcl NEW_LINE char (1) internal static options (constant) init (" 113 "); 114 dcl (addr, bin, bool, char, fixed, hbound, ltrim, rtrim, substr, null, bit) builtin; 115 116 117 auto_analp = null (); 118 go to START; /* bypass rs and rsnnl entries */ 119 120 121 analyze_detail_stat_$rsnnl: 122 entry (dev_name, iom_stats, det_stats, message, is_interesting, code); 123 124 rsnnl_sw = "1"b; 125 go to START; 126 127 analyze_detail_stat_$rs: 128 entry (dev_name, iom_stats, det_stats, message, is_interesting, code); 129 130 rs_sw = "1"b; 131 132 START: 133 number_analyzed, code = 0; /* initialize */ 134 a_is_interesting = "0"b; 135 136 if (rs_sw | rsnnl_sw) then do; 137 is_interesting = "0"b; 138 message = ""; 139 end; 140 141 142 if iom_stats = "0"b then do; /* validate iom status */ 143 code = error_table_$bad_arg; 144 return; 145 end; 146 147 if det_stats = "0"b then do; /* and detail status */ 148 code = error_table_$bad_arg; 149 return; 150 end; 151 152 153 /* check callers access to the config_deck, without it can do nothing for him */ 154 155 156 call hcs_$fs_get_mode (addr (config_deck$), mode, code); 157 if code ^= 0 then return; 158 if (bit (mode) & bit (R_ACCESS_BIN)) ^= bit (R_ACCESS_BIN) then do; 159 code = error_table_$no_r_permission; 160 return; 161 end; 162 163 164 name = dev_name; 165 166 if substr (name, 1, 3) = "tap" then call anal_tape_; 167 168 else if substr (name, 1, 3) = "dsk" then call anal_disk_; 169 170 else if substr (name, 1, 3) = "prt" then call anal_prt_; 171 172 else if substr (name, 1, 3) = "rdr" then call anal_rdr_pun; 173 174 else if substr (name, 1, 3) = "pun" then call anal_rdr_pun; 175 176 177 178 else do; 179 code = error_table_$resource_type_inappropriate; 180 return; 181 end; 182 183 return; 184 185 186 anal_disk_: 187 proc; 188 189 dcl dev_no fixed bin (35); 190 dcl dev_model fixed bin; 191 dcl dev_no_index fixed bin; 192 dcl temp_dsk_det_stats bit (47) init ("0"b); 193 194 dcl trans_table_dsu451 (29) char (45) varying int static options (constant) 195 init ("DLI Fault. ", "Device Protected. ", "Device Fault. ", "In Diagnostic Mode. ", "Command Parity Error. ", 196 "Invalid Command. ", "Invalid Command Sequence. ", "State Violation. ", "Protect Violation. ", 197 "Transfer Timing Error. ", "Data Parity Error. ", "Loss of Write Current. ", 198 "Write Current & NO Write Command. ", "Loss of AC Write Current. ", "No or Multiple Head Select. ", 199 "Spindle Speed Loss. ", "DC Power Loss. ", "Seek Incomplete. ", "Positioner Overtravel. ", "RPS Error. ", 200 "1st Seek Cycle Incomplete. ", "Loss of Cooling. ", "Heads Retracted. ", "Positioner Offset. ", 201 "Read Clock Offset. ", "Write AND Read Set. ", "Fine Servo. ", "Forward FF Set. ", "Reverse FF Set. "); 202 203 204 dcl trans_table_dsu5xx (25) char (45) varying int static options (constant) 205 init ("DLI Fault. ", "Device Protected. ", "Device Fault. ", "In Diagnostic Mode. ", "Command Parity Error. ", 206 "Invalid Command. ", "Invalid Command Sequence. ", "State Violation. ", "Protect Violation. ", 207 "Transfer Timing Error. ", "Data Parity Error. ", "Loss of Write Current. ", 208 "Write Current & NO Write Command. ", "Loss of AC Write Current. ", "No or Multiple Head Select. ", 209 "Spindle Speed Loss. ", "Seek Incomplete. ", "RPS Error. ", "Servo off Track. ", "Access Check. ", 210 "Pack Unsafe. ", "Index Check. ", "Read AND Write Check. ", "Inhibit HDA Cycle. ", "HDA Sequence Check. "); 211 212 213 a_disk_analysis.dsk_model = ""; 214 a_disk_analysis.CA = fixed (substr (det_stats, 80, 1), 1); 215 a_disk_analysis.PORT = fixed (substr (det_stats, 84, 5), 5); 216 a_disk_analysis.analyses (*) = ""; 217 anlzd = 0; 218 statp = addr (iom_stats); 219 temp_dsk_det_stats = "0"b; 220 dev_no = cv_dec_check_ (substr (name, 6, 2), code); 221 /* will need drive no. later */ 222 223 224 /* Check iom status to see if detail status is worth analyzing */ 225 226 if stat_maj = "1101"b | /* MPC cmd rej */ 227 stat_maj = "0101"b | /* dev cmd rej */ 228 stat_maj = "0100"b | /* EOFs */ 229 stat_maj = "0001"b | /* dev busy */ 230 stat_maj = "0000"b then do; /* Ready */ 231 232 /* detail status is either not available or not worthy of analysis, return */ 233 234 235 anlzd = 0; 236 code = error_table_$request_not_recognized; 237 return; 238 end; 239 240 241 /* Now determine the model of the drive */ 242 243 244 dev_no_index, dev_model = 0; 245 prph_dsk_cardp = null (); 246 call config_$find_periph (substr (name, 1, 4), prph_dsk_cardp); 247 if prph_dsk_cardp = null () then do; 248 code = error_table_$resource_unknown; 249 return; 250 end; 251 252 call find_controller (prph_dsk_card.iom, prph_dsk_card.chan); 253 if mpc_cardp = null () & ipc_cardp = null () then return; 254 /* not MPC/FIPS driven */ 255 do j = 1 to 5 while (dev_model = 0); 256 dev_no_index = dev_no_index + prph_dsk_card.ndrives (j); 257 if dev_no < dev_no_index | (^fips_controller & dev_no = dev_no_index) 258 then dev_model = prph_dsk_card.model (j); 259 end; 260 261 if fips_controller then do; /* handle fips differently */ 262 call anal_fips_disk_; 263 goto fill_dsk_struct; 264 end; 265 266 if dev_model = 450 | dev_model = 451 267 then /* go do it */ 268 go to type_451; 269 270 else if dev_model = 500 | dev_model = 501 then go to type_5xx; 271 272 273 /* If none of the above, then device type is unknown, therefore... */ 274 275 276 code = error_table_$resource_type_inappropriate; 277 return; 278 279 type_451: 280 a_disk_analysis.dsk_model = "DSU451"; 281 282 283 /* set up to look at interesting bits only */ 284 285 substr (temp_dsk_det_stats, 1, 5) = substr (det_stats, 5, 5); 286 substr (temp_dsk_det_stats, 6, 10) = substr (det_stats, 11, 10); 287 substr (temp_dsk_det_stats, 16, 1) = substr (det_stats, 22, 1); 288 substr (temp_dsk_det_stats, 17, 3) = substr (det_stats, 24, 3); 289 substr (temp_dsk_det_stats, 20, 1) = substr (det_stats, 29, 1); 290 substr (temp_dsk_det_stats, 21, 1) = substr (det_stats, 36, 1); 291 substr (temp_dsk_det_stats, 22, 1) = substr (det_stats, 38, 1); 292 substr (temp_dsk_det_stats, 23, 4) = substr (det_stats, 45, 4); 293 substr (temp_dsk_det_stats, 27, 1) = substr (det_stats, 33, 1); 294 substr (temp_dsk_det_stats, 28, 2) = substr (det_stats, 39, 2); 295 296 297 do i = 1 to 29; 298 if substr (temp_dsk_det_stats, i, 1) then do; 299 anlzd = anlzd + 1; 300 a_disk_analysis.analyses (anlzd) = trans_table_dsu451 (i); 301 a_is_interesting = "1"b; 302 end; 303 end; 304 305 306 if (stat_maj ^= "0010"b) 307 then if (substr (det_stats, 4, 1) & substr (det_stats, 33, 1)) then do; 308 anlzd = anlzd + 1; 309 a_disk_analysis.analyses (anlzd) = "Positioner busy AND data Xfer."; 310 311 anlzd = anlzd + 1; 312 a_disk_analysis.analyses (anlzd) = "(POSSIBLE actuator problem)."; 313 a_is_interesting = "1"b; 314 end; 315 316 317 go to fill_dsk_struct; 318 319 type_5xx: 320 a_disk_analysis.dsk_model = "MSU" || ltrim (char (dev_model)); 321 322 substr (temp_dsk_det_stats, 1, 5) = substr (det_stats, 5, 5); 323 substr (temp_dsk_det_stats, 6, 10) = substr (det_stats, 11, 10); 324 substr (temp_dsk_det_stats, 16, 1) = substr (det_stats, 22, 1); 325 substr (temp_dsk_det_stats, 17, 1) = substr (det_stats, 25, 1); 326 substr (temp_dsk_det_stats, 18, 1) = substr (det_stats, 29, 1); 327 substr (temp_dsk_det_stats, 19, 4) = substr (det_stats, 33, 4); 328 substr (temp_dsk_det_stats, 23, 1) = substr (det_stats, 40, 1); 329 substr (temp_dsk_det_stats, 24, 2) = substr (det_stats, 55, 2); 330 331 332 do i = 1 to 25; 333 if substr (temp_dsk_det_stats, i, 1) then do; 334 anlzd = anlzd + 1; 335 a_disk_analysis.analyses (anlzd) = trans_table_dsu5xx (i); 336 a_is_interesting = "1"b; 337 end; 338 end; 339 340 go to fill_dsk_struct; 341 342 343 fill_dsk_struct: 344 number_analyzed = anlzd; 345 346 347 if (^rs_sw & ^rsnnl_sw) then do; 348 call hcs_$make_seg ("", "analyze_detail_stat_.temp", "", 10, disk_analp, xcode); 349 auto_analp = disk_analp; 350 disk_analysis.disk_analysis_version = analyze_det_stat_info_version_2; 351 disk_analysis.num_analyzed = anlzd; 352 disk_analysis.dsk_model = a_disk_analysis.dsk_model; 353 disk_analysis.is_interesting_disk = a_is_interesting; 354 disk_analysis.fips_controller = fips_controller; 355 disk_analysis.pad = ""b; 356 disk_analysis.CA = a_disk_analysis.CA; 357 disk_analysis.PORT = a_disk_analysis.PORT; 358 359 360 if number_analyzed > 0 361 then do j = 1 to number_analyzed; 362 disk_analysis.analyses (j) = a_disk_analysis.analyses (j); 363 end; 364 365 else disk_analysis.analyses (*) = ""; 366 367 return; 368 end; 369 370 if (rsnnl_sw | rs_sw) then do; 371 if fips_controller 372 then ret_str = ""; 373 else call ioa_$rsnnl ("[CA ^1o, Port ^2d]", ret_str, 15, a_disk_analysis.CA, a_disk_analysis.PORT); 374 do j = 1 to number_analyzed; 375 message = message || a_disk_analysis.analyses (j); 376 end; 377 message = message || ret_str; 378 if message ^= "" then do; 379 if rs_sw then message = message || NEW_LINE; 380 is_interesting = a_is_interesting; 381 end; 382 else is_interesting = "0"b; 383 end; 384 return; 385 386 anal_fips_disk_: 387 proc; 388 389 dcl (format_type, message_no) fixed bin; 390 dcl symptom_code bit (16); 391 dcl trans_tbl (16) char (50) varying int static options (constant) init 392 /* misc compacted bits */ 393 ("Command Reject ", "Intervention Required ", "Bus Out Parity Error ", "Equipment Check ", "Data Check ", 394 "Overrun ", "Permanent Error ", "Invalid Track Format ", "End of Cylinder ", "No Record Found ", 395 "File Protected ", "Write Inhibited ", "Correctable Error ", "Intent Violation ", "Imprecise Ending ", 396 "Write Op "); 397 398 dcl format_0_type1_tbl (0:15) char (50) varying int static options (constant) init 399 /* program or system checks (byte1,bit3=0) */ 400 ("", "Invalid Command ", "Invalid Command Seq. ", "CCW Count Error ", "Invalid Data Arg ", 401 "Diagnostic Command Error ", "Retry status w/o chaining ", "Command Mis-match after Retry ", "", "", "", 402 "Def/Alt Track pointing at self ", "Path Select/Device installation Check ", "", "", ""); 403 404 dcl format_0_type2_tbl (0:15) char (50) varying int static options (constant) init 405 /* program or system checks (byte1,bit3=1) */ 406 ("", "Sense Data Logged for Device ", "Sense Data Logged for Controller ", (13) ("")); 407 408 dcl format_1_tbl (0:15) char (50) varying int static options (constant) init 409 /* device equipment check */ 410 ("", "Device status 1 was not as expected ", "", "Index was missing ", "Unresettable Interrupt ", 411 "Device did not respond to Selection ", "Drive check 2 or Set Sector Incomplete ", "Head Address Miscompare ", 412 "Invalid Device Status 1 ", "Device Not Ready ", "Track Physical Address Miscompare ", "", 413 "Drive Motor Switch was OFF ", "Seek Incomplete ", "Cylinder Adress Miscompare ", "Unresettable Offset Active ") 414 ; 415 416 dcl format_2_tbl (0:15) char (50) varying int static options (constant) init 417 /* storage director equipment check */ 418 ((9) (""), "Selective Reset while Drive Selected ", "Failed to Latch the First Sync In Line ", "", 419 "No Channel Response on a Selective Reset Request ", "", "", "Microcode Detected Error "); 420 421 dcl format_3_tbl (0:15) char (50) varying int static options (constant) init 422 /* storage director control check */ 423 ((8) (""), "Clock Stopped Check 1 ", "Channel Check 1 or Storage Director Timeout ", 424 "Trace Table saved in this Storage Director ", "", "", "", "", ""); 425 426 dcl format_4_tbl (0:15) char (50) varying int static options (constant) init 427 /* data check w/o displacement info */ 428 ("Uncorrectable Error in Home Addr ", "Uncorrectable Error in Count Area ", "Uncorrectable Error in Key Area ", 429 "Uncorrectable Error in Data Area ", "Unsuccessful Sync on Home Addr ", "Unsuccessful Sync on Count Area ", 430 "Unsuccessful Sync on Key Area ", "Unsuccessful Sync on Data Area ", 431 "Uncorrectable Error in Home Addr(offset active) ", "Uncorrectable Error in Count Area(offset active) ", 432 "Uncorrectable Error in Key Area(offset active) ", "Uncorrectable Error in Data Area(offset active) ", 433 "Unsuccessful Sync on Home Addr(offset active) ", "Unsuccessful Sync on Count Area(offset active) ", 434 "Unsuccessful Sync on Key Area(offset active) ", "Unsuccessful Sync on Data Area(offset active) "); 435 436 dcl format_5_tbl (0:15) char (50) varying int static options (constant) init 437 /* data check with displacement info */ 438 ("Correctable Error in Home Address ", "Correctable Error in Count Area ", "Correctable Error in Key Area ", 439 "Correctable Error in Data Area ", (4) (""), "Correctable Error in Home Address(offset active) ", 440 "Correctable Error in Count Area(offset active) ", "Correctable Error in Key Area(offset active) ", 441 "Correctable Error in Data Area(offset active) ", (4) ("")); 442 443 dcl format_6_tbl (0:15) char (50) varying int static options (constant) init 444 /* usage statistics/overrun errors */ 445 ((8) (""), "Channel A overrun ", "Channel B overrun ", "Channel C overrun ", "Channel D overrun ", 446 "Channel E overrun ", "Channel F overrun ", "Channel G overrun ", "Channel H overrun "); 447 448 dcl format_7_tbl (0:15) char (50) varying int static options (constant) init 449 /* SD-to-controller path or controller check */ 450 ("RCC Initiated by a CCA ", "Unsuccessful RCC1 sequence ", "Unsuccessful RCC1 and RCC2 sequence ", 451 "Invalid DDC Tag Sequence ", "Extra RCC Required ", "Invalid DDC selection Response or Timeout ", 452 "Missing End Op Transfer was Complete ", "Missing End Op Transfer was Incomplete ", 453 "Invalid Tag In on Immediate Command ", "Invalid Tag In for Extended Command Sequence ", "Deselection Timeout ", 454 "No Controller Response after Poll Interrupt ", "Controller Not Available ", 455 "Controller Not Available on Disconnected Chain ", "", ""); 456 457 dcl format_8_tbl (0:15) char (50) varying int static options (constant) init 458 /* Controller Equipment check */ 459 ("", "ECC Hardware Failure ", "", "Unexpected End Op Response code Received ", 460 "End Op Active with Transfer Count > 0 ", "End Op Active with Transfer Count = 0 ", 461 "Controller Stopped The Path Selection Cleanup ", "DPS array conot be Initialized ", 462 "Short Busy timeout during Device Selection ", "Controller failed to set/reset long-term Busy ", (6) ("")); 463 464 if dev_model = 3380 465 then a_disk_analysis.dsk_model = "IBM3380"; 466 else a_disk_analysis.dsk_model = "IBM3390"; 467 a_disk_analysis.CA, a_disk_analysis.PORT = 0; 468 substr (temp_dsk_det_stats, 1, 6) = substr (det_stats, 1, 6); 469 substr (temp_dsk_det_stats, 7, 3) = substr (det_stats, 9, 3); 470 substr (temp_dsk_det_stats, 10, 3) = substr (det_stats, 13, 3); 471 substr (temp_dsk_det_stats, 13, 1) = substr (det_stats, 18, 1); 472 substr (temp_dsk_det_stats, 14, 3) = substr (det_stats, 21, 3); 473 474 do i = 1 to 16; 475 if substr (temp_dsk_det_stats, i, 1) then do; 476 anlzd = anlzd + 1; 477 a_disk_analysis.analyses (anlzd) = trans_tbl (i); 478 a_is_interesting = "1"b; 479 end; 480 end; 481 482 anlzd = anlzd + 1; 483 a_disk_analysis.analyses (anlzd) = ""; 484 a_is_interesting = "1"b; 485 format_type = bin (substr (det_stats, 57, 4), 4); 486 message_no = bin (substr (det_stats, 61, 4), 4); 487 488 if format_type = 0 then do; 489 if ^substr (det_stats, 12, 1) 490 then a_disk_analysis.analyses (anlzd) = format_0_type1_tbl (message_no); 491 else a_disk_analysis.analyses (anlzd) = format_0_type2_tbl (message_no); 492 end; 493 else if format_type = 1 then a_disk_analysis.analyses (anlzd) = format_1_tbl (message_no); 494 else if format_type = 2 then a_disk_analysis.analyses (anlzd) = format_2_tbl (message_no); 495 else if format_type = 3 then a_disk_analysis.analyses (anlzd) = format_3_tbl (message_no); 496 else if format_type = 4 then a_disk_analysis.analyses (anlzd) = format_4_tbl (message_no); 497 else if format_type = 5 then a_disk_analysis.analyses (anlzd) = format_5_tbl (message_no); 498 else if format_type = 6 then a_disk_analysis.analyses (anlzd) = format_6_tbl (message_no); 499 else if format_type = 7 then a_disk_analysis.analyses (anlzd) = format_7_tbl (message_no); 500 else if format_type = 8 then a_disk_analysis.analyses (anlzd) = format_8_tbl (message_no); 501 502 if a_disk_analysis.analyses (anlzd) = "" then do; 503 /* no message */ 504 anlzd = anlzd - 1; 505 if anlzd = 0 then a_is_interesting = "0"b; 506 /* nothing interesting */ 507 end; 508 509 if a_is_interesting & (format_type ^= 5 & format_type ^= 6) then do; 510 symptom_code = substr (det_stats, 177, 16); 511 /* bytes 22 & 23 */ 512 if symptom_code ^= ""b then do; 513 anlzd = anlzd + 1; 514 call ioa_$rsnnl ("Symptom_code=^4.4b ", a_disk_analysis.analyses (anlzd), 18, symptom_code); 515 end; 516 end; 517 return; 518 end anal_fips_disk_; 519 end anal_disk_; 520 521 522 523 524 anal_prt_: 525 proc; 526 527 dcl ptr_model fixed bin; 528 dcl DENSITY (2) char (6) int static options (constant) init ("6 lpi.", "8 lpi."); 529 dcl temp_prt_det_stat bit (44) init ("0"b); 530 dcl (msg_indx, bysc) fixed bin; 531 dcl ec_sc_bit bit (10) init ("0"b); 532 dcl pr71_index fixed bin; 533 534 535 dcl trans_table_prt (40) char (36) var int static options (constant) init 536 /* for pr71 */ 537 ("Print Check. ", "Belt Sync Error. ", "Scanning register Error. ", "LNS Delay Error. ", 538 "DAI Data Parity Error. ", "Bad PLB Address Increment. ", "PLB Parity Error. ", 539 "Non-printable Character in PLB. ", "Fire Hammer Register Error. ", "Invalid PLB Address. ", 540 "Image Belt Buffer Parity Error. ", "Image Belt Address Error. ", "Invalid Image Belt Buffer Address. ", 541 "Space Line Error. ", "Sync Error. ", "Tractors Not Engaged. ", "Belt gate Open. ", "Broken Finger on Belt. ", 542 "Vertical Belt Position. ", "Ribbon Error. ", "Skew Error. ", "Stacker Error. ", "Phase Failure Alert. ", 543 "DC Alert. ", "Thermal Alert. ", "Skip Supply Alert. ", "Print Supply Alert. ", "Paper Failure. ", 544 "Paper Runaway. ", "Emergency Off. ", "Skip Overcurrent. ", "Finger Sensor Failure. ", "Finger Sensor Dirty. ", 545 "Airflow Check. ", "AC Overcurrent. ", "Multiple Echo Check Error. ", "Echo Check Error. ", 546 "Short Circuit Error No. 2. ", "Short Circuit Error No. 1. ", "Short Circuit Error No. 1 and 2. "); 547 548 549 dcl col_trans_136 (1:9, 0:15) char (35) var int static options (constant) init 550 /* for pr71 */ 551 ("Bad Decode. ", "Col. 04, Hammer Driver Card 04. ", "Bad Decode. ", "Bad Decode. ", 552 "Col. 05, Hammer Driver Card 04. ", "Bad Decode. ", "Bad Decode. ", "Col. 06, Hammer Driver Card 04. ", 553 "Col. 01, Hammer Driver Card 04. ", "Bad Decode. ", "Col. 07, Hammer Driver Card 04. ", 554 "Col. 02, Hammer Driver Card 04. ", "Bad Decode. ", "Col. 08, Hammer Driver Card 04. ", 555 "Col. 03, Hammer Driver Card 04. ", "Bad Decode. ", "Col. 09, Hammer Driver Card 05. ", 556 "Col. 20, Hammer Driver Card 06. ", "Col. 15, Hammer Driver Card 05. ", "Col. 10, Hammer Driver Card 05. ", 557 "Col. 21, Hammer Driver Card 06. ", "Col. 16, Hammer Driver Card 05. ", "Col. 11, Hammer Driver Card 05. ", 558 "Col. 22, Hammer Driver Card 06. ", "Col. 17, Hammer Driver Card 06. ", "Col. 12, Hammer Driver Card 05. ", 559 "Col. 23, Hammer Driver Card 06. ", "Col. 18, Hammer Driver Card 06. ", "Col. 13, Hammer Driver Card 05. ", 560 "Col. 24, Hammer Driver Card 06. ", "Col. 19, Hammer Driver Card 06. ", "Col. 14, Hammer Driver Card 05. ", 561 "Col. 25, Hammer Driver Card 07. ", "Col. 36, Hammer Driver Card 08. ", "Col. 31, Hammer Driver Card 07. ", 562 "Col. 26, Hammer Driver Card 07. ", "Col. 37, Hammer Driver Card 08. ", "Col. 32, Hammer Driver Card 07. ", 563 "Col. 27, Hammer Driver Card 07. ", "Col. 38, Hammer Driver Card 08. ", "Col. 33, Hammer Driver Card 08. ", 564 "Col. 28, Hammer Driver Card 07. ", "Col. 39, Hammer Driver Card 08. ", "Col. 34, Hammer Driver Card 08. ", 565 "Col. 29, Hammer Driver Card 07. ", "Col. 40, Hammer Driver Card 08. ", "Col. 35, Hammer Driver Card 08. ", 566 "Col. 30, Hammer Driver Card 07. ", "Col. 41, Hammer Driver Card 09. ", "Col. 52, Hammer Driver Card 10. ", 567 "Col. 47, Hammer Driver Card 09. ", "Col. 42, Hammer Driver Card 09. ", "Col. 53, Hammer Driver Card 10. ", 568 "Col. 48, Hammer Driver Card 09. ", "Col. 43, Hammer Driver Card 09. ", "Col. 54, Hammer Driver Card 10. ", 569 "Col. 49, Hammer Driver Card 10. ", "Col. 44, Hammer Driver Card 09. ", "Col. 55, Hammer Driver Card 10. ", 570 "Col. 50, Hammer Driver Card 10. ", "Col. 45, Hammer Driver Card 09. ", "Col. 56, Hammer Driver Card 10. ", 571 "Col. 51, Hammer Driver Card 10. ", "Col. 46, Hammer Driver Card 09. ", "Col. 57, Hammer Driver Card 11. ", 572 "Col. 68, Hammer Driver Card 12. ", "Col. 63, Hammer Driver Card 11. ", "Col. 58, Hammer Driver Card 11. ", 573 "Col. 69, Hammer Driver Card 12. ", "Col. 64, Hammer Driver Card 11. ", "Col. 59, Hammer Driver Card 11. ", 574 "Col. 70, Hammer Driver Card 12. ", "Col. 65, Hammer Driver Card 12. ", "Col. 60, Hammer Driver Card 11. ", 575 "Col. 71, Hammer Driver Card 12. ", "Col. 66, Hammer Driver Card 12. ", "Col. 61, Hammer Driver Card 11. ", 576 "Col. 72, Hammer Driver Card 12. ", "Col. 67, Hammer Driver Card 12. ", "Col. 62, Hammer Driver Card 11. ", 577 "Col. 73, Hammer Driver Card 13. ", "Col. 84, Hammer Driver Card 14. ", "Col. 79, Hammer Driver Card 13. ", 578 "Col. 74, Hammer Driver Card 13. ", "Col. 85, Hammer Driver Card 14. ", "Col. 80, Hammer Driver Card 13. ", 579 "Col. 75, Hammer Driver Card 13. ", "Col. 86, Hammer Driver Card 14. ", "Col. 81, Hammer Driver Card 14. ", 580 "Col. 76, Hammer Driver Card 13. ", "Col. 87, Hammer Driver Card 14. ", "Col. 82, Hammer Driver Card 14. ", 581 "Col. 77, Hammer Driver Card 13. ", "Col. 88, Hammer Driver Card 14. ", "Col. 83, Hammer Driver Card 14. ", 582 "Col. 78, Hammer Driver Card 13. ", "Col. 89, Hammer Driver Card 15. ", "Col. 100, Hammer Driver Card 16. ", 583 "Col. 95, Hammer Driver Card 15. ", "Col. 90, Hammer Driver Card 15. ", "Col. 101, Hammer Driver Card 16. ", 584 "Col. 96, Hammer Driver Card 15. ", "Col. 91, Hammer Driver Card 15. ", "Col. 102, Hammer Driver Card 16. ", 585 "Col. 97, Hammer Driver Card 16. ", "Col. 92, Hammer Driver Card 15. ", "Col. 103, Hammer Driver Card 16. ", 586 "Col. 98, Hammer Driver Card 16. ", "Col. 93, Hammer Driver Card 15. ", "Col. 104, Hammer Driver Card 16. ", 587 "Col. 99, Hammer Driver Card 16. ", "Col. 94, Hammer Driver Card 15. ", "Col. 105, Hammer Driver Card 17. ", 588 "Col. 116, Hammer Driver Card 18. ", "Col. 111, Hammer Driver Card 17. ", "Col. 106, Hammer Driver Card 17. ", 589 "Col. 117, Hammer Driver Card 18. ", "Col. 112, Hammer Driver Card 17. ", "Col. 107, Hammer Driver Card 17. ", 590 "Col. 118, Hammer Driver Card 18. ", "Col. 113, Hammer Driver Card 18. ", "Col. 108, Hammer Driver Card 17. ", 591 "Col. 119, Hammer Driver Card 18. ", "Col. 114, Hammer Driver Card 18. ", "Col. 109, Hammer Driver Card 17. ", 592 "Col. 120, Hammer Driver Card 18. ", "Col. 115, Hammer Driver Card 18. ", "Col. 110, Hammer Driver Card 17. ", 593 "Col. 121, Hammer Driver Card 19. ", "Col. 132, Hammer Driver Card 20. ", "Col. 127, Hammer Driver Card 19. ", 594 "Col. 122, Hammer Driver Card 19. ", "Col. 133, Hammer Driver Card 20. ", "Col. 128, Hammer Driver Card 19. ", 595 "Col. 123, Hammer Driver Card 19. ", "Col. 134, Hammer Driver Card 20. ", "Col. 129, Hammer Driver Card 20. ", 596 "Col. 124, Hammer Driver Card 19. ", "Col. 135, Hammer Driver Card 20. ", "Col. 130, Hammer Driver Card 20. ", 597 "Col. 125, Hammer Driver Card 19. ", "Col. 136, Hammer Driver Card 20. ", "Col. 131, Hammer Driver Card 20. ", 598 "Col. 126, Hammer Driver Card 19. "); 599 600 dcl col_trans_160 (0:9, 0:15) char (35) var int static options (constant) init 601 /* for pr71 */ 602 ("Col. 1, Hammer Driver Card 1. ", "Col. 12, Hammer Driver Card 2. ", "Col. 7, Hammer Driver Card 1. ", 603 "Col. 2, Hammer Driver Card 1. ", "Col. 13, Hammer Driver Card 2. ", "Col. 8, Hammer Driver Card 1. ", 604 "Col. 3, Hammer Driver Card 1. ", "Col. 14, Hammer Driver Card 2. ", "Col. 9, Hammer Driver Card 2. ", 605 "Col. 4, Hammer Driver Card 1. ", "Col. 15, Hammer Driver Card 2. ", "Col. 10, Hammer Driver Card 2. ", 606 "Col. 5, Hammer Driver Card 1. ", "Col. 16, Hammer Driver Card 2. ", "Col. 11, Hammer Driver Card 2. ", 607 "Col. 6, Hammer Driver Card 1. ", "Col. 17, Hammer Driver Card 3. ", "Col. 28, Hammer Driver Card 4. ", 608 "Col. 23, Hammer Driver Card 3. ", "Col. 18, Hammer Driver Card 3. ", "Col. 29, Hammer Driver Card 4. ", 609 "Col. 24, Hammer Driver Card 3. ", "Col. 19, Hammer Driver Card 3. ", "Col. 30, Hammer Driver Card 4. ", 610 "Col. 25, Hammer Driver Card 4. ", "Col. 20, Hammer Driver Card 3. ", "Col. 31, Hammer Driver Card 4. ", 611 "Col. 26, Hammer Driver Card 4. ", "Col. 21, Hammer Driver Card 3. ", "Col. 32, Hammer Driver Card 4. ", 612 "Col. 27, Hammer Driver Card 4. ", "Col. 22, Hammer Driver Card 3. ", "Col. 33, Hammer Driver Card 5. ", 613 "Col. 44, Hammer Driver Card 6. ", "Col. 39, Hammer Driver Card 5. ", "Col. 34, Hammer Driver Card 5. ", 614 "Col. 45, Hammer Driver Card 6. ", "Col. 40, Hammer Driver Card 5. ", "Col. 35, Hammer Driver Card 5. ", 615 "Col. 46, Hammer Driver Card 6. ", "Col. 41, Hammer Driver Card 6. ", "Col. 36, Hammer Driver Card 5. ", 616 "Col. 47, Hammer Driver Card 6. ", "Col. 42, Hammer Driver Card 6. ", "Col. 37, Hammer Driver Card 5. ", 617 "Col. 48, Hammer Driver Card 6. ", "Col. 43, Hammer Driver Card 6. ", "Col. 38, Hammer Driver Card 5. ", 618 "Col. 49, Hammer Driver Card 7. ", "Col. 60, Hammer Driver Card 8. ", "Col. 55, Hammer Driver Card 7. ", 619 "Col. 50, Hammer Driver Card 7. ", "Col. 61, Hammer Driver Card 8. ", "Col. 56, Hammer Driver Card 7. ", 620 "Col. 51, Hammer Driver Card 7. ", "Col. 62, Hammer Driver Card 8. ", "Col. 57, Hammer Driver Card 8. ", 621 "Col. 52, Hammer Driver Card 7. ", "Col. 63, Hammer Driver Card 8. ", "Col. 58, Hammer Driver Card 8. ", 622 "Col. 53, Hammer Driver Card 7. ", "Col. 64, Hammer Driver Card 8. ", "Col. 59, Hammer Driver Card 8. ", 623 "Col. 54, Hammer Driver Card 7. ", "Col. 65, Hammer Driver Card 9. ", "Col. 76, Hammer Driver Card 10. ", 624 "Col. 71, Hammer Driver Card 9. ", "Col. 66, Hammer Driver Card 9. ", "Col. 77, Hammer Driver Card 10. ", 625 "Col. 72, Hammer Driver Card 9. ", "Col. 67, Hammer Driver Card 9. ", "Col. 78, Hammer Driver Card 10. ", 626 "Col. 73, Hammer Driver Card 10. ", "Col. 68, Hammer Driver Card 9. ", "Col. 79, Hammer Driver Card 10. ", 627 "Col. 74, Hammer Driver Card 10. ", "Col. 69, Hammer Driver Card 9. ", "Col. 80, Hammer Driver Card 10. ", 628 "Col. 75, Hammer Driver Card 10. ", "Col. 70, Hammer Driver Card 9. ", "Col. 81, Hammer Driver Card 11. ", 629 "Col. 92, Hammer Driver Card 12. ", "Col. 87, Hammer Driver Card 11. ", "Col. 82, Hammer Driver Card 11. ", 630 "Col. 93, Hammer Driver Card 12. ", "Col. 88, Hammer Driver Card 11. ", "Col. 83, Hammer Driver Card 11. ", 631 "Col. 94, Hammer Driver Card 12. ", "Col. 89, Hammer Driver Card 12. ", "Col. 84, Hammer Driver Card 11. ", 632 "Col. 95, Hammer Driver Card 12. ", "Col. 90, Hammer Driver Card 12. ", "Col. 85, Hammer Driver Card 11. ", 633 "Col. 96, Hammer Driver Card 12. ", "Col. 91, Hammer Driver Card 12. ", "Col. 86, Hammer Driver Card 11. ", 634 "Col. 97, Hammer Driver Card 13. ", "Col. 108, Hammer Driver Card 14. ", "Col. 103, Hammer Driver Card 13. ", 635 "Col. 98, Hammer Driver Card 13. ", "Col. 109, Hammer Driver Card 14. ", "Col. 104, Hammer Driver Card 13. ", 636 "Col. 99, Hammer Driver Card 13. ", "Col. 110, Hammer Driver Card 14. ", "Col. 105, Hammer Driver Card 14. ", 637 "Col. 100, Hammer Driver Card 13. ", "Col. 111, Hammer Driver Card 14. ", "Col. 106, Hammer Driver Card 14. ", 638 "Col. 101, Hammer Driver Card 13. ", "Col. 112, Hammer Driver Card 14. ", "Col. 107, Hammer Driver Card 14. ", 639 "Col. 102, Hammer Driver Card 13. ", "Col. 113, Hammer Driver Card 15. ", "Col. 124, Hammer Driver Card 16. ", 640 "Col. 119, Hammer Driver Card 15. ", "Col. 114, Hammer Driver Card 15. ", "Col. 125, Hammer Driver Card 16. ", 641 "Col. 120, Hammer Driver Card 15. ", "Col. 115, Hammer Driver Card 15. ", "Col. 126, Hammer Driver Card 16. ", 642 "Col. 121, Hammer Driver Card 16. ", "Col. 116, Hammer Driver Card 15. ", "Col. 127, Hammer Driver Card 16. ", 643 "Col. 122, Hammer Driver Card 16. ", "Col. 117, Hammer Driver Card 15. ", "Col. 128, Hammer Driver Card 16. ", 644 "Col. 123, Hammer Driver Card 16. ", "Col. 118, Hammer Driver Card 15. ", "Col. 129, Hammer Driver Card 17. ", 645 "Col. 140, Hammer Driver Card 18. ", "Col. 135, Hammer Driver Card 17. ", "Col. 130, Hammer Driver Card 17. ", 646 "Col. 141, Hammer Driver Card 18. ", "Col. 136, Hammer Driver Card 17. ", "Col. 131, Hammer Driver Card 17. ", 647 "Col. 142, Hammer Driver Card 18. ", "Col. 137, Hammer Driver Card 18. ", "Col. 132, Hammer Driver Card 17. ", 648 "Col. 143, Hammer Driver Card 18. ", "Col. 138, Hammer Driver Card 18. ", "Col. 133, Hammer Driver Card 17. ", 649 "Col. 144, Hammer Driver Card 18. ", "Col. 139, Hammer Driver Card 18. ", "Col. 134, Hammer Driver Card 17. ", 650 "Col. 145, Hammer Driver Card 19. ", "Col. 156, Hammer Driver Card 20. ", "Col. 151, Hammer Driver Card 19. ", 651 "Col. 146, Hammer Driver Card 19. ", "Col. 157, Hammer Driver Card 20. ", "Col. 152, Hammer Driver Card 19. ", 652 "Col. 147, Hammer Driver Card 19. ", "Col. 158, Hammer Driver Card 20. ", "Col. 153, Hammer Driver Card 20. ", 653 "Col. 148, Hammer Driver Card 19. ", "Col. 159, Hammer Driver Card 20. ", "Col. 154, Hammer Driver Card 20. ", 654 "Col. 149, Hammer Driver Card 19. ", "Col. 160, Hammer Driver Card 20. ", "Col. 155, Hammer Driver Card 20. ", 655 "Col. 150, Hammer Driver Card 19. "); 656 657 dcl pr54_byte12 (7:99) char (60) var int static options (constant) 658 init ("Manual Halt, PRT Off-Line. ", "EOP or EOS out of Sequence. ", "", 659 /* ignore paper low */ 660 "Invalid VFC Load. ", "PRT Off-Line. ", "Paper Motion Alert, No VFC Channel Match. ", 661 "BIB From System Does Not Contain 240 Chars. ", "Invalid Line Density In VFC Load. ", 662 "Form Length Greater Than 144 line in VFC Load. ", "Invalid Line No. In VFC Load. ", 663 "Invalid Auto Slew Data in VFC Load. ", "Invalid TOP/BOP in VFC Load. ", "Error on Status Read. ", 664 "Unexpected PDSI Reg. in Response Frame. ", "TTE, No Response From PRT. ", "Horizontal Tab Greater Than 127. ", 665 "Left Tab Operation Attempted. ", "Vertical Tab Greater Than 127. ", "Horizontal Skip Greater Than 127. ", 666 "Skip Past End of Line. ", "ASCII CTL CHAR in Non-Edit Mode. ", "Invalid Code (1C). ", 667 /* 1c thru 2d undefined */ 668 "Invalid Code (1D). ", /* Define them as invalid */ 669 "Invalid Code (1E). ", /* as it will indicate a HW problem */ 670 "Invalid Code (1F). ", /* if they are entered */ 671 "Invalid Code (20). ", "Invalid Code (21). ", "Invalid Code (22). ", "Invalid Code (23). ", 672 "Invalid Code (24). ", "Invalid Code (25). ", "Invalid Code (26). ", "Invalid Code (27). ", 673 "Invalid Code (28). ", "Invalid Code (29). ", "Invalid Code (2A). ", "Invalid Code (2B). ", 674 "Invalid Code (2C). ", "Invalid Code (2D). ", "Power OFF, No Response on Link. ", "Link Error, EURC ALERT. ", 675 "Link Error, EURC Attention. ", "ATTN Cond. On Previous Operation. ", "", "Skip Loop CTL Error [FC=01]. ", 676 "Invalid Code (34). ", "Tractors De-clutched [FC=03]. ", "Paper Jam at Tractors [FC=04]. ", "", 677 /* paper low, ignore */ 678 "Yoke Open [FC=06]. ", "Broken Finger [FC=07]. ", "Belt Start Problem [FC=08]. ", 679 "Ribbon Motion Problem [FC=09]. ", "Ribbon Seam Time-out [FC=0A]. ", "Stacker Alert [FC=0B]. ", 680 "Ribbon Cartridge Not Present [FC=0C]. ", "Invalid Code (3F). ", "Line Strobe Problem [FC=0E]. ", 681 "Invalid Code (41). ", "Invalid Code (42). ", "Invalid Code (43). ", "Invalid Code (44). ", 682 "Invalid Code (45). ", "Character Not on Band Image [FC=14]. ", "Invalid Code (47). ", "Invalid Code (48). ", 683 "Invalid Code (49). ", "Invalid Code (4A). ", "Echo Check IMP1 PWA [FC=19]. ", "Echo Check IMP2 PWA [FC=1A]. ", 684 "Over Temperature [FC=1B]. ", "Skip PWA Failure [FC=1C]. ", "+40V failure [FC=1D]. ", "-40V Failure [FC=1E]. ", 685 "Belt Command Failure [FC=1F]. ", "-9V Failure [FC=20]. ", "Dialogue Failure MPI to INT PWA [FC=21]. ", 686 "Print/Slew Time-out. ", "Invalid Code (55). ", "Invalid Code (56). ", "Invalid Code (57). ", 687 "Invalid Code (58). ", "Invalid Code (59). ", "Invalid Code (5A). ", "PLB Load Overflow [FC=91]. ", 688 "VFU Load Overflow [FC=92]. ", "BIB Load Overflow [FC=93]. ", "Invalid BIB Data Load [FC=94]. ", 689 "Invalid VFU Data Load [FC=95]. ", "Invalid VFU Channel No. [FC=96]. ", 690 "No Stop on Selected VFU Channel [FC=97]. ", "Invalid Command Sequence [FC=98]. ", 691 "Illegal Command Code [FC=99]. "); 692 693 694 a_prt_analysis.prt_model = ""; 695 a_prt_analysis.density = ""; 696 a_prt_analysis.analyses (*) = ""; 697 anlzd = 0; 698 statp = addr (iom_stats); 699 700 701 702 /* Check iom status to see if detail status is worth analyzing */ 703 704 705 if stat_maj = "0010"b then ; /* dev attn */ 706 707 708 else if stat_maj = "0011"b then ; /* any dev data alert */ 709 else if (stat_maj = "0101"b) & /* cmd rej */ 710 (fixed (stat_min, 6) = 20 | /* slew error */ 711 fixed (stat_min, 6) = 40) 712 then ; /* TOP echo */ 713 714 else if stat_maj = "1010"b then ; /* mpc attn */ 715 716 717 else if stat_maj = "1011"b then ; /* mpc data alert */ 718 719 720 else do; 721 722 /* detail status is either not available or not worthy of analysis, return */ 723 724 725 anlzd = 0; 726 code = error_table_$request_not_recognized; 727 return; 728 end; 729 730 /* Scan the config deck to determine the type of prt we are working on */ 731 732 prph_cardp = null (); 733 call config_$find_periph (substr (name, 1, 4), prph_cardp); 734 if prph_cardp = null () then do; 735 code = error_table_$resource_unknown; 736 return; 737 end; 738 ptr_model = prph_card.model; 739 740 if ptr_model = 1200 | ptr_model = 1600 741 then /* PR71 */ 742 go to do_PR71; 743 744 if ptr_model = 901 | ptr_model = 1000 | ptr_model = 1201 745 then /* PR54 */ 746 go to do_PR54; 747 748 go to unimplemented; /* don't know this type */ 749 750 751 /* Routine for PR71 */ 752 753 do_PR71: 754 if substr (det_stats, 48, 1) then goto do_PR54; /* only PR54s have this bit on! */ 755 pr71_index = 1; 756 a_prt_analysis.prt_model = "PRU" || ltrim (char (ptr_model)); 757 758 if fixed (substr (det_stats, 23, 2), 2) ^= 0 /* 1=6lpi, 2=8lpi */ 759 then if fixed (substr (det_stats, 23, 2), 2) < 3 760 then a_prt_analysis.density = DENSITY (fixed (substr (det_stats, 23, 2), 2)); 761 762 if (stat_maj = "0010"b) & (stat_min = "0"b) then do; 763 /* if power fault */ 764 pr71_index = 23; 765 go to check_pr71_fault; 766 end; 767 768 if substr (det_stats, 1, 1) ^= "1"b then do; 769 anlzd = anlzd + 1; 770 a_prt_analysis.analyses (anlzd) = "Belt Image Not Loaded. "; 771 a_is_interesting = "1"b; 772 end; 773 774 if substr (det_stats, 25, 1) ^= "1"b then do; 775 anlzd = anlzd + 1; 776 a_prt_analysis.analyses (anlzd) = "VFC Image Not Loaded. "; 777 a_is_interesting = "1"b; 778 end; 779 780 if substr (det_stats, 26, 1) ^= "1"b then do; 781 anlzd = anlzd + 1; 782 a_prt_analysis.analyses (anlzd) = "VFC Out of Sync. "; 783 a_is_interesting = "1"b; 784 end; 785 786 check_pr71_fault: 787 substr (temp_prt_det_stat, 1, 1) = substr (det_stats, 35, 1); 788 substr (temp_prt_det_stat, 2, 4) = substr (det_stats, 43, 4); 789 substr (temp_prt_det_stat, 6, 11) = substr (det_stats, 49, 11); 790 substr (temp_prt_det_stat, 17, 6) = substr (det_stats, 65, 6); 791 substr (temp_prt_det_stat, 23, 8) = substr (det_stats, 73, 8); 792 substr (temp_prt_det_stat, 31, 5) = substr (det_stats, 83, 5); 793 substr (temp_prt_det_stat, 36, 2) = substr (det_stats, 41, 2); 794 substr (temp_prt_det_stat, 38, 2) = substr (det_stats, 81, 2); 795 796 do i = pr71_index to 35; 797 if substr (temp_prt_det_stat, i, 1) = "1"b then do; 798 anlzd = anlzd + 1; 799 a_prt_analysis.analyses (anlzd) = trans_table_prt (i); 800 a_is_interesting = "1"b; 801 end; 802 end; 803 804 805 /* Now check for echo check and short circuit errors */ 806 807 if fixed (substr (det_stats, 41, 2), 2) > 0 then do; 808 /* echo ck err */ 809 msg_indx = fixed (substr (det_stats, 41, 2), 2); 810 811 if msg_indx > 2 then msg_indx = 1; 812 813 anlzd = anlzd + 1; 814 a_prt_analysis.analyses (anlzd) = trans_table_prt (35 + msg_indx); 815 bysc = fixed (substr (det_stats, 101, 4), 4);/* use for col decode */ 816 ec_sc_bit = substr (det_stats, 89, 10); 817 go to anal_ec_sc; 818 end; 819 820 else if fixed (substr (det_stats, 81, 2), 2) > 0 then do; 821 /* short ckt err */ 822 823 msg_indx = fixed (substr (det_stats, 81, 2), 2); 824 if msg_indx > 2 then msg_indx = 3; 825 826 anlzd = anlzd + 1; 827 a_prt_analysis.analyses (anlzd) = trans_table_prt (37 + msg_indx); 828 bysc = fixed (substr (det_stats, 117, 4), 4);/* use for col decode */ 829 ec_sc_bit = substr (det_stats, 105, 10); 830 go to anal_ec_sc; 831 end; 832 833 else go to fill_prt_struct; 834 anal_ec_sc: 835 if substr (det_stats, 17, 3) = "001"b 836 then /* 136 col prt */ 837 do i = 1 to 10; 838 if substr (ec_sc_bit, i, 1) = "1"b then do; 839 anlzd = anlzd + 1; 840 a_prt_analysis.analyses (anlzd) = col_trans_136 (i - 1, bysc); 841 a_is_interesting = "1"b; 842 end; 843 end; 844 845 else if substr (det_stats, 17, 3) = "010"b 846 then /* 160 col prt */ 847 do i = 1 to 10; 848 if substr (ec_sc_bit, i, 1) = "1"b then do; 849 anlzd = anlzd + 1; 850 a_prt_analysis.analyses (anlzd) = col_trans_160 (i - 1, bysc); 851 a_is_interesting = "1"b; 852 end; 853 end; 854 855 856 else do; 857 anlzd = anlzd + 1; 858 a_prt_analysis.analyses (anlzd) = "Cannot Determine Number of Columns."; 859 end; 860 861 go to fill_prt_struct; 862 863 864 865 /* Routine for PR54 */ 866 867 do_PR54: 868 a_prt_analysis.prt_model = "PRU" || ltrim (char (ptr_model)); 869 if substr (det_stats, 121, 1) = "0"b /* 0=6lpi, 1=8lpi */ 870 then a_prt_analysis.density = DENSITY (1); 871 else a_prt_analysis.density = DENSITY (2); 872 873 if substr (det_stats, 1, 1) = "0"b then do; 874 anlzd = anlzd + 1; 875 a_prt_analysis.analyses (anlzd) = "Belt Image Not Loaded. "; 876 a_is_interesting = "1"b; 877 end; 878 879 if substr (det_stats, 25, 1) = "0"b then do; 880 anlzd = anlzd + 1; 881 a_prt_analysis.analyses (anlzd) = "VFC Image Not Loaded. "; 882 a_is_interesting = "1"b; 883 end; 884 885 if substr (det_stats, 26, 1) = "0"b then do; 886 anlzd = anlzd + 1; 887 a_prt_analysis.analyses (anlzd) = "VFC Out of Sync. "; 888 a_is_interesting = "1"b; 889 end; 890 891 892 if substr (det_stats, 97, 8) ^= "0"b then do; /* bypass paper out */ 893 i = bin (substr (det_stats, 97, 8), 8); 894 if i < 7 then goto fill_prt_struct; /* and CMD REJs */ 895 anlzd = anlzd + 1; 896 897 if i ^> 99 898 then /* Max table entry of 63hex */ 899 a_prt_analysis.analyses (anlzd) = pr54_byte12 (i); 900 901 else a_prt_analysis.analyses (anlzd) = "Illegal Code in Byte 12. "; 902 a_is_interesting = "1"b; 903 end; 904 905 if substr (det_stats, 105, 8) = "ff"b4 906 then /* Not an error */ 907 go to fill_prt_struct; /* no more error bytes */ 908 909 910 fill_prt_struct: 911 number_analyzed = anlzd; 912 913 if (^rs_sw & ^rsnnl_sw) then do; 914 call hcs_$make_seg ("", "analyze_detail_stat_.temp", "", 10, prt_analp, xcode); 915 auto_analp = prt_analp; 916 prt_analysis.prt_analysis_version = analyze_det_stat_info_version_1; 917 prt_analysis.num_analyzed = anlzd; 918 prt_analysis.prt_model = a_prt_analysis.prt_model; 919 prt_analysis.density = a_prt_analysis.density; 920 prt_analysis.is_interesting_prt = a_is_interesting; 921 922 923 if number_analyzed > 0 924 then do j = 1 to number_analyzed; 925 prt_analysis.analyses (j) = a_prt_analysis.analyses (j); 926 end; 927 928 else prt_analysis.analyses (*) = ""; 929 return; 930 end; 931 932 if (rsnnl_sw | rs_sw) then do; 933 do j = 1 to number_analyzed; 934 message = message || a_prt_analysis.analyses (j); 935 end; 936 if message ^= "" then do; 937 if rs_sw then message = message || NEW_LINE; 938 is_interesting = a_is_interesting; 939 end; 940 else is_interesting = "0"b; 941 end; 942 943 return; 944 945 946 unimplemented: 947 code = error_table_$unimplemented_version; 948 return; 949 end anal_prt_; 950 951 952 anal_rdr_pun: 953 proc; 954 955 dcl rdr_pun char (3) init (""); 956 dcl rdr_pun_model fixed bin; 957 dcl rdr_pun_trans_table (50) char (34) var int static options (constant) 958 init ("Punch Station Present. ", "Punch Buffer Allow. ", "Jam Between Read & Punch Station. ", 959 "Jam on Incremental Failure. ", "Jam on Extra Strobe. ", "Blank Data Found. ", "Punch Error, COL 1 Knives. ", 960 "Punch Error, COL 2 Knives. ", "Punch Error, COL 41 Knives. ", "Punch error, COL 42 Knives. ", 961 "Disconnect to DOE. ", "Inhibit EV3'S. ", "Set APM1 to DOE. ", "Set APM2 to DOE. ", "Set APM3 to DOE. ", 962 "Set APM4 to DOE. ", "Set APM5 to DOE. ", "Lower Light to DOE. ", "Read Compare Error. ", 963 "All Light/dark Check. ", "Strobe Count Error. ", "Transfer Error. ", "Illegal Punch. ", "Blank Card. ", 964 "Address Incrementing Command. ", "EV1 Present. ", "Hopper Empty. ", "Stacker Full. ", "Anti-Fountain Off. ", 965 "Throat Error. ", "JPK/JRK Type Jam. ", "Jam in Kick Station. ", "Chad Box Full. ", "Interlock Open. ", 966 "Jam in Wait Station. ", "Jam in Read Station. ", "EV2 Present. ", "End of Process. ", "Device Ready. ", 967 "Data Parity Error. ", "Read Lamp Voltage Marginal. ", "+5 volts Low. ", "Punch Lamp Marginal. ", 968 "Index Time Marginal. ", "Check Byte Count. ", "Residual Byte Count. ", "Buffer Check Error. ", "Illegal EV1. ", 969 "NO End of Process. ", "Device Timer Runout. "); 970 971 dcl board_code (2:7) char (9) int static options (constant) 972 init ("RCL PWB. ", "RCL PWB. ", "RCL PWB. ", "PPK PWB. ", "PPK PWB. ", "RSL PWB. "); 973 974 dcl temp_rdr_pun_dtstat bit (72); 975 976 977 a_rdr_pun_analysis.rdr_pun_model = ""; 978 a_rdr_pun_analysis.analyses (*) = ""; 979 anlzd = 0; 980 statp = addr (iom_stats); 981 982 /* Now check iom status to see if its worth it */ 983 984 985 if (stat_maj = "0010"b) & /* attention, but not chad box full */ 986 (fixed (stat_min, 6) ^= 4) 987 then ; 988 989 else if (stat_maj = "0011"b) then ; /* any dev data alert */ 990 991 else if stat_maj = "1011"b then ; /* mpc data alert */ 992 993 else if stat_maj = "1010"b then ; /* mpc attention */ 994 995 else do; 996 997 /* detail status is either not available or not worthy of analysis, return */ 998 999 1000 anlzd = 0; 1001 code = error_table_$request_not_recognized; 1002 return; 1003 end; 1004 1005 /* Scan the config deck to determine the type of rdr/pun we are working on */ 1006 1007 prph_cardp = null (); 1008 call config_$find_periph ((name), prph_cardp); 1009 if prph_cardp = null () then do; 1010 code = error_table_$resource_unknown; 1011 return; 1012 end; 1013 rdr_pun_model = prph_card.model; 1014 if substr (name, 1, 3) = "rdr" 1015 then rdr_pun = "CRZ"; 1016 else rdr_pun = "CPZ"; 1017 1018 if rdr_pun_model ^= 300 1019 then if rdr_pun_model ^= 301 then go to not_yet; 1020 1021 1022 a_rdr_pun_analysis.rdr_pun_model = rdr_pun || ltrim (char (rdr_pun_model)); 1023 substr (temp_rdr_pun_dtstat, 1, 6) = substr (det_stats, 1, 6); 1024 substr (temp_rdr_pun_dtstat, 7, 4) = substr (det_stats, 9, 4); 1025 substr (temp_rdr_pun_dtstat, 11, 24) = substr (det_stats, 17, 24); 1026 substr (temp_rdr_pun_dtstat, 35, 11) = substr (det_stats, 47, 11); 1027 substr (temp_rdr_pun_dtstat, 46, 5) = substr (det_stats, 65, 5); 1028 1029 do i = 1 to hbound (rdr_pun_trans_table, 1); 1030 if substr (temp_rdr_pun_dtstat, i, 1) then do; 1031 anlzd = anlzd + 1; 1032 a_rdr_pun_analysis.analyses (anlzd) = rdr_pun_trans_table (i); 1033 a_is_interesting = "1"b; 1034 end; 1035 end; 1036 1037 if fixed (substr (det_stats, 44, 3), 3) > 1 & fixed (substr (det_stats, 44, 3), 3) <= 7 then do; 1038 anlzd = anlzd + 1; 1039 a_rdr_pun_analysis.analyses (anlzd) = "Board Code = " || board_code (fixed (substr (det_stats, 44, 3), 3)); 1040 a_is_interesting = "1"b; 1041 end; 1042 1043 fill_rdr_pun_struct: 1044 number_analyzed = anlzd; 1045 1046 if (^rsnnl_sw & ^rs_sw) then do; 1047 call hcs_$make_seg ("", "analyze_detail_stat_.temp", "", 10, rdr_pun_analp, xcode); 1048 1049 auto_analp = rdr_pun_analp; 1050 rdr_pun_analysis.rdr_pun_analysis_version = analyze_det_stat_info_version_1; 1051 rdr_pun_analysis.num_analyzed = anlzd; 1052 rdr_pun_analysis.is_interesting_rdr_pun = a_is_interesting; 1053 rdr_pun_analysis.rdr_pun_model = a_rdr_pun_analysis.rdr_pun_model; 1054 1055 if number_analyzed > 0 1056 then do j = 1 to number_analyzed; 1057 rdr_pun_analysis.analyses (j) = a_rdr_pun_analysis.analyses (j); 1058 end; 1059 1060 else rdr_pun_analysis.analyses (*) = ""; 1061 1062 return; 1063 end; 1064 1065 if (rsnnl_sw | rs_sw) then do; 1066 do j = 1 to number_analyzed; 1067 message = message || a_rdr_pun_analysis.analyses (j); 1068 end; 1069 if message ^= "" then do; 1070 if rs_sw then message = message || NEW_LINE; 1071 is_interesting = a_is_interesting; 1072 end; 1073 else is_interesting = "0"b; 1074 end; 1075 1076 1077 return; 1078 1079 1080 1081 not_yet: 1082 code = error_table_$unimplemented_version; 1083 return; 1084 end anal_rdr_pun; 1085 1086 1087 1088 anal_tape_: 1089 proc; 1090 1091 dcl tks fixed bin init (0); 1092 dcl (valid, att_sw, da_alert, cmts, tracks_v) bit (1) init ("0"b); 1093 dcl mpc_model fixed bin init (0); 1094 dcl dev_type fixed bin init (0); 1095 dcl trk9_tbl (9) char (2) internal static options (constant) init ("0-", "1-", "2-", "3-", "4-", "5-", "6-", "7-", "P-"); 1096 1097 dcl trk7_tbl (9) char (2) internal static options (constant) init ("", "", "2-", "3-", "4-", "5-", "6-", "7-", "P-"); 1098 1099 dcl trk9_idx (9) fixed bin int static options (constant) init (5, 7, 9, 13, 1, 17, 3, 15, 11); 1100 1101 dcl trk7_idx (9) fixed bin int static options (constant) init (0, 0, 7, 9, 11, 13, 15, 17, 5); 1102 1103 dcl ext_stats (26) bit (8) unal based (ext_ptr); 1104 dcl ext_ptr ptr; 1105 dcl curr_mode char (1) init (""); 1106 dcl (str1, str2, str3) bit (9); 1107 dcl fdmask9 bit (9) init ("111111111"b); /* mask for frame drop 9trk */ 1108 dcl fdmask7 bit (9) init ("001111111"b); /* mask for frame drop 7trk */ 1109 dcl curr_dens char (2) init (""); 1110 1111 1112 a_tape_analysis.mth_model = ""; 1113 a_tape_analysis.density = 0; 1114 a_tape_analysis.operation = ""; 1115 a_tape_analysis.trks_in_err = "------------------"; 1116 a_tape_analysis.dbie_array (*) = 0; 1117 a_tape_analysis.anal (*) = ""; 1118 a_tape_analysis.num_tracks = 0; 1119 anlzd = 0; 1120 statp = addr (iom_stats); 1121 mpc_model = 0; 1122 1123 /* This routine scans the config deck to see if the tape mpc is a mtc500 1124* If it is then it sets the switch that disables intrepreting the controller 1125* status, as the 500 doesn't have this available.... */ 1126 1127 prph_tap_cardp = null (); 1128 call config_$find_periph (substr (name, 1, 4), prph_tap_cardp); 1129 if prph_tap_cardp = null () then do; /* device nolonger configured */ 1130 code = error_table_$resource_unknown; 1131 return; 1132 end; 1133 call find_controller (prph_tap_card.iom, prph_tap_card.chan); 1134 if mpc_cardp = null () & ipc_cardp = null () then return; 1135 /* not MPC/FIPS driven */ 1136 if fips_controller then do; /* handle fips differently */ 1137 call anal_fips_tape_; 1138 goto fill_struct; 1139 end; 1140 1141 mpc_model = mpc_card.model; 1142 1143 if stat_maj = "0010"b /* don't try to analyze tkie data for this one */ 1144 then if substr (stat_min, 4, 1) = "1"b then do; /* dev in standby */ 1145 STDBY: 1146 anlzd = 0; 1147 code = error_table_$request_not_recognized; 1148 return; 1149 end; 1150 1151 1152 1153 if (stat_maj = "1011"b) & /* MPC data alert */ 1154 (stat_min = "100000"b) /* margin cond */ 1155 then att_sw = "1"b; 1156 1157 else if (stat_maj = "0010"b) & /* DEV Attention */ 1158 (substr (stat_min, 3, 1) = "1"b | /* dev fault */ 1159 substr (stat_min, 2, 1) = "1"b) /* blank tape on write */ 1160 then att_sw = "1"b; 1161 1162 else if (stat_maj = "1010"b) & /* MPC Attention */ 1163 (substr (stat_min, 2, 1) = "1"b) /* dev malfunction */ 1164 then att_sw = "1"b; 1165 1166 else if (stat_maj = "0011"b) & /* dev data alert */ 1167 (substr (stat_min, 5, 2) = "11"b | /* bit detected during erase */ 1168 substr (stat_min, 3, 1) = "1"b | /* lateral parity */ 1169 substr (stat_min, 2, 1) = "1"b) /* longitudinal parity */ 1170 then da_alert = "1"b; 1171 1172 else if (stat_maj = "1011"b) & /* mpc data alert */ 1173 (fixed (stat_min, 6) = 8 | /* id-burst write error */ 1174 fixed (stat_min, 6) = 9 | /* preamble error */ 1175 fixed (stat_min, 6) = 16 | /* multi-track error */ 1176 fixed (stat_min, 6) = 17 | /* skew error */ 1177 fixed (stat_min, 6) = 18 | /* postamble error */ 1178 fixed (stat_min, 6) = 19) /* nrzi CCC error */ 1179 then da_alert = "1"b; 1180 1181 else if (stat_maj = "0100"b) & /* eof */ 1182 (fixed (stat_min, 6) = 63) /* data alert */ 1183 then da_alert = "1"b; 1184 1185 else if (stat_maj = "1010"b) & /* MPC Attention */ 1186 (substr (stat_min, 3, 2) = "11"b) /* TCA malfunction */ 1187 then da_alert = "1"b; /* not really, but will */ 1188 /* allow detail register checking */ 1189 1190 else do; 1191 anlzd = 0; 1192 code = error_table_$request_not_recognized; 1193 return; 1194 end; 1195 1196 1197 dev_type = 0; 1198 1199 if substr (det_stats, 7, 1) = "1"b 1200 then /* dev in standby */ 1201 go to STDBY; /* det stat worthless */ 1202 1203 if substr (det_stats, 17, 3) = "000"b then do; 1204 a_tape_analysis.density = 1600; 1205 curr_dens = "pe"; 1206 end; 1207 1208 else if substr (det_stats, 17, 3) = "001"b then do; 1209 curr_dens = "gc"; 1210 a_tape_analysis.density = 6250; 1211 end; 1212 1213 else do; 1214 curr_dens = "nr"; 1215 a_tape_analysis.density = 800; 1216 end; 1217 1218 1219 if substr (det_stats, 12, 1) = "1"b then do; 1220 curr_mode = ""; 1221 a_tape_analysis.operation = "Rewind"; 1222 end; 1223 1224 1225 else if substr (det_stats, 10, 1) = "1"b then do; 1226 curr_mode = "W"; 1227 a_tape_analysis.operation = "Write"; 1228 end; 1229 1230 1231 else if substr (det_stats, 10, 1) = "0"b then do; 1232 curr_mode = "R"; 1233 a_tape_analysis.operation = "Read"; 1234 end; 1235 1236 1237 if substr (det_stats, 27, 1) = "0"b 1238 then /* dev is a mtu400/500 */ 1239 dev_type = 500; 1240 1241 else if substr (det_stats, 53, 4) = "0100"b 1242 then /* dev is a MTU600 (OKC) type */ 1243 dev_type = 600; 1244 1245 else if substr (det_stats, 53, 4) = "1000"b 1246 then /* dev is a mtu610 (MPI) */ 1247 dev_type = 610; 1248 1249 else if substr (det_stats, 53, 4) = "0110"b 1250 then /* dev is a mtu640 MTUMPT (STC) */ 1251 dev_type = 640; 1252 1253 if dev_type ^= 0 then a_tape_analysis.mth_model = "MTH" || ltrim (rtrim (char (dev_type))); 1254 1255 1256 if substr (det_stats, 26, 1) = "1"b then tks = 1; /* 1 = 9 trk, 0 = 7 trk drive */ 1257 if tks = 1 1258 then a_tape_analysis.num_tracks = 9; 1259 else a_tape_analysis.num_tracks = 7; 1260 1261 if att_sw then go to dev_model (dev_type); 1262 1263 if da_alert then go to data_alert; 1264 1265 if (rs_sw | rsnnl_sw) then do; 1266 message = ""; 1267 is_interesting = "0"b; 1268 end; 1269 1270 return; 1271 1272 dev_model (0): 1273 code = error_table_$resource_type_inappropriate; 1274 a_is_interesting = "0"b; 1275 return; 1276 1277 dev_model (500): 1278 begin; 1279 1280 dcl raw_status bit (208) based (addr (det_stats)); 1281 dcl int_status bit (47); 1282 1283 1284 dcl trans_table_mth500 (47) char (35) varying internal static options (constant) init ("Device Fault: ", 1285 /* byte 0,bit 0 */ 1286 "Command Code Error. ", /* ,bit 1 */ 1287 "Write Echo Error. ", /* ,bit 2 */ 1288 "Multiple BOT Status. ", /* ,bit 3 */ 1289 "Margin Condition: ", /* ,bit 7 */ 1290 "Load air failure. ", /* byte 6,bit 1 */ 1291 "File hub engage failure. ", "Window failed to shut. ", "Vacuum start-up failure. ", "File hub open. ", 1292 "Cannister failed to shut. ", "Semi-Auto thread-wrap failure. ", "Auto thread-wrap failure. ", 1293 "Machine Col. load failure. ", "File Col. load failure. ", "Door Interlock Open. ", 1294 /* byte 7, bit2 */ 1295 "Window Interlock Open. ", /* , bit 3 */ 1296 "Hi Tape-File Col. ", /* , bit 4 */ 1297 "Hi Tape-Mach Col. ", /* , bit 5 */ 1298 "Lo Tape-File Col. ", /* , bit 6 */ 1299 "Lo Tape-Mach Col. ", /* , bit 7 */ 1300 "Vacuum Loss. ", /* byte 8, bit 0 */ 1301 "Col Vacuum-Marginal. ", /* , bit 1 */ 1302 "LTOR Lamp. ", /* , bit 2 */ 1303 "BOT/EOT Lamp. ", /* , bit 3 */ 1304 "Cannister Shut Failure. ", /* , bit 4 */ 1305 "File Hub Release Failure. ", /* , bit 5 */ 1306 "Erase Current Failure. ", /* , bit 6 */ 1307 "Window Safety Bar. ", /* , bit 7 */ 1308 "Over Temp (LOGIC). ", /* byte 9, bit 0 */ 1309 "Over Temp (CAPSTAIN). ", /* , bit 1 */ 1310 "DC Breaker Switched. ", /* , bit 2 */ 1311 "+5V (OV/UV) Failure. ", /* , bit 3 */ 1312 "-24V (OV/UV) Failure. ", /* , bit 4 */ 1313 "+12V (OV/UV) Failure. ", /* , bit 5 */ 1314 "-12V (OV/UV) Failure. ", /* , bit 6 */ 1315 "+24V (OV/UV) Failure. ", /* , bit 7 */ 1316 "Over Speed. ", /* byte 10, bit 0 */ 1317 "Under Speed. ", /* , bit 1 */ 1318 "+5V (Marginal). ", /* , bit 4 */ 1319 "-24V (Marginal). ", /* , bit 5 */ 1320 "+12V (Marginal). ", /* , bit 6 */ 1321 "-12v (Marginal). ", /* , bit 7 */ 1322 "File Reel CONTROL Malfunction. ", /* byte 15, bit 2 */ 1323 "Lo Tape-File. ", /* byte 16, bit 3 (mtc500 only) */ 1324 "Lo Tape-Mach. ", /* , bit 7 "" */ 1325 "Mach Reel CONTROL Malfunction. "); /* byte 18 bit 2 (mtc500 only) */ 1326 1327 anlzd = 0; 1328 substr (int_status, 1, 4) = substr (raw_status, 1, 4); 1329 substr (int_status, 5, 1) = substr (raw_status, 8, 1); 1330 substr (int_status, 6, 10) = substr (raw_status, 49, 10); 1331 substr (int_status, 16, 24) = substr (raw_status, 59, 24); 1332 substr (int_status, 40, 4) = substr (raw_status, 85, 4); 1333 substr (int_status, 44, 1) = substr (raw_status, 123, 1); 1334 substr (int_status, 45, 1) = substr (raw_status, 132, 1); 1335 substr (int_status, 46, 1) = substr (raw_status, 136, 1); 1336 substr (int_status, 47, 1) = substr (raw_status, 147, 1); 1337 1338 do i = 2 to 4; 1339 if substr (int_status, i, 1) = "1"b then do; 1340 anlzd = anlzd + 1; 1341 a_tape_analysis.anal (anlzd) = trans_table_mth500 (i); 1342 a_is_interesting = "1"b; 1343 end; 1344 end; 1345 1346 if substr (int_status, 1, 1) = "1"b then do; /* dev fault */ 1347 anlzd = anlzd + 1; 1348 a_tape_analysis.anal (anlzd) = trans_table_mth500 (1); 1349 1350 do i = 6 to 37; /* cycle thru dev fault bits */ 1351 if substr (int_status, i, 1) = "1"b then do; 1352 anlzd = anlzd + 1; 1353 a_tape_analysis.anal (anlzd) = trans_table_mth500 (i); 1354 a_is_interesting = "1"b; 1355 end; 1356 end; 1357 1358 if substr (int_status, 44, 1) = "1"b then do; 1359 anlzd = anlzd + 1; 1360 a_tape_analysis.anal (anlzd) = trans_table_mth500 (44); 1361 a_is_interesting = "1"b; 1362 end; 1363 1364 1365 if mpc_model = 500 then do; /* these bits only valid for mtc500 mpc */ 1366 if substr (int_status, 45, 1) = "1"b then do; 1367 anlzd = anlzd + 1; 1368 a_tape_analysis.anal (anlzd) = trans_table_mth500 (45); 1369 a_is_interesting = "1"b; 1370 end; 1371 1372 if substr (int_status, 46, 1) = "1"b then do; 1373 anlzd = anlzd + 1; 1374 a_tape_analysis.anal (anlzd) = trans_table_mth500 (46); 1375 a_is_interesting = "1"b; 1376 end; 1377 1378 if substr (int_status, 47, 1) = "1"b then do; 1379 anlzd = anlzd + 1; 1380 a_tape_analysis.anal (anlzd) = trans_table_mth500 (47); 1381 a_is_interesting = "1"b; 1382 end; 1383 end; 1384 1385 end; /* end dev fault checks */ 1386 1387 if substr (int_status, 5, 1) = "1"b then do; /* now check for margin cond */ 1388 anlzd = anlzd + 1; 1389 a_tape_analysis.anal (anlzd) = trans_table_mth500 (5); 1390 1391 do i = 38 to 43; 1392 if substr (int_status, i, 1) = "1"b then do; 1393 anlzd = anlzd + 1; 1394 a_tape_analysis.anal (anlzd) = trans_table_mth500 (i); 1395 a_is_interesting = "1"b; 1396 end; 1397 end; 1398 end; 1399 1400 go to fill_struct; 1401 1402 1403 end; /* end begin bolck mth500 */ 1404 1405 dev_model (600): 1406 begin; 1407 1408 dcl raw_status bit (208) based (addr (det_stats)); 1409 dcl int_status bit (24); 1410 dcl trans_table_mth600 (39) char (35) varying internal static options (constant) init ("Device Fault: ", 1411 /* byte 0, bit 0 */ 1412 "Command Code Error. ", /* ,bit 1 */ 1413 "Write Echo Error. ", /* ,bit 2 */ 1414 "Multiple BOT Status. ", /* ,bit 3 */ 1415 "Margin Condition: ", /* ,bit 7 */ 1416 "Column Vacuum Failure. ", /* byte 6,bit 0 */ 1417 "Main Blower Failure. ", /* ,bit 1 */ 1418 "Overtemp (Deck Hot). ", /* ,bit 2 */ 1419 "TMC ROM Error. ", /* ,bit 3 */ 1420 "Erase Current Failure. ", /* byte 8,bit 0 */ 1421 "Door Open. ", /* ,bit 1 */ 1422 "Capstan Blower Failure. ", /* ,bit 2 */ 1423 "Air Bearing Failure. ", /* ,bit 3 */ 1424 "Marginal Gap. ", /* ,bit 7 */ 1425 "Duty Cycle Exceeded. ", /* byte 9, bit 7 */ 1426 "Power window failure. ", "File hub failure. ", "Cannister failure. ", "Load retry failure. ", 1427 "BOT/EOT Sensor Failure. ", "LTOR Sensor Failure. ", "Hi Tape Sensor Failure. ", "Column load failure. ", 1428 "Thread-wrap failure. ", "Load/Unload ROM addr. failure. ", "Hi Tape (File Column). ", 1429 "Lo Tape (File Column). ", "Hi Tape (Machine Column). ", "Lo Tape (Machine Column). ", 1430 "Mach/File Tach Failure. ", "Vacuum Failure. ", "Column Sensor 4 Failure. ", "+5V Marginal. ", "+5V Fault. ", 1431 "+/- 12V Marginal. ", "+/- 12V Fault. ", "+24V Fault. ", "Circuit Breaker Tripped. ", 1432 "Mach/File Reel Malfunction. "); 1433 1434 1435 dcl x fixed bin; 1436 1437 anlzd = 0; 1438 substr (int_status, 1, 4) = substr (raw_status, 1, 4); 1439 substr (int_status, 5, 1) = substr (raw_status, 8, 1); 1440 substr (int_status, 6, 4) = substr (raw_status, 49, 4); 1441 substr (int_status, 10, 4) = substr (raw_status, 65, 4); 1442 substr (int_status, 14, 1) = substr (raw_status, 72, 1); 1443 substr (int_status, 15, 1) = substr (raw_status, 80, 1); 1444 substr (int_status, 16, 8) = substr (raw_status, 57, 8); 1445 substr (int_status, 24, 1) = substr (raw_status, 93, 1); 1446 1447 1448 do i = 2 to 4; 1449 if substr (int_status, i, 1) = "1"b then do; 1450 anlzd = anlzd + 1; 1451 a_tape_analysis.anal (anlzd) = trans_table_mth600 (i); 1452 a_is_interesting = "1"b; 1453 end; 1454 end; 1455 1456 if substr (int_status, 1, 1) = "1"b | /* dev fault */ 1457 substr (int_status, 5, 1) = "1"b then do; 1458 /* or margin cond */ 1459 anlzd = anlzd + 1; 1460 if substr (int_status, 1, 1) = "1"b then do; 1461 a_tape_analysis.anal (anlzd) = trans_table_mth600 (1); 1462 a_is_interesting = "1"b; 1463 end; 1464 1465 else if substr (int_status, 5, 1) = "1"b then do; 1466 a_tape_analysis.anal (anlzd) = trans_table_mth600 (5); 1467 a_is_interesting = "1"b; 1468 end; 1469 1470 do i = 6 to 15; 1471 if substr (int_status, i, 1) = "1"b then do; 1472 anlzd = anlzd + 1; 1473 a_tape_analysis.anal (anlzd) = trans_table_mth600 (i); 1474 a_is_interesting = "1"b; 1475 end; 1476 end; 1477 1478 if substr (int_status, 23, 1) = "1"b then do; 1479 anlzd = anlzd + 1; 1480 a_tape_analysis.anal (anlzd) = trans_table_mth600 (38); 1481 a_is_interesting = "1"b; 1482 go to fill_struct; 1483 end; 1484 1485 if substr (int_status, 24, 1) = "1"b then do; 1486 anlzd = anlzd + 1; 1487 a_tape_analysis.anal (anlzd) = trans_table_mth600 (39); 1488 a_is_interesting = "1"b; 1489 end; 1490 1491 1492 if substr (int_status, 16, 5) = "10000"b then do; 1493 anlzd = anlzd + 1; 1494 a_tape_analysis.anal (anlzd) = trans_table_mth600 (16); 1495 a_is_interesting = "1"b; 1496 end; 1497 1498 if substr (int_status, 16, 5) = "01000"b then do; 1499 anlzd = anlzd + 1; 1500 a_tape_analysis.anal (anlzd) = trans_table_mth600 (17); 1501 a_is_interesting = "1"b; 1502 end; 1503 1504 if substr (int_status, 16, 5) = "11000"b then do; 1505 anlzd = anlzd + 1; 1506 a_tape_analysis.anal (anlzd) = trans_table_mth600 (18); 1507 a_is_interesting = "1"b; 1508 end; 1509 1510 if substr (int_status, 16, 5) = "00100"b then do; 1511 anlzd = anlzd + 1; 1512 a_tape_analysis.anal (anlzd) = trans_table_mth600 (19); 1513 a_is_interesting = "1"b; 1514 end; 1515 1516 1517 if substr (int_status, 16, 5) = "10100"b then do; 1518 anlzd = anlzd + 1; 1519 a_tape_analysis.anal (anlzd) = trans_table_mth600 (20); 1520 a_is_interesting = "1"b; 1521 end; 1522 1523 1524 if substr (int_status, 16, 5) = "01100"b then do; 1525 anlzd = anlzd + 1; 1526 a_tape_analysis.anal (anlzd) = trans_table_mth600 (21); 1527 a_is_interesting = "1"b; 1528 end; 1529 1530 1531 if substr (int_status, 16, 3) = "111"b then do; 1532 anlzd = anlzd + 1; 1533 a_tape_analysis.anal (anlzd) = trans_table_mth600 (22); 1534 a_is_interesting = "1"b; 1535 end; 1536 1537 if substr (int_status, 16, 5) = "00010"b then do; 1538 anlzd = anlzd + 1; 1539 a_tape_analysis.anal (anlzd) = trans_table_mth600 (23); 1540 a_is_interesting = "1"b; 1541 end; 1542 1543 if substr (int_status, 16, 5) = "10010"b then do; 1544 anlzd = anlzd + 1; 1545 a_tape_analysis.anal (anlzd) = trans_table_mth600 (24); 1546 a_is_interesting = "1"b; 1547 end; 1548 1549 if substr (int_status, 16, 5) = "01010"b then do; 1550 anlzd = anlzd + 1; 1551 a_tape_analysis.anal (anlzd) = trans_table_mth600 (25); 1552 a_is_interesting = "1"b; 1553 end; 1554 1555 1556 if substr (int_status, 16, 2) = "10"b 1557 then if substr (int_status, 20, 1) = "1"b then do; 1558 anlzd = anlzd + 1; 1559 a_tape_analysis.anal (anlzd) = trans_table_mth600 (26); 1560 a_is_interesting = "1"b; 1561 end; 1562 1563 1564 if substr (int_status, 16, 2) = "01"b 1565 then if substr (int_status, 20, 1) = "1"b then do; 1566 anlzd = anlzd + 1; 1567 a_tape_analysis.anal (anlzd) = trans_table_mth600 (27); 1568 a_is_interesting = "1"b; 1569 end; 1570 1571 1572 if substr (int_status, 18, 3) = "101"b then do; 1573 anlzd = anlzd + 1; 1574 a_tape_analysis.anal (anlzd) = trans_table_mth600 (28); 1575 a_is_interesting = "1"b; 1576 end; 1577 1578 1579 if substr (int_status, 18, 3) = "011"b then do; 1580 anlzd = anlzd + 1; 1581 a_tape_analysis.anal (anlzd) = trans_table_mth600 (29); 1582 a_is_interesting = "1"b; 1583 end; 1584 1585 1586 if substr (int_status, 16, 5) = "11010"b then do; 1587 anlzd = anlzd + 1; 1588 a_tape_analysis.anal (anlzd) = trans_table_mth600 (30); 1589 a_is_interesting = "1"b; 1590 end; 1591 1592 1593 if substr (int_status, 16, 5) = "00110"b then do; 1594 anlzd = anlzd + 1; 1595 a_tape_analysis.anal (anlzd) = trans_table_mth600 (31); 1596 a_is_interesting = "1"b; 1597 end; 1598 1599 1600 if substr (int_status, 16, 5) = "10110"b then do; 1601 anlzd = anlzd + 1; 1602 a_tape_analysis.anal (anlzd) = trans_table_mth600 (32); 1603 a_is_interesting = "1"b; 1604 end; 1605 1606 1607 x = fixed (substr (int_status, 1, 1) || substr (int_status, 5, 1), 2); 1608 1609 if x > 0 then go to volt_check_mth600 (x); 1610 1611 go to fill_struct; 1612 1613 1614 volt_check_mth600 (1): 1615 if substr (int_status, 21, 2) = "10"b then do; 1616 anlzd = anlzd + 1; 1617 a_tape_analysis.anal (anlzd) = trans_table_mth600 (33); 1618 a_is_interesting = "1"b; 1619 end; 1620 1621 1622 if substr (int_status, 21, 2) = "01"b then do; 1623 anlzd = anlzd + 1; 1624 a_tape_analysis.anal (anlzd) = trans_table_mth600 (35); 1625 a_is_interesting = "1"b; 1626 end; 1627 1628 1629 go to fill_struct; 1630 1631 1632 volt_check_mth600 (2): 1633 if substr (int_status, 21, 2) = "10"b then do; 1634 anlzd = anlzd + 1; 1635 a_tape_analysis.anal (anlzd) = trans_table_mth600 (37); 1636 a_is_interesting = "1"b; 1637 end; 1638 1639 1640 go to fill_struct; 1641 1642 volt_check_mth600 (3): 1643 if substr (int_status, 21, 2) = "10"b then do; 1644 anlzd = anlzd + 1; 1645 a_tape_analysis.anal (anlzd) = trans_table_mth600 (34); 1646 a_is_interesting = "1"b; 1647 end; 1648 1649 1650 if substr (int_status, 21, 2) = "01"b then do; 1651 anlzd = anlzd + 1; 1652 a_tape_analysis.anal (anlzd) = trans_table_mth600 (36); 1653 a_is_interesting = "1"b; 1654 end; 1655 1656 1657 end_mth600_attn: 1658 end; /* end dev fault/malf checks */ 1659 1660 end; /* end begin block for mth600 */ 1661 go to fill_struct; 1662 1663 1664 dev_model (610): 1665 begin; 1666 dcl raw_status bit (208) based (addr (det_stats)); 1667 dcl int_status bit (19); 1668 dcl trans_table_mth610 (19) char (65) varying internal static options (constant) 1669 init ("Device Fault: ", "Command Code Error. ", "Signal Fault: ", "Multiple BOT Status. ", 1670 "Marginal Condition: ", "Incorrect Speed Detected. ", "Main Blower Failure. ", "Over Temp. ", 1671 "Low Air Bearing Pressure. ", "Erase Current Failure. ", "Door Open Switch. ", "Write Current Failure. ", 1672 "Auto Hub Air Pressure Failure. ", "Fibre Optics Failure. ", "Voltage Failure. ", 1673 "Column Vacuum Failure (Soft Servo, Capstan Speed or Col Sensor). ", "Load/Unload Failure. ", 1674 "Speed Status (<95% or >105%). ", "GCR AGC @ Max while SIG AMP below reference. "); 1675 1676 anlzd = 0; 1677 substr (int_status, 1, 4) = substr (raw_status, 1, 4); 1678 substr (int_status, 5, 1) = substr (raw_status, 8, 1); 1679 substr (int_status, 6, 4) = substr (raw_status, 49, 4); 1680 substr (int_status, 10, 8) = substr (raw_status, 57, 8); 1681 substr (int_status, 18, 1) = substr (raw_status, 103, 1); 1682 substr (int_status, 19, 1) = substr (raw_status, 118, 1); 1683 1684 if substr (int_status, 2, 1) = "1"b then do; 1685 anlzd = anlzd + 1; 1686 a_tape_analysis.anal (anlzd) = trans_table_mth610 (2); 1687 a_is_interesting = "1"b; 1688 end; 1689 1690 1691 if substr (int_status, 4, 1) = "1"b then do; 1692 anlzd = anlzd + 1; 1693 a_tape_analysis.anal (anlzd) = trans_table_mth610 (4); 1694 a_is_interesting = "1"b; 1695 end; 1696 1697 1698 if substr (int_status, 3, 1) = "1"b then do; 1699 anlzd = anlzd + 1; 1700 a_tape_analysis.anal (anlzd) = trans_table_mth610 (3); 1701 a_is_interesting = "1"b; 1702 end; 1703 1704 1705 if substr (int_status, 1, 1) = "1"b then do; /* dev fault */ 1706 anlzd = anlzd + 1; 1707 a_tape_analysis.anal (anlzd) = trans_table_mth610 (1); 1708 1709 do i = 10 to 17; 1710 if substr (int_status, i, 1) = "1"b then do; 1711 anlzd = anlzd + 1; 1712 a_tape_analysis.anal (anlzd) = trans_table_mth610 (i); 1713 a_is_interesting = "1"b; 1714 end; 1715 end; 1716 go to end_mth610_attn; 1717 end; /* end dev fault checks */ 1718 1719 if substr (int_status, 5, 1) = "1"b then do; /* margin condition */ 1720 anlzd = anlzd + 1; 1721 a_tape_analysis.anal (anlzd) = trans_table_mth610 (5); 1722 1723 do i = 6 to 9; 1724 if substr (int_status, i, 1) = "1"b then do; 1725 anlzd = anlzd + 1; 1726 a_tape_analysis.anal (anlzd) = trans_table_mth610 (i); 1727 a_is_interesting = "1"b; 1728 end; 1729 end; 1730 1731 if substr (int_status, 18, 1) = "1"b then do; 1732 anlzd = anlzd + 1; 1733 a_tape_analysis.anal (anlzd) = trans_table_mth610 (18); 1734 a_is_interesting = "1"b; 1735 end; 1736 end; /* end margin cond checks */ 1737 1738 if substr (int_status, 19, 1) = "1"b then do; 1739 anlzd = anlzd + 1; 1740 a_tape_analysis.anal (anlzd) = trans_table_mth610 (19); 1741 a_is_interesting = "1"b; 1742 end; 1743 1744 1745 end_mth610_attn: 1746 end; /* end begin block for mth610 */ 1747 go to fill_struct; 1748 1749 /* Routine to analyze detail status for the MTUMPT (STC) tape drive */ 1750 1751 dev_model (640): 1752 begin; 1753 1754 dcl raw_status bit (208) based (addr (det_stats)); 1755 dcl int_status bit (18); 1756 dcl CODE char (2) init (""); 1757 dcl trans_table_mth640 (17) char (31) varying internal static options (constant) 1758 init ("Device Fault: ", "Command Code Error. ", "Command Even Parity: ", "Signal Fault:", 1759 "Multiple BOT Status. ", "Marginal Condition: ", "Write Current Failure. ", "Erase Current Failure. ", 1760 "Air Pressure/Vacuum Failure. ", "Door Open. ", "Regulated Voltage Missing. ", "Un-Regulated Voltage Missing. ", 1761 "Processor Failure. ", "Incorrect Speed Detected. ", "Marginal Gap. ", "Marginal Air Bearing Pressure. ", 1762 "Marginal Voltage. "); 1763 1764 dcl sub_test1 (7) char (21) var int static options (constant) 1765 init ("Load Fault. ", "Unload Fault. ", "Write Inhibit Fault. ", "Multiple BOT Fault. ", "Runaway Fault. ", 1766 "Rewind Fault. ", "Z-80 Interrupt. "); 1767 1768 1769 anlzd = 0; 1770 substr (int_status, 1, 2) = substr (raw_status, 1, 2); 1771 substr (int_status, 3, 1) = substr (raw_status, 16, 1); 1772 substr (int_status, 4, 2) = substr (raw_status, 3, 2); 1773 substr (int_status, 6, 1) = substr (raw_status, 8, 1); 1774 substr (int_status, 7, 3) = substr (raw_status, 49, 3); 1775 /* ^(door closed) */ 1776 substr (int_status, 10, 1) = ^(substr (raw_status, 52, 1)); 1777 substr (int_status, 11, 2) = substr (raw_status, 57, 2); 1778 substr (int_status, 13, 1) = substr (raw_status, 80, 1); 1779 substr (int_status, 14, 3) = substr (raw_status, 41, 3); 1780 substr (int_status, 17, 1) = substr (raw_status, 59, 1); 1781 1782 1783 if substr (int_status, 1, 1) = "1"b then do; /* dev fault */ 1784 anlzd = anlzd + 1; 1785 a_tape_analysis.anal (anlzd) = trans_table_mth640 (1); 1786 1787 do i = 7 to 14; 1788 if substr (int_status, i, 1) = "1"b then do; 1789 anlzd = anlzd + 1; 1790 a_tape_analysis.anal (anlzd) = trans_table_mth640 (i); 1791 a_is_interesting = "1"b; 1792 end; 1793 end; 1794 if substr (raw_status, 62, 3) ^= "0"b then do; 1795 anlzd = anlzd + 1; 1796 a_tape_analysis.anal (anlzd) = sub_test1 (bin (substr (raw_status, 62, 3), 3)); 1797 end; 1798 if substr (raw_status, 65, 8) ^= "0"b then do; 1799 anlzd = anlzd + 1; 1800 call ioa_$rsnnl ("^2.4b", CODE, 2, substr (raw_status, 65, 8)); 1801 a_tape_analysis.anal (anlzd) = "FAULT CODE = " || CODE; 1802 end; 1803 1804 1805 go to end_mth640_attn; /* other faults do not matter */ 1806 end; /* end dev fault checks */ 1807 1808 1809 if substr (int_status, 6, 1) = "1"b then do; /* margin condition */ 1810 anlzd = anlzd + 1; 1811 a_tape_analysis.anal (anlzd) = trans_table_mth640 (6); 1812 1813 do i = 15 to 17; 1814 if substr (int_status, i, 1) = "1"b then do; 1815 anlzd = anlzd + 1; 1816 a_tape_analysis.anal (anlzd) = trans_table_mth640 (i); 1817 a_is_interesting = "1"b; 1818 end; 1819 end; 1820 end; 1821 1822 1823 do i = 2 to 3; /* check command errors */ 1824 if substr (int_status, i, 1) = "1"b then do; 1825 anlzd = anlzd + 1; 1826 a_tape_analysis.anal (anlzd) = trans_table_mth640 (i); 1827 a_is_interesting = "1"b; 1828 end; 1829 end; 1830 1831 1832 if substr (int_status, 5, 1) = "1"b then do; /* multiple bot? */ 1833 anlzd = anlzd + 1; 1834 a_tape_analysis.anal (anlzd) = trans_table_mth640 (5); 1835 a_is_interesting = "1"b; 1836 end; 1837 1838 1839 if substr (int_status, 4, 1) = "1"b then do; /* signal fault ? */ 1840 anlzd = anlzd + 1; 1841 a_tape_analysis.anal (anlzd) = trans_table_mth640 (4); 1842 a_is_interesting = "1"b; 1843 end; 1844 1845 1846 end_mth640_attn: 1847 end; /* end begin block for mth640 */ 1848 end_attn: 1849 go to fill_struct; 1850 1851 1852 data_alert: 1853 dcl rc_misc_reg (8) char (25) varying internal static options (constant) 1854 init ("C2 1. ", "C2 0. ", "Illeg Code Conv Char. ", "", "Lateral Parity Err. ", "RC Reg R3 Par Err. ", 1855 "RC Reg R4 Par Err. ", "Data Out Par Err. "); 1856 1857 dcl FRAME_DROP char (18) init ("----FRAME DROP----"); 1858 1859 anlzd = 0; 1860 1861 1862 if mpc_model < 601 1863 then /* mpc ext stats bytes 16-25 valid only for 601/610 */ 1864 go to fill_struct; /* not mtc500 */ 1865 1866 if curr_dens ^= "nr" then go to not_nrzi; 1867 1868 Dens (800): /* NRZI Decode */ 1869 ext_ptr = addr (det_stats); 1870 1871 1872 if curr_mode ^= "W" 1873 then /* write treated differently */ 1874 go to nrzi_read; 1875 nrzi_write: /* ************************************************************************** 1876* * join the hi and lo clip error bytes to their respective parity bits * 1877* * for an xor compare of which bit(s) didn't make it * 1878* ************************************************************************** */ 1879 str1 = substr (ext_stats (19), 1, 8) || substr (ext_stats (18), 2, 1); 1880 str2 = substr (ext_stats (20), 1, 8) || substr (ext_stats (18), 3, 1); 1881 str3 = bool (str1, str2, "0110"b); /* XOR to get diff */ 1882 if str3 = "0"b then go to nrzi_read; 1883 1884 anlzd = anlzd + 1; 1885 a_tape_analysis.anal (anlzd) = "HI/LO Clip compare error. "; 1886 1887 if tks = 0 1888 then /* 7 track drive */ 1889 do j = 3 to 9; 1890 if substr (str3, j, 1) = "1"b then do; 1891 substr (a_tape_analysis.trks_in_err, trk7_idx (j), 2) = trk7_tbl (j); 1892 a_tape_analysis.dbie_array (j) = 1; 1893 end; 1894 end; 1895 1896 else do j = 1 to 9; /* same thing for 9 track */ 1897 if substr (str3, j, 1) = "1"b then do; 1898 substr (a_tape_analysis.trks_in_err, trk9_idx (j), 2) = trk9_tbl (j); 1899 a_tape_analysis.dbie_array (j) = 1; 1900 end; 1901 end; 1902 1903 go to end_tkie_sum; 1904 1905 nrzi_read: 1906 str1 = substr (ext_stats (17), 1, 8) || substr (ext_stats (18), 1, 1); 1907 1908 if tks = 0 then do; 1909 if str1 = fdmask7 then do; 1910 anlzd = anlzd + 1; 1911 a_tape_analysis.anal (anlzd) = "Frame Drop. "; 1912 a_tape_analysis.trks_in_err = FRAME_DROP; 1913 go to end_tkie_sum; 1914 end; 1915 1916 else do j = 3 to 9; 1917 if substr (str1, j, 1) = "1"b then do; 1918 substr (a_tape_analysis.trks_in_err, trk7_idx (j), 2) = trk7_tbl (j); 1919 a_tape_analysis.dbie_array (j) = 1; 1920 end; 1921 end; 1922 end; 1923 1924 else do; /* must be a 9 track drive */ 1925 1926 if str1 = fdmask9 then do; 1927 a_tape_analysis.trks_in_err = FRAME_DROP; 1928 anlzd = anlzd + 1; 1929 a_tape_analysis.anal (anlzd) = "Frame Drop. "; 1930 go to end_tkie_sum; 1931 end; 1932 1933 else do j = 1 to 9; 1934 if substr (str1, j, 1) = "1"b then do; 1935 substr (a_tape_analysis.trks_in_err, trk9_idx (j), 2) = trk9_tbl (j); 1936 a_tape_analysis.dbie_array (j) = 1; 1937 end; 1938 end; 1939 end; 1940 1941 go to end_tkie_sum; 1942 1943 1944 not_nrzi: 1945 Dens (6250): /* Group Code Recording (GCR) decode */ 1946 Dens (1600): /* Phase Encoded (PE) Decode */ 1947 ext_ptr = addr (det_stats); 1948 anlzd = 0; 1949 1950 1951 if curr_dens = "gc" then do; 1952 1953 if substr (ext_stats (15), 6, 1) = "1"b then do; 1954 anlzd = anlzd + 1; 1955 a_tape_analysis.anal (anlzd) = "GCR AGC @ Max while SIG AMP below reference. "; 1956 a_is_interesting = "1"b; 1957 end; 1958 1959 if substr (ext_stats (20), 3, 1) = "1"b then do; 1960 anlzd = anlzd + 1; 1961 a_tape_analysis.anal (anlzd) = "3 or more tracks in error. "; 1962 go to ck_skew; 1963 end; 1964 1965 if substr (ext_stats (20), 2, 1) = "1"b then do; 1966 anlzd = anlzd + 1; 1967 a_tape_analysis.anal (anlzd) = "2 tracks in error. "; 1968 go to ck_skew; 1969 end; 1970 1971 if substr (ext_stats (20), 1, 1) = "1"b then do; 1972 anlzd = anlzd + 1; 1973 a_tape_analysis.anal (anlzd) = "1 track in error. "; 1974 end; 1975 1976 1977 1978 ck_skew: 1979 if curr_mode = "W" then do; 1980 1981 if substr (ext_stats (20), 5, 1) = "1"b then do; 1982 anlzd = anlzd + 1; 1983 a_tape_analysis.anal (anlzd) = "10 Chars of Skew. "; 1984 go to decode_tkie; 1985 end; 1986 1987 if substr (ext_stats (20), 4, 1) = "1"b then do; 1988 anlzd = anlzd + 1; 1989 a_tape_analysis.anal (anlzd) = "5 Chars of Skew. "; 1990 go to decode_tkie; 1991 end; 1992 end; 1993 1994 else if curr_mode = "R" then do; 1995 if substr (ext_stats (20), 6, 1) = "1"b then do; 1996 anlzd = anlzd + 1; 1997 a_tape_analysis.anal (anlzd) = "25 Chars of Skew. "; 1998 go to decode_tkie; 1999 end; 2000 end; 2001 end; /* end 6250 specifics */ 2002 2003 2004 2005 if (mpc_model = 610) & (curr_dens = "pe") then do; 2006 2007 if substr (ext_stats (23), 7, 1) = "1"b then do; 2008 anlzd = anlzd + 1; 2009 if curr_mode = "R" 2010 then a_tape_analysis.anal (anlzd) = "PE Multi-Track Err. "; 2011 else a_tape_analysis.anal (anlzd) = "PE Single-Track Err. "; 2012 end; 2013 2014 2015 if curr_mode ^= "W" then go to decode_tkie; 2016 2017 if substr (ext_stats (23), 8, 1) = "1"b then do; 2018 anlzd = anlzd + 1; 2019 a_tape_analysis.anal (anlzd) = "PE Buffer Overload. "; 2020 go to decode_tkie; 2021 end; 2022 2023 2024 end; 2025 2026 2027 else if mpc_model = 601 2028 then if substr (ext_stats (21), 4, 1) = "0"b then do; 2029 2030 if curr_mode ^= "W" then go to decode_tkie; 2031 2032 anlzd = anlzd + 1; 2033 a_tape_analysis.anal (anlzd) = "PE Write Window Err. "; 2034 go to decode_tkie; 2035 end; 2036 2037 decode_tkie: 2038 str1 = substr (ext_stats (17), 1, 8) || substr (ext_stats (18), 1, 1); 2039 2040 if str1 = fdmask9 then do; 2041 a_tape_analysis.trks_in_err = FRAME_DROP; 2042 anlzd = anlzd + 1; 2043 a_tape_analysis.anal (anlzd) = "Frame Drop. "; 2044 go to end_tkie_sum; 2045 end; 2046 2047 do j = 1 to 9; /* must have valid tkie data, get it */ 2048 if substr (str1, j, 1) = "1"b then do; 2049 substr (a_tape_analysis.trks_in_err, trk9_idx (j), 2) = trk9_tbl (j); 2050 a_tape_analysis.dbie_array (j) = 1; 2051 end; 2052 end; 2053 end_tkie_sum: 2054 if mpc_model = 610 then do; 2055 2056 if substr (ext_stats (21), 3, 1) = "1"b then do; 2057 anlzd = anlzd + 1; 2058 a_tape_analysis.anal (anlzd) = "DOS Drop. "; 2059 end; 2060 2061 if substr (ext_stats (22), 7, 1) = "1"b then do; 2062 anlzd = anlzd + 1; 2063 a_tape_analysis.anal (anlzd) = "Echo-Read Dropout. "; 2064 end; 2065 2066 2067 if substr (ext_stats (23), 6, 1) = "1"b then do; 2068 anlzd = anlzd + 1; 2069 a_tape_analysis.anal (anlzd) = "TTE MTH->MPC. "; 2070 end; 2071 2072 2073 /* now check the IE register */ 2074 2075 if substr (ext_stats (26), 4, 1) = "1"b then do; 2076 anlzd = anlzd + 1; 2077 a_tape_analysis.anal (anlzd) = "DO Parity Err. "; 2078 a_is_interesting = "1"b; 2079 end; 2080 2081 2082 if substr (ext_stats (26), 7, 1) = "1"b then do; 2083 anlzd = anlzd + 1; 2084 a_tape_analysis.anal (anlzd) = "Write Buffer Parity Err. "; 2085 a_is_interesting = "1"b; 2086 end; 2087 2088 2089 if substr (ext_stats (26), 8, 1) = "1"b then do; 2090 anlzd = anlzd + 1; 2091 a_tape_analysis.anal (anlzd) = "RO Parity Err. "; 2092 a_is_interesting = "1"b; 2093 end; 2094 2095 2096 do j = 6 to 8; /* check RC misc register */ 2097 if substr (ext_stats (24), j, 1) = "1"b then do; 2098 anlzd = anlzd + 1; 2099 a_tape_analysis.anal (anlzd) = rc_misc_reg (j); 2100 a_is_interesting = "1"b; 2101 end; 2102 end; 2103 2104 2105 /* Bypass the next check until HW eng define the meaning of these bits 2106* 2107* do j = 1 to 4; now do the RC board id 2108* if substr (ext_stats (25), (j+4), 1) = "1"b then do; 2109* anlzd = anlzd +1; 2110* a_tape_analysis.anal (anlzd) = 2111* rc_bd_id (j); 2112* end; 2113**/ 2114 2115 2116 end; /* end mtp610 specifics */ 2117 2118 2119 else if mpc_model = 601 then do; /* check mtp601 specifics */ 2120 2121 if substr (ext_stats (21), 2, 1) = "1"b then do; 2122 anlzd = anlzd + 1; 2123 a_tape_analysis.anal (anlzd) = "TTE MTH->MPC. "; 2124 end; 2125 2126 2127 if substr (ext_stats (21), 3, 1) = "1"b then do; 2128 anlzd = anlzd + 1; 2129 a_tape_analysis.anal (anlzd) = "Illegal Char. "; 2130 end; 2131 2132 2133 if curr_dens = "nr" then do; 2134 2135 if substr (ext_stats (22), 1, 1) = "1"b then do; 2136 anlzd = anlzd + 1; 2137 a_tape_analysis.anal (anlzd) = "Hi Clip Parity Err. "; 2138 a_is_interesting = "1"b; 2139 end; 2140 2141 2142 if substr (ext_stats (22), 2, 1) = "1"b then do; 2143 anlzd = anlzd + 1; 2144 a_tape_analysis.anal (anlzd) = "Lo Clip Parity Err. "; 2145 a_is_interesting = "1"b; 2146 end; 2147 end; 2148 2149 2150 else if curr_dens = "pe" then do; 2151 if substr (ext_stats (21), 5, 1) = "1"b then do; 2152 anlzd = anlzd + 1; 2153 a_tape_analysis.anal (anlzd) = "Skew Error. "; 2154 end; 2155 2156 2157 if substr (ext_stats (21), 6, 1) = "1"b then do; 2158 anlzd = anlzd + 1; 2159 a_tape_analysis.anal (anlzd) = "Postamble Error. "; 2160 end; 2161 2162 if substr (ext_stats (22), 2, 1) = "1"b then do; 2163 anlzd = anlzd + 1; 2164 a_tape_analysis.anal (anlzd) = "PE Deskew Char Parity Bit Err. "; 2165 end; 2166 end; 2167 2168 end; /* mtp601 specifics */ 2169 2170 fill_struct: 2171 number_analyzed = anlzd + 1; 2172 2173 if (^rsnnl_sw & ^rs_sw) then do; 2174 call hcs_$make_seg ("", "analyze_detail_stat_.temp", "", 10, tape_analp, xcode); 2175 auto_analp = tape_analp; 2176 tape_analysis.tape_analysis_version = analyze_det_stat_info_version_2; 2177 tape_analysis.num_analyzed = anlzd; 2178 tape_analysis.is_interesting_tape = a_is_interesting; 2179 tape_analysis.fips_controller = fips_controller; 2180 tape_analysis.pad = ""b; 2181 tape_analysis.mth_model = a_tape_analysis.mth_model; 2182 tape_analysis.num_tracks = a_tape_analysis.num_tracks; 2183 tape_analysis.tracks_in_error = a_tape_analysis.trks_in_err; 2184 tape_analysis.dbie_array = a_tape_analysis.dbie_array; 2185 tape_analysis.density = a_tape_analysis.density; 2186 tape_analysis.operation = a_tape_analysis.operation; 2187 2188 if number_analyzed > 0 2189 then do j = 1 to number_analyzed; 2190 tape_analysis.analyses (j) = a_tape_analysis.anal (j); 2191 end; 2192 2193 else tape_analysis.analyses (*) = ""; 2194 return; 2195 end; 2196 2197 2198 if (rsnnl_sw | rs_sw) then do; 2199 if a_is_interesting 2200 then do j = 1 to number_analyzed; 2201 message = message || a_tape_analysis.anal (j); 2202 end; 2203 if message ^= "" then do; 2204 if rs_sw then message = message || NEW_LINE; 2205 is_interesting = a_is_interesting; 2206 end; 2207 else is_interesting = "0"b; 2208 end; 2209 return; 2210 2211 anal_fips_tape_: 2212 proc; 2213 2214 dcl (dev_no, dev_no_idx) fixed bin; 2215 dcl (ft_in_pe, ft_can_run_6250) bit (1) init ("0"b); 2216 dcl ft_general_err_bits bit (8) init (""b); 2217 dcl ft_unit_err_bits bit (9) init (""b); 2218 dcl ft_data_err_bits bit (23) init (""b); 2219 2220 dcl ft_general_table (8) char (65) varying internal static options (constant) 2221 init ("Command Reject ", "Bus Out Check ", "Equipment Check ", "Reject Tape Unit ", "EOT Mark Detected ", 2222 "Tape Unit Check ", "Channel Buffer Check ", "Command Status Reject "); 2223 2224 dcl ft_unit_table (9) char (65) varying internal static options (constant) 2225 init ("Intervention Required ", "Micro Hardware Check ", "Column Out ", "File Column Check ", 2226 "Machine Column Check ", "Reset Key ", "Load Check ", "Tach Start Failure ", "Velocity Check "); 2227 2228 dcl ft_data_table (23) char (65) varying internal static options (constant) 2229 init ("Data Check ", "Overrun ", "Word Count Zero ", "Noise ", "Not Capable ", "R/W VRC ", "MTE/LRC ", 2230 "Skew Error ", "EDC/CRC ", "ENV/ECC ", "C/P Compare ", "Write VRC ", "WTM Check ", "ID Burst Check ", 2231 "Partial Record ", "Postamble Error ", "Write Check ", "DSE Check ", "Erase Check ", "IBG Detected ", 2232 "Velocity Change ", "CRC III ", "Record NOT Detected "); 2233 2234 a_tape_analysis.num_tracks = 9; /* all are 9-track */ 2235 dev_no = cv_dec_check_ (substr (name, 6, 2), code); 2236 dev_no_idx = 0; 2237 do j = 1 to 5 while (a_tape_analysis.mth_model = ""); 2238 dev_no_idx = dev_no_idx + prph_tap_card.ndrives (j); 2239 if dev_no < dev_no_idx 2240 then a_tape_analysis.mth_model = "MTU" || ltrim (char (prph_tap_card.model (j))); 2241 end; 2242 2243 ft_in_pe = substr (det_stats, 30, 1); 2244 ft_can_run_6250 = substr (det_stats, 77, 1); 2245 if ft_in_pe then a_tape_analysis.density = 1600; 2246 else if ft_can_run_6250 then a_tape_analysis.density = 6250; 2247 else a_tape_analysis.density = 800; 2248 2249 substr (ft_general_err_bits, 1, 1) = substr (det_stats, 1, 1); 2250 substr (ft_general_err_bits, 2, 2) = substr (det_stats, 3, 2); 2251 substr (ft_general_err_bits, 4, 2) = substr (det_stats, 34, 2); 2252 substr (ft_general_err_bits, 6, 1) = substr (det_stats, 39, 1); 2253 substr (ft_general_err_bits, 7, 1) = substr (det_stats, 75, 1); 2254 substr (ft_general_err_bits, 8, 1) = substr (det_stats, 81, 1); 2255 2256 substr (ft_unit_err_bits, 1, 1) = substr (det_stats, 2, 1); 2257 substr (ft_unit_err_bits, 2, 1) = substr (det_stats, 33, 1); 2258 substr (ft_unit_err_bits, 3, 4) = substr (det_stats, 57, 4); 2259 substr (ft_unit_err_bits, 7, 1) = substr (det_stats, 64, 1); 2260 substr (ft_unit_err_bits, 8, 1) = substr (det_stats, 86, 1); 2261 substr (ft_unit_err_bits, 9, 1) = substr (det_stats, 88, 1); 2262 2263 substr (ft_data_err_bits, 1, 3) = substr (det_stats, 5, 3); 2264 substr (ft_data_err_bits, 4, 1) = substr (det_stats, 9, 1); 2265 substr (ft_data_err_bits, 5, 1) = substr (det_stats, 16, 1); 2266 substr (ft_data_err_bits, 6, 5) = substr (det_stats, 25, 5); 2267 substr (ft_data_err_bits, 11, 1) = substr (det_stats, 32, 1); 2268 substr (ft_data_err_bits, 12, 1) = substr (det_stats, 36, 1); 2269 substr (ft_data_err_bits, 13, 2) = substr (det_stats, 43, 2); 2270 substr (ft_data_err_bits, 15, 2) = substr (det_stats, 46, 2); 2271 substr (ft_data_err_bits, 17, 1) = substr (det_stats, 50, 1); 2272 substr (ft_data_err_bits, 18, 2) = substr (det_stats, 61, 2); 2273 substr (ft_data_err_bits, 20, 1) = substr (det_stats, 65, 1); 2274 substr (ft_data_err_bits, 21, 1) = substr (det_stats, 74, 1); 2275 substr (ft_data_err_bits, 22, 1) = substr (det_stats, 76, 1); 2276 substr (ft_data_err_bits, 23, 1) = substr (det_stats, 84, 1); 2277 2278 if ft_general_err_bits 2279 then do i = 1 to 8; 2280 if substr (ft_general_err_bits, i, 1) then do; 2281 anlzd = anlzd + 1; 2282 a_tape_analysis.anal (anlzd) = ft_general_table (i); 2283 a_is_interesting = "1"b; 2284 end; 2285 end; 2286 2287 if ft_unit_err_bits 2288 then do i = 1 to 9; 2289 if substr (ft_unit_err_bits, i, 1) then do; 2290 anlzd = anlzd + 1; 2291 a_tape_analysis.anal (anlzd) = ft_unit_table (i); 2292 a_is_interesting = "1"b; 2293 end; 2294 end; 2295 2296 if ft_data_err_bits then do; 2297 if substr (det_stats, 14, 1) 2298 then a_tape_analysis.operation = "Write"; 2299 else a_tape_analysis.operation = "Read"; 2300 do i = 1 to 23; 2301 if substr (ft_data_err_bits, i, 1) then do; 2302 anlzd = anlzd + 1; 2303 a_tape_analysis.anal (anlzd) = ft_data_table (i); 2304 a_is_interesting = "1"b; 2305 end; 2306 end; 2307 2308 str1 = substr (det_stats, 17, 8) || /* add on P track check */ 2309 (^ft_in_pe & ^substr (det_stats, 14, 1) & (substr (det_stats, 17, 8) = ""b)); 2310 if ^ft_in_pe & (substr (det_stats, 17, 8) = "03"b4) 2311 then a_tape_analysis.trks_in_err = "-Track Not Found-"; 2312 else do j = 1 to 9; 2313 if substr (str1, j, 1) = "1"b then do; 2314 substr (a_tape_analysis.trks_in_err, trk9_idx (j), 2) = trk9_tbl (j); 2315 a_tape_analysis.dbie_array (j) = 1; 2316 end; 2317 end; 2318 end; 2319 if a_is_interesting & substr (det_stats, 177, 8) ^= ""b then do; 2320 anlzd = anlzd + 1; 2321 call ioa_$rsnnl ("Symptom_code=^2.4b ", a_tape_analysis.anal (anlzd), 16, substr (det_stats, 177, 8)); 2322 end; 2323 return; 2324 end anal_fips_tape_; 2325 end anal_tape_; 2326 2327 find_controller: 2328 proc (a_iom, a_chan); 2329 dcl a_iom fixed bin (3); 2330 dcl a_chan fixed bin (8); 2331 2332 fips_controller = "0"b; 2333 ipc_cardp = null (); 2334 mpc_cardp = null (); 2335 do while ("1"b); 2336 call config_$find (MPC_CARD_WORD, mpc_cardp); 2337 if mpc_cardp = null () then goto check_for_fips; 2338 do i = 1 to hbound (mpc_card.port, 1) while (mpc_card.port (i).iom ^= -1); 2339 if (a_iom = mpc_card.port (i).iom) & (a_chan >= mpc_card.port (i).chan) 2340 & (a_chan < mpc_card.port (i).chan + mpc_card.port (i).nchan) 2341 then return; 2342 end; 2343 end; 2344 2345 check_for_fips: 2346 do while ("1"b); 2347 call config_$find (IPC_CARD_WORD, ipc_cardp); 2348 if ipc_cardp = null () then return; 2349 if ipc_card.type = IPC_FIPS then do; 2350 if (a_iom = ipc_card.iom) & (a_chan >= ipc_card.chan) & (a_chan < ipc_card.chan + ipc_card.nchan) 2351 then do; 2352 fips_controller = "1"b; 2353 return; 2354 end; 2355 end; 2356 end; 2357 end find_controller; 2358 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 2359 2360 2 1 /* Begin include file ..... analyze_det_stat_info.incl.pl1 */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 2 6* audit(86-03-05,Coppola), install(86-03-21,MR12.0-1033): 2 7* Add support of FIPS 2 8* disk and tape. 2 9* END HISTORY COMMENTS */ 2 10 2 11 /* Describes format of structures returned by analyze_detail_stat_ */ 2 12 /* Prepared Jan 29, 1981 by Rich Coppola */ 2 13 /* Modified July 1985 by Paul Farley for FIPS disk/tape.. */ 2 14 2 15 dcl analyze_det_stat_info_version_1 fixed bin static init (1) options (constant); 2 16 dcl analyze_det_stat_info_version_2 fixed bin static init (2) options (constant); 2 17 2 18 dcl tape_analp ptr; /* ptr to analyzed tape detail stats */ 2 19 dcl prt_analp ptr; /* ptr to printer analysis */ 2 20 dcl disk_analp ptr; /* ptr to disk analysis */ 2 21 dcl rdr_pun_analp ptr; /* ptr to rdr/pun analysis */ 2 22 2 23 2 24 dcl 1 tape_analysis based (tape_analp), 2 25 2 tape_analysis_version fixed bin, /* Version Number 2 */ 2 26 2 num_analyzed fixed bin, 2 27 2 is_interesting_tape bit (1) unal, 2 28 2 fips_controller bit (1) unal, 2 29 2 pad bit (34) unal, 2 30 2 mth_model char (8), /* MTH Model Number */ 2 31 2 num_tracks fixed bin, 2 32 2 tracks_in_error char (18), /* defines the data bit in error 2 33* for data alert stati */ 2 34 2 dbie_array (9) fixed bin, /* array to denote data bit in error cnt */ 2 35 2 modes, 2 36 3 density fixed bin, /* 800, 1600, 6250 bpi */ 2 37 3 operation char (7) var, /* reading/writing/rewinding */ 2 38 2 analyses (number_analyzed refer (tape_analysis.num_analyzed)) char (65) var; 2 39 2 40 2 41 dcl 1 disk_analysis based (disk_analp), 2 42 2 disk_analysis_version fixed bin, /* Version Number 2 */ 2 43 2 num_analyzed fixed bin, 2 44 2 is_interesting_disk bit (1) unal, 2 45 2 fips_controller bit (1) unal, 2 46 2 pad bit (34) unal, 2 47 2 dsk_model char (7) var, 2 48 2 CA fixed bin, 2 49 2 PORT fixed bin, 2 50 2 analyses (number_analyzed refer (disk_analysis.num_analyzed)) char (50) var; 2 51 2 52 dcl 1 prt_analysis based (prt_analp), 2 53 2 prt_analysis_version fixed bin, /* Version Number 1 */ 2 54 2 num_analyzed fixed bin, 2 55 2 is_interesting_prt bit (1), 2 56 2 prt_model char (7) var, 2 57 2 density char (6), /* 6 or 8 lpi */ 2 58 2 analyses (number_analyzed refer (prt_analysis.num_analyzed)) char (40) var; 2 59 2 60 dcl 1 rdr_pun_analysis based (rdr_pun_analp), 2 61 2 rdr_pun_analysis_version fixed bin, /* Version Number 1 */ 2 62 2 num_analyzed fixed bin, 2 63 2 is_interesting_rdr_pun bit (1), 2 64 2 rdr_pun_model char (6), 2 65 2 analyses (number_analyzed refer (rdr_pun_analysis.num_analyzed)) char (40) var; 2 66 2 67 2 68 /* End include file analyze_det_stat_info.incl.pl1 */ 2361 2362 3 1 /* BEGIN INCLUDE FILE ... config_ipc_card.incl.pl1 ... */ 3 2 /****^ HISTORY COMMENTS: 3 3* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 3 4* audit(86-03-08,CLJones), install(86-03-21,MR12.0-1033): 3 5* Create IPC card. 3 6* END HISTORY COMMENTS */ 3 7 3 8 /* format: style4,delnl,insnl,indattr,ifthen,declareind10,dclind10 */ 3 9 3 10 dcl ipc_cardp ptr; /* card pointer */ 3 11 3 12 dcl 1 ipc_card aligned based (ipc_cardp), 3 13 2 word char (4), /* "ipc" */ 3 14 2 type char (4), /* Type of this IPC - e.g., "fips" */ 3 15 2 iom fixed bin (3), /* IOM number */ 3 16 2 chan fixed bin (8), /* Channel number. */ 3 17 2 nchan fixed bin, /* Number of logical channels on this channel. */ 3 18 2 pad (10) bit (36) aligned, /* Pad to 15 fields */ 3 19 2 type_word aligned, 3 20 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 3 21 3 pad1 bit (4) unaligned, 3 22 3 n_fields fixed bin (4) unsigned unaligned; 3 23 /* number of fields used on card */ 3 24 3 25 dcl IPC_CARD_WORD char (4) aligned internal static options (constant) init ("ipc"); 3 26 dcl IPC_FIPS char (4) aligned internal static options (constant) init ("fips"); 3 27 3 28 /* END INCLUDE FILE ... config_ipc_card.incl.pl1 */ 2363 2364 4 1 /* BEGIN INCLUDE FILE ... config_mpc_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 4 2 4 3 dcl mpc_cardp ptr; /* Pointer to an MPC card. */ 4 4 4 5 dcl 1 mpc_card aligned based (mpc_cardp), 4 6 2 word char (4), /* "mpc" */ 4 7 2 name char (4), /* Name of this MPC - e.g., "mspa" */ 4 8 2 model fixed bin, /* Model of this MPC - e.g., 601. */ 4 9 2 port (4), /* Per port information. 12 fields total */ 4 10 3 iom fixed bin (3), /* IOM number */ 4 11 3 chan fixed bin (8), /* Channel number. */ 4 12 3 nchan fixed bin, /* Number of logical channels on this channel. */ 4 13 4 14 2 type_word aligned, 4 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 4 16 3 pad1 bit (4) unaligned, 4 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 4 18 4 19 dcl 1 mpc_card_array aligned based (mpc_cardp), /* Overlay for MPC port array */ 4 20 2 pad1 (3) bit (36) aligned, 4 21 2 port (divide (max (0, (mpc_card.n_fields - 2)), 3, 17, 0)), 4 22 3 iom fixed bin (3), /* IOM number */ 4 23 3 chan fixed bin (8), /* Channel number. */ 4 24 3 nchan fixed bin; /* Number of logical channels on this channel. */ 4 25 4 26 dcl MPC_CARD_WORD char (4) aligned internal static options (constant) init ("mpc"); 4 27 4 28 /* END INCLUDE FILE ... config_mpc_card.incl.pl1 */ 2365 2366 5 1 /* BEGIN INCLUDE FILE ... config_prph_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 5 2 5 3 dcl prph_cardp ptr; /* Pointer to a PRPH card. */ 5 4 5 5 dcl 1 prph_card based (prph_cardp) aligned, /* PRPH card declaration */ 5 6 2 word char (4), /* "prph" */ 5 7 2 name char (4), /* subsystem name */ 5 8 2 iom fixed bin (3), /* IOM number */ 5 9 2 chan fixed bin (8), /* channel number */ 5 10 2 model fixed bin, /* model number */ 5 11 2 state char (4), /* ON/OFF state */ 5 12 2 pad (9) bit (36) aligned, /* pad to 15 fields */ 5 13 5 14 2 type_word aligned, 5 15 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 5 16 3 pad1 bit (4) unaligned, 5 17 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 5 18 5 19 dcl PRPH_CARD_WORD char (4) aligned internal static options (constant) init ("prph"); 5 20 5 21 /* END INCLUDE FILE ... config_prph_card.incl.pl1 */ 2367 2368 6 1 /* BEGIN INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 6 2 6 3 dcl prph_tap_cardp ptr; /* Pointer to a PRPH TAPx card. */ 6 4 6 5 dcl 1 prph_tap_card based (prph_tap_cardp) aligned, /* PRPH TAPx card declaration */ 6 6 2 word char (4), /* "prph" */ 6 7 2 name char (4), /* "tapX" */ 6 8 2 iom fixed bin (3), /* IOM number */ 6 9 2 chan fixed bin (8), /* channel number */ 6 10 2 nchan fixed bin, /* number of channels */ 6 11 6 12 2 group (5), 6 13 3 model fixed bin, /* model number */ 6 14 3 ndrives fixed bin, /* number of drives */ 6 15 6 16 2 type_word aligned, 6 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 6 18 3 pad1 bit (4) unaligned, 6 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 6 20 6 21 dcl 1 prph_tap_card_array aligned based (prph_tap_cardp), /* Overlay for drive group array */ 6 22 2 pad1 (5) bit (36) aligned, 6 23 2 group (divide (max (0, (prph_tap_card.n_fields - 4)), 2, 17, 0)), 6 24 3 model fixed bin, /* model number */ 6 25 3 ndrives fixed bin; /* number of drives */ 6 26 6 27 /* END INCLUDE FILE ... config_prph_tap_card.incl.pl1 */ 2369 2370 7 1 /* BEGIN INCLUDE FILE ... config_prph_dsk_card.incl.pl1 ... 11/27/80 W. Olin Sibert */ 7 2 7 3 dcl prph_dsk_cardp ptr; /* Pointer to a PRPH DSKx card. */ 7 4 7 5 dcl 1 prph_dsk_card based (prph_dsk_cardp) aligned, /* PRPH DSKx card declaration */ 7 6 2 word char (4), /* "prph" */ 7 7 2 name char (4), /* "dskX" */ 7 8 2 iom fixed bin (3), /* IOM number */ 7 9 2 chan fixed bin (8), /* channel number */ 7 10 2 nchan fixed bin, /* number of channels */ 7 11 7 12 2 group (5), 7 13 3 model fixed bin, /* model number */ 7 14 3 ndrives fixed bin, /* number of drives */ 7 15 7 16 2 type_word aligned, 7 17 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 7 18 3 pad1 bit (4) unaligned, 7 19 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields used on card */ 7 20 7 21 dcl 1 prph_dsk_card_array aligned based (prph_dsk_cardp), /* Overlay for drive group array */ 7 22 2 pad1 (5) bit (36) aligned, 7 23 2 group (divide (max (0, (prph_dsk_card.n_fields - 4)), 2, 17, 0)), 7 24 3 model fixed bin, /* model number */ 7 25 3 ndrives fixed bin; /* number of drives */ 7 26 7 27 /* END INCLUDE FILE ... config_prph_dsk_card.incl.pl1 */ 2371 2372 2373 end analyze_detail_stat_; 2374 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/18/86 1310.3 analyze_detail_stat_.pl1 >spec>install>1125>analyze_detail_stat_.pl1 2359 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 2361 2 03/27/86 1119.9 analyze_det_stat_info.incl.pl1 >ldd>include>analyze_det_stat_info.incl.pl1 2363 3 03/27/86 1120.0 config_ipc_card.incl.pl1 >ldd>include>config_ipc_card.incl.pl1 2365 4 05/08/81 1853.6 config_mpc_card.incl.pl1 >ldd>include>config_mpc_card.incl.pl1 2367 5 10/31/84 1315.5 config_prph_card.incl.pl1 >ldd>include>config_prph_card.incl.pl1 2369 6 11/08/82 1005.8 config_prph_tap_card.incl.pl1 >ldd>include>config_prph_tap_card.incl.pl1 2371 7 05/08/81 1853.7 config_prph_dsk_card.incl.pl1 >ldd>include>config_prph_dsk_card.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. CA 3 001753 automatic fixed bin(17,0) level 2 in structure "a_disk_analysis" dcl 95 in procedure "analyze_detail_stat_" set ref 214* 356 373* 467* CA 6 based fixed bin(17,0) level 2 in structure "disk_analysis" dcl 2-41 in procedure "analyze_detail_stat_" set ref 356* CODE 005744 automatic char(2) initial unaligned dcl 1756 set ref 1756* 1800* 1801 DENSITY 032671 constant char(6) initial array unaligned dcl 528 ref 758 869 871 FRAME_DROP 005725 automatic char(18) initial unaligned dcl 1857 set ref 1857* 1912 1927 2041 IPC_CARD_WORD 041034 constant char(4) initial dcl 3-25 set ref 2347* IPC_FIPS 041033 constant char(4) initial dcl 3-26 ref 2349 MPC_CARD_WORD 041032 constant char(4) initial dcl 4-26 set ref 2336* NEW_LINE 053320 constant char(1) initial unaligned dcl 112 ref 379 937 1070 2204 PORT 4 001753 automatic fixed bin(17,0) level 2 in structure "a_disk_analysis" dcl 95 in procedure "analyze_detail_stat_" set ref 215* 357 373* 467* PORT 7 based fixed bin(17,0) level 2 in structure "disk_analysis" dcl 2-41 in procedure "analyze_detail_stat_" set ref 357* R_ACCESS_BIN constant fixed bin(5,0) initial dcl 1-36 ref 158 158 a_chan parameter fixed bin(8,0) dcl 2330 ref 2327 2339 2339 2350 2350 a_disk_analysis 001753 automatic structure level 1 unaligned dcl 95 a_iom parameter fixed bin(3,0) dcl 2329 ref 2327 2339 2350 a_is_interesting 000107 automatic bit(1) initial unaligned dcl 79 set ref 79* 134* 301* 313* 336* 353 380 478* 484* 505* 509 771* 777* 783* 800* 841* 851* 876* 882* 888* 902* 920 938 1033* 1040* 1052 1071 1274* 1342* 1354* 1361* 1369* 1375* 1381* 1395* 1452* 1462* 1467* 1474* 1481* 1488* 1495* 1501* 1507* 1513* 1520* 1527* 1534* 1540* 1546* 1552* 1560* 1568* 1575* 1582* 1589* 1596* 1603* 1618* 1625* 1636* 1646* 1653* 1687* 1694* 1701* 1713* 1727* 1734* 1741* 1791* 1817* 1827* 1835* 1842* 1956* 2078* 2085* 2092* 2100* 2138* 2145* 2178 2199 2205 2283* 2292* 2304* 2319 a_prt_analysis 003254 automatic structure level 1 unaligned dcl 101 a_rdr_pun_analysis 004327 automatic structure level 1 unaligned dcl 106 a_tape_analysis 000122 automatic structure level 1 unaligned dcl 85 addr builtin function dcl 114 ref 156 156 218 698 980 1120 1328 1329 1330 1331 1332 1333 1334 1335 1336 1438 1439 1440 1441 1442 1443 1444 1445 1677 1678 1679 1680 1681 1682 1770 1771 1772 1773 1774 1776 1777 1778 1779 1780 1794 1796 1798 1800 1800 1868 1944 anal 25 000122 automatic varying char(65) array level 2 dcl 85 set ref 1117* 1341* 1348* 1353* 1360* 1368* 1374* 1380* 1389* 1394* 1451* 1461* 1466* 1473* 1480* 1487* 1494* 1500* 1506* 1512* 1519* 1526* 1533* 1539* 1545* 1551* 1559* 1567* 1574* 1581* 1588* 1595* 1602* 1617* 1624* 1635* 1645* 1652* 1686* 1693* 1700* 1707* 1712* 1721* 1726* 1733* 1740* 1785* 1790* 1796* 1801* 1811* 1816* 1826* 1834* 1841* 1885* 1911* 1929* 1955* 1961* 1967* 1973* 1983* 1989* 1997* 2009* 2011* 2019* 2033* 2043* 2058* 2063* 2069* 2077* 2084* 2091* 2099* 2123* 2129* 2137* 2144* 2153* 2159* 2164* 2190 2201 2282* 2291* 2303* 2321* analyses 10 based varying char(40) array level 2 in structure "prt_analysis" dcl 2-52 in procedure "analyze_detail_stat_" set ref 925* 928* analyses 10 based varying char(50) array level 2 in structure "disk_analysis" dcl 2-41 in procedure "analyze_detail_stat_" set ref 362* 365* analyses 4 based varying char(40) array level 2 in structure "rdr_pun_analysis" dcl 2-60 in procedure "analyze_detail_stat_" set ref 1057* 1060* analyses 5 001753 automatic varying char(50) array level 2 in structure "a_disk_analysis" dcl 95 in procedure "analyze_detail_stat_" set ref 216* 300* 309* 312* 335* 362 375 477* 483* 489* 491* 493* 494* 495* 496* 497* 498* 499* 500* 502 514* analyses 5 003254 automatic varying char(40) array level 2 in structure "a_prt_analysis" dcl 101 in procedure "analyze_detail_stat_" set ref 696* 770* 776* 782* 799* 814* 827* 840* 850* 858* 875* 881* 887* 897* 901* 925 934 analyses 30 based varying char(65) array level 2 in structure "tape_analysis" dcl 2-24 in procedure "analyze_detail_stat_" set ref 2190* 2193* analyses 2 004327 automatic varying char(40) array level 2 in structure "a_rdr_pun_analysis" dcl 106 in procedure "analyze_detail_stat_" set ref 978* 1032* 1039* 1057 1067 analyze_det_stat_info_version_1 constant fixed bin(17,0) initial dcl 2-15 ref 916 1050 analyze_det_stat_info_version_2 constant fixed bin(17,0) initial dcl 2-16 ref 350 2176 anlzd 000112 automatic fixed bin(17,0) dcl 81 set ref 217* 235* 299* 299 300 308* 308 309 311* 311 312 334* 334 335 343 351 476* 476 477 482* 482 483 489 491 493 494 495 496 497 498 499 500 502 504* 504 505 513* 513 514 697* 725* 769* 769 770 775* 775 776 781* 781 782 798* 798 799 813* 813 814 826* 826 827 839* 839 840 849* 849 850 857* 857 858 874* 874 875 880* 880 881 886* 886 887 895* 895 897 901 910 917 979* 1000* 1031* 1031 1032 1038* 1038 1039 1043 1051 1119* 1145* 1191* 1327* 1340* 1340 1341 1347* 1347 1348 1352* 1352 1353 1359* 1359 1360 1367* 1367 1368 1373* 1373 1374 1379* 1379 1380 1388* 1388 1389 1393* 1393 1394 1437* 1450* 1450 1451 1459* 1459 1461 1466 1472* 1472 1473 1479* 1479 1480 1486* 1486 1487 1493* 1493 1494 1499* 1499 1500 1505* 1505 1506 1511* 1511 1512 1518* 1518 1519 1525* 1525 1526 1532* 1532 1533 1538* 1538 1539 1544* 1544 1545 1550* 1550 1551 1558* 1558 1559 1566* 1566 1567 1573* 1573 1574 1580* 1580 1581 1587* 1587 1588 1594* 1594 1595 1601* 1601 1602 1616* 1616 1617 1623* 1623 1624 1634* 1634 1635 1644* 1644 1645 1651* 1651 1652 1676* 1685* 1685 1686 1692* 1692 1693 1699* 1699 1700 1706* 1706 1707 1711* 1711 1712 1720* 1720 1721 1725* 1725 1726 1732* 1732 1733 1739* 1739 1740 1769* 1784* 1784 1785 1789* 1789 1790 1795* 1795 1796 1799* 1799 1801 1810* 1810 1811 1815* 1815 1816 1825* 1825 1826 1833* 1833 1834 1840* 1840 1841 1859* 1884* 1884 1885 1910* 1910 1911 1928* 1928 1929 1948* 1954* 1954 1955 1960* 1960 1961 1966* 1966 1967 1972* 1972 1973 1982* 1982 1983 1988* 1988 1989 1996* 1996 1997 2008* 2008 2009 2011 2018* 2018 2019 2032* 2032 2033 2042* 2042 2043 2057* 2057 2058 2062* 2062 2063 2068* 2068 2069 2076* 2076 2077 2083* 2083 2084 2090* 2090 2091 2098* 2098 2099 2122* 2122 2123 2128* 2128 2129 2136* 2136 2137 2143* 2143 2144 2152* 2152 2153 2158* 2158 2159 2163* 2163 2164 2170 2177 2281* 2281 2282 2290* 2290 2291 2302* 2302 2303 2320* 2320 2321 att_sw 005706 automatic bit(1) initial unaligned dcl 1092 set ref 1092* 1153* 1157* 1162* 1261 auto_analp parameter pointer dcl 39 set ref 12 117* 349* 915* 1049* 2175* bin builtin function dcl 114 ref 485 486 893 1796 bit builtin function dcl 114 ref 158 158 158 board_code 020167 constant char(9) initial array unaligned dcl 971 ref 1039 bool builtin function dcl 114 ref 1881 bysc 005651 automatic fixed bin(17,0) dcl 530 set ref 815* 828* 840 850 chan 3 based fixed bin(8,0) level 2 in structure "prph_tap_card" dcl 6-5 in procedure "analyze_detail_stat_" set ref 1133* chan 3 based fixed bin(8,0) level 2 in structure "ipc_card" dcl 3-12 in procedure "analyze_detail_stat_" ref 2350 2350 chan 4 based fixed bin(8,0) array level 3 in structure "mpc_card" dcl 4-5 in procedure "analyze_detail_stat_" ref 2339 2339 chan 3 based fixed bin(8,0) level 2 in structure "prph_dsk_card" dcl 7-5 in procedure "analyze_detail_stat_" set ref 252* char builtin function dcl 114 ref 319 756 867 1022 1253 2239 cmts 005710 automatic bit(1) initial unaligned dcl 1092 set ref 1092* code parameter fixed bin(35,0) dcl 39 set ref 12 121 127 132* 143* 148* 156* 157 159* 179* 220* 236* 248* 276* 726* 735* 946* 1001* 1010* 1081* 1130* 1147* 1192* 1272* 2235* col_trans_136 027211 constant varying char(35) initial array dcl 549 ref 840 col_trans_160 024111 constant varying char(35) initial array dcl 600 ref 850 config_$find 000036 constant entry external dcl 60 ref 2336 2347 config_$find_periph 000040 constant entry external dcl 61 ref 246 733 1008 1128 config_deck$ 000010 external static fixed bin(17,0) dcl 49 set ref 156 156 curr_dens 005724 automatic char(2) initial unaligned dcl 1109 set ref 1109* 1205* 1209* 1214* 1866 1951 2005 2133 2150 curr_mode 005716 automatic char(1) initial unaligned dcl 1105 set ref 1105* 1220* 1226* 1232* 1872 1978 1994 2009 2015 2030 cv_dec_check_ 000032 constant entry external dcl 58 ref 220 2235 da_alert 005707 automatic bit(1) initial unaligned dcl 1092 set ref 1092* 1166* 1172* 1181* 1185* 1263 dbie_array 10 000122 automatic fixed bin(17,0) array level 2 in structure "a_tape_analysis" dcl 85 in procedure "analyze_detail_stat_" set ref 1116* 1892* 1899* 1919* 1936* 2050* 2184 2315* dbie_array 13 based fixed bin(17,0) array level 2 in structure "tape_analysis" dcl 2-24 in procedure "analyze_detail_stat_" set ref 2184* density 3 003254 automatic char(6) level 2 in structure "a_prt_analysis" packed unaligned dcl 101 in procedure "analyze_detail_stat_" set ref 695* 758* 869* 871* 919 density 6 based char(6) level 2 in structure "prt_analysis" packed unaligned dcl 2-52 in procedure "analyze_detail_stat_" set ref 919* density 21 000122 automatic fixed bin(17,0) level 3 in structure "a_tape_analysis" dcl 85 in procedure "analyze_detail_stat_" set ref 1113* 1204* 1210* 1215* 2185 2245* 2246* 2247* density 24 based fixed bin(17,0) level 3 in structure "tape_analysis" dcl 2-24 in procedure "analyze_detail_stat_" set ref 2185* det_stats parameter bit unaligned dcl 39 set ref 12 121 127 147 214 215 285 286 287 288 289 290 291 292 293 294 306 306 322 323 324 325 326 327 328 329 468 469 470 471 472 485 486 489 510 753 758 758 758 768 774 780 786 788 789 790 791 792 793 794 807 809 815 816 820 823 828 829 834 845 869 873 879 885 892 893 905 1023 1024 1025 1026 1027 1037 1037 1039 1199 1203 1208 1219 1225 1231 1237 1241 1245 1249 1256 1328 1329 1330 1331 1332 1333 1334 1335 1336 1438 1439 1440 1441 1442 1443 1444 1445 1677 1678 1679 1680 1681 1682 1770 1771 1772 1773 1774 1776 1777 1778 1779 1780 1794 1796 1798 1800 1800 1868 1944 2243 2244 2249 2250 2251 2252 2253 2254 2256 2257 2258 2259 2260 2261 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2297 2308 2308 2308 2310 2319 2321 2321 dev_model 005613 automatic fixed bin(17,0) dcl 190 set ref 244* 255 257* 266 266 270 270 319 464 dev_name parameter char unaligned dcl 39 ref 12 121 127 164 dev_no 005612 automatic fixed bin(35,0) dcl 189 in procedure "anal_disk_" set ref 220* 257 257 dev_no 005754 automatic fixed bin(17,0) dcl 2214 in procedure "anal_fips_tape_" set ref 2235* 2239 dev_no_idx 005755 automatic fixed bin(17,0) dcl 2214 set ref 2236* 2238* 2238 2239 dev_no_index 005614 automatic fixed bin(17,0) dcl 191 set ref 244* 256* 256 257 257 dev_type 005713 automatic fixed bin(17,0) initial dcl 1094 set ref 1094* 1197* 1237* 1241* 1245* 1249* 1253 1253 1261 disk_analp 005564 automatic pointer dcl 2-20 set ref 348* 349 350 351 352 353 354 355 356 357 362 365 disk_analysis based structure level 1 unaligned dcl 2-41 disk_analysis_version based fixed bin(17,0) level 2 dcl 2-41 set ref 350* dsk_model 001753 automatic varying char(7) level 2 in structure "a_disk_analysis" dcl 95 in procedure "analyze_detail_stat_" set ref 213* 279* 319* 352 464* 466* dsk_model 3 based varying char(7) level 2 in structure "disk_analysis" dcl 2-41 in procedure "analyze_detail_stat_" set ref 352* ec_sc_bit 005652 automatic bit(10) initial unaligned dcl 531 set ref 531* 816* 829* 838 848 error_table_$bad_arg 000026 external static fixed bin(35,0) dcl 56 ref 143 148 error_table_$no_r_permission 000016 external static fixed bin(35,0) dcl 52 ref 159 error_table_$request_not_recognized 000030 external static fixed bin(35,0) dcl 57 ref 236 726 1001 1147 1192 error_table_$resource_type_inappropriate 000022 external static fixed bin(35,0) dcl 54 ref 179 276 1272 error_table_$resource_unknown 000020 external static fixed bin(35,0) dcl 53 ref 248 735 1010 1130 error_table_$unimplemented_version 000024 external static fixed bin(35,0) dcl 55 ref 946 1081 ext_ptr 005714 automatic pointer dcl 1104 set ref 1868* 1875 1875 1880 1880 1905 1905 1944* 1953 1959 1965 1971 1981 1987 1995 2007 2017 2027 2037 2037 2056 2061 2067 2075 2082 2089 2097 2121 2127 2135 2142 2151 2157 2162 ext_stats based bit(8) array unaligned dcl 1103 ref 1875 1875 1880 1880 1905 1905 1953 1959 1965 1971 1981 1987 1995 2007 2017 2027 2037 2037 2056 2061 2067 2075 2082 2089 2097 2121 2127 2135 2142 2151 2157 2162 fdmask7 005723 automatic bit(9) initial unaligned dcl 1108 set ref 1108* 1909 fdmask9 005722 automatic bit(9) initial unaligned dcl 1107 set ref 1107* 1926 2040 fips_controller 000110 automatic bit(1) unaligned dcl 80 in procedure "analyze_detail_stat_" set ref 257 261 354 371 1136 2179 2332* 2352* fips_controller 2(01) based bit(1) level 2 in structure "disk_analysis" packed unaligned dcl 2-41 in procedure "analyze_detail_stat_" set ref 354* fips_controller 2(01) based bit(1) level 2 in structure "tape_analysis" packed unaligned dcl 2-24 in procedure "analyze_detail_stat_" set ref 2179* fixed builtin function dcl 114 ref 214 215 709 709 758 758 758 807 809 815 820 823 828 985 1037 1037 1039 1172 1172 1172 1172 1172 1172 1181 1607 format_0_type1_tbl 036634 constant varying char(50) initial array dcl 398 ref 489 format_0_type2_tbl 036274 constant varying char(50) initial array dcl 404 ref 491 format_1_tbl 035734 constant varying char(50) initial array dcl 408 ref 493 format_2_tbl 035374 constant varying char(50) initial array dcl 416 ref 494 format_3_tbl 035034 constant varying char(50) initial array dcl 421 ref 495 format_4_tbl 034474 constant varying char(50) initial array dcl 426 ref 496 format_5_tbl 034134 constant varying char(50) initial array dcl 436 ref 497 format_6_tbl 033574 constant varying char(50) initial array dcl 443 ref 498 format_7_tbl 033234 constant varying char(50) initial array dcl 448 ref 499 format_8_tbl 032674 constant varying char(50) initial array dcl 457 ref 500 format_type 005632 automatic fixed bin(17,0) dcl 389 set ref 485* 488 493 494 495 496 497 498 499 500 509 509 ft_can_run_6250 005757 automatic bit(1) initial unaligned dcl 2215 set ref 2215* 2244* 2246 ft_data_err_bits 005762 automatic bit(23) initial unaligned dcl 2218 set ref 2218* 2263* 2264* 2265* 2266* 2267* 2268* 2269* 2270* 2271* 2272* 2273* 2274* 2275* 2276* 2296 2301 ft_data_table 013717 constant varying char(65) initial array dcl 2228 ref 2303 ft_general_err_bits 005760 automatic bit(8) initial unaligned dcl 2216 set ref 2216* 2249* 2250* 2251* 2252* 2253* 2254* 2278 2280 ft_general_table 015017 constant varying char(65) initial array dcl 2220 ref 2282 ft_in_pe 005756 automatic bit(1) initial unaligned dcl 2215 set ref 2215* 2243* 2245 2308 2310 ft_unit_err_bits 005761 automatic bit(9) initial unaligned dcl 2217 set ref 2217* 2256* 2257* 2258* 2259* 2260* 2261* 2287 2289 ft_unit_table 014555 constant varying char(65) initial array dcl 2224 ref 2291 group 5 based structure array level 2 in structure "prph_dsk_card" dcl 7-5 in procedure "analyze_detail_stat_" group 5 based structure array level 2 in structure "prph_tap_card" dcl 6-5 in procedure "analyze_detail_stat_" hbound builtin function dcl 114 ref 1029 2338 hcs_$fs_get_mode 000012 constant entry external dcl 50 ref 156 hcs_$make_seg 000014 constant entry external dcl 51 ref 348 914 1047 2174 i 000102 automatic fixed bin(17,0) dcl 77 set ref 297* 298 300* 332* 333 335* 474* 475 477* 796* 797 799* 834* 838 840* 845* 848 850* 893* 894 897 897 1029* 1030 1032* 1338* 1339 1341* 1350* 1351 1353* 1391* 1392 1394* 1448* 1449 1451* 1470* 1471 1473* 1709* 1710 1712* 1723* 1724 1726* 1787* 1788 1790* 1813* 1814 1816* 1823* 1824 1826* 2278* 2280 2282* 2287* 2289 2291* 2300* 2301 2303* 2338* 2338* 2339 2339 2339 2339* int_status 005742 automatic bit(19) unaligned dcl 1667 in begin block on line 1664 set ref 1677* 1678* 1679* 1680* 1681* 1682* 1684 1691 1698 1705 1710 1719 1724 1731 1738 int_status 005743 automatic bit(18) unaligned dcl 1755 in begin block on line 1751 set ref 1770* 1771* 1772* 1773* 1774* 1776* 1777* 1778* 1779* 1780* 1783 1788 1809 1814 1824 1832 1839 int_status 005736 automatic bit(47) unaligned dcl 1281 in begin block on line 1277 set ref 1328* 1329* 1330* 1331* 1332* 1333* 1334* 1335* 1336* 1339 1346 1351 1358 1366 1372 1378 1387 1392 int_status 005740 automatic bit(24) unaligned dcl 1409 in begin block on line 1405 set ref 1438* 1439* 1440* 1441* 1442* 1443* 1444* 1445* 1449 1456 1456 1460 1465 1471 1478 1485 1492 1498 1504 1510 1517 1524 1531 1537 1543 1549 1556 1556 1564 1564 1572 1579 1586 1593 1600 1607 1607 1614 1622 1632 1642 1650 ioa_$rsnnl 000034 constant entry external dcl 59 ref 373 514 1800 2321 iom 3 based fixed bin(3,0) array level 3 in structure "mpc_card" dcl 4-5 in procedure "analyze_detail_stat_" ref 2338 2339 iom 2 based fixed bin(3,0) level 2 in structure "prph_tap_card" dcl 6-5 in procedure "analyze_detail_stat_" set ref 1133* iom 2 based fixed bin(3,0) level 2 in structure "ipc_card" dcl 3-12 in procedure "analyze_detail_stat_" ref 2350 iom 2 based fixed bin(3,0) level 2 in structure "prph_dsk_card" dcl 7-5 in procedure "analyze_detail_stat_" set ref 252* iom_stats parameter bit(36) dcl 39 set ref 12 121 127 142 218 698 980 1120 ipc_card based structure level 1 dcl 3-12 ipc_cardp 005570 automatic pointer dcl 3-10 set ref 253 1134 2333* 2347* 2348 2349 2350 2350 2350 2350 is_interesting parameter bit(1) unaligned dcl 39 set ref 121 127 137* 380* 382* 938* 940* 1071* 1073* 1267* 2205* 2207* is_interesting_disk 2 based bit(1) level 2 packed unaligned dcl 2-41 set ref 353* is_interesting_prt 2 based bit(1) level 2 packed unaligned dcl 2-52 set ref 920* is_interesting_rdr_pun 2 based bit(1) level 2 packed unaligned dcl 2-60 set ref 1052* is_interesting_tape 2 based bit(1) level 2 packed unaligned dcl 2-24 set ref 2178* j 000103 automatic fixed bin(17,0) dcl 77 set ref 255* 256 257* 360* 362 362* 374* 375* 923* 925 925* 933* 934* 1055* 1057 1057* 1066* 1067* 1887* 1890 1891 1891 1892* 1896* 1897 1898 1898 1899* 1916* 1917 1918 1918 1919* 1933* 1934 1935 1935 1936* 2047* 2048 2049 2049 2050* 2096* 2097 2099* 2188* 2190 2190* 2199* 2201* 2237* 2238 2239* 2312* 2313 2314 2314 2315* ltrim builtin function dcl 114 ref 319 756 867 1022 1253 2239 message parameter varying char(256) dcl 39 set ref 121 127 138* 375* 375 377* 377 378 379* 379 934* 934 936 937* 937 1067* 1067 1069 1070* 1070 1266* 2201* 2201 2203 2204* 2204 message_no 005633 automatic fixed bin(17,0) dcl 389 set ref 486* 489 491 493 494 495 496 497 498 499 500 mode 000113 automatic fixed bin(5,0) dcl 82 set ref 156* 158 model 2 based fixed bin(17,0) level 2 in structure "mpc_card" dcl 4-5 in procedure "analyze_detail_stat_" ref 1141 model 5 based fixed bin(17,0) array level 3 in structure "prph_dsk_card" dcl 7-5 in procedure "analyze_detail_stat_" ref 257 model 5 based fixed bin(17,0) array level 3 in structure "prph_tap_card" dcl 6-5 in procedure "analyze_detail_stat_" ref 2239 model 4 based fixed bin(17,0) level 2 in structure "prph_card" dcl 5-5 in procedure "analyze_detail_stat_" ref 738 1013 modes 21 000122 automatic structure level 2 in structure "a_tape_analysis" unaligned dcl 85 in procedure "analyze_detail_stat_" modes 24 based structure level 2 in structure "tape_analysis" unaligned dcl 2-24 in procedure "analyze_detail_stat_" mpc_card based structure level 1 dcl 4-5 mpc_cardp 005572 automatic pointer dcl 4-3 set ref 253 1134 1141 2334* 2336* 2337 2338 2338 2339 2339 2339 2339 mpc_model 005712 automatic fixed bin(17,0) initial dcl 1093 set ref 1093* 1121* 1141* 1365 1862 2005 2027 2053 2119 msg_indx 005650 automatic fixed bin(17,0) dcl 530 set ref 809* 811 811* 814 823* 824 824* 827 mth_model 3 based char(8) level 2 in structure "tape_analysis" packed unaligned dcl 2-24 in procedure "analyze_detail_stat_" set ref 2181* mth_model 000122 automatic char(8) level 2 in structure "a_tape_analysis" packed unaligned dcl 85 in procedure "analyze_detail_stat_" set ref 1112* 1253* 2181 2237 2239* name 000104 automatic varying char(7) dcl 78 set ref 164* 166 168 170 172 174 220 220 246 246 733 733 1008 1014 1128 1128 2235 2235 nchan 4 based fixed bin(17,0) level 2 in structure "ipc_card" dcl 3-12 in procedure "analyze_detail_stat_" ref 2350 nchan 5 based fixed bin(17,0) array level 3 in structure "mpc_card" dcl 4-5 in procedure "analyze_detail_stat_" ref 2339 ndrives 6 based fixed bin(17,0) array level 3 in structure "prph_dsk_card" dcl 7-5 in procedure "analyze_detail_stat_" ref 256 ndrives 6 based fixed bin(17,0) array level 3 in structure "prph_tap_card" dcl 6-5 in procedure "analyze_detail_stat_" ref 2238 null builtin function dcl 114 ref 117 245 247 253 253 732 734 1007 1009 1127 1129 1134 1134 2333 2334 2337 2348 num_analyzed 1 based fixed bin(17,0) level 2 in structure "rdr_pun_analysis" dcl 2-60 in procedure "analyze_detail_stat_" set ref 1051* 1060 num_analyzed 1 based fixed bin(17,0) level 2 in structure "tape_analysis" dcl 2-24 in procedure "analyze_detail_stat_" set ref 2177* 2193 num_analyzed 1 based fixed bin(17,0) level 2 in structure "prt_analysis" dcl 2-52 in procedure "analyze_detail_stat_" set ref 917* 928 num_analyzed 1 based fixed bin(17,0) level 2 in structure "disk_analysis" dcl 2-41 in procedure "analyze_detail_stat_" set ref 351* 365 num_tracks 2 000122 automatic fixed bin(17,0) level 2 in structure "a_tape_analysis" dcl 85 in procedure "analyze_detail_stat_" set ref 1118* 1257* 1259* 2182 2234* num_tracks 5 based fixed bin(17,0) level 2 in structure "tape_analysis" dcl 2-24 in procedure "analyze_detail_stat_" set ref 2182* number_analyzed 000111 automatic fixed bin(17,0) dcl 81 set ref 132* 343* 360 360 374 910* 923 923 933 1043* 1055 1055 1066 2170* 2188 2188 2199 operation 25 based varying char(7) level 3 in structure "tape_analysis" dcl 2-24 in procedure "analyze_detail_stat_" set ref 2186* operation 22 000122 automatic varying char(6) level 3 in structure "a_tape_analysis" dcl 85 in procedure "analyze_detail_stat_" set ref 1114* 1221* 1227* 1233* 2186 2297* 2299* pad 2(02) based bit(34) level 2 in structure "tape_analysis" packed unaligned dcl 2-24 in procedure "analyze_detail_stat_" set ref 2180* pad 2(02) based bit(34) level 2 in structure "disk_analysis" packed unaligned dcl 2-41 in procedure "analyze_detail_stat_" set ref 355* port 3 based structure array level 2 dcl 4-5 ref 2338 pr54_byte12 021171 constant varying char(60) initial array dcl 657 ref 897 pr71_index 005653 automatic fixed bin(17,0) dcl 532 set ref 755* 764* 796 prph_card based structure level 1 dcl 5-5 prph_cardp 005574 automatic pointer dcl 5-3 set ref 732* 733* 734 738 1007* 1008* 1009 1013 prph_dsk_card based structure level 1 dcl 7-5 prph_dsk_cardp 005600 automatic pointer dcl 7-3 set ref 245* 246* 247 252 252 256 257 prph_tap_card based structure level 1 dcl 6-5 prph_tap_cardp 005576 automatic pointer dcl 6-3 set ref 1127* 1128* 1129 1133 1133 2238 2239 prt_analp 005562 automatic pointer dcl 2-19 set ref 914* 915 916 917 918 919 920 925 928 prt_analysis based structure level 1 unaligned dcl 2-52 prt_analysis_version based fixed bin(17,0) level 2 dcl 2-52 set ref 916* prt_model 003254 automatic varying char(7) level 2 in structure "a_prt_analysis" dcl 101 in procedure "analyze_detail_stat_" set ref 694* 756* 867* 918 prt_model 3 based varying char(7) level 2 in structure "prt_analysis" dcl 2-52 in procedure "analyze_detail_stat_" set ref 918* ptr_model 005644 automatic fixed bin(17,0) dcl 527 set ref 738* 740 740 744 744 744 756 867 raw_status based bit(208) unaligned dcl 1754 in begin block on line 1751 ref 1770 1771 1772 1773 1774 1776 1777 1778 1779 1780 1794 1796 1798 1800 1800 raw_status based bit(208) unaligned dcl 1408 in begin block on line 1405 ref 1438 1439 1440 1441 1442 1443 1444 1445 raw_status based bit(208) unaligned dcl 1666 in begin block on line 1664 ref 1677 1678 1679 1680 1681 1682 raw_status based bit(208) unaligned dcl 1280 in begin block on line 1277 ref 1328 1329 1330 1331 1332 1333 1334 1335 1336 rc_misc_reg 020033 constant varying char(25) initial array dcl 1852 ref 2099 rdr_pun 005666 automatic char(3) initial unaligned dcl 955 set ref 955* 1014* 1016* 1022 rdr_pun_analp 005566 automatic pointer dcl 2-21 set ref 1047* 1049 1050 1051 1052 1053 1057 1060 rdr_pun_analysis based structure level 1 unaligned dcl 2-60 rdr_pun_analysis_version based fixed bin(17,0) level 2 dcl 2-60 set ref 1050* rdr_pun_model 004327 automatic char(6) level 2 in structure "a_rdr_pun_analysis" packed unaligned dcl 106 in procedure "analyze_detail_stat_" set ref 977* 1022* 1053 rdr_pun_model 2(09) based char(6) level 2 in structure "rdr_pun_analysis" packed unaligned dcl 2-60 in procedure "analyze_detail_stat_" set ref 1053* rdr_pun_model 005667 automatic fixed bin(17,0) dcl 956 in procedure "anal_rdr_pun" set ref 1013* 1018 1018 1022 rdr_pun_trans_table 020205 constant varying char(34) initial array dcl 957 ref 1029 1032 ret_str 000114 automatic varying char(20) initial dcl 83 set ref 83* 371* 373* 377 rs_sw 005555 automatic bit(1) initial unaligned dcl 110 set ref 110* 130* 136 347 370 379 913 932 937 1046 1065 1070 1265 2173 2198 2204 rsnnl_sw 005556 automatic bit(1) initial unaligned dcl 110 set ref 110* 124* 136 347 370 913 932 1046 1065 1265 2173 2198 rtrim builtin function dcl 114 ref 1253 stat_maj 0(02) based bit(4) level 2 packed unaligned dcl 63 ref 226 226 226 226 226 306 705 708 709 714 717 762 985 989 991 993 1143 1153 1157 1162 1166 1172 1181 1185 stat_min 0(06) based bit(6) level 2 packed unaligned dcl 63 ref 709 709 762 985 1143 1153 1157 1157 1162 1166 1166 1166 1172 1172 1172 1172 1172 1172 1181 1185 statp 000100 automatic pointer dcl 75 set ref 218* 226 226 226 226 226 306 698* 705 708 709 709 709 714 717 762 762 980* 985 985 989 991 993 1120* 1143 1143 1153 1153 1157 1157 1157 1162 1162 1166 1166 1166 1166 1172 1172 1172 1172 1172 1172 1172 1181 1181 1185 1185 status based structure level 1 dcl 63 str1 005717 automatic bit(9) unaligned dcl 1106 set ref 1875* 1881 1905* 1909 1917 1926 1934 2037* 2040 2048 2308* 2313 str2 005720 automatic bit(9) unaligned dcl 1106 set ref 1880* 1881 str3 005721 automatic bit(9) unaligned dcl 1106 set ref 1881* 1882 1890 1897 sub_test1 015237 constant varying char(21) initial array dcl 1764 ref 1796 substr builtin function dcl 114 set ref 166 168 170 172 174 214 215 220 220 246 246 285* 285 286* 286 287* 287 288* 288 289* 289 290* 290 291* 291 292* 292 293* 293 294* 294 298 306 306 322* 322 323* 323 324* 324 325* 325 326* 326 327* 327 328* 328 329* 329 333 468* 468 469* 469 470* 470 471* 471 472* 472 475 485 486 489 510 733 733 753 758 758 758 768 774 780 786* 786 788* 788 789* 789 790* 790 791* 791 792* 792 793* 793 794* 794 797 807 809 815 816 820 823 828 829 834 838 845 848 869 873 879 885 892 893 905 1014 1023* 1023 1024* 1024 1025* 1025 1026* 1026 1027* 1027 1030 1037 1037 1039 1128 1128 1143 1157 1157 1162 1166 1166 1166 1185 1199 1203 1208 1219 1225 1231 1237 1241 1245 1249 1256 1328* 1328 1329* 1329 1330* 1330 1331* 1331 1332* 1332 1333* 1333 1334* 1334 1335* 1335 1336* 1336 1339 1346 1351 1358 1366 1372 1378 1387 1392 1438* 1438 1439* 1439 1440* 1440 1441* 1441 1442* 1442 1443* 1443 1444* 1444 1445* 1445 1449 1456 1456 1460 1465 1471 1478 1485 1492 1498 1504 1510 1517 1524 1531 1537 1543 1549 1556 1556 1564 1564 1572 1579 1586 1593 1600 1607 1607 1614 1622 1632 1642 1650 1677* 1677 1678* 1678 1679* 1679 1680* 1680 1681* 1681 1682* 1682 1684 1691 1698 1705 1710 1719 1724 1731 1738 1770* 1770 1771* 1771 1772* 1772 1773* 1773 1774* 1774 1776* 1776 1777* 1777 1778* 1778 1779* 1779 1780* 1780 1783 1788 1794 1796 1798 1800 1800 1809 1814 1824 1832 1839 1875 1875 1880 1880 1890 1891* 1897 1898* 1905 1905 1917 1918* 1934 1935* 1953 1959 1965 1971 1981 1987 1995 2007 2017 2027 2037 2037 2048 2049* 2056 2061 2067 2075 2082 2089 2097 2121 2127 2135 2142 2151 2157 2162 2235 2235 2243 2244 2249* 2249 2250* 2250 2251* 2251 2252* 2252 2253* 2253 2254* 2254 2256* 2256 2257* 2257 2258* 2258 2259* 2259 2260* 2260 2261* 2261 2263* 2263 2264* 2264 2265* 2265 2266* 2266 2267* 2267 2268* 2268 2269* 2269 2270* 2270 2271* 2271 2272* 2272 2273* 2273 2274* 2274 2275* 2275 2276* 2276 2280 2289 2297 2301 2308 2308 2308 2310 2313 2314* 2319 2321 2321 symptom_code 005634 automatic bit(16) unaligned dcl 390 set ref 510* 512 514* tape_analp 005560 automatic pointer dcl 2-18 set ref 2174* 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2190 2193 tape_analysis based structure level 1 unaligned dcl 2-24 tape_analysis_version based fixed bin(17,0) level 2 dcl 2-24 set ref 2176* temp_dsk_det_stats 005616 automatic bit(47) initial unaligned dcl 192 set ref 192* 219* 285* 286* 287* 288* 289* 290* 291* 292* 293* 294* 298 322* 323* 324* 325* 326* 327* 328* 329* 333 468* 469* 470* 471* 472* 475 temp_prt_det_stat 005646 automatic bit(44) initial unaligned dcl 529 set ref 529* 786* 788* 789* 790* 791* 792* 793* 794* 797 temp_rdr_pun_dtstat 005670 automatic bit(72) unaligned dcl 974 set ref 1023* 1024* 1025* 1026* 1027* 1030 tks 005704 automatic fixed bin(17,0) initial dcl 1091 set ref 1091* 1256* 1257 1887 1908 tracks_in_error 6 based char(18) level 2 packed unaligned dcl 2-24 set ref 2183* tracks_v 005711 automatic bit(1) initial unaligned dcl 1092 set ref 1092* trans_table_dsu451 040241 constant varying char(45) initial array dcl 194 ref 300 trans_table_dsu5xx 037534 constant varying char(45) initial array dcl 204 ref 335 trans_table_mth500 017105 constant varying char(35) initial array dcl 1284 ref 1341 1348 1353 1360 1368 1374 1380 1389 1394 trans_table_mth600 016277 constant varying char(35) initial array dcl 1410 ref 1451 1461 1466 1473 1480 1487 1494 1500 1506 1512 1519 1526 1533 1539 1545 1551 1559 1567 1574 1581 1588 1595 1602 1617 1624 1635 1645 1652 trans_table_mth610 015551 constant varying char(65) initial array dcl 1668 ref 1686 1693 1700 1707 1712 1721 1726 1733 1740 trans_table_mth640 015320 constant varying char(31) initial array dcl 1757 ref 1785 1790 1811 1816 1826 1834 1841 trans_table_prt 032051 constant varying char(36) initial array dcl 535 ref 799 814 827 trans_tbl 037174 constant varying char(50) initial array dcl 391 ref 477 trk7_idx 020133 constant fixed bin(17,0) initial array dcl 1101 ref 1891 1918 trk7_tbl 020155 constant char(2) initial array unaligned dcl 1097 ref 1891 1918 trk9_idx 020144 constant fixed bin(17,0) initial array dcl 1099 ref 1898 1935 2049 2314 trk9_tbl 020162 constant char(2) initial array unaligned dcl 1095 ref 1898 1935 2049 2314 trks_in_err 3 000122 automatic char(18) level 2 packed unaligned dcl 85 set ref 1115* 1891* 1898* 1912* 1918* 1927* 1935* 2041* 2049* 2183 2310* 2314* type 1 based char(4) level 2 dcl 3-12 ref 2349 valid 005705 automatic bit(1) initial unaligned dcl 1092 set ref 1092* x 005741 automatic fixed bin(17,0) dcl 1435 set ref 1607* 1609 1609 xcode 005557 automatic fixed bin(35,0) dcl 111 set ref 348* 914* 1047* 2174* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 PRPH_CARD_WORD internal static char(4) initial dcl 5-19 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 mpc_card_array based structure level 1 dcl 4-19 prph_dsk_card_array based structure level 1 dcl 7-21 prph_tap_card_array based structure level 1 dcl 6-21 NAMES DECLARED BY EXPLICIT CONTEXT. START 041614 constant label dcl 132 ref 118 125 STDBY 045666 constant label dcl 1145 ref 1199 anal_disk_ 041760 constant entry internal dcl 186 ref 168 anal_ec_sc 044166 constant label dcl 834 ref 817 830 anal_fips_disk_ 043016 constant entry internal dcl 386 ref 262 anal_fips_tape_ 052366 constant entry internal dcl 2211 ref 1137 anal_prt_ 043447 constant entry internal dcl 524 ref 170 anal_rdr_pun 044760 constant entry internal dcl 952 ref 172 174 anal_tape_ 045512 constant entry internal dcl 1088 ref 166 analyze_detail_stat_ 041477 constant entry external dcl 12 analyze_detail_stat_$rs 041566 constant entry external dcl 127 analyze_detail_stat_$rsnnl 041535 constant entry external dcl 121 check_for_fips 053250 constant label dcl 2345 ref 2337 check_pr71_fault 043767 constant label dcl 786 ref 765 ck_skew 051266 constant label dcl 1978 ref 1962 1968 data_alert 050676 constant label dcl 1852 ref 1263 decode_tkie 051463 constant label dcl 2037 ref 1984 1990 1998 2015 2020 2030 2034 dev_model 000000 constant label array(0:640) dcl 1272 ref 1261 do_PR54 044314 constant label dcl 867 ref 744 753 do_PR71 043601 constant label dcl 753 ref 740 end_attn 050675 constant label dcl 1848 end_mth600_attn 047733 constant label dcl 1657 end_mth610_attn 050247 constant label dcl 1745 ref 1716 end_mth640_attn 050675 constant label dcl 1846 ref 1805 end_tkie_sum 051546 constant label dcl 2053 ref 1903 1913 1930 1941 2044 fill_dsk_struct 042512 constant label dcl 343 ref 263 317 340 fill_prt_struct 044535 constant label dcl 910 ref 820 861 894 905 fill_rdr_pun_struct 045270 constant label dcl 1043 fill_struct 052121 constant label dcl 2170 ref 1138 1400 1482 1611 1629 1640 1661 1747 1848 1862 find_controller 053171 constant entry internal dcl 2327 ref 252 1133 not_nrzi 051165 constant label dcl 1944 ref 1866 not_yet 045506 constant label dcl 1081 ref 1018 nrzi_read 051031 constant label dcl 1905 ref 1872 1882 nrzi_write 050712 constant label dcl 1875 type_451 042212 constant label dcl 279 ref 266 type_5xx 042357 constant label dcl 319 set ref 270 unimplemented 044754 constant label dcl 946 ref 748 volt_check_mth600 013714 constant label array(3) dcl 1614 ref 1609 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 53556 53620 53331 53566 Length 54256 53331 42 422 224 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME analyze_detail_stat_ 3341 external procedure is an external procedure. anal_disk_ internal procedure shares stack frame of external procedure analyze_detail_stat_. anal_fips_disk_ internal procedure shares stack frame of external procedure analyze_detail_stat_. anal_prt_ internal procedure shares stack frame of external procedure analyze_detail_stat_. anal_rdr_pun internal procedure shares stack frame of external procedure analyze_detail_stat_. anal_tape_ internal procedure shares stack frame of external procedure analyze_detail_stat_. begin block on line 1277 begin block shares stack frame of external procedure analyze_detail_stat_. begin block on line 1405 begin block shares stack frame of external procedure analyze_detail_stat_. begin block on line 1664 begin block shares stack frame of external procedure analyze_detail_stat_. begin block on line 1751 begin block shares stack frame of external procedure analyze_detail_stat_. anal_fips_tape_ internal procedure shares stack frame of external procedure analyze_detail_stat_. find_controller internal procedure shares stack frame of external procedure analyze_detail_stat_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME analyze_detail_stat_ 000100 statp analyze_detail_stat_ 000102 i analyze_detail_stat_ 000103 j analyze_detail_stat_ 000104 name analyze_detail_stat_ 000107 a_is_interesting analyze_detail_stat_ 000110 fips_controller analyze_detail_stat_ 000111 number_analyzed analyze_detail_stat_ 000112 anlzd analyze_detail_stat_ 000113 mode analyze_detail_stat_ 000114 ret_str analyze_detail_stat_ 000122 a_tape_analysis analyze_detail_stat_ 001753 a_disk_analysis analyze_detail_stat_ 003254 a_prt_analysis analyze_detail_stat_ 004327 a_rdr_pun_analysis analyze_detail_stat_ 005555 rs_sw analyze_detail_stat_ 005556 rsnnl_sw analyze_detail_stat_ 005557 xcode analyze_detail_stat_ 005560 tape_analp analyze_detail_stat_ 005562 prt_analp analyze_detail_stat_ 005564 disk_analp analyze_detail_stat_ 005566 rdr_pun_analp analyze_detail_stat_ 005570 ipc_cardp analyze_detail_stat_ 005572 mpc_cardp analyze_detail_stat_ 005574 prph_cardp analyze_detail_stat_ 005576 prph_tap_cardp analyze_detail_stat_ 005600 prph_dsk_cardp analyze_detail_stat_ 005612 dev_no anal_disk_ 005613 dev_model anal_disk_ 005614 dev_no_index anal_disk_ 005616 temp_dsk_det_stats anal_disk_ 005632 format_type anal_fips_disk_ 005633 message_no anal_fips_disk_ 005634 symptom_code anal_fips_disk_ 005644 ptr_model anal_prt_ 005646 temp_prt_det_stat anal_prt_ 005650 msg_indx anal_prt_ 005651 bysc anal_prt_ 005652 ec_sc_bit anal_prt_ 005653 pr71_index anal_prt_ 005666 rdr_pun anal_rdr_pun 005667 rdr_pun_model anal_rdr_pun 005670 temp_rdr_pun_dtstat anal_rdr_pun 005704 tks anal_tape_ 005705 valid anal_tape_ 005706 att_sw anal_tape_ 005707 da_alert anal_tape_ 005710 cmts anal_tape_ 005711 tracks_v anal_tape_ 005712 mpc_model anal_tape_ 005713 dev_type anal_tape_ 005714 ext_ptr anal_tape_ 005716 curr_mode anal_tape_ 005717 str1 anal_tape_ 005720 str2 anal_tape_ 005721 str3 anal_tape_ 005722 fdmask9 anal_tape_ 005723 fdmask7 anal_tape_ 005724 curr_dens anal_tape_ 005725 FRAME_DROP anal_tape_ 005736 int_status begin block on line 1277 005740 int_status begin block on line 1405 005741 x begin block on line 1405 005742 int_status begin block on line 1664 005743 int_status begin block on line 1751 005744 CODE begin block on line 1751 005754 dev_no anal_fips_tape_ 005755 dev_no_idx anal_fips_tape_ 005756 ft_in_pe anal_fips_tape_ 005757 ft_can_run_6250 anal_fips_tape_ 005760 ft_general_err_bits anal_fips_tape_ 005761 ft_unit_err_bits anal_fips_tape_ 005762 ft_data_err_bits anal_fips_tape_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. config_$find config_$find_periph cv_dec_check_ hcs_$fs_get_mode hcs_$make_seg ioa_$rsnnl THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. config_deck$ error_table_$bad_arg error_table_$no_r_permission error_table_$request_not_recognized error_table_$resource_type_inappropriate error_table_$resource_unknown error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 79 041464 83 041465 110 041466 12 041472 117 041523 118 041526 121 041527 124 041561 125 041563 127 041564 130 041612 132 041614 134 041616 136 041617 137 041623 138 041630 142 041632 143 041635 144 041640 147 041641 148 041647 149 041652 156 041653 157 041670 158 041672 159 041706 160 041711 164 041712 166 041724 168 041733 170 041737 172 041743 174 041747 179 041753 180 041756 183 041757 186 041760 192 041761 213 041763 214 041764 215 041774 216 042002 217 042013 218 042014 220 042017 226 042043 235 042061 236 042062 237 042065 244 042066 245 042070 246 042072 247 042105 248 042111 249 042114 252 042115 253 042126 255 042137 256 042147 257 042155 259 042167 261 042171 262 042173 263 042174 266 042175 270 042202 276 042206 277 042211 279 042212 285 042216 286 042223 287 042226 288 042231 289 042234 290 042237 291 042242 292 042245 293 042250 294 042253 297 042256 298 042263 299 042267 300 042270 301 042305 303 042307 306 042311 308 042330 309 042331 311 042342 312 042343 313 042354 317 042356 319 042357 322 042423 323 042431 324 042434 325 042437 326 042442 327 042445 328 042450 329 042453 332 042456 333 042463 334 042467 335 042470 336 042505 338 042507 340 042511 343 042512 347 042514 348 042520 349 042561 350 042564 351 042566 352 042571 353 042576 354 042602 355 042607 356 042611 357 042613 360 042615 362 042625 363 042637 365 042642 367 042654 370 042655 371 042661 373 042665 374 042722 375 042731 376 042750 377 042752 378 042766 379 042773 380 043004 381 043010 382 043011 384 043015 386 043016 464 043017 466 043027 467 043033 468 043035 469 043042 470 043045 471 043050 472 043053 474 043056 475 043063 476 043067 477 043070 478 043105 480 043107 482 043111 483 043112 484 043115 485 043117 486 043130 488 043136 489 043140 491 043160 492 043173 493 043174 494 043212 495 043230 496 043246 497 043264 498 043302 499 043320 500 043336 502 043353 504 043362 505 043364 509 043367 510 043376 512 043402 513 043405 514 043406 517 043446 524 043447 529 043450 531 043452 694 043453 695 043454 696 043457 697 043471 698 043472 705 043475 708 043504 709 043507 714 043523 717 043526 725 043531 726 043532 727 043535 732 043536 733 043540 734 043553 735 043557 736 043562 738 043563 740 043566 744 043572 748 043600 753 043601 755 043607 756 043611 758 043655 762 043674 764 043704 765 043706 768 043707 769 043713 770 043714 771 043725 774 043727 775 043733 776 043734 777 043745 780 043747 781 043753 782 043754 783 043765 786 043767 788 043772 789 043775 790 044000 791 044003 792 044006 793 044011 794 044014 796 044017 797 044025 798 044031 799 044032 800 044047 802 044051 807 044053 809 044064 811 044065 813 044071 814 044072 815 044107 816 044115 817 044121 820 044122 823 044130 824 044131 826 044135 827 044136 828 044153 829 044161 830 044165 834 044166 838 044201 839 044205 840 044206 841 044230 843 044232 845 044235 848 044245 849 044251 850 044252 851 044274 853 044276 857 044301 858 044302 861 044313 867 044314 869 044360 871 044375 873 044401 874 044405 875 044406 876 044417 879 044421 880 044425 881 044426 882 044437 885 044441 886 044445 887 044446 888 044457 892 044461 893 044466 894 044470 895 044472 897 044473 901 044516 902 044527 905 044531 910 044535 913 044537 914 044543 915 044604 916 044607 917 044611 918 044614 919 044621 920 044625 923 044627 925 044637 926 044651 928 044654 929 044666 932 044667 933 044673 934 044701 935 044720 936 044722 937 044731 938 044742 939 044746 940 044747 943 044753 946 044754 948 044757 952 044760 955 044761 977 044763 978 044766 979 044777 980 045000 985 045003 989 045017 991 045023 993 045026 1000 045031 1001 045032 1002 045035 1007 045036 1008 045040 1009 045055 1010 045061 1011 045064 1013 045065 1014 045070 1016 045077 1018 045101 1022 045106 1023 045147 1024 045155 1025 045160 1026 045163 1027 045166 1029 045171 1030 045177 1031 045203 1032 045204 1033 045221 1035 045223 1037 045225 1038 045241 1039 045242 1040 045265 1043 045270 1046 045272 1047 045276 1049 045337 1050 045342 1051 045344 1052 045347 1053 045353 1055 045360 1057 045371 1058 045403 1060 045406 1062 045420 1065 045421 1066 045425 1067 045433 1068 045452 1069 045454 1070 045463 1071 045474 1072 045500 1073 045501 1077 045505 1081 045506 1083 045511 1088 045512 1091 045513 1092 045514 1093 045521 1094 045522 1105 045523 1107 045525 1108 045527 1109 045531 1857 045533 1112 045536 1113 045540 1114 045541 1115 045542 1116 045545 1117 045556 1118 045567 1119 045570 1120 045571 1121 045574 1127 045575 1128 045577 1129 045612 1130 045616 1131 045621 1133 045622 1134 045633 1136 045644 1137 045646 1138 045647 1141 045650 1143 045653 1145 045666 1147 045667 1148 045672 1153 045673 1157 045712 1162 045740 1166 045752 1172 045771 1181 046015 1185 046025 1191 046037 1192 046040 1193 046043 1197 046044 1199 046045 1203 046053 1204 046060 1205 046062 1206 046064 1208 046065 1209 046067 1210 046071 1211 046073 1214 046074 1215 046076 1219 046100 1220 046104 1221 046106 1222 046113 1225 046114 1226 046122 1227 046124 1228 046131 1231 046132 1232 046134 1233 046136 1237 046142 1241 046151 1245 046162 1249 046167 1253 046173 1256 046247 1257 046256 1259 046264 1261 046266 1263 046272 1265 046274 1266 046300 1267 046302 1270 046306 1272 046307 1274 046312 1275 046313 1327 046314 1328 046315 1329 046322 1330 046327 1331 046335 1332 046344 1333 046351 1334 046356 1335 046363 1336 046370 1338 046375 1339 046403 1340 046407 1341 046410 1342 046425 1344 046427 1346 046431 1347 046435 1348 046436 1350 046447 1351 046455 1352 046461 1353 046462 1354 046477 1356 046501 1358 046503 1359 046510 1360 046511 1361 046522 1365 046524 1366 046527 1367 046534 1368 046535 1369 046546 1372 046550 1373 046555 1374 046556 1375 046567 1378 046571 1379 046576 1380 046577 1381 046610 1387 046612 1388 046617 1389 046620 1391 046631 1392 046637 1393 046643 1394 046644 1395 046661 1397 046663 1400 046665 1437 046666 1438 046667 1439 046674 1440 046701 1441 046707 1442 046714 1443 046721 1444 046726 1445 046733 1448 046740 1449 046745 1450 046751 1451 046752 1452 046767 1454 046771 1456 046773 1459 047007 1460 047010 1461 047013 1462 047024 1463 047026 1465 047027 1466 047032 1467 047043 1470 047045 1471 047053 1472 047057 1473 047060 1474 047075 1476 047077 1478 047101 1479 047106 1480 047107 1481 047120 1482 047122 1485 047123 1486 047130 1487 047131 1488 047142 1492 047144 1493 047152 1494 047153 1495 047164 1498 047166 1499 047171 1500 047172 1501 047203 1504 047205 1505 047210 1506 047211 1507 047222 1510 047224 1511 047227 1512 047230 1513 047241 1517 047243 1518 047246 1519 047247 1520 047260 1524 047262 1525 047265 1526 047266 1527 047277 1531 047301 1532 047306 1533 047307 1534 047320 1537 047322 1538 047325 1539 047326 1540 047337 1543 047341 1544 047344 1545 047345 1546 047356 1549 047360 1550 047363 1551 047364 1552 047375 1556 047377 1558 047412 1559 047413 1560 047424 1564 047426 1566 047436 1567 047437 1568 047450 1572 047452 1573 047460 1574 047461 1575 047472 1579 047474 1580 047477 1581 047500 1582 047511 1586 047513 1587 047516 1588 047517 1589 047530 1593 047532 1594 047535 1595 047536 1596 047547 1600 047551 1601 047554 1602 047555 1603 047566 1607 047570 1609 047602 1611 047605 1614 047606 1616 047614 1617 047615 1618 047626 1622 047630 1623 047633 1624 047634 1625 047645 1629 047647 1632 047650 1634 047655 1635 047656 1636 047667 1640 047671 1642 047672 1644 047700 1645 047701 1646 047712 1650 047714 1651 047717 1652 047720 1653 047731 1661 047733 1676 047734 1677 047735 1678 047742 1679 047747 1680 047755 1681 047762 1682 047767 1684 047774 1685 050001 1686 050002 1687 050013 1691 050015 1692 050022 1693 050023 1694 050034 1698 050036 1699 050043 1700 050044 1701 050055 1705 050057 1706 050063 1707 050064 1709 050075 1710 050103 1711 050107 1712 050110 1713 050125 1715 050127 1716 050131 1719 050132 1720 050137 1721 050140 1723 050151 1724 050157 1725 050163 1726 050164 1727 050201 1729 050203 1731 050205 1732 050212 1733 050213 1734 050224 1738 050226 1739 050233 1740 050234 1741 050245 1747 050247 1756 050250 1769 050252 1770 050253 1771 050260 1772 050265 1773 050272 1774 050277 1776 050305 1777 050315 1778 050322 1779 050327 1780 050334 1783 050341 1784 050345 1785 050346 1787 050357 1788 050365 1789 050371 1790 050372 1791 050407 1793 050411 1794 050413 1795 050423 1796 050424 1798 050442 1799 050445 1800 050446 1801 050502 1802 050522 1805 050523 1809 050524 1810 050531 1811 050532 1813 050543 1814 050551 1815 050555 1816 050556 1817 050573 1819 050575 1823 050577 1824 050605 1825 050611 1826 050612 1827 050627 1829 050631 1832 050633 1833 050640 1834 050641 1835 050652 1839 050654 1840 050661 1841 050662 1842 050673 1848 050675 1859 050676 1862 050677 1866 050702 1868 050705 1872 050707 1875 050712 1880 050724 1881 050736 1882 050740 1884 050741 1885 050742 1887 050753 1890 050763 1891 050767 1892 050775 1894 051000 1896 051003 1897 051011 1898 051015 1899 051023 1901 051026 1903 051030 1905 051031 1908 051043 1909 051045 1910 051047 1911 051050 1912 051061 1913 051067 1916 051070 1917 051075 1918 051101 1919 051107 1921 051112 1922 051114 1926 051115 1927 051117 1928 051125 1929 051126 1930 051137 1933 051140 1934 051145 1935 051151 1936 051157 1938 051162 1941 051164 1944 051165 1948 051167 1951 051170 1953 051172 1954 051176 1955 051177 1956 051210 1959 051212 1960 051216 1961 051217 1962 051230 1965 051231 1966 051235 1967 051236 1968 051247 1971 051250 1972 051254 1973 051255 1978 051266 1981 051271 1982 051275 1983 051276 1984 051307 1987 051310 1988 051314 1989 051315 1990 051326 1992 051327 1994 051330 1995 051332 1996 051336 1997 051337 1998 051350 2005 051351 2007 051357 2008 051364 2009 051365 2011 051402 2015 051413 2017 051416 2018 051422 2019 051423 2020 051434 2024 051435 2027 051436 2030 051445 2032 051450 2033 051451 2034 051462 2037 051463 2040 051476 2041 051500 2042 051506 2043 051507 2044 051520 2047 051521 2048 051527 2049 051533 2050 051541 2052 051544 2053 051546 2056 051551 2057 051556 2058 051557 2061 051570 2062 051574 2063 051575 2067 051606 2068 051612 2069 051613 2075 051624 2076 051630 2077 051631 2078 051642 2082 051644 2083 051650 2084 051651 2085 051662 2089 051664 2090 051670 2091 051671 2092 051702 2096 051704 2097 051711 2098 051717 2099 051720 2100 051735 2102 051737 2116 051741 2119 051742 2121 051744 2122 051751 2123 051752 2127 051763 2128 051767 2129 051770 2133 052001 2135 052004 2136 052010 2137 052011 2138 052022 2142 052024 2143 052030 2144 052031 2145 052042 2147 052044 2150 052045 2151 052047 2152 052053 2153 052054 2157 052065 2158 052071 2159 052072 2162 052103 2163 052107 2164 052110 2170 052121 2173 052124 2174 052130 2175 052171 2176 052174 2177 052176 2178 052201 2179 052205 2180 052212 2181 052214 2182 052217 2183 052221 2184 052224 2185 052227 2186 052231 2188 052236 2190 052247 2191 052261 2193 052264 2194 052276 2198 052277 2199 052303 2201 052313 2202 052332 2203 052334 2204 052343 2205 052354 2206 052360 2207 052361 2209 052365 2211 052366 2215 052367 2216 052371 2217 052372 2218 052373 2234 052374 2235 052376 2236 052424 2237 052425 2238 052437 2239 052445 2241 052512 2243 052515 2244 052523 2245 052527 2246 052534 2247 052541 2249 052543 2250 052546 2251 052551 2252 052554 2253 052557 2254 052562 2256 052565 2257 052570 2258 052573 2259 052576 2260 052601 2261 052604 2263 052607 2264 052612 2265 052615 2266 052620 2267 052623 2268 052626 2269 052631 2270 052634 2271 052637 2272 052642 2273 052645 2274 052650 2275 052653 2276 052656 2278 052661 2280 052671 2281 052675 2282 052676 2283 052713 2285 052715 2287 052717 2289 052727 2290 052733 2291 052734 2292 052751 2294 052753 2296 052755 2297 052760 2299 052774 2300 053000 2301 053005 2302 053011 2303 053012 2304 053027 2306 053031 2308 053033 2310 053061 2312 053072 2313 053077 2314 053103 2315 053111 2317 053114 2319 053116 2320 053130 2321 053131 2323 053170 2327 053171 2332 053173 2333 053174 2334 053176 2335 053177 2336 053200 2337 053211 2338 053215 2339 053230 2342 053245 2343 053247 2347 053250 2348 053261 2349 053266 2350 053272 2352 053305 2353 053307 2356 053310 2357 053311 ----------------------------------------------------------- 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