- Sat, 2013-11-23 03:34
- 0 Comments
The PLL tower that saved CES - Short Version
As the 1986 CES show approached almost all problems had been fixed or (temporarily) covered up. We were doing things like turning down the voltage in the power supply when the station was destined to run multi-character color mode which was a common mode for C64 games and alternatively turning up the supply to its upper rail when trying to use the 80 column display.
We also had hand selected some 8563's that worked better than others, yield was a little below 1% for good chips. Employees traveling to the show were tasked with hand carrying 8563's as the good ones were found from the ongoing testing. We would literally change out the 8563 and crank the voltage right in front of visitors to the booth; I made it into a "demonstration" of the chip layout and the first adjustable Commodore power supply.
Prior to that we had been promised rev after rev of the 8563 that the next rev would fix everything when the revs were actually getting worse. Fred Bowen showed that the act of just loading the Character Font into VDC memory would cause the chip to lock up and go blank requiring a reboot. When the rev we were counting on to make the show came out on Christmas week it was even worse. We figured out that the chip designer didn't consider the crash issue a problem so when he said it would be fixed, he wasn't talking about fixing the fact that writing to the chip would cause it to crash within a couple of seconds.
The designer of the '8563 said he never witnessed the crash so it must be a bad computer design. I had called him out rather loudly and in front of "manager's row", so the people that went down to witness the fact that there was no problem resembled a rabble (we were handing out pitch forks). Turns out that the designer was not even using the most recent version! He was 2 versions behind in his test jig which (remember it was getting worse per rev, not better).
The next thing was that he was using a Basic program to load the font VERY slowly as it crashed when he used Fred Bowen's assembler code based loader, he concluded it was just buggy code. And then right in front of eveyone it crashed the very first time! He muttered that it occasionally locks up but the fix was to press reset and he reached for the reset button. I grabbed his wrist stopping him from covering up the evidence and turned to the head of the IC group letting the blank screen speak for itself. Meanwhile I wouldn't let go of the engineer's arm and actually didn't until he agreed it was broken. These days I would probably get sued or fired, neither of which bothered me as I was now dealing with the fact we were utterly screwed for making CES.
He also mentioned that he had some vacation he needed to use up before the end of the year.
The problem lay in in that he had not tried to account for asynchronous clocks; 14.318Mhz for the VIC and 16Mhz for the VDC. Write cycles would write to the wrong location or would write where only the data came out. I described it one time as carrying an armload of packages into a revolving door and only the packages came out.... maybe a bloody shoe occasionally.
The only answer I could think of was to synchronize the clocks and then gating the control signals to that new clock so they happened at the same time every time. We had one kind of PLL chip in stock so I designed a tower overnight based on that and the techs wired it up. By 8:00 the next morning we had it working as a wirewrap and we laid out a PCB and had the PCB's made the same day which was almost unheard of back then. Each board cost about $1,200 of 1985 dollars, like $3k today and we had about 20 made. Basically three time my salary back then.
On the underside picture you can see the wire highlighted. Since I couldn't predict which timing relationship would work, I put in a shift register and then by trial and error found the delay that worked, much like setting the dwell in a car. We found that when running CPM I had to use a different tap, so we were moving jumpers the night of booth setup.
Meanwhile CPM had stopped working on the last rev of the 8563 for moving the block of text, it would leave a character behind when it scrolled, it looked a lot like the screen on the movie The Matrix in hindsight. We found if you wrote the same value to the register twice in a row it would work (called a "texan write" as the designer was from Texas). Von Ertwine, the CPM integrator didn't have the system needed to compile a new version of CPM with him in Vegas, so he hand coded the change taking the exact same number of opcodes, and then using a disk editor he applied his changes directly to the disk. The bytes in the block were reversed order, and the blocks in a sector were also reversed, in addition he had to hand calculate the checksum.
So here is the most expensive 3" board I have ever seen.
Also what is not shown is I found that if I soldered a wire to the gold "tab" and grounded it, it grounded out the errant back bias generator and made the chip work better, especialliy when doing light characters on a dark background. There were also other things we did to make the 8563 appear to be working for CES like putting 220 ohm pulluups on the video-out signals of the 8563... but this quick description is already way too long.
The last picture is a prototype C128 Showing Chip Emulation assemblies needed while waiting for custom IC's.