Annotation of researchv10dc/cmd/matlab/pyxis/helper.f, revision 1.1.1.1

1.1       root        1:       subroutine helper(h)
                      2:       character*4 h(4)
                      3: c
                      4: c     Handle HELP file
                      5: c     h = key word, format 4a1
                      6: c
                      7: c     Two direct access files are required.  Their locations are:
                      8: c
                      9:       character*(*) idfile,dafile
                     10:       parameter(idfile='/v/lib/mathelp.idx')
                     11:       parameter(dafile='/v/lib/mathelp.dac')
                     12: c
                     13:       parameter(lrecl=66)
                     14:       character*66 line
                     15:       character*4 keys(128),key
                     16:       integer locs(128)
                     17:       INTEGER DDT,ERR,FMT,LCT(4),LIN(1024),LPT(6),RIO,WIO,RTE,WTE,HIO
                     18:       COMMON /IOP/ DDT,ERR,FMT,LCT,LIN,LPT,RIO,WIO,RTE,WTE,HIO
                     19: c
                     20: c     Initialization indicated by h(1) = 0
                     21: c
                     22:       if (h(1)(1:1) .eq. char(0)) then
                     23:          open(unit=HIO,file=idfile,access='DIRECT',recl=8)
                     24:          n = 0
                     25:    10    n = n + 1
                     26:          read(HIO,rec=n,err=15) keys(n),locs(n)
                     27:          if (keys(n) .ne. 'EOF ') go to 10
                     28:    15    close(unit=HIO)
                     29:          nkeys = n-1
                     30:          key = 'HELP'
                     31:          open(unit=HIO,file=dafile,access='DIRECT',recl=lrecl)
                     32:       endif
                     33: c
                     34: c     Convert h to conventional string
                     35: c
                     36:       if (h(1)(1:1) .ne. char(0)) then
                     37:          do 20 i = 1, 4
                     38:             key(i:i) = h(i)
                     39:    20    continue
                     40:       endif
                     41: c
                     42: c     Special case, HELP followed by blank.  Give general help.
                     43: c
                     44:       if (key .eq. '    ') then
                     45:          write(WTE,30)
                     46:          if (WIO .ne. 0) write(WIO,30)
                     47:    30    format(0X,'Type HELP followed by'
                     48:      >      /0X,'INTRO   (To get started)'
                     49:      >      /0X,'NEWS    (recent revisions)')
                     50:          write(WTE,31) (keys(n), n = 19, nkeys)
                     51:          if (WIO .ne. 0) write(WIO,31) (keys(n), n = 19, nkeys)
                     52:    31    format(0X,a4,10a6)
                     53:          write(WTE,32) (keys(n), n = 4, 18)
                     54:          if (WIO .ne. 0) write(WIO,32) (keys(n), n = 4, 18)
                     55:    32    format(0X,15(a1,1x))
                     56:          return
                     57:       endif
                     58: c
                     59: c     Find key word in keys table
                     60: c
                     61:       do 40 k = 1, nkeys
                     62:          if (key .eq. keys(k)) go to 50
                     63:    40 continue
                     64:       write(WTE,45) key
                     65:       if (WIO .ne. 0) write(WIO,45) key
                     66:    45 format(0X,'SORRY, NO HELP ON ',a4)
                     67:       return
                     68: c
                     69: c     Read and echo lines from direct access help file
                     70: c
                     71:    50 write(WTE,75)
                     72:       if (WIO .ne. 0) write(WIO,75)
                     73:       k0 = locs(k)
                     74:       k1 = locs(k+1) - 2
                     75:       do 80 k = k0, k1
                     76:    60    read(HIO,rec=k) line
                     77:          do 65 j = lrecl, 1, -1
                     78:             if (line(j:j) .ne. ' ') go to 70
                     79:    65    continue
                     80:    70    write(WTE,75) line(1:j)
                     81:          if (WIO .ne. 0) write(WIO,75) line(1:j)
                     82:    75    format(0X,a)
                     83:    80 continue
                     84:       return
                     85:       end

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.