03 December, 2016

Slightly less poor brother and a distant relative

It's been eight years

First, I must mention that much like this article states, I take a long time to write articles for the blog. This one took a particularly long time before I was happy with it.

In a previous post, I described a purchase I'd recently gained. At that time, I compared it to the fx-82MS and Canon F-804P. I won't be reiterating that here, as I've said what I needed to in that post. Instead, I'd like to describe another recent purchase, the Casio fx-9750GII. It's a small upgrade from the G+, having more memory (about 62,800 bytes) and a slightly reworked OS and menu screen. It additionally features nearly 2,900 functions instead of about 900 for the G+. Those weren't the main reason I bought the calculator though. They're nice, but I can do something with this calculator I couldn't do with the G+. I can connect it to the computer with just a USB cable and some Casio software. This means I can create programs inside the Casio interface on the computer without pecking my way through keys on the calculator keyboard. That speeds things up dramatically for me.

USB support has become ubiquitous among more powerful calculators such as the HP stable (HP-39Gii/40GS/50G and others) and Texas Instruments (TI-84 Plus, TI-89 Titanium), and the same is also true for the Casio fx-9750GII/9860GII and equivalents. That allows me to connect it to my computer without any weird expensive bits of kit such as the FA-122, which was an after-market purchase of another US $37.95 or thereabouts. I originally saw this cable cost far more ($139 in 2008 dollars), so I never purchased it. In addition, the FA122's a serial connection, useless for most modern computers without serial ports.

USB capability makes things far easier because most computers have USB ports these days. Of course you require software on the PC side to exchange data with the calculator, but that's downloadable from Casio. The only remaining issue is that the ports are usually USB 1.1 speed, not USB 3. Even considering that, transfer speeds are still considerably faster than the original 9,600 baud connection through the FA-122. I also can't say if the drivers will play nice with Windows 10, the new kid on the block.

Time to try it out

As you can imagine, I've been having a bit of a play. I've basically duplicated the Grocery program I was using on the G+ , and it seems to work well enough. All the features that were in the previous calculator are here, though they've been slightly tweaked and added to. I now have full lower-case support, and I even have common unit conversions! I noticed that screen writes happen quite a bit faster, this could be due to the fact the calculator uses a SuperH SH-4a instead of the SH-3.

The fx-9750GII and fx-9860GII each come in two versions, the earlier one (SH3) and the later version (SH4a) providing some improvements from the Casio Prizm range. However, prepare to be disappointed if you want all the features of a fx-9860GII in your fx-9750GII, because they're not here. There's no backlight, though this is not much of a loss for me as none of my other calculators have one either. There's no "pretty-print" feature with fraction bars, superscripted exponents and other things. Results are represented in decimal form (3.142857) instead of "Math" mode (22/7). For fraction marks, you have what fx-82MS uses (which looks a bit like a little right-angle bracket), and carets (^) for exponents. You also can't use compiled applications (known as add-ins), there is no spreadsheet, and no eActivity functionality. These issues aren't going to kill this calculator, but these are some of the reasons why Casio released this calculator for considerably less cost than its big brother.

One other feature I found missing from my calculator is the inability to back up the existing flash image to a file. If you want to upgrade the flash—and you can—you'll have to be prepared to lose what's there already. In earlier BIOS versions (not 2.04.xxxx) I could have backed up the flash image using a program called fxRemote, but it seems that Casio have now removed that ability, and the same issue also applies to the latest fx-9860GII's BIOS code. Casio no longer officially provide BIOS updates for the 9750GII, so if you decide you want to update the BIOS, you'll end up taking a chance. It's possible to upgrade the BIOS, though the 9750GII doesn't have any updates beyond 2.04. Some people that have attempted upgrading have ended up bricking their calculators, making the calculator almost useless in the process. I did stumble across the original version I had of the firmware for the fx9750GII, so I at least have a backup.

EDIT: it turns out that Casio made an update after all, to change some things around for support of "Exam mode". They basically traded off vector math (and possibly a couple of other things) for Exam mode, which locks the calculator down to a certain set of functions for a specified length of time to make sure nobody can cheat. I'm not entirely convinced this was a good thing, however, I'm not the one making the decisions higher up in the Education boards. So, the latest (to date for Sept 2017 at least) BIOS version seems to be 2.09 for the non-French versions, and a 2.05-something version for the French variants.

Firmware upgrade...

I decided I'd take a bit of a gamble and try to upgrade the BIOS so it runs a fx-9860GII's flash update. The instructions are relatively simple, all that's needed is the most recent version of a flash image for a fx-9860GII, a USB cable—preferably the one that comes with the calculator—and the fxRemote program. As there are actually two files I could have used, I had to get the version for the SH4a, and not the SH3. I found the relevant files, fired up fxRemote and nervously watched as figures scrolled up the screen. Finally the job was done, and I had extra functionality in my calculator after an initial hiccup. I now reckon this Casio stacks up better than it originally did against the HP-50G even though the HP most definitely still has the edge, and for a much cheaper price than I would have ordinarily paid even considering I bought the calculator second-hand.

I also reverted to the fx-9750GII's image, partly to see if it could be done—it worked perfectly okay. So I can go back and forth between versions, but I'll stick with the fx-9860GII's image, as it gets me more functionality. And I'll stick to the version that retains the vector math. I don't need to take this calculator to an exam, so I can decide what I want to have on the calculator.

Grocery Program

The fx-9750GII has also allowed me to improve the grocery program I was working on. It might seem counterintuitive to write a program to handle what most of us take for granted, using our four-bangers (nickname for simple four-function calculators) with memory. However, this program has a little more beef to it, as I can break down the total grocery bill into five broad categories. I can also show how much tax I'll be paying when I pay over my cash. That rate is alterable, of course. About the only thing I've had to worry about has been differences between the newer and the older calculators related to new keywords not present on the original G+. Thankfully those have been minor, and have mainly been because of how the FA-124 program tokenises and copies programs between the calculator and the computer.

I also added support for five temporary values (usually used for price-per-kg figures to be used later) also displayed on the same screen. As a result, the screen now looks a little different than I first described back in the original article. Due to the ease with which I can transfer programs, I can also upload the program to hosting sites, so my simple grocery program is now up on Casiopeia.net. I go into more detail in this article.

Forensic result

Like the 9750g+, the 9750gII also has a similar internal range of digits supported (15) and the forensic result for asin(acos(atan(tan(cos(sin(9)))))), the 9750gII comes up with 8.999999998, or 8.99999999759468 if we extend it out to the calculator's full internal range. That's not much different from the other calculators I tested back in my previous post. This calculation here (sin 60 - 0.866025403) * 1E10) gives us 7.84439, just like the 9750g+.

Concluding remarks

I think I did really well for the money I paid. I got a calculator that compared favourably against the previous generation. I gained the ability to download programs to the calculator and back up the calculator's data files to the computer, and I paid no more than I did for the previous calculator. A gamble paid off when I was successfully able to get the calculator to behave like its big brother the fx-9860GII, although I've yet to find out if there are any disadvantages aside from the missing light. There may be some unseen results I don't know about yet. Lastly, I have a reliable backup for when my previous calculator eventually dies, although I'm not expecting it to for quite some time.

I'm happy.

I did find one strange thing though—I went to register the calculator at the official Casio website, but I struck a problem. Where it wanted me to enter in serial numbers, and even told me where to find them, there's no serial numbers to be found on the back of this calculator. That's not very useful for me. I don't know whether this version of the calculator was ever released with serial numbers, but at least the one I have, has no numbers.

Extra storage

The fx-9860GII SD adds a SD card socket to the many things the calculator already supports. You can use the SD card to store files and add-ons, though to use them in the calculator you still have to copy them to the calculator memory, as the calculator won't execute programs directly from the SD card. Thankfully the calculator isn't limited to 2GB like the default HP-50G, support for cards up to 32GB is now present in the most recent BIOS images.

Casio Emulation

A free standalone binary was provided to emulate the original fx-9860G-SD, but you won't be able to upgrade it to the current SH-3 based BIOS, the emulator simply won't support that. The emulator also doesn't import add-ins, making it only usable for BASIC files (*.g1m) and the supplied addins (*.g1e). Additionally, you've got to source the emulator. If you want an emulator that covers the later model, you'll need to purchase a yearly subscription for the emulator directly from Casio. It's up to you to decide whether you think having the emulated version is worth the cost.

“But wait, there's more...”

Old line. I just had to use it. Anyhow, I also bought a Hewlett-Packard HP-50G a little while ago for a significant discount off the retail price. I haven't evaluated this calculator properly, because it's a complex beast for someone still used to Casio calculators. It does everything the fx-9860GII does, and far more. It's been compared favourably with a TI-89 Titanium, whereas the fx-9860GII is compared more against the TI-84+. Engineers have loved HP products for generations, and while the 50G doesn't share all the strengths of the HP-48GX and relatives, it brings strengths of its own to the HP collection.

  • For starters, it's faster due to the ARM CPU. It's normally clocked at 75MHz, but can be clocked higher for a resulting increase in battery consumption. It's still emulating a Saturn environment though, so you won't get a true 75MHz worth of performance, more a somewhat-three-to-ten-times improvement over the HP-48GX.
  • The screen is easier to read even though it's still greyscale, and the resolution has been slightly increased (131x80). It's certainly not colour, but it's not bad.
  • Like other modern calculators, it includes the ability to use USB to install applications.
  • It has a SD slot for increased storage space. I made sure I bought a 2GB card specifically for the calculator, because there is a 2GB limitation on the size of the SD card. The filer can access all the files, but doesn't report the size of the card properly if it is 2GB and not merely 1GB. The only way to get support for more recent cards up to 32Gb is to install newRPL, which is still being developed and isn't as featureful, though it is a heck of a lot faster. It's also considered very much alpha software.
  • It can communicate with some older generation HP calculators and peripherals over infrared, and even retains a serial connector.
  • It's the most powerful calculator in the HP stable except for the Prime as of 2015.
  • It includes a CAS (Computer Algebra System). This CAS disallows the calculator from being used on a few rare exams that disallow calculators with a CAS (or in some cases with graphing capability).
  • It uses 4 standard AAA batteries, instead of the 3 batteries that previous HP calculators used. This allows the calculator to last longer on a set of batteries.
  • If you're at the computer a lot, the calculator will even run fine plugged into the USB cable, though it simply doesn't use battery power while the USB cable's plugged in, nor will it charge the batteries.
  • Equation libraries previously provided externally now come standard with the calculator, so does a periodic table.
  • There's collectively 512k of memory available for calculations, helping out in large calculations. You can't create something that's much bigger than about 200k though as the memory space is divided between ports.
  • Sound! Yes, this calculator has a speaker, just like the HP-41CX. Don't ask for MP3, but you will get tones.
  • It claims 2,300 functions, but if you wish to create other things, you can happily synthesise more out of the existing ones, or simply write your own using UserRPL/SysRPL. Do read the Advanced User's Reference commonly referred to as the AUR. It describes just about any UserRPL command you can use.
  • The functions provided in RPL amount to a stack-based programming language with a lot of strengths, if you can get your head around RPL and working with a stack. It's been compared somewhat to FORTH, and is definitely not like BASIC though many keywords can be recognised from other programming languages.

That's just a sampling of the features this calculator has.

What about RPN?

Yes, the HP-50G still has RPN (in the form of RPL), and indeed relies on it for the CAS mode. However, HP included an Algebraic mode for those people who just can't stand to be without it, and for whom RPN makes about as much sense as a fish riding a bicycle. This isn't the most intuitive mode to use, and it's a reasonable assumption that to use this calculator well, you'll need to learn RPL. Considering that RPN has a fixed stack size (four or eight elements), RPL is a welcome boost, as the stack size is only limited by available memory.

Thankfully, the calculator provides menus to navigate the available commands, and provides a complete catalogue of functions just as earlier RPL machines (28S, 41C etc) did. The available manuals also describe these commands if you need to look up how to use them. You may also need to learn UserRPL or SysRPL to create functions or programs that aren't already part of the 2,300 functions of the calculator. A lot of that information is in the Advanced User Reference, or AUR. An introduction to most of the common commands is in the User Manual, and the User Guide expands upon some of that information.

The manuals—regrettably for HP—reportedly aren't up to the quality of the manuals provided with the HP-48GX family, or even the HP-49. However, it will bring you up to speed if you're good at reading. There are forums where HP owners/collectors gather to discuss various models and programs running on them, and are considerably busier than the English casiopeia forums where Casio owners can gather. If you feel like a more complete picture, earlier manuals for the HP-48GX would be considered the pinnacle of reference manuals.

Because the main core of the calculator executes on a Saturn code emulator this opens the calculator up to reusing code from earlier platforms, as much of it will also work on the HP-50G perhaps with slight modifications. People can also code applications in the native ARM instruction set if they need the full speed of the CPU. However, we're still comparing apples to ocelots when saying one's better than the other. If you can live with waiting a second or two for your results, then running the code on the Saturn emulation won't make much of an effect and will save you from having to recode. But if you need speed, running code natively on the ARM platform may well reap rewards especially if your problem is a good fit for the ARM platform. You will have to source a GCC toolkit for HP's ARM CPU, and install a helper application so ARM code will run natively. Or, you could possibly use the tools provided on the calculator already, but you most certainly have to know what you're doing. This is after all a calculator aimed somewhat at the professional.

HP-50G storage and file access

Of course, there's the small issue of getting stuff onto and off the calculator from the computer. Thankfully, the HP makes this relatively easy, but it's easier if you happen to have a SD card reader installed in your computer, that way you can simply put files onto the SD card, remove the card from the computer, and insert it into the HP-50G. The file browser on the HP-50G can then be used to source the file you need off the SD card. I've installed several useful applications this way.

There's one wrinkle though. The HP-50G's filer can create subdirectories within the HOME hierarchy, but can't create subdirectories anywhere else such as the SD card, even though it can access subdirectories on the SD card. This is a limitation of the HP-50G, so you'd have to resort to using the computer instead. Under Linux, copying files to and from the SD card works much like a FAT floppy disk, don't forget to umount the SD card before putting it back into the HP-50G. One other limitation with the HP-50G is the lack of support for SD cards larger than 2Gb unless you install the newRPL environment mentioned earlier. If you don't have either a SD card reader or a SD card, then you're stuck with using a USB cable and HP's Connection Kit software. Accessing HP-50G files from Linux can be done using ckermit (the equivalent of the HP Connection Kit), as long as you've got the HP-50G connected to the computer through the USB cable. Don't forget to start the Kermit server on the calculator when accessing it with Linux, not the Xmodem server that the HP Connect software will ask you to use.

One other thing I discovered with applications on the SD card is that I can execute programs from the SD card, but they will get copied into the main memory first, and removed from the main memory when the program finishes.

HP-50G emulation

Like the Casio fx-9860 calculator, there's also a Windows emulator for the HP-50G. It can be found if you look really hard for it. The BIOS version string shows "HP50-C Revision 2.16", instead of the 2.15 revision currently available in real HP-50G calculators. It does have one puzzling omission—there's no support for libraries beyond the three supplied in the BIOS image. You cannot write to Port 2 whatsoever. I also can't find any obvious support for Port 3 (the SD card folder). Other Windows-based emulators supporting the Saturn emulation utilise the EMU48 emulator made by Christoph Gie├čelink, which doesn't allow you to emulate native ARM binaries, but is fine for everything that's meant to run on the Saturn-based processor. Again, there's no obvious support for a virtual (or real) SD card. I'm not sure what the latest version of EMU48 is, though the last time I edited this article, 1.59 had just been uploaded and had slightly reworked the Saturn emulation environment even though the version still doesn't support running ARM code directly.

Linux is also lucky enough to have a HP-49G+/50G emulator called x49gp, which does support the native ARM instruction set. It also supports the installation and execution of further libraries, and will work happily with a virtual SD file. However, the one lack of x49gp is that it won't connect to existing HP-50G calculators connected to the computer through the USB cable. The only way to get files into and out of the x49gp image is to use the simulated SD card, which is a file you can mount using the loopback device. Just don't have the filesystem mounted while x49gp is accessing it. x49gp has been around a while, and doesn't appear to be recently updated.


I don't see me buying any further calculators unless the fx9750s and the HP-50G all die, and I'm happy with what I bought. There's no doubt that I'm never going to use them to their full capability, but then these days, who does? I am relatively happy with what I'm using the fx9750GII for, and I love the feel of the keys on the HP-50G. It sounds crazy, but they remind me of the very first HP-34C I had, more than 20 years ago. I'm probably never going to buy the HP Prime, as the only real advantage I would have gained would have been the speed of graphing, which I never used anyhow. And I don't need colour for anything else I've been using the calculator for. I don't even need the touchscreen!

And now, I can finally post this article, vaguely piqued to know I haven't covered everything possible, and somewhat annoyed it's taken this long to post it. But, for what it's worth, I'm done. Again.