home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ckv209.zip / ckvins.txt < prev    next >
Text File  |  2003-03-30  |  78KB  |  1,734 lines

  1.  
  2. C-Kermit 8.0 Installation Instructions for VMS
  3.  
  4.    [ [1]Contents ] [ [2]C-Kermit ] [ [3]Kermit Home ]
  5.    
  6.       As of C-Kermit version: 8.0.209, 17 March 2003
  7.       This file last updated: Sun Mar 23 19:34:24 2003 (New York City
  8.    time)
  9.    
  10.      IF YOU ARE READING A PLAIN-TEXT version of this document, note that
  11.      this file is a plain-text dump of a Web page. You can visit the
  12.      original (and possibly more up-to-date) Web page here:
  13.      
  14.   [4]http://www.columbia.edu/kermit/ckvins.html
  15.  
  16.    Authors:
  17.           F. da Cruz, C. Gianone, M. Evarts, Columbia University, New
  18.           York, NY.
  19.           Terry Kennedy, Saint Peters College, Jersey City, NJ.
  20.           And: Peter Mossel, James Sturdevant, Richard Gilbert, Sebastian
  21.           Bazley.
  22.     ________________________________________________________________________
  23.   
  24.   CONTENTS
  25.   
  26.   1. [5]QUICKSTART GUIDE
  27.   2. [6]BOOTSTRAPPING
  28.   3. [7]CONFIGURING VMS FOR BEST RESULTS WITH KERMIT
  29.      3.1. [8]TERMINAL BUFFER SIZE
  30.      3.2. [9]USER QUOTAS AND PRIVILEGES
  31.      3.3. [10]CONFIGURING SERIAL COMMUNICATION PORTS
  32.      3.4. [11]CONFIGURING LAT DEVICES
  33.      3.5. [12]THE VIRTUAL TERMINAL DRIVER
  34.      3.6. [13]CAPTIVE ACCOUNTS AND RESTRICTED ACCESS
  35.   4. [14]DECODING VMS C-KERMIT HEX FILES
  36.   5. [15]INSTALLING VMS C-KERMIT
  37.   6. [16]USING MODEMS
  38.   7. [17]BUILDING VMS C-KERMIT FROM THE SOURCE CODE
  39.      7.1. [18]PROGRAMMING TIPS
  40.      7.2. [19]VMS TCP/IP NETWORKING SUPPORT FOR C-KERMIT
  41.   8. [20]CASE STUDY: ALPHA SETUP AND TEST RESULTS
  42.   9. [21]MAKING AND USING VMSINSTAL KITS)
  43.     ________________________________________________________________________
  44.   
  45.   1. QUICKSTART GUIDE
  46.   
  47.    To install VMS C-Kermit on VAX/(Open)VMS 5.0 or later, and Alpha
  48.    OpenVMS (all versions), please follow the instructions in the next
  49.    three major sections of this file. VMS C-Kermit will also be available
  50.    for the IA64 (Itanium) as soon as the IA64 version of VMS is released.
  51.    Section 3, [22]Configuring VMS for Best Results with Kermit, contains
  52.    important information needed to achieve solid performance from
  53.    C-Kermit. Please read it and follow the suggestions or give it to your
  54.    system manager. Section 4, [23]Decoding VMS C-Kermit Hex Files,
  55.    explains the process required to create an executable image from the
  56.    "text-only" HEX files. These HEX files are distributed on the ANSI
  57.    tapes from Columbia University and are decoded using an
  58.    assembly-language program which is also provided. If you have received
  59.    VMS C-Kermit on TK50 tape in BACKUP format, then you already have
  60.    binary executable files included on the tape. Section 5,
  61.    [24]Installing VMS C-Kermit, gives step-by-step instructions for
  62.    making C-Kermit available and fully configured for your users.
  63.    
  64.    If you are running a version of VMS *prior* to 5.0, or need to
  65.    customize the C-Kermit sources, please refer to [25]Section 5.
  66.    
  67.    [ [26]Contents ] [ [27]C-Kermit ] [ [28]Kermit Home ]
  68.     ________________________________________________________________________
  69.   
  70.   2. BOOTSTRAPPING
  71.   
  72.    In many cases, you can get C-Kermit onto your VMS system using FTP, an
  73.    old version of Kermit that is already there, or some other existing
  74.    file transfer method, or by copying it from magnetic tape, diskette,
  75.    or CDROM.
  76.    
  77.    In case none of those methods are available to you, here is a method
  78.    to "bootstrap" C-Kermit onto a VAX system from another computer. It
  79.    uses the older and smaller "Kermit-32" program (which runs only on
  80.    VAXes, not Alphas) to load the newer and larger C-Kermit program.
  81.    
  82.    Suppose, for example, you have a PC with DOS, Windows, or some form of
  83.    UNIX such as Linux, which has FTP capability, and the PC is connected
  84.    to your VAX through its serial port (directly, with a null modem
  85.    cable, or else through a modem), and the PC already has its own Kermit
  86.    program installed (MS-DOS Kermit, Kermit 95, or C-Kermit, depending on
  87.    the OS). Here are specific instructions you can try; this example
  88.    assumes the PC has Linux and C-Kermit:
  89.    
  90.     1. Get the files vmsmit.hex and vmsdeh.mar with anonymous ftp in text
  91.        mode onto your PC from:
  92.  
  93.   [29]ftp://kermit.columbia.edu/kermit/b
  94.        Also get the appropriate version of VMS C-Kermit on your PC from
  95.        the C-Kermit website:
  96.  
  97.   [30]http://www.columbia.edu/kermit/ckermit.html
  98.     2. Use C-Kermit on Linux to log in to VMS:
  99.  
  100.   set line /dev/ttyS0 ; or whatever
  101.   set speed 19200
  102.   set flow xon/xoff
  103.   set transmit eof \26
  104.   connect
  105.     3. Log in to VMS, SET DEFAULT to the desired directory, and then give
  106.        the following commands at the VMS prompt:
  107.  
  108.   set terminal /ttsync /hostsync
  109.     4. Give the following command at the VMS prompt:
  110.  
  111.   create vmsmit.hex
  112.     5. Escape back to C-Kermit on Linux with Ctrl-\ C.
  113.     6. Tell C-Kermit to:
  114.  
  115.   transmit vmsmit.hex
  116.     7. Repeat steps 4-6 for VMSDEH.MAR.
  117.     8. Now you should have VMSMIT.HEX and VMSDEH.MAR in your VMS
  118.        directory. Give the following commands to VMS:
  119.  
  120.   macro vmsdeh
  121.   link vmsdeh
  122.   run vmsdeh
  123.     9. When VMSDEH prompts for a filename, type "vmsmit.hex".
  124.    10. When VMSDEH is finished, it prompts you for another filename. Just
  125.        press the Enter (Return) key.
  126.    11. Now VMSMIT.EXE should be in your directory. To run it, type:
  127.  
  128.   run vmsmit
  129.        at the VMS prompt.
  130.    12. Use this program to transfer the appropriate version of C-Kermit
  131.        to VMS, and then you will have a modern, fast, up-to-date version
  132.        of Kermit.
  133.        
  134.    WARNING: You can't use Kermit-32 ("Bliss Kermit") to receive a VMS
  135.    binary program. If you have to use Kermit-32 to get C-Kermit onto your
  136.    VAX, you'll need to transfer a hex-encoded version of the binary,
  137.    rather than the straight binary, and then "dehexify" the result as
  138.    shown above. This is because Kermit-32 stores incoming binary files in
  139.    a format that is not appropriate for VMS executables (variable 510
  140.    instead of fixed 512).
  141.    
  142.    [ [31]Contents ] [ [32]C-Kermit ] [ [33]Kermit Home ]
  143.     ________________________________________________________________________
  144.   
  145.   3. CONFIGURING VMS FOR BEST RESULTS WITH KERMIT
  146.   
  147.   3.1. Terminal Buffer Size
  148.   
  149.    VMS is shipped with default installation parameters designed to
  150.    function on all possible configurations. Some of these parameters have
  151.    not been changed since the "average" VMS system was a VAX-11/780 with
  152.    1Mb of memory.
  153.    
  154.    The main parameter that affects Kermit is the terminal type-ahead
  155.    buffer size, which applies to serial terminal devices (with the TT or
  156.    TX prefix). There are two possible values in VMS - the "normal" size
  157.    and the "alternate" size. The defaults for these are 78 and 200 bytes,
  158.    respectively. If more data arrives at the terminal driver than these
  159.    buffers can hold (which is a likely occurrence during file transfer),
  160.    it will be discarded and file transfers will be slowed down or
  161.    terminated by errors.
  162.    
  163.    This is most frequently seen when receiving files on a slow VAX,
  164.    particularly when using long packets and/or sliding windows. File
  165.    reception requires larger system buffers (to hold arriving packets),
  166.    and the speed of the VAX controls how quickly Kermit can empty them.
  167.    
  168.    The recommended minimum size for each of these buffers is the number
  169.    shown as "Buffer size" by the C-Kermit SHOW PROTOCOL command, which is
  170.    the total amount of memory allocated by C-Kermit for packet buffers
  171.    (window slots times packet length). VMS C-Kermit is shipped with a
  172.    buffer size of 9065, which can be altered by the user with a SET
  173.    BUFFERS command.
  174.    
  175.    To change the values of the VMS typeahead buffer sizes, you should
  176.    edit the file SYS$SYSTEM:MODPARAMS.DAT. Determine the new values you
  177.    want to use and add lines like the following to the end of the
  178.    MODPARAMS.DAT file:
  179.    
  180.   MIN_TTY_TYPAHDSZ = new_value_for_regular      ! For VMS C-Kermit
  181.   MIN_TTY_ALTYPAHD = new_value_for_alternate    ! For VMS C-Kermit
  182.  
  183.    for example:
  184.    
  185.   MIN_TTY_TYPAHDSZ = 2064
  186.   MIN_TTY_ALTYPAHD = 2064
  187.  
  188.    The TTY_ALTYPAHD size should be at least as great as the TTY_TYPAHDSZ.
  189.    Digital recommends a value of 2064 or greater for TTY_ALTYPAHD if you
  190.    are running VMS V5.5 or higher, or if you are running the optional
  191.    LATmaster code under VMS V5.4-1, -2, or -3.
  192.    
  193.    You should also examine this file to be sure there aren't any other
  194.    definitions for TTY_TYPAHDSZ or TTY_ALTYPAHD. If there are, you'll get
  195.    warning messages in the next step.
  196.    
  197.      You may wish to simply set TTY_TYPAHDSZ=TTY_ALTYPAHD=2064, since
  198.      most common VMS "TTY ports" these days are actually LAT or TCP/IP
  199.      devices, which cannot easily be configured to use the alternate
  200.      buffer. Also, it takes a privileged user or program to set a port
  201.      to use the alternate buffer, and since we do not recommend
  202.      installing Kermit with privileges, this would restrict Kermit
  203.      access to privileged users.
  204.      
  205.      Let's consider a medium-sized VAX with perhaps 64 "ports" (either
  206.      serial ports or LAT or TCP/IP network ports). This system probably
  207.      has at least 16 megabytes of memory. Configuring TTY_TYPAHDSZ to
  208.      2064 will take up 64 * 2064 bytes of memory, or 132096 bytes. This
  209.      is less than 1 per cent of available memory. Most systems would
  210.      have more than 16Mb of memory for 64 simultaneous users, lowering
  211.      the percentage even further.
  212.      
  213.    In some cases, it might also be necessary to increase your system's
  214.    MAXBUF parameter. It should be somewhat longer than the longest packet
  215.    you want Kermit to be able to send or receive, to allow for SYS$QIO
  216.    overhead (the bigger the value, the more overhead). DEC currently
  217.    recommends 2300, which should be sufficient for 2K (2048-byte)
  218.    packets. If you want to use C-Kermit's maximum packet length, 9024,
  219.    then your MAXBUF should be set to about 12000. Do this in the
  220.    SYS$SYSTEM:MODPARAMS.DAT file:
  221.    
  222.   MIN_MAXBUF=xxxx
  223.  
  224.    You should also ensure that PQL_MBYTLM is at least MAXBUF + 2300;
  225.    otherwise, at least on early 5.x VMS releases (reportedly), the system
  226.    can crash.
  227.    
  228.    To have these changes take effect, run the "AUTOGEN" procedure:
  229.    
  230.   @SYS$UPDATE:AUTOGEN GETDATA SETPARAMS
  231.  
  232.    or:
  233.    
  234.   @SYS$UPDATE:AUTOGEN SAVPARAMS SETPARAMS
  235.  
  236.    or:
  237.    
  238.   @SYS$UPDATE:AUTOGEN SAVPARAMS GENPARAMS FEEDBACK
  239.   DIFFERENCE/OUTPUT=DIFF.DAT/PARALLEL SETPARAMS.DAT
  240.   EDIT/TPU DIFF.DAT ! Check out what Autogen is going to do to me.
  241.   @SYS$UPDATE:AUTOGEN SETPARAMS REBOOT
  242.  
  243.    (Read about AUTOGEN in the VMS Guide to System Management)
  244.    
  245.    This incorporates the new buffer sizes into the system configuration,
  246.    and they will take effect the next time the system is reloaded.
  247.    
  248.    To examine your system parameters:
  249.    
  250.   run sys$system:sysgen
  251.   SYSGEN> use current
  252.   SYSGEN> show maxbuf                (should be at least 2064)
  253.   SYSGEN> show virtualpagecnt        (should be at least 50000)
  254.   SYSGEN> show /tty                  (TTY_ALTYPAHD should be at least 2064)
  255.  
  256.    In an emergency, or for testing purposes, you can also change your
  257.    MIN_MAXBUF value "on the fly":
  258.    
  259.   $ run sys$system:sysgen
  260.   SYSGEN> set maxbuf 2300
  261.   SYSGEN> write active
  262.   SYSGEN> exit
  263.  
  264.    This operation should be used with caution, and should probably NOT be
  265.    used with values greater than about 3000. The AUTOGEN procedure is
  266.    safer because it understands the relationships among the major
  267.    parameters.
  268.    
  269.    NOTE: Although it is still recommended that you make your MAXBUF
  270.    setting large enough for Kermit packets, it is (as of C-Kermit edit
  271.    190) no longer strictly necessary. C-Kermit's packet writer now
  272.    recovers from MAXBUF and quota-exceeded errors automatically by
  273.    backing off and retransmitting the packet in appropriate-size chunks
  274.    (size determined by trial and error). But this involves a small amount
  275.    of additional overhead, so it's still best to have adequate MAXBUF and
  276.    quotas.
  277.    
  278.   3.2. User Quotas and Privileges
  279.   
  280.    C-Kermit communications are also affected by the user's BYTLM quota
  281.    and possibly also the process page quota (PGFLQUO). Also the BIOLM
  282.    quota (should be at least 10 or 20).
  283.    
  284.    In modern versions of VMS, the default BYTLM quota is 8192, which
  285.    should normally be adequate. If C-Kermit users experience error
  286.    messages informing them that a quota was exceeded during terminal
  287.    emulation or file transfer, the system manager should increase the
  288.    user's BYTLM and/or process page quota. To find out the user's quotas,
  289.    the system manager should:
  290.    
  291.   set default sys$system
  292.   run authorize
  293.   UAF> show <username>
  294.  
  295.    Then look for the relevant quotas and adjust them as required. The
  296.    BYTLM quota should be somewhat greater than the product of Kermit's
  297.    window size and packet size, for example, 8192 for 4 window slots and
  298.    2000-byte-packets. PGFLQUO should be 20,000 or higher.
  299.    
  300.    If users will be using C-Kermit's PUSH command or issuing REMOTE
  301.    commands (such as REMOTE DIR) to the VMS C-Kermit server, the user
  302.    will need to have the ability to create subprocesses (AUTHORIZE
  303.    parameter PRCLM). If Kermit will itself be invoked as a subprocess
  304.    (for example, from within a menu system) this should be considered as
  305.    well. Kermit uses local mailboxes for remote command execution, so
  306.    users will also need the TMPMBX privilege if these commands are to be
  307.    used.
  308.    
  309.   3.3. Configuring Serial Communication Ports
  310.   
  311.    If your system has a port that is frequently used for file transfers
  312.    (for example, with a modem), you should have your system manager
  313.    enable the alternate type-ahead buffer, and direct memory access, by
  314.    placing the command:
  315.    
  316.   $ SET TERMINAL ddcu:/PERMANENT/ALTYPEAHD/DMA
  317.  
  318.    in the system-wide startup command file, where ddcu: is the name of
  319.    the device, for each such device. If DMA is not enabled, Kermit will
  320.    run more slowly and use a lot more CPU time. (Note: DMA is only
  321.    available on certain types of devices; e.g. TX but not TT or LTA).
  322.    
  323.    If the device is connected to a modem, and is to be used for dialing
  324.    out, also include the /MODEM qualifier:
  325.    
  326.   $ SET TERMINAL ddcu:/PERMANENT/ALTYPEAHD/DMA/MODEM
  327.  
  328.    The modem must also be configured to make DSR follow CD. In modems
  329.    that use the Hayes AT command set, the command is AT&S1. If you can't
  330.    configure your modem this way, then VMS will hang up on it during the
  331.    dialing process, preventing you from completing calls (C-Kermit's DIAL
  332.    command will make this setting in the modem for you on a per-call
  333.    basis, but only if this information is in its internal modems
  334.    database; tell C-Kermit to SET MODEM TYPE xxx and then SHOW MODEM to
  335.    find out). A less desirable workaround is to configure the modem to
  336.    ignore DTR (AT&D0), but this can block normal hangup methods even when
  337.    you want to use them, thus opening security loopholes. A third
  338.    possibility is to jumper the CD and DSR wires in your modem cable.
  339.    
  340.    If the VMS port is not connected to a modem or other data
  341.    communications device that follows the RS-232 (V.24) signaling
  342.    conventions, or if the VMS port does not have a full complement of
  343.    RS-232 wires (which are lacking in modular MMJ ports, for example),
  344.    you might have to set the /NOMODEM qualifier instead:
  345.    
  346.   $ SET TERMINAL ddcu:/PERMANENT/ALTYPEAHD/DMA/NOMODEM
  347.  
  348.    Even with these settings you might experience what UNIX users know
  349.    fondly as "getty babble", which occurs when logins are enabled on the
  350.    device. This occurs with Kermit, SET HOST/DTE, or any other method of
  351.    communication; for example, AT<CR> is sent to the modem, the modem
  352.    echoes AT<CRLF> and then says OK<CRLF>. VMS thinks a user named AT is
  353.    trying to log in with a password of OK, and says "User authorization
  354.    failure", but the modem echoes this too, and so on, back and forth,
  355.    many times, maybe forever. Reportedly, this can be prevented by giving
  356.    the SECURE attribute to the port in question, e.g.:
  357.    
  358.   $ SET TERMINAL ddcu:/PERMANENT/SECURE
  359.  
  360.    which disables logins on the port until a BREAK signal is received.
  361.    
  362.    Additionally, for non-privileged users to access a terminal device,
  363.    they need to be granted access to it. The default for terminals is
  364.    access only by users with SYSTEM privileges (UIC group less than or
  365.    equal to MAXSYSGROUP, or with SYSPRV privilege). See the VMS
  366.    documentation for the SET PROTECTION command for more information.
  367.    Note that if you grant everyone access to the port, anyone can make
  368.    phone calls via the modem, so you might want to limit this to
  369.    particular users, possibly by using a device ACL (VMS V5.0 and later
  370.    only).
  371.    
  372.   3.4. Configuring LAT Devices
  373.   
  374.    In this discussion, we are using a DECserver 700-16 (the kind with
  375.    RJ45 connectors that lack a full complement of modem signals). (For
  376.    examples of configuring the DECserver 200, also see [34]Section 5.)
  377.    
  378.     3.4.1. Connecting a LAT Port to a PC
  379.     
  380.    We'll begin by connecting a PC's serial port to DECserver Port 2.
  381.    Commands are given at the DECserver's console, normally Port 1. In
  382.    case it is a new DECserver and you haven't yet given it a name:
  383.    
  384.   Local> set privilege
  385.   Local> define server name latbox
  386.   Local> initialize delay 0
  387.  
  388.    We'll be using the server name "latbox" in the examples. Now set up
  389.    port minimally for a test:
  390.    
  391.   Local> define port 2 autobaud disable
  392.   Local> define port 2 speed 19200
  393.   Local> define port 2 signal check disable
  394.   Local> logout port 2
  395.  
  396.    Then:
  397.    
  398.     1. Plug a BN25G-04 cable into LAT port 2.
  399.     2. Plug the appropriate adapter (H8585-something) into the other end
  400.        and connect it to the PC's serial port. In this case, the PC has a
  401.        DB-9, so we use the H8585-AA.
  402.     3. Start Kermit on the PC and tell it to:
  403.  
  404.   SET PORT COM1 (or whatever)
  405.   SET SPEED 19200
  406.   SET FLOW NONE
  407.   SET CARRIER OFF
  408.   CONNECT
  409.     4. Press the Enter key. You should see the Local> prompt, and you
  410.        should be able to type commands, e.g. to connect to your VMS
  411.        system.
  412.        
  413.    OK, so it works in local mode. If not, check your cabling. Now to set
  414.    it up for remote mode, i.e. to allow VMS to make a connection to the
  415.    PC through the DECserver port:
  416.    
  417.   Local> change port 2 access remote
  418.   Local> show port 2
  419.  
  420.    Take note of the port's name; by default it is PORT_2, but you can
  421.    change it to anything you like with:
  422.    
  423.   Local> change port 2 name blah
  424.  
  425.    We'll stick with PORT_2 in this discussion.
  426.    
  427.    With Kermit on the PC is still in CONNECT mode, do:
  428.    
  429.   Local> test port 2
  430.  
  431.    This should put a test pattern on PC screen.
  432.    
  433.    Now to set up the port for use from VMS. First enable SYSPRV, CMKRNL,
  434.    LOG_IO, and SYSNAM privileges, then:
  435.    
  436.   $ run sys$system:latcp
  437.   LATCP> create port lta600:
  438.   LATCP> set port lta600: /application /node=latbox /port=port_2 /noqueue
  439.   LATCP> exit
  440.  
  441.    The /NODE switch gives the nodename of the DECserver; the /PORT switch
  442.    gives the port *name* (not number) of the port on the DECserver. The
  443.    /NOQUEUE switch is important; otherwise if somebody does "set port
  444.    lta600" when it is in use, they will sit there and wait until it
  445.    becomes free.
  446.    
  447.    Then in VMS:
  448.    
  449.   $ set terminal LTA600: /permanent /fullduplex /altypeahd /speed=19200
  450.  
  451.    This sets the typeahead buffer and makes the speeds match. You can use
  452.    LATCP again to verify the setup:
  453.    
  454.   $ run sys$system:latcp
  455.   LATCP> show port lta600:
  456.  
  457.   Target Port Name: PORT_2       Actual Port Name:
  458.   Target Node Name: LATBOX       Actual Node Name:
  459.   Target Service Name:           Actual Service Name:
  460.  
  461.    (Use "show port" without any port number to look at all defined LAT
  462.    ports.)
  463.    
  464.    That's it. Now start kermit and assign the port:
  465.    
  466.   $ kermit
  467.   C-Kermit> set line lta600:
  468.   C-Kermit> show communications
  469.  
  470.    This should display the name and speed of the LAT device, as
  471.    configured above. Then to make the connection:
  472.    
  473.   C-Kermit> connect
  474.  
  475.    Type some characters to VMS C-Kermit -- you should see them come out
  476.    on the PC's screen. Type some characters on the PC keyboard and they
  477.    should come out on VMS C-Kermit's screen.
  478.    
  479.    On the PC, escape back to the Kermit prompt and type "show comm" or
  480.    "show modem" to see what modem signals are being presented by the
  481.    connection. DECservers that have 25-pin serial connectors, such as the
  482.    200 and the 700-8, can do full modem control, but those with mini
  483.    connectors, such as the 700-16, make you choose between limited sets
  484.    of modem signals; the DECserver can be configured for either hardware
  485.    flow control (recommended for high-speed connections) or DTR/CD
  486.    (allowing each end of the connection to tell when the other end has
  487.    hung up), but you can't have both. On the DECserver, use:
  488.    
  489.   Local> define port 2 signal select xxx
  490.  
  491.    where xxx is CTS-DSR-RTS-DTR or RI-DCD-DSR-DTR, to select the desired
  492.    complement of modem signals; the first one for hardware flow control,
  493.    the second one for ring/hangup control.
  494.    
  495.   Local> define port 2 signal control enable
  496.   Local> logo port 2
  497.  
  498.    On the PC, use "show comm" to make sure the PC sees the CTS signal. If
  499.    so, tell Kermit to:
  500.    
  501.   set flow rts/cts
  502.  
  503.    Then put the PC Kermit in server mode and, using VMS C-Kermit as
  504.    client, transfer some files. Experiment with window size, packet
  505.    length, and unprefixing to achieve the highest transfer rate. Then
  506.    experiment with higher serial speeds -- this will require a LATCP
  507.    command on VMS, "change port" and "logout port" commands on the
  508.    DECserver, and a "set speed" command in PC Kermit.
  509.    
  510.     3.4.2. Setting Up a Dialout Port
  511.     
  512.    Now let's connect a modem to DECserver Port 3 for high-speed data
  513.    transfer (RTS/CTS, but no RI/CD). In this example the modem is a USR
  514.    Courier.
  515.    
  516.    Connect port 3 (in this case with BN25G-04 cable with an H8585-AC
  517.    adapter) to the modem. Then at the DECserver:
  518.    
  519.   Local> set privilege
  520.   Local> define port 3 autobaud disable
  521.   Local> define port 3 speed 38400
  522.   Local> define port 3 signal select cts
  523.   Local> define port 3 signal check enable
  524.   Local> define port 3 access remote
  525.   Local> define port 3 name dialout
  526.   Local> logout port 3
  527.   Local> show port 3
  528.  
  529.    Back at VMS:
  530.    
  531.   $ run sys$system:latcp
  532.   LATCP> create port lta601:
  533.   LATCP> set port lta601: /application /node=latbox /port=dialout /noqueue
  534.   LATCP> exit
  535.   $ set terminal LTA601: /permanent /fullduplex /altypeahd /speed=38400
  536.  
  537.    Now start C-Kermit and assign the port:
  538.    
  539.   $ kermit
  540.   C-Kermit> set modem type usr
  541.   C-Kermit> set line lta601:
  542.   C-Kermit> show comm           ; Speed should be 38400
  543.   C-Kermit> set dial display on ; To verify modem dialog
  544.   C-Kermit> dial 7654321
  545.  
  546.    And off you go.
  547.    
  548.    For other configurations, refer to your DECserver and LATCP
  549.    documentation. You can set up port "hunt groups", you can assign
  550.    logical names to the VMS ports, which can refer to single LAT ports or
  551.    entire hunt groups, and so on. You can even define "bidirectional"
  552.    ports for both calling in and calling out, but these are difficult to
  553.    troubleshoot when there are problems.
  554.    
  555.   3.4.3. DECservers and Telnet
  556.   
  557.    DECservers that support TCP/IP connections can be used by C-Kermit for
  558.    shared dialout modem access. The DECserver can be configured for this
  559.    using a command like:
  560.    
  561.   CHANGE TELNET LISTENER 2001 PORT 1 ENABLE
  562.  
  563.    This associates TCP socket 2001 with serial port 1 on the DECserver.
  564.    Then you can use Kermit to Telnet to port 2001 on the DECserver and
  565.    dial the modem that is on the DECserver's serial port 1.
  566.    
  567.    If you cannot get reverse LAT working, but LAT is working, it is still
  568.    possible to use Kermit via LAT so long as your system (and Kermit)
  569.    support TCP. Start Kermit, tell it to "set host localhost" (the TCP
  570.    loopback name). In connect mode you can log back on to the same system
  571.    (see the cautions in [35]Using C-Kermit about "C-Kermit in the
  572.    Middle").
  573.    
  574.    Then you can use SET HOST/LAT from the CONNECT session to dial out,
  575.    login to the remote system and start the remote Kermit. Now go back to
  576.    the original Kermit session to transfer the files. You should try it
  577.    first with SET PREFIXING ALL in C-Kermit, and probably also SET PARITY
  578.    SPACE, and relatively short packets. If that works, you can try
  579.    settings that give higher performance at your own risk.
  580.    
  581.   3.5. The Virtual Terminal Driver
  582.   
  583.    For incoming modem connections, it can be very useful if the VMS
  584.    system is set up to support Virtual Terminals. Once these have been
  585.    set up, then if an incoming connection fails because of line problems,
  586.    it should be possible to reconnect to the original session by
  587.    redialling and logging in again. You should then get a prompt asking
  588.    if you wish to connect to your disconnected session, allowing you to
  589.    resume where you left off. You should see something like this:
  590.    
  591.       You have the following disconnected process:
  592.   Terminal   Process name    Image name
  593.   VTA456:    ABCDEF          (none)
  594.   Connect to above listed process [YES]: Y
  595.   Connecting to terminal _VTA456:
  596.   ABCDEF>
  597.  
  598.    There is a timeout of something like an hour, after which the
  599.    disconnected session is deleted entirely.
  600.    
  601.    [If on re-dialing the host you find you are reconnected to the
  602.    original session without needing to login, then that host has a
  603.    security problem, as well as a misconfigured DECserver and/or modem or
  604.    lead...]
  605.    
  606.    The virtual terminal driver is loaded at startup (or later) using
  607.    SYSGEN or SYSMAN as appropriate. The definition for TTY_DEFCHAR2 in
  608.    MODPARAMS.DAT also needs to be changed to set the appropriate bit to
  609.    enable the disconnect processing by default on all terminals. [This
  610.    change needs a reboot.]
  611.    
  612.    Something like the following should work (check the VMS manuals):
  613.    
  614.    VAX:
  615.           $ MCR SYSGEN VTA0/NOADAPTER/DRIVER=TTDRIVER
  616.           
  617.    Alpha:
  618.           $ MCR SYSMAN IO CONNECT VTA0/NOADAPTER -
  619.           /DRIVER=SYS$LOADABLE_IMAGES:SYS$TTDRIVER.EXE
  620.           
  621.    MODPARAMS.DAT:
  622.           TTY_DEFCHAR2 = 135170 ! = %x21002. Check the manual!
  623.           (%x20000 = Disconnect, %x1000 = Line Edit, %x2 = Autobaud)
  624.           
  625.   3.6. Captive Accounts and Restricted Access
  626.   
  627.    Some VMS sites restrict users from getting at the DCL prompt and
  628.    services by setting their accounts to be "captive". This should
  629.    automatically prevent C-Kermit's DCL-access commands (such as PUSH)
  630.    from working. Any attempt to execute such a command should result in
  631.    C-Kermit issuing an error message. Should a user circumvent this, VMS
  632.    will automatically terminate the user's process. In addition to
  633.    CAPTIVE, accounts can also be set to RESTRICTED, to disable all types
  634.    of spawning. Note that DEC says that RESTRICTED is only used "to
  635.    ensure users complete login processing without interruption". DEC
  636.    further states that they intend to modify VMS utilities to no longer
  637.    prohibit spawning in a future release.
  638.    
  639.    Further, you should be aware that preventing users from getting to DCL
  640.    only provides an illusion of security. There are many ways of getting
  641.    to DCL which are non-obvious. For cases where absolute security is
  642.    required, you should in- vestigate the AUTHORIZE flags CAPTIVE and
  643.    DISIMAGE. Consult the VMS Security Manual for more information.
  644.    
  645.    C-Kermit itself can be configured to prevent system access, by
  646.    compiling it with the NOPUSH option (for this you would have to edit
  647.    CKVKER.COM file and add a definition for the symbol NOPUSH to the
  648.    CFLAGS). This disables not only the PUSH command and its synonyms
  649.    (RUN, @, SPAWN), but also OPEN !READ, OPEN !WRITE, as well as the
  650.    server's execution of REMOTE HOST commands. See CKCCFG.DOC for further
  651.    information.
  652.    
  653.    There is also a runtime approach for this: put the (invisible) command
  654.    NOPUSH someplace where it will always be executed; for example, the
  655.    system-wide CKERMIT.INI file, or in the "kermit" command definition:
  656.    
  657.   $ KERMIT :== "$SYS$TOOLS:KERMIT ""-C"" ""NOPUSH"""
  658.  
  659.    You can also define the logical name (environment variable) CK_NOPUSH
  660.    to achieve the same effect.
  661.    
  662.    The NOPUSH command does at runtime exactly what defining the NOPUSH
  663.    symbol at compile time does.
  664.    
  665.    [ [36]Contents ] [ [37]C-Kermit ] [ [38]Kermit Home ]
  666.     ________________________________________________________________________
  667.   
  668.   4. DECODING VMS C-KERMIT HEX FILES
  669.   
  670.      VMS C-Kermit hex files are not kept up to date. In fact, we only
  671.      have a few of them -- nonet versions for old versions of VMS on VAX
  672.      and Alpha. Once you have it on your VMS system and decode it, you
  673.      can use it to download a more current and appropriate version. 
  674.      
  675.    If you have obtained the executable VMS C-Kermit program encoded in
  676.    printable "hex" format on magnetic tape or over a network, you can
  677.    decode it back into a runnable .EXE program image using the CKVDEH.MAR
  678.    program. This is an assembly-language program for the VAX or Alpha,
  679.    which you should assemble, link, and run as follows:
  680.    
  681.   $ macro ckvdeh  (on the Alpha, substitute "macro/migrate ckvdeh")
  682.   $ link ckvdeh
  683.   $ run ckvdeh
  684.  
  685.    CKVDEH prompts you for the input file name and then creates a .EXE
  686.    file with the same root name. For example, if you enter CKVKER.HEX as
  687.    the source file, the resulting executable will be CKVKER.EXE. This
  688.    procedure works on both the VAX and the Alpha -- the same program,
  689.    CKVDEH.MAR, compiles and runs on both platforms.
  690.    
  691.    The C-Kermit .EXE files were built under VAX/(Open)VMS 5.x and Alpha
  692.    OpenVMS 1.x (whenever possible; otherwise under 6.1). The VAX versions
  693.    will not run under pre-5.0 VMS releases. If you have a VMS 4.x system
  694.    with C compiler, however, you should be able to build C-Kermit using
  695.    the CKVOLD.COM procedure.
  696.    
  697.    Since VMS C-Kermit can be built with no TCP/IP support or with support
  698.    for several different TCP/IP packages, and it can be built on both the
  699.    VAX and Alpha platforms, you should pick the right .HEX file for your
  700.    environment.
  701.    
  702.    The naming conventions are as follows:
  703.    
  704.   CKVaKER-VMSnn-tttvv.xxx
  705.  
  706.    where:
  707.    
  708.   CKV = "C-Kermit for VMS".
  709.     a = architecture: A for Alpha, V for VAX.
  710.   KER = Kermit
  711.    nn = VMS version, e.g. 55 for VMS 5.5, 70 for VMS 7.0.
  712.   ttt = TCP/IP product, if any:
  713.         CMU = CMU-OpenVMS/IP ("CMU/Tek")
  714.         UCX = Compaq (DEC) TCP/IP(*)
  715.         PST = Process Software TCPware
  716.         TGV = Process Software (Cisco (TGV)) MultiNet(*)
  717.         WIN = Attachmate (Wollongong) WIN/TCP (PathWay)(*)
  718.    vv = The version number of the TCP/IP product (may be 2 or more characters)
  719.   xxx = HEX (text-encoded binary) or EXE (true binary)
  720.  
  721.    When there is no TCP/IP support built in, tttvv is "NONET".
  722.    
  723.      * It's a bit of a task to keep up with all the buyouts and renaming.
  724.        Any of these companies or products can be snapped up and/or
  725.        renamed at any time, and most of them have been, including DEC
  726.        itself.
  727.        
  728.    Examples:
  729.    
  730.   CKVVKER-VMS55-NONET.HEX:   VAX, VMS 5.5, no TCP/IP, hex format.
  731.   CKVAKER-VMS62-TGV40.EXE: Alpha, VMS 6.2, Multinet 4.0, binary format.
  732.  
  733.    Not every combination is necessarily available. In general, an .EXE
  734.    built under a certain version of VMS will also run under later VMS
  735.    versions, but the opposite is usually not true. Also, if a version was
  736.    built under the same VMS version that you have, but with a higher ECO
  737.    level (OS or library patches), it might not run.
  738.    
  739.    So try to pick one that was built under a VMS version less than or
  740.    equal to yours, and with the the same TCP/IP product you have having
  741.    with a version number less than or equal to yours. If that doesn't
  742.    work, try the next earlier one, etc. If you can't find one for your
  743.    TCP/IP product, try the lowest-numbered UCX (DEC TCP/IP) version; most
  744.    third-party TCP/IP products also support UCX applications. In any
  745.    case, after getting the appropriate executable onto your VMS disk,
  746.    rename it to KERMIT.EXE, e.g.:
  747.    
  748.   $ RENAME CKVAKER-VMS62-TGV40.EXE KERMIT.EXE
  749.  
  750.    The "labeled file converter" is simple; it comes in a VAX version,
  751.    CKVVCVT-VMSnn.{HEX,EXE}, and an Alpha version,
  752.    CKVACVT-VMSnn.{HEX,EXE}. Rename it to CKVCVT.EXE so VAX and Alpha
  753.    users don't have to use different names for the same program.
  754.    
  755.    [ [39]Contents ] [ [40]C-Kermit ] [ [41]Kermit Home ]
  756.     ________________________________________________________________________
  757.   
  758.   5. INSTALLING VMS C-KERMIT
  759.   
  760.    VMS C-Kermit must be installed on your VMS system by hand. There is no
  761.    VMSINSTAL kit because it would have to include many megabytes of
  762.    differently- configured executables to choose from, and many of
  763.    system-configuration items discussed above are best done by the system
  764.    manager manually, in privileged mode, after some thought and
  765.    consideration.
  766.    
  767.      IMPORTANT: DO NOT INSTALL VMS C-KERMIT AS A PRIVILEGED PROGRAM!
  768.      Instead, install it as a foreign command.
  769.      
  770.    To install C-Kermit, follow this procedure:
  771.    
  772.     1. If you have the old Bliss Kermit-32 on your system, rename it to
  773.        KERMIT32.EXE. If you have a symbol KERMIT defined to run
  774.        Kermit-32, change the symbol name to KERMIT32.
  775.     2. Identify the directory where you want to install the C-Kermit
  776.        program. Normally this would be a directory that is unaffected by
  777.        installation of DEC software, such as SYS$TOOLS =
  778.        SYS$SYSDEVICE[SYSTOOLS]. From now on, we will assume you are using
  779.        SYS$TOOLS:.
  780.     3. Copy the desired .EXE file (VAX or Alpha, with the appropriate
  781.        networking support) to that directory, rename it to KERMIT.EXE,
  782.        and give users permission to run it, for example:
  783.  
  784.   $ COPY CKVVKER-VMS55-UCX20.EXE SYS$TOOLS:KERMIT.EXE
  785.   $ SET PROTECTION=(S:RWED,O:RWED,G:RE,W:RE) SYS$TOOLS:KERMIT.EXE
  786.        If Kermit is going to be used a lot, you can have it preloaded and
  787.        its pure memory segments shared:
  788.  
  789.   $ INSTALL ADD SYS$TOOLS:KERMIT.EXE/OPEN/HEADER/SHARE
  790.     4. Copy the standard CKERMIT.INI file to the same directory:
  791.  
  792.   $ COPY CKERMIT.INI SYS$TOOLS:
  793.   $ SET PROTECTION=(S:RWED,O:RWED,G:RE,W:RE) SYS$TOOLS:CKERMIT.INI
  794.     5. Add the following line to SYS$COMMON:[SYSMGR]SYSTARTUP_V5.COM (or
  795.        whatever your system startup file is):
  796.  
  797.   $ DEFINE/SYSTEM CKERMIT_INI SYS$TOOLS:CKERMIT.INI
  798.     6. Find your system-wide login DCL command procedure:
  799.  
  800.   $ SHOW LOGICAL SYS$SYLOGIN
  801.   "SYS$SYLOGIN" = "SYS$TOOLS:SYLOGIN.COM" (LNM$SYSTEM_TABLE)
  802.        and then add the following line to it:
  803.  
  804.   $ KERMIT :== $SYS$TOOLS:KERMIT
  805.        This defines SYS$TOOLS:KERMIT.EXE as a "foreign command".
  806.        NOTE: VMS 6.2 and later support automatic creation of foreign
  807.        commands by placing the corresponding .EXE (or .COM) files in any
  808.        directory that is included in the DCL$PATH logical name; e.g.:
  809.  
  810.   $ DEFINE DCL$PATH SYS$DISK:[],DISK1:[TOOLS],SYS$SYSTEM:
  811.     7. Install the C-Kermit HELP file in your VMS HELP library. First
  812.        delete any earlier KERMIT help entry, then install the new one:
  813.  
  814.   $ LIBRARY/HELP/DELETE=KERMIT SYS$HELP:HELPLIB.HLB
  815.   $ LIBRARY/INSERT/HELP SYS$HELP:HELPLIB.HLB CKVKER.HLP
  816.     8. Create a publicly accessible directory, such as [KERMIT], in which
  817.        to make other C-Kermit files available to your users:
  818.        
  819.         CKERMIT.KDD
  820.                 Sample dialing directory file.
  821.                 
  822.         CKERMIT.KSD
  823.                 Sample services directory.
  824.                 
  825.         CKERMIT.KND
  826.                 Sample network directory.
  827.                 
  828.         CKEDEMO.KSC
  829.                 Macro definitions from "Using C-Kermit".
  830.                 
  831.         CKEVT.INI
  832.                 Command file to demonstrate special screen effects from
  833.                 "Using C-Kermit".
  834.                 
  835.         CKCKER.UPD
  836.                 A supplement to the book, "Using C-Kermit", describing
  837.                 features added since the book was published.
  838.                 
  839.         CKCKER.BWR
  840.                 The general C-Kermit beware file.
  841.                 
  842.         CKVKER.BWR
  843.                 The VMS-specific C-Kermit beware file.
  844.                 
  845.        If the Kermit program is not installed as a "foreign command" as
  846.        in (6) above, you can still RUN it, but you can't pass
  847.        command-line arguments to it this way. However, you can pass
  848.        command-line arguments if you invoke it with the MCR command:
  849.  
  850.   $ mcr kermit -s oofa.txt ; (assumes "kermit.exe" in sys$system)
  851.        or:
  852.  
  853.   $ mcr disk1:[olga]kermit -s oofa.txt ; (explicit path given)
  854.  
  855.    [ [42]Contents ] [ [43]C-Kermit ] [ [44]Kermit Home ]
  856.     ________________________________________________________________________
  857.   
  858.   6. USING MODEMS
  859.   
  860.    If you have a VAX or Alpha with a real serial port (DB-9 or DB-25),
  861.    you can use it with a modem. If your machine has MMJ (assymetrical
  862.    RJ-45) modular jack sockets (like a VAXstation 3100), you won't be
  863.    able to make very good use of modems since these ports do not support
  864.    modem signals.
  865.    
  866.    Before attempting to use a modem on port (say) TTA0, you (or the
  867.    system manager) will need to configure the port as a modem port:
  868.    
  869.  $ SET TERMINAL TTA0 /MODEM /ALTYP /PERM
  870.  
  871.    From section 5.2.3.1 of the I/O User's Reference Manual:
  872.    
  873.      Remote terminal connections have a timeout feature for the security
  874.      of dial-up lines. If no channel is assigned to the port within 30
  875.      seconds, or a port with an assigned channel is not allocated, the
  876.      DTR signal is dropped. Such action prevents an unused terminal from
  877.      tying up a line. However, there are configurations (such as a
  878.      printer connected to a remote line) in which the line should not be
  879.      dropped even though it is not being used interactively. To bypass
  880.      the 30-second timeout, set the system generation parameter
  881.      TTY_DIALTYPE to 4. (Note that if TTY_DIALTYPE is equal to 4, all
  882.      dial-up lines will skip the timeout waiting for a channel to be
  883.      assigned.)
  884.      
  885.    The following is reprinted by permission; references to Kermit-32 are
  886.    obsolete.
  887.    
  888.                   How to Use a MODEM With Your VMS System
  889.                              Richard B. Gilbert
  890.                         Computer Systems Consultant
  891.               76702.1567@CompuServe.Com Revised July 30, 1996
  892.    
  893.    Most MODEMs come with factory defaults intended for dialout use with
  894.    PCs. The MODEM is typically set to ignore DTR; e.g., assume that it is
  895.    always asserted and to assert CD at all times regardless of the actual
  896.    state of the received carrier. The user is not required to do much, if
  897.    anything, to get it to work. Such a MODEM requires some configuration
  898.    before it will work properly, or at all, with a VMS System.
  899.    
  900.    Be sure that the serial port you are using supports MODEM control
  901.    signals. On the DMF32, for example, only ports 0 and 1 can be used
  902.    with MODEMS. These ports on the DMF32 must have DIP switches set to
  903.    enable MODEM control signals. The VAXStation 3100 does NOT support
  904.    MODEM control! (It is possible to use a MODEM but the VAXstation
  905.    cannot detect the loss of the connection; the next person to dial in
  906.    could find himself logged in to your account!) The MicroVAX 3100 does
  907.    support MODEM control. As a general rule, anything with a DEC Modified
  908.    Modular Jack (MMJ) connector does not support full MODEM control; the
  909.    MMJ has only six pins and nine are required. Eight pin RJ45 connectors
  910.    are sometimes used; e.g. on some models of the DECserver 700, where a
  911.    choice is offered as to the signals supported.
  912.    
  913.    Connect the MODEM with a cable that supports MODEM control signals,
  914.    such as Digital's BC22E. The BC22F, connecting all twenty-five pins,
  915.    is overkill but will work quite well. A twenty-five conductor ribbon
  916.    cable will also work but a shielded cable is highly recommended in
  917.    order to comply with Radio Frequency Interference (RFI) requirements.
  918.    
  919.    Note that while it was possible to "fake it" with VMS V4.x and
  920.    earlier, VMS V5 requires that all of the MODEM control signals be
  921.    connected. (Pins 2-8, 20 and 22 should be connected straight through;
  922.    i.e., 2-2, 3-3, 4-4, ...). If you are forced to sacrifice one signal,
  923.    try RI (Ring Indicator) first. For reference, here is the standard
  924.    pinout for the RS-232-C DB-25 connector.
  925.    
  926.    Pin Description
  927.    1 Protective ground (may be connected to shield at ONE end only)
  928.    2* Transmitted data (TxD)
  929.    3* Received data (RxD)
  930.    4* Request to send (RTS)
  931.    5* Clear to send (CTS)
  932.    6* Data set ready (DSR)
  933.    7* Signal ground
  934.    8* Carrier detect (CD)
  935.    12 Speed Mode Indicate (or secondary CD)
  936.    15 Synchronous transmit clock
  937.    17 Synchronous receive clock
  938.    19 Speed select (or secondary RTS)
  939.    20* Data terminal ready (DTR)
  940.    22* Ring indicator (RI)
  941.    23 Data Signal Rate Select (DSRS)
  942.    
  943.    It should be noted that not all devices connect or support all these
  944.    pins and not all those listed are necessary for "full MODEM control".
  945.    The pins marked with an asterisk are generally essential to
  946.    satisfactory and secure operation of your modem.
  947.    
  948.    You will need to make some switch settings on your MODEM. The
  949.    following settings are for a U.S. Robotics Courier V32bis FAX Modem.
  950.    Other U.S. Robotics MODEMs use quite similar switch numbers and
  951.    settings. Other manufacturers may use different switch numbers but the
  952.    functions available are typical. See your MODEM's instruction manual
  953.    for the sordid details. The settings marked with an asterisk are
  954.    critical to the successful use of your MODEM. Some settings can also
  955.    be made from the CPU via the MODEM's AT command set, in which case the
  956.    hardware switch settings determine the MODEM's power on defaults. The
  957.    AT commands in parentheses, following the switch settings, are the
  958.    commands for a U.S. Robotics Courier HST Dual Standard MODEM. Check
  959.    your manual for the proper commands for your MODEM.
  960.    
  961.     1. (*) DTR Normal (controlled by CPU) (AT&D2&W)
  962.     2. Verbal result codes (Useful during dialout) (ATV1)
  963.     3. (*) Do not display result codes (Quiet mode) (ATQ1)
  964.     4. Echo off line commands (Useful during dialout) (ATE1)
  965.     5. (*) Auto answer (MODEM will answer the phone if DTR is asserted)
  966.        (ATS0=1)
  967.     6. (*) Normal Carrier detect (controlled by MODEM) (AT&C1&W)
  968.     7. Display originate result codes only.
  969.     8. Normal At command set (Must be enabled for auto dial.)
  970.     9. Online after +++
  971.    10. Load NVRAM defaults on power up.
  972.        
  973.    Many users have observed a VMS System dropping DTR (Data Terminal
  974.    Ready) while a user is trying to dial in, causing the MODEM to hang up
  975.    the phone. The terminal driver will drop DTR if it sees DSR (Data Set
  976.    Ready) for more than thirty seconds, without also seeing CD (Carrier
  977.    Detect). If it is possible to configure the MODEM so that it does not
  978.    assert DSR until it asserts CD (AT &S1&W), do so. Otherwise it will be
  979.    necessary to use a modified cable. At the VAX end of the cable, cut
  980.    the wire leading to pin 6 (DSR) and jumper pin 6 to pin 8 (CD).
  981.    Commands similar to the following should be placed in your
  982.    SYS$MANAGER:SYSTARTUP_VMS.COM (SYSTARTUP_V5.COM for VMS V5.X) file to
  983.    set up an asynchronous port for use with a MODEM. You may want to add
  984.    some more qualifiers but this will get you going.
  985.    
  986. $       SET TERMINAL -
  987.         /PERMANENT -    ! Make settings permanent
  988.         /MODEM -        ! Use MODEM control signals
  989.         /DIALUP -       ! Gives the DIALUP identifier to user.
  990.         /HANGUP -       ! Hang up the phone when user logs off
  991.         /AUTOBAUD -     ! Detect the user's baud rate and set it.*
  992.         /ALTYPEAHD -    ! Use the alternate typeahead buffer.  The
  993.                         ! alternate typeahead buffer can be made larger
  994.                         ! than the regular one.  This is helpful if you
  995.                         ! are doing file transfers.  See SYSGEN parameter
  996.                         ! TTY_ALTYPAHD.
  997.         /HOSTSYNC -     ! VMS System will send XOFF when its buffer is
  998.                         ! nearly full and XON when it is ready for more
  999.                         ! input.  See SYSGEN parameter TTY_ALTALARM.
  1000.         _TXA0:
  1001.  
  1002. $       SET SECURITY /CLASS=DEVICE /PROTECTION=W:R      ! VMS V6
  1003.                         ! Sets device protection to allow non-privileged
  1004.                         ! users to allocate the device for dialing out.
  1005.                         ! Otherwise user must own device or hold SYSPRV.
  1006. or
  1007. $       SET PROTECTION=W:R /DEVICE                      ! VMS V5
  1008.  
  1009.      * Many modern MODEMs are capable of using a fixed DTE rate to talk
  1010.        to the computer; e.g. if they are set to 19200, they will talk to
  1011.        the computer at 19200 regardless of what speed they are using to
  1012.        talk to the remote MODEM. This feature has performance
  1013.        implications for MODEMs that do data compression using either
  1014.        CCITT V.41 or MNP. For such MODEMs, set a speed that is at least
  1015.        four times the rated DCE speed of the MODEM or the highest
  1016.        available speed using /SPEED=xxxxx rather than using /AUTOBAUD.
  1017.        The MODEM must be set to use the corresponding speed. The U.S.
  1018.        Robotics Courier series are set to a particular DTE rate by the
  1019.        most recent AT&W command; the rate set is the current speed of the
  1020.        port. See your MODEM's instructions for details.
  1021.        
  1022.    The following commands should probably go in SYS$SYLOGIN, your
  1023.    system-wide login command file:
  1024.    
  1025.  
  1026. $! Test for interactive or batch mode
  1027. $!
  1028. $       IF F$MODE() .NES. "INTERACTIVE" THEN GOTO 10$
  1029. $!   Set up device dependant terminal characteristics.  This only works
  1030. $! if the terminal responds to ANSI Device Attributes (DA) control string.
  1031. $! Most DEC terminals (VT1xx, VT2xx, VT3xx, VT4xx, VT5xx, LAxxx) and
  1032. $! compatibles will do so.
  1033. $       IF F$GETDVI("TT", "TT_MODEM") THEN $ SET TERMINAL /INQUIRE
  1034. $ 10$:
  1035. **************************************************************************
  1036.  
  1037.    To set the terminal for temporary dialout use, execute the following
  1038.    commands:
  1039.    
  1040. $       ALLOCATE TXA0:  KER$COMM        ! Logical is useful for Kermit-32.
  1041. $       SPEED="''P1'"
  1042. $! Default to 1200 baud.                ! Pick a suitable default value.
  1043. $       IF SPEED .EQ. "" THEN SPEED=1200
  1044. $       SET TERMINAL /NOAUTOBAUD /SPEED='SPEED' KER$COMM:
  1045.  
  1046.    You may need to add a /NOECHO qualifier if your terminal program is
  1047.    too stupid to read with no echo. It is not necessary with SET
  1048.    HOST/DTE, KERMIT, XMODEM, or HOST32.
  1049.    
  1050.    To support a MODEM on a DECServer 200:
  1051.    
  1052.     1. Set up the terminal server as follows: (assuming port 8)
  1053.  
  1054.   Local> DEFINE PORT 8 ACCESS DYNAMIC AUTOBAUD DISABLED
  1055.   Local> DEFINE PORT 8 DSRLOGOUT DISABLED FLOWCONTROL XON
  1056.   Local> DEFINE PORT 8 INACTIVITY ENABLED MODEM ENABLED
  1057.   Local> DEFINE PORT 8 SIGNAL CHECK ENABLED
  1058.   Local> DEFINE PORT 8 SPEED 2400 ALTERNATE SPEED 1200
  1059.   Local> DEFINE PORT 8 DIALUP ENABLED
  1060.   Local> LOGOUT PORT 8
  1061.   Local> DEFINE SERVICE service_name PORT 8 IDENT "string"
  1062.   Local> SET SERVICE service_name PORT 8 IDENT "string"
  1063.        Other port characteristics may be defined "to taste".
  1064.     2. Insert the following statements in SYS$STARTUP:LAT$SYSTARTUP.COM
  1065.        (SYS$MANAGER:LTLOAD.COM for VMS V5.4 and below):
  1066.  
  1067.   CREATE PORT LTA100: /NOLOG
  1068.   SET PORT LTA100: /APPLICATION /NODE=server_name /SERVICE=service_name -
  1069.         /NOQUEUE /NOLOG
  1070.        The LTA number is more or less arbitrary but must take into
  1071.        account the fact that LAT startup creates a few ports temporarily
  1072.        (starting at LTA1) and the number you choose must not conflict.
  1073.        The server_name and service_name must correspond exactly to the
  1074.        names used in the DECserver DEFINE SERVER server_name and DEFINE
  1075.        SERVICE service_name commands!
  1076.     3. Insert the following statements in SYS$MANAGER:SYSTARTUP_VMS.COM
  1077.        (SYS$MANAGER:SYSTARTUP_V5.COM for VMS V5.X):
  1078.  
  1079. $!
  1080. $       @SYS$STARTUP:LAT$STARTUP.COM    ! Start LAT.
  1081. $! Note that SYS$STARTUP:LAT$STARTUP.COM starts LAT and then invokes
  1082. $! LAT$SYSTARTUP.COM to complete the system specific part of the startup.
  1083. $! VMS V5.4 and below would use @SYS$MANAGER:LTLOAD.COM.
  1084. $!
  1085. $! Set up MODEM port on terminal server.  The SET TERMINAL may not
  1086. $! be necessary at all since the DECserver DEFINE commands include equivalents
  1087. $! for everything except /ALTYPEAHD.
  1088. $       SET TERMINAL /PERMANENT /DIALUP /ALTYPEAHD /HOSTSYNC    LTA100:
  1089. $       SET SECURITY /CLASS=DEVICE /PROTECTION=W:R              LTA100:
  1090.     4. Reboot or execute the commands in steps 2 and 3.
  1091.        
  1092.    [ [45]Contents ] [ [46]C-Kermit ] [ [47]Kermit Home ]
  1093.     ________________________________________________________________________
  1094.   
  1095.   7. BUILDING VMS C-KERMIT FROM THE SOURCE CODE
  1096.   
  1097.    If you have the VMS C-Kermit source files in a ZIP archive, unpack the
  1098.    archive with:
  1099.    
  1100. unzip -aa ckv209.zip
  1101.  
  1102.    C-Kermit is written in the C programming language. To build C-Kermit
  1103.    on the VAX, you must have VAX C, DEC C, or GNU GCC. At some sites, the
  1104.    C header files are archived in a VMS library and then VMS C-Kermit
  1105.    might not be compilable. If the C compiler (preprocessor) complains
  1106.    about not being able to find header files, you'll have to extract them
  1107.    from the library. A sample DCL procedure for this can be found at the
  1108.    end of this file.
  1109.    
  1110.    WARNING: When building with GCC on a VMS system that has Multinet
  1111.    installed, you must ensure that the GCC TIME.H file is used instead of
  1112.    the Multinet TIME.H; otherwise there will be a fatal error in CKVTIO.C
  1113.    at the declaration of "tcount", around line 450. Other warnings appear
  1114.    to be harmless.
  1115.    
  1116.    WARNING: DEC C 4.0 has a bug in which the XABALL struct member
  1117.    xab$b_bkz (used in CKVFIO.C) is not defined. DEC gives a simple
  1118.    example -- compiling the following code with DEC C using either /DECC
  1119.    and /VAXC:
  1120.    
  1121.   #include <rms.h>
  1122.   struct XABALL xabDATAall;
  1123.   int f() {
  1124.       xabDATAall.xab$b_bkz = 63;
  1125.       return 1;
  1126.   }
  1127.  
  1128.    Results in:
  1129.    
  1130.   %CC-E-NEEDMEMBER, In this statement, "xab$b_bkz" is not a member of "xabDATAa
  1131. ll"
  1132.  
  1133.    If you find that the above code produces the same problem on your
  1134.    system, define BUGFILL7, e.g.:
  1135.    
  1136.   @ckvker.com "" "" "BUGFILL7"
  1137.  
  1138.    BEWARE: Certain versions of VAX C can generate incorrect code when a
  1139.    function is used before it is declared, and it generates a return
  1140.    value (via a return statement) that is not used; other functions might
  1141.    have their entry masks (argument lists) corrupted. If you experience
  1142.    bizarre behavior from a version of C-Kermit built with VAX C, try
  1143.    recompiling with /OPT=NOINLINE and /NOOPT, or some other reduced
  1144.    optimization level.
  1145.    
  1146.    Both VAX C and DEC C are moving targets. A version of C-Kermit that
  1147.    was built successfully with version x.y of the compiler almost always
  1148.    fails to build under version x.y+1. Thus you will find increasing
  1149.    numbers of #ifdefs in the code (mostly CKCNET.C and .H and the CKV*.*
  1150.    modules) keyed on explicit C compiler version numbers. Note the form
  1151.    of these carefully -- they have to be just right). Also note that you
  1152.    can't use constructions like:
  1153.    
  1154.   #if __DECC_VER >= 500000000
  1155.  
  1156.    ANYWHERE in a portable module because neither "#if" nor relational
  1157.    operators in preprocessor statements are portable.
  1158.    
  1159.    The number of possible VMS C-Kermit configurations is large, perhaps
  1160.    not even countable: VAX vs Alpha, VAXC vs DECC vs GCC, no network
  1161.    support vs Multinet vs TCPware vs Wollongong vs UCX vs CMU/Tek, and
  1162.    this release of VMS versus all the others. The kicker is in the
  1163.    releases; for example DEC C 4.0 vs 4.1 vs 5.0 vs 5.3 (etc) versus the
  1164.    TCP/IP product's header files, which themselves go through all sorts
  1165.    of releases and patches. We can't guarantee that C-Kermit can be
  1166.    successfully built on every combination, but in version 6.0 we are
  1167.    much closer to that goal than ever before.
  1168.    
  1169.    Before leaving this topic, let's look at how to find out the relevant
  1170.    version numbers. SHOW SYSTEM (among other commands) tells you the VMS
  1171.    version number. To find the C version number, try:
  1172.    
  1173.   $ CC /VER
  1174.  
  1175.    which works for recent DECC versions, or:
  1176.    
  1177.   $ CC NLA0: /NOOBJ /VERSION
  1178.  
  1179.    or (when the above doesn't work):
  1180.    
  1181.   $ CC/LIST=FOO SYS$INPUT
  1182.   ^Z
  1183.  
  1184.    and then look at the first line of FOO.LIS.
  1185.    
  1186.    The method for finding out the TCP/IP product version number depends
  1187.    on the product. For Multinet:
  1188.    
  1189.   $ MU SHOW /VERSION
  1190.  
  1191.    For DEC TCP/IP (UCX) versions 3.0 and later:
  1192.    
  1193.   $ UCX SHOW VERSION
  1194.  
  1195.    For earlier releases, or ones where the above command doesn't work,
  1196.    try:
  1197.    
  1198.   $ RUN SYS$SYSTEM:UCX$VERSIONS
  1199.  
  1200.    or:
  1201.    
  1202.   $ ANALYZE/IMAGE SYS$SYSTEM:*BGDRIVER
  1203.  
  1204.    or:
  1205.    
  1206.   $ ANALYZE/IMAGE SYS$LOADABLE_IMAGES:*BGDRIVER
  1207.  
  1208.    For others: (somebody please fill this in)
  1209.    
  1210.    Before trying to compile, make sure you've got the disk space and
  1211.    quotas, etc, that are needed. In version 6.0 and later, you'll
  1212.    probably need as much as 8 or 10 megabytes for all the sources,
  1213.    objects, and binaries.
  1214.    
  1215.    The User Authorization File (UAF) parameters of the account in which
  1216.    C-Kermit will be built must be set to accomodate the large size of
  1217.    some source modules. Recommended values are:
  1218.    
  1219.   PAGE FILE QUOTA:  at least 60000
  1220.   Working set extent:  at least 5012
  1221.  
  1222.    To modify: Suppose a user KERMIT is the VMS account from which Kermit
  1223.    is maintained. To set these values, the system manager must do the
  1224.    following:
  1225.    
  1226.   $ set default sys$system
  1227.   $ mcr authorize
  1228.   UAF> modify kermit/pgflquo=60000/wsextent=5012
  1229.   UAF> exit
  1230.  
  1231.    If errors such as:
  1232.    
  1233.   %cc-f-text Virtual Memory limits exceeded
  1234.  
  1235.    occur during the build procedure, these parameters may need adjustment
  1236.    (upwards).
  1237.    
  1238.    To build C-Kermit, create a new directory and make it your current
  1239.    directory:
  1240.    
  1241.   $ CREATE/DIR [.KERMIT]
  1242.   $ SET DEFAULT [.KERMIT]
  1243.  
  1244.    and put the C-Kermit source files and build procedures there, for
  1245.    example by copying them from the distribution tape or cartridge.
  1246.    
  1247.    Two build procedures are provided for C-Kermit 6.0 and later; one
  1248.    (CKVOLD.COM) for VMS 4.x, the other (CKVKER.COM) for VMS 5.0 and
  1249.    later. The two are equivalent except for syntax, and should work
  1250.    everywhere. No extra products (MAKE, MMS, MMK, etc) are required (but
  1251.    MMS or MMK will be used if present). The auxilliary file CKVKER.MMS is
  1252.    used if MMS or MMK are present. To build C-Kermit:
  1253.    
  1254.    $ @CKVKER  (or @CKVOLD)
  1255.  
  1256.    Please read the comments at the top of CKVKER.COM itself for further
  1257.    instructions and information.
  1258.    
  1259.    NOTE: if you get messages like this in the link step:
  1260.    
  1261.   %LINK-I-OPENIN, Error opening SYS$COMMON:[SYSLIB]VAXCRTLG.OLB; as input,
  1262.   %RMS-E-FNF, file not found
  1263.   %LINK-I-OPENIN, Error opening SYS$COMMON:[SYSLIB]VAXCRTL.OLB; as input,
  1264.   %RMS-E-FNF, file not found
  1265.  
  1266.    it probably means you have a LNK$LIBRARY symbol defined in your job
  1267.    (or system-wide) and the definition is inappropriate. DEASSIGN it if
  1268.    possible. If not, and if the LINK step produced no other error
  1269.    messages, and the WERMIT.EXE binary seems to run OK, then you can
  1270.    ignore the error messages.
  1271.    
  1272.    If you get huge amounts of warnings like:
  1273.    
  1274.               getsockname(sock,(struct sockaddr *)&l_sa,&slen);
  1275.   ............^
  1276.   %CC-W-PTRMISMATCH, In this statement, the referenced type of the pointer
  1277.   value "&slen" is "int", which is not compatible with "unsigned int".
  1278.   at line number 5870 in file DISK$USRG:[FDC.KERMIT]CKCNET.C;20
  1279.  
  1280.    this indicates that some essential header file is not being executed,
  1281.    which can happen for all sorts of reasons (usually some symbol was
  1282.    defined by some other header file that interferes with a subsequent
  1283.    one). The trick here is to get an include-file listing, which is
  1284.    possible with DECC (maybe VAXC too):
  1285.    
  1286.   @ckvker.com "" "" "" /LIST/SHOW=INCLUDE
  1287.  
  1288.    and then look through the CK????.LIS file of the offending module.
  1289.    
  1290.   7.1. Programming Tips
  1291.   
  1292.    For testing the DEC C version number:
  1293.    
  1294.   #ifdef __DECC_VER
  1295.   #if (__DEC_VER >= 050100000)
  1296.   blah
  1297.   #endif
  1298.   #endif
  1299.  
  1300.    Note: the version number is vvuuteeee; vv is the major version (like
  1301.    5), uu is the update number (like the "3" in 5.3), t is a code for
  1302.    field test, real release, etc, and eeee is the edit suffix. This is
  1303.    available only in DECC 5.0 and later. It also has a __VMS_VER... Note
  1304.    #2: Remember not to add a leading zero because that changes it to
  1305.    octal.
  1306.    
  1307.   7.2. VMS TCP/IP Networking Support for C-Kermit
  1308.   
  1309.    VMS C-Kermit is capable of establishing TCP/IP TELNET connections and
  1310.    acting as a TELNET program with built-in file transfer, script
  1311.    programming, character-set translation, etc, if it is built
  1312.    appropriately. If you have one of the following products installed on
  1313.    your system, complete with libraries and header files:
  1314.    
  1315.     1. DEC TCP/IP (UCX)
  1316.     2. TGV MultiNet TCP/IP
  1317.     3. Wollongong WIN/TCP or PathWay
  1318.     4. Process Software TCPware
  1319.     5. CMU-OpenVMS/IP with Mike O'Malley's sockets library
  1320.        
  1321.    then you can include TCP/IP capability in your version of VMS
  1322.    C-Kermit.
  1323.    
  1324.    The TCP/IP product is selected automatically by the build procedure
  1325.    based on the presence or absence of certain files on your system. To
  1326.    override the automatic selection, define the symbol NET_OPTION in one
  1327.    of the following ways before running the build procedure:
  1328.    
  1329.   $ NET_OPTION = "NONET"      ! Build with no TCP/IP networking support
  1330.   $ NET_OPTION = "CMU_TCPIP"  ! Build with CMU/Tek TCP/IP networking support
  1331.   $ NET_OPTION = "DEC_TCPIP"  ! Build with DEC TCP/IP (UCX) support
  1332.   $ NET_OPTION = "MULTINET"   ! Build with TGV MultiNet TCP/IP support
  1333.   $ NET_OPTION = "TCPWARE"    ! Build with Process Software TCPware support
  1334.   $ NET_OPTION = "WINTCP"     ! Build with WIN/TCP or PathWay support
  1335.  
  1336.    That is, type one of the commands listed above at the DCL prompt
  1337.    (shown above as "$") before running the build procedure. You can also
  1338.    force a "NONET" build with the CKVKER.COM "N" command-line option.
  1339.    
  1340.    Note: If you are building a version with TCP/IP support, and you have
  1341.    the required TCP/IP libraries and header files, but the #include files
  1342.    can't be found at compile time, then maybe they were put into a text
  1343.    library, in which case you need to unpack the include-file library
  1344.    into separate files using the VMS LIBRARY command.
  1345.    
  1346.     7.2.1. DEC TCP/IP (UCX) If the C-Kermit build procedure does not notice
  1347.     that you have DEC TCP/IP installed when you really do, it is likely because
  1348.     the file SYS$STARTUP:UCX$STARTUP.COM is read-protected (e.g. because your
  1349.     site runs DECinspect). Turn on READONLY privilege.
  1350.     
  1351.     If the DEC TCP/IP version of KERMIT.EXE crashes immediately upon startup
  1352.     with a message like:
  1353.     
  1354.   %LIB-E-ACTIMAGE, error activating image
  1355.    R4GRIE$DIA0:[SYS0.SYSCOMMON.][SYSLIB]UCX$IPC_SHR.EXE;1
  1356.   -SYSTEM-F-PRIVINSTALL
  1357.  
  1358.    it means the system manager has to install the UCX sharable library:
  1359.    
  1360.   INSTALL ADD SYS$SHARE:UCX$IPC_SHR.EXE
  1361.  
  1362.     7.2.2. Wollongong / Attachmate TCP/IP Wollongong (now Attachmate (now
  1363.     defunct)) support should work for both new (PathWay) and older (WIN/TCP)
  1364.     versions, and C-Kermit versions linked under older Wollongong versions
  1365.     should still run under the newer version. But note that the pieces of the
  1366.     Wollongong package are now unbundled -- you have to buy the runtime,
  1367.     access, API, etc, pieces separately, and (of course) you need the API to
  1368.     compile C-Kermit with Wollongong TCP/IP support.
  1369.     
  1370.     C-Kermit 7.0 has been verified to build on VMS ... with Pathway 3.1 with a
  1371.     few harmless warning messages, but the following change is required to the
  1372.     Attachmate-supplied file TWG$TCP:[NETDIST.MISC]DEF.COM to remove the
  1373.     definition of DECC$SYSTEM_INCLUDE:
  1374.     
  1375.   $ diff twg$tcp:[netdist.misc]def.com
  1376.   ************
  1377.   File TWG$COMMON:[NETDIST.MISC]DEF.COM;2
  1378.      37   $! define decc$system_include   twg$tcp:[netdist.include],      -
  1379.      38   $!                              twg$tcp:[netdist.include.sys]
  1380.      39   $!
  1381.   ******
  1382.   File TWG$COMMON:[NETDIST.MISC]DEF.COM;1
  1383.      37   $ define decc$system_include    twg$tcp:[netdist.include],      -
  1384.      38                                   twg$tcp:[netdist.include.sys]
  1385.      39   $!
  1386.  
  1387.    You can't build VMS C-Kermit with Wollongong TCP/IP support using GCC
  1388.    due to the use of "noshare" in the Wollongong header files.
  1389.    
  1390.    Reportedly, when building C-Kermit with WIN/TCP support with older
  1391.    versions (5.1 and earlier?) of WIN/TCP, the symbol WIN$PERROR is
  1392.    undefined at link time and the build fails. Workaround: change the one
  1393.    reference to win$perror(), which occurs in the contti() function in
  1394.    CKVTIO.C, to be simply perror().
  1395.    
  1396.     7.2.3. TGV / Cisco / Process MultiNet If your VAX has the TGV MultiNet
  1397.     TCP/IP networking product, CKVKER.COM automatically builds C-Kermit with
  1398.     MultiNet TCP/IP support included. However:
  1399.     
  1400.      * In older (pre-V3.1) MultiNet installations, the header files might
  1401.        not be installed. Without these, C-Kermit will not build
  1402.        correctly. The system manager can add Multinet 3.1 programming
  1403.        support by installing MNETLIB031 from the Multinet distribution,
  1404.        if licensed to do so.
  1405.      * Anyone building the VMS version with certain versions of TGV
  1406.        MultiNet support under VAX C 3.1 might get an error message about
  1407.        conficting definitions of "time_t". This is because of a conflict
  1408.        between DEC's <types.h> and MultiNet's <types.h> caused because
  1409.        DEC changed the definition between VAX C 3.0 and 3.1. Kermit can't
  1410.        do anything about this because CKVTIO.C #includes <time.h>, which
  1411.        itself includes <types.h>. The warning is not fatal.
  1412.        
  1413.     7.2.4. CMU-OpenVMS/IP CMU-OpenVMS/IP (CMUIP), originally CMU/Tek-TCP/IP, is
  1414.     a public domain TCP/IP package originally developed at Carnegie-Mellon
  1415.     University (CMU) by Tektronix (Tek). CMUIP was released to the public trust
  1416.     in December 1992 as CMU-OpenVMS/IP and is now maintained by a diligent
  1417.     group from around the Internet. Support is provided through the usenet
  1418.     group:
  1419.     
  1420.   vmsnet.networks.tcp-ip.cmu-tek
  1421.  
  1422.    BSD socket support for C-Kermit is supported thanks to a new
  1423.    CMU-OpenVMS/IP socket library written by Mike O'Malley of Digital
  1424.    Equipment Corporation. If you have this library installed on your VMS
  1425.    system, the build procedure will find the file
  1426.    CMUIP_ROOT:[SYSLIB]LIBCMU.OLB and C-Kermit will be built automatically
  1427.    with CMU-OpenVMS/IP support unless you define NET_OPTION to say
  1428.    otherwise. The LIBCMU socket library can be found on the
  1429.    kermit.columbia.edu anonymous ftp server.
  1430.    
  1431.   7.3. Adding SSL/TLS Security
  1432.   
  1433.    As of C-Kermit 8.0.208 it is possible to build VMS C-Kermit binaries
  1434.    with SSL/TLS security, allowing securely authenticated and encrypted
  1435.    SSL/TLS or SSL-TELNET connections to be made (but not FTP, since as
  1436.    yet Kermit's FTP client has not been ported to VMS). To build a secure
  1437.    version of VMS C-Kermit, include CK_SSL in P3 and define logicals
  1438.    OPENSSL and SSLLIB to point to OpenSSL and libs, or install Compaq SSL
  1439.    V1.0A. Note that SSL-enabled binaries are restricted by USA export
  1440.    law, and therefore can not be put on publicly accessible FTP or Web
  1441.    sites.
  1442.    
  1443.    [ [48]Contents ] [ [49]C-Kermit ] [ [50]Kermit Home ]
  1444.     ________________________________________________________________________
  1445.   
  1446.   8. CASE STUDY: ALPHA SETUP AND TEST RESULTS
  1447.   
  1448.    Written by Peter Mossel.
  1449.    
  1450.    Model number: DEC3000/400, a workstation with 64MB of memory.
  1451.    Ports used: OPA1: (a MMJ connector for the alternate operator console)
  1452.    TTA1: (a 25-pin male D-connector on the back)
  1453.    Operating System: OpenVMS V1.0
  1454.    Firmware: V1.1
  1455.    
  1456.    Upon power-up, the console displays something like:
  1457.    
  1458.   ...
  1459.   CPU   OK  KN15-BA V1.1-S11A IO20 sV1.0 DECchip 21064 P2.1
  1460.   ...
  1461.  
  1462.    Testing setup 1: OPA1:
  1463.    
  1464.   +-------+
  1465.   |     MMJ--- DECconnect cable ---MMJ H8571-A--- modem cable to PC
  1466.   +-------+                            (passive adapter)
  1467.  
  1468.    In words, plug a DECconnect cable with MMJ plugs on both ends in the
  1469.    alternate console port on the back of the DEC3000/400. Make sure S3 is
  1470.    in the "up" position. The workstation screen is now the console
  1471.    (OPA0:) and the extra port, OPA1:, is available for connecting a
  1472.    terminal or printer. This MMJ plug is the only MMJ plug on the back of
  1473.    this machine.
  1474.    
  1475.    My other host for the test is a DECpc 466, a 66MHz i486 with DOS 5.0
  1476.    and MS-DOS Kermit 3.12. The 466 has 2 serial ports, both 9-pin. I
  1477.    attached a standard 9-pin to 25-pin modem cable (the ones that came
  1478.    into existence with the IBM PC/AT which originally had only a 9-pin
  1479.    serial port) to the serial port on the 466.
  1480.    
  1481.    Now we must join a 25-pin connector and a MMJ connector. This is done
  1482.    with a passive adapter (H8571-A) which converts the RS423 signalling
  1483.    standard (balanced TX+ TX- RX+ RX-, DTR, DSR) to RS-232. All this is
  1484.    fairly standard for DEC sites. Note that when connecting a modem to an
  1485.    MMJ connector, we have only a subset of the required modem signals, so
  1486.    this is not supported via MMJ. The other port (TTA1) has full modem
  1487.    control. Note that the DECconnect cable always reverses TX and RX, so
  1488.    it effectively functions as a NULL-modem cable.
  1489.    
  1490.    Testing setup 2: TTA1
  1491.    
  1492.   +-------+
  1493.   |     25-pin D connector --- NULL modem cable to PC
  1494.   +-------+
  1495.  
  1496.    Use the (only) 25-pin D-connector on the back. Now we need a null
  1497.    modem cable (see the Kermit book), and, because my PC has a 9-pin
  1498.    serial port, I also need a 9-pin to 25-pin modem cable.
  1499.    
  1500.    Testing setup 3: LAT
  1501.    
  1502.    Connect the PC with a standard cable to the terminal server, which
  1503.    speaks LAT to my DEC3000/400. The speed can be set up to 19200 baud
  1504.    with the terminal server in use.
  1505.    
  1506.    Test script for setup 1 and 2:
  1507.    
  1508.    On DEC3000:
  1509.           
  1510.  
  1511. $ kermit
  1512. C-Kermit>set line xxx
  1513.    (where xxx is OPA1 or TTA1)
  1514. C-Kermit>set speed 19200
  1515.  
  1516.    On the PC:
  1517.           
  1518. C:\kermit
  1519. MS-Kermit>set port 1
  1520. MS-Kermit>set speed 19200
  1521. MS-Kermit>server
  1522.  
  1523.    On the DEC3000:
  1524.           
  1525. C-Kermit>get test.fil
  1526. C-Kermit>finish
  1527.  
  1528.    On the PC
  1529.           
  1530. MS-Kermit>quit
  1531.  
  1532.    Test script for setup 3 (LAT):
  1533.    
  1534.    On the PC
  1535.           
  1536. C:\kermit
  1537. MS-Kermit>set port 1
  1538. MS-Kermit>set speed 19200
  1539. MS-Kermit>connect
  1540.  
  1541.           ( Now log into DEC3000 as host )
  1542.           
  1543. $ kermit -x
  1544.  
  1545.           ( back to the PC )
  1546.           
  1547. MS-Kermit>get test.fil
  1548. MS-Kermit>bye
  1549.  
  1550.    Results:
  1551.    
  1552.    In all three cases, the data transfer speed is excellent. Over 80% of
  1553.    the bandwidth of the communication channel is used for the file
  1554.    transfer, sometimes even more. The DEC3000 is loaded with processes
  1555.    (MOTIF, Sybase DBMS, NFS clients and servers,...) and heavy network
  1556.    activity (DECnet, LAT, TCP/IP but no characters have ever been lost,
  1557.    even when the DBMS fires up. No special SYSGEN parameters, just
  1558.    configured for a normal workstation with MOTIF.
  1559.    
  1560.    Notes:
  1561.    
  1562.     1. Device protection
  1563.        In a system like this out of the box, the device protection on
  1564.        TTA1 and OPA1 does not allow an unprivileged user to use these
  1565.        lines for DIAL-OUT from Kermit. Thus, the system manager must set
  1566.        every time the system is rebooted:
  1567.  
  1568.   $ set protection=w:rwlp/device OPA1:
  1569.   $ set protection=w:rwlp/device TTA1:
  1570.        Without these special protections, a terminal connected to these
  1571.        ports will still be able to login and get the "Username:" prompt.
  1572.     2. Console device speed
  1573.        The Alpha VMS V1.0 cover letter mentions that the command
  1574.  
  1575.   $ set terminal/speed=nnnn/perm/opa1:
  1576.        will have no effect on the speed of OPA1. In practice, there is no
  1577.        problem with Kermit file transfers. The data just get thru fine
  1578.        and file transfers are OK. The release notes also mention that
  1579.        setting the speed of OPA1 can be accomplished by setting the
  1580.        console environment variable "tta1_baud" to the desired speed. See
  1581.        the hardware guide on how to do this. The problem will be fixed in
  1582.        a future release.
  1583.        
  1584.    [ [51]Contents ] [ [52]C-Kermit ] [ [53]Kermit Home ]
  1585.     ________________________________________________________________________
  1586.   
  1587.   9. MAKING AND USING VMSINSTAL KITS
  1588.   
  1589.    (NOTE: This section is only for future reference, in case it becomes
  1590.    practical to distribute VMSINSTAL kits for C-Kermit. For now, please
  1591.    ignore.)
  1592.    
  1593.    (The reason it isn't practical to build VMSINSTAL kits is that they
  1594.    would be HUGE -- we have five networking options times two processors
  1595.    (VAX and Alpha) times two choices of whether you want to build from
  1596.    the source code or accept the included binary, and the resulting kit
  1597.    still would not solve the many VMS configuration problems discussed
  1598.    above.)
  1599.    
  1600.    After building C-Kermit using one of the procedures outlined above,
  1601.    execute the DCL procedure CKVMSI.COM to create a VMSINSTAL kit. This
  1602.    kit can be created either with or without the source code. In any
  1603.    case, it includes the C-Kermit executable program, the C-Kermit help
  1604.    file (for installation in your HELP library), plus a sample
  1605.    CKERMIT.INI (C-Kermit initialization) file, and release notes. You may
  1606.    now install C-Kermit using the command:
  1607.    
  1608.   @sys$update:vmsinstal kermit
  1609.  
  1610.    It will prompt you for which components you want installed, and where
  1611.    to put them. CKVMSI and CKVKIT were written by Terry Kennedy of Saint
  1612.    Peters College.
  1613.     ________________________________________________________________________
  1614.   
  1615.   9.1. Sample Header-File Extraction Procedure
  1616.   
  1617.    This one is for VAX C, and probably needs a few more files extracted
  1618.    from it than are shown below.
  1619.    
  1620. $!
  1621. $! XTRACTHD.COM
  1622. $! By Robert Weiner, Programming PLUS, rweiner@watsun.cc.columbia.edu
  1623. $! FEB-1992
  1624. $! Use this Extract Header command script to extract the VAXC header files
  1625. $! from sys$library:vaxcdef into the current directory inorder to compile
  1626. $! ckermit if you don't have the include files already in sys$library:
  1627. $! You must also modify the CKVKER.COM procedure to include
  1628. $! "CCFLAGS = /INC=([])" for this to work, ie. search current directory too.
  1629. $!
  1630. $ write sys$output "Extracting CKERMIT Include Files into Local Directory..."
  1631. $!
  1632. $lib /log /extract=CTYPE        /output=CTYPE.h         sys$library:vaxcdef.tlb
  1633. $lib /log /extract=DCDEF        /output=DCDEF.h         sys$library:vaxcdef.tlb
  1634. $lib /log /extract=DESCRIP      /output=DESCRIP.h       sys$library:vaxcdef.tlb
  1635. $lib /log /extract=DEVDEF       /output=DEVDEF.h        sys$library:vaxcdef.tlb
  1636. $lib /log /extract=DVIDEF       /output=DVIDEF.h        sys$library:vaxcdef.tlb
  1637. $lib /log /extract=ERRNO        /output=ERRNO.h         sys$library:vaxcdef.tlb
  1638. $lib /log /extract=FILE         /output=FILE.h          sys$library:vaxcdef.tlb
  1639. $lib /log /extract=IN           /output=IN.h            sys$library:vaxcdef.tlb
  1640. $lib /log /extract=INET         /output=INET.h          sys$library:vaxcdef.tlb
  1641. $lib /log /extract=IODEF        /output=IODEF.h         sys$library:vaxcdef.tlb
  1642. $lib /log /extract=JPIDEF       /output=JPIDEF.h        sys$library:vaxcdef.tlb
  1643. $lib /log /extract=LIMITS       /output=LIMITS.h        sys$library:vaxcdef.tlb
  1644. $lib /log /extract=NETDB        /output=NETDB.h         sys$library:vaxcdef.tlb
  1645. $lib /log /extract=RMS          /output=RMS.h           sys$library:vaxcdef.tlb
  1646. $lib /log /extract=SETJMP       /output=SETJMP.h        sys$library:vaxcdef.tlb
  1647. $lib /log /extract=SIGNAL       /output=SIGNAL.h        sys$library:vaxcdef.tlb
  1648. $lib /log /extract=SOCKET       /output=SOCKET.h        sys$library:vaxcdef.tlb
  1649. $lib /log /extract=SSDEF        /output=SSDEF.h         sys$library:vaxcdef.tlb
  1650. $lib /log /extract=STARLET      /output=STARLET.h       sys$library:vaxcdef.tlb
  1651. $lib /log /extract=STAT         /output=STAT.h          sys$library:vaxcdef.tlb
  1652. $lib /log /extract=STDIO        /output=STDIO.h         sys$library:vaxcdef.tlb
  1653. $lib /log /extract=STDLIB       /output=STDLIB.h        sys$library:vaxcdef.tlb
  1654. $lib /log /extract=STRING       /output=STRING.h        sys$library:vaxcdef.tlb
  1655. $lib /log /extract=STSDEF       /output=STSDEF.h        sys$library:vaxcdef.tlb
  1656. $lib /log /extract=SYIDEF       /output=SYIDEF.h        sys$library:vaxcdef.tlb
  1657. $lib /log /extract=TIME         /output=TIME.h          sys$library:vaxcdef.tlb
  1658. $lib /log /extract=TIMEB        /output=TIMEB.h         sys$library:vaxcdef.tlb
  1659. $lib /log /extract=TT2DEF       /output=TT2DEF.h        sys$library:vaxcdef.tlb
  1660. $lib /log /extract=TTDEF        /output=TTDEF.h         sys$library:vaxcdef.tlb
  1661. $lib /log /extract=TYPES        /output=TYPES.h         sys$library:vaxcdef.tlb
  1662. $lib /log /extract=UAIDEF       /output=UAIDEF.h        sys$library:vaxcdef.tlb
  1663. $!
  1664. $! The end
  1665. $!
  1666.  
  1667.    [ [54]Top ] [ [55]Contents ] [ [56]C-Kermit Home ] [ [57]C-Kermit 8.0
  1668.    Overview ] [ [58]Kermit Home ]
  1669.      _________________________________________________________________
  1670.    
  1671.    C-Kermit 8.0 VMS Installation Instructions / The Kermit Project /
  1672.    Columbia University / 17 March 2003
  1673.  
  1674. References
  1675.  
  1676.    1. http://www.columbia.edu/kermit/ckvins.html#contents
  1677.    2. http://www.columbia.edu/kermit/ckermit.html
  1678.    3. http://www.columbia.edu/kermit/index.html
  1679.    4. http://www.columbia.edu/kermit/ckvins.html
  1680.    5. http://www.columbia.edu/kermit/ckvins.html#x1
  1681.    6. http://www.columbia.edu/kermit/ckvins.html#x2
  1682.    7. http://www.columbia.edu/kermit/ckvins.html#x3
  1683.    8. http://www.columbia.edu/kermit/ckvins.html#x3.1
  1684.    9. http://www.columbia.edu/kermit/ckvins.html#x3.2
  1685.   10. http://www.columbia.edu/kermit/ckvins.html#x3.3
  1686.   11. http://www.columbia.edu/kermit/ckvins.html#x3.4
  1687.   12. http://www.columbia.edu/kermit/ckvins.html#x3.5
  1688.   13. http://www.columbia.edu/kermit/ckvins.html#x3.6
  1689.   14. http://www.columbia.edu/kermit/ckvins.html#x4
  1690.   15. http://www.columbia.edu/kermit/ckvins.html#x5
  1691.   16. http://www.columbia.edu/kermit/ckvins.html#x6
  1692.   17. http://www.columbia.edu/kermit/ckvins.html#x7
  1693.   18. http://www.columbia.edu/kermit/ckvins.html#x7.1
  1694.   19. http://www.columbia.edu/kermit/ckvins.html#x7.2
  1695.   20. http://www.columbia.edu/kermit/ckvins.html#x8
  1696.   21. http://www.columbia.edu/kermit/ckvins.html#x9
  1697.   22. http://www.columbia.edu/kermit/ckvins.html#x3
  1698.   23. http://www.columbia.edu/kermit/ckvins.html#x4
  1699.   24. http://www.columbia.edu/kermit/ckvins.html#x5
  1700.   25. http://www.columbia.edu/kermit/ckvins.html#x5
  1701.   26. http://www.columbia.edu/kermit/ckvins.html#contents
  1702.   27. http://www.columbia.edu/kermit/ckermit.html
  1703.   28. http://www.columbia.edu/kermit/index.html
  1704.   29. ftp://kermit.columbia.edu/kermit/b
  1705.   30. http://www.columbia.edu/kermit/ckermit.html
  1706.   31. http://www.columbia.edu/kermit/ckvins.html#contents
  1707.   32. http://www.columbia.edu/kermit/ckermit.html
  1708.   33. http://www.columbia.edu/kermit/index.html
  1709.   34. http://www.columbia.edu/kermit/ckvins.html#x5
  1710.   35. http://www.columbia.edu/kermit/ck60manual.html
  1711.   36. http://www.columbia.edu/kermit/ckvins.html#contents
  1712.   37. http://www.columbia.edu/kermit/ckermit.html
  1713.   38. http://www.columbia.edu/kermit/index.html
  1714.   39. http://www.columbia.edu/kermit/ckvins.html#contents
  1715.   40. http://www.columbia.edu/kermit/ckermit.html
  1716.   41. http://www.columbia.edu/kermit/index.html
  1717.   42. http://www.columbia.edu/kermit/ckvins.html#contents
  1718.   43. http://www.columbia.edu/kermit/ckermit.html
  1719.   44. http://www.columbia.edu/kermit/index.html
  1720.   45. http://www.columbia.edu/kermit/ckvins.html#contents
  1721.   46. http://www.columbia.edu/kermit/ckermit.html
  1722.   47. http://www.columbia.edu/kermit/index.html
  1723.   48. http://www.columbia.edu/kermit/ckvins.html#contents
  1724.   49. http://www.columbia.edu/kermit/ckermit.html
  1725.   50. http://www.columbia.edu/kermit/index.html
  1726.   51. http://www.columbia.edu/kermit/ckvins.html#contents
  1727.   52. http://www.columbia.edu/kermit/ckermit.html
  1728.   53. http://www.columbia.edu/kermit/index.html
  1729.   54. http://www.columbia.edu/kermit/ckvins.html#top
  1730.   55. http://www.columbia.edu/kermit/ckvins.html#contents
  1731.   56. http://www.columbia.edu/kermit/ckermit.html
  1732.   57. http://www.columbia.edu/kermit/ck80.html
  1733.   58. http://www.columbia.edu/kermit/index.html
  1734.