Nothing but blue skies, do I see
I've already written in my previous blog entry Heathkit about the construction of my first personal computer, a Zenith Z-150, which I built from a kit. The entry noted that at the time, this sort of computer was called an "IBM PC clone". PC clones often had slight differences from a genuine IBM PC, which would occasionally cause them problems when running software designed for the original IBM version.
And indeed, it ran successfully on my new computer, with a view from the cockpit as shown to the left. About the only minor problem I could see was that, as you can see in the picture, the sky was green! I thought, "That's funny."
In Microsoft Flight Simulator, the upper part of the screen showed the pilot's view out the airplane window, while the lower part showed the aircraft's instruments. Click on the image to see it nearly full size, as it appeared on the screen of a PC at the time.
Obviously, the display capabilities of the IBM PC were rather crude by modern standards. As I write this in January, 2013, there are computer games available whose displays approach photo realism. In contrast, the PC's CGA ("Color Graphics Adapter") graphics mode displayed an image 640 pixels wide by 200 pixels high. In addition, in that so-called "high density color graphics mode", only four colors could be displayed at once, although two different palettes (sets of colors) could be selected (this will play a role in what follows). Note 1
Since, by modern standards, the computer was rather slow, it was not easy to program a reasonably responsive flight simulator program for it. Thus the Microsoft Flight Simulator program was known to use every trick in the book (and some not in the book) to make the program run faster. That was why it was known to be a good program to try running on a PC clone. There were apparently some PC clone computers which couldn't manage to run Flight Simulator at all.
So I was very happy to find that Flight Simulator ran quite successfully on my Heathkit/Zenith clone computer. Not only was it a program I enjoyed using, its successful operation on my machine meant that my computer would be able to run almost all programs written for the IBM PC. The only small glitch was the color of the sky.
Some people might have been happy to have the Flight Simulator program run at all, and would have been willing to ignore the slight color problem. But I'm not one of those people. As I've alluded to elsewhere, I like to know how everything works. And particularly with my first personal computer, I didn't want to just let this difference slide. I was curious as to why the Flight Simulator program, running on my clone computer, seemed to run with only one tiny difference from the same program running on an actual IBM PC.
I was able to try the same program at work on genuine IBM PCs, and the sky was blue. On my Zenith computer, the sky was green. What possible difference in the machines could cause this minute difference in the displays? Inquiring minds wanted to know. Well, at least my inquiring mind.
Here's what I needed to do:
Step 1: Determine how the Flight Simulator program was setting up the Color Graphic Adapter.
I carried out all of the above steps. My description of how I executed steps 1 - 3 gets a bit technical. I think it's pretty interesting, and you can get a rough idea of what I did even if you don't understand all the details. Still, I've moved those steps to a separate page - click here if you want to see it.
OK, whether or not you read the details, let's go to step 4: could I fix it? Yes, but I had to add extra circuitry to the board.
I designed it - click on the picture to the left, or here, to see the circuit schematic, as it appeared in my notes at the time.
I used the logic to the left, comprising four identical 2-input NAND gates. The schematic shows two different symbols for the gates, but by De Morgan's Laws, they're equivalent.
Then I sketched out how I would physically connect it to the board, and actually implemented it by adding a new 74LS00 quad NAND-gate, housed in a 14-pin DIP (Dual In-line Package), physically "floating" above the printed circuit board. The design layout I drew is on the left below, the actual components on the board can be seen to the right. For scale, remember that the pins of a DIP are a tenth of an inch apart (2.54 mm):
Here's a picture taken a bit from the side, to show how the added DIP, its legs cut short, is "floating" above the board, between the other components. It's supported by the heavy "bus bar" wire I chose to use to make some of the short connections. The PAL, U325, is the 20-pin DIP at the top of the image, to the left of the blue wire (Zenith part number 444-234):
The final result when running Flight Simulator (ta-dah!!):
I did all the above because I looked at the green sky on my computer monitor, and wondered why. I recall a quote from Isaac Asimov, who said, "The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'eureka!', but 'that's funny ...'."
Of course, fixing the sky color displayed by my clone computer was hardly a great discovery in science, but I thought the project was very interesting. I hope you think so too.
Nothing but blue skies, from now on.
Note 1: Full disclosure: the screenshot was not taken from my original Zenith computer's screen. It's a reproduction of what a Flight Simulator screen approximately looked like on the Zenith unit. It shows a view out the airplane window over New York, with the Empire State building in the foreground, and the late lamented World Trade Center towers in the distance. The IBM PC computers and the clone versions that ran Flight Simulator didn't have sufficient image rendering power to show much more detail in the landscape than is seen in that picture.
English has a lot of homophones - different words that are pronounced alike, although they may, or may not, have different spellings. I think the most common set contains the words "there", "they're", and "their". But until I wrote this entry, and my Dragon NaturallySpeaking dictation software misspelled it, I had never thought about "palette", "pallet", and "palate". [return to text]