[Simh] Unix v0 hardware
Bob Supnik
bob at supnik.org
Thu Feb 25 19:15:04 EST 2016
I'm fairly sure the disk in the "v0" listings is a precursor of the
RB09, with half the capacity. The read vs write bit is the correct
location. The code to convert from a disk block to a disk address first
divides by 80 (the RB09 has 80 sectors per track) and then "BCD-izes"
both the quotient (the track number) and the remainder (the sector
number). The words/sector is 64, which matches the RB09 as well. The
IOTs in the listing also match the RB09. The transfer count is always
-64 and is loaded with IOT 707124. The transfer address is loaded with
IOT 707142.
The "half capacity" comes from the limit check on the disk address,
which is 2 <= da <= 7999. An RB09 has 200*80 = 16000 sectors. The disk
in "Unix v0" has only 8000. Based on the way the code does the BCD
conversion, it is expecting only two decimal digits for the track number
and the sector number. This seems entirely plausible, because the RB09
was a head-per-track disk with heads on both sides of the platter. A
predecessor (or lower cost model) with heads on only one side would be
8000 sectors.
There is no standard disk with the PDP-7 simulator, but it's trivial to
add an "RB07" and provide a half size option: a hell of a lot easier
than it probably was in real life. Information on the RB09 is scarce
(just a section in the PDP-9 Handbook), but it was clearly a buyout
product, not a DEC design. DEC never did a BCD-addressed disk in its
history.
The PDP-7 for Unix v0 must have an EAE, but it does not require
automatic priority interrupts. The PI chain is a bit difficult to
decode, because of all the cross-outs and hand-written notes, but it
appears to be:
clsf - clock
dssf - disk
ksf - console keyboard
tsf - console printer
rsf - paper tape reader
psf - paper tape punch
crsf - card reader
So a Unix v0 emulation apparently will need a card reader but not
DECtape. Both PDP-7 card readers used the same instructions; they varied
only in performance.
The system call is the CAL instruction.
Unix v0 does not, surprisingly, appear to use the extended memory
function or the protection trap that came with it. EEM (enter extend
mode) isn't even defined. This would seem to imply it ran in 8KW of memory.
/Bob Supnik
More information about the Simh
mailing list