      INTEGER FUNCTION DGETLI (ALIN,CH)
C
C     ****************************************************************
C
C              KERMIT for the MODCOMP MAXIV operating system
C
C        Compliments of:
C
C                         SETPOINT, Inc.
C                      10245 Brecksville Rd.
C                      Brecksville, Ohio 44141
C
C
C      KERMIT is a copyrighted protocol of Columbia Univ. The authors
C      of this version hereby grant permission to copy this software
C      provided that it is not used for an explicitly commercial
C      purpose and that proper credit be given. SETPOINT, Inc. makes
C      no warranty whatsoever regarding the accuracy of this package
C      and will assume no liability resulting from it's use.
C
C     ****************************************************************
C
C     Abstract:  Get a line of compressed source from a disk file and
C                uncompress the line, unpack it (convert to 1 char
C                per word) and put a CR/EOS after the last nonblank
C                character.
C
C     MODIFICATION HISTORY
C
C     BY            DATE     REASON            PROGRAMS AFFECTED
C
C     ****************************************************************
C
C     Author:  Rick Burke           Version: A.0    Date: Aug-86
C
C     Calling Parameters:
C
C     W    ALIN         - Line of text to be returned to the caller
C     R    CH           - UFT number to be used for the read
C
C     ****************************************************************
C
C     Messages generated by this module :  None
C
C     ****************************************************************
C
C     Subroutines called directly :  CMR4, IAND, ISHFT
C
C     ****************************************************************
C
C     Files referenced :  None
C
C     ****************************************************************
C
C     Local variable definitions :
C
C     ACOUNT       - Index variable for return array
C     I            - Index variable
C     IEND         - End-of-file indicator
C     LEN          - Length of uncompressed source line
C     MLEFT        - Mask used to extract left byte of a word
C     MRIGHT       - Mask used to extract right byte of a word
C     CLIN(132)    - Uncompressed source read from disk
C
C     ****************************************************************
C
C     Commons referenced :  KERPAR and UFTTBL local commons
C
C     ****************************************************************
C
C     (*$END.DOCUMENT*)
C
C     ****************************************************************
C     *                                                              *
C     *         D I M E N S I O N   S T A T E M E N T S              *
C     *                                                              *
C     ****************************************************************
C
      IMPLICIT INTEGER (A-Z)
      INTEGER*2   ALIN(132),   CLIN(132)
C
C     ****************************************************************
C     *                                                              *
C     *         T Y P E   S T A T E M E N T S                        *
C     *                                                              *
C     ****************************************************************
C
C
C     ****************************************************************
C     *                                                              *
C     *         C O M M O N   S T A T E M E N T S                    *
C     *                                                              *
C     ****************************************************************
C
      INCLUDE USL/KERPMC
C
      INCLUDE USL/UFTTBC
C
C     ****************************************************************
C     *                                                              *
C     *         E Q U I V A L E N C E   S T A T E M E N T S          *
C     *                                                              *
C     ****************************************************************
C
C
C     ****************************************************************
C     *                                                              *
C     *         D A T A   S T A T E M E N T S                        *
C     *                                                              *
C     ****************************************************************
C
      DATA        MLEFT /Z7F00/,            MRIGHT /Z007F/
C
C     ****************************************************************
C
C     Code starts here :
C
      DO 10 I = 1,132
      ALIN(I) = 0
      CLIN(I) = 0
   10 CONTINUE
C
C----->  Read compressed source from the current file position.
C
      CALL CMR4 (CLIN,IEND,LEN)
      IF (IEND .EQ. 1) GO TO 20
      DGETLI = EOF
      RETURN
   20 CONTINUE
C
C----->  Loop to expand the data to 1 byte per word.
C
      DO 30 I = 1,65
      ACOUNT = I * 2
      ALIN(ACOUNT-1) = ISHFT (IAND (CLIN(I),MLEFT),-8)
      ALIN(ACOUNT) = IAND (CLIN(I),MRIGHT)
   30 CONTINUE
C
C----->  Remove any trailing blanks.
C
      DO 40 I=1,130
      ACOUNT = 131 - I
      IF (ALIN(ACOUNT) .NE.     0 .AND.
     >    ALIN(ACOUNT) .NE. BLANK      ) GO TO 50
   40 CONTINUE
      ACOUNT = 0
   50 CONTINUE
C
C----->  Add LF and EOS at the end.
C
      ALIN(ACOUNT+1) = LF
      ALIN(ACOUNT+2) = EOS
      DGETLI = OK
      RETURN
      END
