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$