V10/cmd/matlab/helper.66

      SUBROUTINE HELPER(H)
      INTEGER H(4)
C
C     HANDLE HELP FILE
C     H = KEY WORD, FORMAT 4A1
C
C     FORTRAN 66 VERSION USING SEQUENTIAL ACCESS
C     ASSUMES THE HELP TEXT FILE IS ATTACHED TO THE UNIT HIO
C     WHICH IS SET IN SUBROUTINE MATLAB AND STORED IN COMMON
C     SEE THE COMMENTED OPEN STATEMENT BELOW
C
      INTEGER ALFA(52),ALFB(52),ALFL,CASE
      INTEGER DDT,ERR,FMT,LCT(4),LIN(1024),LPT(6),RIO,WIO,RTE,WTE,HIO
      INTEGER SYM,SYN(4),BUF(256),CHAR,FLP(2),FIN,FUN,LHS,RHS,RAN(2)
      COMMON /ALFS/ ALFA,ALFB,ALFL,CASE
      COMMON /IOP/ DDT,ERR,FMT,LCT,LIN,LPT,RIO,WIO,RTE,WTE,HIO
      COMMON /COM/ SYM,SYN,BUF,CHAR,FLP,FIN,FUN,LHS,RHS,RAN
      INTEGER HIO,LRECL,BLANK,CMD(4,17),CMDL
      DATA LRECL/80/,BLANK/1H /,CMDL/17/
      DATA CMD/
     $  12,21,14,10, 14,21,28,14, 14,23,13,36, 14,33,18,29,
     $  15,24,27,36, 17,14,21,25, 18,15,36,36, 21,24,23,16,
     $  27,14,29,30, 28,14,22,18,
     $  28,17,24,27, 32,17,10,29, 32,17,18,21,
     $  32,17,24,36, 32,17,34,36, 21,10,21,10, 15,30,12,20/
  101 FORMAT(80A1)
  102 FORMAT(1X,80A1)
C
C     INITIALIZATION INDICATED BY H(1) = 0
C     READ AND ECHO THE FIRST LINE
C
      IF (H(1) .NE. 0) GO TO 80
C     OPEN(UNIT=HIO,FILE='HELP',ACCESS='SEQUENTIAL',STATUS='OLD')
      REWIND HIO
      READ(HIO,101,END=89) (BUF(I),I=1,LRECL)
      GO TO 86
C
C     SPECIAL CASE, HELP FOLLOWED BY BLANK.  GIVE GENERAL HELP.
C
   80 IF (H(1) .NE. BLANK) GO TO 83
      WRITE(WTE,180)
      IF (WIO .NE. 0) WRITE(WIO,180)
  180 FORMAT(1X,'Type HELP followed by ...'
     $  /1X,'INTRO   (To get started)'
     $  /1X,'NEWS    (recent revisions)')
      H(1) = 0
      CALL FUNS(H)
      CALL PRNTID(CMD,CMDL-2)
      WRITE(WTE,181)
      IF (WIO .NE. 0) WRITE(WIO,181)
  181 FORMAT(1X,'ANS   EDIT  FILE  FUN   MACRO')
      WRITE(WTE,182) (ALFA(I),I=38,ALFL)
      IF (WIO .NE. 0) WRITE(WIO,182) (ALFA(I),I=38,ALFL)
  182 FORMAT(1X,17(A1,1X)/)
      GO TO 98
C
   83 REWIND HIO
   84 READ(HIO,101,END=89) (BUF(I),I=1,LRECL)
      DO 85 I = 1, 4
        IF (H(I) .NE. BUF(I)) GO TO 84
   85 CONTINUE
   86 WRITE(WTE,102)
      IF (WIO .NE. 0) WRITE(WIO,102)
   87 K = LRECL + 1
   88 K = K - 1
      IF (BUF(K) .EQ. BLANK) GO TO 88
      WRITE(WTE,102) (BUF(I),I=1,K)
      IF (WIO .NE. 0) WRITE(WIO,102) (BUF(I),I=1,K)
      READ(HIO,101) (BUF(I),I=1,LRECL)
      IF (BUF(1) .EQ. BLANK) GO TO 87
      GO TO 98
C
   89 WRITE(WTE,189) (H(I),I=1,4)
  189 FORMAT(1X,'SORRY, NO HELP ON ',4A1)
C
   98 RETURN
      END