Prizm Programming Portal

From WikiPrizm
Revision as of 14:51, 7 October 2021 by Dr-carlos (talk | contribs) (Minor rewording to include Casio fx-CG 50.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

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

Specific to add-in development:

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.
  • 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.
  • 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.
  • Stack - Information on the stacks used by the processes.
  • Heap - Information on the 128 KB heap.
  • 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.


Article creation is still being completed. Please discuss this section.

Intro to Prizm C Programming

  1. PrizmSDK Setup Guide - Setting up the PrizmSDK
  2. Learning the Ropes - Learning how the SDK works and how to make projects
  3. Hello World - Making your first Addin
  4. Printing Text - Shows different methods of printing strings and numbers.
  5. Reading Input - Getting user input
  6. File Access - Managing files in the RAM and ROM
  7. Popup windows - Shows how to use popup windows
  8. Advances GUIs - Shows how to make advanced user inferfaces
  9. Drawing Sprites - Drawing pictures and shapes

Zeldaking/Ashbad Tutorials

  1. Introduction - Getting resources for learning C and setting up the SDK
  2. The Basics - Learning how add-ins are made

Discussion Forums