Difference between revisions of "Prizm Programming Portal"

From WikiPrizm
Jump to navigationJump to search
m (Wrong name)
(Major change of the introductory text, hopefully making it better for new developers (and not just add-in developers).)
 
(23 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== SDKs and Tools ==
+
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, 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 [http://www.cemetech.net/forum/viewforum.php?f=68 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 in the forums, preferably in [http://www.cemetech.net/forum/viewtopic.php?t=8022 this topic].
* PrizmSDK: [http://www.cemetech.net/news.php?id=486 PrizmSDK v0.3]
+
 
 +
== 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 [[PrizmSDK_Setup_Guide|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 ==
 
== Reference Guide ==
* [[Addin Usability Guidelines]] - A list of guidelines to make your addins more user-friendly.
+
* [[Technical Info]] - Documentation of the Prizm's hardware and other system features.
* [[:Category:Syscalls|System Calls]] - Contains documentation of functions for use in add-ins
+
* [[LuaZM Reference]] - A budding guide to the LuaZM Lua interpreter for the Casio Prizm.
** ''(Deprecated)'' [[Syscall Reference|Old System Calls Reference]] may contain documentation that has not been updated recently.
+
* [[BASIC Reference]] - Contains documentation on Prizm-Basic functions.
* [[Keycode Reference]] -  
+
* [[Secret Key Combinations]] - Access the Test Mode, Diagnostic Mode, boot code menus, and more.
* [[BASIC Reference]] - Contains documentation of Prizm-Basic functions
+
* [[Product ID Information]] - Know the meaning of the code on the sticker on the back.
* [[Useful Routines]] - A list of useful routines that can be used in your programs
+
'''Specific to add-in development:'''
* [[Technical Info]] - Documentation of the Prizm's hardware and other system features
+
* [[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.
 +
* [[:Category:Syscalls|System Calls]] - Contains documentation of functions for use in add-ins. See the calling convention [[Syscalls|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.
 +
* [[Stack]] - Information on the stacks used by the processes.
 +
* [[Heap]] - Information on the 128 KB heap.
 +
* [[Versions and versioning]] - OS, [[CASIOABS|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 ==
 
== Tutorials ==
 
''Article creation is still being completed.  Please discuss this section.''
 
''Article creation is still being completed.  Please discuss this section.''
 +
 +
=== Intro to Prizm C Programming ===
 
# [[PrizmSDK Setup Guide]] - Setting up the PrizmSDK
 
# [[PrizmSDK Setup Guide]] - Setting up the PrizmSDK
 
# [[Learning the Ropes]] - Learning how the SDK works and how to make projects
 
# [[Learning the Ropes]] - Learning how the SDK works and how to make projects
Line 24: Line 52:
 
* [[Debugging Crashes]] - Finding where your inevitable errors are.
 
* [[Debugging Crashes]] - Finding where your inevitable errors are.
  
Zeldaking/Ashbad Tutorials:
+
=== Zeldaking/Ashbad Tutorials ===
 
# [[Zeldaking Tutorial 1|Introduction]] - Getting resources for learning C and setting up the SDK
 
# [[Zeldaking Tutorial 1|Introduction]] - Getting resources for learning C and setting up the SDK
 
# [[Zeldaking Tutorial 2|The Basics]] - Learning how add-ins are made
 
# [[Zeldaking Tutorial 2|The Basics]] - Learning how add-ins are made
 +
 +
== Discussion Forums ==
 +
* [http://www.cemetech.net/forum/viewforum.php?f=68 Casio Prizm Development and Programming] at Cemetech

Latest revision as of 13:47, 11 February 2015

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, 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 in the forums, preferably 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.

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