A89: TIGCCLIB 2.0 released!
[Prev][Next][Index][Thread]
A89: TIGCCLIB 2.0 released!
Hi!
After a long delay, TIGCCLIB 2.0 is finally released! This release is
really
a new step in TI programming. If you are sceptic, here is a list of a new
features:
- Starting from this release, TIGCCLIB is much more compatible with ANSI C
standard library. Nearly full implementation of stdio.h and stdlib.h is
included (41 new functions in stdio.h and 23 new functions in stdlib.h,
together with appropriate data structures and types). So, you can now use
a
lot of functions known from various C tutorials: printf, fopen, gets,
atoi,
qsort, bsearch, strtol...
- Usage of patches "inits", "longmul", "longdiv" and "gray" is now much
easier: instead of separate linking, it is enough to define some global
preprocessor symbols (like USE_LONGMUL_PATCH etc.).
- A directive SAVE_SCREEN is introduced, which allows automatically saving
and
restoring the content of the screen in "nostub" mode, without needness
for
calling LCD_save and LCD_restore manually.
- Bugfix: very serious bug which sometimes cause crash in programs which
use
floating point numbers is corrected (note that this bugfix was released
before, as a separate file called tcl15fix).
- A lot of new mathematical functions (mainly for manipulations with
symbolic
expressions, lists and matrices, and for algebra and calculus
applications),
and functions for "pretty printing" expressions are added in estack.h
header
file (82 new functions). The list of expressions tags is completed (more
than 500 tags), and the documentation about usage of expressions stack is
much updated.
- A new header file events.h is introduced, with 32 new functions for event
driving programming, and calculator mode settings. Now you can simulate
TIOS
system events in your programs, and hook into the operating system and
change its behavious partially (for example, you can redefine the
keyboard,
add new items in system menus, change behaviour of some commands, etc.).
But
note that these features require good knowledge of programming.
- A new header file sprites.h is introduced, with 2 new fast and simple
functions for sprite drawing (including masked sprites).
- A new header file textedit.h with 16 new functions for accessing the text
editor is introduced. As the text editor which is built-in into the TIOS
is
highly customizable, you can now write programs with high perfomance
editing
facilities.
- Four language extension macros TRY, ONERR, ENDTRY and PASS are added in
error.h header file, to allow error handling similarly like in TI-Basic
or
in modern programming languages like Delphi. Also, two new functions are
added in error.h, the documentation about it is updated, and some wrong
informations are corrected.
- A new header file flash.h is introduced, with 11 new functions for
low-level
access to the Flash ROM. 3 new functions for high-level access to the
Flash
ROM are added in vat.h header file.
- Some new data structures are added in vat.h header file, various infos
related to this header file are updated (especially about organization of
VAT table entries), and one small bug in it is corrected (HS_NULL was
wrongly defined).
- A new header file cert.h with 17 functions for working for certificate
files
and other memory-mapped files (not necessary related to certificates) is
introduced.
- 15 new functions for high-level accessing to the link port are added in
link.h header file. Also, some informations about link.h are corrected.
- A new header file rsa.h is introduced, with 8 new functions for working
with
very big integer numbers, message diggesting and RSA decryption.
- 4 new functions are added in args.h header file, which allow more
flexible
getting of the arguments passed to the program. The list of argument tags
is
completed.
- Two new header files limits.h and values.h are introduced. They contain
various platform-dependent constants (proposed by ANSI). This helps
porting
programs from other platforms.
- A new header file compat.h is introduced, which defines 18
pseudoconstants
(e.g. macros which look and act like constants). These pseudoconstants
have
different values on TI-89 and TI-92 Plus, so they can help making
compatibility between these two calculator models. Also some
pseudoconstants
have different values on AMS 1.xx and AMS 2.xx, so they can help solving
some minor incompatibilities between AMS 1.xx and AMS 2.xx during usage
of
some functions (although 99% of implemented functions are
AMS-independent).
- Two very useful global variables are added in wingraph.h header file.
Also,
some informations about this header file and graph.h header file are
updated
or corrected.
- 12 new functions are added in system.h header file, mainly for
manipulating
with queue structures, the cursor and the clipboard. Many informations
about
this header file are updated or corrected.
- Informations about kbd.h header file are much updated. A hint is added
about
how to avoid slow functions kbhit and ngetchx in high-perfomance keyboard
reading applications, without using very low-level functions like
_rowread.
- A new header file bascmd.h with 35 new functions is introduced. At the
moment, this header file is quite incomplete and a bit unconsistent. In
the
near future it will contain more than 150 new functions. This header file
contains functions which executes particular TI-Basic statements or
functions, so after completing this header file, nearly everything which
may
be done using just one TI-Basic statement/function would be possible
using
just one TIGCC function (but be aware: the performance will be like
during
executing of TI-Basic statement/function, so intensive usage of functions
from this header file is not recommended in high-perfomance
applications). I
started to develop this header file, but the shortage of my free time
forces
me to stop developing for a while. I don't want to prolongue releasing of
whole TIGCCLIB 2.0 only because this header file is not complete. Be
patient, I will continue developing it as soon as possible...
- 3 new functions are added in menus.h header file. A lot of informations
are
updated, especially about the exact organization of the menu structure
(this
info allows making menus with more levels of submenus).
- Function assert is improved, so now there is no any limitations about
usage
of this function in "nostub" mode.
- Function realloc (proposed by ANSI) is added in alloc.h header file (it
is
also defined in stdlib.h), and calloc is improved to generate smaller
code.
- Informations for assembly programmers are much updated (many people asked
me
about examples of using floats in ASM programs, so this info is added).
- More than 200 TIOS functions are no more "unknown", so they are moved out
of
unknown.h header file.
- The documentation generally and the Frequently Asked Questions list are
updated.
Cheers,
Zeljko Juric
Follow-Ups: