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