[Simh] Write sector headers to disk

Rob Doyle radioengr at gmail.com
Tue Jun 25 13:33:04 EDT 2019


On 6/24/2019 11:31 PM, Lars Brinkhoff wrote:
> Hello,
> 
> Some of DEC's disks allow reading and writing the sector headers.  ITS'
> disk formatting program, SALV (the Salvager), uses this to make a new
> file structure on a pack, and to verify its integrity.
> 
> This isn't fully supported by SIMH.  The file PDP10/pdp10_rp.c has the
> comment "23-Aug-01  RMS  Added read/write header stubs for ITS", and the
> stub is in "case FNC_WRITEH" in rp_svc.  It's a no-op that just sets the
> DONE flag.
> 
> What is supposed to happen is that SALV wants to write two header words
> with geometry information and then the sector data with a particular bit
> pattern.  The verification phase reads back and checks the bit pattern.
> Since those bits aren't written, the verification fails.
> 
> This isn't so bad since SALV offers to skip the verification.  But now
> this has come up again using Rich Cornwell's upcoming KA10 addition to
> SIMH.  The KA10 version of SALV does the same with an RP04 disk, but
> does not have the option to skip the verification.  SALV also writes
> some information to the key fields in the headers, which is later read
> back.
> 
> I'm wondering what your opinions are reagarding this?  I see some options:
> 
> 1. Do not change SIMH.  Patch SALV to skip the verification.  Obviously
> this is quite quick and painless, but leaves me with a slightly
> dissatisfied feeling.  Some historical software isn't running properly.
> 
> 2. Add header words to the disk image file.  An incompatible change, but
> should of course be optional.
> 
> 3. Store header words out of band somehow.  Last in the image file?
> In another file?
> 
> I understand the case for making changes to SIMH is quite weak if
> running SALV is the one and only use case.  Are there any other programs
> that reads or writes the headers?

I dealt this that issue a bit when I was writing the RP06 disk drive
controller and disk emulator for the KS10 FPGA: a number of the RP06
diagnostics fail because they attempt to read/write to the sector header.

One thought that should help: SIMH stores 36-bit data inside a 64-bit
data word. There is plenty of unused whitespace inside the existing disk
image. There is no reason for an incompatible change.

In the end, I just used a (volatile) RAM buffer to store the sector
header in the FPGA and that was good enough for the DSRPA diagnostic.

Obviously, the contents of the sector header is not portable between
disk types. In fact, the RP06 has a different sector header depending if
the disk is formatted for 16-bit (PDP11) or 18-bits (PDP10).

The other source of diagnostic failures involved the testing of the disk
drive's Error Correcting Code (ECC) hardware. Funny enough, I picked a
book (published by MIT Press in 1960) out of the trash at work a couple
of months ago that fully described the "Fire Code" ECC of these disk
drives. Maybe that will get revisited.

Rob Doyle



More information about the Simh mailing list