ID Number: Q58864
5.10 5.10a
MS-DOS
Summary:
The following macro can be used to determine the segment from which
the macro is called during assembly of a source file.
In the following example, the "findseg" macro is called from within
two individual segments named code1 and code2, respectively. The macro
then uses IF statements to determine the segment. Then, depending upon
the segment, any desired code can be assembled.
findseg macro segname
ifidn <code1>, <segname> ; if in segment code1
: ; do what is desired
endif
ifidn <code2>, <segname> ; if in segment code2
: ; do what is desired
endif
endm ; end macro
findseg code1 ;macro call in segment code1
.
.
.
findseg code2 ;macro call in segment code2
Note that invoking the findseg macro with the @curseg equate as a
macro argument will not yield a true condition for the ifidn
expression. The value of "segname" is resolved to the string "@curseg"
which, in the example, is identical to "code1".