A Python add-in with extra features, for fx-CG and fx-9860G-like.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mibi88 b664e0ab9c Proper python ram use 2 weeks ago
.github unix: Refactor mpconfigport.h and mpconfigvariant.h. 3 months ago
docs py/py.mk: Make user-C-module handling self-contained in py.mk. 2 months ago
drivers py/obj: Convert make_new into a mp_obj_type_t slot. 3 months ago
examples all: Use += rather than = everywhere for CFLAGS/LDFLAGS/LIBS. 2 months ago
extmod extmod/mbedtls: Remove brainpool curves from config. 2 months ago
lib lib/btstack: Update to v1.5.3. 2 months ago
logo all: Use the name MicroPython consistently in comments 5 years ago
mpy-cross extmod: Make extmod.mk self-contained. 2 months ago
ports Proper python ram use 2 weeks ago
py pe: debugging tools 4 weeks ago
shared pe: basic GUI setup 1 month ago
tests tests/extmod: Add test for sleep_ms value that overflows ticks. 2 months ago
tools extmod/extmod.mk: Make extmod.mk handle GIT_SUBMODULES. 2 months ago
.git-blame-ignore-revs top: Update .git-blame-ignore-revs for latest formatting commit. 7 months ago
.gitattributes gitattributes: Mark *.a files as binary. 4 years ago
.gitignore gitignore: Ignore macOS desktop metadata files. 2 years ago
.gitmodules lib/stm32lib: Update library to get L1 v1.10.3, and some other fixes. 2 months ago
.pre-commit-config.yaml tools: Add pre-commit support. 2 months ago
ACKNOWLEDGEMENTS ACKNOWLEDGEMENTS: Remove entry as requested by backer. 3 years ago
CODECONVENTIONS.md CODECONVENTIONS.md: Update pre-commit instructions. 2 months ago
CODEOFCONDUCT.md top: Add CODEOFCONDUCT.md document based on the PSF code of conduct. 3 years ago
CONTRIBUTING.md top: Update contribution and commit guide to include optional sign-off. 3 years ago
LICENSE drivers/cc3000: Remove CC3000 WiFi driver files. 3 months ago
README-MicroPython.md meta: move original README.md 1 month ago
README.md 1 more test. 2 weeks ago


PythonExtra - A community MicroPython for CASIO calculators

Original MicroPython README: README-MicroPython.md.

This is a MicroPython port for fx-CG 50, fx-9860G III and related CASIO calculators.

Build instructions

Requires the fxSDK. Go to ports/fxcg50 or ports/fx9860g3 and run make. If it doesn't build, first try to use the dev branches for fxSDK, gint, fxlibc and JustUI. Rebuilds don't always work especially when checking out other commits (maybe my fault), so try to delete build if you think that's related.

Most of the code is in ports/sh and is shared between the platforms.

TODO list

Bugs to fix:

  • Fix not world switching during filesystem accesses (very unstable)
  • Fix the console not garbage collecting its lines (enable and test the feature)
  • Fix not resetting the shell when importing a file from command-line
  • Fix current working directory not changing during a module import (for relative imports)

Python features:

  • Compare features with existing implementations and other brands
  • Get filesystem access (open etc) with the POSIX interface
  • Get a decent amount of RAM not just the fixed 32 kiB that's hardcoded so far


  • Better input system in the shell (don't use VT-100 escapes, then move cursor and handle history)
  • Add an option for fixed-width font which also sets $COLUMNS properly so that MicroPython paginates (requires better getenv/setenv support in fxlib)
  • Use unicode-fonts to provide Unicode support
    • Extend it with a fixed-width uf8x9 which maybe changes some glyphs (like i and l; the usual fixed-width unambiguous styles)
    • Try and provide a font smaller than 5x7 for more compact shell on mono
  • A decent keymap that can input all relevant characters into the shell

Test cases:

  • Chute tridimensionnelle (Working on G35+eII)
  • Bad Apple
  • Island of the Dead Kings
  • Synchro-Donjon
  • Flappy bird (Working on G35+eII)

Future wishes:

  • Build for fx-9860G II (requires manual filesystem support)
  • Lephe's secret ideas (complete previous list to unlock)