Inside the Apple-1's unusual MOS clock driver chip

Apple's first product was the Apple-1 computer, introduced in 1976. This early microcomputer used an unusual type of storage for its display: shift register memory. Instead of storing data in RAM (random-access memory), it was stored in a 1024-position shift register. You put a bit into the shift register and 1024 clock cycles later, the bit pops out the other end. Since a shift-register memory didn't require addressing circuitry, it could be manufactured more cheaply than a random-access memory chip.1 The downside, of course, is that you had to use bits as they became available, rather than access arbitrary memory locations. The behavior of shift-register memory was a good match for video circuitry, though, since characters are displayed on the screen in a fixed, repeating order (left to right and top to bottom).2


The Apple-1 was sold as a bare board, so users needed to make a case for it, or mount it in a briefcase as shown here.
Note the cassette drive used for mass storage.
Photo cropped from Binarysequence, CC BY-SA 4.0.

The Apple-1 was sold as a bare board, so users needed to make a case for it, or mount it in a briefcase as shown here. Note the cassette drive used for mass storage. Photo cropped from Binarysequence, CC BY-SA 4.0.

Shift-register memory chips required clock pulses with high current and unusual voltages: from +5 volts to -11 volts. These pulses were provided by a special chip, the DS0025 Two-Phase MOS Clock Driver. This chip, introduced in 1969, was the first monolithic (i.e. integrated circuit) clock driver. In this blog post, I look inside the chip and explain how it was implemented.

Die of the DS0025 clock driver. Click this image (or any other) for a larger version.

Die of the DS0025 clock driver. Click this image (or any other) for a larger version.

The photo above shows the silicon die under the microscope. This chip is very simple, containing four large NPN transistors, four diodes, and four resistors. The silicon appears blue-gray in this image, while the metal layer on top appears speckled white. Around the outside of the die, are six dark rectangles, the pads where golden bond wires connected the die to the chip's external pins.

The die was encased in an epoxy package. To expose the die, Eric (@TubeTimeUS) tediously sanded through the plastic package until the die was visible. Some bits of epoxy remained, caught in the bond wires, so I cleaned up the die with a few drops of boiling sulfuric acid.

The Apple-1's display

The Apple-1 displayed 24 lines of forty characters on a television monitor. Like most computers at the time, the Apple-1 stored characters rather than pixels to reduce memory requirements. A character-generation ROM converted each character into a 5×7 matrix of pixels as it was displayed. To reduce memory even more, the display didn't store full bytes, but 6-bit characters, supporting upper-case letters, numbers, and some symbols.

The six-bit display characters were held in six 1024-bit shift registers. A seventh shift register tracked the cursor position.3 The diagram below shows the shift registers and the clock driver on the Apple-1 circuit board. These chips are in 8-pin packages, so two chips fit into the space of a regular TTL chip.

Apple-1 circuit board, showing the 1024-bit shift register chips and the clock driver chip.
Original image from
Achim Baqué, CC BY-SA 4.0.

Apple-1 circuit board, showing the 1024-bit shift register chips and the clock driver chip. Original image from Achim Baqué, CC BY-SA 4.0.

Transistors

Next, I'll discuss the components of the chip. Because the chip generates high-current pulses, it uses large NPN transistors, with a different construction from most integrated circuit transistors. Each transistor consists of 24 emitters, paralleled in two groups. (You can consider it one large transistor, 2 transistors, or 24 small transistors.) The transistor is structured vertically with the collector (made of N-doped silicon) underneath, a thin P-type base in between, and the N-type emitters embedded in the top, forming the N-P-N layers of the transistor. The doped silicon regions are faintly visible with black lines around their boundaries.

Half of a transistor, with 12 emitters.

Half of a transistor, with 12 emitters.

In the photo above, you can see the metal wiring for the transistor's collector, base, and emitter. The collector wiring is on the outside, with base wiring in between. The collector and emitter wiring is tapered: at one end, the wiring needs to support the full current load, while at the other end it only handles 1/12 of the current. The tapered approach saves space, since it is thicker only where it needs to be thick.

Resistors

The resistors are formed from silicon doped to have higher resistance. The doped silicon rectangle is faintly visible in the die photo. At each end of the resistor, a contact connects the silicon to the metal layer on top. The 1000Ω resistor on the left is longer than the 250Ω resistor on the right, giving it more resistance.

Two resistors as they appear on the die.

Two resistors as they appear on the die.

"Tunnels"

The chip has a single layer of metal wiring, which poses a problem if two signals need to cross. The solution is to put one signal in the silicon layer so it can pass under the metal layer. In essence, a low-valued resistor is used to pass under the metal layer. The image below shows how a tunnel appears on the die.

The conductive silicon strip at the top connects the metal regions on either side. The conductive strip at the bottom doesn't fulfill a wiring need, but ensures that both paths encounter the same resistance.

The conductive silicon strip at the top connects the metal regions on either side. The conductive strip at the bottom doesn't fulfill a wiring need, but ensures that both paths encounter the same resistance.

One problem is that the silicon has relatively high resistance compared to metal, so the tunnel adds resistance. The chip is carefully designed so both "sub-transistors" encounter the same resistance, to avoid one transistor turning on before the other. You can see that the input path in the upper left has a tunnel to pass under the metal wiring, while the path in the lower right has a tunnel of identical dimensions that doesn't go under any metal. While the second tunnel appears pointless, it assures that both paths have the same resistance.

The chip's circuit

The shift register requires a two-phase clock, that is two clock signals in alternation that step the bits through the circuit. To support this, the clock driver chip has two identical driver circuits. The schematic below shows one of the circuits. When the input goes high, it turns on transistor Q1, pulling its collector low. This pulls the output low through diode CR2. When the input drops, Q1 turns off. This lets R2 provide a current to the base of Q2, turning it on, and pulling the output high. Thus, the circuit is essentially an inverter, but one that can provide up to 1.5 amps of output.4

Schematic of the DS0025, from the application note.

Schematic of the DS0025, from the application note.

The image below shows the various components of the schematic as they appear on the die. Most of the chip is occupied by the large power transistors. Although the chip is mounted in an 8-pin package, only six pins are used; the corresponding pads are labeled below. The chip consists of two identical mirror-image drivers; one is labeled. There are a few blackened regions in the transistors; we suspect this is where the chip failed.

Die with the components labeled.

Die with the components labeled. Note: diodes are labeled CR (crystal rectifier) in the schematic but D here.

Conclusion

This chip provides an interesting view of computer technology in the 1970s. The Apple-1 used shift-register memory, a technology that rapidly became obsolete as RAM prices dropped. Shift-register memory required a specialized clock driver integrated circuit, a chip that contained just four large transistors. With billions of transistors in modern integrated circuits, it's hard to imagine that it was once worthwhile to build a chip that was this simple. The Apple II, introduced just a year later in 1977, used RAM chips for all its storage, making shift-register memory a thing of the past.

I announce my latest blog posts on Twitter, so follow me @kenshirriff. I also have an RSS feed. Thanks to @TubeTimeUS for supplying the chip. I've written about the Intel 1405 shift register memory if you want to know more about this type of storage.

Notes and references

  1. Looking in an old Byte magazine from 1976, a 1-kilobit shift register chip cost $9 ($34 in current dollars), while a 4-kilobit DRAM chip cost $20 ($75 in current dollars). Thus, it appears that even by the time the Apple-1 was released, DRAMs had become cheaper than shift registers. (This also illustrates the amazing drop in memory prices since the 1970s, as described by Moore's Law.)

    The Apple-1 used 4-kilobit RAM for data and program storage. It's possible, though, to build a computer that uses shift-register storage for its main memory. The Datapoint 2200 is one example. If memory is accessed sequentially, shift-register storage is efficient since the bits are provided sequentially. However, if you access memory out of sequence, the processor has to wait while the memory cycles around, until the desired bits become available. In a way, shift-register memory is a throwback to very early computers such as EDSAC(1949), which used mercury delay lines for main storage. 

  2. The IBM 2260 video display terminal (1965) used a technique similar to shift registers: it stored data in a sonic delay line, sending torsional pulses through a 50-foot nickel wire. But unlike the Apple-1, this delay line stored pixels, not characters. For more about this system, see my blog post

  3. The display circuitry has some additional complexity. Characters can't be taken directly from the display shift register: since each character is made up of eight scan lines; a line of character must be processed eight times. To handle this, a second shift register (six 40-bit registers) buffers a line of characters and feeds each character into a display ROM. Another 1024-bit shift register keeps track of the cursor position. For more details, see this post. The Apple-1 schematic is in the Operation Manual

  4. The large current is required because of the design of the shift-register memory. The clock line snakes through the chip, providing a clock signal to each stage of the shift register. As a result, the clock line has a fairly high capacitance, about 150 picofarads. This clock line must be switched between +5 volts and -11 volts at a 1 megahertz rate. The combination of large capacitance and large voltage swing with the fast rate requires a high current. 

Reverse-engineering the waveform generator in a 1969 breadboard

How hard could it be to fix a vintage solderless breadboard that doesn't quite work? The "elite 2 circuit design test system" below combined a solderless breadboard with some supporting circuitry: power supplies, a waveform generator, a pulse generator, switches, and lights. CuriousMarc found one of these breadboards on eBay, but the function generator didn't work, so we set out to repair it.

The E&L Instruments elite 2 solderless breadboard has a variety of supporting circuitry.

The E&L Instruments elite 2 solderless breadboard has a variety of supporting circuitry.

I figured that the waveform and pulse generators would be simple circuits, but they turn out to be implemented with a board crammed full of components, including over 40 transistors. I reverse-engineered the circuitry and found some interesting circuits inside, including op-amps implemented from discrete transistors. This complexity probably explains the shockingly high price of this breadboard: $1300 in 1969 (equivalent to $10,000 in current dollars).1

The circuit board for the function/pulse generator is crammed full of components. The upper part holds the waveform circuitry while the lower part holds the pulse generator.

The circuit board for the function/pulse generator is crammed full of components. The upper part holds the waveform circuitry while the lower part holds the pulse generator.

The waveform generator

The breadboard has a waveform generator that produces triangle, square, and sine waves over a wide frequency range, up to 1 megahertz. These waveforms are generated through a complex circuit that charges and discharges an integrator to produce the triangle wave. A comparator turns the triangle wave into a square wave. Finally, a sine-wave shaping network produces a sine wave from the triangle wave.

Triangle-wave generator

The oscillator's frequency is selected by resistors and capacitors. The faster the capacitor charges through the resistor, the higher the frequency. Thus, increasing the capacitance and resistance slows the oscillation. The frequency range knob turns a vintage wafer rotary switch to select one of seven different resistors and capacitors, allowing frequencies over a wide range from 1 Hertz to 1 megahertz. A potentiometer adjusts the frequency within the range to provide the exact desired frequency.

The triangle wave is generated from an op-amp integrator circuit, using the approach below. This circuit uses the capacitor to integrate the input voltage, producing the output voltage. The result is that the square wave input increases or decreases the output linearly, yielding a triangle wave. (The op-amp keeps that right side of R1 at ground, so the current that charges the capacitor is proportional to the input voltage. In contrast, in a simple R-C charging circuit, the capacitor charges exponentially; the charging current drops as the capacitor's voltage increases.)

A simplified op-amp integrator, based on image by Rutujadeshpande, CC BY-SA 3.0.

A simplified op-amp integrator, based on image by Rutujadeshpande, CC BY-SA 3.0.

To make an oscillator, the other piece is a comparator to provide the square wave input to the integrator. The comparator reverses direction at the top and bottom of the triangle wave, as shown below. When the input to the integrator is positive, the integrator output climbs linearly. This output is fed into the comparator, along with a limit level (red dots). When the output exceeds the upper limit at "A", the comparator output becomes negative. Since the comparator output is used as the integrator input, the integrator now discharges and the signal drops. When the signal drops below the limit at B, the comparator switches on and the process repeats. A hysteresis circuit changes the comparator level (dotted red line) at A and B, setting the upper and lower limits of the triangle wave.2

The triangle-wave generation process.

The triangle-wave generation process.

The comparator is a 710HC, a simple differential comparator integrated circuit introduced by Fairchild around 1965. This is one of just two integrated circuits on the board.3 The IC is packaged in an 8-pin circular metal can. This package was common at the time for analog integrated circuits, as the metal can provided shielding.

The 710HC comparator is packaged in a round metal case.

The 710HC comparator is packaged in a round metal case.

Op-amp

The op-amp is a key component of the integrator. Although integrated-circuit op-amps date back to 1963, this board builds op-amps out of discrete components. The integrator op-amp consists of seven transistors, along with a bunch of resistors and capacitors, as shown below. The heart of the op-amp is the differential pair (Q30 and Q32), a standard analog circuit. A fixed current is fed into the differential pair transistors. If one transistor has a slightly higher input than the other, that transistor turns on and most of the current will go through that transistor. Thus, the differential pair amplifies the difference between the inputs, the key function of an op-amp. Additional amplification is provided by Q33, while Q34 and Q35 buffer the dual outputs.

Implementation of an op-amp in the waveform generator.

Implementation of an op-amp in the waveform generator.

The output amplifier for the waveform circuit uses another discrete op-amp. This one has two stages of differential pairs for additional amplification, followed by power transistors to produce a high-current output. Another op-amp circuit is used in the sine-wave shaper, discussed below.

Sine-wave shaper

The board uses a surprising technique to generate sine waves: it synthesizes a sine wave from the triangle wave. Specifically, a resistor-diode network shapes the sine wave using piecewise-linear segments. The idea is to use diodes as switches that turn on as the signal level crosses various points. This adds resistance into the circuit, changing the slope. The result is a sine wave with less than 1% distortion.

This diagram explains the sine-wave shaping network. From HP Journal, Nov 1965.

This diagram explains the sine-wave shaping network. From HP Journal, Nov 1965.

The sine-wave shaper appears to be inspired by the similar circuit in the HP 3300A Function Generator, introduced in 1965. The schematic below shows the HP 3300A's sine-wave shaper; the breadboard's network is similar. The resistances are carefully chosen to achieve the sine wave. Similar resistor-diode networks were also used in analog computers to implement arbitrary functions, sometimes with user-adjustable resistances to change the function.

The sine-shaping circuit from the HP 3300A is very similar to the circuit in the breadboard. The resistor-diode network is highlighted. The surrounding circuitry biases the network and amplifies the output. From the Service Manual Fig 6-2.

The sine-shaping circuit from the HP 3300A is very similar to the circuit in the breadboard. The resistor-diode network is highlighted. The surrounding circuitry biases the network and amplifies the output. From the Service Manual Fig 6-2.

Pulse generator

The pulse generator produces pulses from 100 ns to 100 ms wide. These pulses can be triggered by the waveform generator, an external trigger input, or a "one-shot" pushbutton. The pulse width is controlled by a switch-selectable resistor-capacitor network.

The most unusual part of the pulse generator is how the output circuit adjusts the pulse amplitude. Instead of simply adjusting the amplification, the circuit changes the voltage that powers the output amplifier. This variable voltage is produced by an LM305 voltage regulator IC, adjusted by the amplitude knob on the breadboard. A four-transistor circuit produces the matching negative voltage.4 These voltages power a fairly complex output stage with two circuits. One circuit produces positive pulses, while the other produces negative pulses.

The LM305A integrated circuit is in an old-fashioned metal can.

The LM305A integrated circuit is in an old-fashioned metal can.

Conclusion

A prototyping breadboard may seem like a simple product, but everything becomes more complicated when built with 1969 technology. This breadboard includes a precision waveform generator and power supplies, designed for high accuracy, so it was almost like having test equipment included. But these features came at a steep price, equivalent to $10,000 today.

After I reverse-engineered the board,5 CuriousMarc used the schematic to fix the problems. The breadboard turned out to be in bad shape with a broken wire, a bunch of bad transistors, and a failed bridge rectifier in the power supply.6 It's unclear why the board had so many problems, more than you'd expect from age alone. Maybe the power supply over-voltaged the components at some point? My full schematic for the board is here.7

Some of the bad transistors that needed to be replaced.

Some of the bad transistors that needed to be replaced.

CuriousMarc now has a video about the breadboard, so check it out:

Follow me on Twitter @kenshirriff for more posts. I also have an RSS feed.

Notes and references

  1. The breadboard is described in a 1971 brochure

  2. The hysteresis circuit is critical to the stability of the triangle wave. If the comparator input doesn't immediately switch to the lower level at "A", the comparator will switch again as soon as the integrator output drops slightly. Then the integrator will start rising, causing the comparator to switch again. The result is undesired high-speed oscillations (around a megahertz) with the triangle wave remaining stuck. This happened to us while attempting to repair the circuit when we replaced the hysteresis transistor with one that was a bit too slow. 

  3. One unusual feature of the comparator chip is its asymmetrical power supplies. The positive supply (Vcc+) can go up to 14 volts, while the negative supply (Vcc-) is limited to -7 volts. This is inconvenient for the breadboard, which uses ±12 volt supplies internally. The solution is that the breadboard uses a 6.2-volt Zener diode to reduce the negative supply to the chip. R-C filters in the supply lines to the chip reduce noise. 

  4. The negative-voltage circuit produces a negative voltage to match the user-selected positive voltage. In essence, it uses feedback from a resistor voltage divider between the positive and negative rails. When the two voltages are equal (and opposite), the voltage divider will yield 0 volts. If the voltages don't match, the signal from the voltage divider provides feedback to increase or decrease the negative rail as necessary. 

  5. To reverse-engineer the board, I used a process that I've developed recently that works well. I took photos of both sides of the board and used the GIMP software to mirror one image and then align the images using the perspective tool. Next, I created a schematic in EAGLE, putting the symbols in their approximate locations. I wired up the schematic by drawing connections in EAGLE and marking the traces in GIMP as I handled them. The result of this was a "physical" schematic, approximately matching the board's layout.

    The next step was to rearrange the components in EAGLE to create a more logical "functional" schematic. (I find that EAGLE works better than KiCad for this.) This schematic helped me understand how the circuitry was implemented, and we used it to trace through the circuitry and diagnose its problems. 

  6. The breadboard has five different power supplies: three user-adjustable power supplies, and two supplies for internal use, providing unregulated ±32 volts and regulated ±12 volts. Modern systems typically use compact switching power supplies, but the breadboard uses two large and heavy power transformers. Five large power transistors provide regulation, along with massive capacitors. Overall, the power supply illustrates how much power supplies have improved since the 1960s. 

  7. Disclaimer: the schematic isn't completely accurate. In particular, I didn't look up component numbers, so I'm kind of guessing on NPN vs PNP transistors and there are definitely errors. I also didn't record resistor and capacitor values. (The purpose of the schematic was to guide the repairs, not to completely document the device.)