Casiomania

Demo for Casio fx-9860G graphical calculators

What is it?

   █████████                     ███                                                 ███           
  ███░░░░░███                   ░░░                                                 ░░░            
 ███     ░░░   ██████    █████  ████   ██████  █████████████    ██████   ████████   ████   ██████  
░███          ░░░░░███  ███░░  ░░███  ███░░███░░███░░███░░███  ░░░░░███ ░░███░░███ ░░███  ░░░░░███ 
░███           ███████ ░░█████  ░███ ░███ ░███ ░███ ░███ ░███   ███████  ░███ ░███  ░███   ███████ 
░░███     ███ ███░░███  ░░░░███ ░███ ░███ ░███ ░███ ░███ ░███  ███░░███  ░███ ░███  ░███  ███░░███ 
 ░░█████████ ░░████████ ██████  █████░░██████  █████░███ █████░░████████ ████ █████ █████░░████████
  ░░░░░░░░░   ░░░░░░░░ ░░░░░░  ░░░░░  ░░░░░░  ░░░░░ ░░░ ░░░░░  ░░░░░░░░ ░░░░ ░░░░░ ░░░░░  ░░░░░░░░ 

The first ever demoscene release by KittenLabs. Written in C, released at Revision 2026

Tech internals

Audio playback through UART/Serial link port

  • 19000Hz @ 8bit PCM, played using DMA-based PWM
  • real ProTracker/Amiga 4-channel .mod playback
  • fully async (interrupt-driven) playback, no main loop interaction required
  • UART being driven in synchronous mode (without start/stop bits) to avoid distortion

Grayscale support through timer/interrupt-driven multiplexing

  • 2-bit grayscale rendering

Overclocking through SH7305 CPG/PLL manipulation

  • CPU clock -> 29 MHz -> 236 MHz
  • Bus clock -> 29 MHz -> 118 MHz
  • Battery current increases from ~1mA -> 110mA

Hardware requirements

Hitachi SH-4 CPU required! Won’t work on SH-3 CPUs!
SH-4 CPUs can be identified by software version “2.02.xxx” (instead of “2.01.xxx”)

Tested/developed on a (modded) fx-9750GII.

Might work on:

  • fx-9860GII (only the SH-4 variants)
  • fx-9860GIIs
  • fx-9860G AU+ (australian model)
  • Graph 35+E/75+/75+E
  • Graph 35+/75/95 (only the SH-4 variants)

Graph 35+E have different displays (T6K11 rev. 2), untested, might glitch at start/crash.