COMCSYS 
COMMON
          CTEXT  COMCSYS - PROCESS SYSTEM REQUEST.
 SYS      SPACE  4
          IF     -DEF,QUAL$,1 
          QUAL   COMCSYS
          BASE   D
*         COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SYS      SPACE  4
***       COMCSYS - PROCESS SYSTEM REQUEST. 
*         G. R. MANSFIELD.  70/10/09. 
 SYS      SPACE  4
***              COMCSYS CONTAINS ROUTINES FOR PROCESSING CERTAIN 
*         SYSTEM REQUESTS.
 SYS      SPACE  4
***       SYS - PROCESS SYSTEM REQUEST. 
* 
*         ENTRY  (X6) = SYSTEM REQUEST. 
* 
*         EXIT   REQUEST PROCESSED. 
* 
*         USES   X - NONE.
*                B - NONE.
*                A - 1, 6.
* 
*         ERROR  ABORTS IF (RA+1) .NE. 0 AT ENTRY.
  
  
 SYS1     XJ
  
 SYS=     PS                 ENTRY/EXIT 
          SA1    1
          NZ     X1,*+400000B  IF (RA+1) .NE. 0, ABORT
          SA6    1           STORE REQUEST IN RA+1
          EQ     SYS1        ISSUE REQUEST
 RCL      SPACE  4
***       RCL - PLACE PROGRAM ON RECALL.
* 
*         ENTRY  NONE.
* 
*         EXIT   REQUEST PROCESSED. 
* 
*         USES   X - 6. 
*                B - NONE.
*                A - 1, 6.
* 
*         ERROR  ABORTS IF (RA+1) .NE. 0 AT ENTRY.
  
  
 RCL1     XJ
  
 RCL=     PS                 ENTRY/EXIT 
          SX6    3RRCL
          SA1    1
          LX6    42 
          NZ     X1,*+400000B  IF (RA+1) .NE. 0, ABORT
          SA6    A1          STORE REQUEST IN RA+1
          EQ     RCL1        ISSUE REQUEST
 WNB      SPACE  4,15 
***       WNB - WAIT NOT BUSY.
*         WAIT FOR FET STATUS WORD BIT 0 TO BE SET. 
*         IF WORD IS INITIALLY 0, RETURN. 
* 
*         ENTRY  (X2) = ADDRESS OF STATUS WORD. 
* 
*         EXIT   RETURN WHEN BIT 0 OF STATUS WORD IS SET. 
* 
*         USES   X - 1, 6.
*                B - NONE.
*                A - 1, 6.
* 
*         ERROR  ABORTS IF (RA+1) .NE. 0 AT ENTRY.
  
  
 WNB2     SX1    3RRCL       BUILD RECALL 
          PX6    X1 
          LX6    42 
          BX6    X6+X2       MERGE FET ADDRESS
          SA1    1
          NZ     X1,*+400000B  IF (RA+1) .NE. 0, ABORT
          SA6    1           STORE REQUEST IN RA+1
          XJ
  
 WNB=     PS                 ENTRY/EXIT 
 WNB1     SA1    X2          CHECK STATUS WORD
          LX1    59 
          NG     X1,WNB=     IF STATUS BIT SET
          NZ     X1,WNB2     IF NOT BLANK STATUS
          EQ     WNB=        EXIT WHEN BLANK STATUS 
 MSG      SPACE  4,20 
***       MSG - SEND MESSAGE. 
* 
*         ENTRY  (X1) = ADDRESS OF MESSAGE. 
*                (X6) = MESSAGE OPTION(S).
*                            BIT 16 = AUTO RECALL.
*                            BITS 0 - 15 = MESSAGE OPTION.
*                IF UPPER 12 BITS OF LOCATION SPECIFIED BY *ADDR* 
*         ARE ZERO, THEN THE FOLLOWING 18 BITS ARE THE
*         ADDRESS OF THE MESSAGE (I.E. 12/0,18/LOC,30/0). 
* 
*         EXIT   RETURN WHEN OPERATION COMPLETE.
* 
*         USES   X - 1, 6.
*                B - NONE.
*                A - 6. 
* 
*         ERROR  ABORTS IF (RA+1) .NE. 0 AT ENTRY.
  
  
 MSG1     LX1    40-59
 MSG2     SX6    3RMSG       FORM *MSG* REQUEST 
          LX6    42 
          BX6    X6+X1
          SA1    1
          NZ     X1,*+400000B  IF (RA+1) .NE. 0, ABORT
          SA6    1           STORE REQUEST IN RA+1
          XJ
  
 MSG=     PS                 ENTRY/EXIT 
          LX6    24          MERGE OPTION(S) AND ADDRESS
          BX1    X6+X1
          SX6    X1          SET MESSAGE ADDRESS
          LX1    59-40
          PL     X1,MSG1     IF NO AUTO RECALL
          LX1    40-59
          BX1    X1-X6       REMOVE THE MESSAGE ADDRESS 
          LX6    30 
          SA6    MSGA        STORE THE STATUS WORD
          SX6    A6 
          BX1    X1+X6       SET THE INDIRECT ADDRESS 
          EQ     MSG2 
  
 MSGA     VFD    30/**,30/0  STATUS MESSAGE FOR INDIRECT ADDRESSING 
          SPACE  4
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SYS=     EQU    /COMCSYS/SYS=
 RCL=     EQU    /COMCSYS/RCL=
 WNB=     EQU    /COMCSYS/WNB=
 MSG=     EQU    /COMCSYS/MSG=
 QUAL$    ENDIF 
          ENDX
