{"id":148,"date":"2008-08-28T21:15:52","date_gmt":"2008-08-29T04:15:52","guid":{"rendered":"http:\/\/mightyohm.com\/blog\/?p=148"},"modified":"2015-09-26T11:11:13","modified_gmt":"2015-09-26T18:11:13","slug":"code-by-charles-petzold","status":"publish","type":"post","link":"https:\/\/mightyohm.com\/blog\/2008\/08\/code-by-charles-petzold\/","title":{"rendered":"Code, by Charles Petzold"},"content":{"rendered":"<p><a href=\"http:\/\/milmoe.com\">Andrew Milmoe<\/a> of <a href=\"http:\/\/makesf.org\">Make:SF<\/a> recommended Charles Petzold&#8217;s book <a href=\"http:\/\/www.charlespetzold.com\/code\/\"><em>Code<\/em><\/a> to me several months ago to help me refresh my knowledge of computer architecture as I dive into embedded systems development.\u00a0 I finally finished reading it this week and thoroughly enjoyed it.\u00a0 <em>Code<\/em> is both a history of the computer as well as a tutorial illustrating how to build one from the ground up using switches and gates.\u00a0 Some chapters are slow reading due to the complicated subject matter, but the way he brings everything together at the end makes it a great read.\u00a0 Although the book is in some ways dated (written in 1999, it talks about 128MB of memory being novel and Apple having problems in the desktop market) I found that it is still relevant.\u00a0 This is particularly true for microcontrollers and embedded systems which have more in common with the 8 bit computer that is the subject of the book than a Pentium 4 in today&#8217;s desktop PC&#8217;s.<\/p>\n<p><a href=\"http:\/\/www.amazon.com\/gp\/product\/0735611319?ie=UTF8&#038;tag=mightyohm-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0735611319\">Code: The Hidden Language of Computer Hardware and Software<\/a><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.assoc-amazon.com\/e\/ir?t=mightyohm-20&#038;l=as2&#038;o=1&#038;a=0735611319\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\" \/><\/p>\n<blockquote><p><a href=\"http:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/08\/code.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"160\" data-permalink=\"https:\/\/mightyohm.com\/blog\/2008\/08\/code-by-charles-petzold\/code\/\" data-orig-file=\"https:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/08\/code.jpg\" data-orig-size=\"320,475\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"code\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/08\/code.jpg\" class=\"alignnone size-full wp-image-160\" title=\"code\" src=\"http:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/08\/code.jpg\" alt=\"\" width=\"320\" height=\"475\" srcset=\"https:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/08\/code.jpg 320w, https:\/\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/08\/code-202x300.jpg 202w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><\/a><\/p>\n<p><strong>Amazon.com<\/strong><br \/>\nCharles Petzold&#8217;s latest book, <em>Code: The Hidden Language of Computer Hardware and Software<\/em>, crosses over into general-interest nonfiction from his usual programming genre. It&#8217;s a carefully written, carefully researched gem that will appeal to anyone who wants to understand computer technology at its essence. Readers learn about number systems (decimal, octal, binary, and all that) through Petzold&#8217;s patient (and frequently entertaining) prose and then discover the logical systems that are used to process them. There&#8217;s loads of historical information too. From Louis Braille&#8217;s development of his eponymous raised-dot code to Intel Corporation&#8217;s release of its early microprocessors, Petzold presents stories of people trying to communicate with (and by means of) mechanical and electrical devices. It&#8217;s a fascinating progression of technologies, and Petzold presents a clear statement of how they fit together.<\/p>\n<p>The real value of <em>Code<\/em> is in its explanation of technologies that have been obscured for years behind fancy user interfaces and programming environments, which, in the name of rapid application development, insulate the programmer from the machine. In a section on machine language, Petzold dissects the instruction sets of the genre-defining Intel 8080 and Motorola 6800 processors. He walks the reader through the process of performing various operations with each chip, explaining which opcodes poke which values into which registers along the way. Petzold knows that the hidden language of computers exhibits real beauty. In <em>Code<\/em>, he helps readers appreciate it. <em>&#8211;David Wall<\/em><\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Andrew Milmoe of Make:SF recommended Charles Petzold&#8217;s book Code to me several months ago to help me refresh my knowledge of computer architecture as I dive into embedded systems development.\u00a0 I finally finished reading it this week and thoroughly enjoyed it.\u00a0 Code is both a history of the computer as well as a tutorial illustrating &hellip; <a href=\"https:\/\/mightyohm.com\/blog\/2008\/08\/code-by-charles-petzold\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Code, by Charles Petzold<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[40,10],"tags":[132,504,41],"class_list":["post-148","post","type-post","status-publish","format-standard","hentry","category-books-and-resources","category-microcontrollers","tag-books","tag-books-and-resources","tag-computing"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pioCd-2o","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":723,"url":"https:\/\/mightyohm.com\/blog\/2008\/12\/programming-and-customizing-picmicro-microcontrollers-by-myke-predko\/","url_meta":{"origin":148,"position":0},"title":"Programming and Customizing PICmicro Microcontrollers, by Myke Predko","author":"Jeff","date":"December 24, 2008","format":false,"excerpt":"Programming & Customizing PICmicro Microcontrollers, by Myke Predko, is probably the best book out there for someone who is starting out with the PIC series of microcontrollers from Microchip.\u00a0 I used Myke's book as both a tutorial and reference when I created my PIC RGB Video Display.\u00a0 Since then, I\u2026","rel":"","context":"In &quot;Books and Resources&quot;","block_context":{"text":"Books and Resources","link":"https:\/\/mightyohm.com\/blog\/category\/books-and-resources\/"},"img":{"alt_text":"","src":"http:\/\/www.assoc-amazon.com\/e\/ir?t=mightyohm-20&l=as2&o=1&a=0071361723","width":350,"height":200},"classes":[]},{"id":1610,"url":"https:\/\/mightyohm.com\/blog\/2009\/03\/esc-silicon-valley-2009\/","url_meta":{"origin":148,"position":1},"title":"ESC Silicon Valley 2009","author":"Jeff","date":"March 25, 2009","format":false,"excerpt":"ESC blasts off next week at the McEnery Convention Center in San Jose. This year, ESC features the Build your own Embedded System course, where a $595 registration gets you a Rev C Beagle Board (with working USB host mode!) and two days of classes about developing applications with the\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/esc-sv09.techinsightsevents.com\/sites\/all\/files\/esc\/esc_logo.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3304,"url":"https:\/\/mightyohm.com\/blog\/2010\/10\/avr-toolchain-installation-instructions-for-windows-mac-os-x-linux\/","url_meta":{"origin":148,"position":2},"title":"AVR Toolchain Installation Instructions for Windows, Mac OS X, Linux","author":"Jeff","date":"October 29, 2010","format":false,"excerpt":"Mitch Altman and I are in the process of writing a book about Making Cool Things with Microcontrollers (for people who know nothing.) The book features several DIY projects that use AVR microcontrollers. \u00a0We're aiming to teach absolute beginners how to solder, basic electronics, and the process of turning a\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2010\/10\/winavr-500x336.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1646,"url":"https:\/\/mightyohm.com\/blog\/2009\/04\/new-mightyohmcom-discussion-forums\/","url_meta":{"origin":148,"position":3},"title":"New MightyOhm.com Discussion Forums","author":"Jeff","date":"April 4, 2009","format":false,"excerpt":"Head on over to the new MightyOhm.com Forums to discuss projects from the blog and chat with other members of our small (but awesome) community! At the moment there are forums for: My Wifi Radio project The AVR HV Rescue Shield My Bluetooth Handset Hack The DIY PID Controlled Soldering\u2026","rel":"","context":"In &quot;Books and Resources&quot;","block_context":{"text":"Books and Resources","link":"https:\/\/mightyohm.com\/blog\/category\/books-and-resources\/"},"img":{"alt_text":"A new forum for each major project on the site!","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2009\/04\/forums.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2063,"url":"https:\/\/mightyohm.com\/blog\/2009\/07\/atmel-retiring-atmega4888168-microcontrollers\/","url_meta":{"origin":148,"position":4},"title":"Atmel retiring ATmega48\/88\/168 microcontrollers","author":"Jeff","date":"July 3, 2009","format":false,"excerpt":"Has anyone else noticed that the ATmega48\/88\/168 family of 8-bit AVR microcontrollers recently joined Atmel's \"mature devices\" list, shown above? Truthfully, I was not surprised to see this, having been tipped off by an Atmel sales rep earlier this year at ESC in San Jose. The good news is that\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"Atmel AVR Microcontrollers - Mature Devices","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2009\/07\/avr_mature.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1682,"url":"https:\/\/mightyohm.com\/blog\/2009\/05\/avr-eclipse-and-the-mac\/","url_meta":{"origin":148,"position":5},"title":"AVR, Eclipse and the Mac","author":"Jeff","date":"May 12, 2009","format":false,"excerpt":"Pete Harrison at Micromouse Online wrote a short tutorial about using Eclipse to program AVRs. \u00a0 Eclipse is\u00a0 an open source IDE that is supported on many platforms, including OS X on the Mac. I have never used Eclipse myself, so I can't vouch for how well this works, but\u2026","rel":"","context":"In &quot;Books and Resources&quot;","block_context":{"text":"Books and Resources","link":"https:\/\/mightyohm.com\/blog\/category\/books-and-resources\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.micromouseonline.com\/blog\/wp-content\/uploads\/2009\/03\/picture-1.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/148","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/comments?post=148"}],"version-history":[{"count":16,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/148\/revisions"}],"predecessor-version":[{"id":948,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/148\/revisions\/948"}],"wp:attachment":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/media?parent=148"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/categories?post=148"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/tags?post=148"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}