Alternative library and kernel for add-in development on fx-9860G and fx-CG50 under Linux.
Find a file
2016-07-25 09:04:22 +02:00
demo Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
doc Major update for bopti (gray, light still not tested). Reworked out gray engine. 2016-07-04 18:30:25 +02:00
include Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
src Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
.gitignore Initial commit. Includes interrupt handler, drivers for keyboard and screen, and parts of the drawing library. 2016-05-05 11:49:05 +02:00
gintdemo.g1a Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
libc.a Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
libgint.a Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
Makefile Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00
Makefile.old Re-structured files. Minor name changes. No code changed in this falsely huge commit. 2016-07-06 11:28:51 +02:00
README.md Re-structured files. Minor name changes. No code changed in this falsely huge commit. 2016-07-06 11:28:51 +02:00
TODO Reported TLB issues. Moved internal headers files, added rtc module and alloca. 2016-07-25 09:04:22 +02:00

gint project

gint (pronounce 'guin') is a low-level library for fx-9860G calculators. It provides the tools needed to develop programs under Linux using the gcc toolchain (sh3eb-elf).

By the way, gint is free software ; you may use it for any purpose, share it, modify it and share you changes. No credit of any kind is needed, though appreciated.

Interrupt handler

The interrupt handler is the lowest-level part of the library. It directly accesses the peripheral modules and performs keyboard analyzes, swaps screen buffers, etc.

gint does not allow user programs to use their own handlers. However, it is possible to map interrupt-driven events to user callbacks using the public API (which is not possible with the system's interrupt handler). This may be particularly useful for timers and RTC (the 16 Hz interrupt can be used as a basis for a physical engine).

Public Interface

gint's API provides access to keyboard, timers, clock and more. It does some powerful drawing and offers reliable multi-getkey, a gray engine, facilitates register access and implements a few standard functions.

Building and installing

The easiest way to build gint is simply to enter a terminal and execute make. This will build the following components :

  • libgint.a, the gint library
  • libc.a, a (very) few standard procedures
  • ginttest.g1a, a test application

The common clean, mrproper, and distclean rules will clean the directory.

Source organization

gint is made of modules. Each module has its own source directory (which is /src/module), and its associated header file in /include. A module folder contains three types of files :

  • Internal headers: shared only among the files of a module
  • Single-function source files: to avoid linking against the whole library, some functions have their own object files. Their names are the function names.
  • Other source files: contain multiple functions that always work together, or are lightweight enough not to be separated. Their names often begin with module_.