|The fx-6000G running the ballistics game. Also visible is an original program sheet photocopied from the manual. [Click to enlarge]|
Along with its oversized sibling, the fx-7000G, the fx-6000G has the distinction of being the first graphing calculator to hit the market in the mid-80's, at least a year ahead of the competition. While the 7000G has a vertically extended display (96×64 pixels as opposed to 96×32), the two models are functionally identical. The 6000G's more compact size generally made it more appealing.
In 1986 (sigh) I was in my senior year at school, taking classes in calculus, physics, and advanced placement courses in chemistry and computer science. My credit card sized, solar-powered basic calculator didn't cut it anymore -- I needed a scientific, dammit! Off we trundled to the Casio dealer, and there I saw it on the shelf. They'd just gotten them in, and I had to have one!
Well, I walked out beaming with bleeding edge calculator technology in my hands. It wasn't a TI or an HP, but it was mine! The next day at school I couldn't resist doing the geek thing and flashed it about, garnering enthusiastic reactions like "oh my god, it's got everything!" I spent hours programming my 6000G, mostly during the boring classes (notably english lit). I took this baby with me absolutely everywhere; many a quantum leap in minimalistic software engineering even found its genesis on the old dunny! See the programs section below for the fruits of my labours.
The 6000G bristles with keys and appears to indeed have everything. Well, almost. Aside from programmability and graphing capabilities, it has more or less standard features such as statistics functions, linear regression, and base-n arithmetic (binary, hex, octal). What it lacks is I/O capability of any sort, so you can't save or print your programs. I guess that's not too tragic with 486 program steps. You have to make do with program sheets photocopied out of the manual to jot your stuff down. Memory is definitely an issue with the 6000G, and you'll be ripping your hair out trying to cram something fancy into those 486 steps. Incomprehensibly, all of Casio's first generation graphing calculators have the same pitiful memory size. A shame really, because that's the only major flaw with these models.
The programming model is formula-based, with special symbols or mnemonics for variable assignment, conditional branching, and loops. Casio used it on other calculators from that period, and it has the advantage of being compact yet expressive. In particular, it allows the entry of implicit multiplication (2x as opposed to 2*x), which saves program steps. Alphanumeric output as well as prompted input (without having to halt execution for entry!) are also possible. Typical for Casio is the storage of programs in 10 separate banks P0-P9, which can also be called as subroutines. A program entry mode showing four lines at a time (of one statement each) allows editing with cursor key navigation.
The 6000G's debugging capabilities are superb! If an error occurs during execution, you simply hit a cursor key and the 6000G switches to the entry mode and positions the cursor over the offending symbol for you to correct. Very cool! Why can't all programmables be this user friendly?
The graphics capabilities include function plotting with adjustable range as well as pixel plotting and line drawing (!) commands. With 486 steps it's pretty tough to get any decent graphics programming done, but then it's the very challenge that makes the 6000G and its siblings so fascinating! Once a function has been plotted, you can trace the XY coordinates (displayed at the bottom edge) with the cursor keys; howzat, huh? Another convenient feature is the ability to toggle between the text and graphics screens with the G↔A key, allowing you to recall the last plot at any time. Other features include visualisation of statistical data using bar graphs, line graphs, and normal distribution curves. All this is served up on an angled display, which is a nice touch. Later models had a flat profile, so it basically just boils down to personal taste.
A particularly noteworthy aspect that becomes apparent when comparing the 6000G to other early graphing calculators (e.g. the HP-28) is its speed: this is one fast calculator! On the downside, the combination of speed and dot matrix display also results in frequent battery depletion.
The fx-6000G was a groundbreaking calculator in its day, offering features which the competition lacked even when they entered the niche well over a year after its release. Apart from the scant memory, Casio did almost everything right when they designed the 6000G. That's because, despite its daunting appearance, the 6000G is fairly easy and intuitive to use. By comparison, HP's first graphing model, the substantially more powerful HP-28, is a drudge to operate.
I still love my 6000G and use it occasionally, still grudgingly feeding it batteries. Its appeal to me probably boils not so much down to its historical and technological significance, but rather the association with memories from those fond school days. Sentimentality is, after all, a part of retrocomputing. :^)
|Year of introduction||1986|
|Memory||486-6 program steps, 26-78 memories|
|Display||96×32 dot matrix LCD|
|Power Source||3× CR2032 3V|
|Verdict||The granddaddy of all graphing calculators!|
One of my first more or less ambitious programming exercises on my newly acquired fx-6000G in 1986 was a graphical plot of a projectile trajectory based on the stuff I learned in physics class that same year. Most of the code was developed during english lit class, which I absolutely loathed and found a total waste of time (an opinion I still maintain to this day, call me immature if you want). I put this time to good use by hacking away on my little toy hidden under the desk. That didn't escape my teacher's attention tho, and we were in perpetual conflict for the rest of the year. I almost flunked, but being a straight A student in nearly all other classes, I wasn't too concerned about my GPA (grade point average).
The exercise gradually developed into a game, something I vaguely recall seeing earlier somewhere, possibly on the Apple ][. In any case, the idea wasn't new. It began as a two player game with me and my mate Erik passing the calc to and fro under desk and taking turns shelling each other. Later it was modified to use a computerised opponent, but the algorithm was dodgy at best.
In the late 80's I ported the game to TurboPascal on the PC, added some bells and whistles (digitised sound!), and rewrote the algorithm for the computer opponent from scratch to deliver a precise solution for a bullseye shell velocity and firing angle. This solution was then modified by adding user-specified jitter to give the lowly human a chance.
Recently, twenty years after writing the original version (!), I began playing around with my fx-6000G again, then decided to port the modified PC version back to it -- how's that for cross-development? This time I made some considerable optimisations and actually managed to fill the entire memory to the last byte!
I've put the updated ballistics program with detailed notes online for the benefit of other fx-6000G users, though it should also run on Casio's other first generation graphing calculators. Enjoy!