The Amiga Story: Conceived at Atari, Born at Commodore (2016)(lowendmac.com)
lowendmac.com
The Amiga Story: Conceived at Atari, Born at Commodore (2016)
https://lowendmac.com/2016/the-amiga-story-conceived-at-atari-born-at-commodore/
18 comments
Wonderful article, Jeremy, I have read it multiple times.
Highly recommended.
Highly recommended.
Technically it's not the blitter (a fast way to move bits around) that allowed the machine to have 4096 colours. All you need for that is 4-bit RGB DACs and appropriate colour lookup tables. And enough memory to store, say, 5 bitplanes (32 colour lookup table) at 320x200 = 40KB of memory, which up to this point had been prohibitively much, e.g. in a machine with only 64KB of memory.
Well, you're right but kinda not right. The Amiga's design was really cohesive, and the blitter did help enable larger color output than would otherwise have been possible, in a kind of roundabout way.
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.
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.
You could actually get more than 4096 colors. One of the popular 3D computer graphics programs for the Amiga used assembly language and interrupts to swap the colors available on the fly (per scan line I think) which allowed for smooth shading of graphics with a much greater range of colors. I'm not sure if any other software developers ever figured out that trick though, which was embedded in the viewer software for animations.
From what I remember, Amiga / planar kinda sucked for text scrolling. I remember dialing into ANSI BBSes and seeing that fringe / flicker effect as text scrolled. I had an 030 machine, so I ran CpuBlit to replace some of the blitter calls with the CPU: http://aminet.net/package/util/boot/CpuBlit
I guess super-colourful text modes were not a priority. The standard Workbench screen was a 2-plane affair and I never noticed any scroll artifacts (on the original A1000).
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?
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?
They were only noticeable with 16 colors in hires, if I recall. Normal 4 color workbench was fine, IIRC.
It did have hardware scrolling, but there was no wraparound, so a bit inconvenient for an infinite scrolling-type text display. You'd have had to write a copper program to switch the start address at the wrap point.
Yeah, that 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.
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.
Yeah, I think what it's trying to say is more like this: the blitter is what made it practical to move around enough image data with enough bit depth for the 4096 colors. For PCs without a blitter to get to comparable results took several more years of increases in CPU and memory speed.
Cut my teeth on the Amiga as well. Still have the Amiga Hardware Reference Manual in my bookshelf. Can't throw it out now? I was around 11-12 years old when I started to program on it. Certainly didn't understand some parts, in particular I remember the blitter's truth table [0] was confusing to me at the time. But it was a pang of nostalgia when I realized the new AVX-512 VPTERNLOGx [1] instructions uses the exact same table as the Amiga's blitter. Must be a perfect fit for Amiga emulators :)
[0] https://wiki.amigaos.net/wiki/Graphics_Minterms [1] https://www.felixcloutier.com/x86/vpternlogd:vpternlogq
[0] https://wiki.amigaos.net/wiki/Graphics_Minterms [1] https://www.felixcloutier.com/x86/vpternlogd:vpternlogq
> Still have the Amiga Hardware Reference Manual in my bookshelf. Can't throw it out now?
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.
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 also spent some of my formative technical years on the Amiga. The Amiga Hardware Reference Manual is available on archive.org for posterity: https://archive.org/details/amiga-hardware-reference-manual-...
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...
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...
Maybe what's meant is that the blitter allowed the machine to practically deal with the amount of data that so many colors required. The C64 could display more colors in static images than in animated sprites.
My housemate had an Amiga 1000. Cool computer for the time and we played many a video game on it. One day the floppy drive died. We bought a compatible floppy drive and opened it up. There was a aluminum shield over the drive and most the components that required a large number of screws to remove. I've had easier times opening up a laptop to fix something than that pain in ass 1000...
Commodore took radio shielding rather seriously back then. The wedge Amigas (A500, A600 and A1200) also had excessive metal shielding everywhere. A lot of Amiga owners nowadays just dispose of that as it always gets in the way when you have to fix the next thing that breaks in these machines.
I still have my AmigaDOS reference manual on my bookshelf. Occasionally someone will recognize it in a zoom meeting.
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/