SET TALK OFF SELECT SECONDARY USE DBHELP INDEX DBHELP STORE T TO HELPING DO WHILE HELPING ERASE ? ? ? ' DBHELP II.3 COVILL Assoc.' ? ' +-----------------------------------------------+' ? ' | C = list Commands |' ? ' | D = Display specific command |' ? ' | F = list Functions |' ? ' | S = list Set parameters |' ? ' | CR = Return |' ? ' +-----------------------------------------------+' ? WAIT TO HELP STORE !(HELP) TO HELP DO CASE CASE HELP='F' FIND F- SET INDEX TO DISP OFF LINE WHILE FLAG='F' DISP OFF '---------' SET INDEX TO DBHELP WAIT CASE HELP='S' FIND S- SET INDEX TO DISP OFF LINE WHILE FLAG='S' DISP OFF '-----------' SET INDEX TO DBHELP WAIT CASE HELP='C' SET INDEX TO GOTO TOP DISP OFF LINE FOR FLAG='C' DISP OFF '-----------' SET INDEX TO DBHELP WAIT CASE HELP='D' ACCEPT 'Enter Command Name (all or part) ' TO CNAME STORE 'C'+$(!(CNAME),1,4) TO CNAME FIND &CNAME IF #=0 ? '***COMMAND NOT FOUND***' ELSE SET INDEX TO DISP OFF '---------' DISP OFF LINE WHILE FLAG<>'C' .OR. LINE=$(CNAME,2,LEN(CNAME)-1) * i.e., up to the next flagged command that DOESNT match! DISP OFF '---------' SET INDEX TO DBHELP ENDIF RELEASE CNAME WAIT CASE HELP=' ' STORE F TO HELPING ENDCASE ENDDO RELEASE HELP,HELPING USE SELECT PRIMARY RETURN O TOP LOCATE FOR FLAG='C' .AND. LINE=CNAME IF EOF ? '***COMMAND NOT FOUND***' ELSE DISP OFF '---------' DISPLAY OFF LINE WHILE FLAG<>'C' .OR. LINE=CNAME DISP OFF '---------' ENDIF RELEASE CNAME WAIT CASE HELP=' ' STORE F TO HELPING ENDCASE ENDDO RELEASE HELP,HELPING USE SELECT PRIMAR  ACCEPT 'Enter Command Name (all or part) ' TO CNAME STORE !(CNAME) TO CNAME GOTO TOP LOCATE FOR FLAG='C' .AND. LINE=CNAME IF EOF ? '***COMMAND NOT FOUND***' ELSE DISP OFF '---------' LIST OFF LINE WHILE FLAG<>'C' .OR. LINE=CNAME DISP OFF '---------' ENDIF SE HELP=' ' STORE F TO HELPING ENDCASE ENDDO RELEASE HELP,HELPING USE SELECT PRIMAR