An 8-bit-character computer
We present in this chapter the result of an exercise to design an 8-bit computer. Although a rather trivial machine, it is not without interest, either as manipulator of variable-length character strings or as an interpreter of more complex computers in a role similar to a microprogrammed Pc. In the latter role a read-only memory could be used as Mp to speed up the Pc.
This computer is typical of 8-bit character-oriented computers. Among the similar machines are the Interdata Model 3, the RCA 1600, the IBM System/360 Model 25, and the Data Machines Inc. DM1 520/I. A processor of this type rarely stands alone but is used with a fixed program in the following ways: as a control in a larger C, as a control to a laboratory or other complex instrument, and as a microprogrammed processor to interpret an ISP.1
The processor must perform fixed-length operations on both 8-bit characters and 16-bit addresses. The address (double length) operations are necessary for performance reasons, because almost all programs operate on address integers. (For example, see the program on page 185.) Thus, extending (generalizing) the operation length to three and four characters is comparatively inexpensive. It should be noted that a processor might allow the operation length to be specified between 1 and perhaps 28 (256) characters for a much more general capability. We limit the directly addressable Mp to 216 (or 65,384) characters. An alternative design might allow the maximum addressable Mp to be 224 words, or, alternatively, it could be variable. Although 24-bit operations are defined, their implementation might be expensive. Aligning the 24-bit words on 32-bit-word boundaries would simplify the address calculation hardware.
The basic information unit is the 8-bit character. Instructions are, in general, one character in length. However, both instructions and data formats are of variable length, instructions being 1, 2, 3, 4, and 5 characters long, and data being 1, 2, 3, and 4 characters long. The Pc state contains ~35 characters, which are organized to be dealt with as eight 8-, 16-, 24-, or 32-bit registers (shown in the ISP description in Appendix 1 of this chapter). Of these registers, the first (register 0) is taken to be a special accumulator, A.
The Pc state contains both operands and addresses to operands. The instructions to load or store register A, from or into Mp, with or without incrementing a general register, all use the general registers as a two-character address pointer. Any general register may be loaded or stored direct from or to Mp. The binary arithmetic and logical operations are with a register and the accumulator, and leave the result in the accumulator; i.e., they are of the form
Fig. 1. Instruction coding for an 8-bit-character computer.
1The structure should be compared with the elaborate microprogrammed IBM System 360/Model 30 (Chap. 32).