{"id":3441,"date":"2012-10-10T00:01:50","date_gmt":"2012-10-10T07:01:50","guid":{"rendered":"http:\/\/www.wambooli.com\/blog\/?p=3441"},"modified":"2012-10-07T11:15:44","modified_gmt":"2012-10-07T18:15:44","slug":"i-remember-assembly-language-part-i","status":"publish","type":"post","link":"https:\/\/www.wambooli.com\/blog\/?p=3441","title":{"rendered":"I Remember Assembly Language, Part I"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/e\/ea\/TRS-80_Model_3_01.jpg\/240px-TRS-80_Model_3_01.jpg\" \/> Way, way back when I got my first computer &#8212; A TRS-80 Model III &#8212; I was poor. Yep, I worked part time in a restaurant, so I could afford only the basic computer. No disk drive. No printer. No nothing. Just 16K of RAM, plus a cassette recorder on which I could save and load programs.<br \/>\n<!--more--><br \/>\nWith nothing to do on the computer, I turned to programming. I could program while I saved up enough money to buy &#8212; in order &#8212; 32K of RAM, a 180K floppy drive, word processing software, and finally a printer.<\/p>\n<p>The TRS-80 came with a how-to book that taught the BASIC programming language. That language was included in the TRS-80&#8217;s ROM. In fact, BASIC was pretty much the computer&#8217;s operating system.<\/p>\n<p class=\"sidebar\">If you want to experience life as a TRS-80 user, visit <a href=\"http:\/\/www.vavasour.ca\/jeff\/level1\/simulator.html\" target=\"_blank\">this site<\/a>.<\/p>\n<p>When I bought the computer, for $1045, I vowed to the rep that I would write my own software. And I did! That was despite never taking a class in computer programming or not knowing anything about it.<\/p>\n<p>Turns out, I enjoyed computers. I wrote code like crazy. I bought any TRS-80 programming book I could get my hands on. Eventually I exhausted the Radio Shack library and the local B. Dalton bookseller. I bought via mail order from TAB Books library every title on TRS-80 BASIC programming.<\/p>\n<p>I figured I was getting pretty good at BASIC. When the time came that I could afford the first floppy drive upgrade ($700), I ventured into the world of &#8220;disk BASIC.&#8221; That was a steep learning curve for me, mostly because the examples in the documentation were stupid. Eventually I understood the difference between sequential and random-access. But I still wanted more.<\/p>\n<p>There were several alternative programming languages available for the TRS-80, including all the popular flavors of the early 1980s: There was FORTRAN, Pascal, COBOL, and Assembly.<\/p>\n<p>Of the lot, I was most intrigued by Assembly language. That&#8217;s because nearly all the professional-level programs available for the TRS-80 &#8212; or any computer of the day &#8212; were written in Assembly. There were two main reasons:<\/p>\n<p>1. Assembly language was fast. The code programmed the processor directly; it wasn&#8217;t interpreted like BASIC and didn&#8217;t require a runtime library, like the other high-level languages.<\/p>\n<p>2. Assembly programs were small. Because Assembly programmed the processor directly, the code was tight. Such a thing rarely matters today, where computers are brimming with RAM. But the TRS-80 had only 48K of memory max. The more memory you could spare by writing smaller code, the better.<\/p>\n<p>The biggest downside of Assembly was the time it took to develop code. I&#8217;ll explain more on Friday.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Way, way back when I got my first computer &#8212; A TRS-80 Model III &#8212; I was poor. Yep, I worked part time in a restaurant, so I could afford only the basic computer. No disk drive. No printer. No nothing. Just 16K of RAM, plus a cassette recorder on which I could save and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[14],"class_list":["post-3441","post","type-post","status-publish","format-standard","hentry","category-main","tag-programming"],"_links":{"self":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3441"}],"version-history":[{"count":7,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3441\/revisions"}],"predecessor-version":[{"id":3457,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3441\/revisions\/3457"}],"wp:attachment":[{"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3441"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wambooli.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}