alien.png TASM Docs -- Error messages
[Previous] [Main] [Next]

Error Message Format
TASM error messages take the following general form:
  filename line line_numbererror_message

For example:
  main.asm line 0032: Duplicate label (start)

This format is compatible with the Brief editor (from Borland International). Brief provides the ability to run assemblies from within the editor. Upon completion of the assembly, Brief will parse the error messages and jump to each offending line in the source file allowing the user to make corrective edits.

To use this feature, it is necessary to configure a Brief environment variable to specify the assembly command associated with source files that end in .asm:
  SET BCASM = "tasm %s.asm"

TASM also needs to know the proper table to use. It can be added above, or the TASMOPTS environment variable can be used separately:
  SET TASMOPTS=-65

ERROR MESSAGE DESCRIPTIONS

Binary operator where value expected
Two binary operators in a row indicate a missing value.  

Branch off of current 2K page
An instruction is attempting to branch to a location not within the current 2K byte page.  

Branch off of current page
An instruction is attempting to branch to a location not within the current 256 byte page.  

Cannot malloc for label storage
Insufficient memory to store more labels. See LIMITATIONS.  

Duplicate label
The label for the current line has already been assigned a value. Duplicate label checks are optionally enabled by the -a option.  

File name too short
A file name on the command line is fewer than 3 characters. A two character file name may be valid, of course, but it is detected as an error to prevent a garbled option flag from being taken as a source file, which in turn can result in the true source file being taken as the object file. Since the object file is truncated at startup time, the source file could be clobbered.  

Forward reference in equate
An EQU directive is using a label on the right hand side that has not yet been defined.  

Heap overflow on label definition
TASM was unable to allocate memory to store the label.  

Imbalanced conditional.
An end-of-file was encountered at which time the level of descent in conditional directives was different from when the file was entered. Conditional directives include IF, IFDEF, and IFNDEF.  

Invalid Object file type.
An object file type was requested by the -g command line option that is not valid. See section on Option g - Object File Format.  

Invalid operand.
No indirection for this instruction. The first character of an operand was a left parenthesis for an instruction that does not explicitly specify that as the format. Some micros use the parenthesis as an indicator of indirection, but putting a layer of parenthesis around an expression is always a valid thing to do (as far as the expression evaluator is concerned). The test for this case is only done if the -a4 option is selected. See section on ASSEMBLY CONTROL.  

Invalid token where value expected.
Two binary operators in a row are not allowed.  

Label too long.
Labels are limited to 31 characters.  

Label value misaligned
The value of a label appears to have a different value on the second pass then it was computed to have on the first pass. This is generally due to Zero Page Addressing mode problems with the 6502 version of TASM. Labels that are used in operands for statements that could utilize Zero Page addressing mode should always be defined before used as an operand.  

Label not found
A label used in an expression was not found in the current label table.  

Label must pre-exist for SET.
The SET directive can only be applied to an existing label.  

Label table overflow
To many labels have been encountered.  

List file open error
TASM was not able to open the specified list file.  

Macro expansion too long.
The expansion of a macro resulted in a line that exceeded the maximum length.  

Max number of nested conditionals exceeded
Too many levels of IF, IFDEF, or IFNDEF.  

Maximum number of args exceeded
Too many macro arguments.  

Maximum number of macros exceeded
Too many macros (DEFINEs) have been encountered.  

No END directive before EOF
The source file did not have an END directive in it. This is not fatal, but may cause the last object file record to be lost.  

No files specified
TASM was invoked with no source file specified.  

No such label
A SET directive was encountered for a label not yet defined. The value of labels that are modified by the SET directive must already exist.  

No terminating quote
A double quote was used at the start of a a text string but was not used at the end of the string.  

No indirection for this instruction.
A parenthesis was found around the operand expression. This may indicate an attempt to use indirection where it is inappropriate.  

Non-unary operator at start of expression
A binary operator (such as '*') was found at the beginning of an expression. Some micros use '*' as an indirection operator. Since it is also a legitimate operator in an expression, some ambiguity can arise. If a particular instruction/addressing mode does not allow indirection, and a '*' is placed in front of the associated expression, the assembler will assume this error. See the -a8 option of ASSEMBLY CONTROL.  

Object file open error
TASM was not able to open the specified object file.  

Range of argument exceeded
The value of an argument exceeds the valid range for the current instruction and addressing mode.  

Range of relative branch exceeded
A branch instruction exceeds the maximum range.  

Source file open error
TASM was not able to open the specified source file.  

Unrecognized directive
A statement starting with a '.' or '#' has a mnemonic that is not defined as a directive.  

Unrecognized instruction
A statement has an opcode mnemonic that is not defined.  

Unrecognized argument
A statement has an operand format that is not defined.  

Unknown token
Unexpected characters were encountered while parsing an expression.  

Unused data in MS byte of argument
An instruction or directive used the least significant byte of an argument and left the most significant byte unused, but it was non-zero.  

Unknown option Flag.
Invalid option flag has been specified on the command line. invoke TASM with nothing on the command line to see a list of valid options.  



TASM. Copyright (C) 1998 by Squak Valley Software.
All rights reserved.