	SUBROUTINE SETUP_SYSTEM (STYPE)
C
C	This routine sets up the system type.
C
	INCLUDE 'COM.INC/NOLIST'

	CHARACTER*(*) TYPEQ, SYSTEM_DEFAULT, STYPE
	PARAMETER CTRLQ = 17

	PARAMETER (TYPEQ =
	1 'Enter the system type of the remote (')
	PARAMETER (SYSTEM_DEFAULT = 'DEC')
C
C	Get the system type of remote.
C
	IF (STARTUP) THEN
	    STATUS = GET_SYMBOL('SYSTEM_TYPE',SYSTEM_TYPE,SYSTEM_SIZE)
	ENDIF
	IF (SYSTEM_SIZE .EQ. 0) THEN
	    SYSTEM_TYPE = SYSTEM_DEFAULT	! Set the default system type.
	    SYSTEM_SIZE = LEN(SYSTEM_DEFAULT)	!   and the system type size.
	ENDIF
	IF (STARTUP) THEN
	    IF (STATUS) GO TO 130		! Go parse the system type.
	ELSE
	    IF (LEN(STYPE) .GT. 0) THEN
		SYSTEM_TYPE = STYPE		! Copy specified system type.
		SYSTEM_SIZE = LEN(STYPE)	!   and the system type size.
		GO TO 130			! Go parse the system type.
	    ENDIF
	ENDIF
C
C	Prompt user for the system type.
C
100	CALL PROMPT_USER(TYPEQ//SYSTEM_TYPE(1:SYSTEM_SIZE)//'): '
	1		,%REF(SCRATCH),LEN(SYSTEM_TYPE))
	IF (BACKUP) RETURN
	IF (WANTS_HELP) THEN
125		CALL GET_HELP ('SET SYSTEM')
		GOTO 100
	ENDIF
C
C	If a system type was specified, copy it to the SYSTEM_TYPE buffer.
C
	IF (LBYTE_COUNT .GT. 0) THEN
		SYSTEM_TYPE = SCRATCH(1:LBYTE_COUNT)
		SYSTEM_SIZE = LBYTE_COUNT
	ENDIF

130	CROSS_FILE = .FALSE.		! Presume not cross file system.
C
C	Setup the default read terminator to carriage return
C
	CALL SET_TERMINATOR(TERMPTR,TERMTBL,%REF(CR))
C
C	The XON_XOFF flag controls whether the remote system supports the
C	XOFF/XON protocol to stop/resume output to the terminal.
C
C	The LOCAL_ECHO flag controls whether Vaxnet must echo the local
C	terminal input since the remote doesn't echo.
C
	IF     (SYSTEM_TYPE(1:5) .EQ. 'APPLE') THEN		! Apple.
		XON_XOFF = .TRUE.				! ???
		LOCAL_ECHO = .FALSE.
	ELSEIF (SYSTEM_TYPE(1:3) .EQ. 'AS6') THEN		! AS6
		XON_XOFF = .FALSE.		! No XON/XOFF control.
		LOCAL_ECHO = .TRUE.		! Enable local echo.
		CALL SETUP_PARITY ('EVEN')	! Set for EVEN parity.
		DUMP_DELAY = '00.50'		! Dump delay 1/2 second.
		DUMPD_SIZE = 5			! Set size of dump delay.
		DUMP_TIMEOUT = 0		! Disable dump timeout.
	ELSEIF	(SYSTEM_TYPE(1:5) .EQ. 'CROSS') THEN		! Crossfile.
		XON_XOFF = .TRUE.				! ???
		LOCAL_ECHO = .TRUE.
		CALL SET_TERMINATOR(TERMPTR,TERMTBL,%REF(CTRLQ))
		CROSS_FILE = .TRUE.
	ELSEIF (SYSTEM_TYPE(1:4) .EQ. 'DATA') THEN		! Data I/O.
		XON_XOFF = .TRUE.
		LOCAL_ECHO = .TRUE.
		DUMP_TIMEOUT = 0
	ELSEIF (SYSTEM_TYPE(1:3) .EQ. 'DEC') THEN		! Digital.
		XON_XOFF = .TRUE.
		LOCAL_ECHO = .FALSE.
	ELSEIF	(SYSTEM_TYPE(1:4) .EQ. 'EASY') THEN		! Easylink.
		XON_XOFF = .TRUE.
		LOCAL_ECHO = .FALSE.
	ELSEIF (SYSTEM_TYPE(1:3) .EQ. 'IBM') THEN		! IBM.
		XON_XOFF = .FALSE.				! ???
		LOCAL_ECHO = .TRUE.
		DUMP_TIMEOUT = 0
	ELSEIF (SYSTEM_TYPE(1:4) .EQ. 'UNIX') THEN		! Unix.
		XON_XOFF = .TRUE.
		LOCAL_ECHO = .FALSE.
	ELSEIF (SYSTEM_TYPE(1:4) .EQ. 'XXDP') THEN		! XXDP.
		XON_XOFF = .TRUE.
		LOCAL_ECHO = .FALSE.
	ELSE
		CALL WRITE_USER ('*** Invalid SYSTEM type "'//
	1			SYSTEM_TYPE(1:SYSTEM_SIZE)//'" ***'//SS)
		IF (UNIX_MODE) THEN
			GO TO 100	! Request system type again.
		ELSE
			GO TO 125	! Invalid, give some help.
		ENDIF
	ENDIF
	RETURN
	END
