Monday, May 3, 2021

Forty Years of Personal Computing - 6800 - The Need for Speed

The 1.0 MHz clock board, attached to the back
of the MP-A CPU board.
When I ordered my SWPTc 6800 Computer System, I was expecting a 1 MHz 6800 computer. It wasn't quite.

Yes, 1 MHz seems glacially slow by today's standards, but this was 1977! And the Motorola and MOS Technology chips of that time could access memory in a single clock cycle, so they were just as fast as the Intel or Zilog chips at twice the clock speed. (Those devices needed two clock cycles, minimum, to access memory and typically ran 2-5 MHz)

Perhaps as a cost-saving measure, the SWTPc MP-A board only has one crystal. This crystal connects to the MC14411 bit rate generator, which requires one specific frequency: 1.8432 MHz. The MC14411 contains a number of divisor networks to offer common bit rates for serial communication. 

The designers of the MP-A used one of those outputs to drive the MC6800 at exactly 0.9216 MHz through clock conditioning circuitry. The MC6800 has two clock inputs that must be non-overlapping. This required about three integrated circuits and about 20 discrete components to produce. (Motorola later developed the MC6875 chip for this purpose. The later MC6802 had an on-chip clock oscillator and driver)

Clever, perhaps, but disappointing. It meant that my computer was almost 8% slower than specified. 

Harsh Reality

Original crystal from my MP-A.
All this assumes you are start with a 1.8432 MHz crystal. In my unit, the crystal was actually 1.7971 MHz! This must have been another cost-saving measure. Perhaps the 1.8432 crystals weren't available, or perhaps they were more costly, since they substituted a unit that was 2.5% slower. 

This meant that I didn't have a 0.921 MHz computer, I had a 0.89 MHz computer. It was 11% slower than 1 MHz.

This would not do. 

First Modification

Changing the clock speed is actually a simple matter - one need only introduce a clock signal into the conditioning circuits that drive the MC6800. All you needed was a crystal oscillator and a 1 MHz crystal.

Close-up of the clock board.
I used a very simple circuit using two gates of a 7400 to create a very reliable oscillator. Even though this circuit was really simple, I wanted it to neatly attach to the CPU board. So, I etched a small circuit board. This was perhaps my second or third attempt at making a printed-circuit board, so it isn't pretty.

I masked the board by hand-painting etch resist. The lines are not very straight, and the lands have all different sizes. Most of the board was unetched and forms a ground plane that the crystal case is tied to. The result is very crude and rough.

Crude but functional etching.
The smallest drill bit I had was quite large for the pins, so the chips and other components don't rest very snugly, and are held in with solder blobs. All of the parts came used out of my electronics junk box, so they are different sizes. Only three wires connect to the MP-A: 5 volt power, ground, and the oscillator output. 

It worked!

I now had a computer which was 11% faster than stock. At the time, It really felt like I had improved the computer.


Having an external clock oscillator means you can experiment with different clock speeds. Some time circa 1980, it dawned on me that I might push the processor faster than 1 MHz

Now, the Motorola 6800 microprocessor line had different codes for different speeds. No letter indicated 1 MHz, and "A" indicated 1.5 MHz, and "B" was 2 MHz (eg an MC68A00 is 1.5 MHz, and MC68B00 is 2 MHz). This wasn't just for the processor, but it applied to all the peripheral devices in the line (MC6810, MC6820, MC6830, MC6850, etc). All of my components were 1 MHz only. Could it possibly work at higher speeds?

At an electronics shop, I found a surplus 2.01 MHz crystal cheap, so I figured I'd give it a try. I removed the 1.0 MHz crystal and installed the new unit.

It worked!

I ran that computer for a couple of years in that configuration, and I never had a problem. Those 1 MHz components could work at 2 MHz, although likely not through the entire 0 to 70 degrees C rating for commercial devices. 

This experience proved useful several years later at work, circa 1985. We had upgraded from the 4.77 MHz IBM PCs to 6 MHz IBM ATs. Of course, I opened up mine immediately and noted that the CPU crystal was 12 MHz and socketed. A trip down to the electronic surplus store netted several crystals at 16, 18 and 20 MHz. That IBM AT on my desk would not boot up at 10 MHz (using the 20 MHz crystal), but it ran just fine at 9 MHz. I made the same modification to several other colleague's computers as well to 8 or 9 MHz. We ran that way for years. And when it came time to turn them in, the original 12 MHz crystal was easily swapped back in.