Recently we’ve been working on a project called CP-Canvas. This is a project that allows you to emulate functions of the ClassPad. Although it’s in early development, we’ve already got touch and key inputs setup, and the beginning of the debug menu. Below is a screenshot of the debug menu.

Screenshot of CP-Canvas debug menu

Delving into the more technical side of things. We’ve been reverse engineering the ClassPad firmware using IDA, combined with a couple of tools running on the ClassPad itself. The first of these is a
Hex Editor developed by SnailMath, which allows us to view and modify the ClassPad’s memory. The second is a tool called TarrasK developed by TheRainbowPhoenix, providing a breakpoint manager and register dumping when the breakpoints are hit. In the image below, you can see the TarrasK window, with the ClassPad’s registers and memory after a breakpoint has been hit.

Screenshot of TarrasK

We plan for this emulator to be a way to test programs on the ClassPad without having to use the actual device. Some of the SDK functions have already ported over with an example program found in SnailMath’s repository replicated in the emulator. Further down the line, a debugger may be added, which will allow you to step through your program and see what’s going on. Below is an image of the test program in action.

Screenshot of SDK Test

If you would like to learn more about this project and other projects we’re working on, check out our GitHub page. We’re also on Discord. We also have a page, albeit somewhat outdated, here which provides an overview of some programs and other things we’ve made.