Prizm_Programming_Portal

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.
  • 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 #

  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 #