history.hss 44 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616
  1. [Main]
  2. Title=History of the Library
  3. [Top]
  4. <B>Release 2.72 (27 VI 2009.) - GCC4TI</B>
  5. <UL>
  6. <LI>Added: Some contributions to <A HREF="$$LINK(bascmd.h/)">bascmd.h</A>, <A HREF="$$LINK(basop.h/)">basop.h</A>, <A HREF="$$LINK(estack.h/)">estack.h</A> and other files.</LI>
  7. <LI>Bugfix: Several minor documentation mistakes fixed.</LI>
  8. <LI>Updated: Removed the essentially unused shrnklib support from pstarter.</LI>
  9. <LI>Updated: Optimized the ttunpack-fast code by applying the same calling convention changes as those applied in the ttunpack code (saves about 34 bytes, i.e. > 2%).</LI>
  10. <LI>Updated: Optimized the SAVE_SCREEN startup code (Martial Demolins).</LI>
  11. <LI>Updated: Optimized the internal F-Line emulator setup & cleanup code (Martial Demolins, Lionel Debroux).</LI>
  12. <LI>Updated: Optimized the VTI detection in __hw_version (Lionel Debroux).</LI>
  13. <LI>Updated: Optimized _rowread (Martial Demolins).</LI>
  14. <LI>Updated: Optimized OSVFreeTimer & OSVRegisterTimer (Martial Demolins, Lionel Debroux).</LI>
  15. <LI>Updated: Optimized Sprite8, Sprite16 & Sprite32 while adding support for the SPRT_RPLC mode (Joey Adams, Lionel Debroux).</LI>
  16. </UL>
  17. <B>Release 2.71 (3. I 2009.) - GCC4TI</B>
  18. <UL>
  19. <LI>Bugfix: Removed obsolete (wrong for current AMS) definition of doorsos::OSOnBreak which conflicts with the ROM_CALL.</LI>
  20. <LI>Bugfix: Added missing format attribute from sprintf in printf_xy.</LI>
  21. <LI>Bugfix: Set CESI and ESI as needed by the callback types using them.</LI>
  22. <LI>Bugfix: Fixed sign comparison warning in _keytest_optimized with OPTIMIZE_CALC_CONSTS.</LI>
  23. <LI>Bugfix: Fixed atan2 prototype.</LI>
  24. <LI>Bugfix: Fixed typo in __fscanf_unget (move.l -> move.w).</LI>
  25. <LI>Updated: In pstarter, moved handles in front of program name so the program name can be changed to a name with odd length.</LI>
  26. <LI>Bugfix: Added missing earlyclobbers for ldiv, reported by Mike Kennedy.</LI>
  27. <LI>Bugfix: Fixed reference to nonexistent flag FO_SKIP_TWINS (should be FO_RETURN_TWINS, reported by "hypersonic" Peter Fernandes).</LI>
  28. <LI>Added (TIGCC, GCC4TI): C99 standard header stdint.h.</LI>
  29. <LI>Added (GCC4TI): A subset of C99 standard header inttypes.h.</LI>
  30. <LI>Bugfix (GCC4TI): Made it easy to move HSF files around, without having to rewrite a set of tools right now, by adding consistent explicit references to headers where they lack.</LI>
  31. </UL>
  32. <B>Release 2.7 (31. X 2006.) - TIGCC</B>
  33. <UL>
  34. <LI>Added: Contributions to <A HREF="$$LINK(dialogs.h/)">dialogs.h</A>, <A HREF="$$LINK(files.h/)">files.h</A> (new), <A HREF="$$LINK(graphing.h/)">graphing.h</A> (new), and other files.</LI>
  35. <LI>Bugfix: Several minor documentation mistakes fixed.</LI>
  36. <LI>Updated: <A HREF="$$LINK(gray.h/GrayDBufToggleSync)">GrayDBufToggleSync</A> now works properly on HW1.</LI>
  37. <LI>Bugfix: Fixed <CODE>%[</CODE> conversion in <A HREF="$$LINK(stdio.h/scanf)">scanf</A> family routines.</LI>
  38. <LI>Added: A few new examples contributed by Jocelyn Berrendonner, Sébastien Leurent and Lionel Debroux.</LI>
  39. <LI>Bugfix: Fixed a <A HREF="$$LINK(stdio.h/fputc)">fputc</A> bug with large (>65390 bytes) files.</LI>
  40. <LI>Added: Support for GCC 4.0 (legacy GCC 3 is no longer supported by TIGCCLIB)</LI>
  41. <LI>Added: <A HREF="$$LINK(peekpoke.h/poke_bchg)">poke_bchg</A> and
  42. <A HREF="$$LINK(peekpoke.h/pokeIO_bchg)">pokeIO_bchg</A> macros</LI>
  43. <LI>Bugfix: Fixed support for external data variables using Fargo-style compressed relocs</LI>
  44. <LI>Added: Support for Mlink-format relocs</LI>
  45. <LI>Updated: Grayscale routine size-optimized by Lionel Debroux, Jesse Frey and Martial Demolins.</LI>
  46. <LI>Bugfix: Added <CODE>const</CODE> for the sprite data in the sprite function prototypes.</LI>
  47. <LI>Bugfix: Fixed a bug in in-use bit support affecting PedroM versions prior to 0.81.</LI>
  48. <LI>Updated: Merged an optimization to the in-use bit setting code from the <CODE>pstarter</CODE>.</LI>
  49. <LI>Bugfix: Fixed calling <A HREF="$$LINK(gray.h/GrayOn)">GrayOn</A> twice not working (despite the documentation saying it works).</LI>
  50. <LI>Bugfix: Fixed <A HREF="$$LINK(link.h/LIO_CTX)">LIO_CTX</A> structure (<CODE>VarSize</CODE> is an <CODE>unsigned long</CODE>, not an <CODE>unsigned short</CODE>).</LI>
  51. <LI>Bugfix: Fixed an unoptimizable <CODE>jsr</CODE> into a <CODE>jbsr</CODE> in trampoline offset computation.</LI>
  52. <LI>Bugfix: Fixed the formulas (wrong left side) in the documentation of <CODE>catanh</CODE> and <CODE>ccos</CODE>.</LI>
  53. <LI>Updated: Optimized the address hack for <CODE>OSFastArrows</CODE>.</LI>
  54. </UL>
  55. <B>Release 2.6 (24. X 2004.)</B>
  56. <UL>
  57. <LI>Added: Many new <A HREF="$$INFOLINK(httigcc/advanced)">optimization definitions</A>.</LI>
  58. <LI>Added: An implementation of <A HREF="$$LINK(stdio.h/scanf)">scanf</A>
  59. and related functions.</LI>
  60. <LI>Added: Support for <A HREF="$$INFOLINK(httigcc/comment)">program comments</A>.</LI>
  61. <LI>Added: Support for <A HREF="$$INFOLINK(httigcc/incompat)">incompatibility flags</A>.</LI>
  62. <LI>Added: Support for <A HREF="$$INFOLINK(httigcc/advanced_unofficial_support)">unofficial operating systems</A>.</LI>
  63. <LI>Added: A lot of startup code to handle BSS sections, constructors, etc.</LI>
  64. <LI>Added: Automatic setting of the in-use bit.</LI>
  65. <LI>Added: References between functions in the documentation.</LI>
  66. <LI>Updated: Library functions coded in assembly now take register parameters.</LI>
  67. <LI>Updated: Internal F-Line emulator is now mostly compliant with the AMS.</LI>
  68. <LI>Added: Contributions to <A HREF="$$LINK(intr.h/)">intr.h</A>, <A HREF="$$LINK(estack.h/)">estack.h</A>, and other files.</LI>
  69. </UL>
  70. <B>Release 2.5 SP4 (24. I 2003.)</B>
  71. <UL>
  72. <LI>Bugfix: Fixed bug in
  73. <CODE><A HREF="$$INFOLINK(htretval/retval)">ENABLE_ERROR_RETURN</A></CODE>
  74. with <CODE><A HREF="$$INFOLINK(httigcc/minams)">MIN_AMS</A></CODE>
  75. values of 200 or higher.</LI>
  76. <LI>Bugfix: Removed the rejection of a minimum AMS version of 2.07.</LI>
  77. </UL>
  78. <B>Release 2.5 SP3 (13. I 2003.)</B>
  79. <UL>
  80. <LI>Bugfix: Incorporated a fix for <A HREF="$$LINK(stdio.h/fclose)">fclose</A>.</LI>
  81. </UL>
  82. <B>Release 2.5 SP2 (12. I 2003.)</B>
  83. <UL>
  84. <LI>Bugfix: Important bugfixes for <A HREF="$$LINK(stdio.h/fopen)">fopen</A>,
  85. <A HREF="$$LINK(stdio.h/fread)">fread</A> and
  86. <A HREF="$$LINK(stdio.h/fwrite)">fwrite</A>.</LI>
  87. <LI>Bugfix: Changed <A HREF="$$LINK(default.h/import_binary)">import_binary</A> to
  88. export the symbol, and changed the IDE to make it work with it.</LI>
  89. </UL>
  90. <B>Release 2.5 SP1 (30. XII 2002.)</B>
  91. <UL>
  92. <LI>Bugfix: Fixed <CODE><A HREF="$$INFOLINK(httigcc/advanced_fileinuse)">SET_FILE_IN_USE_BIT</A></CODE>.</LI>
  93. <LI>Bugfix: Fixed the prototype of <A HREF="$$LINK(rsa.h/MD5Update)">MD5Update</A>.</LI>
  94. </UL>
  95. <B>Release 2.5 (21. XII 2002.)</B>
  96. <UL>
  97. <LI>Updated: Greatly changed the structure of the whole library, making it cleaner and easier to read.</LI>
  98. <LI>Updated: Made some changes to support the new <B>'-mregparm'</B> switch/option.</LI>
  99. <LI>Added: Implemented <A HREF="$$INFOLINK(httigcc/advanced_flinerom)">F-Line ROM Calls</A>.</LI>
  100. <LI>Added: Added beta version information to <A HREF="$$LINK(version.h/)">version.h</A>.</LI>
  101. <LI>Added: Implemented checking for a minimum <A HREF="$$INFOLINK(httigcc/minams)">AMS Version</A>.</LI>
  102. <LI>Added: Added types such as <A HREF="$$LINK(estack.h/SYM_STR)">SYM_STR</A> to differentiate between different uses of similar constructs.</LI>
  103. <LI>Added: Added the <A HREF="$$LINK(estack.h/ESTACK)">ESTACK</A> macro.</LI>
  104. <LI>Added: Added a <A HREF="$$LINK(intr.h/TRAP)">TRAP</A> macro which acts like <A HREF="$$LINK(intr.h/AUTO_INT)">AUTO_INT</A>.</LI>
  105. <LI>Added: Added bitwise functions to <A HREF="$$LINK(peekpoke.h/)">peekpoke.h</A>.</LI>
  106. <LI>Added: Added a lot of new functions to <A HREF="$$LINK(unknown.h/)">unknown.h</A>.</LI>
  107. <LI>Added: Started documenting more functions from <A HREF="$$LINK(unknown.h/)">unknown.h</A>,
  108. especially the high-level functions <A HREF="$$LINK(vat.h/VarRecall)">VarRecall</A> and <A HREF="$$LINK(vat.h/VarStore)">VarStore</A>.</LI>
  109. <LI>Updated: Made <A HREF="$$LINK(kbd.h/_rowread)">_rowread</A> a library function.</LI>
  110. <LI>Added: Added the <A HREF="$$LINK(kbd.h/_rowread_inverted)">_rowread_inverted</A>,
  111. <A HREF="$$LINK(kbd.h/_rowread_internal)">_rowread_internal</A>,
  112. <A HREF="$$LINK(kbd.h/_keytest)">_keytest</A>, and
  113. <A HREF="$$LINK(kbd.h/_keytest_optimized)">_keytest_optimized</A> functions.</LI>
  114. <LI>Added: Added missing <A HREF="$$LINK(intr.h/IntVecs)">interrupt vectors</A>.</LI>
  115. <LI>Updated: Integrated <A HREF="mailto:Wazabbe@flashmail.com">Jocelyn Berrendonner</A>'s
  116. vast updates to <A HREF="$$LINK(menus.h/)">menus.h</A>.</LI>
  117. <LI>Added: Implemented <A HREF="$$INFOLINK(httigcc/advanced_calcdetect)">calculator detection</A> at startup.</LI>
  118. <LI>Added: Implemented <A HREF="$$LINK(error.h/TRY)">TRY</A>...<A HREF="$$LINK(error.h/FINALLY)">FINALLY</A>...<A HREF="$$LINK(error.h/ENDFINAL)">ENDFINAL</A> blocks,
  119. and added appropriate functions to <A HREF="$$LINK(alloc.h/)">alloc.h</A>.</LI>
  120. <LI>Added: Implemented <A HREF="$$INFOLINK(htretval/reterr)">passing errors on to the AMS</A>, added default <A HREF="$$LINK(error.h/ErrorCodes)">error codes</A>,
  121. and implemented <A HREF="$$LINK(error.h/ER_throw)">ER_throw</A>.</LI>
  122. <LI>Added: Implemented <A HREF="$$INFOLINK(htdll)">nostub libraries</A>.</LI>
  123. <LI>Added: Finished <A HREF="$$LINK(bascmd.h/)">bascmd.h</A>, added <A HREF="$$LINK(basfunc.h/)">basfunc.h</A> and <A HREF="$$LINK(basop.h/)">basop.h</A> without further documentation.</LI>
  124. <LI>Added: Added a <A HREF="$$LINK(homescr.h/)">homescr.h</A> header file for Home Screen manipulation.</LI>
  125. <LI>Added: Integrated a lot of new functions and updates contributed by other people (see <A HREF="$$INFOLINK(info/credits)">Credits</A>),
  126. including updates to <A HREF="$$LINK(system.h/)">system.h</A>, <A HREF="$$LINK(statline.h/)">statline.h</A>, <A HREF="$$LINK(stdio.h/)">stdio.h</A>, and <A HREF="$$LINK(string.h/)">string.h</A>.</LI>
  127. <LI>Added: Added a new <CODE><A HREF="$$INFOLINK(httigcc/advanced_ghostspace)">EXECUTE_IN_GHOST_SPACE</A></CODE>
  128. directive, replacing the <A HREF="$$LINK(system.h/enter_ghost_space)">enter_ghost_space</A> function.</LI>
  129. <LI>Updated: Included updated grayscale support from Thomas Nussbaumer, adding
  130. <A HREF="$$LINK(gray.h/GraySetInt1Handler)">GraySetInt1Handler</A>,
  131. <A HREF="$$LINK(gray.h/GrayGetInt1Handler)">GrayGetInt1Handler</A>,
  132. and double-buffering functions.</LI>
  133. <LI>Added: Added a <A HREF="$$LINK(stddef.h/)">stddef.h</A> header file.</LI>
  134. <LI>Added: Added <A HREF="$$LINK(default.h/import_binary)">import_binary</A> macro.</LI>
  135. <LI>Added: Added a <CODE><A HREF="$$INFOLINK(httigcc/advanced_fileinuse)">SET_FILE_IN_USE_BIT</A></CODE> directive.</LI>
  136. </UL>
  137. <B>Release 2.41 (20. I 2002.)</B>
  138. <UL>
  139. <LI>Updated: Made some changes that will hopefully enable support for the new
  140. V200 calculator. You can define <CODE>USE_V200</CODE> to activate this.</LI>
  141. <LI>Added: A new file <A HREF="$$LINK(version.h/)">version.h</A> has been added to the
  142. library.</LI>
  143. <LI>Updated: Updated <A HREF="$$LINK(stdio.h/fopen)">fopen</A> and <A HREF="$$LINK(stdio.h/fclose)">fclose</A>
  144. with new versions by <A HREF="mailto:gforce@calc.org">Greg Dietsche</A>.</LI>
  145. </UL>
  146. <B>Release 2.4 SP2 (27. XII 2001.)</B>
  147. <UL>
  148. <LI>Updated: The patch code has been cleaned up.</LI>
  149. <LI>Updated: exit and atexit support have been reimplemented.</LI>
  150. <LI>Added: A routine for 'long long' multiplication by Kevin Kofler has been integrated.</LI>
  151. </UL>
  152. <B>Release 2.4 SP1 (1. V 2001.)</B>
  153. <UL>
  154. <LI>Bugfix: exit and atexit support have been fixed.</LI>
  155. <LI>A new directive, <CODE>NO_EXIT_SUPPORT</CODE>, has been added to optimize the program.</LI>
  156. </UL>
  157. <B>Release 2.4 (24. III 2001.)</B>
  158. <UL>
  159. <LI>Bugfix: Implemented variable-type arguments for pointers to short and long integers.
  160. This prevents warnings if you pass an int pointer to a short pointer argument, and
  161. fixes the problems introduced in release 2.31.</LI>
  162. <LI>A standard library file has been added to work with multiple files.</LI>
  163. <LI>New flickerless grayscale support implemented by
  164. <A HREF="mailto:Thomas.Nussbaumer@gmx.net">Thomas Nussbaumer</A> has been added.</LI>
  165. <LI><A HREF="$$LINK(gray.h/GrayMode)">GrayMode</A> has been replaced by
  166. <A HREF="$$LINK(gray.h/GrayOn)">GrayOn</A> and <A HREF="$$LINK(gray.h/GrayOff)">GrayOff</A>.</LI>
  167. </UL>
  168. <B>Release 2.31 (24. XII 2000.)</B>
  169. <UL>
  170. <LI>Bugfix: Casting floats to integers and automatic trunctation floating point values now
  171. works correctly. In TIGCCLIB 2.3, casting to signed ints (including implicite truncation)
  172. produced incorrect values, and casting to unsigned ints produced 'Undefined reference' errors.
  173. This is fixed now.</LI>
  174. <LI>Bugfix: Many programs created with library releases prior to 2.3 produce a lot of warnings
  175. (although they work correctly after the compilation) about incompatible pointer types.
  176. This is fixed now.</LI>
  177. <LI>Bugfix: Functions <A HREF="$$LINK(system.h/OSContrastUp)">OSContrastUp</A> and
  178. <A HREF="$$LINK(system.h/OSContrastDn)">OSContrastDn</A> trashed some registers due to a bug in
  179. the TIOS. This is fixed now (thanks to Patrick Davidson).</LI>
  180. <LI>Bugfix: Programs which still have directives <CODE>USE_..._PATCH</CODE> couldn't be
  181. compiled in "Doors" mode ('Duplicate identifier' errors) with TIGCCLIB 2.3, due to
  182. superfluous declarations of some symbols (<CODE>bcopy</CODE> etc.) in
  183. <A HREF="$$LINK(doors.h/)">doors.h</A> header file. This is now fixed.</LI>
  184. <LI>Functions <A HREF="$$LINK(stdlib.h/abs)">abs</A>,
  185. <A HREF="$$LINK(stdlib.h/min)">min</A> and <A HREF="$$LINK(stdlib.h/max)">max</A> are now
  186. redefined to work with any numeric type, not only with short integers. Such behaviour
  187. is proposed in ANSI C.</LI>
  188. <LI>Indentifiers <A HREF="$$LINK(intr.h/AUTO_INT)">AUTO_INT</A>,
  189. <A HREF="$$LINK(intr.h/AUTO_INT_COUNT)">AUTO_INT_COUNT</A>, <A HREF="$$LINK(intr.h/FIRST_AUTO_INT)">FIRST_AUTO_INT</A>
  190. and <A HREF="$$LINK(intr.h/LAST_AUTO_INT)">LAST_AUTO_INT</A> were introduced in TIGCCLIB 2.3, but
  191. I forgot to document them. This is now corrected.</LI>
  192. <LI>As usual, there are some fixes in the documentation. Especially, thanks to Kevin Kofler for
  193. very important information about <A HREF="$$INFOLINK(htretval)">returning values to TI-Basic</A>.</LI>
  194. </UL>
  195. <B>Release 2.3 (13. XII 2000.)</B>
  196. <UL>
  197. <LI>A lot of internal changes are made in the library to support new features introduced in release
  198. 0.9 of the compiler. That's why this release of the library will not work correctly with releases
  199. of TIGCC prior to 0.9.</LI>
  200. <LI>The <A HREF="$$LINK(timath.h/)">timath.h</A> header file is completely rewritten, because the compiler
  201. now supports the native ANSI C floating point types and values (click <A HREF="$$INFOLINK(htfloats)">here</A>
  202. for more info). In addition to this, two new ANSI-compatible header files <A HREF="$$LINK(math.h/)">math.h</A>
  203. and <A HREF="$$LINK(float.h/)">float.h</A> are introduced too. These changes are performed on such
  204. way to retain about 95% compatibility with old programs which used floating point arithmetic
  205. using awkward indirect methods (i.e. the only possible methods before TIGCC 0.9). Click
  206. <A HREF="$$INFOLINK(htfloats)">here</A> for more info.</LI>
  207. <LI>There is no more need for usage of directives like <CODE>USE_..._PATCH</CODE>. The new compiler
  208. apply patches automatically when necessary (such directives will be simply ignored now). In other
  209. words, you don't need to
  210. worry any more about patches. For this purpose, a new file called
  211. <B>tipatch.lib</B> is added to the library. The new compiler searches through this
  212. file to find appropriate patches which eventually should to be included (you should not edit or
  213. modify this file unless you know very well what are you doing).</LI>
  214. <LI>Three new functions <A HREF="$$LINK(timath.h/float_to_bcd)">float_to_bcd</A>,
  215. <A HREF="$$LINK(timath.h/bcd_to_float)">bcd_to_float</A> and <A HREF="$$LINK(timath.h/bcd_var)">bcd_var</A>
  216. are added to <A HREF="$$LINK(timath.h/)">timath.h</A> header file.</LI>
  217. <LI>A very important function <A HREF="$$LINK(estack.h/push_internal_simplify)">push_internal_simplify</A>
  218. which is essential for symbolic mathematic is added to <A HREF="$$LINK(estack.h/)">estack.h</A> header
  219. file. Note that although this function is not officially introduced
  220. before AMS 2.xx, it is implemented here to work on any AMS version.</LI>
  221. <LI>Four new functions <A HREF="$$LINK(peekpoke.h/peekIO)">peekIO</A>,
  222. <A HREF="$$LINK(peekpoke.h/peekIO_w)">peekIO_w</A>, <A HREF="$$LINK(peekpoke.h/poke)">poke</A> and
  223. <A HREF="$$LINK(peekpoke.h/pokeIO_w)">pokwIO_w</A> are added to <A HREF="$$LINK(peekpoke.h/)">peekpoke.h</A>
  224. header file, to allow reliable reading and writing to hardware memory-mapped I/O ports.</LI>
  225. <LI>A new function <A HREF="$$LINK(events.h/EV_getAppID)">EV_getAppID</A> is added in
  226. <A HREF="$$LINK(events.h/)">events.h</A> header file, which allows determining application ID numbers
  227. regardless of the AMS version. Note that although this function is not officially introduced
  228. before AMS 2.xx, it is implemented here to work on any AMS version.</LI>
  229. <LI>A new function <A HREF="$$LINK(vat.h/FolderClear)">FolderClear</A> is added in <A HREF="$$LINK(vat.h/)">vat.h</A>
  230. header file. The structure of <A HREF="$$LINK(vat.h/SYM_ENTRY)">SYM_ENTRY</A> is slightly improved
  231. (without losing the compatibility).</LI>
  232. <LI>Functions <A HREF="$$LINK(timath.h/atof)">atof</A> and <A HREF="$$LINK(timath.h/fabs)">fabs</A> are now
  233. present in <A HREF="$$LINK(stdlib.h/)">stdlib.h</A> header file too, as proposed in ANSI C.</LI>
  234. <LI>Bugfix: Changed definition of <A HREF="$$LINK(kbd.h/_rowread)">_rowread</A> so it works correctly
  235. if used in a short loop with the new compiler.</LI>
  236. <LI>Bugfix: The directive <CODE><A HREF="$$INFOLINK(httigcc/advanced_optrom)">OPTIMIZE_ROM_CALLS</A></CODE> now does not interfere
  237. witn an user-written interrupt handlers (thanks to Thomas Nussbaumer). Note however that it still may interfere with event
  238. handlers, and with callback functions used in <A HREF="$$LINK(system.h/OSVRegisterTimer)">OSVRegisterTimer</A>,
  239. <A HREF="$$LINK(stdio.h/vcbprintf)">vcbprintf</A>, etc.</LI>
  240. <LI>Bugfix: Function <A HREF="$$LINK(stdlib.h/exit)">exit</A> now will not cause a warning if used in
  241. the body of a non-void function.</LI>
  242. <LI>Bugfix: Function <A HREF="$$LINK(vat.h/FolderDel)">FolderDel</A> now works as described (and reliably).</LI>
  243. <LI>Bugfix: Some functions from <A HREF="$$LINK(ctype.h/)">ctype.h</A> are rewritten to avoid spurious
  244. warnings if the warning-checking level is set too high.</LI>
  245. <LI>Bugfix: Function <A HREF="$$LINK(timath.h/hypot)">hypot</A> will not cause side effects anymore.</LI>
  246. <LI>Bugfix: Function <A HREF="$$LINK(estack.h/push_ANSI_string)">push_ANSI_string</A> now works correctly
  247. in all cases.</LI>
  248. <LI>Bugfix: Function <A HREF="$$LINK(graph.h/LCD_save)">LCD_save</A> now does not cause spurious warnings
  249. if used in "Doors" mode.</LI>
  250. <LI>Bugfix: Function <A HREF="$$LINK(system.h/XR_stringPtr)">XR_stringPtr</A> is rewritten to work with
  251. all AMS versions (thanks to Romain Herault).</LI>
  252. <LI>Bugfix: Enumeration <A HREF="$$LINK(events.h/StartTypes)">StartTypes</A> is rewritten to be
  253. compatible with all AMS versions.</LI>
  254. <LI>The library is changed to replace all <CODE>'int'</CODE>s to <CODE>'short'</CODE>s where this was
  255. appropriate to support the <B>'-mnoshort'</B> command line option supported in the
  256. new version of the compiler.</LI>
  257. <LI>The documentation is much updated (including correcting of some information which was wrong).
  258. The <A HREF="$$INFOLINK(faq)">Frequently Asked Questions</A> list is also slightly updated.</LI>
  259. </UL>
  260. <B>Release 2.22 (8. X 2000.)</B>
  261. <UL>
  262. <LI>Bugfix: A fatal bug which causes crash if <A HREF="$$LINK(system.h/enter_ghost_space)">enter_ghost_space</A>
  263. function is used on AMS 2.03 is fixed.</LI>
  264. </UL>
  265. <B>Release 2.21 (2. X 2000.)</B>
  266. <UL>
  267. <LI>Release 2.21 is just a minor upgrade which includes the documentation in both <CODE>.chm</CODE>
  268. and <CODE>.html</CODE> format, because this was requested by non-Windows users. Other modifications
  269. includes slight fixes in the documentation, and much better organized <A HREF="$$INFOLINK(faq)">Frequently Asked
  270. Questions</A> list (thanks to James Darpinian for helping me to organize it).</LI>
  271. </UL>
  272. <B>Release 2.2 (29. IX 2000.)</B>
  273. <UL>
  274. <LI>The documentation for the release 2.2 is completely rearanged to make it much more readable.
  275. Moreover, the documentation now contains not only information about <A HREF="$$INFOLINK(hdrindex)">library functions</A>,
  276. but about the whole <A HREF="$$INFOLINK(info)">TIGCC project</A>, including the <A HREF="$$INFOLINK(comopts)">compiler options</A>, a
  277. brief reference to C language <A HREF="$$INFOLINK(keywords)">keywords</A>,
  278. <A HREF="$$INFOLINK(opers)">operators</A> and <A HREF="$$INFOLINK(opers)">punctuators</A>, description of
  279. GNU C <A HREF="$$INFOLINK(gnuexts)">language extensions</A>,
  280. <A HREF="$$INFOLINK(gnuasm)">GNU Assember</A>, and much more. The <A HREF="$$INFOLINK(faq)">Frequently Asked Question</A> list is full
  281. of new question/answer pairs. In general, the documentation is now thrice larger than in
  282. previous release, and it is now in <CODE>.chm</CODE> format (68 separate HTML files become
  283. too inpracticable; if someone is really interested in HTML originals, I can upload them
  284. separately). I hope that you will like the new look of the documentation (and the
  285. documentation itself, of course).</LI>
  286. <LI>The header file <A HREF="$$LINK(tigcclib.h/)">all.h</A> is renamed to <A HREF="$$LINK(tigcclib.h/)">tigcclib.h</A>
  287. to be more consistent. The old name will still be accepted, due to compatibility reasons.</LI>
  288. <LI>It is not necessary any more to include <A HREF="$$LINK(nostub.h/)">nostub.h</A> header file
  289. explicitely to produce a "nostub" program: the library will do this automatically if you use
  290. any other file from the library, except if you define the global preprocessor symbol
  291. <A HREF="$$INFOLINK(httigcc/kernel)">USE_KERNEL</A>, or if you explicitely include <A HREF="$$LINK(doors.h/)">doors.h</A>
  292. header file at the begining of the program.</LI>
  293. <LI>A new directive <CODE><A HREF="$$INFOLINK(httigcc/advanced_optrom)">OPTIMIZE_ROM_CALLS</A></CODE> is introduced, which optimizes
  294. ROM calls in "nostub" mode, which usually leads to shorter and faster programs (but not always).</LI>
  295. <LI>Grayscale support on HW2 calculators is improved to be about 50% faster and more flickerless.
  296. A new function <A HREF="$$LINK(gray.h/GrayAdjust)">GrayAdjust</A> is implemented, which allows
  297. fine tuning of grayscale quality, so it allows to reduce flickering as many as possible.
  298. Please, recompile your existing grayscale programs if you want to get advantage of introduced
  299. improvements.</LI>
  300. <LI>It is not necessary any more to put <CODE>USE_GRAY_PATCH</CODE> in grayscale programs;
  301. the library will now conclude automatically when the grayscale support is necessary, and it
  302. will act accordingly.</LI>
  303. <LI>Bugfix: trying to enable grayscale now will not cause the crash if the grayscale was
  304. already enabled.</LI>
  305. <LI>A new function <A HREF="$$LINK(gray.h/GrayCheckRunning)">GrayCheckRunning</A> and a new enumeration
  306. <A HREF="$$LINK(gray.h/GrayPlanes)">GrayPlanes</A> are added in the <A HREF="$$LINK(gray.h/)">gray.h</A>
  307. header file.</LI>
  308. <LI>Bugfix: A fatal bug into functions <A HREF="$$LINK(stdio.h/fwrite)">fwrite</A> and
  309. <A HREF="$$LINK(stdio.h/fread)">fread</A> which makes them unusuable is fixed. Also, a small
  310. bug in <A HREF="$$LINK(stdio.h/fseek)">fseek</A> (a wrong returned value) is fixed too.</LI>
  311. <LI>Bugfix: Function <A HREF="$$LINK(stdio.h/fopen)">fopen</A> is now much more robust if something
  312. is going wrong (for example, not enough memory).</LI>
  313. <LI>A new function <A HREF="$$LINK(system.h/enter_ghost_space)">enter_ghost_space</A> is introduced,
  314. for bypassing some protections introduced in AMS 2.xx.</LI>
  315. <LI>A new header file <A HREF="$$LINK(intr.h/)">intr.h</A> is introduced, which contains functions,
  316. language extensions, and data types for easy making of interrupt handlers, and for general
  317. manipulations with interrupts.</LI>
  318. <LI>Very useful enumeration <A HREF="$$LINK(kbd.h/CommonKeys)">CommonKeys</A> is introduced in
  319. <A HREF="$$LINK(kbd.h/)">kbd.h</A> header file. It contains keycodes of some commonly used keys.</LI>
  320. <LI>Bugfix: Function <A HREF="$$LINK(kbd.h/_rowread)">_rowread</A> now works reliable on HW2
  321. calculators (they needs more time for recovering the keyboard controlor).</LI>
  322. <LI>The documentation now contains the keyboard matrix for usage of
  323. <A HREF="$$LINK(kbd.h/_rowread)">_rowread</A> function.</LI>
  324. <LI>Functions <A HREF="$$LINK(system.h/OSVRegisterTimer)">OSVRegisterTimer</A> and
  325. <A HREF="$$LINK(system.h/OSVFreeTimer)">OSVFreeTimer</A> are rewriten to works independently of the TIOS,
  326. because they are removed from TIOS in AMS 2.04 and AMS 2.05. Now, they works on any AMS
  327. version (in other words: no more "Resident ROM routine not available" message). Please,
  328. recompile your program if you used these function, to make it compatible witn AMS 2.04/5.</LI>
  329. <LI>A new function <A HREF="$$LINK(alloc.h/alloca)">alloca</A> is added into <A HREF="$$LINK(alloc.h/)">alloc.h</A>
  330. and <A HREF="$$LINK(stdlib.h/)">stdlib.h</A> header files.</LI>
  331. <LI>Bugfix: Function <A HREF="$$LINK(assert.h/assert)">assert</A> will not cause a crash anymore
  332. when used together with the <CODE><A HREF="$$INFOLINK(httigcc/advanced_savescreen)">SAVE_SCREEN</A></CODE> directive.</LI>
  333. <LI>Bugfix: Function <A HREF="$$LINK(assert.h/assert)">assert</A> now works properly if used inside
  334. <CODE>if</CODE>...<CODE>else</CODE> constructions.</LI>
  335. <LI>Bugfix: Functions <A HREF="$$LINK(assert.h/assert)">assert</A> and
  336. <A HREF="$$LINK(stdlib.h/ldiv)">ldiv</A> will not trash line numbers anymore.</LI>
  337. <LI>Bugfix: Functions <A HREF="$$LINK(args.h/GetFloatArg)">GetFloatArg</A>,
  338. <A HREF="$$LINK(args.h/ArgCount)">ArgCount</A> and <A HREF="$$LINK(args.h/RemainingArgCnt)">RemainingArgCnt</A>
  339. now works correctly in "Doors" mode.</LI>
  340. <LI>Bugfix: Small corrections are made in functions <A HREF="$$LINK(peekpoke.h/poke)">poke</A>,
  341. <A HREF="$$LINK(peekpoke.h/poke_w)">poke_w</A> and <A HREF="$$LINK(peekpoke.h/poke_l)">poke_l</A>, to
  342. prevent some unnecessary warnings.</LI>
  343. <LI>Bugfix: Constants <A HREF="$$LINK(limits.h/)">CHAR_MIN</A> and <A HREF="$$LINK(limits.h/)">CHAR_MAX</A> in
  344. <A HREF="$$LINK(limits.h/)">limits.h</A> header file are now sensitive to the fact that the compiler
  345. may be forced to treat chars as unsigned.</LI>
  346. <LI>Bugfix: Although I said that impossibility of making multi-module programs in "Doors" mode
  347. is solved in release 2.1, I forgot to do this. This is now really solved, however.</LI>
  348. <LI>The library is now programmed on such way that the compiler will emit a warning if you try to
  349. return a value using the <CODE>return</CODE> keyword from the <CODE>_main</CODE> function,
  350. because you in fact can not do this.</LI>
  351. </UL>
  352. <B>Release 2.1 (25. VI 2000.)</B>
  353. <UL>
  354. <LI>The alphabetical list (with appropriate links) of all functions, macro constructors, language
  355. extensions, global variables, constants and predefined types is added to the documentation.</LI>
  356. <LI>Bugfix: <A HREF="$$LINK(sprites.h/Sprite16)">Sprite16</A> function from
  357. <A HREF="$$LINK(sprites.h/)">sprites.h</A> header file now works correctly. In addition to this
  358. bugfix, a new function <A HREF="$$LINK(sprites.h/Sprite8)">Sprite8</A> is added for easier working
  359. with small sprites.</LI>
  360. <LI>Bugfix: floating point routines caused crash when they are nested deeply (read: very often). This
  361. problem is finally solved (after a lot of troubles). I hope that floating point support is now
  362. stable.</LI>
  363. <LI>Bugfix: <A HREF="$$LINK(timath.h/M_FLT)">FLT</A> macro from <A HREF="$$LINK(timath.h/)">timath.h</A> header
  364. file generated unnormalized numbers when they are smaller than 0.1. Many floating
  365. point routines were not happy with such numbers, and produced wrong results. This is now corrected.</LI>
  366. <LI>Bugfix: I hope that I finally found a workarround for a stupid bug in GNU C preprocessor
  367. which causes STATUS_ACCESS_VIOLATION exception very often when <A HREF="$$LINK(timath.h/M_FLT)">FLT</A>
  368. macro is used with just one argument. Now, it seems that this problem does not appear any more.</LI>
  369. <LI>Programs which use floating point support now usually procuce a bit shorter code than earlier.</LI>
  370. <LI>Bugfix: function <A HREF="$$LINK(stdlib.h/div)">div</A> from <A HREF="$$LINK(stdlib.h/)">stdlib.h</A>
  371. header file now works correctly.</LI>
  372. <LI>Bugfix: functions <A HREF="$$LINK(string.h/strcmp)">strcmp</A> and
  373. <A HREF="$$LINK(mem.h/memcmp)">memcmp</A> were declared as long, although it seems that these
  374. functions leave an unpredictable results in higher half of D0; they are now declared as int
  375. (Sebastian Reichelt and Xavier Vassor informed me about strange behaviour of these two functions).
  376. It seems that these problems are solved after redeclaration.</LI>
  377. <LI>Bugfix: function <A HREF="$$LINK(system.h/ASM_call)">ASM_call</A> from <A HREF="$$LINK(system.h/)">system.h</A>
  378. header file assumed that called subroutine will preserve all registers, which caused a lot of
  379. problems when these assumptions are violated. <A HREF="$$LINK(system.h/ASM_call)">ASM_call</A> now
  380. saves all registers and restores them after the execution. In addition to this bugfix, a new
  381. function <A HREF="$$LINK(system.h/ASM_fastcall)">ASM_fastcall</A> is added, for faster calling (when
  382. you are sure that a called subroutine will not destroy any registers).</LI>
  383. <LI>Bugfix: in release 2.0, it was impossible in "Doors" mode to create programs splited in
  384. many modules which are linked separately, because symbol <CODE>_main</CODE> was unconditionally
  385. exported in <A HREF="$$LINK(doors.h/)">doors.h</A> header file. This is now corrected.</LI>
  386. <LI>Bugfix: function <A HREF="$$LINK(gray.h/GrayMode)">GrayMode</A> from <A HREF="$$LINK(gray.h/)">gray.h</A> header
  387. file now automatically selects dark plane just after switching on the grayscale mode. Such
  388. behaviour in previous releases of TIGCCLIB was guaranted only on HW1 calculators, but not on HW2
  389. calculators. So, it was possible to produce (quite easily) grayscale programs which work
  390. correctly only on HW1 calculators, although grayscale support is planed to work always on
  391. both hardware versions. This is now fixed.</LI>
  392. <LI>Some errors in the documentation are fixed, and the documentation is slightly updated
  393. (especially information about big number support in <A HREF="$$LINK(rsa.h/)">rsa.h</A> header file).
  394. As usual, the <A HREF="$$INFOLINK(faq)">Frequently Asked Questions</A> list is updated with a lot
  395. of useful suggestions.</LI>
  396. </UL>
  397. <B>Release 2.0 (25. V 2000.)</B>
  398. <UL>
  399. <LI>Starting from this release, TIGCCLIB is much more compatible with ANSI C
  400. standard library. Nearly full implementation of <A HREF="$$LINK(stdio.h/)">stdio.h</A> and <A HREF="$$LINK(stdlib.h/)">stdlib.h</A> is
  401. included (41 new functions in <A HREF="$$LINK(stdio.h/)">stdio.h</A> and 23 new functions in <A HREF="$$LINK(stdlib.h/)">stdlib.h</A>,
  402. together with appropriate data structures and types). So, you can now use a
  403. lot of functions known from various C tutorials: <A HREF="$$LINK(stdio.h/printf)">printf</A>,
  404. <A HREF="$$LINK(stdio.h/fopen)">fopen</A>, <A HREF="$$LINK(stdio.h/gets)">gets</A>, <A HREF="$$LINK(stdlib.h/atoi)">atoi</A>,
  405. <A HREF="$$LINK(stdlib.h/qsort)">qsort</A>, <A HREF="$$LINK(stdlib.h/bsearch)">bsearch</A>, <A HREF="$$LINK(stdlib.h/strtol)">strtol</A>...</LI>
  406. <LI>Usage of patches "inits", "longmul", "longdiv" and "gray" is now much
  407. easier: instead of separate linking, it is enough to define some global
  408. preprocessor symbols (like <CODE>USE_LONGMUL_PATCH</CODE> etc.).</LI>
  409. <LI>A directive <CODE><A HREF="$$INFOLINK(httigcc/advanced_savescreen)">SAVE_SCREEN</A></CODE> is introduced, which allows automatically saving and
  410. restoring the content of the screen in "nostub" mode, without needness for
  411. calling <A HREF="$$LINK(graph.h/LCD_save)">LCD_save</A> and <A HREF="$$LINK(graph.h/LCD_restore)">LCD_restore</A> manually.</LI>
  412. <LI>Bugfix: very serious bug which sometimes cause crash in programs which use
  413. floating point numbers is corrected (note that this bugfix was released
  414. before, as a separate file called <B>tcl15fix</B>).</LI>
  415. <LI>A lot of new mathematical functions (mainly for manipulations with symbolic
  416. expressions, lists and matrices, and for algebra and calculus applications),
  417. and functions for "pretty printing" expressions are added in <A HREF="$$LINK(estack.h/)">estack.h</A> header
  418. file (82 new functions). The list of expression <A HREF="$$LINK(estack.h/Tags)">tags</A> is completed (more
  419. than 500 tags), and the documentation about usage of expression stack is
  420. much updated.</LI>
  421. <LI>A new header file <A HREF="$$LINK(events.h/)">events.h</A> is introduced, with 32 new functions
  422. for event driving programming, and calculator mode settings. Now you can simulate TIOS
  423. system events in your programs, and hook into the operating system and
  424. change its behavious partially (for example, you can redefine the keyboard,
  425. add new items in system menus, change behaviour of some commands, etc.). But
  426. note that these features require good knowledge of programming.</LI>
  427. <LI>A new header file <A HREF="$$LINK(sprites.h/)">sprites.h</A> is introduced, with 2 new fast and
  428. simple functions for sprite drawing (including masked sprites).</LI>
  429. <LI>A new header file <A HREF="$$LINK(textedit.h/)">textedit.h</A> with 16 new functions for
  430. accessing the text editor is introduced. As the text editor which is built-in into the TIOS
  431. is highly customizable, you can now write programs with high perfomance editing facilities!</LI>
  432. <LI>Four language extension macros
  433. <A HREF="$$LINK(error.h/TRY)">TRY</A>, <A HREF="$$LINK(error.h/ONERR)">ONERR</A>,
  434. <A HREF="$$LINK(error.h/ENDTRY)">ENDTRY</A> and <A HREF="$$LINK(error.h/PASS)">PASS</A> are added in
  435. <A HREF="$$LINK(error.h/)">error.h</A> header file, to allow error handling similarly like in TI-Basic or
  436. in modern programming languages like Delphi. Also, two new functions are
  437. added in <A HREF="$$LINK(error.h/)">error.h</A>, the documentation about it is updated, and some wrong
  438. information are corrected.</LI>
  439. <LI>A new header file <A HREF="$$LINK(flash.h/)">flash.h</A> is introduced, with 11 new functions for
  440. low-level access to the Flash ROM. 3 new functions for high-level access to the Flash
  441. ROM are added in <A HREF="$$LINK(vat.h/)">vat.h</A> header file.</LI>
  442. <LI>Some new data structures are added in <A HREF="$$LINK(vat.h/)">vat.h</A> header file, various infos
  443. related to this header file are updated (especially about organization of
  444. VAT table entries), and one small bug in it is corrected (<A HREF="$$LINK(vat.h/HS_NULL)">HS_NULL</A> was
  445. wrongly defined).</LI>
  446. <LI>A new header file <A HREF="$$LINK(cert.h/)">cert.h</A> with 17 functions for working for certificate
  447. files and other memory-mapped files (not necessary related to certificates) is introduced.</LI>
  448. <LI>15 new functions for high-level accessing to the link port are added in
  449. <A HREF="$$LINK(link.h/)">link.h</A> header file. Also, some information about
  450. <A HREF="$$LINK(link.h/)">link.h</A> are corrected.</LI>
  451. <LI>A new header file <A HREF="$$LINK(rsa.h/)">rsa.h</A> is introduced, with 8 new functions for working
  452. with very big integer numbers, message diggesting and RSA decryption.</LI>
  453. <LI>4 new functions are added in <A HREF="$$LINK(args.h/)">args.h</A> header file, which allow more
  454. flexible getting of the arguments passed to the program. The list of argument tags is completed.</LI>
  455. <LI>Two new header files <A HREF="$$LINK(limits.h/)">limits.h</A> and <A HREF="$$LINK(values.h/)">values.h</A>
  456. are introduced. They contain various platform-dependent constants (proposed by ANSI). This helps
  457. porting programs from other platforms.</LI>
  458. <LI>A new header file <A HREF="$$LINK(compat.h/)">compat.h</A> is introduced, which defines 18
  459. pseudoconstants (i.e. macros which look and act like constants). These pseudoconstants have
  460. different values on TI-89 and TI-92 Plus, so they can help making compatibility between these
  461. two calculator models. Also some pseudoconstants have different values on AMS 1.xx and AMS 2.xx,
  462. so they can help solving some minor incompatibilities between AMS 1.xx and AMS 2.xx during usage
  463. of some functions (although 99% of implemented functions are AMS-independent).</LI>
  464. <LI>Two very useful global variables are added in <A HREF="$$LINK(wingraph.h/)">wingraph.h</A> header
  465. file. Also, some information about this header file and <A HREF="$$LINK(graph.h/)">graph.h</A> header
  466. file are updated or corrected.</LI>
  467. <LI>12 new functions are added in <A HREF="$$LINK(system.h/)">system.h</A> header file, mainly for
  468. manipulating with queue structures, the cursor and the clipboard. Many information about
  469. this header file are updated or corrected.</LI>
  470. <LI>Information about <A HREF="$$LINK(kbd.h/)">kbd.h</A> header file are much updated. A hint is
  471. added about how to avoid slow functions <A HREF="$$LINK(kbd.h/kbhit)">kbhit</A> and
  472. <A HREF="$$LINK(kbd.h/ngetchx)">ngetchx</A> in high-perfomance keyboard reading applications,
  473. without using very low-level functions like <A HREF="$$LINK(kbd.h/_rowread)">_rowread</A>.</LI>
  474. <LI>A new header file <A HREF="$$LINK(bascmd.h/)">bascmd.h</A> with 35 new functions is introduced.
  475. At the moment, this header file is quite incomplete and a bit unconsistent. In the
  476. near future it will contain more than 150 new functions. This header file
  477. contains functions which executes particular TI-Basic statements or
  478. functions, so after completing this header file, nearly everything which may
  479. be done using just one TI-Basic statement/function would be possible using
  480. just one TIGCC function (but be aware: the performance will be like during
  481. executing of TI-Basic statement/function, so intensive usage of functions
  482. from this header file is not recommended in high-perfomance applications). I
  483. started to develop this header file, but the shortage of my free time forces
  484. me to stop developing for a while. I don't want to prolongue releasing of
  485. whole TIGCCLIB 2.0 only because this header file is not complete. Be
  486. patient, I will continue developing it as soon as possible...</LI>
  487. <LI>3 new functions are added in <A HREF="$$LINK(menus.h/)">menus.h</A> header file. A lot of
  488. information are updated, especially about the exact organization of the menu structure
  489. (this info allows making menus with more levels of submenus).</LI>
  490. <LI>Function <A HREF="$$LINK(assert.h/)">assert</A> is improved, so now there is no any limitations
  491. about usage of this function in "nostub" mode.</LI>
  492. <LI>Function <A HREF="$$LINK(alloc.h/realloc)">realloc</A> (proposed by ANSI) is added in
  493. <A HREF="$$LINK(alloc.h/)">alloc.h</A> header file (it is also defined in <A HREF="$$LINK(stdlib.h/)">stdlib.h</A>),
  494. and <A HREF="$$LINK(alloc.h/calloc)">calloc</A> is improved to generate smaller code.</LI>
  495. <LI>Information for assembly programmers are much updated (many people asked me
  496. about examples of using floats in ASM programs, so this info is added).</LI>
  497. <LI>More than 200 TIOS functions are no more "unknown", so they are moved out of
  498. <A HREF="$$LINK(unknown.h/)">unknown.h</A> header file.</LI>
  499. <LI>The documentation generally and the <A HREF="$$INFOLINK(faq)">Frequently Asked Questions</A>
  500. list are updated.</LI>
  501. </UL>
  502. <B>Release 1.5 (29. III 2000.)</B>
  503. <UL>
  504. <LI>Floating point support is implemented. For this purpose, a new header file
  505. <A HREF="$$LINK(timath.h/)">timath.h</A> is introduced, with 86 new functions, 4 macro
  506. constructors and a lot of constants and predefined types.</LI>
  507. <LI>Basic support for the symbolic calculations (including symbolic algebra and
  508. calculus) is also implemented. For this purpose, a new header file <A HREF="$$LINK(estack.h/)">estack.h</A>
  509. is introduced. It contains 26 functions for manipulations with the expression stack (in the near
  510. future, I planed about 50-100 new functions in this header file).</LI>
  511. <LI>Bugfix: <A HREF="$$LINK(gray.h/GraySetAMSPlane)">GraySetAMSPlane</A> function from <A HREF="$$LINK(gray.h/)">gray.h</A>
  512. now works correctly in "Doors" mode.</LI>
  513. <LI>Bugfix: grayscale support on Hardware Release 2 calculator is now stable.
  514. And, grayscale support now autodetects the hardware version!</LI>
  515. <LI>Now you can make programs which return a result to the TI-Basic, i.e. which
  516. acts like TI-Basic functions. For this purpose, header files <A HREF="$$LINK(nostub.h/)">nostub.h</A> and
  517. <A HREF="$$LINK(doors.h/)">doors.h</A> are slightly changed.</LI>
  518. <LI>Two very useful functions are added in <A HREF="$$LINK(args.h/)">args.h</A> header file:
  519. <A HREF="$$LINK(args.h/GetFloatArg)">GetFloatArg</A> and
  520. <A HREF="$$LINK(args.h/SkipArg)">SkipArg</A>. Also, documentation about <A HREF="$$LINK(args.h/)">args.h</A>
  521. is much updated and some serious errors in the documentation are corrected.</LI>
  522. <LI>2 new functions (<A HREF="$$LINK(system.h/ASM_call)">ASM_call</A> and <A HREF="$$LINK(system.h/EX_patch)">EX_patch</A>)
  523. are added in <A HREF="$$LINK(system.h/)">system.h</A>.</LI>
  524. <LI>94 TIOS functions are no more "unknown", so they are moved out of <A HREF="$$LINK(unknown.h/)">unknown.h</A>
  525. header file.</LI>
  526. <LI>Function <A HREF="$$LINK(dialogs.h/NoCallBack)">NoCallBack</A> is now implemented as cast
  527. constructor, so it will not be embeded in the program if not used.</LI>
  528. <LI><A HREF="$$LINK(kbd.h/_rowread)">_rowread</A> function from <A HREF="$$LINK(kbd.h/)">kbd.h</A> is
  529. now more reliable.</LI>
  530. <LI>All arguments which represent a handle or functions which return a handle
  531. are now declared as <A HREF="$$LINK(alloc.h/HANDLE)">HANDLE</A> instead of <CODE>unsigned int</CODE>.
  532. Yes, this is exactly the same, but the documentation is now more clear.</LI>
  533. <LI>Information about timers in <A HREF="$$LINK(system.h/)">system.h</A> are updated.</LI>
  534. <LI>Information for assembly programers are slightly updated.</LI>
  535. <LI>Information about how to use floating point and symbolic arithmetic and
  536. information about how to return a value to TI-Basic are added in the
  537. documentation.</LI>
  538. <LI><A HREF="$$INFOLINK(faq)">Frequently Asked Questions</A> are added to the documentation.</LI>
  539. </UL>
  540. <B>Release 1.1 (4. II 2000.)</B>
  541. <UL>
  542. <LI>Bugfix: <A HREF="$$LINK(string.h/strncmp)">strncmp</A> was incorrectly declared as long,
  543. although TIOS strncmp puts the garbage in higher half of D0; it is now declared as int.</LI>
  544. <LI>Bugfix: type definition for <A HREF="$$LINK(alloc.h/HANDLE)">HANDLE</A> in
  545. <A HREF="$$LINK(wingraph.h/)">wingraph.h</A> and <A HREF="$$LINK(tigcclib.h/)">all.h</A> had a syntax error,
  546. which is now fixed.</LI>
  547. <LI>AMS 2.03 bugfix: <A HREF="$$LINK(dialogs.h/NoCallBack)">NoCallBack</A> is no more in the
  548. TIOS jump table, so this fact is now regarded. This fixed problems with usage of dialogs
  549. with AMS 2.03. If you used <A HREF="$$LINK(dialogs.h/)">dialogs.h</A> with previous release of
  550. the library, please recompile your program to become compatible with AMS 2.03!</LI>
  551. <LI>Grayscale support implemented: a new header file <A HREF="$$LINK(gray.h/)">gray.h</A> and
  552. a new patch <CODE>gray.o</CODE> are introduced for this purpose.</LI>
  553. <LI>Added support of passing arguments to the programs: for this purpose, a new header
  554. file <A HREF="$$LINK(args.h/)">args.h</A> is introduced.</LI>
  555. <LI>Header file <A HREF="$$LINK(assert.h/)">assert.h</A> is now included in <A HREF="$$LINK(tigcclib.h/)">all.h</A>
  556. because I found an inteligent method how to implement <A HREF="$$LINK(assert.h/assert)">assert</A> on
  557. such way that it does not increase the program size if not used in the program (this is a tricky
  558. play with conditional assembling).</LI>
  559. <LI>An information how to make a real <B>stdio.h</B> function <B>printf</B>
  560. is added into the documentation about <A HREF="$$LINK(printf.h/)">printf.h</A>.</LI>
  561. <LI>Some additional notes and an example of usage are added for <A HREF="$$LINK(wingraph.h/WinOpen)">WinOpen</A>
  562. function</LI>
  563. <LI>Global variable <A HREF="$$LINK(estack.h/top_estack)">top_estack</A> is moved from
  564. <A HREF="$$LINK(unknown.h/)">unknown.h</A> to <A HREF="$$LINK(args.h/)">args.h</A>.</LI>
  565. <LI>Some typo errors in the documentation are fixed.</LI>
  566. </UL>
  567. <B>Release 1.0 (11. I 2000.)</B>
  568. <UL>
  569. <LI>The first official release.</LI>
  570. </UL>