1 Macros
 Some locally-defined system-wide macros are stored in the macro library
 FERMILIB.MLB in SYS$LIBRARY:.  This library can be referenced by the
 use of the /LIBRARY qualifier on the MACRO command line:

	$ MACRO ...,SYS$LIBRARY:FERMILIB/LIBRARY...

 or by expliciting including a .LIBRARY directive in the MACRO code:

	.LIBRARY  "SYS$LIBRARY:FERMILIB.MLB"

2 CASE

  CASE  src,<disp-list> {,TYPE=W} {,LIMIT=#0} {,NMODE=S^#}

 Generates a CASEx instruction (x is given by TYPE) and the case table
 dispatch list.

 src        source argument on which the CASE will dispatch to the
            correct label

 disp-list  list of labels to which control will transferred by the
            CASE instruction for sequential values of the source

 TYPE       data type of the CASE, default is WORD

 LIMIT      lower limit of CASE range (if source < limit, CASE falls
            through).  Default is #0.

 NMODE      Mode for maximum argument of CASE (default is S^#).


2 ERROR_BUGCHK
 The macro name is ERROR.BUGCHK, format of the macro call is:

  ERROR.BUGCHK  {bugchk,success} {,type=STOP}

 Tests for success following a system or user routine call that returns
 a condition code in R0.  If an error occurred, LIB$STOP or LIB$SIGNAL
 are called to signal a "bugcheck" and stop the process.

 bugchk     label for bugcheck routine call.  If a label is given for
            this parameter, either it must be a local label or labels
            must be given for both the bugchk and success parameters!

 success    success label (default to internal local label).

 type       either STOP (default) for LIB$STOP or SIGNAL for LIB$SIGNAL.


2 ERROR_CONT
 The macro name is ERROR.CONT, format of the macro call is:

  ERROR.CONT  success  {,error} 

 Tests for success following a system or user routine call that returns
 a condition code in R0 (the low bit of R0 is 1 for success and 
 information completion codes).

 success    success label to continue processing at

 error      if specified, this becomes the label at the start of the
            error processing code following the macro call.


2 ERROR_EXIT
 The macro name is ERROR.EXIT, format of the macro call is:

  ERROR.EXIT  {error} {,success} {,exit=RET}

 Tests for success following a system or user routine call that
 returns a condition code in R0.  If an error label is specified, a
 branch to it (byte-displacment) will be taken if the low bit of R0 is
 zero.  If the error parameter is not given, then a skip over an error
 exit will be made if the low bit of R0 is one (success/informational)
 where the error exit instruction (either RET or RSB) is given by the
 exit parameter (default is RET).

 error      if specified, a BLBC (branch-on-low-bit-clear) on R0 is
            generated with this as the destination address.

 success    success label (default to internal local label).

 exit       if error not specified, then this provides the means for
            exiting the routine on an error.  Default is RET.


2 POPREG

  POPREG  regnum

 POPREG pops a longword off the top of the stack into a general register.
 For registers R6-R14, the instruction "MOVL (SP)+,Rn" is used to pop the
 value.  For registers R0-R5, the shorter (by one byte) sequence of
 "POPR #^M<Rn>" is used.

 regnum     register number to which the longword on top of stack
            is to be restored

2 $_RAD50L
 The macro name is $.RAD50L (analogous to an assembler directive), the
 format of the macro call is:

  $.RAD50L  text

 Generate a longword (.LONG) containing the Radix-50 value of a 1-6
 character text string.

 text       1-6 character string to be stored as Radix-50.


2 $_RAD50S
 The macro name is $.RAD50S (analogous to an assembler directive), the
 format of the macro call is:

  $.RAD50S  sym,text

 Define a symbol to have the Radix-50 value of a 1-6 character
 text string.

 sym        symbol to be defined with Radix-50 value.

 text       1-6 character string to be stored as Radix-50.


2 $_RAD50W
 The macro name is $.RAD50W (analogous to an assembler directive), the
 format of the macro call is:

  $.RAD50W  text

 Generate a .WORD containing the Radix-50 value of a 1-3 character text
 string.

 text      1-3 character text string to be stored as a Radix-50 value.


2 TRANSFER_VECTOR

  TRANSFER_VECTOR  entry {,JUMP=BRW}

 This macro generates a transfer vector for a shareable image.

 entry      name of routine entry point (must be defined by .ENTRY).

 jump       means by which control will be transferred to routine.
            Default is BRW, alternative is JMP.


