View Full Version : CPU/ISA Clock on XT Clones and Turbo button behavior

August 26th, 2017, 12:08 AM
Some turbo clones (such as the VTech Laser XT turbo according to its manual) seem to run the ISA bus at 4.77 MHz regardless of whether or not turbo is enabled for maximum compatibility. Others, of course, run the ISA bus clock at frequencies such as 8, 9.54, 10, or 12 MHz - whatever the 8088-compatible CPU is running at.

What I cant figure out is whether the turbo button also slows down the ISA bus clock to 4.77 MHz in machines that operate it faster than that speed. Does anyone know? Does it differ from card to card? I can't normally think of any situations where the ISA bus is clocked faster than the CPU, so I don't know if that's inherently unstable.

August 26th, 2017, 08:41 AM
Back in the old days of the XT and XT clones, a DIY speedup was possible by using a simple XCO, piggy-backing it anywhere it would fit, and running the output into pin 14 (EFI) of the 8284 and then lifting pin 13 from ground and running a wire to what used to be the 8255 cassette motor control line on the 5150 (but unassigned in the 5160). Or you could take the pin 13 wire and run it to a SPDT switch between +5 and GND and have manual control. This was cheap and dirty and cost less than $10 to do to be able to use a higher-speed CPU (either 8088 or V20). Early XT Taiwanese clone builders incorporated this into their motherboards as a "feature"--most incorporate a little code into the keyboard interrupt handler to toggle the 8255 line.

But there were some big problems. The most obvious was that the 8254 PIT chip would run too fast and the time-of-day readings would be off. You could incorporate some code in the BIOS to compensate, but games and other programs that relied on the 55 msec. interrupt period did not suffer the changes well. Back then, also, there were some programs and the floppy BIOS code that used CPU loops for timing. One approach to fix the floppy thing was to kick the CPU clock back down during Int 13h processing.

Another huge problem was that the bus ran too fast. Some cards didn't tolerate the "relaxed" timing very well. And finally, if you had an original CGA card which used the 14MHz bus signal for a chroma reference, things just didn't look right.

So the design evolved to run the critical stuff such as the PIT, the bus and the reference clock from a separate 14MHz oscillator and let the CPU have its own switchable clock. These were all later clone designs, but worked far better.

When specialized LSI support chipsets came into the picture, you could select what speed the bus was to run at, independent of the 14MHz reference. You still had to provide support for the 4.77MHz CPU as some things (games and such) were written specifically for the slower speed. But most things would otherwise run just fine.