# Petzold *CODE* Reading Guide for CSA-101 *Cross-chapter reading guide for CSA-101. Covers all 13 chapters (Ch 1, 2, 3, 4, 5, 6, 6a, 7, 8, 9, 10, 11, 12). Page numbers are 1st-edition.* **Purpose:** chapter-by-chapter reading map of Charles Petzold's ***CODE: The Hidden Language of Computer Hardware and Software*** as the curriculum walks it. Print and pin during the entire CSA-101 sequence. **CSA-101 leans on Petzold *37 times* across 12 chapters**. At scale, the cumulative weight of "the same book has explained everything at the right moment" is the curriculum's central pedagogical structure. **Two editions exist; both work.** The 1st edition (1999, Microsoft Press; Internet Archive OCR) and the 2nd edition (2022, Microsoft Press) cover the same material with similar pagination (within ±5-10 pages). All page numbers in this guide are **1st-edition** unless explicitly marked, because the chapter prose validates quotes against the 1st-edition EPUB. Students using the 2nd edition can locate the same passage by section title; the structural arc is unchanged. --- ## At a glance | Property | Value | |---|---| | Total Petzold citations across CSA-101 | **37** | | Chapters cited | **6** of Petzold's 25 (Ch 4, 11, 17, 22, 24, 25) | | Most-cited Petzold chapter | **Ch 24** *Languages High and Low* (cited 6 times) | | Most-cited per-CSA-chapter | **Ch 11** + **Ch 12** (3 weaves each) | | Reading workload | ~60 pages total (*CODE* is ~395 pages 1st ed.) | | Editions OK | 1st ed. (1999, Internet Archive OCR) or 2nd ed. (2022) | | Final-citation chapter | **CSA-101 Ch 12** (closes the entire Petzold thread; reaches the very last paragraph of *CODE*) | --- ## Petzold reading workload By weave count, students who read every Petzold weave's anchor chapter encounter ~60 pages across these 6 Petzold chapters: | Petzold chapter | 1st-ed pages | 2nd-ed pages (approx.) | CSA-101 weave-count | |---|---|---|---| | **Ch 4** *Anatomy of a Flashlight* | pp. 21-30 (~10 pp) | pp. 23-32 | 1 | | **Ch 11** *Gates (Not Bill)* | pp. 106-134 (~29 pp) | pp. 110-138 | 1 | | **Ch 17** *Automation* | pp. 207-238 (~32 pp) | pp. 213-244 | 5 | | **Ch 22** *The Operating System* | pp. 319-337 (~19 pp) | pp. 325-343 | 6 | | **Ch 24** *Languages High and Low* | pp. 349-366 (~18 pp) | pp. 355-372 | 6 | | **Ch 25** *The Graphical Revolution* | pp. 369-387 (~19 pp) | pp. 375-393 | 5 | **Total: ~127 pages, but each chapter is independently readable** and most students re-read 1-2 chapters during the cohort. Estimated total reading time: 6-9 hours across the 14-week course. --- ## The 37 Petzold citations across CSA-101 (chronological by VCA chapter) Pretty-printed map of every weave: which CSA chapter cites which Petzold chapter, at which page, for which thesis. **The cross-chapter Petzold thread is the curriculum's central connective tissue.** ### Chapter 1: Boolean Logic | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 4, p. 22 | "The flashlight is certainly one of the simpler electrical appliances found in most homes." | | #2 | Ch 6, p. 44 | The repeater/relay paragraph: "The device we've invented is called a repeater, or a relay..." | | #3 | Ch 11, p. 129 | De Morgan's laws as electrical equivalences: "An AND gate with two inverted inputs does exactly the same thing as a NOR gate..." | **Petzold reading for Ch 1:** Ch 4 + Ch 5 (pp. 21-39, ~18 pp) + Ch 6 + Ch 11. ### Chapter 2: Boolean Arithmetic | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 12 *A Binary Adding Machine* | The 4-bit ripple adder Petzold builds; cross-references CSA-101's Ch 1 §1.9 finished adder | | #2 | Ch 13 *But What About Subtraction?* | Two's-complement subtraction as add-the-complement | **Petzold reading for Ch 2:** Ch 12 + Ch 13 (pp. 135-171, ~37 pp). ### Chapter 3: Memory | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 14 *Feedback and Flip-Flops* | The cross-coupled NOR gates that hold a bit | | #2 | Ch 16 *Memory Memorabilia* | Byte-addressable RAM; the address-decoder structure | **Petzold reading for Ch 3:** Ch 14 + Ch 16 (pp. 173-205, ~33 pp). ### Chapter 4: Machine Language | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 19 *Two Classic Microprocessors*, est. pp. 271-272 | Opcode tables in hex; structure shows through; 8080 `MOV` bit pattern `01dddsss` | | #2 | Ch 17 *Automation* | First citation in the automation thread; introduces "let the bytes carry meaning" | **Petzold reading for Ch 4:** Ch 17 + Ch 19 (pp. 207-238, 245-???, ~32+ pp). ### Chapter 5: Computer Architecture | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 17 *Automation*, p. 212 | "Load the value at address 0000h into the accumulator...", the operator leaves the room | | #2 | Ch 17 *Automation*, p. 209 | "All it does is add, and all it adds are 8-bit numbers...", the chapter's quoted limit | | #3 | Ch 18 *From Abaci to Chips* (briefly cited) | Historical lineage: the move from abacus to silicon | **Petzold reading for Ch 5:** Ch 17 + Ch 18. ### Chapter 6: Assembler | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 17 *Automation*, p. 224 | "actually keying these numbers", the manual cost the assembler eliminates | | #2 | Ch 24 *Languages High and Low*, p. 349 | "eating with a toothpick". Assembly as the very high-level abstraction | | #3 | Ch 24 *Languages High and Low*, p. 356 | "first person to write the first assembler" | | #4 | Ch 24 *Languages High and Low*, pp. 354 + 359 | Ladder of languages; ALGOL as seminal | **Petzold reading for Ch 6:** Ch 17 + Ch 24 (pp. 207-238, 349-366; the dominant reading of CSA-101). ### Chapter 6a: Static Linker | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 24 *Languages High and Low*, p. 351 | "(Actually there's another step in the process, but it's not important in this account of what happens.)", the parenthetical that names the linker's existence | | #2 | Ch 22 *The Operating System*, p. 328 | Bootstrap loader: "All the ROM needs to contain is a small piece of code known as a bootstrap loader..." | | #3 | Ch 17 *Automation*, p. 223 | "It's no longer necessary to have two separate RAM arrays. Both code and data can be stored in the same RAM array.", the stored-program model | **Petzold reading for Ch 6a:** Ch 17 + Ch 22 + Ch 24. ### Chapter 7: Virtual Machine I | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 17 *Automation*, p. 212 + p. 209 | Returning visit; the operator-leaves-the-room thesis carries forward | | #2 | Ch 22 *The Operating System*, p. 328 | Returning visit; bootstrap loader = compiler-side OS-segment-base contract | | #3 | Ch 24 *Languages High and Low*, p. 354 | Returning visit; "ALGOL... seminal language, the direct ancestor..." | **Petzold reading for Ch 7:** Ch 17 + Ch 22 + Ch 24 (all returning visits). ### Chapter 8: Virtual Machine II | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 17 *Automation*, pp. 234-235 | "It's better not to use actual numeric addresses when they can change... use labels..." | | #2 | Ch 22 *The Operating System*, p. 330 | The third major function of an OS; "a program running under CP/M makes use of a collection of subroutines..." | | #3 | Ch 25 *The Graphical Revolution*, pp. 371-373 | **First Ch 25 citation**; "A graphical operating system... has hundreds of API functions"; clicks-as-function-call-chains | **Petzold reading for Ch 8:** Ch 17 + Ch 22 + **Ch 25 (new)**. ### Chapter 9: Compiler I (Syntax Analysis) | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 24 *Languages High and Low*, p. 353 | "you must also write a compiler... read through a source-code file character by character and break it down into short words and symbols and numbers", the tokenizer's job | | #2 | Ch 24 *Languages High and Low*, p. 354 | Returning visit, different page; ALGOL as first formally-specified-grammar language | | #3 | Ch 25 *The Graphical Revolution*, p. 373 | Returning visit, different angle; objects-containing-objects-as-trees parallels parse-trees-as-trees-of-trees | **Petzold reading for Ch 9:** Ch 24 + Ch 25. ### Chapter 10: Compiler II (Code Generation) | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 22 *The Operating System*, pp. 326 + 329 | Filename-to-disk-block resolution as namespace cousin of compiler's symbol-table resolution | | #2 | Ch 24 *Languages High and Low*, pp. 353 + 354 | **Final Ch 24 citation**; closes the recursion-on-grammar thread (compiler's call graph = parse tree's shape) | | #3 | Ch 25 *The Graphical Revolution*, **p. 382 (the second-to-last page of the entire book)** | "Java byte codes... an imaginary computer called the Java virtual machine (JVM)", the architecture the student has just spent two chapters implementing | **Petzold reading for Ch 10:** Ch 22 + Ch 24 + Ch 25. ### Chapter 11: Compiler III (OS-Aware Compilation) | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 22 *The Operating System*, pp. 330 + 332 | **Fifth-and-final Ch 22 citation**; the subroutine-collection-as-OS-API + `INT 21h` | | #2 | Ch 24 *Languages High and Low*, pp. 362 + 363 | **Sixth-and-final Ch 24 citation**; compiler-vs-interpreter; C-as-high-level-assembly | | #3 | Ch 25 *The Graphical Revolution*, p. 370 | Xerox Alto framebuffer; "By writing into this video display memory, software could draw pictures..." | **Petzold reading for Ch 11:** Ch 22 + Ch 24 + Ch 25 (final-citation milestone for Ch 22 + Ch 24). ### Chapter 12: Virtus OS (the curriculum's closing chapter) | Weave # | Petzold chapter / page | Thesis | |---|---|---| | #1 | Ch 22 *The Operating System*, p. 330 | **Sixth-and-absolute-final Ch 22 citation**; "Providing a program with easy access to the hardware of the computer is the third major function of an operating system." | | #2 | Ch 25 *The Graphical Revolution*, p. 370 | **Returning visit**; cross-chapter callback to Ch 11 weave #3, the `sw` to the framebuffer that completes Petzold's "by writing into this video display memory" | | #3 | Ch 25 *The Graphical Revolution*, **p. 382 (the very last paragraph of the entire book)** | **Sixth-and-absolute-final Ch 25 citation**; closes Petzold's ladder and the curriculum's: "like faster dots and dashes of Morse code and those careful pulses of blinking light we once used to communicate late-night wisdom to our best friend across the way" | **Petzold reading for Ch 12:** Ch 22 + Ch 25 (closing reads). --- ## Petzold-chapter cross-reference (Petzold-side perspective) For students who want to read *CODE* in its native order and consult CSA-101 chapters as glosses: | Petzold chapter | CSA-101 chapters that cite it | First cited / final cited | |---|---|---| | **Ch 4** *Anatomy of a Flashlight* (pp. 21-30) | Ch 1 weave #1 | First + final = Ch 1 | | **Ch 5** *Seeing Around Corners* (pp. 32-39) | Ch 1 §1.3 (briefly) | First + final = Ch 1 | | **Ch 6** *Telegraphs and Relays* (pp. 40-47) | Ch 1 weave #2 | First + final = Ch 1 | | **Ch 11** *Gates (Not Bill)* (pp. 106-134) | Ch 1 weave #3 | First + final = Ch 1 | | **Ch 12** *A Binary Adding Machine* (pp. 135-157) | Ch 1 §1.9 (cross-ref); Ch 2 weave #1 | First = Ch 1; final = Ch 2 | | **Ch 13** *But What About Subtraction?* (pp. 159-171) | Ch 2 weave #2 | First + final = Ch 2 | | **Ch 14** *Feedback and Flip-Flops* (pp. 173-???) | Ch 3 weave #1 | First + final = Ch 3 | | **Ch 16** *Memory Memorabilia* (pp. ???-205) | Ch 3 weave #2 | First + final = Ch 3 | | **Ch 17** *Automation* (pp. 207-238) | Ch 4, 5, 6, 6a, 7, 8 (cited 5 times) | First = Ch 4; final = Ch 8 | | **Ch 18** *From Abaci to Chips* | Ch 5 (briefly) | First + final = Ch 5 | | **Ch 19** *Two Classic Microprocessors* (pp. ~245-???) | Ch 4 weave #1 | First + final = Ch 4 | | **Ch 22** *The Operating System* (pp. 319-337) | Ch 6a, 7, 8, 10, 11, 12 (cited 6 times) | First = Ch 6a; **final = Ch 12** | | **Ch 24** *Languages High and Low* (pp. 349-366) | Ch 6, 6a, 7, 9, 10, 11 (cited 6 times) | First = Ch 6; **final = Ch 11** | | **Ch 25** *The Graphical Revolution* (pp. 369-387) | Ch 8, 9, 10, 11, 12 (cited 5 times) | First = Ch 8; **final = Ch 12** | **Reading-order recommendation:** read each Petzold chapter *just before* the first CSA-101 chapter that cites it. The chapters used most heavily (17, 22, 24, 25) reward re-reads as their CSA-101 weaves accumulate. --- ## How to locate a quoted passage Every Petzold passage cited in CSA-101 chapter prose can be found in either edition by section title. Page numbers in this guide are 1st-edition. If the page number differs in your copy, locate the passage by the surrounding section heading. 1. **Exact quotes** use the book's precise phrasing and cite the 1st-edition page. 2. **Paraphrased attributions** say "Petzold's argument in Ch X" rather than "Petzold writes," which implies a direct quote. 3. **Page drift:** the 1st and 2nd editions share the same chapter structure; page numbers differ by ±5-10 pages throughout. The section title is always the reliable anchor. --- ## Suggested reading sequence by belt For students who want a *staggered* Petzold reading aligned with their CSA-101 cohort progression: | Cohort week | CSA-101 chapter active | Petzold reading (cumulative) | |---|---|---| | Weeks 1-3 | Ch 1 (Boolean Logic) | Ch 4, 5, 6, 11 (~50 pp) | | Weeks 4-6 | Ch 2 (Boolean Arithmetic) | + Ch 12, 13 (~37 pp) | | Weeks 7-8 | Ch 3 (Memory) | + Ch 14, 16 (~33 pp) | | Week 9 | Ch 4 (Machine Language) | + Ch 17, 19 (~32 pp; Ch 17 starts here, will be re-read 4 more times) | | Weeks 10-12 | Ch 5-6a (Computer Architecture / Assembler / Linker) | (re-read Ch 17, add Ch 22) | | Weeks 13-14 | Ch 7-8 (VM I + II) | (re-read Ch 22; first read Ch 24 + Ch 25) | | Weeks 15-17 | Ch 9-11 (Compiler I/II/III) | (re-read Ch 24 + Ch 25) | | Weeks 18-20 | Ch 12 (Virtus OS) | (closing re-reads: Ch 22 + Ch 25, esp. p. 382, the very last paragraph of *CODE*) | **Total Petzold pages read:** ~127 pp original + ~50 pp re-reads = **~180 pp** distributed across the cohort. *Each Petzold chapter will be visited 1-6 times depending on its centrality to the curriculum.* --- ## Where to obtain *CODE* | Edition | Source | Notes | |---|---|---| | **1st edition** (1999, Microsoft Press) | Internet Archive (archive.org); search *CODE* Petzold 1999 | Page numbers in this guide match the 1st edition | | **2nd edition** (2022, Microsoft Press) | Bookstores; Microsoft Press store; Amazon | More accessible; pagination differs by ±5-10 pp from 1st ed.; section titles unchanged | | **Library copies** | Most university and public libraries hold 1st edition; many hold 2nd | Either edition fine for cohort use | **Cost note.** *CODE* (2nd ed.) retails ~$30 USD as of 2026; the cohort is expected to hold a copy for the entire 14-week (or ~5-month staggered) CSA-101 course and to re-read it during CSA-201. **Strongly recommended purchase**, not a one-pass-only book. --- ## Where to read more - **Each CSA-101 chapter** opens with a "Petzold-Woven Passages" subsection that introduces the specific Petzold quote used and explains why it was chosen at that moment. Reading the weave in its chapter context makes it resonate more than reading it in isolation. - **The chapter table above** gives the Petzold reading for each CSA-101 chapter so you can pre-read before each unit. ---