Hi Everybody
I was reading some doco last night (specifically the DEC RL11/01 Disk
Subsystem Training Handout), and I am confused.
(That is nothing new...)
In the "Subsystem commands section", the addresses specified for DAR and
CSR are 774404, and 774400 respectively, but in the back of the
document, under the 'toggle in programs' section, the DAR and CSR are
shown as being at 174404 and 174400 respectively.
Hmmm. I see three possibilities:
1. I have (re) discovered a documentation error - I wonder if DEC, no,
HP, no Compaq, would be happy for me to submit an amendment :-)
2. The hardware throws away the upper bits so both references are
correct. Hmmm Possibly not :-)
Actaully, that's close. The thing is, the physcial Unius address is 18
bits wide (a full 6 octal digits), whereas the PDP11 is a 16 bit
processor, so any addresses calculated by a program are 16 it numbers.
Now, on the larger PDP11s, there's a memory management unit that
translates 16 bit adresses into 18 bit ones. But on smaller machines, and
on all machines when the MMU is not enabled (in software), the hardware
extendes the 16 bit address to an 18 bit one by a very simple method. If
the top 3 bits of the 16 bit address are all 1's (that is, it's between
160000 and 177777), then the top 2 address lines of the 18 bit address --
the ones that are not part of the 16 it address -- are both set.
Otherwise they're both reset. These addresses correspond (normally) to
I/O devices, not memory.
So, if you/re not using the MMU, then from a program you talk to the RL11
at 174400. From the front paeel, which (on machines with an MMU, at
least) generates the full 18 it address, you use 774400
-tony