Just about all of us use computers or calculators every day without ever giving much thought to how they work. In his inimitable breezy style, Clive "Max" Maxfield, with co-author Alvin Brown, looks to remedy that situation with his latest book. It's a look at the fundamentals of computer architectures for non-computer scientists, which, last time I looked, means most of us.
Beginning with some basic math, computer, and calculator concepts, Maxfield and Brown take their readers through a series of step-by-step interactive exercises demonstrating how to create a set of basic math subroutines for addition, subtraction, multiplication, and division. The book goes on to show how to assemble these subroutines into a framework program that is used to construct a four-function calculator.
In the hands of lesser authors, such material could be deadly. But Maxfield infuses the book with his typical humor, colorful asides, and deep background that makes it fairly easy to read. The volume is organized in a logical progression of chapters, each of which is supported by a suite of interactive labs that build upon each other until the reader has figuratively constructed the four-function calculator.
One of the more compelling features of the book, however, is truly interactive. Loading the included companion CD-ROM into a Windows-based PC brings up the Virtual DIY Calculator itself, which at first glance looks to be a simple calculator program. Boring, huh? Well, all is not what it seems. The interface, it turns out, is really the entryway to a complete development environment that includes an assembler, CPU register display, I/O ports display, memory display and everything else the reader needs to complete the book's labs in hands-on fashion. Thus, the initial interface is just the shell for the calculator the reader must construct by performing the labs.
The CD-ROM also contains extras, such as an "educators" folder that will enable computer-architecture lecturers to use the book's material in class. There's a folder with a databook describing a CPU at the level of gates, multiplexers, and registers. And a "history" folder contains a small book in its own right that covers the history of "calculators, computers and other stuff."
A companion website at DIY Calculator offers various downloads, a subroutines page, additional tools such as a more sophisticated assembler and a small C compiler, and other assorted goodies. For those interested in a slightly off-beat approach to learning the basics of computer architectures, Maxfield and Brown have put together a multimedia package that's well worth the price of admission.