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

	$ MACRO ...,FERMI$LIB:FERMILIB/LIBRARY...

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

	.LIBRARY  "FERMI$LIB:FERMILIB.MLB"

2 $_RAD50L

     $.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

     $.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

     $.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 BERR

      BERR  error

 Branches on an error following a system or user routine call that
 returns a condition code in R0 (the low bit of R0 is 0 for error,
 severe error and warning completion codes).

 error    label to branch to if the R0 completion code indicates
          an error (of any class).

2 BNERR

      BNERR  success

 Branches on 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 informational completion codes).

 success    label to branch to if the R0 completion code indicates
            success.

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 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 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.

2 _SIGNAL

      _SIGNAL  {name}

 Signal a condition by calling LIB$SIGNAL.  If no argument is given,
 the condition code is assumed to be in R0.  Otherwise the argument
 is taken to be the name of the constant condition code.

2 _STOP

      _STOP  {name}

 Signal a condition and stop by calling LIB$STOP.  If no argument is
 given, the condition code is assumed to be in R0.  Otherwise the
 argument is taken to be the name of the constant condition code.

2 _TSTSTOP

      _TSTSTOP  {success}

 Test for success condition code in R0.  If condition is not success
 (or informational), then signal the condition and stop by calling
 LIB$STOP.  If no argument is specified, success falls out the bottom
 of this macro.  If the argument is given, then detection of success
 causes a branch to the specified label (given as the argument).

