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:
Rank | Device | Size | Comment |
---|---|---|---|
1 | DC11 | 010 | |
1 | TU58 | 010 | No config for systems with DC11 + TU58 |
2 | KL11 | 010 | Extra units |
2 | DL11-A/DL11-B | 010 | Extra units |
3 | DP11 | 010 | |
4 | DM11-A | 010 | |
5 | DN11 | 04 | |
6 | DM11-BB | 04 | |
7 | DH11 modem control | 04 | |
8 | DR11-A | 010 | |
9 | DR11-C | 010 | |
10A | PA611 | 04 | Reader |
10B | PA611 | 04 | Punch |
11 | LPD11 | 010 | |
12 | DT11 | 010 | |
13 | DX11 | 010 | |
14 | DL11-C/DL11-D/DL11-E | 010 | |
15 | DJ11 | 010 | |
16 | DH11 | 010 | |
17 | GT40 | 020 | |
17 | LSV11 | 020 | |
18 | LPS11 | 030 | |
19 | DQ11 | 010 | |
20 | KW11-W | 010 | |
21 | DU11 | 010 | |
22 | DUP11 | 010 | |
23 | DV11 | 014 | Also modem control |
24 | LK11 | 010 | |
25 | DWUN | 010 | |
26A | DMC11 | 010 | |
26B | DMR11 | 010 | |
27 | DZ11 | 010 | |
28 | KMC11 | 010 | |
29 | LPP11 | 010 | |
30 | VMV21 | 010 | |
31 | VMV31 | 020 | |
32 | VTV01 | 020 | |
33 | DWR70 | 020 | |
34 | RL11 | 04 | Extra units |
35 | RX211 | 04 | Missing from PDP-11 Architecture Handbook |
36 | TS11 | 04 | Extra units |
37 | LPA11 | 010 | |
38 | IP11 | 04 | |
39 | KW11-C | 010 | |
40 | RX11 | 04 | Extra units |
41 | DR11-W | 04 | |
42 | DR11-B | 04 | Extra units |
43 | DMP11 | 04 | |
44 | DPV11 | 04 | |
45 | ML11 | 02 | MASSBUS device |
46 | ISB11 | 04 | |
47 | DMV11 | 04 | |
48 | DEUNA | 02 | |
49 | UDA50 | 02 | Extra units |
50 | DMF32 | 020 | |
51 | KMS11 | 06 | |
52 | PCL11-B | 04 | |
53 | VS100 | 02 | |
54 | TU81 | 02 | Extra units |
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.
See also
Further reading
- PDP-11 Architecture Handbook (not online); 'Floating Vectors', in Appendix A
External links
- peripherals handbook (1981-82) - Appendix D, 'Floating Vectors' (pp. 492-493 of the PDF]