mkg3a
Mkg3a is my contribution to the community effort to build a free and open-source toolchain targeting the Casio FX-CG line of calculators. Here’s the blog post introducing the project, and the feedback/announcements thread on Cemetech.
Code
I don’t usually make a point of packaging releases, since this is such a small project. The code is always available in the repository at GitLab: https://gitlab.com/taricorp/mkg3a
Releases are tagged in the repository, automatically-generated source archives corresponding with each tag are available via the GitLab UI: https://gitlab.com/taricorp/mkg3a/-/tags. You can also check out a specific branch with git, for example:
git clone --depth=1 --branch=0.5.0 https://gitlab.com/taricorp/mkg3a.git
Building
mkg3a is configured with cmake. For a basic build, the following should work:
$ git clone https://gitlab.com/taricorp/mkg3a.git
$ mkdir mkg3a/build
$ cd mkg3a/build
$ cmake ..
$ cmake --build .
# cmake --build . --target install
Specifying the install path at build-time is done via cmake (like --prefix=
with autotools):
$ cmake .. -DCMAKE_INSTALL_PREFIX=/usr
For other tasks, have a look at the CMake documentation, and consider using a CMake GUI such as ccmake
or cmake-gui
.
You’ll need libpng and zlib for default build. You can avoid that dependency
(and disable the PNG icon loader as a consequence) by setting CMake’s
USE_PNG
variable to OFF
. It’s useful to disable the PNG
support when building on Windows, since it’s a bit of effort to get those
libraries configured (I’ve written up some notes on building the
libraries and
telling CMake where to look for them).
On most linux systems, you can get suitable copies of libpng and zlib by installing whatever package your distribution
provides that includes the libpng development headers. On
Debian and its derivatives (Ubuntu, Mint, …) that should be libpng-dev
, RPM-based
distributions (RHEL, CentOS) seems to call it libpng-devel
, and on Arch it’s
included in the regular libpng
package.
## Usage
To do much of anything useful with mkg3a, you’ll want to have some compiled code for the Prizm. GCC (built to target SH3) and libfxcg are the primary tools you’ll need to do that. [more notes on building programs to come, hopefully].
The mkg3a README file includes some usage examples. Refer to those in lieu of any more detailed documentation here. Cemetech’s WikiPrizm may also be a useful resource.