<div dir="ltr"><div dir="ltr">On Sat, Jul 13, 2024 at 2:50 PM John Levine <<a href="mailto:johnl@taugh.com">johnl@taugh.com</a>> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The more relevant question is how they used the macros. If the macros<br>
were used consistently for semantically higher level things, the<br>
translator can use the semantics of the macros when translating.<br>
<br></blockquote><div>There is an assembly macro for each of the user-mode VMS system services These are wrappers around the RTL subroutines. So, for example, the $QIO (queue I/O) macro is a wrapper around a call to the SYS$QIO runtime library routine. There is a similar set of macros for the RMS (record management services--the VMS file I/O system) data structures and routines.</div><div><br></div><div>The VAX MACRO compiler could perhaps use the semantics of the macros when translating, but it doesn't. It has to support semantics-free macro expansion since users can write their own macros, so there is little point in building semantic knowledge into the translator.</div><div><br></div><div>-Paul W. <br></div></div></div>