This reply has been edited to save space --

>The types are fixed by the <verb>: SETAF, SETBF, or SETCF.

As noted in an earlier post, there's no SETBF statement.

> What happens if an external function called with a SETB-type
> argument attempts to return, for example a SETC-type result?

You can do this by substituting your boolean variable into a character
argument, as in
&Cval   SETC   'MyCFunction','&Boolval'

> Must the arguments and results of external functions be self-
> defining terms, or may the be, for example, relocatable address
> values?

You can pass any character string to a SETCF function, and any arithmetic
value to a SETAF function.  However, because conditional assembly is done
during the first assembly pass and relocatable address values aren't
determined untili the very end of that pass, it's unlikely that you'd be
able to pass relocatable values successfully in most cases.

> What are the first-class objects of HLASM (at assembly time, not at
execution)?

I'm not sure what "first-class" implies -- could you elaborate?

As a tentative guess, I'd list (1) symbols, (2) control sections, (3)
location counters. Perhaps anything that appears in the object module?

Reply via email to