When a disk or disk controller error occurs, PRIMOS prints a terse message on the console describing what happened, and where. The message consists mostly of octal numbers. This is how to decode them. This material came from various sources, especially the "EastOps ditty book".
/* DISKER.HELP, INSTALLER>HELP*
/* Doco on Pr1me disk status numbers.
/* Copyright 1986, BORIS systems, Lansing MI 48933
DISKER DISK ERRORS: Doco on Pr1me disk status numbers.
Format: DISK x ER pdev record actual status retries [sectors nch]
where: x Is RD or WT for read or write.
pdev Is the physical device number.
record Is the requested record number (two words long)
actual Is actual record read (two words, invalid on write)
status Is the disk status returned by the controller
retries Varies from 1 to octal '12.
sectors New at Rev. 20.2.3, sectors per track.
nch New at Rev. 20.2.3, number of channels and keys.
status word bit definitions:
177777 Bad record identifier. Software noticed that the
record read from disk was not the one requested.
177776 Device not ready, or seek timeout. Check pdev
number for validity. In combination with other
servo status errors, this indicates a servo
problem. In combination with other interface
status errors, this indicates an interface
problem.
177775 Memory parity error during DMX.
177774 Controller not responding. (Bad controller)
177773 Disk hung or controller halted. This is usually
a disk servo problem.
177772 Same as 177773, or Winchester seek failure.
100000 Valid status flag. May only appear by itself
after a warmstart. Always set in a real error,
since the pin is tied to a pull up resistor in
the controller.
040000 DMX overrun. The CPU could not keep up with disk
data transfer rate. This can happen if the
controller boards are in the wrong order.
020000 Write protect. Also, for CDC drives, a voltage
fault or an up-to-speed fault.
010000 Data Read check error. The CRC word generated
while reading the data did not match the one
stored with the data during write.
004000 Checksum error. Parity error in data. Also
listed as internal controller parity error.
002000 Header check fail. The CRC word generated while
reading the header did not match the one stored
with the header during write.
001000 Not used. Grounded in controller.
000400 Not used. Grounded in controller.
000200 Not used. Grounded in controller.
000100 Not used. Grounded in controller.
000040 Busy error. Drive in use by other controller.
Dual port devices only.
000020 Not used. Grounded in controller.
000010 Seek error. Disk drive seeking. Set when the
selected drive is not on cylinder.
000004 Seek error: Either the seek did not complete
within the time allowed, or the drive lost
on-cylinder (heads drifted) or an illegal
cylinder was requested.
000002 Select error. More than one device responded to
a unit select command, or a unit number greater
than the number of devices supported by the prom
on a '4005 responded to a unit select.
000001 Not available or not ready. Same as 177776.
Indicates the status of the drive ready signal.
Common problems:
110000 or 112000
If these are the only two types of errors, you have a
read or write problem.
If all of the errors are on one head, then it is probably
the read/write board, or the hda.
If all of the errors are on the same track, head and
sector then it is probably a badspot.
Other possible problems: Worn out static eliminator, bad
hda, r/w electronics, bad media, bad heads, power supply.
102000 or 100004 or 100005 or 100014 or 100015
This is some kind of servo problem. The drive is having
trouble getting to a cylinder and staying there. Things
to check: Servo adjustments, servo cards, hda, worn
spindle, power supply, bad media, actuator, velocity
transducer. Sometimes kind of problem causes loss of
clocks or drive faults which cause status errors like
120047 or 120057.
177776 and 12xxxx or xxxx4x or xxxxx7
These are interface problems. Things to check: Cables,
controller, io board(s), device prom, terminator, control
electronics boards, power supply. These errors also
accompany servo problems, so check for that first.
104000 Bad controller.
315MB and picks on heads 16 ~ 19
Servo may be set too fast. Set to 50 milliseconds.
NCH = BIT 1 ON - Do record ID check
BIT 2 On - Ignore read error
BIT 3 On - Do not retry on an error
BIT 4 ON - Format track beginning at CRA
BIT 5 ON - ECC not desired
BIT 6 ON - IBM floppy format
BIT 7 ON - Move servo in -- only on read --
BIT 8 ON - Move servo out -- only on read --
BIT 9 ON - Strobe eary -- only on read --
BIT 10 ON - Strobe early -- only on read --
BITS 11-16 - Number of channels
ICOP ERRORS, accumulated lore (courtesy of NCC prime):
INTERRUPT 4 - Recovered
5 - Unrecovered
LSW word1 word2
word1 = 100400 - successful with word2 retries
word2 = number of retries
word1 = 101400 - unsuccessful
word2 = undefined
PSW word1 word2
word2 = 10000 - Read check
word2 = 4000 - Data parity error
word2 = 2000 - Header not found
ERRORS FOR NO REASON were generated by a bad revision of IDC1.DL at some
Primos 20.2 revisions. The bad DL files were:
software revision: 103
dated
SEP 7 1988
or earlier. Disable ICOP mode by cnaming the file to ICOP or re-jumpering
the disk controller.
1987, EASTOPS Technical Handbook