Section 1½ Microprogram-Based Processors 157

of minicomputer/maxicomputer ISPs (e.g., the *System/370 *and the PDP-11). The 2901 data-types are sufficient for microcoded controller applications and emulation of simple ISPs (e.g., the PDP-8 and the HP-2116).

- The 2903 allows for expansion of the number of working registers beyond 16. Thus the hardware register-bank switching (used in fast-context swap situations such as interrupt processing and operating-system calls) defined in contemporary ISPs can be implemented with 2903s but not 2901s.

- The 2909 microsequencer is bit-sliced so that the user can choose microaddresses whose lengths are a multiple of 4. The 2910 is a single, noncascadable chip with a fixed microaddress width of 12 bits.

- The microsequencers deal with one data-type: addresses (or unsigned integers). Thus only simple-integer operations are supported (e.g., increment, stack PUSH/POP, and external ORing for microbranches). The 40-pin 2910 offers a more extensive set of operations than the 28-pin 2909. The 2910 has a loop counter that can be used in microinstruction loops (e.g., multiplication or division routines and block- transfer control). In addition, the 2910 has 16 sequence- control instructions, most conditioned by external inputs, including a three-way BRANCH.

**Am2903/2910 ISP.** The ISPs of the 2903 and 2910 are provided as an appendix to Chap. 14. The reader is encouraged to use the ISP in implementation exercises, such as the one in Chap. 15.

**PDP-8 Implementation with the Am2903/2910. **Chapter 15 provides the Am2903/2910 microcode for a basic PDP-8. This design should be contrasted to the SSI PDP-8 implementation in Chap. 8.

The three chapters on HP calculators illustrate the evolution of a concept and its microprogrammed implementation.