Floating device vectors

From Computer History Wiki
Jump to: navigation, search

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