Quote:
Originally Posted by emiespo
Let’s say I want to turn pixel at coordinates 107,107 red (colour 5 in the clut).
|
Let's say you
didn't want to plot pixels one at a time, what then?
Quote:
Packed chunky 5 bits: similarly I’d compute the start of a row and the I’d need to divide the X coordinate by the number of planes (in this case 5), to get the initial bit, and then change 5 bits with two accesses to memory: read the resulting word, AND with a mask, OR the five changed bits with the value 5 (colour red) in one go.
|
Great! Now show us the circuit made out of standard logic gate ICs. Then show us the extra circuitry you need for 1, 2, 3, 4 and 6 bitplanes too, and how you switch between them.
Jay Miner chose bitplanes for one simple reason - he could make a circuit that did
1 bitplane and apply it to as many as he wanted without a lot of tricky logic. And he didn't have any fancy HDL tools to create and debug it. To test the design he had to
build the circuit on a wire-wrap board.
These photos of the Lorraine prototype give you an idea of what a massive undertaking that was. If you've ever built logic circuits this way you will appreciate the effort that went into it. I've done a few, but I would never attempt something this large and complex.
The Blitter had to work in bitplane mode for doing 1 bitplane anyway, but guess how much extra circuitry you need to do multiple bitplanes? That's right,
nothing. So you design your single bitplane blitter and that's it! Then to get more colors you just stack up multiple identical 1 bitplane display boards, and feed their output into the LUT. Perhaps even separate them into 2 groups, each generating its own display (dual playfield). And the blitter doesn't have to know
anything about this.
But hey, perhaps you are right and it wouldn't be any more complex. Unfortunately - unlike today's armchair engineers - Jay Miner didn't think to do all it in packed pixel mode. Strangely nobody else did either. I guess they just weren't as smart as Amiga fans of today - probably due to all that
tetraethyl lead they were breathing in back then.
Quote:
Edit: oh and a clever chipset like Amiga’s could’ve used some optimisations, like discarding the extra bit that would go to an odd address and keep all accesses aligned, at the expense of some ram. We’re talking about one bit every three pixels… for a 320x200 display that’s less than 3k of memory wasted. The AGA copper wastes a lot of memory (and bandwidth…) just to define a 24bit palette.
|
I can think of more copper optimizations too, but this doesn't mean what we got was inadequate. It was far better than anything else out there. And it actually
worked, unlike so many bright ideas that turned out to be impossible to implement. The AGA chipset was complex enough already, without loading it up with feature creep that would delay its introduction even more.