SUBROUTINE GNCL(CMDLST,COMCP,CMDNUM) LOGICAL*1 CMDLST(2) INTEGER*2 CMDNUM C CLP DECLARATIONS FOR COMMAND LINE PROCESSING COMMON/CLP/ 1 TYPNUL,TYPEOL,TYPEL,TYPINT,TYPFLT,TYPNAM,TYPSPC, 2 TLU,CLPEFN,CNTLZ,TRACE, 3 LINE,NXTCHR,TOKLEN,TOKTYP,INTVAL,FLTVAL,STRVAL,CHRVAL,USICHR INTEGER*2 TYPNUL,TYPEOL,TYPEL,TYPINT,TYPFLT,TYPNAM,TYPSPC INTEGER*2 TLU,CLPEFN,NXTCHR,TOKLEN,TOKTYP,INTVAL LOGICAL*1 LINE(82),STRVAL(82),CHRVAL,USICHR LOGICAL CNTLZ,TRACE REAL FLTVAL C LOCAL DECLARATIONS LOGICAL FOUND C BEGIN 1000 CALL PROMPT(0) CMDNUM=-1 IF(CNTLZ)RETURN CMDNUM=0 IF(LINE(1).EQ.0)RETURN C LOOK FOR COMMAND IN CMDLST CALL TOKEN IBEG=1 CALL LENSTR(CMDLST,LENLST) 1100 IF(IBEG.GE.LENLST)GO TO 1200 CMDNUM=CMDNUM+1 CALL GICHR(CMDLST(IBEG),' ',IND) IF(IND.EQ.0)GO TO 1110 CMDLST(IBEG+IND-1)=0 CALL CMPSTR(CMDLST(IBEG),STRVAL,IRES) CMDLST(IBEG+IND-1)=' ' IBEG=IBEG+IND GO TO 1120 1110 CALL CMPSTR(CMDLST(IBEG),STRVAL,IRES) IBEG=LENLST+1 1120 IF(IRES.EQ.0)RETURN GO TO 1100 C CALL COMCP TO LOOK FOR COMMAND 1200 FOUND=.FALSE. CALL COMCP(FOUND) IF(FOUND)GO TO 1000 CALL SYNERR CALL PLINE('ILLEGAL COMMAND') GO TO 1000 END