Basics about AFX programming
The only method Casio mentioned it's calculators to be programmed by the users is Casio Basic, a built in interpreter language. Over the years, lots of websites concerning Casio's calcs and Caso Basic games have grown up (including my own, cfx.pageofmarco.de), but who ever wrote a program in Casio Basic knows what a very slow and limitted language it is.
Of course Casio calculators natively can run programs in machine code only like all other computer systems too (in fact the CFX/AFX graphing calc's OS, all items of the main menu and the Basic interpreter are such programs), promising much more features than that Basic. That's why hackers allways looked for a method how to execute own machine code on their calcs. For CFX series, the only way to do so is to replace the ROM where operating system is stored by an own version with a new OS providing the feature of executung machine programs stored in RAM. It's Martin Poupe who discovered and the only one who ever did it.
AFX Add Ins
For AFX series this is way more easy, as they have 768KB flash memory reserved for operating system extensions called "Add Ins". These are mentioned to be application programs created by Casio that everyone can upload to his calc depending on own needs. For it Casio released the "Casio Add-In Installer" to upload .CFX files that you can get at the Casio website to your calc's flash.
It have been dscoshpe (Walter Hanau) and BradN (Brad Normand) who hacked the format of .CFX files and wrote CALiPSO Add-In Packager in 2002. Thank them we are able to write own Add Ins today at all!
Add Ins provide a much more powerfull way to program the calculator, in fact the most powerfull as they are compiled machine code programs that the calc's CPU executes directly. That means:
A collection of tons of cool Add In games of different genres (Action, RPG, Jump'n Run, Logic, Simulation) you can find at the UCF File Sharing. Add Ins provide that much features that it's even possible to make real 3D games running at a good speed. Examples for it are Roender's F-16 Falcon (3D Flight & combat simulation with wireframe/vector based graphics) or C@siomax's Starscape Episode I (a Wolfenstein (first 3D ego shooter for PC) like game with an awesome engine & real textures). I also made one : SkyRoads
- Add Ins of course are lots faster than any Casio Basic interpreter program ever could be. And note that the interpreter doesn't process a Bytecode (Bytecode interpreters work very effective), but is even slower while processing a "script".
Writing Add Ins we have way more possibilities/freedoms of programming as we can use all features that CPU, memory, peripheral hardware (Screen, keyboard, COM port, timer) and OS have, not only what that Basic interpreter provides us. For example we can do bit and bitfield manipulations, have lots KB of free mem that we can divide like we want (instead of 28 main variables, Lists and Matrizes only stored in floating point format), have greyscales and can do color emulation, write multiplayer games, use direct keyboard IO with multiple keys pressed at once, sound, timer interrupts and lots more.
Besides that, recently there's even another method of writing games that are widely superior to Basic programs, called "MLC" ("Multi-Platform Language for Calculators"). This is also an interpreter language, but has much more features then Casio Basic (such as bitmaps, sprites, grey scales, procedures, ...) and compiles programs to bytecode before executing/interpreting them - MLC is much faster thus.
Of course MLC is not that powerfull that Add Ins are, but has lots more power then built in Casio Basic, and facing Add Ins the benefit is On Calc - programming - you can make MLC games with the calc's program editor and there are even On Calc sprite editors available while you have to create Add Ins on a PC always.
Copyright (C) 2005 by Marco Kaufmann