[Main]
Title=The A68k Assembler
Subsections=intro, restrictions, exts, directives, smallcode, files, filenames, usage, tech, contact, history
Index=A68k

[Top]
In addition to the <A HREF="$$INFOLINK(gnuasm)">GNU Assembler</A>, the TIGCC package also includes
the A68k assembler by Charlie Gibbs (slightly modified Amiga version). Although TIGCC also includes the GNU assembler used by GCC, A68k is included here because almost all assembly programs
for the TI-89 and TI-92+ are created just with this assembler, so including it in the package
allows compiling existing ASM programs as well, and because, while it is inferior to the GNU assembler in some aspects, it also has its advantages, mainly easier syntax, but also support for
binary include files for example. As this part of the TIGCC package was developed
completely independently of the rest of the TIGCC project (and long before the TIGCC project was
even started), it is somewhat inconsistent with the rest of the project, but some effort has been made to integrate it into TIGCC. For example, you can now call a function from a static library using a simple <CODE>bsr</CODE> or <CODE>jsr</CODE> instruction.
<BR><BR>
This assembler comes with its own set of header files. All of them are included mainly for
compatibility reasons (note that some of them are deprecated, obsolete, inconsistent
or even obscure), so they will not be described here. Information about them may be
found in various ASM tutorials for TI-89 and TI-92+ (also deprecated, but note that
nearly 95% of all ASM programs for TI-89 and TI-92+ are written using a now deprecated
way, because a lot of information about the system was not available at the time
when these programs were created). We recommend using only <CODE>OS.h</CODE>, which contains a
list of equates for <CODE>ROM_CALL</CODE>s (but the <CODE>ROM_CALL</CODE> macros are not very
optimized and should thus be avoided), and functions from TIGCCLIB, which need no header file at all
(for example, <CODE>bsr GrayOn</CODE> is enough to call the <A HREF="$$LINK(gray.h/GrayOn)">GrayOn</A> function). What will be presented here is the original A68k documentation, written by Charlie Gibbs himself. We have however annotated it in some places
to reflect the changes made in recent versions, and we have added 2 chapters: the list of
supported assembler directives, which was missing, and the history, which was kept in a separate file.
