The Amiga Story: Conceived at Atari, Born at Commodore (2016)
lowendmac.com
lowendmac.com
If you liked this article and would like to read more, I'll take this opportunity to plug my History of the Amiga series on Ars Technica: https://arstechnica.com/series/history-of-the-amiga/
Highly recommended.
See, the RAM chips of the day were too slow to push out more than a few bits per pixel during scanout in high resolution. The workaround for this was planar graphics modes, which allowed the video chip to receive color information from multiple RAM chips at the same time, each chip supplying one bit of the color data for the pixel. But in order to compose a display using the CPU, you had to use multiple blits -- one for each plane of the image -- and each time, if you wanted to blit to arbitrary locations, you would have to AND a mask onto the source image and then OR in the destination image because each plane has bits for 8 pixels packed into a single byte, thus pushing the number of blits needed to two or three per plane. This was possible on the PC, but slow; and PC planar graphics modes had 4bpp max. With 5bpp it would have been intolerable. (Really, planar graphics is a bitch; even the Amiga developers knew this, which is one reason why they put the Akiko chip in the Amiga CD32 to do chunky-to-planar conversions so programmers can write code assuming chunky.)
One of the things the Amiga blitter handles is drawing bitmaps to arbitrary locations in planar graphics modes much faster than the CPU could do, enabling fast displays with more colors than other machines could handle.
The real color magic on the Amiga, though, was Hold and Modify -- which allowed for all 4096 colors theoretically on screen at once within contemporary memory speed and size constraints, in a way that would have been prohibitively taxing without that special support.
Also perhaps not all the tricks from the video game world were applied here, e.g. "racing the beam" to update all 4-5 bitplanes in an interleaved fashion at times when they weren't being displayed. Also, didn't the Amiga have hardware scrolling, i.e. you can define a taller display than fits on the screen, and scroll through it by relocating the base address of the bitplanes, and update the off-screen part?
The Lorraine chipset was also very powerful. It took advantage of blitters, chips that allowed information to bypass the CPU completely. Thanks in part to the blitters on the mainboard, the machine was capable of displaying up to 4,096 colors.
Was really confused-sounding. The Amiga only had one blitter, and it was not a discrete chip (part of Agnus I think). The "bypassing" is probably a reference to the DMA that the custom chips used in order to work independently from the CPU.
I grew up/learnt coding on the Amiga, loved it sooo much.
Edit: copypasta fix.
[0] https://wiki.amigaos.net/wiki/Graphics_Minterms [1] https://www.felixcloutier.com/x86/vpternlogd:vpternlogq
If you do decide to ever dispose of the book, please don’t throw it away. Sell it so that this knowledge can be passed down to someone who wants to learn. Reprints of these kinds of books aren’t being made anymore, and the only other knowledge source would be (rather old) programmers from the time, who aren’t around forever.
I support not throwing out a real, original copy, though :-)
As I get older I enjoy reading 30+ year old technical books and learning more about how those old systems worked, more than I do learning the latest framework or language features. It's intrinsically satisfying, but not so great for the career...