Jeff Duntemann's Contrapositive Diary Rotating Header Image

My Currently Available Books

This page is a guide to all the books I’ve written that I consider current. A lot of my technical books are now very old; the first edition of Complete Turbo Pascal appeared in 1985. All of my books from traditional publishers are now formally out of print except for Assembly Language Step By Step. Most are available on the used books sites (including Amazon) for a few dollars at most, and sometimes from “penny sellers” for one cent plus shipping. (They pad the shipping and that’s how they make their money.) Most of the books listed here are my self-published science fiction and fantasy, which are either ebook or print-on-demand editions and thus will never go out of print.

The Cunning Blood

TCBCover-165HighSample Chapter (PDF)
Kindle EBook ($2.99; also available on KU)
Hardcover Book (360pp. $28)
Caught violating the Zero Tolerance for Violence laws, Peter Novilio is sentenced to a one-way trip to Earth’s prison planet in the Zeta Tucanae system. Hell was forever: Its ecosphere had been infected with microscopic nanomachines that destroyed electrical conductors, condemning its inmates to a neo-Victorian steam-and-gaslight society without computers, spaceflight, or any hope of escape. Peter had in fact been framed by Earth’s paranoid world government, and is offered a pardon in return for conducting a reconnaissance mission to Hell and back. There were hints that Hell was developing impossible technologies or had somehow evaded the wire-eating nanobugs entirely. How he would return from Hell was a secret known only to his grim mission partner Geyl Shreve. But Peter had a secret as well: He was a member of the outlawed Sangruse Society, and in his blood flowed the Sangruse Device, Version 9, the most powerful nanocomputer AI ever created. Although supposedly Peter’s protector and advisor, the Device answers to no one but the Society’s mysterious leader, and has reasons of its own for visiting Hell. Peter soon discovers that he is little more than a disguise, caught in a covert war among Earth, a revolutionary group bent on overthrowing Earth’s government, Hell’s ingenious inmates, and the deadly mechanism in his veins. For as fearsome as it is, the Device itself is afraid – and the fates of whole worlds would be decided by the threat that The Cunning Blood had discovered outside of space and time.

Ten Gentle Opportunities

Ten Gentle OpportunitiesKindle / Mobi Ebook ($2.99; also available on KU)

Having been caught cheating a powerful magician out of ten nuggets of pure uncommitted magic in a rigged card game, Bartholomew Stypek needs a place to hide. As a spellbender he is at best a partial magician, who can read and change magic spells, but, absent a stash of magical force, cannot cast his own. With his anarchic familiar spirit Pickles and the ill-won kitty of magical Opportunities, Stypek throws himself on the mercy of the all-powerful Continuum and leaps blindly across universes, hoping to be dropped someplace far away, boring, and utterly without magic. As the Continuum chuckles in the background, Stypek lands in the break room of a small-town advertising agency in Upstate New York.

Because this new universe doesn’t support spirits, Pickles manifests as the nearest local equivalent: AI software in the agency’s heavily networked copier. She wanders into a nearby corporate network looking for allies, and discovers a virtual universe where AIs live in virtual bungalows and meet in virtual coffee shops for virtual doughnuts. Pickles is soon seducing Simple Simon, an earnest but naive AI tasked with controlling an immense robotic assembly line in the corporation’s manufacturing plant. Stypek, meanwhile, is mistaken for a penniless Eastern European computer science intern, and is taken in by Carolyn Romero, the ad agency’s copywriter. Expecting the usual suspicion and contempt, Stypek is humbled by the kindness he’s shown, and one by one uses the stolen Opportunities to help his new friends with their problems, including Carolyn’s failed marriage.

But Jrikk the magician isn’t so easily thwarted. Soon Stypek, Pickles, Simple Simon, and their human and virtual friends must fight for their lives against the evil force sent to retrieve Stypek to the magician’s dungeons.

Drumlin Circus / On Gossamer Wings

Drumlin Circus / On Gossamer WingsPrint Book ($11.99)
Kindle / Mobi Ebook ($2.99)
Nook / EPub Ebook ($2.99)

The first Copperwood Double combines two short novels back-to-back, each with its own cover, both set in Jeff Duntemann’s Drumlins world. On an abandoned alien planet, 700 castaways from Earth find thousands of alien manufacturing machines, which can produce anything you want…if you know the 256-bit code. The artifacts (dubbed “drumlins”) that come out of these “thingmakers” are themselves mysterious, and seem to understand what humans are doing and perhaps even thinking. 250 years later, drumlins have allowed the unwilling colonists to create a thriving society resembling 19th Century America, with steam power and a very wild West. Some want to use drumlins to repair their starship and return to Earth. Others prefer the life they’ve created in partnership with the thingmakers, even though rumors hold that some drumlins are dangerous and even deadly, or at very least not what they appear to be.
Drumlin Circus: When a circus master’s wife learns how to make smilodons as docile as housecats using a drumlin whistle, agents from the cultlike Bitspace Institute abduct her, hoping to use the whistle to create animal assassins. One of the circus’s clowns, himself a former Institute man, returns to Institute HQ to free Pretty Alice and settle some unanswered questions about his early life. In doing so he sets off an escalating battle between the Circus and the Institute that draws in a coven of witches, a miniature hydrogen airship, and a steam calliope that speaks to the deepest minds of men, animals, and the half-sentient drumlins themselves.
On Gossamer Wings: In a hardscrabble town among the rye fields of the sparsely-populated West, a mute and aphasic teen girl dreams of constructing a flying machine out of drumlins. Lacking the power of words, she has an unobstructed grasp of the mathematics of flight. She also has a mysterious rapport with the thingmakers that allows her to locate the drumlins she needs, even when their bit-pattern is unknown–including spheres of elemental iron and ducted-fan engines running on zero-point energy. Drawn by rumors of unnaturally pure iron, a ruthless Institute agent seeks her out in the hope of harnessing her talent before fearful townfolk expel her from town and destroy her dream of flight.

Cold Hands and Other Stories

Print Book ($11.99)
Kindle / Mobi Book ($2.99; also available on KU)
Veteran computer author Jeff Duntemann’s second collection of short fiction runs the gamut from spaceflight to mathematically rigorous witchcraft. The volume includes “Cold Hands,” (nominated for the Hugo Award) “Our Lady of the Endless Sky,” “Inevitability Sphere,” “Whale Meat,” “Born Again, With Water,” “Drumlin Boiler,” “Drumlin Wheel,” and “Roddie,” plus a new excerpt from his hard SF nanotech adventure novel, The Cunning Blood.

Souls in Silicon

Souls in SilconPrint Book ($11.99)
Kindle/Mobi Book ($2.99; also available on KU)
Computer author Jeff Duntemann turns his talents to the challenges that “strong” artificial intelligence may face in this, his first collection of SF shorts. Stories include: “The Steel Sonnets”; “Guardian” (Nominated for the 1981 Hugo Award); “Silicon Psalm”; “Marlowe”; “Borovsky’s Hollow Woman” (with Nancy Kress); “Bathtub Mary”; “STORMY vs. the Tornadoes”; and “Sympathy on the Loss of One of Your Legs”; plus an excerpt from his novel of nanotech AI, The Cunning Blood.

“Whale Meat”

"Whale Meat"Kindle / Mobi Ebook (99c)

In one of Jeff Duntemann’s few works of short fiction, two 700-year-old witches in modern-day Chicago must confront a demand from the community of whales living in Earth’s oceans, that their unborn son join in their effort to heal the broken soul of humankind–with death the outcome should he fail. Homeless, hungry, and mostly without hope, Yonnie and Mara find help in some unlikely places, including a young mathematics student struggling to understand calculus, and an alcoholic bum who is much more than he seems.

Assembly Language Step By Step, Third Edition

Assembly Language Step By StepPrint Book
Kindle / Mobi EBook
Nook / Epub Ebook

Now in its third Wiley edition (and fourth overall since the book’s first publication in 1989) Jeff Duntemann’s award-winning newcomer’s tutorial to Intel 32-bit i86 assembly language sets ancient DOS aside forever and goes all-Linux. From the fundamental concepts of computing itself (including hexadecimal math) the book takes the reader through the basics of the i86 instruction set, Linux system access via interrupt 80h and finally calls into the standard C library. Unlike many books on assembly language, the  primary focus is on memory addressing, which the author considers the core skill in assembly programming.

FreePascal From Square One (Free Ebook Download)

Free PDF Ebook

The FOSS (free open source software) FreePascal compiler and its GUI builder/component framework Lazarus occupy the same niche in the FOSS world as Delphi and its internal Pascal compiler do in the commercial software world. Jeff Duntemann is adapting his classic Complete Turbo Pascal book (especially its final edition, retitled Borland Pascal 7 from Square One) for FreePascal and Lazarus…as a completely free, printable PDF-format ebook. This first volume of what will become a series covers basic programming concepts, installation of the product, and the fundamentals of the Pascal programming language, using the Lazarus IDE as a code editor. (The second book of the series will begin with object-oriented programming and cover the use of Lazarus as a drag-and-drop component GUI builder.) Note that the book is not completely finished, but Duntemann periodically uploads updates.



  1. […] course, I have a Drumlins World story concept that involves simple electromechanical wireless voice transmission systems. The […]

  2. […] and “Sympathy on the Loss of One of Your Legs.” (Both are in my collection, Souls in Silicon.) In 1978 I wrote a (still unpublished) lighthearted 27,000-word action/adventure hard SF novella […]

  3. […] story was “Our Lady of the Endless Sky,” now in my collection Cold Hands and Other Stories. It’s about a slightly clueless Roman Catholic priest who manages to be sent as the Catholic […]

  4. […] morning while reading email with an iced coffee in hand that Phil Foglio posted a rave of my novel The Cunning Blood, both on the Girl Genius Facebook page and his LiveJournal. (Thanks abundant to Alice Bentley for […]

  5. […] humanity. I caught myself wondering what it would be like if seven hundred million people had read Drumlin Circus. I would probably have a new minivan–and little or no trouble selling Ten Gentle […]

  6. […] for other books and magazines over the years. This past year, he did a pair of covers for Copperwood Press, for a revival of the “Ace Double” concept. As for personal projects, he’s been working on […]

  7. Peprita Heart says:

    Hello Jeff,

    How much longer till your next book on Assembly Language?I have been working through Assembly Language Step by Step with delight.
    Though I am thinking of developing software for 64bit Windows Intel, and a book on this would be helpful.Any suggestions on where I could get detailed reliable information on this?

    High Regards,


    1. Well, that isn’t completely my decision. When the publisher wants a new edition, they contact me, and then I begin writing. I don’t see a new edition on the horizon for a couple of years yet. Worse, I need additional pages to cover 64 bit issues, and the number of pages I have in the book is limited. Unless I can persuade the publisher to go beyond the 600-page mark, I’m going to have to eliminate other material to cover 64-bit assembly.

      I still haven’t seen a book on 64-bit Intel that I respect, especially for people just learning. Most assembly books still on the market are old (mine included) and few devote the space to 64-bit issues that those issues deserve. So I’m not sure what to suggest. Keep looking, and check back here to my blog every now and then. Good luck and thanks for writing!

      1. Anon says:

        What about just putting out a small supplementary book? Perhaps just 100 pages or so?

      2. Jay Craswell says:

        Per the previous comment. For the last couple of days I also did a search for a good book on assembler/linux. I rejected all the books that start with source in C and those that cuss out anyone who would write code in assembler. So…. Today I bought your Step by Step book (A Kindle) I almost cried when I read the bit “Why on earth would you want to do that.” You define the type so well and without using any four letter words! P.S. I tried to compile Insight from source with the “easy” programming language “C” You can probably guess how well that went. Suddenly Fortan and paper punch aren’t looking so awful to me. Any tips on a front end for gdb (is it?) Anyway – thanks for a little relief from the madness. Anyway – I’m really enjoying your book (soon to be books)

        p.s. Tom Swift Jr was very good but I enjoyed Rick Brandt and Brains Benton a tad more.

  8. Brian Tkatch says:

    I read Assembly Language Step-By-Step (first edition, though i seem to have lost it and now own the second edition) for an excellent introduction to Assembly Language. Though i felt the section on binary to be wanting, when it matters, this is the book i recommend for understanding Assembly.

    Great job, Jeff!

  9. Yanis Zidelmal says:

    That’s for sure, it is a really delightful book to read – that, to be honest, I have illgally downloaded-. Furthermore, I would like to talk about the page 244, precisely about these code lines:
    in the .data section

    WordString: dw 'CQ’
    DoubleString: dd 'Stop’

    and the .text section:

    mov ax, WordString
    mov eax, DoubleString

    You seem to mean that the strings themselves are moved by the program into the registers, but in fact NASM treats labels as memory addresses, and in this case the addresses of the strings are the ones moved into eax. I beg pardon if my post is due to my eventual misunderstanding of your meaning, but that is what happens on my machine
    yours faithfully

    1. You may have me on this one. Generally, you need to use brackets to load the contents of a named memory location into a register. That means that

      mov ax, WordString

      should technically move the address at which the WordString variable is declared into AX. However, since we’re talking 32-bit programming here, an address won’t fit into a 16-bit word. I’m up to my eyeballs right now but I’ll play around with this in NASM in coming days and see what happens when you try this. I have to install Linux Mint first because when I dumped XP for Windows 7 recently I got a whole new hard drive for my programming system, and I’m not done repopulating it yet. Check back.

      1. Yanis Zidelmal says:

        You do not need to bother yourself with NASM, neither me nor you are wrong, your book is. Check page 244.

  10. Yanis Zidelmal says:

    Error due to the same misconception in page 310. what is placed in eax by the statement:mov eax, [HexStr] is not the address given to the variable HexStr, it is the string’s first double word.

    1. This is definitely a typo. The brackets should not be there. Something got messed up because the line at the bottom of P. 309 isn’t present anywhere in Listing 9-1!

      I’ll add this to the errata, though there’s not much to be done until the fourth edition, and the publisher hasn’t decided when to proceed with a fourth edition. It’s really not up to me.

  11. Yanis Zidelmal says:

    I do not urge you to correct it immediately – neither does anyone who makes this kind of comment do, I think – simply remember us when starting the fourth edition.

    I am sorry to bother you as I do but, in order for the Sums array to behave as you describe it in page 312, you must remove the quotes away, else the ascii equivalents of the characters are the one bytes going into the array, and in this case, the write system call would print it out right as it is declared, but the array won’t contain the numbers themselves.

  12. Yanis Zidelmal says:

    In contrary to what is stated in page 315 paragraph 3, on my machine, the Index of an array can perfectly be multiplied by numbers that are not powers of two. The problem is that the MOV instruction can only move bytes, words, double words – quadwords on longmode platforms – so you must write these values one byte at a time, or use MOVSB.

    1. Yanis Zidelmal says:

      That last statement was wrong, due to tests I had messed up. Sorry,
      I won’t be bothering you any further.

  13. jic says:

    Is there any chance of a Kindle edition of The Cunning Blood?

    1. It’s in my plan file, but I’d hoped to do another pass on it before creating an ebook version. I do have the novel in PDF format. The mobi and epub versions will take a little work. Certainly, when I’m ready to release it I’ll post an announcement here. I appreciate your interest in it, and I boggle to remember that it was first published nine years ago.

      1. Status update: The ebook edition is almost complete, and an artist is working on a brand-new cover. I expect to get it posted on the Kindle store some time this summer, as time permits.

        1. jic says:

          I’ve read the hardback since I asked the question, but the ebook edition is good news: it deserves a wider audience. By the way do you have any plans for a sequel, or for other stories set in the same ‘universe’?

          1. Yes, though it’s less of a sequel than another book set in the same universe. It’s called The Molten Flesh and is about the nanotech society called Protea, and a Protea instance that thinks it’s Oscar Wilde. The main character is Peter Novilio’s girlfriend Laura Rocci. I have a concept for a third novel called The Subtle Mind but my subconscious hasn’t given me too many details yet.

            I will probably do a Drumlins novel before The Molten Flesh.

          2. I wanted to make sure you knew that The Cunning Blood is now available as a Kindle ebook, available either from the Kindle store for $2.99, or as part of a Kindle Unlimited subscription, at no extra charge.

            I also just posted an unrelated novel, Ten Gentle Opportunities, also $2.99 and on KU.

  14. Mike Wenczel says:

    Hi Jeff,

    I just found this diary and must take a minute to thank you. In 1990, after a second less than satisfactory job in sales had ended, I came across your book “Assembly Language from Square One” at the local bookstore. Its not an exaggeration to say the book started me on a new career path. The clear writing style and encouraging tone of the book gave me confidence that I could actually learn to program. I also seem to remember you recommending us to sample the new Microsoft Access desktop database for the intro price of $99. I did. Learning that and VB brought me immediate, much need income back in the early/mid 90’s. 24 years (and many books and languages) later I am still working as a full time developer in NYC. And I think I shall check out your latest update covering Linux. Thanks again for your great work.

    warm regards, Mike Wenczel

  15. Julian says:

    Hi Jeff,
    First, off I wanted to say you have created a wonderful book. I have tried reading other assembly language book but they seems to be written to confuse me more than to teach me. I love your style of writing.

    Second, I was tracking all the way up to page 268 (chapter 8) the uppercaser1.asm example then I stumble onto uppercaser2.sam and that it where it all fell apart for me. On page 276 of the uppercaser2.asm example you do the following, “mov esi, eax”.
    I had no idea what you were doing until I re-read chapter 8 page 269. The section that say “sys_read” and I figured out you said there was a return value.

    Third, I know many people are having problems with Insight but I found a solution that works for the current version of Ubuntu 16.04. I installed Ubuntu, then followed the directions below for insight.

    next I installed the packages below per the website you mentioned

    and I got a working copy of everything needed for the class. I created all of this in VMware just in case I had a system crash. Some of the package below are not necessary because they are for insight but I didn’t know which ones so I left them. Someone smarter than me can tell me which ones they are.

    apt-get -f –force-yes –yes install tofrodos nasm kate bless kdbg ktechlab kile konsole build-essential xorg-dev libncurses5-dev libpthread-stubs0-dev libpthread-stubs0

    Once again thanks for a great book, I am off to Chapter 9.

  16. Dean says:

    Hi I can’t seem to access either of the url’s listed in chapter 5 for the source code. One is unavailable and the other is forbidden, any chance you could resolve please?

    1. This is weird. The directory URL has worked for years. But you’re right; it’s not accessible. I’m working on the problem; in the meantime I’ll email you the archive for the book. Thanks for letting me know–this is the first report I’ve received telling me that something is wrong.



  17. Alain says:

    Hi Jeff. Any news for the next edition of your wonderfull book Assembly language step-by-step ?

    1. Alas, no. It’s been since 2009, so it’s more or less time for a new edition, but I don’t get to make that decision. When the publisher wants a new edition, they ask for one. Of course, when they ask next time I’m going to ask for another 100 pages to cover 64-bit issues…but I may not get them. It then becomes a question of what to cut so I can cover 64-bit as it deserves.

  18. Gene Buckle says:

    Jeff, could you add your Free Pascal book to this list? I had no idea it existed until I stumbled across this blog post:

    I’ve been a fan of your work for 30+ years – thanks for doing it!

    1. Heh. I never thought of doing that, but I will. I haven’t finished it yet, but there’s enough in it to be useful, and it needs updating. I’ll a note to that extent. Thanks for the noodge.

  19. Tim Fidler says:

    Jeff. I think that the 6T9 compactron Tx is a great idea .. antenna loading built in and all that but a single freq xtal lockd Tx is not real practical now on the bands..Why don’t you put a link to this – as a suggestion.. on your site. These monobanders are not as simple as the design you have but will produce 20 W (ie. Atlantic spanning ) and are frequency agile. Fred at Far ccts is still producing the PCBs as far as I know.. may have spider webs on em of course.. There is an alt. simple Tx design (hybrid Fet/ Compactron PA) that is freq agile.. I can discuss it with you if you come back to me. cheers Tim Fidler in NZ.

  20. Mehmet Ali Can says:

    Is there maybe dutch language same book?

    1. Some of my Pascal books are available in Dutch. Which book do you mean?

      1. Mehmet Ali Can says:

        Assembly Language Step By Step, Third Edition

        1. Alas, as best I know there’s no Dutch edition of that particular book. Most of my older Pascal books can be had in Dutch on the used market. Some are now 30+ years old.

  21. Mehmet Ali Can says:

    Assembly Language Step By Step, Third Edition

  22. Joshua says:

    Is it possible to get a listings diskette for your Assembly Language book that used DOS? This must be the first edition. I’m at the chapter on JED and would really like to check it out. Thanks.

    1. Look at the indicia page (copyright information) and tell me the copyright year. That’ll tell me which book it is (there are actually four editions, starting in 1990) I’ll look in my archives and find the listings zipfile and email it to you. My guess is that it’s 1992; that’s the edition with my picture on the cover.

      You can email me: Put my first name (jeff) together with my last name with an at sign in the middle, followed by .com.

  23. Naveen Arora says:


    Any update regarding
    “Assembly Language Step By Step, Fourth Edition” (64 bit)?

    Hope to get reply from the master who knows how to teach assembly as a first programming language.

    Thanks & Regards
    Naveen Arora

  24. Wong Jawa says:

    First, i am learning python some years ago.
    And stuck with that language until recently.

    I am learning java for advancing my programming skill set.
    And then going to C.
    And, i had a hard time to grasp “pointer” concept in C.

    I am almost feeling hopeless to at least understand the concept of “C pointer”, until i found your book. Just reading from chapter 1 to chapter 4, magically, without my own intention, the pointer concept coming in naturally to my mind.

    Thank you very much for all of your work.

    And like any other people, I am too waiting your “Assembly Language Step By Step, Fourth Edition” book.

Leave a Reply

Your email address will not be published. Required fields are marked *