October 7th, 2013

Learning Legendary Hardware

I love you Hoi-En, my badass Climber of Rock.
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: Those books are good for "current" hardware but there is a lot to learn from previous generations. The cult machine 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 :

The Amiga 1000 hardware architecture

Chapter one is all about the legendary Boing demo. It explains : Bonus : Check out the Making-off video.

The book then switch to Deluxe Paint internals and demonstrates :

Next is the Juggler which is a base to describe :

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).

The Atari 2600 hardware architecture

Racing the Beam: The Atari Video Computer System is a great book which explains the Atari 2600 hardware via six games deconstructions: The many tricks and the backstories of the machine and games are mesmerizing.

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.

Recommended Readings

Bonus : The PDF explaining cachelined-SMPed-MESIed-systems Memory Barriers: a Hardware View for Software Hackers like if you were five.



Fabien Sanglard @2013