The MUMPS_BINDING Macro

To convert data from descriptor format into M typeless data, a call to GT.M uses code generated by a VMS MACRO assembler macro named MUMPS_BINDING, which is delivered in GTM$DIST:GTMZCALL.MLB. The macro is not to be confused with external call tables; MUMPS_BINDING lines must not appear within the scope of external call tables.

The macro has the following format:

	MUMPS_BINDING ENTRYREF=labelref,
	LINKNAME=name[, OUTPUT={Y[ES] | N[O]}]
	

MUMPS_BINDING is the name of the macro.

ENTRYREF is a required keyword. Its argument identifies the M optional label and required routinename in standard M format. The label and routinename must be upper-case in the M code and, if parameters are required, must identify a formallabel, that is, a label with a formallist for receiving passed parameters. Note that offsets are not permitted in the ENTRYREF argument. Note also that if the labelref starts with "^x," that the ENTRYREF argument should be enclosed in angle-brackets (<>) to prevent the assembler from misinterpreting ^x as an introducer for a hexadecimal number.

LINKNAME is a required keyword. Its argument identifies the name that the non-GT.M program uses in its call. This may or may not be similar to the M entryref, but it never includes the circumflex (^) delimiter required in M and in the macro.

The combination of ENTRYREF and LINKNAME permits non-M programs to call labelled entry points in M without requiring M entryref syntax.

OUTPUT is an optional keyword. Its argument specifies whether the M routine is in the form of an extrinsic that returns a value. By default, the routine is treated as a DO that does not return a value (OUTPUT=NO). If the routine returns a value (OUTPUT=YES), the first call argument is skipped during parameter passing at the time of the M invocation and that argument receives the value returned at the completion of the M routine.