{"id":114,"date":"2008-11-22T14:30:00","date_gmt":"2008-11-22T18:30:00","guid":{"rendered":"http:\/\/www.contrapositivediary.com\/?p=114"},"modified":"2008-12-13T22:37:11","modified_gmt":"2008-12-14T02:37:11","slug":"going-into-eclipse","status":"publish","type":"post","link":"https:\/\/www.contrapositivediary.com\/?p=114","title":{"rendered":"Going Into Eclipse"},"content":{"rendered":"<p><img decoding=\"async\" src=\"http:\/\/www.duntemann.com\/asmbook2e.jpg\" align=\"left\" hspace=\"6\" style=\"float: left; margin-right: 1em; margin-bottom: 1em;\">As                I mentioned yesterday, my publisher wants me to revise <i>Assembly                Language Step By Step<\/i> over the coming year, for release in early                2010. I had assumed for some time that they considered the book                a dead issue, though judging by my royalty statements, it continues                to sell. And that&apos;s a clue: When the market is bad, publishers get                nervous about striking out in entirely new directions with new series                and lots of new titles. A handful of books are what they call &#8220;evergreens,&#8221;                because they sell all year, every year, for years and years and                years. I think that a <i>lot<\/i> of evergreen titles are going to                be freshened up and reissued in the next few years. The publisher                considers my book an evergreen (it was first published, after all,                in 1989, and has sold steadily ever since) and the acquisitions                editor had done her homework. She wanted DOS to go. She wanted to                ditch the CD bound into the book. She wanted more Linux coverage.                And if possible, she wanted me to use Ubuntu as the flavor of Linux                cited in the book.<\/p>\n<p>I&apos;m cool with all that. I had decided years ago that DOS would                be missing from any future editions. I had assumed that I would                include coverage of 32-bit Windows console apps, but I&apos;m not welded                to that notion, nor to any particular Linux distro. The book is                not about Windows, nor about Linux. It needs an OS over which to                run the example programs, but which OS is mostly immaterial, so                long as it supports the Intel 32-bit flat model. The book is a &#8220;front                door&#8221; introduction to what computers actually <i>are<\/i>, and                how Intel-based machines function under the hood. It&apos;s about that                waydeepdown place where the software meets the hardware. It is <i>not<\/i>                about how to make API calls nor how to coordinate all the folderol                that happens inside large-scale apps.<\/p>\n<p>A lot of people misunderstand the book, and I get gripes all the                time about how it &#8220;doesn&apos;t go far enough&#8221; and &#8220;doesn&apos;t                teach the principles of software development.&#8221; That&apos;s not what                it&apos;s for, and I don&apos;t have the page budget to write enough book                to satisfy all my gripers. The format has worked across twenty years                and three editions, and I&apos;m sticking with it.<\/p>\n<p>There&apos;s still a lot of work to do. Much of the coverage depends                on DOS, DOS calls through INT21, and BIOS calls through INT13. All                that has to go. I need to explain how the software interrupt mechanism                itself works, and for that I&apos;m going to defy the Unix Gods and explain                how to use the Linux INT80 call gate. This is heresy, but the mantra                that &#8220;INT80 calling conventions can change at any time&#8221;                isn&apos;t sufficient reason to keep the secret. I&apos;ve asked several people                to show me an example\u2014even a single example!\u2014of when a                Linux INT80 kernel call changed, but so far I&apos;ve seen nothing. And                even if some of the more arcane kernel calls are still evolving,                I doubt that the very simple calls have changed at all in many years.                Proper warning will be given, but I don&apos;t bow before that particular                altar anymore.<\/p>\n<p>Alas, if DOS goes, <a href=\"http:\/\/uk.geocities.com\/rob_anderton\/\">Rob                Anderton&apos;s excellent NASMIDE programming environment<\/a> has to                go as well, and something else will need to be found to help people                load, assemble, link, and run the examples. I&apos;ve got John E. Davis&apos;                text-mode JED editor installed, and in a pinch it will do, but the                holy grail for me would be running NASM under Eclipse. <a href=\"http:\/\/www.eclipse.org\/\">Eclipse<\/a>                is a sort of Erector set (ok, a Lego set) for creating platform-independent                IDEs in Java. Almost everything beyond the very basics is a plug-in.                You can get plug-ins for most modern languages and toolsets, and                Eclipse can run anywhere that Java runs. (Of course, your tools                must either be in Java or available on the host hardware.) Eclipse                itself and nearly all available plug-ins are free and open-source.                I&apos;ve already got it running here on both XP and Ubuntu. All I need                is a NASM-oriented assembly language plug-in.<\/p>\n<p>The infuriating thing is that <a href=\"http:\/\/sourceforge.net\/projects\/asmplugin\/\">such                a plug-in exists<\/a>, but it comes with no installation documentation,                and it does not install the way all other Eclipse plug-ins I&apos;ve                seen install. Eclipse has a clever system in which plug-ins are                posted on the Web using a standard format, so that the Eclipse environment                can fetch them down and install them automatically, given a URL.                I&apos;ve downloaded the plug-in file and have tried just about everything                to get Eclipse to suck it in or even see it. So far, no luck. If                you&apos;ve ever gotten it to install and work, boy, I&apos;d sure love to                learn the secret.<\/p>\n<p>I have to scope out some new example programs, write them, and                then describe them, and make sure that DOS and segmented Real Mode                retreat into a few pages of historical context. It&apos;s months of work,                even if it becomes my major project (which it will) and knocks most                of my lesser projects back into the closet (which it might.) I&apos;m                slurping at the firehose right now regarding Eclipse, and have a                couple of books on order. It&apos;s going to be a long climb, but I&apos;ve                made such climbs before, and they&apos;re always good mental exercise.                It&apos;ll give this book (which I considered a throwaway back in 1989!)                another eight or ten years of life. The publisher has always treated                me well, and the book paid off my mortgage. What&apos;s not to love?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I mentioned yesterday, my publisher wants me to revise Assembly Language Step By Step over the coming year, for release in early 2010. I had assumed for some time that they considered the book a dead issue, though judging by my royalty statements, it continues to sell. And that&apos;s a clue: When the market [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[33,32],"class_list":["post-114","post","type-post","status-publish","format-standard","hentry","category-daybook","tag-books","tag-programming"],"_links":{"self":[{"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts\/114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=114"}],"version-history":[{"count":1,"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts\/114\/revisions"}],"predecessor-version":[{"id":128,"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=\/wp\/v2\/posts\/114\/revisions\/128"}],"wp:attachment":[{"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.contrapositivediary.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}