Some new questions have popped up frequently recently, and they are candidates for addition to the TIGCC FAQ. In the meantime, here's a list of the
questions and answers:
1. Warnings/Errors
Q: When I try to compile my program, I get "Implicit declaration of 'atof'" (or some other function) warnings, and then a link-time unresolved reference or a run-time misbehavior. Why is that?
A: You need to define a satisfactory minimum AMS version for the functions you intend to use. Many functions require a minimum AMS version above 1.00, if you do not define an appropriately high minimum AMS version, these functions will be unavailable.
Note that the best way to set the minimum AMS version in TIGCC IDE or KTIGCC is through Project/Options/Compilation/Program Options/Operating System. This way, consistency between all your source files is guaranteed. Please don't use #define statements in the source code to set program options, as that can lead to inconsistencies in settings which can cause a broken executable to be produced.
2. Experimental targets
Q: Can I compile programs for the plain TI-92 or the TI-92 II with TIGCC?
A: Yes, you can compile programs for the TI-92 and TI-92 II, using the Fargo shell. You need to fetch the required support library at: www.tigen.org/kevin.kofler/ti89prog/libfargo.zip . Copy fargo.a to your TIGCC Lib directory to enable the Fargo target. Note that Fargo support is incomplete, there are no official headers or library routines for Fargo at this time. You can however find some useful definitions in the source code of Kevin Kofler's Backgammon for Fargo .
Q: Can I compile custom operating systems with TIGCC?
A: Yes, you can create Flash OSes with TIGCC. Note that the OSes will not be digitally signed, you have to use a third-party utility such as FreeFlash or the older TIB Receiver to send them to the calculator. (On the other hand, emulators load them just fine.) You need to fetch the required support library at: www.tigen.org/kevin.kofler/ti89prog/flashosa.zip. Copy flashos.a to your TIGCC Lib directory to enable the FlashOS target. Note that FlashOS support is currently very barebone. There are no library routines for FlashOSes at this time, not even startup code to initialize the hardware. However, you can find such code in the source code of Patrick Pélissier's PedroM (ld-tigcc version).
[EDIT (11/25/05 11:45 pm): Thanks to Jonathan Holbrook for rephrasing some of my awkward sentences.
]
[EDIT: Added note about how to set MIN_AMS properly in the IDE.]
1. Warnings/Errors
Q: When I try to compile my program, I get "Implicit declaration of 'atof'" (or some other function) warnings, and then a link-time unresolved reference or a run-time misbehavior. Why is that?
A: You need to define a satisfactory minimum AMS version for the functions you intend to use. Many functions require a minimum AMS version above 1.00, if you do not define an appropriately high minimum AMS version, these functions will be unavailable.
Note that the best way to set the minimum AMS version in TIGCC IDE or KTIGCC is through Project/Options/Compilation/Program Options/Operating System. This way, consistency between all your source files is guaranteed. Please don't use #define statements in the source code to set program options, as that can lead to inconsistencies in settings which can cause a broken executable to be produced.
2. Experimental targets
Q: Can I compile programs for the plain TI-92 or the TI-92 II with TIGCC?
A: Yes, you can compile programs for the TI-92 and TI-92 II, using the Fargo shell. You need to fetch the required support library at: www.tigen.org/kevin.kofler/ti89prog/libfargo.zip . Copy fargo.a to your TIGCC Lib directory to enable the Fargo target. Note that Fargo support is incomplete, there are no official headers or library routines for Fargo at this time. You can however find some useful definitions in the source code of Kevin Kofler's Backgammon for Fargo .
Q: Can I compile custom operating systems with TIGCC?
A: Yes, you can create Flash OSes with TIGCC. Note that the OSes will not be digitally signed, you have to use a third-party utility such as FreeFlash or the older TIB Receiver to send them to the calculator. (On the other hand, emulators load them just fine.) You need to fetch the required support library at: www.tigen.org/kevin.kofler/ti89prog/flashosa.zip. Copy flashos.a to your TIGCC Lib directory to enable the FlashOS target. Note that FlashOS support is currently very barebone. There are no library routines for FlashOSes at this time, not even startup code to initialize the hardware. However, you can find such code in the source code of Patrick Pélissier's PedroM (ld-tigcc version).
[EDIT (11/25/05 11:45 pm): Thanks to Jonathan Holbrook for rephrasing some of my awkward sentences.
[EDIT: Added note about how to set MIN_AMS properly in the IDE.]
