Annotation of 43BSDReno/share/man/man4/man4.vax/uda.4, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1980, 1987 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)uda.4       6.5 (Berkeley) 6/13/88
        !             6: .\"
        !             7: .TH UDA 4 "June 13, 1988"
        !             8: .UC 4
        !             9: .SH NAME
        !            10: uda \- UDA50 disk controller interface
        !            11: .SH SYNOPSIS
        !            12: .B "controller uda0 at uba0 csr 0172150 vector udaintr"
        !            13: .br
        !            14: .B "disk ra0 at uda0 drive 0"
        !            15: .br
        !            16: .B "options MSCP_PARANOIA"
        !            17: .SH DESCRIPTION
        !            18: This is a driver for the DEC UDA50 disk controller and other
        !            19: compatible controllers.  The UDA50 communicates with the host through
        !            20: a packet protocol known as the Mass Storage Control Protocol (MSCP).
        !            21: Consult the file
        !            22: .RI < vax/mscp.h >
        !            23: for a detailed description of this protocol.
        !            24: .PP
        !            25: Files with minor device numbers 0 through 7 refer to various portions
        !            26: of drive 0; minor devices 8 through 15 refer to drive 1, etc.  The
        !            27: standard device names begin with `ra' followed by the drive number
        !            28: and then a letter a-h for partitions 0-7 respectively.
        !            29: The character ? stands here for a drive number in the range 0-7.
        !            30: .PP
        !            31: The block files access the disk via the system's normal buffering
        !            32: mechanism mechanism and may be read and written without regard to
        !            33: physical disk records.  There is also a `raw' interface which provides
        !            34: for direct transmission between the disk and the user's read or write
        !            35: buffer.  A single read or write call results in exactly one I/O
        !            36: operation and therefore raw I/O is considerably more efficient when
        !            37: many words are transmitted.  The names of the raw files conventionally
        !            38: begin with an extra `r'.
        !            39: .PP
        !            40: In raw I/O counts should be a multiple of 512 bytes (a disk sector).
        !            41: Likewise
        !            42: .I seek
        !            43: calls should specify a multiple of 512 bytes.
        !            44: .PP
        !            45: The
        !            46: .B MSCP_PARANOIA
        !            47: option enables runtime checking on all transfer completion responses
        !            48: from the controller.  This increases disk I/O overhead and may
        !            49: be undesirable on slow machines, but is otherwise recommended.
        !            50: .PP
        !            51: The first sector of each disk contains both a first-stage bootstrap program
        !            52: and a disk label containing geometry information and partition layouts (see
        !            53: .IR disklabel (5).
        !            54: This sector is normally write-protected, and disk-to-disk copies should
        !            55: avoid copying this sector.
        !            56: The label may be updated with
        !            57: .IR disklabel (8),
        !            58: which can also be used to write-enable and write-disable the sector.
        !            59: The next 15 sectors contain a second-stage bootstrap program.
        !            60: .SH "DISK SUPPORT"
        !            61: During autoconfiguration,
        !            62: as well as when a drive is opened after all partitions are closed,
        !            63: the first sector of the drive is examined for a disk label.
        !            64: If a label is found, the geometry of the drive and the partition tables
        !            65: are taken from it.
        !            66: If no label is found,
        !            67: the driver configures the type of each drive when it is first
        !            68: encountered.  A default partition table in the driver is used for each type
        !            69: of disk when a pack is not labelled.  The origin and size
        !            70: (in sectors) of the default pseudo-disks on each
        !            71: drive are shown below.  Not all partitions begin on cylinder
        !            72: boundaries, as on other drives, because previous drivers used one
        !            73: partition table for all drive types.  Variants of the partition tables
        !            74: are common; check the driver and the file
        !            75: .IR /etc/disktab ( disktab (5))
        !            76: for other possibilities.
        !            77: .PP
        !            78: .nf
        !            79: .ta .5i +\w'000000    'u +\w'000000    'u +\w'000000    'u +\w'000000    'u
        !            80: .PP
        !            81: RA60 partitions
        !            82:        disk    start   length
        !            83:        ra?a    0       15884
        !            84:        ra?b    15884   33440
        !            85:        ra?c    0       400176
        !            86:        ra?d    49324   82080   same as 4.2BSD ra?g
        !            87:        ra?e    131404  268772  same as 4.2BSD ra?h
        !            88:        ra?f    49324   350852
        !            89:        ra?g    242606  157570
        !            90:        ra?h    49324   193282
        !            91: .PP
        !            92: RA70 partitions
        !            93:        disk    start   length
        !            94:        ra?a    0       15884
        !            95:        ra?b    15972   33440
        !            96:        ra?c    0       547041
        !            97:        ra?d    34122   15884
        !            98:        ra?e    357192  55936
        !            99:        ra?f    413457  133584
        !           100:        ra?g    341220  205821
        !           101:        ra?h    49731   29136
        !           102: .PP
        !           103: RA80 partitions
        !           104:        disk    start   length
        !           105:        ra?a    0       15884
        !           106:        ra?b    15884   33440
        !           107:        ra?c    0       242606
        !           108:        ra?e    49324   193282  same as old Berkeley ra?g
        !           109:        ra?f    49324   82080   same as 4.2BSD ra?g
        !           110:        ra?g    49910   192696
        !           111:        ra?h    131404  111202  same as 4.2BSD
        !           112: .PP
        !           113: RA81 partitions
        !           114:        disk    start   length
        !           115:        ra?a    0       15884
        !           116:        ra?b    16422   66880
        !           117:        ra?c    0       891072
        !           118:        ra?d    375564  15884
        !           119:        ra?e    391986  307200
        !           120:        ra?f    699720  191352
        !           121:        ra?g    375564  515508
        !           122:        ra?h    83538   291346
        !           123: .PP
        !           124: RA81 partitions with 4.2BSD-compatible partitions
        !           125:        disk    start   length
        !           126:        ra?a    0       15884
        !           127:        ra?b    16422   66880
        !           128:        ra?c    0       891072
        !           129:        ra?d    49324   82080   same as 4.2BSD ra?g
        !           130:        ra?e    131404  759668  same as 4.2BSD ra?h
        !           131:        ra?f    412490  478582  same as 4.2BSD ra?f
        !           132:        ra?g    375564  515508
        !           133:        ra?h    83538   291346
        !           134: .PP
        !           135: RA82 partitions
        !           136:        disk    start   length
        !           137:        ra?a    0       15884
        !           138:        ra?b    16245   66880
        !           139:        ra?c    0       1135554
        !           140:        ra?d    375345  15884
        !           141:        ra?e    391590  307200
        !           142:        ra?f    669390  466164
        !           143:        ra?g    375345  760209
        !           144:        ra?h    83790   291346
        !           145: .DT
        !           146: .fi
        !           147: .PP
        !           148: The ra?a partition is normally used for the root file system, the ra?b
        !           149: partition as a paging area, and the ra?c partition for pack-pack
        !           150: copying (it maps the entire disk).
        !           151: .SH FILES
        !           152: /dev/ra[0-9][a-f]
        !           153: .br
        !           154: /dev/rra[0-9][a-f]
        !           155: .SH SEE ALSO
        !           156: disklabel(5), disklabel(8)
        !           157: .SH DIAGNOSTICS
        !           158: .TP
        !           159: panic: udaslave
        !           160: No command packets were available while the driver was looking
        !           161: for disk drives.  The controller is not extending enough credits
        !           162: to use the drives.
        !           163: .TP
        !           164: uda%d: no response to Get Unit Status request
        !           165: A disk drive was found, but did not respond to a status request.
        !           166: This is either a hardware problem or someone pulling unit number
        !           167: plugs very fast.
        !           168: .TP
        !           169: uda%d: unit %d off line
        !           170: While searching for drives, the controller found one that
        !           171: seems to be manually disabled.  It is ignored.
        !           172: .TP
        !           173: uda%d: unable to get unit status
        !           174: Something went wrong while trying to determine the status of
        !           175: a disk drive.  This is followed by an error detail.
        !           176: .TP
        !           177: uda%d: unit %d, next %d
        !           178: This probably never happens, but I wanted to know if it did.  I
        !           179: have no idea what one should do about it.
        !           180: .TP
        !           181: uda%d: cannot handle unit number %d (max is %d)
        !           182: The controller found a drive whose unit number is too large.
        !           183: Valid unit numbers are those in the range [0..7].
        !           184: .TP
        !           185: ra%d: don't have a partition table for %s; using (s,t,c)=(%d,%d,%d)
        !           186: The controller found a drive whose media identifier (e.g. `RA 25')
        !           187: does not have a default partition table.  A temporary partition
        !           188: table containing only an `a' partition has been created covering
        !           189: the entire disk, which has the indicated numbers of sectors per
        !           190: track (s), tracks per cylinder (t), and total cylinders (c).
        !           191: Give the pack a label with the
        !           192: .I disklabel
        !           193: utility.
        !           194: .TP
        !           195: uda%d: uballoc map failed
        !           196: Unibus resource map allocation failed during initialisation.  This
        !           197: can only happen if you have 496 devices on a Unibus.
        !           198: .TP
        !           199: uda%d: timeout during init
        !           200: The controller did not initialise within ten seconds.  A hardware
        !           201: problem, but it sometimes goes away if you try again.
        !           202: .TP
        !           203: uda%d: init failed, sa=%b
        !           204: The controller refused to initalise.
        !           205: .TP
        !           206: uda%d: controller hung
        !           207: The controller never finished initialisation.  Retrying may sometimes
        !           208: fix it.
        !           209: .TP
        !           210: ra%d: drive will not come on line
        !           211: The drive will not come on line, probably because it is spun down.
        !           212: This should be preceded by a message giving details as to why the
        !           213: drive stayed off line.
        !           214: .TP
        !           215: uda%d: still hung
        !           216: When the controller hangs, the driver occasionally tries to reinitialise
        !           217: it.  This means it just tried, without success.
        !           218: .TP
        !           219: panic: udastart: bp==NULL
        !           220: A bug in the driver has put an empty drive queue on a controller queue.
        !           221: .TP
        !           222: uda%d: command ring too small
        !           223: If you increase NCMDL2, you may see a performance improvement.
        !           224: (See /sys/vaxuba/uda.c.)
        !           225: .TP
        !           226: panic: udastart
        !           227: A drive was found marked for status or on-line functions while performing
        !           228: status or on-line functions.  This indicates a bug in the driver.
        !           229: .TP
        !           230: uda%d: controller error, sa=0%o (%s)
        !           231: The controller reported an error.  The error code is printed in
        !           232: octal, along with a short description if the code is known (see the
        !           233: .IR "UDA50 Maintenance Guide" ,
        !           234: DEC part number AA-M185B-TC, pp. 18-22).
        !           235: If this occurs during normal
        !           236: operation, the driver will reset it and retry pending I/O.  If
        !           237: it occurs during configuration, the controller may be ignored.
        !           238: .TP
        !           239: uda%d: stray intr
        !           240: The controller interrupted when it should have stayed quiet.  The
        !           241: interrupt has been ignored.
        !           242: .TP
        !           243: uda%d: init step %d failed, sa=%b
        !           244: The controller reported an error during the named initialisation step.
        !           245: The driver will retry initialisation later.
        !           246: .TP
        !           247: uda%d: version %d model %d
        !           248: An informational message giving the revision level of the controller.
        !           249: .TP
        !           250: uda%d: DMA burst size set to %d
        !           251: An informational message showing the DMA burst size, in words.
        !           252: .TP
        !           253: panic: udaintr
        !           254: Indicates a bug in the generic MSCP code.
        !           255: .TP
        !           256: uda%d: driver bug, state %d
        !           257: The driver has a bogus value for the controller state.  Something
        !           258: is quite wrong.  This is immediately followed by a `panic: udastate'.
        !           259: .TP
        !           260: uda%d: purge bdp %d
        !           261: A benign message tracing BDP purges.  I have been trying to figure
        !           262: out what BDP purges are for.  You might want to comment out this
        !           263: call to log() in /sys/vaxuba/uda.c.
        !           264: .TP
        !           265: .RI "uda%d: SETCTLRC failed: " detail
        !           266: The Set Controller Characteristics command (the last part of the
        !           267: controller initialisation sequence) failed.  The
        !           268: .I detail
        !           269: message tells why.
        !           270: .TP
        !           271: .RI "uda%d: attempt to bring ra%d on line failed: " detail
        !           272: The drive could not be brought on line.  The
        !           273: .I detail
        !           274: message tells why.
        !           275: .TP
        !           276: uda%d: ra%d: unknown type %d
        !           277: The type index of the named drive is not known to the driver, so the
        !           278: drive will be ignored.
        !           279: .TP
        !           280: ra%d: changed types! was %d now %d
        !           281: A drive somehow changed from one kind to another, e.g., from an RA80
        !           282: to an RA60.  The numbers printed are the encoded media identifiers (see
        !           283: .RI < vax/mscp.h >
        !           284: for the encoding).
        !           285: The driver believes the new type.
        !           286: .TP
        !           287: ra%d: uda%d, unit %d, size = %d sectors
        !           288: The named drive is on the indicated controller as the given unit,
        !           289: and has that many sectors of user-file area.  This is printed
        !           290: during configuration.
        !           291: .TP
        !           292: .RI "uda%d: attempt to get status for ra%d failed: " detail
        !           293: A status request failed.  The
        !           294: .I detail
        !           295: message should tell why.
        !           296: .TP
        !           297: ra%d: bad block report: %d
        !           298: The drive has reported the given block as bad.  If there are multiple
        !           299: bad blocks, the drive will report only the first; in this case this
        !           300: message will be followed by `+ others'.  Get DEC to forward the
        !           301: block with EVRLK.
        !           302: .TP
        !           303: ra%d: serious exception reported
        !           304: I have no idea what this really means.
        !           305: .TP
        !           306: panic: udareplace
        !           307: The controller reported completion of a REPLACE operation.  The
        !           308: driver never issues any REPLACEs, so something is wrong.
        !           309: .TP
        !           310: panic: udabb
        !           311: The controller reported completion of bad block related I/O.  The
        !           312: driver never issues any such, so something is wrong.
        !           313: .TP
        !           314: uda%d: lost interrupt
        !           315: The controller has gone out to lunch, and is being reset to try to bring
        !           316: it back.
        !           317: .TP
        !           318: panic: mscp_go: AEB_MAX_BP too small
        !           319: You defined AVOID_EMULEX_BUG and increased NCMDL2 and Emulex has
        !           320: new firmware.  Raise AEB_MAX_BP or turn off AVOID_EMULEX_BUG.
        !           321: .TP
        !           322: uda%d: unit %d: unknown message type 0x%x ignored
        !           323: The controller responded with a mysterious message type. See
        !           324: /sys/vax/mscp.h for a list of known message types.  This is probably
        !           325: a controller hardware problem.
        !           326: .TP
        !           327: uda%d: unit %d out of range
        !           328: The disk drive unit number (the unit plug) is higher than the
        !           329: maximum number the driver allows (currently 7).
        !           330: .TP
        !           331: uda%d: unit %d not configured, \fImessage\fP ignored
        !           332: The named disk drive has announced its presence to the controller,
        !           333: but was not, or cannot now be, configured into the running system.
        !           334: .I Message
        !           335: is one of `available attention' (an `I am here' message) or
        !           336: `stray response op 0x%x status 0x%x' (anything else).
        !           337: .TP
        !           338: ra%d: bad lbn (%d)?
        !           339: The drive has reported an invalid command error, probably due to an
        !           340: invalid block number.  If the lbn value is very much greater than the
        !           341: size reported by the drive, this is the problem.  It is probably due to
        !           342: an improperly configured partition table.  Other invalid commands
        !           343: indicate a bug in the driver, or hardware trouble.
        !           344: .TP
        !           345: ra%d: duplicate ONLINE ignored
        !           346: The drive has come on-line while already on-line.  This condition
        !           347: can probably be ignored (and has been).
        !           348: .TP
        !           349: ra%d: io done, but no buffer?
        !           350: Hardware trouble, or a bug; the drive has finished an I/O request,
        !           351: but the response has an invalid (zero) command reference number.
        !           352: .TP
        !           353: Emulex SC41/MS screwup: uda%d, got %d correct, then
        !           354: .br
        !           355: .ti -5
        !           356: changed 0x%x to 0x%x
        !           357: .br
        !           358: You turned on AVOID_EMULEX_BUG, and the driver successfully
        !           359: avoided the bug.  The number of correctly-handled requests is
        !           360: reported, along with the expected and actual values relating to
        !           361: the bug being avoided.
        !           362: .TP
        !           363: panic: unrecoverable Emulex screwup
        !           364: You turned on AVOID_EMULEX_BUG, but Emulex was too clever and
        !           365: avoided the avoidance.  Try turning on MSCP_PARANOIA instead.
        !           366: .TP
        !           367: uda%d: bad response packet ignored
        !           368: You turned on MSCP_PARANOIA, and the driver caught the controller in
        !           369: a lie.  The lie has been ignored, and the controller will soon be
        !           370: reset (after a `lost' interrupt).  This is followed by a hex dump of
        !           371: the offending packet.
        !           372: .TP
        !           373: ra%d: bogus REPLACE end
        !           374: The drive has reported finishing a bad sector replacement, but the
        !           375: driver never issues bad sector replacement commands.  The report
        !           376: is ignored.  This is likely a hardware problem.
        !           377: .TP
        !           378: ra%d: unknown opcode 0x%x status 0x%x ignored
        !           379: The drive has reported something that the driver cannot understand.
        !           380: Perhaps DEC has been inventive, or perhaps your hardware is ill.
        !           381: This is followed by a hex dump of the offending packet.
        !           382: .TP
        !           383: \fBra%d%c: hard error %sing fsbn %d [of %d-%d] (ra%d bn %d cn %d tn %d sn %d)\fP.
        !           384: An unrecoverable error occurred during transfer of the specified
        !           385: filesystem block number(s),
        !           386: which are logical block numbers on the indicated partition.
        !           387: If the transfer involved multiple blocks, the block range is printed as well.
        !           388: The parenthesized fields list the actual disk sector number
        !           389: relative to the beginning of the drive,
        !           390: as well as the cylinder, track and sector number of the block.
        !           391: .TP
        !           392: uda%d: %s error datagram
        !           393: The controller has reported some kind of error, either `hard'
        !           394: (unrecoverable) or `soft' (recoverable).  If the controller is going on
        !           395: (attempting to fix the problem), this message includes the remark
        !           396: `(continuing)'.  Emulex controllers wrongly claim that all soft errors
        !           397: are hard errors.  This message may be followed by
        !           398: one of the following 5 messages, depending on its type, and will always
        !           399: be followed by a failure detail message (also listed below).
        !           400: .RS
        !           401: .TP
        !           402: memory addr 0x%x
        !           403: A host memory access error; this is the address that could not be
        !           404: read.
        !           405: .TP
        !           406: unit %d: level %d retry %d, %s %d
        !           407: A typical disk error; the retry count and error recovery levels are
        !           408: printed, along with the block type (`lbn', or logical block; or `rbn',
        !           409: or replacement block) and number.  If the string is something else, DEC
        !           410: has been clever, or your hardware has gone to Australia for vacation
        !           411: (unless you live there; then it might be in New Zealand, or Brazil).
        !           412: .TP
        !           413: unit %d: %s %d
        !           414: Also a disk error, but an `SDI' error, whatever that is.  (I doubt
        !           415: it has anything to do with Ronald Reagan.)  This lists the block
        !           416: type (`lbn' or `rbn') and number.  This is followed by a second
        !           417: message indicating a microprocessor error code and a front panel
        !           418: code.  These latter codes are drive-specific, and are intended to
        !           419: be used by field service as an aid in locating failing hardware.
        !           420: The codes for RA81s can be found in the
        !           421: .IR "RA81 Maintenance Guide" ,
        !           422: DEC order number AA-M879A-TC, in appendices E and F.
        !           423: .TP
        !           424: unit %d: small disk error, cyl %d
        !           425: Yet another kind of disk error, but for small disks.  (`That's what
        !           426: it says, guv'nor.  Dunnask me what it means.')
        !           427: .TP
        !           428: unit %d: unknown error, format 0x%x
        !           429: A mysterious error: the given format code is not known.
        !           430: .RE
        !           431: .PP
        !           432: The detail messages are as follows:
        !           433: .RS
        !           434: .TP
        !           435: success (%s) (code 0, subcode %d)
        !           436: Everything worked, but the controller thought it would let you know
        !           437: that something went wrong.  No matter what subcode, this can probably
        !           438: be ignored.
        !           439: .TP
        !           440: invalid command (%s) (code 1, subcode %d)
        !           441: This probably cannot occur unless the hardware is out; %s should be
        !           442: `invalid msg length', meaning some command was too short or too long.
        !           443: .TP
        !           444: command aborted (unknown subcode) (code 2, subcode %d)
        !           445: This should never occur, as the driver never aborts commands.
        !           446: .TP
        !           447: unit offline (%s) (code 3, subcode %d)
        !           448: The drive is offline, either because it is not around (`unknown
        !           449: drive'), stopped (`not mounted'), out of order (`inoperative'), has the
        !           450: same unit number as some other drive (`duplicate'), or has been
        !           451: disabled for diagnostics (`in diagnosis').
        !           452: .TP
        !           453: unit available (unknown subcode) (code 4, subcode %d)
        !           454: The controller has decided to report a perfectly normal event as
        !           455: an error.  (Why?)
        !           456: .TP
        !           457: media format error (%s) (code 5, subcode %d)
        !           458: The drive cannot be used without reformatting.  The Format Control
        !           459: Table cannot be read (`fct unread - edc'), there is a bad sector
        !           460: header (`invalid sector header'), the drive is not set for 512-byte
        !           461: sectors (`not 512 sectors'), the drive is not formatted (`not formatted'),
        !           462: or the FCT has an uncorrectable ECC error (`fct ecc').
        !           463: .TP
        !           464: write protected (%s) (code 6, subcode %d)
        !           465: The drive is write protected, either by the front panel switch
        !           466: (`hardware') or via the driver (`software').  The driver never
        !           467: sets software write protect.
        !           468: .TP
        !           469: compare error (unknown subcode) (code 7, subcode %d)
        !           470: A compare operation showed some sort of difference.  The driver
        !           471: never uses compare operations.
        !           472: .TP
        !           473: data error (%s) (code 7, subcode %d)
        !           474: Something went wrong reading or writing a data sector.  A `forced
        !           475: error' is a software-asserted error used to mark a sector that contains
        !           476: suspect data.  Rewriting the sector will clear the forced error.  This
        !           477: is normally set only during bad block replacment, and the driver does
        !           478: no bad block replacement, so these should not occur.  A `header
        !           479: compare' error probably means the block is shot.  A `sync timeout'
        !           480: presumably has something to do with sector synchronisation.
        !           481: An `uncorrectable ecc' error is an ordinary data error that cannot
        !           482: be fixed via ECC logic.  A `%d symbol ecc' error is a data error
        !           483: that can be (and presumably has been) corrected by the ECC logic.
        !           484: It might indicate a sector that is imperfect but usable, or that
        !           485: is starting to go bad.  If any of these errors recur, the sector
        !           486: may need to be replaced.
        !           487: .TP
        !           488: host buffer access error (%s) (code %d, subcode %d)
        !           489: Something went wrong while trying to copy data to or from the host
        !           490: (Vax).  The subcode is one of `odd xfer addr', `odd xfer count',
        !           491: `non-exist. memory', or `memory parity'.  The first two could be a
        !           492: software glitch; the last two indicate hardware problems.
        !           493: .TP
        !           494: controller error (%s) (code %d, subcode %d)
        !           495: The controller has detected a hardware error in itself.  A
        !           496: `serdes overrun' is a serialiser / deserialiser overrun; `edc'
        !           497: probably stands for `error detection code'; and `inconsistent
        !           498: internal data struct' is obvious.
        !           499: .TP
        !           500: drive error (%s) (code %d, subcode %d)
        !           501: Either the controller or the drive has detected a hardware error
        !           502: in the drive.  I am not sure what an `sdi command timeout' is, but
        !           503: these seem to occur benignly on occasion.  A `ctlr detected protocol'
        !           504: error means that the controller and drive do not agree on a protocol;
        !           505: this could be a cabling problem, or a version mismatch.  A `positioner'
        !           506: error means the drive seek hardware is ailing; `lost rd/wr ready'
        !           507: means the drive read/write logic is sick; and `drive clock dropout'
        !           508: means that the drive clock logic is bad, or the media is hopelessly
        !           509: scrambled.  I have no idea what `lost recvr ready' means.  A `drive 
        !           510: detected error' is a catch-all for drive hardware trouble; `ctlr
        !           511: detected pulse or parity' errors are often caused by cabling problems.
        !           512: .RE

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.