*DECK,CIODONE 
USETEXT CYBRDEF 
USETEXT MISC$ 
USETEXT ACN$COM 
USETEXT DCB$COM 
USETEXT GLOBALI 
USETEXT UCB$COM 
      PROC CIODONE; 
      BEGIN # CIODONE # 
*IF DEF,IMS 
 #
*1DC  CIODONE 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        CIODONE             B. M. WEST          31 MAY 1977
* 
*     2. FUNCTIONAL DESCRIPTION.
*        CIODONE IS AN EVENT PROCESSOR WHICH CHECKS FOR CIO COMPLETION. 
* 
*     3. METHOD USED. 
*        CIODONE CHECKS THE COMPLETION BIT DETERMINE BY THE CONNECTION
*        DEVICE TYPE. IF THE COMPLETION BIT IS SET THEN CIODONE 
*        REMOVES THE CONNECTION FROM THE EVENT CHAIN AND PLACES IT ON 
*        CHAIN SPECIFIED IN ACN$CHAIN OF THE CONNECTION"S ACN$TABLE 
*        ENTRY. IF THE COMPLETION BIT IS NOT SET THEN CIODONE RETURNS 
*        WITH THE CONNECTION UNAFFECTED.
* 
*     4. ENTRY PARAMETERS. NONE.
* 
*     5. EXIT PARAMETERS. NONE. 
* 
*     6. COMDECKS CALLED. 
*        CYBERDEFS
*        RBF$COM
*        DCB$COM
*        UCB$COM
* 
*     7. ROUTINES USED. 
*        LINK, REMOVE 
* 
*     8. DAYFILE MESSAGES. NONE.
* 
 #
*ENDIF
  
      XREF PROC LINK;        # LINK ACN TO MODULE                      #
      XREF PROC REMOVE;      # REMOVE ACN FROM A CHAIN                 #
  
      IF ACN$DEVTYPE [ACN] EQ S"CARD$READER" AND UCB$FETCB
         OR 
         (ACN$DEVTYPE [ACN] GQ S"LINE$PRINTER" AND DCB$FETCB) 
      THEN
        BEGIN # COMPLETED # 
        REMOVE (CHAINS"EVENT"); 
        LINK (ACN$CHAIN [ACN],NOEVENT); 
        END   # COMPLETED # 
      ELSE
        SYSACT = TRUE;                     #PP ACTIVITY OUTSTANDING    #
      RETURN; 
      END   # CIODONE # 
      TERM
