gint_strcat/README.md

63 lines
2.1 KiB
Markdown
Raw Normal View History

2016-05-05 12:12:42 +02:00
gint project
============
gint (pronounce 'guin') is a low-level library for fx-9860G calculators. It
2016-05-05 12:12:42 +02:00
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_`.