> On Mar 17, 2018, at 10:10 PM, Fritz Mueller via cctalk 
> <[email protected]> wrote:
> 
> 
>> On Mar 17, 2018, at 6:57 PM, Fritz Mueller <[email protected]> wrote:
>> 
>> I have a question about floating CSR allocation on PDP-11s.  Both the 1976 
>> and 1981 versions of the PDP-11 peripherals handbook indicate the floating 
>> CSRs are to be allocated starting at address 760010.  However, both the XXDP 
>> FLOAT program and simh's autoconfig suggest I should set my DZ11 (first 
>> floating CSR device in my config) to 760100.  Anyone know what gives?
> 
> Ah, I found the answer in the DZ11 technical manual: gaps are left for 
> between each device type that gets a floating CSR.  So for one DZ11, you get:
> 
> gap 160010 (no DJ11s)
> gap 160020 (no DH11s)
> gap 160030 (no DQ11s)
> gap 160040 (no DU11s)
> gap 160050 (no DUP11s)
> gap 160060 (no LK11s)
> gap 160070 (no DMC11s)
> DZ11 160100

Yes, and this is spelled out in the Peripherals handbook where the float rules 
are stated.  Note that for each device there is a position in the float list, 
and also a register block size.  The start address is a multiple of that block 
size (for example, for DH11 that is 20 octal, so DH11 addresses might be 160020 
or 160060, but not 160050.  After the CSRs for each device there is a gap; that 
gap appears even if there are zero of that device.  This rule is necessary to 
tell the devices apart.  When scanning the bus, if the first address that 
responds on the Unibus is 160070, that is a DMC11.

Vectors are different: those are allocated starting at 300 without gaps.  The 
way this is done is that you'd scan the CSR address range to see what devices 
are there, then given that known list of devices you fill in the vector 
addresses.

        paul


Reply via email to