Author: Joe Horn. Written 18 Sept 1990 The following is a brief review of the 41CV Emulator Card for the HP 48SX. Note: I only had a buggy beta version to play with, and only had 24 hours to play with it, so this is sketchy. My biggest fear was that it would repeat the HP-71's 41 emulator's mistakes, but it doesn't. You CAN write new 41-code programs on the 48, and you CAN list out the programs 41-style. (The 71 couldn't do either of these.) On the 48, you merely type the 41 program into a string, and press the ->41 menu key, and it gets compiled into a Library Object for the Emulator to run. If you want to, you can also decompile it again by pressing ->TXT. You needn't do so in order to print out a listing, however; the Emulator contains the same printer commands that the 41 IR Module and IL Module contain. But programs needn't be typed in; you can "print" a listing by the 41's IR module, and the Emulator will capture it, automatically decide whether it's a program, data, or status info, and compile it accordingly. Or you can use the dumb INPRT program (on the Emulator card) to capture the listing and leave it as a string on the stack so that you can edit it. Although the printer functions are supported, only a few Xfunctions are supported (like SIZE? and PSIZE). There is a way to extend the Emulator's instruction set, so that things like REGSWAP and TIME could be added. No doubt a ToolKit of ready-to-use extensions will become available, as Bill Wickes did for his HP-71 41 Emulator. The user interface is a work of art. The entire stack plus lastx are displayed at all times, but you can toggle a flag to force it into single-line mode in case you REALLY want it to look just like the 41. The only 41 annunciator which isn't supported is BAT, but the 48 has its own anyway. The keyboard overlay looks frighteningly like the 41, but adds a few menus (rah, rah) so that you don't have to press "XEQ alpha BLAHBLAH alpha" as much as you need to on a real 41. There's even BEEP on shift 4! It even supports automatic XEQ for local labels, a handy feature they forgot to put into the 42S. I tried to port some of my programs from my trusty 41 to the 48, but none of them worked, because they all contain XROM calls, and the Emulator cannot understand those. In desperation, I turned to the Standard Pac Rom. "FIN" ported flawlessly and got the same results as the 41, but "BLACKJACK" ran differently. It seems that its random number generator produces a different sequence when it's run to 12 digits instead of only 10. This hints at an important difference: the 41 and the 48 have very different accuracy constraints. 41 software that depends on running up against the accuracy wall will fail to run on the Emulator. And if a program runs for many loops or chains many calculations together, the accumulated roundoff error could cause very different answers. My biggest disappointment was the Emulator's lack of support for the HP 42S. Even though the 42 was painstakingly designed to mimick the 41 in programming style (and even in internal codes), somebody made the mistake of changing many function names. For example, if you type XEQ "CHS" into a program, it changes to +/-, and FACT changes to N!. All very nice, until you try to print a listing to the 41 Emulator. It only knows the 41 commands, not the new 42 ones! [Note: See HP42S on this disk for 42->41 translation! -jkh-] A stroke of genius is the collection of 41-mode control commands which you can use in 48 RPL programs. You can set flags, SIZE, registers, and other stuff, without even entering 41 mode. It's reminiscent of the FORTHX and BASICX commands on the HP-71 which let you use FORTH commands inside BASIC programs, and vice versa. A combined effort of Hewlett Packard and Zengrange, the 41 Emulator is a must for those who have a ton of 41 software containing few or no XROM calls, and have no time to rewrite them all in 48 RPL. But for those who learn RPL and remember RPN, the Emulator would be little more than a conversation piece. -- Joseph K. Horn -- (714) 858-0920 [The opinions expressed above were my opinions when I wrote them but are not necessarily still my opinions by time you read them.]