	SUBROUTINE GETSTR(STRING,ICOL)
C
C	THIS ROUTINE GETS A CHARACTER STRING ONE CHARACTER AT A TIME
C	USING IGETCHAR.C
	CHARACTER*(*) STRING
	CHARACTER*1 CHAR,BS,CR,STOP,ESC
        CHARACTER*1 CONTROL(26)
	DATA BS,CR,STOP,ESC/Z08,Z0D,Z1A,Z1B/
        DATA CONTROL/Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z9,ZA,ZB,ZC,ZE,ZF,Z10,Z11,Z12,
     1               Z13,Z14,Z15,Z16,Z17,Z18,Z19,ZD,Z1A,Z1B/
C
C	INITIALIZE EVERYTHING
	ICOL = 0
	LENGTH = LEN(STRING)
	CALL CFILL(STRING,1,LENGTH,' ')
C
C  	PROCESS THE STRING
   10	ISTAT = IGETCHAR(CHAR)
	ICOL = ICOL + 1
C
C	STORE CHARACTER
	STRING(ICOL:ICOL) = CHAR
	IF(ICOL.EQ.LENGTH) RETURN
C
C       IF CONTROL KEY, RETURN
C
        DO 50 K=1,26
           IF(CHAR.EQ.CONTROL(K)) THEN
              ICOL = ICOL - 1
              RETURN
           END IF
   50   CONTINUE
C
C	BACKSPACE AND DELETE
C
	IF(CHAR.EQ.BS) THEN
	   TYPE 100, ' ',BS
  100	   FORMAT('+',A,$)
	   ICOL = ICOL - 2
	END IF
C
C	GO GET NEXT CHARACTER
C
	GO TO 10
C
	END
