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.]
||Derivatives with extended instructions supported
||8041A, 8022, 8021
||6801, 6803, 68HC11
||M146805 CMOS, 68HC02C4
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:
80286 or higher processor. [Contact us if you need a version for the 8086.]
MSDOS 2.1 or above
512 Kbytes RAM
2 Mbytes disk space
For version 3.2:
- A 32 bit Windows platform (Windows 95, Windows 98, Windows 2000, Windows
- 2 Mbytes disk space
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.
15000 lines/second on a 500 MHz Pentium based PC.
40000 lines/second on a 2 GHz Pentium based PC.
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)?
Built as a 32 bit application for improved memory management and performance
Increased maximum length of a source line to 512 bytes to better handle
expansion of long macros.
Improved formatting of list file for directives that generate more than 6 bytes
of object code (now broken into multiple lines).
Self-extracting installation utility provided.
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
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
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
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.