Welcome to the Prizm Programming Portal! If you got here, it’s probably because you have some interest in programming your Casio fx-CG 10/20/50, or in its internals. If you have questions, or if you get lost in this Wiki, don’t let that interest vanish: say something on the Cemetech Prizm forums and we’ll do our best to help you. Similarly, if you want to contribute to this documentation, or if you have suggestions, you should also post to the forums in this topic.
Development Methods and Tools #
The Casio Prizm can be programmed using at least three different methods, which allow for creating programs with varying degrees of freedom and computing power. More information can be found on the aptly named article Development_Methods_and_Tools.
If you are interested in add-in development alone, please read on how to setup PrizmSDK and be aware that unless otherwise noted, information in this Wiki, especially the syscall names, are relative to the PrizmSDK and libfxcg.
Reference Guide #
- Technical Info - Documentation of the Prizm’s hardware and other system features.
- LuaZM_Reference - A budding guide to the LuaZM Lua interpreter for the Casio Prizm.
- BASIC Reference - Contains documentation on Prizm-Basic functions.
- Secret_Key_Combinations - Access the Test Mode, Diagnostic Mode, boot code menus, and more.
- Product_ID_Information - Know the meaning of the code on the sticker on the back.
Specific to add-in development:
- Addin_Usability_Guidelines - A list of guidelines to make your add-in software more user-friendly.
- Optimization_Tips - Tips on making your programs faster and more efficient.
- Useful_Routines - A list of useful routines that can be used in your programs.
Native OS reference #
- CASIOWIN - General information on the OS.
- G3A_File_Format - A description of the file format for add-ins.
- System Calls - Contains documentation of
functions for use in add-ins. See the calling convention
here.
- Syscalls∕Platform_Quirks - Various caveats of the system calls and the Prizm platform in general for programmers.
- Keycode_Reference - Relationship between the values returned by keyboard-reading syscalls and physical keys.
- File_System - Information on the main and storage memories.
- Timers - Information on the 10 software timers supported.
- Locale - Information on the basic
localization features of the OS.
- Multi-byte_strings - How some special characters are encoded.
- Fonts - Fonts included in the OS and characters supported by each.
- Setup - Details on the settings system used for SET UP (Shift+Menu) settings: trigonometric mode, complex numbers mode, input and display modes, etc.
- Processes - Information on the two-process architecture of the OS.
- Versions_and_versioning - OS, bootloader and official add-in versions, plus information on the versioning scheme.
- Bitmaps - Bitmaps contained in the OS -
icons, fonts, function key labels,
test/demo images, etc.
- FKey_Bitmaps - OS-provided labels for the function key actions. You should use these in your add-ins instead of your own where possible, to maintain coherence with the OS and save space.
- Error_handling - How the OS behaves in case of software and hardware error.
Tutorials #
Article creation is still being completed. Please discuss this section.
Intro to Prizm C Programming #
- PrizmSDK_Setup_Guide - Setting up the PrizmSDK
- Learning_the_Ropes - Learning how the SDK works and how to make projects
- Hello_World - Making your first Addin
- Printing_Text - Shows different methods of printing strings and numbers.
- Reading_Input - Getting user input
- File Access - Managing files in the RAM and ROM
- Popup windows - Shows how to use popup windows
- Advances GUIs - Shows how to make advanced user inferfaces
- Drawing Sprites - Drawing pictures and shapes
- Debugging_Crashes - Finding where your inevitable errors are.
Zeldaking/Ashbad Tutorials #
- Introduction - Getting resources for learning C and setting up the SDK
- The Basics - Learning how add-ins are made
Discussion Forums #
- Casio Prizm Development and Programming at Cemetech