hp 71b

This is a very general request for information. I read some of ex-PPC members info on the 71b (thanks).
My questions is this; how useful is the 71b today, compared to the 41 series, 42s, and 32s? Is using a BASIC machine a waste of time, or does it still have usefulness left in it. Thank you.



Reality- It is a hobby and the 71B has a neat implementation of HP Basic (a relic of bygone days). It would not be used today in any critical aplication due to speed, limited memory, and availabiltity of parts. Even when designed it was obselete and never attained significant sales.

The other units you mention are true calculators and can still function today since speed and memory are not an issue. Though parts and replacement issues are always an issue.


Well, this is only my opinion, BUT:

I feel all are great number crunching machines in their own right. However, I like the 42s best for its portability. That said, I like the 48G series best for their I/O and simple programmability (keystroke for me) and loads of built in features (lots of functions and conversions so my programming is still minimal).

But I feel that same type of argument applies to the older line 71b vs 41c as well (except that the 41c is indeed more versatile than a 42s simply because it did/does have I/O).

The 71b is a nice machine to use and WAS portable for its day. By today’s standards, you would be much better served by an Hp100 or 200lx (unless you have equipment based upon the modules and interface bus of the older 71/41 line). However, its simple to implement BASIC and its calculator mode were unequalled by CASIO or Sharp, though the latter did make smaller and more portable machines. I don’t believe it was ever intended to be a stand alone calculator due to its high price and I/O capabilities.

Cost and availability have narrowed down my calculator of choice to the 48G series. I use a 48G for all my work, because it has a quality keyboard, has all the features and functions I use (or I can easily download or write). And it is Cheap to replace should I need a replacement (so far, though I have spares). And this is/was important when I worked in the field.

That is no longer the case with any of the other calculators. I do not have a back up for my 71 (actually, I only collected this calculator, never really used it aside from simple comparisons).
My 41c was a gift, and I do not have many accessories.
My 42s was used heavily in school (upgraded from my 15c, also heavily used) and is still my preferred choice (and I have a single backup).
For general RPN use, an Hp32s is great, but since it lacks real RAM, it can only perform simple customabilty (though it would probably be enough for me, I don’t like being cramped). It is really no big step up from a 10c series in capability. I like my 15c much better than a 32s.

And while it is true that my higher end math can be done with my PC, unless I am documenting my calculations into a report, I feel better with my portable calculator. When I used to work in the field, a PC would be a nuisance vs a pocket calculator was an aid and a tool.

All things considered though, these calculators are being used by choice and not of necessity 95% of the time. Most calculator users could indeed do their work with a Ti or Casio with little penalty of functions. However, getting this bunch to accept this fact would be tough (90 % of us feel we are the upper elite and could not work with anything less than HP and that is probably not true for most of us). We are Calculator connoisseurs and do not want to settle for Mickey-Mouse calculators and just want the best available. Most of us could easily get by with another brand, if we were to abandon Hp and our knowledge base and learn a new calculator. Do we want to? No, most of us do not. If fact, the more I learn about the opposition (Ti, Casio, Sharp), the more I want to stay with my Hp’s. But that doesn’t mean those calculators cannot do what I need them to do.

However, those calcs cannot do what an Hp can be made to do. If I tackle simple research and do preliminary calculations for the sake of analysis, (or taking an EIT EXAM) there is no substitute for calculational Horse power (although plenty have passed the EIT’s with calculators other than Hp also).

Most people are happy or satisfied with a cheaper calculator since it is now a commodity. The one percent who feel otherwise do not constitute a market to pursue. And that is why our Hp calculators are no longer available. That is the sad reality the we must face. I hope Hp will release a new RPN calculator with good quality, but I will not hold my breath.

Enough of my Rant.



The HP-71B was my hobby during med school. I didn't always have money to eat (and ate leftovers from hospital trays), but when the HP-71B came out, I had to have one. I never regretted the money spent.

The first time I held it and entered a BASIC program from the command prompt, I was overwhelmed with the power. Instead of using a big machine with a big monitor, I could program in the palm of my hand. With concatenation, an entire routine could be entered on one line (if desired).

Though it's been mentioned as an algebraic machine, I have several modes that do RPN well. One small program, with its keyboard overlay and written in machine language, provides a fast, powerful, and multi-featured RPN calculator. The HP-41 module provided another RPN calculator, as did its FORTH mode. Adding the calculator ability of BASIC from the command prompt, leaves 2 algebraic modes and three RPN modes. WOW! (I haven't seen this machine language RPN program mentioned here-- I think I got it from Joe Horn. An amazing program! Syntax: CALL RPN. It stays in that mode when turned on and off until the program was ended.)

To this day, I think it is incredible in its power and versatility. It blows away other calculators in speed, custom abilities, etc.

It'll do anything the 41 will do, and much, much more.

It may not have sold well, but with an open architecture and so many LEX files available, it's abilities are endless. New commands could be written in BASIC, FORTH, and even machine language.

A person could spend a lifetime and not know all of its capabilites, in my opinion....(probably not unique to the 71, but far beyond unchangeable calculators...)

Just my opinion,


In my opinion, after HP-48GX, HP-71B is the best HP calculator because it is totally open for (software and hardware) expansion. It's BASIC is extremly powerful, much easier for programming than RPL and can be easily expanded using LEX files. And if you need it, there is Forth for HP-71B, too.

HP-41C and HP-42S are the next ...


Hi Joe, glad you liked my former posts on the HP-71B.

As for your request for info or opinions, I'll tell you
the HP-71B is the one HP machine I use most of the time,
even today. I do have all the others (41's, 42's, 32's,
15C's, etc), but the one I grab to do *anything* be it
at home or out of it, is the HP-71B.

My HP-71B is fitted with nearly 210 Kb RAM, the Math ROM,
the HP-IL ROM, the Forth/Assembler ROM, and the Card
Reader, and no other HP calculator can touch it, in sheer
power, ease of use, manufacture quality and versatility.
Why ? Let's see:

  1. Manufacture quality: it is *extremely* robust, strong,
    durable. It has real HP keys, molded (not painted),
    with the usual HP colours and quality, as found in the
    Voyager series, for example, not cheap plastic, painted,
    garish-colours affairs. Those keys can stand any
    use and abuse, indoors and outdoors with ease. Matter
    of fact, my HP-71B is the only calculator/computer I
    can trust to work reliably under extremely cold and
    humid conditions, mountains in winter, for instance.
    After nearly 20 years, it still looks and works like new.

  2. Memory: while a 32s has some 0.3 Kb or so, an HP-41CX
    can have up to some 6 or 7 Kb, and a 42S can be fitted
    with as much as 32 Kb, you can fit up to 512 Kb RAM/ROM
    combination in a 71B. I've seen machines with up to
    400+ Kb, and mine has nearly 210 Kb. That's more than
    enough for most programming needs, even those involving
    data collection (surveying, geophysical engineering),
    and you can handle really large systems of equations
    and matrices with that much memory. Compared to that,
    a 42S simply does not deliver the goods.

  3. Expandability: unlike the almost non-I/O 32S/42S, you
    can fit dozens and dozens of devices to an HP-71B, via
    the HP-IL module. This ROM can handle up to three IL
    loops, with scores of devices on each one, and can
    transmit data in excess of 5,000 bytes/second. You can
    use digital tape drives, floppy disks, control other
    HP-71Bs or even HP-41Cs, and using the HP-IL/HP-IB
    interface card, you can even access and control files
    on a PC !! The HP-IL ROM features some 50 keywords
    (which extend BASIC, written in assembly, of course)
    which allow you to do most anything I/O-related you
    may want. Just ask Tony Duell ! :-) Matther of fact
    its HP-IL controller capabilities are so good that the
    HP-71B has been used and is probably still used inside
    HP as a controller for their expensive digital measurement
    devices (multimeters, oscilloscopes, etc).

    If that wasn't enough, you can use the attached card
    reader to write/read programs and data without any
    HP-IL mass storage devices in sight.

  4. Ease of use: The HP-71B features one of the best BASIC
    dialects ever. It comes with more that 240 keywords,
    and features such advanced capabilities as a whole
    file system which allows multiple files in RAM, multiline
    user defined functions, named subprograms, recursivity,
    passing parameters by value and reference, user-selectable
    precision for numeric arrays, two-dimensional matrices,
    strings, 12-digit IEEE precision with NaNs', infinities,
    and gradual underflows with denormalized exponents,
    programmable timers that can turn off and on the
    machine or interrupt execution at specified intervals,

    As such, it's extremely easy to write programs using it,
    even very complex ones, and what's better, you *can*
    understand and modify your own programs months or years
    after you wrote them. I guess that no matter how much
    we like or love RPN, it's far too cryptic when compared
    to English-like, BASIC statements, not to mention RPL.

  5. User-expandability: the HP-71B allows you to program it
    in at least four languages: BASIC (native), RPN (HP-41C
    translator, runs some 7 times faster than the real
    thing), FORTH (runs 6-10 times faster than BASIC) and
    Assembler (full machine speed).

    In this regard the HP-71B is almost unique in that it
    allows the user to add his/her own BASIC keywords to
    the already existing ones, in assembly, undistinguishable
    in use, appearance and speed, from the built-in ones.
    For instance, I've created a LEX (Language EXtension)
    file that adds some 40 very powerful keywords to the
    BASIC. Once created, you can share this file with any
    other HP-71B, use the keywords in your programs, etc.
    Also, most ROMs add their own keywords, such as the
    50+ added by the HP-IL ROM, the 85+ added by the Math
    ROM, etc. That why you'll find yourself with hundreds
    and hundreds of extremely powerful, assembly-language
    high-level BASIC keywords at your command.

  6. Open: Full documentation is available for the HP-71B,
    including the complete, documented, commented listings
    for the 64 Kb operating system, with thousand of
    supported entry points exhaustively documented for use
    in your own assembly-language routines. You can use
    those entry points as subroutines in your own keywords,
    and you can even modify the way the built-in keywords
    work, by means of intercepting polls, so further
    customizing even the built-in BASIC language to your

I could go on, and on, and on, I haven't mentioned
the incredible CALC mode, the 15-level command stack,
the user-definable keyboard and character set, the
graphic, dot-addressable display, but the summary is clear:
there is no other HP machine which can touch the 71B. Some
may have more memory, some may be smaller, some may be
faster, none is more rugged, none is more extensible,
none has all those features to such a high degree in the same, very machine.
Of course, it isn't perfect, it could use
at larger display, for instance, but then nothing is.

As for use, I use it daily, from balancing my checkbook
to keeping personal data, to playing what-if with my IRS
data (far from a non-secure PC environment), to gathering
geophysical data high on a mountain, at -20. I would trust
no other HP calculator/computer to perform flawlessly and
reliably under such environmental circumstances.


By the way, you may find interesting to read the very
opinion of Steven T. Abell, one of the 'fathers' of the

Steven T. Abell's on his creature

I think it's an exceptional document, and clearly shows
that even back then, HP wasn't the HP we all knew and loved.
At least it seems Steven was on the verge of calling names,
and seems to me this was the beginning of the bitter battle between engineers and marketing people. Not that we don't know pretty well who lost ...


So I finally figured out who ExPPC is, I have wondered..

Tony. Thank you for you 'morbituary' I'm a 71B user and collector and had to print your posting. It will go into my 71B binder.

Thanks as well for the link to the 'flame', that goes into the same chapter

I saw that you responded to the other 71B question. Do you have a means of others looking into the LEX files you have saved. I'm looking for the RPN on/off LEX that was mentioned here and I remember from my time in university that there were a LEX file that could extend the depth of the COMMAND stack. I would love to have that one (anyone..?)

Best regards



I know who he is, but have never been quite sure why he hides behind the appellation of Ex-PPC'er, but that is his wish. Regardless, I appreciate his contributions. :-)


note that forth will cost you a pretty penny :)


I'm glad, too, that you also liked my 71B's posting. I think
it's pretty obvious that I like that HP model very much,
and I've certainly created some interesting software for it,
most of it unpublished yet.

As for the LEX file that could extend the depth of the COMMAND stack, it's actually quite easy to do in assembler.
It is included in the LEX file I created, named EXTENLEX,
among some other 39 commands which extend the built-in
BASIC language with some very powerful and convenient
capabilities, among them:

  • Structured programming: REPEAT, UNTIL, WHILE, END WHILE, LEAVE, EXIT

  • LCD display control and graphics: SDOT, CDOT, TDOT, LCD, BLINK, INVERT, CONTRAST

  • New LCD font styles: BOLD, SMALL, NORMAL

  • Powerful string functions: RPT$, REV$, REPLACE$, TRIM$, MEMBER, LWC$, LWRC$, SPAN, SBIT, SBIT$, ROT$, LTRIM$, RTRIM$

  • LEX file control: ENABLE, DISABLE

  • Editing aids: FIND, SETCMD

  • Programming non-programable commands: EXECUTE

  • concurrent, background-task clock on the display: CLOCK [ON/OFF]

  • executing commands at turn-off: ENDUP, ENDUP$, STARTUP$

  • peeking memory, even from PRIVATE files: NPEEK

  • enhanced, power-saving keypress readout: KEYWAIT$

That's 40 BASIC commands and functions (22 statements, 18 functions, all programmable except FIND), all of them contained
within a single LEX file exactly 4,047 bytes in length, which
means you can store it in some IRAM (Independent RAM) area,
safe from most MEMORY LOST conditions, even if the main RAM becomes corrupted (actually, it *did* survive a long battery removal which caused the rest of the main RAM to be lost). In the bare bones machine, it would still leave 12,687 bytes free for user programs, and would occupy a full 4K IRAM (leaving just 25 bytes free ! How's that
for efficient space use ?)

I intend to publish it soon, in a web site of mine due within a couple of months, so that everyone interested will be able to key it in directly on a bare-bones 71B, no assembler, plug-ins or LEX files required. Then
you'll have the SETCMD command available to extend the depth of the command stack (though you do *not* need a LEX file to do so, it can be done using a subprogram which doesn't require anything beyond the built-in functions).


This was one of the crowning achievements of 71B programming.

Manual and rom image will be online soon.



You can find a command stack increase LEX file here:



You will have to strip the headers and trailing bytes of the file. I used a hex editor to do this. I have downloaded and stripped quite a few of the LEX files available at this site.













I have a few more that I have but won't list them here. Some are just different LEX files but do much of the same things.

CLOCKLEX is a nice hack that displays a small clock all the time in the upper right hand corner of the display.



As far as I know, almost all of these keywords are available in JPC ROM or can be download either as source code or LEX files from ftp://ftp.hpmuseum.org/lif/swap/ so I don't think they are unpublished.


The version that will be available soon is a very debugged version. The original JPC rom went through versions A, B, C, and even D, but still had some bugs.

The version soon to be available is a previously unpublished version "X" and will be up with the PDF of the manual.

Wait a short time and get the good version. :-)



HP wrote:

"almost all of these keywords are available in JPC ROM or can be download either as source code or
LEX files from ftp://ftp.hpmuseum.org/lif/swap/ so I don't think they are unpublished"

EXTENLEX is the one, unpublished LEX file, not the individual keywords taken separately. You might say then: "But we can use those published LEX files instead, right ?"

Yes, but if you add up the lengths of the individual LEX files necessary to implement all those same 40 keywords (12 of them), you'll discover that the resulting length is significantly *larger* than EXTENLEX's meager 4,047 bytes !

This isn't important just to save valuable RAM, but also because
you can only "free-port" IRAMs in multiples of 4K, and thus
any file over 4,072 bytes in length won't fit in a 4K IRAM and will force you to freeport an 8K one.
That's precisely why I created EXTENLEX in the first place, optimizing it in such a way that it would fit in 4K as tightly as possible, and indeed it does, leaving just 25 bytes unused from the 4,072 bytes reserved.

On the other hand, using the individual LEX files means
cluttering your CATalog with 12 separate LEX files, using
significantly more precious RAM, taking an 8K IRAM, and forcing the operating system to waste time dealing with them (polling, etc) individually instead of a single, optimized LEX file.

It's also much easier to distribute and install this single LEX file with your programs which use it, instead of a bunch of separate, perhaps even conflicting files.


> EXTENLEX is the one, unpublished LEX file, not the individual keywords taken separately.

Sorry, I haven't read carefully :-(

Excellent work to squeeze all of them into 4K. I am always excited when I see good and efficient programming.



I have version D and I haven't experienced any troubles.

What has been fixed in version X? Is source available?


Besides using the SETCMD keyword available in several LEX files, you can also do it right on a bare-bones HP-71B using the following subprogram. I've seen many versions of it, with different degrees of sophistication, but this is the shortest one which doesn't require any extra LEX keywords (such as RPT$ and REV$):

1000 SUB SETCMD(N) @ DIM S$[6*N]
1010 DEF FNR$(S$)=S$[5]&S$[4,4]&S$[3,3]&S$[2,2]&S$[1,1]
1020 A=HTD(FNR$(PEEK$("2F576",5)))
1030 FOR I=1 TO N @ S$=S$&"000300" @ NEXT I
1040 E$=FNR$(DTH$(A+6*N)) @ POKE "2F580",E$&E$&E$
1050 POKE DTH$(A),S$ @ POKE "2F976",DTH$(N-1)[5]
1060 END SUB


  • The line numbers are arbitrary, you can change them
    to whatever suits you

  • The parameter must be an integer from 1 to 15, to set a command stack depth of from 1 to 15 entries. The subprogram does no range checking at all on this parameter, so you must ensure that you pass a correct value, else you risk corrupting memory and/or system addresses and pointers.

  • This subprogram uses POKE to alter system addresses and pointers, which is inherently dangerous, so make extra-sure that you key in the subprogram exactly as shown, do not confuse the letter "S" with the number "5", do not enter the wrong hex addresses, etc. Else, you risk corrupting memory.
    Also, although execution is very fast, do not interrupt or abort the subprogram midway, lest the system becomes unstable.

  • I would suggest that you back up important data in your machine before running this subprogram, just in case there's some typo or Murphy does his thing. Needless to say, you use it at your own risk, I can't take any responsibilities.

  • Call it like this: CALL SETCMD(10), to configure a 10-level command stack. Upon execution, the newly configured command stack will be empty.

  • Though theoretically you could specify a 16-level stack, the 71B operating system has a bug which makes using that depth unreliable. Stick to values from 1 to 15, 10 seems optimal to me.

Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-IL 71B to 71B via HPIL Geoff Quickfall 11 2,196 12-01-2010, 06:55 PM
Last Post: Michael Meyer
  Question: 71B <-HPIL -> 71B john smith 16 2,358 05-12-2003, 06:37 AM
Last Post: John Smith

Forum Jump: