We've discussed the Casio fx9860g calculators here quite a bit and a couple of our regulars have re-purposed them with RPN. So I thought that I'd mention that the very nice "slim" version is on sale for $50 (half the usual price) here. J&R also sells these via Amazon for the same price.

-Katie

p.s. Apparently Casio is closing these out and so there might be even better deals to be had out there.

I've been meaning to check for quite a while now on what exactly the SDK for C development allows you to do because I'm curious, but I've been busy with more important things. Perhaps someone who has played with it can answer quickly if they have time. . .

1. Do the programs tie into the system in any way? (availiable as commands for graphing, in menus, etc) Or are they just run in the prgm icon area?

2. Do you have access to system calls and variables? Or are they essentially isolated, self-contained programs?

3. If just self contained, I assume you get your basic, C lib calls and not much else?

There are people here that can answer these question better than I, but.... From what I remember you are given a limited set of operating system calls that do not allow access to any of the application-level functions, just interfaces to the keyboard, screen, memory structures (you can read and modify the values of variables used by other Casio apps) and i/o. I don't know if it's possible to replace the operating system, the SDK is designed for you to write "apps". The operating system allows for one app at a time to run and presents all the apps on the "home" screen.

The calculator firmware itself is really a series of weekly interrelated apps (they share variable space and some allow sharing of the built-in math functions). There are several sites on the web where users post and share apps that they've written and Casio provides a handful of additional ones that you can download, beyond what's supplied when you purchase it. Casio also provides firmware updates, very complete manuals and the SDK on their site. They also have a simple data acquisition hardware module and a built-in app that controls that. (Actually this app is rather clever in that it generates a program in their BASIC-like language that the user can edit later to further customize.)

The PC program to talk to the calculator, for uploads/download and backups, can also serve as a editing tool for writing program off the calculator. It's must easier to write long programs this way. It does not have an emulator component, however.

For $50 it's a massive amount of technology in a wonderfully usable form factor. My only complaints are:

1) The programming language is missing some obvious functionality. They've only recently added strings but did a poor job of it slowing down the generally very fast interpreter and missing some critical functions.

further to Katie's description; yes, there appears only limited interface to casio's built in functionality. basically you get the screen & keyboard basics, even then it's a bit limited. For example, i wound up doing my own low-level keymatrix decoding (source of my version bugs) because i wanted to detect low level key down and up and also the shift and alpha keys. Further, for the screen, it's easier to hit the screen memory directly.

however, you might find interesting the way it works: Everything is an app - even the calculator itself. They share a limited amount of data (eg equations for the graphing etc.). So the graphing app is a separate app (ie separate binary). Presumably casio use a common set of libraries for all their apps (eg for calculation) and just link them to each app.

To be clear, im not a big fan of this "modular" approach. it works well when you're following an education curriculum where you're either doing complex numbers, matrices, graphing, but never combinations thereof.

However, there's one really cool aspect of this architecture; each app gets the whole machine! Since you can run only one app at a time, each app can use all the RAM (only 64k). Furthermore, the app executable runs directly from flash and is not copied into RAM nor is it position independent code. I think the Hitachi chip has a built-in simplified MMU that essentially supports a few base registers for code and data (rather than a page table). This approach is also used on the Microchip 32 bit PICs.

It's possible for apps to read and write "files" to flash, so you can save/load programs or data like this. The flash memory is quite generous 1.5MB (i think), so there's lots of space for apps and their code size is not super-critical.

[As an aside here, i think your 30b architecture has the same feature. ie can self-flash. i was toying with the idea of writing a repurposed programmable that saves (and runs) its program from a portion of set-aside flash rather than the built-in RAM. as you know, this might be a way to have much bigger programs than the 2-6k built in, whilst using the true RAM for workspace (arrays, strings etc.). would be interested in your view on this]

regarding the SDK, this is really quite good. casio give away a free version of the Hitachi Renesas tool chain (superH) which is a C++ compiler, IDE, debugger and simulator (on the PC). the C++ works well. i've had no problems with it, although i haven't tried giving it template hell :-)

so:
1. No, they're just new apps
2. only screen, keyboard, some IO
3. most of Clib, plus a few extra bits.
4. Yes, when you run you're the OS! when you "exit" it causes a trap which soft-resets the machine back to the main menu.

Just want to acknowledge Hugh's "Reckon" and Nigel's "CasioRPN" applications help make the fx9860g Slim a very nice RPN calculator for the end user. The Casio's hardware is lightning fast! The backlighting is a plus too.

I've been working with both Manfred Pfieffer's and Eddie Shore's RPN aplets for the 40GS, and find the biggest obstacle to be lack-of-speed. Then again, I realize they're written in HPBasic.

Of all my calculators the Casio Slim is the one that I nearly always have by my side: it has a great high-contrast display, a nice form factor, a reliable keyboard, useful built-in software, and if I lose it I can replace it. While Hugh is correct to point out that the HP-50g's hardware is faster, when used as a calculator (e.g., for evaluating definite integrals) the Casio wins hands down!