*COMDECK MACREL 
          IDENT  MACREL 
          SYSCOM B1 
          ENTRY  MACREL.
          ENTRY  MACREL=
          TITLE  MACREL - SYSTEM MACRO INTERFACE ROUTINES.
          COMMENT SYSTEM MACRO INTERFACE ROUTINES.
          COMMENT COPYRIGHT CONTROL DATA CORP. 1978.
 MACREL   SPACE  4,10 
***       MACREL - SYSTEM MACRO INTERFACE ROUTINES. 
* 
*         T. R. RAMSEY.      76/08/08.
*         M. D. PICKARD      77/03/14.
*         J. D. BRANHAM.     78/09/12.
*         N. A. DEILY.       85/07/01. MODIFIED FOR NOS - NOS/BE. 
* 
 MACREL   SPACE  4,10 
***              *MACREL* IS A COLLECTION OF RELOCATABLE MODULES THAT 
*         PROVIDE THE INTERFACE BETWEEN HIGHER LEVEL LANGUAGE MODULES 
*         AND THE SYSTEM MACROS.
* 
*         *FORTRAN* CALLING SEQUENCES ARE SHOWN IN EACH MODULE ALONG
*         WITH OTHER PERTINENT INFORMATION, E.G., ENTRY, EXIT.
* 
*         ALSO *SYMPL* CALLING SEQUENCES ARE SHOWN IN EACH MODULE 
*         ALONG WITH THE APPROPRIATE *SYMPL* DATA TYPES NEEDED
*         FOR ENTRY/EXIT. 
          TITLE  MACREL - SYSTEM MACRO INTERFACE ROUTINES.
 MACREL   SPACE  4,10 
**               *MACREL* MODULES TRANSLATE PARAMETERS IN HIGHER LEVEL
*         LANGUAGE CALLING SEQUENCES INTO MACRO CALLING SEQUENCES.
*         *FORTRAN* CALLING SEQUENCES MENTIONED ARE EQUIVALENT TO 
*         COBOL (ENTER USING), *SYMPL*, ETC.
* 
*         ENTRY  *FORTRAN* CALL AND FUNCTION REFERENCE CALLING
*                SEQUENCES USE THE ACTUAL PARAMETER LIST, CALL BY 
*                REFERENCE CALLING SEQUENCE WHERE - 
*                 (A1)      = FWA OF PARAMETER ADDRESS LIST.
*                ((A1))     = FIRST PARAMETER 
*                ((A1+1))   = SECOND PARAMETER
*                  .          . 
*                  .          . 
*                  .          . 
*                ((A1+N))   = N-TH PARAMETER
*                ((A1+N+1)) = 0 (ZERO)  (NOMINALLY) 
*                 (X1)      = FIRST PARAMETER 
* 
*         EXIT   (X6) = FUNCTION RESULT.
*                (X7) = SECOND WORD OF TWO WORD RESULT, E.G., COMPLEX.
* 
*         NEEDS  EACH MODULE CONTAINS A CALL TO A MACRO WHOSE NAME IS 
*                THE SAME AS THE MODULE (EXCEPT WHERE NOTED).  THESE
*                MACROS ARE DEFINED IN *SYSTEXT*/*PSSTEXT* OR *CPUTEXT*.
* 
*         NOTE   B1 IS SET TO ONE UPON ENTRY TO EACH MODULE 
* 
*         OTHER  *MACREL* IS A COLLECTION OF RELOCATABLE MODULES
*                COMBINED INTO ONE DECK.
 MACREL.  SPACE  4,10 
**        MACREL. - UNDEFINED MACRO PROCESSOR.
* 
*         ENTRY  (X1) = MACRO NAME IN 0L FORMAT.
* 
*         USES   X - 6. 
*                A - 6. 
*                B - 1. 
* 
*         MACROS ABORT, MESSAGE.
  
  
 MACREL.  SUBR               ENTRY/EXIT 
          SB1    1
          BX6    X1 
          SA6    MACA+3 
          MESSAGE  MACA,LOCAL,R 
          ABORT 
  
 MACA     DATA   C* MACREL - UNDEFINED MACRO -   FILL-IN.*
 MACREL=  SPACE  4,10 
**        MACREL= - ILLEGAL ARGUMENT PROCESSOR. 
* 
*         ENTRY  (X1) = MACRO NAME IN 0L FORMAT.
*                (X2) = THE ILLEGAL ARGUMENT. 
* 
*         USES   X - 0, 1, 2, 6.
*                A - 6. 
*                B - 1. 
* 
*         CALLS  ZTB=.
* 
*         MACROS ABORT, MESSAGE.
  
  
 MACREL=  SUBR               ENTRY/EXIT 
          SB1    1
          BX0    X2          SAVE SECOND ARGUMENT 
          LX1    -6 
          SX2    1R-
          BX1    X1+X2
          RJ     =XZTB= 
          BX1    X0 
          SA6    MACB 
          RJ     =XZTB= 
          SA6    MACB+3 
          MESSAGE  MACB,LOCAL,R 
          ABORT 
  
 MACB     DATA   C* FILL-IN - ILLEGAL ARGUMENT  >FILL-IT-IN<.*
  
          END 
