Floating device vectors
Floating device vectors are a block of interrupt vectors in low main memory on the UNIBUS (and later the QBUS). Originally, each specific peripheral was assigned a fixed address for its vector(s); once the number of different device types became large, circa 1975, this was no longer feasible (or scalable), and the 'floating' approach was adopted instead.
In this, a block of vectors (from 0300 to 0776) is allocated for 'floating' devices. Within that block, devices are assigned in a fixed order, with all the devices of any type in a contiguous group. If a device type which has only one vector (4 bytes) has an odd number of devices, and is followed by a device type with pairs (or more) of vectors, which generally are aligned on a 010 boundary, there will have to be an unused vector between them.
The floating devices, in assignment order, are:
|1||TU58||010||No config for systems with DC11 + TU58|
|7||DH11 modem control||04|
|23||DV11||014||Also modem control|
|35||RX211||04||Missing from PDP-11 Architecture Handbook|
It will be noticed that the types with an 'extra unit annotation are all mass storage devices, generally disks. This probably means that the 'base' unit is assigned a fixed vector, so that bootstraps do not have to contain the lengthy algorithm to deal with floating vectors in order to boot from them.
- PDP-11 Architecture Handbook (not online); 'Floating Vectors', in Appendix A
- peripherals handbook (1981-82) - Appendix D, 'Floating Vectors' (pp. 492-493 of the PDF]