In Praise of EMU71 Emulator and JPCROM
#1

I have been translating some BASIC programs from Excel VBA to True BASIC and to HP-71B BASIC. I decided to use the EMU71 emulator since it's easier to copy edited files than to type them in. The EMU71B has the support of the Math ROM and the JPC ROM. The latter supports more structured constructs for decision-making and loops. I found that the JCPROM to be very useful when included, together with the Math ROM, in the EMU71B. Hats off to Garnier and rest of the Parisian group who wrote all that sofwtare. Also hats off for HP for the Math ROM. This ROM makes matrix operations much easier to handle.

Namir

#2

Hi, Namir,

Yes, both EMU71 and JPCROM are great, I wish there were a solution like the Clonix available for the 71, though. Writing software using the JPCROM or Math ROM pretty much restricts you to emulators (HP71X by HrastProgrammer also loads the Math ROM and JPCROM by default.) Since there aren't that many 71B users in the world, I avoid using constructs that would require an unobtainable add-on. I stick with the plain vanilla capabilities of the machine.

I love the structured programming and nice listings of the JPCROM, though. Perhaps if enough people were interested, we could convince Diego or Meindert to have a look at ROM emulation for the 71? 8)

#3

Is there a physical module for the JCPROM? Has someone produced these modules?

The basic programming features of the HP-17B were ok maybe in 1990. The Math ROM adds powerful matrix commands that shorten programs and allow the HP-17B to implement sophisticated optimization algorithms. Without the Math ROM. THE JCPROM makes the BASIC code look more structured. Of course in the worl of object-oriented classes, all this is history. I am having fun with it, but I feel I need to go nack to OOP applications. I do have a matrix library in VB6 and VB.NET that will support matrices.

Namir

#4

Yes, well, I've had to adapt to OOP over the years. But I hit my first real streak of programming success with structured languages, and I doubt my heart will ever forget the thrill and fun of that. The JPCROM does a very nice job of converting the rather clunky 71 BASIC into something my eyes are predisposed to see as beautiful.

I don't know if the JPCROM ever lived in a real ROM or not. The name suggests it did, but of course the routines it contains can be found in various LEX files. And the ROM image can be used in RAM, if there's enough of it. Maybe JF knows more about it?

Regards,
Howard

#5

How would I put THE JCPROM in the 71B?

#6

The JPC ROM lived as a real module, actually in CMT or HHP 32k/64k EPROM modules. It was sold by PPC-Paris in this way, and was even distributed at some time by Educalc in the US.

I was a PPC-Paris member, but a minor contributor to the JPC ROM project (I just wrote a few HP-IL related keywords...), as I don't live in Paris but in Grenoble (France), and communication was no easy at the time without Internet...

FYI, I'm in the process of documenting the JPC ROM project and collecting the complete JPC LEX source files (assembly language) in order to re-build the JPC ROM, and maybe release a new version?

J-F

#7

Hi, Namir:

Namir posted:

"Hats off to Garnier and
rest of the Parisian group who wrote all that sofwtare. Also hats off for HP for the Math ROM. This ROM makes matrix operations much easier to handle."

    Indeed, we all HP fans must be extremely grateful to Jean-François Garnier for creating such wonderful emulator firstly, then making it publicly available on-line for free, and last but nor least, including with it a most generous provision of ROM images, the Math ROM, JPCROM, and Forth/Assembler ROM among them.

    That makes every HP fan a potential HP-71B user, both for fun and for profit. In my own case, I fire it up under Windows XP each and every time I need to make a quick calculation while working: I've found that making the most complex computations with it is unbelievably fast, both while entering the expressions and when executing them. This includes heavy statistical calculations as well as very complicated actuarial formulae, to name a few.

    Also, with the incredible capabilities of the included Math ROM, I can solve equations, compute integrals, use complex numbers, or do matrix computations at once, from the command line, in mere seconds. Actually, I can do most anything in the time that others would need just to load their programs or turn on their physical calculators. So, Emu71 has become second nature for me.

    As for the Math ROM, it was and still is one of the most powerful pieces of software for handheld computing ever made. Under Emu71 it's become blindingly fast, and with the help of the simulated 80-colum HP-IL display, working with large matrices and long programs is extremely easy.

    There's also the fact that the Math ROM's feature set can be put to uses non-mathematical in nature. For instance, I've used matrix operations in such programs as my "Modest Mater" (which solves arbitrary N-move chess mate problems) or "Sudoku Solver" (which of course, solves Sudoku puzzles), both having very little to do with math. Matter of fact, anytime when you need to make a fast temporal copy of a large bunch of data, such statements as MAT A=ZER, MAT A=CON, MAT A=(expression), and MAT A=B are incredible
    time-savers, even if you never need to do any arithmetic with the
    data thus saved and retrieved.

    Most other functions can be put to nonexpected (or expected) uses, such as complex numbers as coordinate pairs, Fast Fourier transforms to help speed convolutions (for multiprecision computation, for instance, see my "Fantastic FOUR" article/program), etc.

    In short, both Emu71 and the Math ROM are unbelievably good software, and both can be used extremely profitably even nowadays, if nothing else as an über-calculator under Windows which runs rings around any other hardware/software device in terms of speed, simplicity, and convenience.

    Formerly I did use either HP-41CX or HP42S emulators but after I got the emulated Math ROM I've never used them for on-the-fly calculations anymore, because when I'm at work, inmersed in some complicated actuarial project (as if there were such a thing as a non-complicated actuarial project!), even in the client's presence, I've no time at all for RPN or RPL vagaries and cumbersome interfaces, I just need to key in expressions as fast and easily as possible, hit ENDLINE, and voilá, perfect results instantly, editable, saveable, copy/paste-able.

    And don't you think that "expressions" means a puny combination of numbers and arithmetic operators, I mean using the full Math ROM feature set, named variables, loops, and even defining and calling multi-line user defined functions or subprograms on the fly. Try and do that, or the equivalent, any other way, at full speed. Particularly, try and do that using any RPN/RPL emulator or physical machine. You'll be hardly starting by the time I'm done with the calculation.

    So, most sincerley, thanks again to Jean-François for it, he deserves all our support and appreciation for his disinterested efforts in benefit of the HP community.

Best regards from V.


Edited: 19 Jan 2006, 7:45 a.m.

#8

J-F,

I really enjoy using your EMU71. While I do have several HP-71B machines (two with 64K additional RAM), it's easier for me to edit HP71B listing on the PC and to transfer them to the EMU71 for testing.

I look forward to the documenation when you are finished with it. Please let us know in this forum.

Thank you fo rmaking my life easier!

Namir

Edited: 19 Jan 2006, 8:35 a.m.

#9

Hi JF!

Please make sure you look for the (almost completely) debugged Version X of the JPCROM, which Rodger Rosenbaum had a great deal to do with.

I have that compiled lex file and, I think, it has been made available on the internet previously.

Joe Horn knows a great deal about it...where else did you think I would have ever gotten a copy? :-)

#10

Don't forget the wonderful SYMBOLIX lex file too. It gives the HP71B a very powerful symbolic algebra capability. Runs about 30K.

#11

Hi, Gene:

Gene wrote:
"Don't forget the wonderful SYMBOLIX lex file too. It gives the HP71B a very powerful symbolic algebra capability. Runs about 30K. "

    Not to demean your enthusiasm, Gene, and I'm the first to recognize that SYMBOLIX is indeed a great, truly amazing piece of software, even more so that it was ported to the HP-71B.

    But that granted, I pay next to no attention to symbolic algebra capabilities in calculators or small machines. I find them tremendously restricted, awkward to use, slow, and inefficient, not just compared to the real thing in larger machines (say Mathematica or Maple) but also for any real-life, non-trivial use.

    For me, these capabilities are nothing but a marketing plot, devised to cater for the educational market, and to show off a new model (the HP28C, say) and impress the fans.

    Me, I'm not impressed, never was. I do a lot of number-crunching as part of my work but rarely any 'symbolic computation', and if I ever did (or do, at home, as a hobby), I'd rather do it by hand that use that clumsy, meager capability, in an smallish screen and with an inadequate keyboard. Doing it by hand is much faster, easier, and ultimately rewarding. And if I can't do it by hand ... well, time to reach for Mathematica.

Anyway, thanks for your input and

Best regards from V.

#12

Yes, Rodger was so kind to provide me his "source" file (actually a disassembly of the JPC ROM) that he used to create the version X. So I have a trace of the changes he made.

J-F

#13

Jean-François,

What did you program the EMU71 with? I am just curious.

My other question is, "Will there be a Windows GUI version of EMU71?"

Namir

Edited: 19 Jan 2006, 6:51 p.m.

#14

Valentin,

I can see why you like the EMU71 so much. I agree with you that it is very quick to setup and has very good performance. I like to use the HP41 and HP42 emulators, but now that you have mentioned the advantages of the EMU71, I am giving things a second thought.

Namir

#15

Namir,

I used Borland C compiler and turbo assembler.

Regarding the Windows version, I have no plan at the moment, but who knows ... I'm quite satisfied with the classic DOS implementation that runs well in Windows Command box, and the text mode is close to the 'look and feel' of the video display used with the HP-71B at the time.

J-F

Edited: 20 Jan 2006, 6:51 a.m.

#16

Hi, Jean-François:

Jean-François posted:


"Regarding the Windows version, I have no plan at the moment, but who knows ... I'm quite satisfied with the classic DOS implementation that runs well in Windows
Command box, and the text mode is close to the 'look and feel' of the video display used with the HP-71B at the time."

    I concur. Unless a Windows (i.e., "graphical") version does result in significant gains in performance and/or usability, I think that the current command box implementation is perfectly adequate and actually to be preferred.

    The only advantage I can think of in the Windows version would be the possibility of implementing GDISP (GDISP$ already works!) so that emulated programs that do make use of graphics, such as games, smaller-font permanent clocks, or character redefinitions, would work ok.

    Also, it might be the case that a Windows version would be even faster or it might offer the possibility of emulating both a (graphical) HP-IL printer (i.e. Thinkjet) as well as the current emulated HP-IL 80-column display, in separate windows. That would mean that you'd be able to run emulated programs such as calendar-printing, function plotters, etc., seeing the graphical result in the emulated printout while conserving your emulated HP-IL display uncluttered. Would be very useful for debugging, too, even if no graphics were involved.

Best regards from V.
#17

You basically re-wrote HP-71B BASIC. The expression parser and evaluator modules alone are a major task. Then you add modules to manage variables, arrays, matrices, program executions and flow (CALL and GOSUB stacks), and so on.

Impressive!

Namir

Edited: 20 Jan 2006, 10:34 a.m.

#18

Hi, Namir:

Namir wrote:

"You basically re-wrote HP-71B BASIC. The expression parser and evaluator modules alone are a major task. Then you add modules to manage variables, arrays,
matrices, program executions and flow (CALL and GOSUB stacks), and so on."

    I think you got it wrong, Namir. Emu71 is an emulator, not a simulator. If I'm not terribly mistaken, Jean-François didn't have to implement a BASIC interpreter or operating system, he just implemented a Saturn-CPU emulator in C++ or whatever code, plus ancillary routines. Once working, this Saturn CPU emulator will act as a virtual CPU, and then you simply feed it the HP-71B System ROMs images, the HP-IL ROM image, the Math ROM image, the Forth/Assembler ROM image and voilá, you've got a piece of software which acts as a real HP-71B, bugs and all, with HP-IL, BASIC, Forth, Assembler, whatever.

    Though still lots of work, it's many orders of magnitude simpler than trying to write code to implement all 240 statements and functions of HP-71B BASIC, plus Forth, plus dozens of Matrix ROM statements and functions, etc, etc. I don't think it would be feasible for an unpaid individual with limited free time.

Best regards from V.
#19

Got you!! Isn't Tcl/Tkl (os something like that) commonly used nowadays for emulators for HP calculators???

#20

Tcl/Tk is "Tool control language/Toolkit" where the "toolkit" part refers to a GUI toolkit. It's a "glue" language for making different components work together. Being an interpreted language, it's not suitable for CPU emulation, though it could certainly help with graphical display as part of a larger simulator.

#21

Hi, Valentin --

Quote:
But that granted, I pay next to no attention to symbolic algebra capabilities in calculators or small machines. I find them tremendously restricted, awkward to use, slow, and inefficient, not just compared to the real thing in larger machines (say Mathematica or Maple) but also for any real-life, non-trivial use.

For me, these capabilities are nothing but a marketing plot (ploy?), devised to cater for the educational market, and to show off a new model (the HP28C, say) and impress the fans.


I concur wholeheartedly! Implementation of the symbolic-algebra functions on the RPL-based calc's never made clear philosophical sense to me. Those users who had the skill and inclination to fully exploit a 28/48/49 would certainly be competent at algebra and calculus. A simple problem whould probably be faster on paper; a solution to a difficult symbolic integral would more likely be found in generalized form within a mathematical reference, such as Schaum's Outline.

Moreover, display of the results is often very difficult to read on a 28 or 48 (although that was improved on the 49).

Regards,

-- KS



Possibly Related Threads…
Thread Author Replies Views Last Post
  Update of Emu71 to v1.05 Christoph Giesselink 0 946 09-24-2013, 04:22 PM
Last Post: Christoph Giesselink
  EMU71 on a web page! hugh steers 13 3,977 07-14-2013, 12:47 PM
Last Post: Namir
  EMU71 to go71b--is there a way? Les Wright 12 3,607 06-25-2013, 07:08 AM
Last Post: Mike (Stgt)
  Update of Emu71 to v1.04 Christoph Giesselink 8 2,585 04-18-2013, 04:11 AM
Last Post: Mike (Stgt)
  Update of Emu71 to v1.03 Christoph Giesselink 6 2,214 02-24-2013, 09:12 PM
Last Post: Gerson W. Barbosa
  Update of Emu71/Win to v1.02 Christoph Giesselink 5 1,743 09-20-2012, 04:27 AM
Last Post: Mike (Stgt)
  How to: EMU71 on an Android Tablet Guenter Schink 56 14,105 06-15-2012, 08:50 AM
Last Post: Valentin Albillo
  Emu71 for Win v1.01 available Christoph Giesselink 3 1,511 02-01-2012, 10:48 AM
Last Post: Egan Ford
  HP 71B : How to input RPNLEX in EMU71 for Windows? Miguel Toro 3 1,460 12-04-2011, 02:57 PM
Last Post: Mike (Stgt)
  Praise for the 34S Egan Ford 23 5,270 09-27-2011, 02:17 PM
Last Post: Steve Simpkin

Forum Jump: