Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

hk(4)

uda(4)

up(4)

HP(4)  —  Unix Programmer’s Manual

NAME

hp − MASSBUS disk interface

SYNOPSIS

disk hp0 at mba0 drive 0

DESCRIPTION

Files with minor device numbers 0 through 7 refer to various portions of drive 0; minor devices 8 through 15 refer to drive 1, etc.  The standard device names begin with “hp” followed by the drive number and then a letter a-h for partitions 0-7 respectively.  The character ? stands here for a drive number in the range 0-7. 

The block file’s access the disk via the system’s normal buffering mechanism and may be read and written without regard to physical disk records.  There is also a ‘raw’ interface which provides for direct transmission between the disk and the user’s read or write buffer.  A single read or write call results in exactly one I/O operation and therefore raw I/O is considerably more efficient when many words are transmitted.  The names of the raw files conventionally begin with an extra ‘r.’

In raw I/O counts should be a multiple of 512 bytes (a disk sector).  Likewise seek calls should specify a multiple of 512 bytes. 

DISK SUPPORT

This driver handles both standard DEC controllers and Emulex SC750 and SC780 controllers.  Standard DEC drive types are recognized according to the MASSBUS drive type register.  For the Emulex controller the drive type register should be configured to indicate the drive is an RM02.  When this is encountered, the driver checks the holding register to find out the disk geometry and, based on this information, decides what the drive type is.  The following disks are supported: RM03, RM05, RP06, RM80, RP05, RP07, ML11A, ML11B, CDC 9775, CDC 9730, AMPEX Capricorn (32 sectors/track), FUJITSU Eagle (48 sectors/track), Fujitsu 2361, and AMPEX 9300.  The origin and size (in sectors) of the pseudo-disks on each drive are as follows:

RM03 partitions
diskstartlengthcyls
hp?a0158840-99
hp?b1600033440100-309
hp?c01316800-822
hp?d4960015884309-408
hp?e6544055936409-758
hp?f12144010080759-822
hp?g4960082080309-822

RM05 partitions
diskstartlengthcyls
hp?a0158840-26
hp?b164163344027-81
hp?c05003840-822
hp?d34169615884562-588
hp?e35811255936589-680
hp?f41404886176681-822
hp?g341696158528562-822
hp?h4985629134682-561

RP06 partitions
diskstartlengthcyls
hp?a0158840-37
hp?b158843344038-117
hp?c03406700-814
hp?d4932415884118-155
hp?e6520855936156-289
hp?f121220219296290-814
hp?g49324291192118-814

RM80 partitions
diskstartlengthcyls
hp?a0158840-36
hp?b160583344037-114
hp?c02426060-558
hp?d4991015884115-151
hp?e6809655936152-280
hp?f125888120466281-558
hp?g49910192510115-558

RP05 partitions
diskstartlengthcyls
hp?a0158840-37
hp?b158843344038-117
hp?c01717980-410
hp?d224215884118-155
hp?e6520855936156-289
hp?f12122050424290-410
hp?g2242122320118-410

RP07 partitions
diskstartlengthcyls
hp?a0158840-9
hp?b160006688010-51
hp?c010080000-629
hp?d37600015884235-244
hp?e392000307200245-436
hp?f699200308600437-629
hp?g376000631800235-629
hp?h8320029134652-234

CDC 9775 partitions
diskstartlengthcyls
hp?a0158840-12
hp?b166406688013-65
hp?c010777600-841
hp?d37632015884294-306
hp?e392960307200307-546
hp?f700160377440547-841
hp?g376320701280294-841
hp?h8448029134666-293

CDC 9730 partitions
diskstartlengthcyls
hp?a0158840-49
hp?b160003344050-154
hp?c02633600-822
hp?d4960015884155-204
hp?e6560055936205-379
hp?f121600141600380-822
hp?g49600213600155-822

AMPEX Capricorn partitions
diskstartlengthcyls
hp?a0158840-31
hp?b163843344032-97
hp?c05242880-1023
hp?d34201615884668-699
hp?e35840055936700-809
hp?f414720109408810-1023
hp?g342016182112668-1023
hp?h5017629134698-667

FUJITSU Eagle partitions
diskstartlengthcyls
hp?a0158840-16
hp?b163206688017-86
hp?c08083200-841
hp?d37536015884391-407
hp?e39168055936408-727
hp?f698880109248728-841
hp?g375360432768391-841
hp?h8352029134687-390

FUJITSU 2361 partitions
diskstartlengthcyls
hp?a0158840-12
hp?b166406688013-65
hp?c010777600-841
hp?d37632015884294-306
hp?e392960307200307-546
hp?f700160377408547-841
hp?g363520701248294-841
hp?h8448029134666-293

AMPEX 9300 partitions
diskstartlengthcyl
hp?a0158840-26
hp?b164163344027-81
hp?c04955200-814
hp?d34169615884562-588
hp?e35811255936589-680
hp?f41404881312681-814
hp?g341696153664562-814
hp?h4985629134682-561

It is unwise for all of these files to be present in one installation, since there is overlap in addresses and protection becomes a sticky matter.  The hp?a partition is normally used for the root file system, the hp?b partition as a paging area, and the hp?c partition for pack-pack copying (it maps the entire disk).  On disks larger than about 205 Megabytes, the hp?h partition is inserted prior to the hp?d or hp?g partition; the hp?g partition then maps the remainder of the pack.  All disk partition tables are calculated using the diskpart(8) program.

FILES

/dev/hp[0-7][a-h]block files
/dev/rhp[0-7][a-h]raw files

SEE ALSO

hk(4), uda(4), up(4)

DIAGNOSTICS

hp%d%c: hard error sn%d mbsr=%b er1=%b er2=%b.  An unrecoverable error occurred during transfer of the specified sector of the specified disk partition.  The MASSBUS status register is printed in hexadecimal and with the error bits decoded if any error bits other than MBEXC and DTABT are set.  In any case the contents of the two error registers are also printed in octal and symbolically with bits decoded.  (Note that er2 is what old rp06 manuals would call er3; the terminology is that of the rm disks).  The error was either unrecoverable, or a large number of retry attempts (including offset positioning and drive recalibration) could not recover the error. 

hp%d: write locked.  The write protect switch was set on the drive when a write was attempted.  The write operation is not recoverable. 

hp%d: not ready.  The drive was spun down or off line when it was accessed.  The I/O operation is not recoverable. 

hp%d%c: soft ecc sn%d.  A recoverable ECC error occurred on the specified sector of the specified disk partition.  This happens normally a few times a week.  If it happens more frequently than this the sectors where the errors are occurring should be checked to see if certain cylinders on the pack, spots on the carriage of the drive or heads are indicated. 

During autoconfiguration one of the following messages may appear on the console indicating the appropriate drive type was recognized.  The last message indicates the drive is of a unknown type. 

hp%d: 9775 (direct).
hp%d: 9730 (direct).
hp%d: 9300.
hp%d: 9762.
hp%d: capricorn.
hp%d: eagle.
hp%d: 2361.
hp%d: ntracks %d, nsectors %d: unknown device.

BUGS

In raw I/O read and write(2) truncate file offsets to 512-byte block boundaries, and write scribbles on the tail of incomplete blocks.  Thus, in programs that are likely to access raw devices, read, write and lseek(2) should always deal in 512-byte multiples.

DEC-standard error logging should be supported. 

A program to analyze the logged error information (even in its present reduced form) is needed. 

The partition tables for the file systems should be read off of each pack, as they are never quite what any single installation would prefer, and this would make packs more portable. 

4th Berkeley Distribution  —  June 1, 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026