SPL,L,O ! NAME: CNT. ! SOURCE: 92067-18162 ! RELOC: 92067-16125 ! PGMR: A.M.G. ! ! *************************************************************** ! * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. 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.(8) "92067-16125 REV.1940 790802" ! ! ! THE FOLLOWING IMPLEMENTS THE CONTROL COMMAND. ! ! :CN [[[,NAMR][,FUNCTION][,SUB-FUNCTION]]] ! LET OPEN., \OPEN FILE OR LU FCONT, \SEND CONTROL FUNCTION EXEC \SYSTEM I/O BE SUBROUTINE,EXTERNAL ! LET O.BUF, \DCB BUFFER .E.R., \GLOBAL ERROR RETURN N.OPL \SUB-PARAMETER STORAGE 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.(O.BUF,$NAMR,N.OPL,10K) !OPEN THE FILE OR LU. IF .E.R. THEN GO TO ERR20 !NON TYPE-ZERO CHECK 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(O.BUF,ERR,FUNC,$SUBFN) !SEND THE CONT. FUNC. IF ERR = -12 THEN ERR _ 0 RETURN DEFLT: PTR _ @O.BUF + 3 !FUNCTION NOT SUPPLIED. CALL EXEC(100015K,$PTR,EQ5,NAMR,FUNC)!GET DEVICE TYPE. GO TO ERR20 !BAIL OUT IF ERROR ( NEVER HAPPEN) IF [EQ5 _ EQ5 AND 37400K] > 7000K THEN [ \IF TYPE > 16 RWCD: FUNC_FTAB1; GOTO SUBFU ] !USE REWIND IF EQ5 = 2400K THEN[ \IF DVR05 CHECK IF [FUNC _ FUNC AND 7] = 1 THEN GO TO RWCD; \IF CASSET USE REWIND IF FUNC = 2 THEN GO TO RWCD] !IF CASSET USE REWIND FUNC_$(PTR+1) !ELSE USE DEFAULT EOF GO TO SUBFU ! ERR20: ERR _ 20; RETURN !ILLEGAL LU ERROR. END END END$