Advertisement

Colour Cycling - An Old School Technique

Started by August 20, 2014 07:27 PM
9 comments, last by aregee 10 years, 2 months ago

CGA you had two bit-banks, and you needed to pick one of four pre-determined palettes. EGA had 16 colors (four bits) on a palette of 64, again with bit banks to determine what colors to show. VGA followed the same pattern with a palette of 256 adjustable colors and the traditional bit bank, and they also had a "chained" mode (mode 13h) where you could access it like a traditional array of 8-bit values rather than individual bit banks. It was generally faster to run DMA transfers into the bit banks rather than to use chained mode address the array elements directly.

Hardware floating point support wasn't common on the home PC until around 1996. Up until the 386 the floating point was a separate optional (and expensive) co-processor. The 486 had it built in for some models, but the 486SX was a cheaper version with the floating point disabled. (For most manufactures the SX was just the batches with a defective FPU, they removed a pin and sold it cheaper.) It wasn't until the original Pentium that you could be sure there was a working FPU. It took a few years before there was enough market share that companies could rely on a reasonably large market of FPU-enabled processors, so 1995/1996 was the big transition time.

Today most programmers take floating point for granted and assume it is on all chips. The original iphone (2008) included a separate co-processor for floating point, it almost wasn't standard and few of the programmable phones before it had a dedicated FPU. The Nintendo DS (2004) that many people associate with 3D games does not have a floating point processor.

Having fully functional, dedicated floating point hardware on every computer is a fairly new phenomenon. Beginners and even a few experienced people may think of them as ubiquitous, but just six years ago I was working on major games for mainstream devices without hardware floating point support.

Oh I had a feeling that when you occasionally saw different colours in CGA and EGA, there were always the same colour combinations.

Regarding expensive option, I did actually buy a math co-processor for that machine, and it was expensive - just along the line of the whole computer itself. I paid about 3400 USD back then, not counting inflation... And that was without any extras. (No audio card, no co-processor, low memory, etc.) I am sweating just thinking about it, lol...

Wow! I indeed would expect floating point operations would be common in microprocessors at the beginning of the 2000's. So what do you do without floating point? Fixed point math on integers? Modulo 2 math? (I remember assembly optimisations in the old days, pre-calculated sine tables with 256 degrees instead of the usual 360 degrees so you wouldn't need to test for wrap-around, etc.)

This topic is closed to new replies.

Advertisement