SPL,L,O,M,C 
!     NAME:   CNT.
!     SOURCE: 92064-18042 
!     RELOC:  92064-16063 
!     PGMR:   G.A.A.
!     MOD:    G.L.M.
! 
!  ***************************************************************
!  * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1977.  ALL RIGHTS     *
!  * RESERVED.  NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED,      *
!  * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT*
!  * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY.       *
!  ***************************************************************
! 
! 
      NAME CNT.(7) " 92064-16063  REV.1650  761020" 
! 
! 
! 
!     THE FOLLOWING IMPLEMENTS THE CONTROL COMMAND. 
! 
!     :CN [[[,NAMR][,FUNCTION][,SUB-FUNCTION]]] 
! 
       LET OPEN.,FCONT,EXEC BE SUBROUTINE,EXTERNAL
       LET IDCB1,N.OPL BE INTEGER,EXTERNAL
! 
       LET PTR,EQWD5,NAMR,FUNC,FUNCT BE INTEGER 
       LET SUBF,SUBFN,FTAB,FTAB1 BE INTEGER 
       LET FTAB2 BE INTEGER (3) 
       LET FTAB3 BE INTEGER 
       LET FTAB4 BE INTEGER (9) 
       LET FTAB5,FTAB6 BE INTEGER 
! 
       INITIALIZE FTAB,FTAB1,FTAB2,FTAB3,FTAB4,FTAB5,\
          FTAB6 TO "RW",400K,"EO",100K,"TO",1100K,   \
          "FF",1300K,"BF",1400K,"FR",300K,"BR",200K, \
          "LE",1000K,0
! 
! 
CNT.:  SUBROUTINE(NUM,PLIST,ERR) GLOBAL 
       LET NUM,PLIST,ERR BE INTEGER 
       SUBFN _ [SUBF _ [FUNCT _ [FUNC _     \SET UP POINTERS
          [NAMR _ @PLIST + 1] + 3] + 1]     \AND, IF NECESSARY, 
          + 3] + 1
       IFNOT PLIST THEN $NAMR _ 8           !THE DEFAULT FOR NAMR.
       CALL OPEN.(IDCB1,$NAMR,N.OPL,10K)    !OPEN THE FILE OR LU. 
       IFNOT $FUNC THEN GOTO DEFLT          !WAS FUNCTION SUPPLIED? 
       IF $FUNC = 3 THEN GOTO DCODE         !FUNCTION SUPPLIED.  IF 
       FUNC _ $FUNCT <- 6                   !NUMERIC, SHIFT TO
       GOTO SUBFU                           !PROPER POSITION. 
DCODE: NAMR _ @SUBF                         !IF ASCII, DECODE IT. 
TLOOP: IFNOT $[NAMR _ NAMR + 2] THEN [      \END OF TABLE?
PRMER:    ERR _ 56;  RETURN]                !PARAMETER ERROR. 
       IF ($FUNCT - $NAMR) THEN GOTO TLOOP  !MATCH? 
       FUNC _ $(NAMR+1)                     !YES - GET FUNCTION CODE. 
SUBFU: IFNOT $SUBF THEN $SUBFN _ -2         !DEFAULT SUBFN IF NEC.
       CALL FCONT(IDCB1,ERR,FUNC,$SUBFN)    !SEND THE CONT. FUNC. 
       IF ERR = -12 THEN ERR _ 0
       RETURN 
DEFLT: PTR _ @IDCB1 + 2                     !FUNCTION NOT SUPPLIED. 
       IFNOT PLIST = 3 THEN GOTO DELF1      !FIND DEFAULT. FOR FILE 
       IF $PTR THEN GOTO PRMER              !NAME, CHECK IF TYPE 0. 
       $NAMR _ $(PTR+1)                     !GET LOGICAL UNIT #.
DELF1: CALL EXEC(100015K,$NAMR,EQWD5,EQ4,SC)!GET DEVICE TYPE. 
       GOTO PRMER                           !ERROR RET. FROM EXEC 
       IF [EQ4_ (EQWD5 AND 37400K)] >      \IF DEV. TYPE > 16,
          7000K THEN[FUNC_FTAB1;GOTO SUBFU] !THEN DEFAULT = REWND.
       FUNC _ [IF EQ4 = 2400K AND \         !IF CTU THEN DEFAULT
        (SC=1 OR SC=2) THEN FTAB1,ELSE $(PTR+2)]!  = REWIND 
       GOTO SUBFU 
       END
       END
       END$ 
                                                                                                                                                                                                        