Learning Legendary Hardware
If you love software, you also try to understand the hardware to the deep down. It is not an easy task : There are many great programming books but few that explains hardware very well (as Michael Abrash once wrote: the Intel Documentation is "slightly more fun to read than the phone book"). In my quest for knowledge, I found two hardware books to be outstanding:That Wouldn't Die, the Amiga with its elegant co-processor architecture is a vivid example:
Some parts were so good that Future Crew devteam wrote an Amiga Copper emulator for PC in order to produce the legendary Second Reality. But ultimately, its greatest asset (a small CPU with dedicated co-processors) became its greatest liability when it proved "uniquely unsuited to run DOOM".
Older hardware are much simpler (the Atari 2600 did not even have a framebuffer). That simplicity lowers the learning curve and is less likely to discourage beginners. I consider them a good starting point before learning superScalared-cachelined-SMPed-MESIed-systems.
A few dedicated engineers have documented those legendary machines by de-constructing the greatest applications they used to run. MIT Press book editor has opened a Platform Studies section for them and they are incredibly pleasant to read:
The Future Was Here: The Commodore Amiga
The Future Was Here: The Commodore Amiga takes the most iconic applications of the Amiga in order to progressively explain the overall architecture :
Chapter one is all about the legendary Boing demo. It explains :
- The Bitplanes based Display system.
- Denise ViewPort.
- Denise capability to set bitplane offset individually.
- Paula Sound chip.
The book then switch to Deluxe Paint internals and demonstrates :
- The different graphic modes available (including EHB).
- Agnus DMA Blittering.
- Agnus Copper chip.
- Difference between Fast RAM / Chip RAM.
- The Amiga HAM graphic mode allowing 4096 colors on screen: A late hack that proved paramount for raytracers and digital photography.
I won't spoil the rest but the list goes on an on, including the genlock so instrumental to the rotoscoping used in Another World, AmigaOS, The DemoScene (with a strong emphasis on the beloved Copper) and an in-depth analysis of a Shmup :
Menace that featured hardware collision detection.
The final chapter "The way the future Was" takes an interesting point of view on the end of the Amiga. Instead of the usual Commodore blaming, the author points towards the innovative design of the machine itself and its inability to run...DOOM.
Racing the Beam
If you think programming those days is hard, think of the Atari VCS architecture: 128 bytes of RAM,
one color per sprite scanline and NO framebuffer (you had to pace your renderer to the TV electron beam).
Racing the Beam: The Atari Video Computer System is a great book which explains the Atari 2600 hardware via six games deconstructions:
As a Bonus, read Landon Dyer (Dadhacker)'s blog about the post 2600 story of Atari: The Atari ST (part 1), The Atari ST (part 2) and Donkey Kong and Me.
Codename Revolution: The Nintendo Wii Platform
Not very technical (although it details the Wii Remote greatly), it translate well the deliberated "Power isn't everything" of the Wii.
Commodore: A Company on the Edge
Note focused on the technical side either but featuring the key events of the history of Commodore, from MOS Technology to The Fall in 1992-1994. A great follow up if you enjoyed "The Future was Here".
Commodore: The Amiga years
A book dedicated to the Amiga that unfortunately keep on being delayed :( ! Let's keep on hoping.
Bonus : The PDF explaining cachelined-SMPed-MESIed-systems Memory Barriers: a Hardware View for Software Hackers like if you were five.