	LOGICAL FUNCTION INIT_REMOTE
C
C	This function performs the initial handshake with the running SNDRCV
C	program, by sending it the direction and mode of the file transfer.
C
	INCLUDE 'COM.INC/NOLIST'

	LOGICAL*1 TOVAX(6), TOREM(6), CODE(1)
	DATA TOVAX/'T','O','V','A','X',0/, TOREM/'T','O','R','E','M',0/
	CHARACTER*(*) INIT_ERROR
	PARAMETER (INIT_ERROR = SS//
	1 '*** Error initializing SNDRCV program on the remote. ***'
	1 //SS//
	1 '***  Did you remember to start the SNDRCV program ?  ***'
	1 //BELL//SS)

	INIT_REMOTE = .FALSE.		! Initialize to bad return.
	RETRY_COUNT = 0			! Initialize retry count.
C
C	Send the direction.
C
100	IF (FLOW .EQ. IN) THEN
		CALL WRITE_REMOTE(TOVAX,5)
	ELSE
		CALL WRITE_REMOTE(TOREM,5)
	ENDIF
	CALL GET_RESPONSE(CODE)		! Get response from remote.
	IF	(CODE(1) .EQ. ACK) THEN
		INIT_REMOTE = .TRUE.
		RETURN
	ELSEIF	(CODE(1) .EQ. NAK) THEN
		RETRY_COUNT = RETRY_COUNT + 1
		IF (RETRY_COUNT .LE. RETRY_LIMIT) GO TO 100
	ENDIF
C
C	Initialization Error.
C
9000	CALL WRITE_USER(INIT_ERROR)
	CALL CLEAR_TYPEAHEAD
	RETURN
	END
