On 2018-08-25, at 07:06:30, Peter Relson wrote:

> The documentation seems quite clear to me. Almost every macro written in 
> the last 20+ years has used this same syntax for the list form. We felt it 
> best to have the syntax for list form be analogous to that for execute and 
> modify forms.
>  
Most of my assembler use antedates 20+ years ago (FSVO "+").  I was
familiar with only the "MF=L" form, not "MF=(L,list addr)".  I believe
that what the OP stumbled on is that the List form *defines* the symbol
"list addr"; the Execute form *refers* to a symbol defined by that
List form.

Yes, the documentation says, "The list form defines an area of storage".
It's reasonable to assume, as the OP apparently did, that "list addr"
refers to a storage area provided by the user, and that the list form
defines its content.  Better would be, '"The list form defines an area of
storage and defines the symbol 'list addr' to the beginning of that area".

Repeating that description for every macro would be tedious.  Better
would be a section in the Users Guide describing techniques for using
List and Execute forms.

(Interesting: I notice that for older macros with "M=L" the parameter
descriptions are in table form; for newer macros with "MF=(L,list addr)"
the descriptions are in outline form.  A distressing inconsistency, but
I suspect the resource to make it consistent (without introducing errors)
is unavailable.)

> The syntax diagram shows the valid format. As does the parameter 
> description.
> 
> For example,
> 
> ,MF=(L,list addr)
> ,MF=(L,list addr,attr)
> ,MF=(L,list addr,0D)
> 
> You mention a "DSECT".  I cannot think of any case where a list form 
> builds a DSECT. You might put a list form within a DSECT. But that is your 
> DSECT.

-- gil

Reply via email to