*COMDECK,COMPCHNM 
 MAIN     CTEXT  COMPCHNM - CHANNEL MACRO DEFINITIONS.
  
          COMMENT COMPCHNM - CHANNEL MACRO DEFINITIONS 79/12/01.
  
          COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1994. 
 MAIN     SPACE  5,6
**               COMPCHNM - DRIVER CHANNEL MACRO DEFINITIONS. 
* 
**               R. M. KERR  79/12/01 
 MAIN     SPACE  5,18 
**               COMPCHNM - CHANNEL MACRO DEFINITIONS.
* 
*                COMPCHNM IS A COMPLETE SET OF CHANNEL MACRO DEFINITIONS
*                THAT ALLOWS THE ASSEMBLY OF CHANNEL INSTRUCTIONS WITH
*                NO CHANNEL SPECIFIED AND MAINTAINS A LIST OF THE 
*                ADDRESSES OF THE CHANNEL INSTRUCTIONS.  THE LIST OF
*                ADDRESSES CAN BE ACCESSED BY CALLING THE REMOTE TEXT 
*                NAMED *CIT*. 
* 
*                THE CHANNEL MACRO DEFINITIONS USE THE SYMBOL *NHO* TO
*                DEFINE THE NO HANG OPTION ON THE REQUIRED CHANNEL
*                INSTRUCTIONS.  IF THE NO HANG OPTION IS DESIRED, *NHO* 
*                SHOULD BE SET TO THE BIT VALUE REQUIRED FOR THE NO 
**               HANG FEATURE.  OTHERWISE *NHO* SHOULD BE SET TO ZERO.
 ACN.     SPACE  5,18 
**               MACRO ACN..
* 
*                MACRO ACN. ACTIVATES THE CHANNEL AND GENERATES AN
*                ENTRY IN THE CHANNEL INITIALIZATION ADDRESS TABLE. 
* 
*                  MACRO CALL - 
* 
**                           ACN. 
  
  
          PURGMAC ACN.
 ACN.     MACRO 
  LOCAL B 
 B ACN **&NHO 
 CIT RMT
          CON    B
 CIT RMT
 ACN.     ENDM
 AJM.     SPACE  2,20 
**               MACRO AJM..
* 
*                MACRO AJM. TRANSFERS CONTROL TO THE ADDRESS SPECIFIED
*                IF THE CHANNEL IS ACTIVE.  AN ENTRY IS ALSO MADE IN
*                THE CHANNEL INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
*                            AJM.   ADDR
* 
*                    WHERE -
* 
*                      *ADDR* = ADDRESS TO TRANSFER CONTROL 
**                              IF CHANNEL IS ACTIVE. 
  
  
          PURGMAC AJM.
 AJM.     MACRO  A
  LOCAL B 
 B AJM A,** 
 CIT RMT
          CON    B
 CIT RMT
 AJM.     ENDM
 DCN.     SPACE  2,14 
**               MACRO DCN..
* 
*                MACRO DCN. DISCONNECTS THE CHANNEL AND GENERATES AN
*                ENTRY IN THE CHANNEL INITIALIZATION ADDRESS TABLE. 
* 
*                  MACRO CALL - 
* 
**                           DCN. 
  
  
          PURGMAC DCN.
 DCN.     MACRO 
  LOCAL B 
 B DCN **&NHO 
 CIT RMT
          CON    B
 CIT RMT
 DCN.     ENDM
 EJM.     SPACE  2,20 
**               MACRO EJM..
* 
*                MACRO EJM. TRANSFERS CONTROL TO THE ADDRESS SPECIFIED
*                IF THE CHANNEL IS EMPTY.  AN ENTRY IS ALSO MADE IN 
*                THE CHANNEL INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
*                            EJM.   ADDR
* 
*                    WHERE -
* 
*                      *ADDR* = ADDRESS TO TRANSFER CONTROL 
**                              IF CHANNEL IS EMPTY.
  
  
          PURGMAC EJM.
 EJM.     MACRO  A
  LOCAL B 
 B EJM A,** 
 CIT RMT
          CON    B
 CIT RMT
 EJM.     ENDM
 FAN.     SPACE  2,16 
**               MACRO FAN..
* 
*                MACRO FAN. FUNCTIONS THE CHANNEL FROM THE A-REGISTER 
*                AND GENERATES AN ENTRY IN THE CHANNEL INITIALIZATION 
*                ADDRESS TABLE. 
* 
*                  MACRO CALL - 
* 
**                           FAN. 
  
  
          PURGMAC FAN.
 FAN.     MACRO 
  LOCAL B 
 B FAN **&NHO 
 CIT RMT
          CON    B
 CIT RMT
 FAN.     ENDM
 FJM.     SPACE  2,20 
**               MACRO FJM..
* 
*                MACRO FJM. TRANSFERS CONTROL TO THE ADDRESS SPECIFIED
*                IF THE CHANNEL IS FULL.  AN ENTRY IS ALSO MADE IN
*                THE CHANNEL INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
*                            FJM.   ADDR
* 
*                    WHERE -
* 
*                      *ADDR* = ADDRESS TO TRANSFER CONTROL 
**                              IF CHANNEL FULL.
  
  
          PURGMAC FJM.
 FJM.     MACRO  A
  LOCAL B 
 B FJM A,** 
 CIT RMT
          CON    B
 CIT RMT
 FJM.     ENDM
 FNC.     SPACE  2,20 
**               MACRO FNC..
* 
*                MACRO FNC. FUNCTIONS THE CHANNEL WITH A CONSTANT AND 
*                GENERATES AN ENTRY IN THE CHANNEL INITIALIZATION 
*                ADDRESS TABLE. 
* 
*                  MACRO CALL - 
* 
*                            FNC.   FC
* 
*                    WHERE -
* 
**                     *FC* = FUNCTION CODE.
  
  
          PURGMAC FNC.
 FNC.     MACRO  A
  LOCAL B 
 B FNC A,** 
 CIT RMT
          CON    B
 CIT RMT
 FNC.     ENDM
 IAM.     SPACE  2,20 
**               MACRO IAM..
* 
*                MACRO IAM. INPUTS A BLOCK OF WORDS FROM THE CHANNEL
*                INTO MEMORY AND GENERATES AN ENTRY IN THE CHANNEL
*                INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
*                            IAM.   ADDR
* 
*                    WHERE -
* 
**                     *ADDR* = MEMORY ADDRESS AT WHICH INPUT STARTS. 
  
  
          PURGMAC IAM.
 IAM.     MACRO  A
  LOCAL B 
 B IAM A,** 
 CIT RMT
          CON    B
 CIT RMT
 IAM.     ENDM
 IAN.     SPACE  2,16 
**               MACRO IAN..
* 
*                MACRO IAN. INPUTS A WORD FROM THE CHANNEL INTO THE 
*                A-REGISTER AND GENERATES AN ENTRY IN THE CHANNEL 
*                INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
**                           IAN. 
  
  
          PURGMAC IAN.
 IAN.     MACRO 
  LOCAL B 
 B IAN **&NHO 
 CIT RMT
          CON    B
 CIT RMT
 IAN.     ENDM
 IJM.     SPACE  2,20 
**               MACRO IJM..
* 
*                MACRO IJM. TRANSFERS CONTROL TO THE ADDRESS SPECIFIED
*                IF THE CHANNEL IS INACTIVE.  AN ENTRY IS ALSO MADE IN
*                THE CHANNEL INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
*                            IJM.   ADDR
* 
*                    WHERE -
* 
*                      *ADDR* = ADDRESS TO TRANSFER CONTROL 
**                              IF CHANNEL INACTIVE.
  
  
          PURGMAC IJM.
 IJM.     MACRO  A
  LOCAL B 
 B IJM A,** 
 CIT RMT
          CON    B
 CIT RMT
 IJM.     ENDM
 OAM.     SPACE  2,20 
**               MACRO OAM..
* 
*                MACRO OAM. OUTPUTS A BLOCK OF WORDS FROM MEMORY TO 
*                THE CHANNEL AND GENERATES AN ENTRY IN THE CHANNEL
*                INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
*                            OAM.   ADDR
* 
*                    WHERE -
* 
**                     *ADDR* = MEMORY ADDRESS FROM WHICH OUTPUT STARTS.
  
  
          PURGMAC OAM.
 OAM.     MACRO  A
  LOCAL B 
 B OAM A,** 
 CIT RMT
          CON    B
 CIT RMT
 OAM.     ENDM
 OAN.     SPACE  2,16 
**               MACRO OAN..
* 
*                MACRO OAN. OUTPUTS A WORD TO THE CHANNEL FROM THE
*                A-REGISTER AND GENERATES AN ENTRY IN THE CHANNEL 
*                INITIALIZATION ADDRESS TABLE.
* 
*                  MACRO CALL - 
* 
**                           OAN. 
  
  
          PURGMAC OAN.
 OAN.     MACRO 
  LOCAL B 
 B OAN **&NHO 
 CIT RMT
          CON    B
 CIT RMT
 OAN.     ENDM
          SPACE  5,6
          ENDX
