CODE
The Hidden Language of Computer Hardware and Software

by Charles Petzold

-- Annotated Bibliography --

Reference Books

Throughout Code, definitions of technical terms are generally consistent with:

Microsoft Press Computer Dictionary, 3rd edition. Redmond, Washington: Microsoft Press, 1997.

I also relied on:

The IEEE Standard Dictionary of Electrical and Electronics Terms, 6th edition. New York, NY: Institute of Electrical and Electronics Engineers, Inc., 1997. Also referred to as IEEE Std 100-1996.

Whenever possible, illustrations are consistent with:

Electrical and Electronics Graphic & Letter Symbols and Reference Designation, 1996 edition. New York, NY: Institute of Electrical and Electronics Engineers, Inc., 1996.

Another important reference that is often witty and wise is:

Raymond, Eric S., comp. The New Hacker's Dictionary, 3rd edition. Cambridge, MA: The MIT Press, 1996.

Occasionally I consulted the 1500-page:

Ralston, Anthony, and Edwin D. Reilly, eds. Encyclopedia of Computer Science, 3rd edition. London, England: International Thomson Computer Press, 1995.

Biographies of important people in the field of computers are compiled in:

Lee, J.A.N. Computer Pioneers. Los Alamitos, CA: IEEE Computer Society Press, 1995.

This book is identical to the higher priced:

Lee, J.A.N., ed. International Biographical Dictionary of Computer Pioneers. Chicago, IL: Fitzroy Dearborn Publishers, 1995.

For biographical information on scientists throughout history, I consulted:

Asimov, Isaac. Asimov's Biographical Encyclopedia of Science & Technology, new revised [2nd] edition. Garden City, NJ: Doubleday & Company, Inc., 1972.

and:

Day, Lance and Ian McNeil, eds. Biographical Dictionary of the History of Technology. New York, NY: Routledge, 1996.

The book:

Dummer, G.W.A. Electronic Inventions and Discoveries, 4th edition. London, England: Institude of Physics Publishing, 1997.

also proved to be very useful.

Chapter 1. Best Friends

A description of Morse code (and methods to learn it if you're so inclined) is contained in:

Carron Jr., L. Peter. Morse Code: The Essential Language, 2nd edition. Newington, CT: American Radio Relay League, 1991.

This is the only modern reference I've found that includes codes for accented letters (a few of which are shown in Chapter 2). An earlier reference that includes accented letters is:

Eley, A. W. The New Morse Code Manual, 3rd edition. Leicester, England, c. 1941.

Another recent book on learning Morse code is:

Finley, Dave. Morse Code: Breaking the Barrier. Starkville, MS: MFJ Publishing Company, 1997.

Chapter 2. Codes and Combinations

The Morse code shown in these two chapters is not exactly what Samuel Morse invented. The code that Samuel Morse devised is now called American Morse code, and it’s not used very much any more. Instead, virtually everyone who still uses Morse code uses International Morse code, which is what is shown in this book. American Morse code differs in some of the letters by using longer pauses between the dots and dashes. Also, some of the letters use longer dashes. It’s not quite as easy to use as International Morse code.

Although I've characterized Morse code as a binary code, some people will disagree. The problem is that Morse code is based not only on dots and dashes but also on the spaces between letters and words. Morse code is truly binary, however. It's not because letters are coded by dots and dashes, but because letters are coded by on and off signals. I will clear up this anomaly in Chapter 9.

Chapter 3. Braille and Binary Codes

Most biographies of Louis Braille are written for children. One exception is:

Bickel, Lennard. Triumph Over Darkness: The Life of Louis Braille. Sydney: Allen & Unwin Austrailia Pry Ltd, 1988.

Still, however, it seems to contain lots of conjecture and filler. A shorter biography of Braille and a short biography of Valentin Haüy are included in:

Ross, Ishbel. Journey Into Light: The Story of the Education of the Blind. New York, NY: Appleton-Century-Crofts, Inc., 1951.

Historical information about Louis Braille and his invention can also be found in:

"Louis Braille," a pamphlet published by the American Foundation for the Blind.

Similar information, including overviews of the Braille system, can be most-conveniently found at various sites on the World Wide Web:

American Foundation for the Blind: http://www.afb.org

Canadian National Institute for the Blind: http://www.cnib.ca

New York Institute for Special Education (Blindness Resources): http://www.nyise.org/blind.htm

Royal National Institute for the Blind (United Kingdom): http://www.rnib.org.uk

I also found the following commercial Web site very helpful:

Duxbury Systems, Inc: http://www.duxburysystems.com

This company makes Braille software for personal computers. Their free downloadable demonstration program of the Duxbury Braille Translator provided me with a Braille font that I used in writing this chapter.

Grade 2 Braille defines many more contractions than are indicated in this chapter. A more complete survey can be found in books such as:

Loomis, Madeleine Seymour. Standard English Braille in Twenty Lessons. New York, NY: Harper & Brothers, 1934.

Although short and written for children, the recent book:

Schneider, Jane, and Kathy Kifer, Braille for the Sighted. Eugene, OR: Garlic Press, 1998.

provides the basics of Braille and includes Braille puzzles and crosswords.

Chapter 4. Anatomy of a Flashlight

Several traditional texts on electricity that are both readily available and inexpensive are:

Mileaf, Harry. Electricity One-Seven, revised 2nd edition. Hayden Books, 1978.

United States Navy. Basic Electricity. Dover Publications, 1970. Originally published by the United States Government Printing Office in 1960, second edition in 1969.

The companion volume to this latter book is:

United States Navy. Basic Electronics. Dover Publications, 1973. Originally published by the United States Navy Training Publications Center in 1971.

The difference between electricity and electronics is that electronics generally covers situations in which electrons move through a vacuum (such as in a vacuum tubes), a gas, or a semiconductor (such as in a transistor). Vacuum tubes and transistors are discussed in Chapter 18.

Then there are textbooks, which are neither readily available nor inexpensive. The textbooks written by Thomas L. Floyd are currently popular. The most basic is:

Floyd, Thomas L. Electric Circuits Fundamentals, 4th. Prentice Hall, 1998.

A wonderful (but expensive) book that proceeds from the basics of electricity, through transistors, integrated circuits, and microprocesors is:

Horowitz, Paul and Winfield Hill. The Art of Electronics, 2nd edition. Cambridge, England: Cambridge University Press, 1989.

If you don't like the electron theory of electricity, an alternative is presented in:

Amdahl, Kenn. There Are No Electrons: Electronics for Earthlings. Broomfield, CO: Clearwater Publishing, 1991.

This book proposes a theory of beings called "greenies," who travel through wires because of their "need to party."

Two large volumes on batteries also proved helpful for this chapter:

Linden, David, ed. Handbook of Batteries, 2nd edition. New York, NY: McGraw-Hill, Inc., 1995.

Crompton, T. R. Battery Reference Book, 2nd edition. Oxford, England: Butterworth-Heinemann Ltd, 1995.

Chapter 5. Seeing Around Corners

Most books on electricity and electronics tend to avoid the messy subject of grounds. One courageous exception is:

O'Riley, Ronald P. Electrical Grounding: Bringing Grounding Back to Earth, 4th edition. Delmar Publishers, 1996.

The "earth is to electrons as an ocean is to drops of water" analogy comes from this book.

The data on wire gauges and resistance is from page 38 of Floyd, Electric Circuits Fundamentals cited in the last chapter.

Morse Statue

Chapter 6. Telegraphs and Relays

Apparently, the last full-length biography of Samuel Morse was:

Mabee, Carleton. The American Leonardo: A Life of Samuel F. B. Morse. New York: Alfred A. Knopf, 1943.

This book was republished by Octagon Books in 1969, but that edition is also out of print. Part of a series known as "The Libray of American Art" is this survey of Morse's paintings:

Kloss, William. Samuel F. B. Morse. New York, NY: Harry N. Abrams, Inc., 1988.

Visitors to New York City and its environs can find several Morse-related places of interest. The Samuel F. B. Morse Historic Site (or try the Hudson Valley Network link) is located on Route 9 in Poughkeepsie, New York, about 2 miles south of the Mid Hudson Bridge. Morse lived at this estate (which he called Locust Grove) from 1847 to his death in 1872. The tour of the house culminates in a visit to the basement where you can view historic telegraph equipment, and play with some as well.

Morse's 1824 painting of Lafayette that I mentioned in this chapter is normally on view in the Council Chamber on the second floor of City Hall in New York City. According to:

Herszenhorn, David M. "The Secret Treasure of City Hall." New York Times, 10 August 1999, page B1 and B6.

it will be part of a show "Art and the Empire City: 1825 to 1861" planned for the Metropolitan Museum of Art in September, 2000. On permanent display at the Metropolitan Museum of Art is Morse's portrait of De Witt Clinton (painted 1826), located in Room 108 (the "Neoclassical Gallery") on the first floor in the American Wing. In Room 219 on the second floor is Morse's glorious The Muse - Susan Walker Morse (1835-37), a portrait of his eldest daughter.

A statue of Samuel Morse is at the East 72nd Street entrance to Central Park, New York City.

Morse is buried with many relatives and their descendents in Greenwood Cemetery in Brooklyn. (Use the computer kiosk at the 25th Street and 5th Avenue entrance to print a map to it.)

Morse Grave

The book:

Coe, Lewis. The Telegraph: A History of Morse's Invention and Its Predecessors in the United States. Jefferson, NC: McFarland & Company, 1993.

is small (just 184 pages) and sometimes disorganized, but packed with useful information. An entertaining recent book on the telegraph is:

Standage, Tom. The Victorian Internet: The Remarkable Story of the Telegraph and the Nineteenth Century's On-Line Pioneers. New York, NY: Walker and Company, 1998.

The science of magnets and electromagnets is entertainingly presented in:

Livingston, James D. Driving Force: The Natural Magic of Magnets. Cambridge, MA: Harvard University Press, 1996.

Chapter 7. Our Ten Digits

Some people (e.g. Roger Penrose in The Emperor's New Mind) prefer "denary" to "decimal" but there's no good reason for not using "decimal."

Although most number systems throughout history have indeed been based on ten (as I assert in this chapter), one significant exception is the sexagesimal (base 60) system of the ancient Babylonians. Through the ancient Greeks, then Arabic and Latin translations of Greek texts, the sexagesimal system has retained a strong influence on Western culture, and is responsible for our notions of 360 (6 times 60) degrees in a circle, 60 minutes in a degree (or hour), and 60 seconds in a minute.

Histories of early number systems are frequently found in the early chapters of books about numbers and mathematics, such as:

Bunt, Lucas N.H., Phillip S. Jones, and Jack D. Bedient. The Historical Roots of Elementary Mathematics. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1976. Republished by Dover Publications in 1988.

and:

Dantzig, Tobias. Number: The Language of Science, 4th edition, New York, NY: The Free Press, 1954.

which is the only book I know that has a cover blurb from Albert Einstein ("the most interesting book on the evolution of mathematics which has ever fallen into my hands").

Menninger, Karl. Number Words and Number Symbols: A Cultural History of Numbers. New York, NY: Dover Publications, 1992. Republication of a 1969 English translation by Paul Broneer from the 1957-58 revised German edition.

is an extensive treatment of the subject from a sociological perspective. Two more-modern volumes are the entertaining:

Conway, John H and Richark K. Guy. The Book of Numbers. New York, NY: Copernicus, 1996.

and the incomparable encyclopedic:

Gullberg, Jan. Mathematics: From the Birth of Numbers. New York, NY: W. W. Norton & Company, Inc., 1997.

I have also relied on the article:

Smith, David Eugene, and Ginsburg, Jekuthiel, "From Numbers to Numerals and From Numerals to Computation," from Newman, James R. The World of Mathematics, Volume One. Redmond, WA: Tempus Books, 1988. Originally published by Simon and Schuster in 1956.

Although published after I finished Code,

Kaplan, Robert. The Nothing That Is: A Natural History of Zero. Oxford, England: Oxford University Press, 1999.

is an entertaining history of the zero.

Chapter 8. Alternatives to Ten

From what I understand, cartoon characters are usually drawn with four fingers because five fingers looks like too many. The Simpsons TV series has occasional references to this peculiarity, for example, calling shoplifting a "four-finger discount."

An extensive collection of references to non-decimal number systems over the centuries is:

Glaser, Anton. History of Binary and Other Nondecimal Numeration. Los Angeles, CA: Tomash Publishers, 1981.

Prior to the invention of the computer, most people who felt that humans should abandon the decimal system for something else favored the duodecimal (base twelve) system, primarily because twelve is divisible by two, three, four, and six. (Ten is divisible by only two and five.) See the article "Base for the Number System, The Best" (pages 20 through 31) in:

Dudley, Underwood. Mathematical Cranks. Washington, D.C.: The Mathematical Association of America, 1992.

for an overview. Bases of number systems are not restricted to positive integers. See section 4.1 of Knuth, The Art Of Computer Programming: Volume 2 cited in Chapter 17.

According to the OED, the word "octal" was used first in 1936 in connection with 8-pin vacuum tubes. It wasn't used to refer to base eight number systems until 1948. Prior to that, the words "octonary" and "octonal" were used instead.

The word "bit" apparently first appeared in print in the Claude E. Shannon paper "The Mathematical Theory of Communication" originally published in the July and October, 1948, issues of Bell System Technical Journal and published in a book of that same name cited in Chapter 18. Shannon credits John Tukey with inventing the word. A discussion of the etymology of the word "bit" can be found in:

"Origin of the Term Bit," Annals of the History of Computing, Volume 6, Number 2, April 1984, pages 152-155.

Not everyone agrees that "bit" is a wonderful abbreviation for "binary digit." On page 146 of:

Hogben, Lancelot. The Vocabulary of Science. New York, NY: Stein and Day, 1970.

we read "The introduction by Tukey of bits for binary digits has nothing but irresponsible vulgarity to commend it."

Chapter 9. Bit by Bit by Bit

As documented in the indispensable:

Bronson, Fred. The Billboard Book of Number One Hits, revised and enlarged edition. New York, NY: Billboard Publications, Inc., 1992.

the song "Tie a Yellow Ribbon Round the Ole Oak Tree" was based on a true story and written by Irwin Levine and L. Russel Brown. It was a turning point in the careers of Tony Orlando and Dawn, and became the second most-recorded song of the rock era (after "Yesterday").

Longfellow's "Paul Revere's Ride" (which is "The Landlord's Tale" from the collection Tales of a Wayside Inn) is published in:

Longfellow, Henry Wadsworth. Selected Poems. Edited with an introduction by Lawrence Buell. New York, NY: Penguin Classics, 1988.

A note by the editor says that "Longfellow concocted this tale from several historical sources, including, most likely, an account by Revere himself; but the poem itself is primarily responsible for the popular misconception that Revere, who never made it to Concord, singlehandedly warned the colonists of the British attack."

You can obtain information about Universal Product Code from the Uniform Code Council, Inc. which is "the central management and information center for manufacturers, distributors and retailers participating in the U.P.C. system," according to a document on their Web site:

Uniform Code Council: www.uc-council.org

That Web site also includes many documents about UPC, including the essential:

UPC Symbol Specification Manual (January 1986, reprinted May 1995): www.uc-council.org/old_files/d36-t.htm

I first learned about the "secrets" of the UPC from an entertaining book with a somewhat inaccurate title:

Poundstone, William. Big Secrets: The Uncensored Truth About All Sorts of Stuff You Are Never Supposed to Know. New York, NY: William Morrow & Company, Inc., 1983.

The conventional paranoia about the UPC is best summed up by a character named Artist created by Eric Bogosian for his collection of comic theatrical monologues Sex, Drugs, Rock & Roll:

"Go in a store, pick something up, pick anything up, take a look … everything’s got those little computer lines on ‘em now. Everything. What do those little lines mean, man?

"Nobody knows. Nobody knows what they say—it’s not English, it’s computer. All these computers are talking to each other, man, nobody knows what they’re saying. It’s like we’re living in an occupied country, man.

"All day and all night long, the computers are talking to each other on the modems and the fax machines and the satellite link-ups. All day and all night. What are they talking about? What are they talking about? I’ll tell you what they’re talking about. They’re talking about you and me … how to use us more efficiently. "

That's from:

Bogosian, Eric. Sex, Drugs, Rock & Roll. New York, NY: HarperCollins Publishers, 1992.

Another level of UPC-paranoia is based on Revelation 13:16-18 and promoted by the character Johnny in writer/director Mike Leigh’s film Naked:

"Are you not familiar with the Book of Revelation of St. John, the final book of the Bible, prophesying the Apocalypse? […] ‘He forced everyone to receive a mark on his right hand, or on his forehead, so that no one shall be able to buy or sell, unless he has the mark, which is the name of the beast. Or the number of his name; and the number of the beast is six-six-six.’ […] What can such a specific prophecy mean? What is the mark? Well, the mark […] is the bar code -- the ubiquitous bar code that you’ll find on every bog-roll, on every packet of johnnies, on every poxy pork pie. And every […] bar code is divided into two parts by three markers. And those three markers are always represented by the number six. Six. Six. Six! […] And now, what they’re plannin’ to do in order to eradicate all credit-card fraud, and in order to precipitate a totally cashless society, what they’re plannin’ to do, what they’ve already tested on the American troops, they’re gonna subcutaneously laser-tattoo that mark on to your right hard or on to your forehead. They’re gonna replace plastic with flesh. Fact!"
That's from:

Leigh, Mike. Naked and Other Screenplays. London, England: Faber and Faber Limited, 1995.

And if you think this was made up just for the movie, you’ve led a sheltered life far from the ravings of millennialists and other crazies!

The "Mark of the Beast" that Johnny seems to find encoded on every UPC is actually the three guard patterns. The left and right guard patterns are both 101 and the center guard pattern is 01010. All three involve two thin bars separated by a thin gap. The code for a 6 on the right side of the UPC also involves two thin bars separated by a thin gap. Thus, the three guard patterns supposedly spell out 666.

If there’s anything the past few chapters have taught, however, is that in binary codes 0’s are as important as 1’s. The UPC binary code for a 6 is 0101111 or 1010000 or 0000101 or 1111010. It is not 101 or 01010. Those are not even codes, as such, for they do not represent any data in the UPC; they are simply bit patterns that allow a UPC reader to ensure that the entire UPC is read correctly.

Chapter 10. Logic and Switches

The titles of the six works that comprise Aristotle's Organon are The Categories, On Interpretation, Prior Analytics, Posterior Analytics, Topica, and On Sophistical Refutations. These are most conveniently available in three books from the Loeb Classical Library:

Aristotle. The Categories, On Interpretation, Prior Analytics. Edited and translated by Harold P. Cooke and Hugh Tredennick. Cambridge, MA: Harvard University Press, 1938. Loeb Classical Library No. 325.

Aristotle. Posterior Analytics, Topica. Edited and translated by Hugh Tredennick and E. S. Forster. Cambridge, MA: Harvard University Press, 1960. Loeb Classical Library No. 391.

Aristotle. On Sophistical Refutations, On Coming-To-Be and Passing-Away, On the Cosmos. Edited and translated by E. S. Forster and D. J. Furley. Cambridge, MA: Harvard University Press, 1955. Loeb Classical Library No. 400.

The syllogism is discussed mostly in Prior Analytics. Like much of Aristotle, it reads like the unedited transcript of a spacey college professor whose lecture has clearly left all the students in the dust but continues onward, unaware. According to:

Lukasiewicz, Jan. Aristotle's Syllogistic from the Standpoint of Modern Formal Logic, second edition, enlarged. Oxford, England: Clarendon Press, 1998. Originally published in 1951.

the "Socrates is a man" syllogism isn't an Aristotelian syllogism at all: Aristotle never used singular terms, and included the words "if" and "then" in his syllogisms: "if A, and B, then C."

An extensive historical treatment of logic is:

Kneale, William and Martha Kneale. The Development of Logic. Oxford, England: Clarendon Press, 1962.

Another historical overview that begins with Leibniz is:

Lewis, C. I. A Survey of Symbolic Logic: The Classic Algebra of Logic. New York: Dover Publications, 1960. Originally published by University of California Press in 1918.

The only full-length biography of George Boole is:

MacHale, Desmond. George Boole: His Life & Work. Dublin, Ireland: Boole Press Limited, 1985.

This biography is very hard to find but the New York Public Library has a copy. Boole's first work on logic is:

Boole, George. The Mathematical Analysis of Logic. New York, NY: Philosophical Library, 1948. Originally published by Macmillan, Barclay, & Macmillan in 1847.

The Laws of Thought is still in print in a Dover edition:

Boole, George. An Investigation of The Laws of Thought on Which are Founded the Mathematical Theories of Logic and Probabilities. New York: Dover Publications, 1958. Originally published by Macmillan in 1854.

Another useful volume is:

Boole, George. Studies in Logic and Probability. London, England: Watts & Co., 1952.

This book contains The Mathematical Analysis of Logic, an article entitled "The Calculus of Logic" (1848) and 15 other articles. It also includes a 48-page biographical essay on Boole written in 1866 by the Rev. Robert Harley. Another more recent compendium that includes letters and textual notes is:

Boole, George. George Boole: Selected Manuscripts on Logic and its Philosophy. Edited by Ivor Grattan-Guinness and Gérard Bornet. Basel, Switzerland: Birkhäuser Verlag, 1997.

The little (78-page) volume:

Barry, Patrick D. George Boole: A Miscellany. Cork, Ireland: Cork University Press, 1969.

contains several interesting papers presented at the 1964 centenary of Boole's death.

Many, many books cover Boolean algebra. Two that offer practical treatments with applications to switching logic are:

Whitesitt, J. Eldon. Boolean Algebra and Its Applications. New York, NY: Dover Publications, Inc., 1995. Originally published by Addison-Wesley in 1961.

South, G. F. Boolean Algebra and Its Uses. New York, NY: Van Nostrand Reinhold Company, 1974.

Two books by Keith Devlin have good chapters on Boolean algebra. These are chapter 2 of:

Devlin, Keith. Mathematics, the Science of Patterns: The Search for Order in Life, the Mind, and the Universe. New York, NY: Scientific American Library, 1996.

and chapter 2 of:

Devlin, Keith. The Language of Mathematics: Making the Invisible Visible. New York, NY: W.H. Freeman and Company, 1998.

These books are quite similar in what they cover (as Devlin himself says) but the second attempts to target a wider (less math-savvy) audience.

Solving syllogisms is simplified somewhat by introducing the concept of implication and a symbol for it. This was not part of Boole's algebra, however, and was instead introduced in the 1890s by Giuseppe Peano. See:

Peano, Giuseppe. Selected Works of Giuseppe Peano. Translated and edited, with a biographical sketch and bibliography by Hubert C. Kennedy. London, England: George Allen & Unwin, Ltd., 1973.

Nor did Boole use diagrams to solve logic problems. These "Venn diagrams" were introduced by John Venn in 1881. See:

Venn, John. Symbolic Logic, 2nd edition. London, England: Macmillan and Co., 1894.

The Lewis Carroll syllogism is from his book Symbolic Logic, which is still in print and available in a Dover edition:

Carroll, Lewis. Symbolic Logic and The Game of Logic. New York, NY: Dover Publications, 1958. Originally published by MacMillan and Co., in 1897 and 1887 respectively.

Aficionados of Carroll's logic will want a recreation of the uncompleted and long-lost Part II of Symbolic Logic published in:

Carroll, Lewis. Symbolic Logic. Edited, with annotations and an introduction, by William Warren Bartley, III. Hassocks Sussex, England: Harvester Press, 1977.

Chapter 11. Gates (Not Bill)

Claude Shannon's paper "A Symbolic Analysis of Relay and Switching Circuits" is published in Shannon, Collected Papers and Laplante, Great Papers in Computer Science, both cited in Chapter 18.

Many books cover logic gates in depth and then go far beyond. Here are some recent (and expensive) college textbooks, arranged alphabetically by author:

Daniels, Jerry D. Digital Design from Zero to One. New York, NY: John Wiley & Sons, 1996.

Floyd, Thomas L. Digital Fundamentals, 6th edition. Englewood Cliffs, NJ: Prentice Hall, 1997.

Gajski, Daniel D. Principles of Digital Design. Upper Saddle River, NJ: Prentice Hall, 1997.

Malvino, Albert Paul and Jerald A. Brown. Digital Computer Fundamentals, 3rd edition. New York, NY: Glencoe (Macmillan/McGraw-Hill), 1993.

Mano, M. Morris and Charles R. Kime. Logic and Computer Design Fundamentals. Upper Saddle River, NJ: Prentice Hall, 1997.

Of these, I prefer the Daniels book. Some less-expensive soft-cover books are also available. I like:

Gregg, John R. Ones and Zeros: Understanding Boolean Algebra, Digital Circuits, and the Logic of Sets. Piscataway, NJ: IEEE Press, 1998.

The author of the following book is much more famous for his design of programming languages (see Chapter 24 of Code):

Wirth, Niklaus. Digital Circuit Design: An Introductory Textbook. Berlin: Springer-Verlag, 1995.

The flavor of this fun book can be surmised from its title:

Maxfield, Clive. Bebop to the Boolean Boogie: An Unconventional Guide to Electronics Fundamentals, Components, and Processes. Solana Beach, CA: HighText Publications, Inc., 1995.

An older book that I've gotten much out of over the years is:

Winkel, David and Franklin Prosser. The Art of Digital Design: An Introduction to Top-Down Design. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1980.

Another older book I have that is much closer to Shannon in its treatment is:

Hohn, Franz E. Applied Boolean Algebra: An Elementary Introduction, 2nd edition. New York, NY: The Macmillan Company, 1966.

A book available on line is:

Katz, Randy H. Contemporary Logic Design: http://http.cs.berkeley.edu/~randy/CLD/CLD.html

Statements of De Morgan's Laws can be found in:

de Morgan, Augustus. On the Syllogism and Other Logical Writings. London, England: Routledge & Kegan Paul, 1966.

See the index. In particular, on page 119, in a work published in 1858, de Morgan states his famous law without using any mathematical symbols:

"The contrary of an aggregate is the compound of the contraries of the aggregants: the contrary of a compound is the aggregate of the contraries of the components."
The "aggregate" is de Morgan's OR and the "compound" is de Morgan's AND. The book:

De Morgan, Augustus. Formal Logic. London, England: The Open Court Company, 1926. Originally published in 1847.

is the one that is said to have been published the same day as Boole's Mathematical Analysis of Logic.

Chapter 12. A Binary Adding Machine

The books cited in Chapter 11 (with the exception of those by Augustus deMorgan) also describe how logic gates can be combined to perform addition. Two older books that focus on this more-specific aspect of digital logic are:

Gillie, Angelo C. Binary Arithmetic and Boolean Algebra. New York, NY: McGraw-Hill Book Company, 1965.

Oberman, R.M.M. Digital Circuits for Binary Arithmetic. London, England: The Macmillan Press Ltd., 1979.

In Chapter 18, I discuss that how George Stibitz (a mathematician at Bell Labs) built a relay-based adder on his kitchen table in 1937. There's a picture of it on page 222 of Williams, A History of Computing Technology, 2nd edition, cited in the notes for that chapter.

Chapter 13. But What About Subtraction?

Donald Knuth in The Art of Computer Programming, Volume 2 (cited in Chapter 17 of this bibliography), pages 203-4, writes:
"Detail-oriented readers and copy editors should notice the position of the apostrophe in terms like 'two's complement' and 'ones' complement': A two's complement number is complemented with respect to a single power of 2, while a ones' complement number is complemented with respect to a long sequence of 1s."
This argument was persuasive enough to convince the editors at Microsoft Press to overrule the recommended spelling in the Microsoft Press Computer Dictionary.

Chapter 14. Feedback and Flip-Flops

The original description of the flip-flop is:

Eccles, W.H. and F.W. Jordan, "A Trigger Relay Utilising Three-Electrode Thermionic Vacuum Tubes," Radio Review, Vol. 1, No. 3 (December, 1919): pages 143-146.

Although most of the books cited in Chapter 10 cover flip-flops, two soft-cover books focus on them:

Abdelilah, Amalou. Digital Circuits, Volume 3: Flip-Flops, Counters, Shift Registers, Decoders, Multiplexers. Chesterland, OH: Weber Systems, Inc., 1989.

Sinclair, Ian R. Digital Logical Gates and Flip-Flops: What They Do and How To Use Them. Kent, England: PC Publishing, 1989.

Chapter 15. Bytes and Hex

The etymology of the word "byte" is discussed in a letter from Werner Buchholz (who worked on IBM's Project Stretch) to Byte magazine:

Buchholz, W. "The Word 'Byte" Comes of Age...", BYTE, Volume 2, Number 2, February 1977, page 144.

It was reprinted in a slightly different form in:

Buchholz, W. "Origin of the Word Byte," Annals of the History of Computing, Volume 3, Number 1, January 1981, page 72.

However, as late as 1980, we can find in Mackenzie, Coded Character Sets (cited in Chapter 21), page 12, the statement "A byte is a bit pattern of fixed length. Thus we speak of 8-bit bytes, 6-bit bytes, and so on."

Donald Knuth, in The Art of Computer Programming, Volume 2 (cited in Chapter 17) mentions some alternatives for the awkward word "hexadecimal." He suggests that more proper terms would be "senidenary" or "sedecimal" or "sexadecimal" but adds "the latter is perhaps too risqué for computer programmers."

Chapter 16. An Assemblage of Memory

Some references (e.g., the 28th edition of the CRC Standard Mathematical Tables) indicate that the metric prefix for 1015 is "peca-" (from the Greek for "beyond") rather than "peta-" but "peta-" has been the internationally-accepted prefix since 1975. (See page 35 of The International System of Units (SI), a 283 KB PDF file.)

Chapter 17. Automation

Detailed demonstrations of what goes on inside a processor are hard to come by. One brave author who is an exception to the rule is:

Gibson, Victor E. Microprocessors: Fundamental Concepts and Applications. Albany, NY: Delmar Publisher, Inc., 1994.

The following book also makes a good stab at explaining the workings of computers and covers many other topics as well:

Eck, David J. The Most Complex Machine: A Survey of Computers and Computing. Wellesley, MA: A.K. Peters, 1995.

Another attempt has a title that sounds odd without knowledge of Clive Maxfield's earlier book (cited in Chapter 11):

Maxfield, Clive and Alvin Brown. Bebop BYTES Back: An Unconventional Guide to Computers. Madison, AL: Doone Publications, 1997.

As I mention in this chapter, there are many books on algorithms used in programming. The most famous are three volumes by Donald Knuth:

Knuth, Donald. The Art of Programming, Volume 1: Fundamental Algorithms, 3rd edition. Reading, MA: Addison-Wesley, 1997.

Knuth, Donald. The Art of Programming, Volume 2: Seminumerical Algorithms, 3rd edition. Reading, MA: Addison-Wesley, 1998.

Knuth, Donald. The Art of Programming, Volume 3: Sorting and Searching, 2nd edition. Reading, MA: Addison-Wesley, 1997.

To illustrate his algorithms, Knuth uses a mythical assembly language called MIX. Four additional volumes (on Combinatorial Analysis, Syntactical Algorithms, the Theory of Languages, and Compilers) are also planned. For information, see Donald Knuth's web site at:

Don Knuth's Home Page: http://www-cs-faculty.stanford.edu/~knuth/

Chapter 18. From Abaci to Chips

Code is not a history of the computer, of course, but an historical perspective is helpful when exploring any technology. Because of the large number of books I've accumulated that relate to this chapter of Code, I've divided the annotated bibliography for this chapter into several sections.

General Histories

There are several first-rate histories. One of the best and most balanced is:

Campbell-Kelly, Martin, and William Aspray. Computer: A History of the Information Machine. New York: BasicBooks, 1996.

It begins with Babbage and doesn't skimp on more-recent developments, such as the World Wide Web.

Williams, Michael R. A History of Computing Technology, 2nd edition. Los Alamitos, CA: IEEE Computer Society Press, 1997.

begins earlier (with number systems) but ends with the IBM/360. Also highly recommended are two books by Paul E. Ceruzzi. The first has much interesting material on relay computers:

Ceruzzi, Paul E. Reckoners: The Prehistory of the Digital Computer, from Relays to the Stored Program Concept, 1935-1945. Westport, Connecticut: Greenwood Press, 1983.

and its sequel covers the next five decades:

Ceruzzi, Paul E. A History of Modern Computing. Cambridge, Massachusetts: The MIT Press, 1998.

I also enjoy:

Augarten, Stan. Bit by Bit: An Illustrated History of Computers.New York, NY: Ticknor & Fields, 1984.

Three other books that are heavily illustrated are:

Eames, Charles and Ray Eames. A Computer Perspective: Background to the Computer Age, new edition. Cambridge, MA: Harvard University Press, 1990. Originally published in 1973.

is based on an exhibit designed by the famed designers and filmmakers known as the Office of Charles & Ray Eames,

Palfreman, Jon and Doran Swade. The Dream Machine: Exploring the Computer Age. London, England: BBC Books, 1991.

is associated with a BBC TV servies, and

Kidwell, Peggy A. and Paul E. Ceruzzi. Landmarks in Digital Computing. Washington DC: Smithsonian Insitution Press, 1994.

is based on exhibits at the Smithsonian Institution. There's also:

Freed, Les. The History of Computers. Emeryville, CA: Ziff-Davis Press, 1995. Illustrated by Sarah Ishida.

The book:

Spencer, Donald D. The Timetable of Computers: A Chronology of the Most Important People and Events in the History of Computers. Ormond Beach, Florida: Camelot Publishing Company, 1997.

begins in the year 3000 BCE and ends in 2050 CE. Much more useful (partly because it's searchable and partly because it's extensively documented) is:

Polsson, Ken. "Chronology of Events in the History of Microcomputers." www.islandnet.com/~kpolsson/comphist http://www.islandnet.com/~kpolsson/comphist

Occasionally I also consulted:

Slater, Robert. Portraits in Silicon. Cambridge, MA: The MIT Press, 1987.

which has biographical sketches of 31 people from Babbage to Knuth, and:

Rheingold, Howard. Tools for Thought: The History and Future of Mind-Expanding Technology. New York, NY: Simon & Shuster, 1985.

Collected Papers

There are several collections of important articles, papers and documents on the computer age.

Randell, Brian, ed. The Origins of Digital Computers: Selected Papers, third edition. New York, NY: Springer-Verlag, 1982.

is a valuable resource, containing historical documents from Babbage through the EDSAC. Papers presented at the International Research Conference on the History of Computing in 1976 are collected in:

Metropolis, N., J. Howlett, and Gian-Carlo Rota, ed. A History of Computing in the Twentieth Century: A Collection of Essays with Introductory Essay and Indexes. New York: Academic Press, Inc., 1985.

Diebold, John, ed. The World of the Computer. New York, NY: Random House, 1973.

probably provides the best enjoyable reading of these collections.

Laplante, Phillip. Great Papers in Computers Science. New York, NY: IEEE Press, 1996.

is unfortunately flawed by some careless proofreading.

On-Line Resources

A number of web sites contain virtual computer museums. Some examples are:

Museum of the University of Virginia Department of Computer Science

Virginia Tech History of Computing

Historial Computer Society

Virtual Museum of Computing (VMoC)

Obsolete Computer Musuem

Smithsonian Computer History

focuses on oral histories.

Computer History Association of California

provides a collection of links.

This is my no means an exhaustive list. Many of the sites above have additional links.

Early Computing (page 238 ff)

Now I'll discuss the more specialized books, in chronological order of the periods they cover.

Aspray, William, ed. Computing Before Computers. Ames, IA: Iowa State University Press, 1990.

is essential, particularly for its chapters on Hollerith's punched-card machines, logic machines, and analog computers. For learning the abacus, this little book actually comes with a small abacus:

Dilson, Jesse. The Abacus: A Pocket Computer. New York, NY: St. Martin's Press, 1994. Originally published in 1968.

This book was originally published in 1954 and by 1995 had reached its 38thprinting:

Kojima, Takashi. The Japanese Abacus: Its Use and Theory. Rutland, VT: Charles E. Tuttle Company, 1954.

John Napier and Logarithms (pages 238 through 239)

Although Scottish, John Napier wrote his mathematical books in Latin. Translations have been infrequently published and are hard to come by. I have:

Napier, John. The Construction of the Wonderful Canon of Logarithms. New York, NY: The Classics of Science Library, 1997. A republication of a translation by William Rae MacDonald published by William Blackwood and Sons in 1889.

The description of Napier's bones is included in:

Napier, John. Rabdology. Cambridge, MA: The MIT Press, 1990. Volume 15 in the Charles Babbage Institute Reprint Series for the History of Computing. Translated by William Frank Richardson. Originally published in Latin in 1617 under the title Rabdologiæ.

which also includes a method to do calculations based on binary numbers and a checkerboard. Napier's bones and the checkerboard are both discussed in essays in:

Gardner, Martin. Knotted Doughnuts and Other Mathematical Entertainments. New York: W. H. Freeman and Company, 1986.

Williams, A History of Computing Technology (cited earlier) has a good section on the slide rule. A more extensive treatment is:

Cajori, Florian. A History of the Logarithmic Slide Rule and Allied Instruments and On the History of Gunter's Scale and the Slide Rule During the Seventeenth Century. Mendham, New Jersey: Astragal Press, 1994. Originally published in 1910 and 1920.

The Keuffel & Esser story in this chapter of Code is from page 146 of Reid, The Chip (cited later in this chapter). A discussion of mechanical calculating machines is:

d'Ocagne, Maurice. Le Calcul Simplifié: Graphical and Mechanical Methods for Simplifying Calculation. Cambridge, MA: The MIT Press, 1986. Volume 11 in the Charles Babbage Institute Reprint Series for the History of Computing. Translated by J. Howlett and M.R. Williams. Originally published by Gauthier-Villars in Paris in 1928.

Charles Babbage (pages 240 through 241)

An early biography of Charles Babbage:

Moseley, Maboth. Irascible Genius: The Life of Charles Babbage. Chicago, IL: Henry Regnery Company, 1964.

is considered to have been superseded by the more recent:

Hyman, Anthony. Charles Babbage: Pioneer of the Computer. Princton, NJ: Princton University Press, 1982.

Charles Babbage's autobiography is:

Babbage, Charles. Passages from the Life of a Philosopher. Edited and with an introduction by Martin Campbell-Kelly. New Brunswick, NJ: Rutgers University Press, 1994.

Excerpts from the autobiography and selections of other papers are collected in:

Babbage, Charles. On the Principles and Development of the Calculator and Other Seminal Writings by Charles Babbage and Others. Edited and with an introduction by Philip Morrison and Emily Morrison. New York, NY: Dover Publications, 1961.

The quotations from Ada Byron are from pages 248 and 256 of:

Toole, Betty Alexandra. Ada, the Enchantress of Numbers: A Selection from the Letters of Lord Byron's Daughter and Her Description of the First Computer. Mill Valley, CA: Strawberry Press, 1992.

A look at Babbage's difference engine and those of others he inspired is:

Lindgren, Michael. Glory and Failure: The Difference Engines of Johann Müller, Charles Babbage, and Georg and Edvard Scheutz. Translated by Craig G. McKay. Cambridge, MA: The MIT Press, 1990.

Herman Hollerith (pages 241 through 242)

Hollerith's biography is:

Austrian, Geoffrey D. Herman Hollerith: Forgotten Giant of Information Processing. New York, NY: Columbia University Press, 1982.

A good technical description of Hollerith's machines is in Aspray, Computing Before Computers. The phrase "Do not spindle, fold, or mutilate" is attributed to Charles A. Phillips in Mackenzie, Coded Character Sets (cited in Chapter 20), page 262.

Howard Aiken (page 243)

A pair of recent books on Howard Aiken comprise a biography:

Cohen, I. Bernard. Howard Aiken: Portrait of a Computer Pioneer. Cambridge, MA: The MIT Press, 1999.

and a collection of papers and remembrances:

Cohen, I. Bernard and Gregory W. Welch, eds. Makin' Numbers: Howard Aiken and the Computer. Cambridge, MA: The MIT Press, 1999.

Grace Hopper and others on Aiken's staff wrote the manual for the Mark I, published in facsimile in:

Harvard University Computation Laboratory. A Manual of Operation of the Automatic Sequence Controlled Calculator. Cambridge, MA: The MIT Press, 1985. Volume 8 in the Charles Babbage Institute Reprint Series for the History of Computing. Originally published by Harvard University Press in 1946.

The manual has an historical introduction that reveals Aiken's admiration of Babbage, who at the time was in an historical eclipse.

Vacuum Tubes (page 243 through 244)

Books on vacuum tubes are not readily available. A few exceptions are:

Tyne, Gerald F. J. Saga of the Vacuum Tube. Tempe, Arizona: Antique Electronic Supply, 1994. Originally published in 1977.

Stokes, John W. 70 Years of Radio Tubes and Valves: A Guide for Electronic Engineers, Historians and Collectors, 2nd edition. Chandler, Arizona: Sonoran Publishing, Inc., 1982.

Reich, Herbert J. Principles of Electron Tubes: Understanding and Designing Simple Circuits. Peterborough, NH: Audio Amateur Press, 1995. Originally published in 1941.

The Basic Electronics book cited in Chapter 4 also has some information on vacuum tubes. None of these books has any mention of the use of vacuum tubes in computers, although Reich has a brief discussion of the Eccles and Jordan trigger circuit.

You really have to search out some older books to find logic circuits made from tubes. These three do so:

Millman, Jacob and Herbert Taub. Pulse and Digital Circuits. New York, NY: McGraw-Hill Book Company, Inc., 1956.

Richards, R.K. Digital Computer Components and Circuits. Princeton, NJ: D. Van Nostrand Company, Inc., 1957.

Scott, Norman R. Analog and Digital Computer Technology. New York, NY: McGraw-Hill Book Company, Inc., 1960.

Alan Turing (page 244)

Alan Turing's life is well served in the biography:

Hodges, Andrew. Alan Turing: The Enigma. New York, NY: Simon and Schuster, 1983.

Turing's paper:

Turing, Alan. "On Computable Numbers, with an Application to the Entscheidungsproblem." Proceedings of the London Mathematical Society, Series 2, Volume 42 (1936-7), pages 230-265. Corrections in Volume 43 (1937), pages 544-546.

is included in the book:

Davis, Martin, ed. The Undecidable: Basic Papers on Undecidable Propositions, Unsolvable Problems and Computable Functions. New York, NY: Raven Press, 1965.

and Laplante, Great Papers in Computer Science cited earlier. Turing's paper:

Turing, Alan. "Computing Machinary and Intelligence," MIND, Volume LIX, No. 236, October, 1950, pages 433-460.

has been extensively reprinted, and is included in Diebold, op. cit. and Laplante, op. cit.

Although the book:

Goldstine, Herman H. The Computer from Pascal to von Neumann. Princeton, New Jersey: Princeton University Press, 1972. Republished with a new preface in 1993.

appears to be a general history, it's greatest strength lies in the discussion of the ENIAC and EDVAC by one of the major insiders. Also focusing heavily on the ENIAC/UNIVAC era is:

Shurkin, Joel. Engines of the Mind: The Evolution of the computer from Mainframes to Microprocessors. New York: W. W. Norton & Company: 1996. Originally published in 1984.

The ENIAC is chronicled in a recent history:

McCartney, Scott. ENIAC: The Triumphs and Tragedies of the World's First Computer. New York, NY: Walker and Company, 1999.

Another insider wrote the memoir:

Lukoff, Herman. From Dits to Bits: A Personal History of the Electronic Computer. Portland, OR: Robotics Press, 1979.

John Atanasoff (page 244)

The John Atanasoff story is chronicled in:

Mollenhof, Clark R. Atanasoff: Forgotten Father of the Computer. Ames, IO: Iowa State University Press, 1988.

Burks, Alice R. and Arthur W. Burks. The First Electronic Computer: The Atanasoff Story. Ann Arbor, MI: The University of Michigan Press, 1988.

John von Neumann (page 245)

Von Neumann's contributions to computing are extensively discussed in:

Aspray, William. John von Neumann and the Origins of Modern Computing. Cambridge, MA: The MIT Press, 1990.

Von Neumann's short book:

von Neumann, John. The Computer and the Brain. New Haven, CT: Yale University Press, 1958.

is still available in paperback.

Claude Shannon (page 246)

Claude Shannon's famous 1948 paper "The Mathematical Theory of Communication" inaugurated the field of information theory and was the first publication to use the word "bit" as "binary digit." It is currently available in paperback with an additional 1949 essay ("Recent Contributions to the Mathematical Theory of Communication") by mathematician Warren Weaver and originally published in Scientific American:

Shannon, Claude E. and Warren Weaver. The Mathematical Theory of Communication. Urbana, IL: University of Illinois Press, 1963.

Over 900 pages of Shannon's publications are included in:

Shannon, Claude E. Claude Elwood Shannon: Collected Papers. New York, NY: IEEE Press, 1993.

Shannon's masters thesis on "A Symbolic Analysis of Relay and Switching Circuits" (discussed in Chapter 11) is reprinted in this collection as wall as in Laplante, op. cit.

Norbert Wiener (page 246)

Wiener's famous book that invented the concept and word "cybernetics" is:

Wiener, Norbert. Cybernetics or Control and Communication in the Animal and the Machine. New York, NY: John Wiley & Sons, Inc., 1948.

It is currently available in a paperback from The M.I.T. Press. Several other books by Wiener are still in print, including:

Wiener, Norbert. The Human Use of Human Beings: Cybernetics and Society. New York, NY: Da Capo Press, 1988. Originally published by Houghton Mifflin in 1954.

A fascinating double-biography of Wiener and von Neumann is:

Heims, Steve J. John von Neumann and Norbert Wiener: From Mathematics to the Technologies of Life and Death. Cambridge, MA: The MIT Press, 1980.

The Transistor (pages 247 through 249)

A history of silicon is:

Seitz, Frederick and Norman G. Einspruch. Electronic Genie: The Tangled History of Silicon. Urbana, IL: University of Illinois Press, 1998.

A translation of a German history is also available:

Eckert, Michael and Helmut Schubert. Crystals, Electrons, Transistors: From Scholar's Study to Industrial Research. Translated by Thomas Hughes. New York, NY: American Institute of Physics, 1990. Originally published as Kristalle, Elektronen, Transistoren in 1986.

The invention of the transistor and the aftermath is given an extensive and dramatic treatment in:

Riordan, Michael and Lillian Hoddeson. Crystal Fire: The Birth of the Information Age. New York: W. W. Norton & Company, 1997.

A big book of historical papers is:

Hoddeson, Lillian, Ernest Braun, Jüaut;urgen Teichmann, and Spencer Weart, eds. Out of the Crystal Maze: Chapters from the History of Solid-State Physics. New York, NY: Oxford University Press, 1992.

Biographies of the three inventors of the transistor and the Nobel Prize presentation speech are available at:

Nobel Prize in Physics, 1956: http://www.nobel.se/physics/laureates/1956

In his later years, Shockley embarrassed himself and the rest of humanaity by propagating crude theories of racial eugenics, and his name is still avoided in polite company.

The Integrated Circuit (pages 249 through 251)

The quotation from Geoffrey Dummer is from Dummer, Electronic Inventions and Discoveries, page 169. The story of Jack Kilby and Robert Noyce is provided by this entertaining history:

Reid, T. R. The Chip: How Two Americans Invented the Microchip and Launched a Revolution. New York: Simon and Schuster, 1984.

Another good history is:

Queisser, Hans. The Conquest of the Microchip: Science and Business in the Silicon Age. Translated by Diane Crawford-Burkhardt. Cambridge, MA: Harvard University Press, 1988. Originally published as Kristallene Krisen in 1985.

Morris, P. R. A History of the World Semiconductor Industry. London, England: Peter Peregrinus Ltd., 1990.

is over-priced for its size (171 pages) but focuses more on manufacture and industry. The mind-boggling economics of the chip market are also covered in:

Braun, Ernest, and Stuart MacDonald. Revolution in Miniature: The History and Impact of Semiconductor Electronics, 2nd edition. Cambridge, England: Cambridge University Press, 1982.

This book has some wonderful microscopic photographs of chips from 1947 through 1982:

Augarten, Stan. State of the Art: A Photographic History of the Integrated Circuit. New Haven, CT: Ticknor & Fields, 1983.

It is perhaps best enjoyed backwards, by starting at the end with the more familiar labyrinths of silicon and then flipping back through the less sophisticated ancestors.

TTL and CMOS (pages 251 through 256)

Many hobbyists in the 1970s learned digital logic design from books by Don Lancaster:

Lancaster, Don. TTL Cookbook. Indianapolis, Indiana: Howard W. Sams & Co., Inc., 1974.

Lancaster, Don. CMOS Cookbook. Indianapolis, Indiana: Howard W. Sams & Co., Inc., 1977.

If it were not for these books, there might not have been this book.

While many integrated circuit data books have been published over the years, I tried to draw from two that were published in the mid-1970s:

Texas Instruments Incorporated. The TTL Data Book for Design Engineers, First Edition. 1973.

National Semiconductor. CMOS Databook. Distributed by Radio Shack. 1977.

Early Microprocessors (pages 257 through 259)

Malone, Michael S. The Microprocessor: A Biography. New York, NY: Springer-Verlag, 1995.

includes some history and also a description of the manufacturing process by which chips are made. The story of the 4004 is covered in many general histories and given a close look in:

Aspray, William. "The Intel 4004 Microprocessor: What Constituted Invention?" IEEE Annals of the History of Computing, Vol. 19, No. 3 (September 1997): 4-15.

Chapter 19. Two Classic Microprocessors

A recent book that discusses the architecture or microprocessor and machine code is:

Crisp, John. Introduction to Microprocessors. Oxford, England: Newnes (Butterworth-Heinemann), 1998.

An older book first published in 1977 is also useful for its early look at small computer systems:

Zaks, Rodney. Microprocessors: From Chips to Systems, 3rd edition. Berkeley, CA: Sybex, 1980.

Many mid-1970s hobbyists (including me) learned lots about microprocessors and assembly language from books by Adam Osborne and company:

Osborne, Adam. An Introduction to Microcomputers, Volume I: Basic Concepts. Berkeley, CA: Adam Osborne and Associates, Inc., 1976.

Osborne, Adam. An Introduction to Microcomputers, Volume II: Some Real Products. Berkeley, CA: Adam Osborne and Associates, Inc., 1976.

Osborne, Adam. 8080 Programming for Logic Design. Berkeley, CA: Adam Osborne and Associates, Inc., 1976.

Osborne, Adam. 6800 Programming for Logic Design. Berkeley, CA: Adam Osborne and Associates, Inc., 1977.

Later Intel publications I consulted cover both the 8080 and 8085 microprocessors:

Intel Corporation. The 8080/8085 Microprocessor Book. New York, NY: John Wiley & Sons, 1980.

Intel Corporation. The MCS-80/85 Family User's Manual. 1986.

The Motorola 6800 books I consulted for this chapter were:

Motorola Semiconductor Products Inc. M6800 Microcomputer System Design Data. 1976.

Motorola Semiconductor Products Inc. M6800 Microprocessor Programming Manual, Third Edition. 1976.

An idiosyncratic history of early small computers by the owner of New York City's first computer store is:

Veit, Stan. Stan Veit's History of the Personal Computer. Asheville, NC: WorldComm, 1993.

And then there's the wonderful:

Levy, Steven. Hackers: Heroes of the Computer Revolution. Garden City, NY: Anchor Press/Doubleday, 1984.

Today's data books are often available as downloads from web sites:

Motorola PowerPC Library: http://www.mot.com/SPS/PowerPC/teksupport/teklibrary/index.html

Intel Pentium III Processor Manuals: http://developer.intel.com/design/PentiumIII/manuals/

An online historical look at microprocessors is:

Bayko, John. "Great Microprocessors of the Past and Presemt": http://www.cs.uregina.ca/~bayko/cpu.html

Chapter 20. ASCII and a Cast of Characters

An extensively detailed book about the development of ASCII and EBCDIC is:

Mackenzie, Charles E. Coded Character Sets, History and Development. Reading, MA: Addison-Wesley Publishing Company, 1980.

Nothing else comes close to this book. It's also out of print and very hard to find. The Library of Congress has a copy but the New York Public Library does not. Information on International Telegraph Alphabet #2 (Baudot) can be found in:

International Telecommunication Union. ITU-T Recommendation S.1: International Telegraph Alphabet #2. ITU, 1994.

This document is available for downloading (at a price) from the web site:

International Telecommunications Union: www.itu.org.

The original ASCII standard and the "Latin Alphabet No. 1" extension are published as:

American National Standards Institute. ANSI X3.4-1986: Coded Character Sets - 7-Bit American National Standard Code for Information Interchange (7-Bit ASCII). New York: ANSI, 1986.

American National Standards Institute. ANSI/ISO 8859-1-1987: 8-Bit Single-Byte Coded Graphic Character Sets - Part 1: Latin Alphabet No. 1. New York: ANSI, 1987.

These documents are available from ANSI:

American National Standards Institute: www.ansi.org.

The Hacker's Dictionary defines EBCDIC as

"An alleged character set used on IBM dinosaurs. [dinosaur: "Any hardware requiring raised flooring and special power."] It exists in at least six mutually incompatible versions, all featuring such delights as non-contiguous letter sequences and the absence of several ASCII punctuation characters fairly important for modern computer languages (exactly which characters are absent varies according to which version of EBCDIC you're looking at). IBM adapted EBCDIC from punched card code in the early 1960s and promulgated it as a customer-control tactic (see connector conspiracy), spuring the already established ASCII standard. Today, IBM claims to be an open-systems company, but IBM's own description of the EBCDIC variants and how to convert between them is still internally classified top-secret, burn-before-reading. Hackers blanch at the very name of EBCDIC and consider it a manifestation of purest evil. See also fear and loathing."

Unicode is documented in:

The Unicode Standard, Version 2.0. Reading, MA: Addison-Wesley Developers Press, 1996.

This book is worth looking at just to get a view of all the different alphabets and ideographs used around the world. (The third addition was published in February, 2000.) Updated information on Unicode can be found at

Unicode, Inc: www.unicode.org

Chapter 21. Get on the Bus

The S-100 bus is discussed in:

Poe, Elmer C. and James C. Goodwin. The S-100 & Other Micro Buses, 2nd edition. Indianapolis, IN: Howard W. Sams & Co., Inc., 1981.

The IBM PC buses (and other hardware interfaces of the Mac and PC) are discussed in:

Hordeski, Michael. Personal Computer Interfaces: Macs to Pentiums. New York, NY: McGraw-Hill, Inc., 1995.

And then there's the encyclopedic:

Rosch, Winn L. The Winn L. Rosch Hardware Bible, 5th edition. Indianapolis, IN: Que, 1999.

An online version is:

Winn L. Rosch Hardware Bible, Electronic Edition: http://204.56.132.222/courses/CIS312J/EBOOK/httoc.htm

More technically-detailed discussions of PC buses are books such as these:

Shanley, Tom and Don Anderson. ISA System Architecture, 3rd edition. Reading, MA: Addison-Wesley, 1995.

Shanley, Tom and Don Anderson. PCI System Architecture, 3rd edition. Reading, MA: Addison-Wesley, 1995.

Also useful are books such as:

Pilgrim, Aubrey. Build Your Own Pentium II PC. New York, NY: McGraw-Hill Inc., 1998.

Page 310: The concept of bandwidth is explored in:

Lu, Cary. The Race for Bandwidth: Understanding Data Transmission. Redmond, WA: Microsoft Press, 1998.

Some early books on building small computer video displays are:

Lancaster, Don. TV Typewriter Cookbook. Indianapolis, IN: Howard W. Sams & Co., Inc., 1976.

Lancaster, Don. The Cheap Video Cookbook. Indianapolis, IN: Howard W. Sams & Co., Inc., 1978.

An early book on "putting it all together" is:

Haviland, Robert P. How to Design, Build & Program Your Own Working Computer System. Blue Ridge Summit, PA: Tab Books, 1979.

Circuit diagrams of ALTAIR boards can be found at the web site:

Altair Boards: http://www.hyperweb.com/altair/boards.html

A history of magnetic recording that includes disk drives is:

Daniel, Eric D., C. Denis Mee, and Mark H. Clark. Magnetic Recording: The First Hundred Years. New York, NY: IEEE Press, 1999.

One early and highly influential book on the IBM PC is the classic:

Norton, Peter. Inside the IBM PC: Access to Advanced Features and Programming. Bowie, MD: Robert J. Brady Co., 1983.

Subsequent editions targeted a wider audience and tended to tone down the book's gonzo hacker appeal.

Chapter 22. The Operating System

My references at the beginning of this chapter are obviously to the movie versions of Frankenstein and Pinocchio. The original novel of Pinocchio in both Italian and English can be found at:

Pinocchio by Caro Collodi: http://www.castle.net/~rfrone/Lit/1106/1106-00.htm

A number of textbooks discuss the theories behind operating systems. I consulted:

Silberschatz, Abraham and Peter Baer Galvin. Operating System Concepts, 5th edition. Reading, MA: Addison-Wesley, 1998.

and:

Tanenbaum, Andrew S. and Albert S. Woodhull. Operating Systems: Design and Implementation, 2nd edition. Upper Saddle River, NJ: Prentice-Hall, 1997.

Helpful for its chapter on CP/M was:

Deitel, Harvey M. An Introduction to Operating Systems, revised 1st edition. Reading, MA: Addison-Wesley, 1984.

The second edition doesn't include that chapter, but does include chapters on DOS, Macintosh, and OS/2:

Deitel, Harvey M. An Introduction to Operating Systems, 2nd edition. Reading, MA: Addison-Wesley, 1990.

Manuals on CP/M for both users and programmers were distributed with CP/M-based computers. I used a manual distributed with the Kaypro in 1982:

Digital Research, CP/M Operating System Manual. Pacific Grove, CA: Digital Research, 1982.

Also useful were two books published in the same period:

Hogan, Thom. Osborne CP/M User Guide. Berkeley, CA: Osborne/McGraw-Hill, 1981.

Johnson-Laird, Andy. The Programmer's CP/M Handbook. Berkeley, CA: Osborne/McGraw-Hill, 1983.

A large reference to all aspects of MS-DOS is:

Duncan, Ray. The MS-DOS Encyclopedia. Redmond, WA: Microosoft Press, 1988.

There are many books on UNIX. Two that proved helpful for Code were:

Salus, Peter H. A Quarter Century of UNIX. Reading, MA: Addison-Wesley, 1994.

Gancarz, Mike. The UNIX Philosophy. Boston, MA: Digital Press, 1995.

Information on GNU and the Free Software Foundation can be found at:

GNU's Not Unix!: http://www.gnu.org

Chapter 23. Fixed Point, Floating Point

The IEEE floating point standard is published by ANSI:

American National Standards Institute. ANSI/IEEE Std 754-1985: IEEE Standard for Floating-Point Arithmetic. New York: ANSI, 1985.

Donald Knuth has much information on floating point in The Art of Computer Programming, Volume 2 (cited in Chapter 17).

Chapter 24. Languages High and Low

A fascinating survey of programming languages before 1957 can be found in:

Knuth, Donald E. and Luis Trabb Pardo, "Early Development of Programming Languages," Encyclopedia of Computer Science and Technology, Volume 7. New York, NY: Marcel Dekker, Inc., 1977. Pages 419-493.

It includes an extensive bibliography and is reprinted in Metropolis A History of Computing in the Twentieth Century cited in Chapter 18 and

Knuth, Donald E. Selected Papers on Computer Languages. Center for the Study of Language and Information, 2002.

Knuth articles such as "Ancient Babylonian Algorithms" and "Von Neumann's First Computer Program" are collected in:

Knuth, Donald E. Selected Papers on Computer Science. Cambridge, MA: Cambridge University Press, 1996.

My historical discussions of high-level programming languages are primarily drawn from three books. The classic history of programming languages is:

Sammet, Jean B. Programming Languages: History and Fundamentals. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1969.

The only real problem is that it's over 30 years old. One shudders to think how much longer this 785-page book would be if updated!

In 1978, the Association for Computing Machinery (ACM) Special Interest Group on Programming Languages (SIGPLAN) sponsored a Conference on the History of Programming Languages (HOPL). Papers from that conference are collected in:

Wexelblat, Richard L. History of Programming Languages. New York, NY: Academic Press, 1981.

In many cases, the papers regarding each language are by people involved in the actual invention and development of the language. This volume has papers on FORTRAN, ALGOL, LISP, COBOL, BASIC, PL/I, APL, and other languages. The second HOPL conference was held in 1993. Papers from that conference are collected in:

Bergin, Thomas J. Jr. and Richard G. Gibson Jr. History of Programming Languages-II. New York, NY: ACM Press, 1996.

Languages featured are Pascal, Ada, Smalltalk, C, and C++. Dennis Ritchie's paper on the origins of C is reprinted in:

Salus, Peter H., ed. Handbook of Programming Languages, Volume 2: Imperative Programming Languages. Indianapolis, Indiana: Macmillan Technical Publishing, 1998.

An interesting volume of collected papers is:

Horowitz, Ellis, ed. Programming Languages: A Grand Tour. 1983.

No publisher is indicated. I largely took my description of Algol from:

Baumann, R., M. Feliciano, F. L. Bauer, and K. Samelson. Introduction to Algol. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1964.

and:

Meek, Brian. Fortran, PL/I and the Algols. London, England: The Macmillan Press Ltd, 1978.

The former book has an appendix that includes the complete Revised Report on the Algorithmic Language Algol 60. Bauer and Samelson were part of the committee that put this document together. This document is also included in Horowitz, op. cit. and Laplante, Great Papers in Computer Science, cited in Chapter 18.

In preparing the Algol programs in this chapter, I used a free MS-DOS-based Algol-60 compiler available from RHA (Minisystems) Ltd.:

RHA (Minisystems) Ltd.: http://www.angelfire.com/biz/rhaminisys

However, the programs as shown in this chapter cannot be compiled directly. The RHA compiler requires that keywords be in uppercase (or, alternatively, in quotation marks) and non-keywords not. Also, the RHA compiler uses different input and output functions from those described in the Baumann book and used in this chapter. An Algol-60 prime number program that you can actually compile using the RHA compiler is:

     BEGIN
          BOOLEAN ARRAY a[2:10000];
          INTEGER i, j;

          FOR i := 2 STEP 1 UNTIL 10000 DO
               a[i] := TRUE;

          FOR i := 2 STEP 1 UNTIL 100 DO
               IF a[i] THEN
                    FOR j := 2 STEP 1 UNTIL 10000 % i DO
                         a[i * j] := FALSE;

          FOR i := 2 STEP 1 UNTIL 10000 DO
               IF a[i] THEN
                    write (1, i);

     END    
     FINISH
The earlist manual on BASIC I have is:

Kemeny, John G. and Thomas E. Kurtz. BASIC Programming. New York: John Wiley & Sons, 1967.

Although not indicated, this book seems to describe the "Third Edition" of BASIC described by Kurtz in Wexelblat, op. cit. Kemeny and Kurtz later became distressed at the many dialects of BASIC that resulted during the personal computer revolution. They describe the problems and possible solutions in:

Kemeny, John G. and Thomas E. Kurtz. Back to BASIC: The History, Corruption, and Future of the Language. Reading, MA: Addison-Wesley Publishing Company, Inc., 1985.

These concepts live on in books and products available from the web site:

True BASIC Inc: www.truebasic.com

Niklaus Wirth's ideas about programming can best be approached in his classic books:

Wirth, Niklaus. Systematic Programming: An Introduction. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1973.

and the wonderfully-titled:

Wirth, Niklaus. Algorithms + Data Structures = Programs. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1976.

Wirth is also the author of a recent book on compilers that is much smaller (176 pages) than every other book about compilers:

Wirth, Niklaus. Compiler Construction. Harlow, England: Addison-Wesley, 1996.

That's even shorter than the classic book on C:

Kernighan, Brian W. and Dennis M. Ritchie. The C Programming Language. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1978.

The second edition was published ten years later:

Kernighan, Brian W. and Dennis M. Ritchie. The C Programming Language, 2nd edition. Englewood Cliffs, NJ: Prentice-Hall, Inc., 1988.

Views inside the heads of 19 noteworthy programmers can be found in the marvelous collection of interviews:

Lammers, Susan. Programmers at Work. Redmond, Washington: Microsoft Press, 1986.

Chapter 25. The Graphical Revolution

Although Vannevar Bush's original article on Memex was originally published in:

Bush, Vannevar. "As We May Think," Atlantic Monthly, Vol. 176, No. 1, July, 1945, pages 101-108.

and in an abridged form in:

Bush, Vannevar. "As We May Think: A Top U.S. Scientist Forsees a Possible Future World in Which Man-Made Machines Will Start to Think," LIFE, Vol. 19, No. 11, September 10, 1945, pages 112-124.

and is available on-line at the web site of the Intelligent Software Group at Simon Fraser University:

http://www.isg.sfu.ca/~duchier/misc/vbush

and at the web site of the World Wide Web Consortium (W3C):

http://www.w3.org/History/1945/vbush

it is most usefully read today in the indispensable volume:

Nyce, James M. and Paul Kahn, eds. From Memex to Hypertext: Vannevar Bush and the Mind's Machine. San Diego, CA: Academic Press, Inc., 1991.

This book contains other essays by Bush on the Memex, and essays by the editors and others about Bush's concepts. Bush's autobiography is:

Bush, Vannevar. Pieces of the Action. New York, NY: William Morrow and Company, Inc., 1970.

A recent biography is:

Zachary, G. Pascal. Endless Frontier: Vannevar Bush, Engineer of the American Century. Cambridge, MA: The MIT Press, 1999. Originally published by The Free Press in 1997.

Page 366: The ANSI standard on video escape codes is:

American National Standards Institute. ANSI X3.64-1979: Additional Controls for Use with American National Standard Code for Information Interchange. New York: ANSI, 1979.

Page 366: Dan Bricklin and Bob Frankston are interviewd in Lammers, Programmers at Work, cited in Chapter 24. Alan Kay and others are profiled in:

Shasha, Dennis and Kathy Lazere. Out of Their Minds: The Lives and Discoveries of 15 Great Computer Scientists. New York, NY: Compernicus (Springer-Verlag), 1995.

A recent history of Xerox PARC is:

Hiltzik, Michael. Dealers of Lightening: Xerox PARC and the Dawn of the Computer Age. New York, NY: Harper Business, 1999.

Much PARC-related history was collected in:

Goldberg, Adele. A History of the Personal Workstation. New York, NY: ACM Press, 1988.

A good description of the Alto is available in:

Wadlow, Thomas A., "The Xerox Alto Computer," BYTE, Vol. 6, No. 9, September, 1981.

Another is included in Laplante, Great Papers in Computer Science, cited in Chapter 18. An online collection of Alto manuals and such is:

Xerox Alto Archive: http://www.spies.com/aek/alto/index.html

An early description of the Apple Macintosh is:

Williams, Gregg, "The Apple Macintosh Computer," BYTE, Vol. 9, No. 2, February 1984.

An entertaining history is:

Levy, Steven. Insanely Great: The Life and Times of Macintosh, the Computer That Changed Everything. New York, NY: Penquin Books, 1994.

Many books discuss programming for the Macintosh. Apple's publications are titled Inside Macintosh. The place to begin is:

Apple Computer, Inc. Inside Macintosh: Overview. Reading, MA: Addison-Wesley Publishing Company, 1992.

The Inside Macintosh books can also be downloaded from Apple's web site:

Mac OS 8 Developer Documentation: http://developer.apple.com/techpubs/macos8/mac8.html

A background into the development of Windows is included in the biography:

Manes, Stephen and Paul Andrews. Gates: How Microsoft's Mogul Reinvented an Industry -- and Made Himself the Richest Man in America. New York, NY: Doubleday, 1993.

An early look at competing windowing environments for the IBM PC is the PC Magazine cover story "Window Wars!":

Petzold, Charles. "Operating in a New Envionment," PC Magazine, Vol. 5, No. 4, February 25, 1986.

The Windows API is documented at the Microsoft web site:

Microsoft Developer Network Online Library: http://msdn.microsoft.com/library

One of many books that discuss programming for Windows is:

Petzold, Charles. Programming Windows, 5th edition. Redmond, WA: Microsoft Press, 1998.

Histories of the Internet have cropped up recently.

Salus, Peter H. Casting the Net: From Arpanet to Internet and Beyond.... Reading, MA: Addison-Wesley Publishing Company, 1995.

Hafner, Katie and Matthew Lyon. Where Wizards Stay Up Late: The Origins of the Internet. New York, NY: Simon & Schuster, 1996.

Segaller, Stephen. Nerds 2.0.1: A Brief History of the Internet. New York, NY: TV Books, 1998.

Abbate, Janet. Inventing the Internet. Cambridge, MA: The MIT Press, 1999.

Wilde, Erik. Wilde's WWW: Technical Foundations of the World Wide Web. Berlin, Germany: Springer-Verlag, 1999.

Acknowledgements

The first hint I had that the workings of logic gates might be made comprehensible to a general audience was the experience of writing:

Petzold, Charles. "PC Tutor: Chomping At The Bits," PC Magazine, Vol. 6, No. 14, August, 1987.

PC Tutor was a column in PC Magazine that attempted to answer readers' queries about their computers.

BackHome

© Charles Petzold, 2000, 2002
code@charlespetzold.com
This page last updated April, 2000; links updated January, 2002.