9.3.1 Text Delimiters (< >) and the Literal-Character Operator (!)

The angle brackets (< >) are text delimiters. The most common reason to delimit a text value is when assigning a text macro. You can do this with TEXTEQU, as previously shown, or with the SUBSTR and CATSTR directives discussed in Section 9.5, “String Directives and Predefined Functions.” <$I<< \ra (angle brackets);macro text delimiters>

By delimiting the text of macro arguments, you can pass text that includes spaces, commas, semicolons, and other special characters. In the following example, assume you have previously defined a macro called work:

work <1, 2, 3, 4, 5> ; Passes one argument

; with 15 characters

work 1, 2, 3, 4, 5 ; Passes five arguments, each

; with 1 character

Since angle brackets are delimiters, you can't include them as part of a delimited text value. The literal-character operator (!) can be used to override this limitation. It forces the assembler to treat the character following it literally rather than as a special character.

errstr TEXTEQU <Expression !> 255> ; errstr = "Expression > 255"

Text delimiters also have a special use with the FOR directive, as explained in Section 9.4.3.