TASM Frequently Asked Questions


Q: What Processors are supported by TASM?

The following table enumerates the processor families supported by TASM.  Derivatives that are compatible with the base processor family are, of course, supported too.  For those derivatives that have additional (extended) instructions, the second column shows those that are supported.  [Note: use the "-x" command line option to enable extended instructions.]
 
Processor Family Derivatives with extended instructions supported
8048 8041A, 8022, 8021
6502 R65C02, R65C00/21
Z80 HD64180
6800 6801, 6803, 68HC11
6805 M146805 CMOS, 68HC02C4
8051
8080
TMS32010
TMS320C25 TMS320C26
TMS7000
8096  80C196KC

Q: Does TASM come with an object code linker?

No. TASM generates absolute object code, thus no linker is necessary. It is possible to break an application into many files, however, and collect them via a top level file to include all the components (see the #include directive in the TASM User's Manual).

Q: What are the minimum system requirements to run TASM?

For versions earlier than 3.2:

For version 3.2:

Q: My computer has 512 Mbytes of RAM. How come TASM runs out of memory?

Prior to version 3.2, TASM was an old-fashioned program confined to the 640 Kbyte memory space provided by DOS. If you are running out of memory and you are using a version early than 3.2 you should upgrade and see if it eliminates the problem.  Even version 3.2 has some inherent limits, however.  There are fixed limits for the maximum number of labels and macros (see the TASM User's Manual).

Q: What performance can be expected from TASM?

Many factors affect performance. Here are some observed lines/second measurements for assemblies of 6502 source code on various platforms: Of historical note, early versions of TASM running on a PC/AT class machine (circa 1985) typically achieved about 20 lines/second.  

Q: Is there a UNIX version of TASM?

Yes, but you need the source distribution to build it.  The source distribution comes with a makefile and instructions for building on LINUX.  The makefile should be usable on a variety of UNIX platforms with little modification (assuming an appropriate compiler tool set). An ANSI C compiler is required.

Q: What compiler is used to build the released version of TASM?

Microsoft Visual C++ 6.0.

Q: What's new in the latest release (v3.2)?

Q: Can I bundle TASM with my way-cool development board?

The shareware distribution of TASM may be distributed with other commercial products as long as it is clear that the customer is getting a shareware product that has not yet been paid for. The customer receives the shareware product for evaluation purposes, and if prolonged use ensues, the product should be paid for.

Alternately, a fully licensed TASM may be bundled with other commercial products under an agreement with SVS. Many agreements such as this have been employed in the past for both microcontroller development tools and educational books. Please contact SVS if you are interested in such an arrangement.

Q: Can I distribute TASM to my students for course assignments?

The license policy is this: an educational institution may distribute TASM to students for course work at that institution provide the institution purchases a TASM site license. The students are not authorized to continue use of TASM for their personal projects, however. Continued use by students outside of course work requires an individual registration.

Q: Is there a Windows version of TASM?

No. We have experimented with Windows interfaces for TASM, but have concluded that such adds little value. What is of value, though, is integration of TASM with a source code editor (Windows based or otherwise). Being able to perform the edit/assemble/edit cycle all within a single environment is useful. Many full-featured editors support such integration. Such editors include:

Q: How do I configure the Vim editor to run TASM?

The first step is to add the following to your "_vimrc" file (which is normally in the directory indicated by the HOME or HOMEPATH environment variables): 
set makeprg=tasm\ -80\ -x\ %
set errorformat=%f\ line\ %l:\ %m

Now, you can launch an assembly on the file you are editing with Vim by invoking the ":make" command.  Use the ":cnext" command to skip to the next line with an error.  Use the ":copen" command to open a window showing the full error list.  See the Vim help documentation for more details on this feature.

The makeprg setting above depends upon the TASM executable being in a directory in the Path environment variable.  Alternately, add the full path to the makeprg setting (being extra careful with embedded spaces).  Also, the example explicitly indicates the Z80 instruction table with the "-80" option.  Set this according to your needs.

Q: Suppose I want to write my own TASM table for a processor not currently supported. Is it difficult?

It is not terribly difficult, but does require thorough knowledge of the target processor instruction set and the encoding rules supported by TASM. The 3.2 release of TASM supports 31 different rules for the encoding of opcodes/operands. When new processor families are added to TASM, most of the instructions/address modes are supported by an existing encoding rule, but usually a few new rules are necessary. Adding new encoding rules requires source code modification. See TASMTABS.HTM  for a summary of the encoding rules.