The Museum of HP Calculators

HP Forum Archive 10

[ Return to Index | Top of Index ]

hp 71b
Message #1 Posted by Joe Edwards on 24 Feb 2003, 4:13 p.m.

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.


Re: hp 71b
Message #2 Posted by Dave on 24 Feb 2003, 4:42 p.m.,
in response to message #1 by Joe Edwards

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.

Re: hp 71b
Message #3 Posted by Ron Ross on 24 Feb 2003, 5:07 p.m.,
in response to message #1 by Joe Edwards

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.

71B rules! Nothing quite like it even today.
Message #4 Posted by Michael Meyer on 24 Feb 2003, 10:06 p.m.,
in response to message #3 by Ron Ross


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, Michael

Re: hp 71b
Message #5 Posted by HrastProgrammer on 25 Feb 2003, 2:56 a.m.,
in response to message #1 by Joe Edwards

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 ...

Re: hp 71b
Message #6 Posted by Christof on 25 Feb 2003, 6:25 p.m.,
in response to message #5 by HrastProgrammer

note that forth will cost you a pretty penny :)

Re: hp 71b
Message #7 Posted by Ex-PPC member on 25 Feb 2003, 5:19 a.m.,
in response to message #1 by Joe Edwards

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, etc.

    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 needs.

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.

Another opinion ...
Message #8 Posted by Ex-PPC member on 25 Feb 2003, 9:16 a.m.,
in response to message #7 by Ex-PPC member

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

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 ...

Re: hp 71b
Message #9 Posted by kim holm on 25 Feb 2003, 3:33 p.m.,
in response to message #7 by Ex-PPC member

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


Nope, don't think Ex-PPC is Tony
Message #10 Posted by Gene on 25 Feb 2003, 5:12 p.m.,
in response to message #9 by kim holm

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. :-)

Re: hp 71b
Message #11 Posted by Ex-PPC member on 26 Feb 2003, 4:49 a.m.,
in response to message #9 by kim holm

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).

And don't forget the JPCrom Lex file will be available soon
Message #12 Posted by Gene on 26 Feb 2003, 7:45 a.m.,
in response to message #11 by Ex-PPC member

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

Manual and rom image will be online soon.


Re: hp 71b
Message #13 Posted by HrastProgrammer on 26 Feb 2003, 9:52 a.m.,
in response to message #11 by Ex-PPC member

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 so I don't think they are unpublished.

Don't download the JPC ROM from that location
Message #14 Posted by Gene on 26 Feb 2003, 10:28 a.m.,
in response to message #13 by HrastProgrammer

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. :-)


Re: Don't download the JPC ROM from that location
Message #15 Posted by HrastProgrammer on 27 Feb 2003, 2:19 a.m.,
in response to message #14 by Gene

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

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

Re: hp 71b
Message #16 Posted by Ex-PPC member on 26 Feb 2003, 10:36 a.m.,
in response to message #13 by HrastProgrammer

HP wrote:

"almost all of these keywords are available in JPC ROM or can be download either as source code or LEX files from 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.

Re: hp 71b
Message #17 Posted by HrastProgrammer on 26 Feb 2003, 3:52 p.m.,
in response to message #16 by Ex-PPC member

> 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.


Re: hp 71b
Message #18 Posted by Chris(FLA) on 26 Feb 2003, 8:04 a.m.,
in response to message #9 by kim holm

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.


Extending the Command Stack
Message #19 Posted by Ex-PPC member on 27 Feb 2003, 4:32 a.m.,
in response to message #9 by kim holm

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.

[ Return to Index | Top of Index ]

Go back to the main exhibit hall