  Adding a Modem to OpenVMS? 
 The Question is:
 
We are adding a modem to an AlphaServer 1000, serial port #2
(tta0).  We have set the port to HARDWARE flow control at the
console (&gt;&gt;&gt;) prompt.  We have performed a
set /modem/perm tta0 whilst logged in as SYSTEM.  When we
do a set host /dte tta0 we can talk to the modem, BUT
periodically, (maybe every 30 secs?) we get an error message
saying
 
%REM-E-PORTRXERR port receive error
- SYSTEM-F-HANGUP, data set hang-up
 
what are we doing wrong??
 
 
 
 
 The Answer is:
 
        Always set HOSTSYNC and TTSYNC on the port to get full software
    flow control.  Hostsync is NOT set by default.
 
  --
 
    	Setting the port to hardware flow control at the console will not
    have any meaning to VMS.  It does not see or make use of that
    information.  Also VMS does not officially support hardware flow
    control for serial lines.  For output when using modem lines the system
    will honor CTS.  But we will not lower RTS when the type-ahead buffer
    is almost full.  In V7.1 there is an attribute to enable RTS for input
    flow control on modem lines.  But this support is not documented and
    there is no way from DCL to enable it.
 
    	Now on to what is most likely your problem.  I suspect that you
    have a cable problem.  You cannot use any of the older DEC made 9Pin to
    25Pin cables.  Also you cannot use the 9Pin to DEC423 adapters with
    modems.  The correct answer is to go to your local PC store and pick up
    a PC 9Pin to 25Pin modem  cable.  Attached is a helpful write up on
    using modems.
 
  --
 
		     Using a Modem with your VAX
                          Richard B. Gilbert
                       Revised January 10, 1995
 
	Be sure that the serial port you are using supports MODEM control
signals.  On the DMF32, for example, only ports 0 and 1 can be used with
MODEMS.  These ports on the DMF32 must have switches set to enable MODEM
control signals.  The VAXStation 3100 does NOT support MODEM control!  The
MicroVAX 3100 does support modem control.  Some terminal servers support
only "DSR/DTR" modem control, whatever that means.
 
	Connect the MODEM with a cable that supports MODEM control signals
such as DEC's BC22E.  The BC22F is overkill but will work quite well.  Note
that while it was possible to "fake it" with VMS V4.x and earlier, VMS V5
requires that all of the MODEM control signals be connected.  (Pins 2-8, 20
and 22 should be connected straight through; i.e., 2-2, 3-3, 4-4, ...)
 
	You will need to make some switch settings on your MODEM.  The
following settings are for a US Robotics Courier 2400.  See your MODEM's
instruction manual.  The switch numbers will be different but the functions
available are typical.  The settings marked with an asterisk are critical
to the successful use of your MODEM.  Some settings can also be made from
the CPU via the MODEM's AT command set, in which case the hardware switch
settings determine the MODEM's power on defaults.  The AT commands in
parentheses, following the switch settings, are the commands for a U.S.
Robotics Courier HST dual standard modem.  Check your manual for the proper
commands for your modem.
 
* 1.  DTR Normal (controlled by CPU)			(AT&amp;D2&amp;W)
  2.  Verbal result codes (Useful during dialout)	(ATV1)
* 3.  Do not display result codes (Quiet mode)		(ATQ1)
  4.  Echo off line commands (Useful during dialout)	(ATE1)
* 5.  Auto answer (MODEM will answer the phone if DTR is asserted) (ATS0=1)
* 6.  Normal Carrier detect (controlled by MODEM)	(AT&amp;C1&amp;W)
  7.  Single phone line (As required)
  8.  Normal At command set (Must be enabled for auto dial.)
  9.  Online after +++
 
************************************************************************
 
	Many users have observed the VAX dropping DTR (Data Terminal Ready)
while a user is trying to dial in, causing the MODEM to hang up the phone.
The terminal driver will drop DTR if it sees DSR (Data Set Ready) for more
than thirty seconds, without also seeing CD (Carrier Detect).  If it is
possible to configure the MODEM so that it does not assert DSR until it
asserts CD (AT &amp;S1&amp;W), do so.  Otherwise it will be necessary to use a
modified cable. At the VAX end of the cable, cut the wire leading to pin 6
(DSR) and jumper pin 6 to pin 8 (CD).
 
 
	A command similar to the following should be placed in your
SYS$MANAGER:SYSTARTUP_V5.COM file to set up an asynchronous port for use with
a MODEM.  You may want to add some more qualifiers but this will get you going.
$	SET TERMINAL -
	/PERMANENT -	! Make settings permanent
	/MODEM -	! Use MODEM control signals
	/DIALUP	-	! Gives the DIALUP identifier to user.
	/HANGUP	-	! Hang up the phone when user logs off
	/AUTOBAUD -	! Detect the user's baud rate and set it.*
	/ALTYPEAHD -	! Use the alternate typeahead buffer.  The
			! alternate typeahead buffer can be made larger
			! than the regular one.  This is helpful if you
			! are doing file transfers.  See SYSGEN parameter
			! TTY_ALTYPAHD.
	/HOSTSYNC -	! VAX will send XOFF when its buffer is nearly
			! full and XON when it is ready for more input.
			! See SYSGEN parameter TTY_ALTALARM.
	_TXA0:
 
$	SET PROTECTION=W:R /DEVICE
			! Sets device protection to allow non-privileged
			! users to allocate the device for dialing out.
			! Otherwise user must own device or hold SYSPRV.
 
	* Many modern modems are capable of using a fixed DTE rate to talk
to the computer; e.g. if they are set to 19200, they will talk to the
computer at 19200 regardless of what speed they are using to talk to the
remote modem.  This feature has performance implications for modems that do
data compression using either CCITT V.41 or MNP.  For such modems, use
/SPEED=xxxxx rather than /AUTOBAUD.
 
************************************************************************
 
	The following commands should probably go in SYS$SYLOGIN, your
system-wide login command file:
 
$! Test for interactive or batch mode
$!
$	IF F$MODE() .NES. "INTERACTIVE" THEN GOTO 10$
$!   Set up device dependant terminal characteristics.  This only works
$! if the terminal responds to ANSI Device Attributes (DA) control string.
$! Most DEC terminals (VT1xx, VT2xx, LAxxx) and compatibles will do so.
$	IF F$GETDVI("TT", "TT_MODEM") THEN $ SET TERMINAL /INQUIRE
$ 10$:
**************************************************************************
 
	To set the terminal for temporary dialout use, execute the following
commands:
$	ALLOCATE TXA0:	KER$COMM	! Logical is useful for Kermit-32.
$	SPEED="''P1'"
$! Default to 1200 baud.		! Pick a suitable default value.
$	IF SPEED .EQ. "" THEN SPEED=1200
$	SET TERMINAL /NOAUTOBAUD /SPEED='SPEED' KER$COMM:
 
	You may need to add a /NOECHO qualifier if your terminal program is too
stupid to read with no echo.  It is not necessary with SET HOST/DTE,
KERMIT, XMODEM, or HOST32.
 
 
	To support a modem on a DECServer 200:
 
1. Set up the terminal server as follows: (assuming port 8)
 
Local&gt; DEFINE PORT 8 ACCESS DYNAMIC AUTOBAUD DISABLED
Local&gt; DEFINE PORT 8 DSRLOGOUT DISABLED FLOWCONTROL XON
Local&gt; DEFINE PORT 8 INACTIVITY ENABLED MODEM ENABLED
Local&gt; DEFINE PORT 8 SIGNAL CHECK ENABLED
Local&gt; DEFINE PORT 8 SPEED 2400 ALTERNATE SPEED 1200
Local&gt; DEFINE PORT 8 DIALUP ENABLED
Local&gt; LOGOUT PORT 8
Local&gt; DEFINE SERVICE service_name PORT 8 IDENT "string"
Local&gt; SET SERVICE service_name PORT 8 IDENT "string"
 
	Other port characteristics may be defined "to taste".
 
2. Insert the following statements in SYS$STARTUP:LAT$SYSTARTUP.COM
(SYS$MANAGER:LTLOAD.COM for VMS V5.4 and below):
 
CREATE PORT LTA100: /NOLOG
 
SET PORT LTA100: /APPLICATION /NODE=server_name /SERVICE=service_name -
	/NOQUEUE /NOLOG
 
	The LTA number is more or less arbitrary but must take into account
the fact that LAT startup creates a few ports temporarily (starting at
LTA1) and the number you choose must not conflict.
 
	The server_name and service_name must correspond exactly to the
names used in the DECserver DEFINE SERVER server_name and DEFINE SERVICE
service_name commands!
 
3. Insert the following statements in SYS$MANAGER:SYSTARTUP_VMS.COM
(SYS$MANAGER:SYSTARTUP_V5.COM for VMS V5.X):
$!
$! Start LAT (DEC Server 200 terminal server)
$!
$	@SYS$STARTUP:LAT$STARTUP.COM
$! Note that SYS$STARTUP:LAT$STARTUP.COM starts LAT while LAT$SYSTARTUP.COM
$! does the system specific part of the startup.
$!
$! VMS V5.4 and below would use @SYS$MANAGER:LTLOAD.COM.
$!
$! Set up Modem port on terminal server.  Note that, while this works for
$! me on VMS V5.4, it has been reported to me that /HANGUP is not allowed
$! under VMS V5.5.  The SET TERMINAL may not be necessary at all since the
$! DECserver DEFINE commands include equivalents for everything except
$! /ALTYPEAHD.
$	SET TERMINAL /PERMANENT /MODEM /DIALUP /HANGUP -
		/ALTYPEAHD /HOSTSYNC				LTA100:
$	SET PROTECTION=W:R /DEVICE				LTA100:
 
4. Reboot or execute the commands in steps 2 and 3.
 
	It appears that SET HOST /DTE LTAnn: no longer works as of VMS V5.5-2.
I suspect that it will not work under VMS V5.4-1 or higher with LATmaster
installed.  Instead, define the modem port as a service on the terminal server
and use SET HOST /LAT service_name.
 
 
 
 
 
 
