home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / old / ckermit5a190 / ckvins.doc < prev    next >
Text File  |  2020-01-01  |  49KB  |  1,127 lines

  1. C-KERMIT 5A INSTALLATION INSTRUCTIONS FOR VMS and OpenVMS           -*-text-*-
  2.  
  3.   5A(190)
  4.   Fri Nov 25 12:12:59 1994
  5.  
  6.   F. da Cruz, C. Gianone, M. Evarts, Columbia University, New York, NY
  7.   Terry Kennedy, Saint Peters College, Jersey City, NJ
  8.   And: Peter Mossel, James Sturdevant, Richard Gilbert
  9.  
  10.   Copyright (C) 1985, 1994, Trustees of Columbia University in the City of New
  11.   York.  The C-Kermit software may not be, in whole or in part, licensed or
  12.   sold for profit as a software product itself, nor may it be included in or
  13.   distributed with commercial products or otherwise distributed by commercial
  14.   concerns to their clients or customers without written permission of the
  15.   Office of Kermit Development and Distribution, Columbia University.  This
  16.   copyright notice must not be removed, altered, or obscured.
  17.  
  18.  
  19. DISCLAIMER:
  20.  
  21.   The C-Kermit software is provided in source code form by Kermit Development
  22.   and Distribution, Columbia University.  The software is provided "as is;" no
  23.   other warranty is provided, express or implied, including without
  24.   limitations, any implied warranty of merchantability or implied warranty of
  25.   fitness for a particular purpose.
  26.  
  27.   "VMS" as used in this document refers to both VMS and OpenVMS on VAX
  28.   processors and OpenVMS on Alpha AXP processors.  Most of the words in the
  29.   previous sentence are trademarks (TM) of Digital Equipment Corporation.
  30.  
  31.   Neither Columbia University nor any of the contributors to the C-Kermit
  32.   development effort, including, but not limited to, AT&T, Digital Equipment
  33.   Corporation, Data General Corporation, International Business Machines
  34.   Corporation, or Saint Peters College warrant C-Kermit software or
  35.   documentation in any way.  In addition, neither the authors of any Kermit
  36.   programs, publications or documentation, nor Columbia University nor any
  37.   contributing institutions or individuals acknowledge any liability resulting
  38.   from program or documentation errors.
  39.  
  40.  
  41. DOCUMENTATION
  42.  
  43.   Frank da Cruz and Christine M. Gianone, "Using C-Kermit", Digital Press /
  44.   Butterworth-Heinemann, Woburn, MA, 1993, 514 pages, ISBN 1-55558-108-0
  45.  
  46.   US single-copy price: $36.95; quantity discounts available.  Available in
  47.   computer bookstores or directly from Columbia University:
  48.  
  49.     Kermit Development and Distribution
  50.     Columbia University Academic Information Systems
  51.     612 West 115th Street
  52.     New York, NY  10025  USA
  53.     Telephone: (USA) 212 854-3703
  54.  
  55.   Domestic and overseas orders accepted.  Price: $34.95 (US, Canada, and
  56.   Mexico), $45 elsewhere.  Orders may be paid by MasterCard or Visa, or
  57.   prepaid by check in US dollars.  Add $35 bank fee for checks not drawn on
  58.   a US bank.  Price includes shipping.  Do not include sales tax.
  59.   Inquire about quantity discounts.
  60.  
  61.   You can also order by phone from the publisher, Digital Press /
  62.   Butterworth-Heinemann, with MasterCard, Visa, or American Express:
  63.  
  64.     +1 800 366-2665 (Woburn, Massachusetts office for USA & Canada)
  65.     +44 993 58521   (Rushden, England office for Europe)
  66.     +61 2 372-5511  (Chatswood, NSW office for Australia & New Zealand)
  67.     +65 220-3684    (Singapore office for Asia)
  68.  
  69.   A German-language edition is also available:
  70.  
  71.     Frank da Cruz and Christine M. Gianone, "C-Kermit - Einfuehrung und
  72.     Referenz", Verlag Heinz Heise, Hannover, Germany (1994).
  73.     ISBN 3-88229-023-4.  Deutsch von Gisbert W. Selke.  Price: DM 90,00.  
  74.     Verlag Heinz Heise GmbH & Co. KG, Helstorfer Strasse 7, D-30625 Hannover.
  75.     Tel. +49 (05 11) 53 52-0, Fax. +49 (05 11) 53 53-1 29.
  76.  
  77. QUICKSTART GUIDE
  78.  
  79. To install VMS C-Kermit on VAX/(Open)VMS 5.x or 6.x, and Alpha AXP OpenVMS 1.x
  80. or 6.x systems, please follow the instructions in the next three major
  81. sections of this file.  The first section, CONFIGURING VMS FOR BEST RESULTS
  82. WITH KERMIT, contains important information needed to achieve solid
  83. performance from C-Kermit.  Please read it and follow the suggestions or give
  84. it to your system manager.  The second section, DECODING VMS C-KERMIT HEX
  85. FILES, explains the process required to create an executable image from the
  86. "text-only" HEX files.  These HEX files are distributed on the ANSI tapes from
  87. Columbia University and are decoded using an assembly-language program which
  88. is also provided.  If you have received VMS C-Kermit on TK50 tape in BACKUP
  89. format, then you already have binary executable files included on the tape.
  90. The third section, INSTALLING VMS C-KERMIT, provides step-by-step instructions
  91. for making C-Kermit available and fully configured for your users.
  92.  
  93. If you are running a version of VMS *prior* to 5.0, or need to customize the
  94. C-Kermit sources, please refer to section IV, BUILDING VMS C-KERMIT FROM THE
  95. SOURCE CODE.
  96.  
  97.  
  98. I - CONFIGURING VMS FOR BEST RESULTS WITH KERMIT
  99.  
  100.   1. TERMINAL BUFFER SIZE
  101.  
  102. VMS is shipped with default installation parameters designed to function on
  103. all possible configurations.  Some of these parameters have not been changed
  104. since the "average" VMS system was a VAX-11/780 with 1Mb of memory.
  105.  
  106. The main parameter that affects Kermit is the terminal type-ahead buffer size,
  107. which applies to serial terminal devices (with the TT or TX prefix).  There
  108. are two possible values in VMS - the "normal" size and the "alternate" size.
  109. The defaults for these are 78 and 200 bytes, respectively.  If more data
  110. arrives at the terminal driver than these buffers can hold (which is a likely
  111. occurrence during file transfer), it will be discarded and file transfers will
  112. be slowed down or terminated by errors.
  113.  
  114. This is most frequently seen when receiving files on a slow VAX, particularly
  115. when using long packets and/or sliding windows.  File reception requires
  116. larger system buffers (to hold arriving packets), and the speed of the VAX
  117. controls how quickly Kermit can empty them.
  118.  
  119. The recommended minimum size for each of these buffers is the number shown as
  120. "Buffer size" by the C-Kermit SHOW PROTOCOL command, which is the total amount
  121. of memory allocated by C-Kermit for packet buffers (window slots times packet
  122. length).  VMS C-Kermit is shipped with a buffer size of 9065, which can be
  123. altered by the user with a SET BUFFERS command.
  124.  
  125. To change the values of the VMS typeahead buffer sizes, you should edit the
  126. file SYS$SYSTEM:MODPARAMS.DAT.  Determine the new values you want to use and
  127. add lines like the following to the end of the MODPARAMS.DAT file:
  128.  
  129.   MIN_TTY_TYPAHDSZ = new_value_for_regular    ! For VMS C-Kermit
  130.   MIN_TTY_ALTYPAHD = new_value_for_alternate    ! For VMS C-Kermit
  131.  
  132. for example:
  133.  
  134.   MIN_TTY_TYPAHDSZ = 2064
  135.   MIN_TTY_ALTYPAHD = 2064
  136.  
  137. The TTY_ALTYPAHD size should be at least as great as the TTY_TYPAHDSZ.
  138. Digital recommends a value of 2064 or greater for TTY_ALTYPAHD if you are
  139. running VMS V5.5 or higher, or if you are running the optional LATmaster code
  140. under VMS V5.4-1, -2, or -3.
  141.  
  142. You should also examine this file to be sure there aren't any other
  143. definitions for TTY_TYPAHDSZ or TTY_ALTYPAHD.  If there are, you'll get
  144. warning messages in the next step.
  145.  
  146.     You may wish to simply set TTY_TYPAHDSZ=TTY_ALTYPAHD=2064, since
  147.     most common VMS "TTY ports" these days are actually LAT or TCP/IP
  148.     devices, which cannot easily be configured to use the alternate
  149.     buffer.  Also, it takes a privileged user or program to set a port
  150.     to use the alternate buffer, and since we do not recommend
  151.     installing Kermit with privileges, this would restrict Kermit access
  152.     to privileged users.
  153.  
  154.     Let's consider a medium-sized VAX with perhaps 64 "ports" (either
  155.     serial ports or LAT or TCP/IP network ports).  This system probably
  156.     has at least 16 megabytes of memory.  Configuring TTY_TYPAHDSZ to
  157.     2064 will take up 64 * 2064 bytes of memory, or 132096 bytes.  This
  158.     is less than 1 per cent of available memory.  Most systems would
  159.     have more than 16Mb of memory for 64 simultaneous users, lowering
  160.     the percentage even further.
  161.  
  162. In some cases, it might also be necessary to increase your system's MAXBUF
  163. parameter.  It should be somewhat longer than the longest packet you want
  164. Kermit to be able to send or receive, to allow for SYS$QIO overhead (the
  165. bigger the value, the more overhead).  DEC currently recommends 2300, which
  166. should be sufficient for 2K (2048-byte) packets.  If you want to use
  167. C-Kermit's maximum packet length, 9024, then your MAXBUF should be set to
  168. about 12000.  Do this in the SYS$SYSTEM:MODPARAMS.DAT file:
  169.  
  170.   MIN_MAXBUF=xxxx
  171.  
  172. You should also ensure that PQL_MBYTLM is at least MAXBUF + 2300; otherwise,
  173. at least on early 5.x VMS releases (reportedly), the system can crash.
  174.  
  175. To have these changes take effect, run the "AUTOGEN" procedure:
  176.  
  177.   @SYS$UPDATE:AUTOGEN GETDATA SETPARAMS
  178.  
  179. or:
  180.  
  181.   @SYS$UPDATE:AUTOGEN SAVPARAMS SETPARAMS
  182.  
  183. or:
  184.  
  185.   @SYS$UPDATE:AUTOGEN SAVPARAMS GENPARAMS FEEDBACK
  186.   DIFFERENCE/OUTPUT=DIFF.DAT/PARALLEL SETPARAMS.DAT
  187.   EDIT/TPU DIFF.DAT ! Check out what Autogen is going to do to me.
  188.   @SYS$UPDATE:AUTOGEN SETPARAMS REBOOT    
  189.  
  190. (Read about AUTOGEN in the VMS Guide to System Management)
  191.  
  192. This incorporates the new buffer sizes into the system configuration, and they
  193. will take effect the next time the system is reloaded.
  194.  
  195. To examine your system parameters:
  196.  
  197.   run sys$system:sysgen
  198.   SYSGEN> use current
  199.   SYSGEN> show maxbuf                (should be at least 2064)
  200.   SYSGEN> show virtualpagecnt        (should be at least 50000)
  201.   SYSGEN> show /tty                  (TTY_ALTYPAHD should be at least 2064)
  202.  
  203. In an emergency, or for testing purposes, you can also change your MIN_MAXBUF
  204. value "on the fly":
  205.  
  206.   $ run sys$system:sysgen
  207.   SYSGEN> set maxbuf 2300
  208.   SYSGEN> write active
  209.   SYSGEN> exit
  210.  
  211. This operation should be used with caution, and should probably NOT be used
  212. with values greater than about 3000.  The AUTOGEN procedure is safer because
  213. it understands the relationships among the major parameters.
  214.  
  215. NOTE: Although it is still recommended that you make your MAXBUF setting
  216. large enough for Kermit packets, it is (as of C-Kermit edit 190) no longer
  217. strictly necessary.  C-Kermit's packet writer now recovers from MAXBUF and
  218. quota-exceeded errors automatically by backing off and retransmitting the
  219. packet in appropriate-size chunks (size determined by trial and error).
  220. But this involves a small amount of additional overhead, so it's still best
  221. to have adequate MAXBUF and quotas.
  222.  
  223.   2. USER QUOTAS AND PRIVILEGES
  224.  
  225. C-Kermit communications are also affected by the user's BYTLM quota and
  226. possibly also the process page quota (PGFLQUO).  Also the BIOLM quota
  227. (should be at least 10 or 20).
  228.  
  229. In modern versions of VMS, the default BYTLM quota is 8192, which should
  230. normally be adequate.  If C-Kermit users experience error messages informing
  231. them that a quota was exceeded during terminal emulation or file transfer, the
  232. system manager should increase the user's BYTLM and/or process page quota.  To
  233. find out the user's quotas, the system manager should:
  234.  
  235.   set default sys$system
  236.   run authorize
  237.   UAF> show <username>
  238.  
  239. Then look for the relevant quotas and adjust them as required.  The BYTLM
  240. quota should be somewhat greater than the product of Kermit's window size
  241. and packet size, for example, 8192 for 4 window slots and 2000-byte-packets.
  242. PGFLQUO should be 20,000 or higher.
  243.  
  244. If users will be using C-Kermit's PUSH command or issuing REMOTE commands (such
  245. as REMOTE DIR) to the VMS C-Kermit server, the user will need to have the
  246. ability to create subprocesses (AUTHORIZE parameter PRCLM).  If Kermit will
  247. itself be invoked as a subprocess (for example, from within a menu system) this
  248. should be considered as well.  Kermit uses local mailboxes for remote command
  249. execution, so users will also need the TMPMBX privilege if these commands are
  250. to be used.
  251.  
  252.   3. CONFIGURING SERIAL COMMUNICATION PORTS
  253.  
  254. If your system has a port that is frequently used for file transfers (for
  255. example, with a modem), you should have your system manager enable the
  256. alternate type-ahead buffer, and direct memory access, by placing the command:
  257.  
  258.   $ SET TERMINAL ddcu:/PERMANENT/ALTYPEAHD/DMA
  259.  
  260. in the system-wide startup command file, where ddcu: is the name of the
  261. device, for each such device.  If DMA is not enabled, Kermit will run more
  262. slowly and use a lot more CPU time.  (Note: DMA is only available on certain
  263. types of devices; e.g. TX but not TT or LTA).
  264.  
  265. If the device is connected to a modem, and is to be used for dialing out,
  266. also include the /MODEM qualifier:
  267.  
  268.   $ SET TERMINAL ddcu:/PERMANENT/ALTYPEAHD/DMA/MODEM
  269.  
  270. If it is not connected to a modem or other data communications device that
  271. follows the RS-232 signalling conventions, you might have to set the /NOMODEM
  272. qualifier instead:
  273.  
  274.   $ SET TERMINAL ddcu:/PERMANENT/ALTYPEAHD/DMA/NOMODEM
  275.  
  276. Even with these settings you might experience what UNIX users know fondly as
  277. "getty babble", which occurs when logins are enabled on the device.  This
  278. occurs with Kermit, SET HOST/DTE, or any other method of communication; for
  279. example, AT<CR> is sent to the modem, the modem echoes AT<CRLF> and then says
  280. OK<CRLF>.  VMS thinks a user named AT is trying to log in with a password of
  281. OK, and says "User authorization failure", but the modem echoes this too,
  282. and so on, back and forth, many times, maybe forever.  Reportedly, this can
  283. be prevented by giving the SECURE attribute to the port in question, e.g.:
  284.  
  285.   $ SET TERMINAL ddcu:/PERMANENT/SECURE
  286.  
  287. which disables logins on the port until a BREAK signal is received.
  288.  
  289. Additionally, for non-privileged users to access a terminal device, they need
  290. to be granted access to it.  The default for terminals is access only by users
  291. with SYSTEM privileges (UIC group less than or equal to MAXSYSGROUP, or with
  292. SYSPRV privilege).  See the VMS documentation for the SET PROTCTION command
  293. for more information.  Note that if you grant everyone access to the port,
  294. anyone can make phone calls via the modem, so you might want to limit this to
  295. particular users, possibly by using a device ACL (VMS V5.0 and later only).
  296.  
  297.  4. LAT DEVICES
  298.  
  299. LAT ports present additional complications.  Most LAT problems are not in
  300. Kermit, but can be reproduced using the SET HOST/DTE command or the SET HOST
  301. /LAT command. The VMS LAT documentation contains information on configuring
  302. LAT ports and troubleshooting problems.  Your terminal server might have come
  303. with additional documentation.
  304.  
  305. Experience shows that it is difficult to properly configure a LAT port to
  306. handle both incoming and outgoing connections.  Therefore seperate LAT ports
  307. are recommended for incoming and outbound connections.
  308.  
  309. LAT devices should be configured /NOQUEUED (in your LATCP CREATE PORT or
  310. SET PORT command); otherwise C-Kermit (or other software) will hang waiting
  311. for a busy port to become free.  /NOQUEUED is the default.
  312.  
  313. You might want a service on the LAT server that is connected to ALL the 
  314. dialout modems, i.e. a dialout modem pool.  Example:
  315.  
  316.   On Server:
  317.     Local> set privilege
  318.     Local> define service modem_pool port 1,2,3,4
  319.     [...]
  320.  
  321.   On the OpenVMS System:
  322.     $ mcr latcp
  323.     LATCP> Create Port -
  324.            lta1000:/Application/Logical=(Name=$T1000,Table=System)
  325.     LATCP> Set Port lta1000: /Node=SAS323 /Service=Modem_Pool
  326.  
  327.  5. CAPTIVE ACCOUNTS
  328.  
  329. Some VMS sites restrict users from getting at the DCL prompt and services by
  330. setting their accounts to be "captive".  This should automatically prevent
  331. C-Kermit's DCL-access commands (such as PUSH) from working.  Any attempt to
  332. execute such a command should result in C-Kermit issuing an error message.
  333. Should a user circumvent this, VMS will automatically terminate the user's
  334. process.  In addition to CAPTIVE, accounts can also be set to RESTRICTED, to
  335. disable all types of spawning.  Note that DEC says that RESTRICTED is only
  336. used "to ensure users complete login processing without interruption". DEC
  337. further states that they intend to modify VMS utilities to no longer prohibit
  338. spawning in a future release.
  339.  
  340. Further, you should be aware that preventing users from getting to DCL only
  341. provides an illusion of security. There are many ways of getting to DCL which
  342. are non-obvious. For cases where absolute security is required, you should in-
  343. vestigate the AUTHORIZE flags CAPTIVE and DISIMAGE. Consult the VMS Security
  344. Manual for more information.
  345.  
  346. C-Kermit itself can be configured to prevent system access, by compiling it
  347. with the NOPUSH option, for example:
  348.  
  349.    $ localopts = "/define=(""NOPUSH"")"
  350.    $ @ckvker.com
  351.  
  352. This disables not only the PUSH command and its synonyms (RUN, @, SPAWN), but
  353. also OPEN !READ, OPEN !WRITE, as well as the server's execution of REMOTE HOST
  354. commands.  See CKCCFG.DOC for further information.
  355.  
  356.  
  357. II - DECODING VMS C-KERMIT HEX FILES
  358.  
  359. If you have obtained the executable VMS C-Kermit program encoded in printable
  360. "hex" format on magnetic tape or over a network, you can decode it back into a
  361. runnable .EXE program image using the CKVDEH.MAR program.  This is an
  362. assembly-language program for the VAX or Alpha AXP, which you should assemble,
  363. link, and run as follows:
  364.  
  365.   $ macro ckvdeh  (on the Alpha AXP, substitute "macro/migrate ckvdeh")
  366.   $ link ckvdeh
  367.   $ run ckvdeh
  368.  
  369. CKVDEH prompts you for the input file name and then creates a .EXE file with
  370. the same root name.  For example, if you enter CKVKER.HEX as the source file,
  371. the resulting executable will be CKVKER.EXE.  This procedure works on both the
  372. VAX and the Alpha AXP -- the same program, CKVDEH.MAR, compiles and runs on
  373. both platforms.
  374.  
  375. The C-Kermit .EXE files were built under VAX/(Open)VMS 5.x and Alpha AXP
  376. OpenVMS 1.x (whenever possible; otherwise under 6.1).  The VAX versions will
  377. not run under pre-5.0 VAX/VMS releases.  If you have a VMS 4.x system with C
  378. compiler, however, you should be able to build C-Kermit using the CKVOLD.COM
  379. procedure.
  380.  
  381. Since VMS C-Kermit can be built with no TCP/IP support or with support for
  382. several different TCP/IP packages, and it can be built on both the VAX and
  383. Alpha AXP platforms, you should pick the right .HEX file for your environment:
  384.  
  385.   TCP/IP Product                  VAX            Alpha AXP
  386.  
  387.    none                           CKVKER.HEX     CKVAXP.HEX
  388.    CMU-OpenVMS/IP ("CMU/Tek")     CKVVCMU.HEX    (none)
  389.    DEC TCP/IP (UCX)               CKVVUCX.HEX    CKVAUCX.HEX
  390.    TGV MultiNet                   CKVVTGV.HEX    CKVATGV.HEX
  391.    Wollongong WIN/TCP (PathWay)   CKVVWIN.HEX    CKVAWIN.HEX
  392.    Process Software TCPware       CKVVPST.HEX    CKVAPST.HEX
  393.  
  394.    Labeled file converter:        CKVCVT.HEX     CKVACVT.HEX
  395.  
  396. Each HEX file was built from an .EXE file on the oldest VMS version we had
  397. access to, in most cases 5-point-something.  In general, an .EXE built under a
  398. certain version of VMS will also run under later VMS versions, but the
  399. opposite is usually not true.
  400.  
  401. III - INSTALLING VMS C-KERMIT
  402.  
  403. VMS C-Kermit must be installed on your VMS system by hand.  There is no
  404. VMSINSTAL kit because it would have to include many megabytes of differently-
  405. configured executables to choose from, and many of system-configuration items
  406. discussed above are best done by the system manager manually, in privileged
  407. mode, after some thought and consideration.
  408.  
  409. IMPORTANT:
  410.  
  411. DO NOT INSTALL VMS C-KERMIT AS A PRIVILEGED PROGRAM!  Instead, install it
  412. as a foreign command.
  413.  
  414. To install C-Kermit, follow this procedure:
  415.  
  416.  1. If you have the old Bliss Kermit-32 on your system, rename it to
  417.     KERMIT32.  If you have a symbol KERMIT defined to run Kermit-32, 
  418.     change the symbol name to KERMIT32.
  419.  
  420.  2. Identify the directory where you want to install the C-Kermit program.
  421.     Normally this would be a directory that is unaffected by installation
  422.     of DEC software, such as SYS$TOOLS = SYS$SYSDEVICE[SYSTOOLS].  From now
  423.     on, we will assume you are using SYS$TOOLS:.
  424.  
  425.  3. Copy the desired .EXE file (VAX or Alpha, with the appropriate networking
  426.     support) to that directory, rename it to KERMIT.EXE, and give users
  427.     permission to run it, for example:
  428.   
  429.     $ COPY CKVVUCX.EXE SYS$TOOLS:KERMIT.EXE
  430.     $ SET PROTECTION=(S:RWED,O:RWED,G:RE,W:RE) SYS$TOOLS:KERMIT.EXE
  431.     
  432.  4. Copy the standard CKERMIT.INI file to the same directory:
  433.  
  434.     $ COPY CKERMIT.INI SYS$TOOLS:
  435.     $ SET PROTECTION=(S:RWED,O:RWED,G:RE,W:RE) SYS$TOOLS:CKERMIT.INI
  436.  
  437.  5. Add the following line to SYS$COMMON:[SYSMGR]SYSTARTUP_V5.COM (or
  438.     whatever your system startup file is):
  439.  
  440.     $ DEFINE/SYSTEM CKERMIT_INI SYS$TOOLS:CKERMIT.INI
  441.  
  442.  6. Find your system-wide login DCL command procedure:
  443.  
  444.     $ SHOW LOGICAL SYS$SYLOGIN
  445.     "SYS$SYLOGIN" = "SYS$TOOLS:SYLOGIN.COM" (LNM$SYSTEM_TABLE)
  446.  
  447.     and then add the following line to it:
  448.  
  449.     $ KERMIT :== $SYS$TOOLS:KERMIT
  450.  
  451.  7. Install the C-Kermit HELP file in your VMS HELP library.  First delete any
  452.     earlier KERMIT help entry, then install the new one:
  453.  
  454.     $ LIBRARY/HELP/DELETE=KERMIT SYS$HELP:HELPLIB.HLB 
  455.     $ LIBRARY/INSERT/HELP SYS$HELP:HELPLIB.HLB CKVKER.HLP
  456.  
  457.  8. Create a publicly accessible directory, such as [KERMIT], in which to make
  458.     other C-Kermit files available to your users:
  459.  
  460.     CKERMIT.KDD
  461.       Sample dialing directory file.
  462.     CKERMIT.KSD
  463.       Sample services directory.
  464.     CKEDEMO.INI
  465.       Macro definitions from "Using C-Kermit".
  466.     CKEVT.INI
  467.       Command file to demonstrate special screen effects from "Using C-Kermit".
  468.     CKCKER.UPD
  469.       A supplement to the book, "Using C-Kermit", describing features added
  470.       since the book was published.
  471.     CKCKER.BWR
  472.       The general C-Kermit beware file.
  473.     CKVKER.BWR
  474.       The VMS-specific C-Kermit beware file.
  475.  
  476.  
  477. IV - USING MODEMS
  478.  
  479. The following is reprinted by permission:
  480.  
  481.             How to Use a MODEM With Your VAX
  482.                            Richard B. Gilbert
  483.               Computer Systems Consultant
  484.                76702.1567@CompuServe.Com
  485.  
  486.                        Revised October 27, 1994
  487.  
  488. Be sure that the serial port you are using supports MODEM control signals.
  489. On the DMF32, for example, only ports 0 and 1 can be used with MODEMS.  These
  490. ports on the DMF32 must have switches set to enable MODEM control signals.
  491. The VAXStation 3100 does NOT support MODEM control!  The MicroVAX 3100 does
  492. support MODEM control.
  493.  
  494. Connect the MODEM with a cable that supports MODEM control signals such as
  495. Digital's BC22E.  The BC22F, connecting all twenty-five pins, is overkill but
  496. will work quite well.  Note that while it was possible to "fake it" with VMS
  497. V4.x and earlier, VMS V5 requires that all of the MODEM control signals be
  498. connected.  (Pins 2-8, 20 and 22 should be connected straight through; i.e.,
  499. 2-2, 3-3, 4-4, ...)
  500.  
  501. You will need to make some switch settings on your MODEM.  The following
  502. settings are for a US Robotics Courier 2400.  See your MODEM's instruction
  503. manual.  The switch numbers will be different but the functions available are
  504. typical.  The settings marked with an asterisk are critical to the successful
  505. use of your MODEM.  Some settings can also be made from the CPU via the
  506. MODEM's AT command set, in which case the hardware switch settings determine
  507. the MODEM's power on defaults.  The AT commands in parentheses, following the
  508. switch settings, are the commands for a U.S.  Robotics Courier HST Dual
  509. Standard MODEM.  Check your manual for the proper commands for your MODEM.
  510.  
  511. * 1.  DTR Normal (controlled by CPU)            (AT&D2&W)
  512.   2.  Verbal result codes (Useful during dialout)    (ATV1)
  513. * 3.  Do not display result codes (Quiet mode)        (ATQ1)
  514.   4.  Echo off line commands (Useful during dialout)    (ATE1)
  515. * 5.  Auto answer (MODEM will answer the phone if DTR is asserted) (ATS0=1)
  516. * 6.  Normal Carrier detect (controlled by MODEM)    (AT&C1&W)
  517.   7.  Single phone line (As required)
  518.   8.  Normal At command set (Must be enabled for auto dial.)
  519.   9.  Online after +++
  520.  
  521. Many users have observed the VAX dropping DTR (Data Terminal Ready) while a
  522. user is trying to dial in, causing the MODEM to hang up the phone.  The
  523. terminal driver will drop DTR if it sees DSR (Data Set Ready) for more than
  524. thirty seconds, without also seeing CD (Carrier Detect).  If it is possible
  525. to configure the MODEM so that it does not assert DSR until it asserts CD (AT
  526. &S1&W), do so.  Otherwise it will be necessary to use a modified cable. At
  527. the VAX end of the cable, cut the wire leading to pin 6 (DSR) and jumper pin
  528. 6 to pin 8 (CD).
  529.  
  530. A command similar to the following should be placed in your
  531. SYS$MANAGER:SYSTARTUP_VMS.COM (SYSTARTUP_V5.COM for VMS V5.X) file to set up
  532. an asynchronous port for use with a MODEM.  You may want to add some more
  533. qualifiers but this will get you going.
  534.  
  535. $ SET TERMINAL -
  536.     /PERMANENT -    ! Make settings permanent
  537.     /MODEM -    ! Use MODEM control signals
  538.     /DIALUP    -    ! Gives the DIALUP identifier to user.
  539.     /HANGUP    -    ! Hang up the phone when user logs off
  540.     /AUTOBAUD -    ! Detect the user's baud rate and set it.*
  541.     /ALTYPEAHD -    ! Use the alternate typeahead buffer.  The
  542.             ! alternate typeahead buffer can be made larger
  543.             ! than the regular one.  This is helpful if you
  544.             ! are doing file transfers.  See SYSGEN parameter
  545.             ! TTY_ALTYPAHD.
  546.     /HOSTSYNC -    ! VAX will send XOFF when its buffer is nearly
  547.             ! full and XON when it is ready for more input.
  548.             ! See SYSGEN parameter TTY_ALTALARM.
  549.     _TXA0:
  550.  
  551. $ SET PROTECTION=W:R /DEVICE
  552.             ! Sets device protection to allow non-privileged
  553.             ! users to allocate the device for dialing out.
  554.             ! Otherwise user must own device or hold SYSPRV.
  555.  
  556. * Many modern MODEMs are capable of using a fixed DTE rate to talk to the
  557.   computer; e.g. if they are set to 19200, they will talk to the computer at
  558.   19200 regardless of what speed they are using to talk to the remote MODEM.
  559.   This feature has performance implications for MODEMs that do data
  560.   compression using either CCITT V.41 or MNP.  For such MODEMs, use
  561.   /SPEED=xxxxx rather than /AUTOBAUD.
  562.  
  563. The following commands should probably go in SYS$SYLOGIN, your system-wide
  564. login command file:
  565.  
  566. $! Test for interactive or batch mode
  567. $!
  568. $ IF F$MODE() .NES. "INTERACTIVE" THEN GOTO 10$
  569. $! Set up device dependant terminal characteristics.  This only works
  570. $! if the terminal responds to ANSI Device Attributes (DA) control string.
  571. $! Most DEC terminals (VT1xx, VT2xx, LAxxx) and compatibles will do so.
  572. $ IF F$GETDVI("TT", "TT_MODEM") THEN $ SET TERMINAL /INQUIRE
  573. $ 10$:
  574.  
  575. To set the terminal for temporary dialout use, execute the following
  576. commands:
  577.  
  578. $ ALLOCATE TXA0:    KER$COMM    ! Logical is useful for Kermit-32.
  579. $ SPEED="''P1'"
  580. $! Default to 1200 baud.        ! Pick a suitable default value.
  581. $ IF SPEED .EQ. "" THEN SPEED=1200
  582. $ SET TERMINAL /NOAUTOBAUD /SPEED='SPEED' KER$COMM:
  583.  
  584. You may need to add a /NOECHO qualifier if your terminal program is too
  585. stupid to read with no echo.  It is not necessary with SET HOST/DTE, KERMIT,
  586. XMODEM, or HOST32.
  587.  
  588. To support a MODEM on a DECServer 200:
  589.  
  590. 1. Set up the terminal server as follows: (assuming port 8)
  591.  
  592. Local> DEFINE PORT 8 ACCESS DYNAMIC AUTOBAUD DISABLED
  593. Local> DEFINE PORT 8 DSRLOGOUT DISABLED FLOWCONTROL XON
  594. Local> DEFINE PORT 8 INACTIVITY ENABLED MODEM ENABLED
  595. Local> DEFINE PORT 8 SIGNAL CHECK ENABLED
  596. Local> DEFINE PORT 8 SPEED 2400 ALTERNATE SPEED 1200
  597. Local> DEFINE PORT 8 DIALUP ENABLED
  598. Local> LOGOUT PORT 8
  599. Local> DEFINE SERVICE service_name PORT 8 IDENT "string"
  600. Local> SET SERVICE service_name PORT 8 IDENT "string"
  601.  
  602. Other port characteristics may be defined "to taste".
  603.  
  604. 2. Insert the following statements in SYS$STARTUP:LAT$SYSTARTUP.COM
  605.    (SYS$MANAGER:LTLOAD.COM for VMS V5.4 and below):
  606.  
  607. CREATE PORT LTA100: /NOLOG
  608.  
  609. SET PORT LTA100: /APPLICATION /NODE=server_name /SERVICE=service_name -
  610.   /NOQUEUE /NOLOG
  611.  
  612. The LTA number is more or less arbitrary but must take into account
  613. the fact that LAT startup creates a few ports temporarily (starting at
  614. LTA1) and the number you choose must not conflict.
  615.  
  616. The server_name and service_name must correspond exactly to the names used in
  617. the DECserver DEFINE SERVER server_name and DEFINE SERVICE service_name
  618. commands!
  619.  
  620. 3. Insert the following statements in SYS$MANAGER:SYSTARTUP_VMS.COM
  621.    (SYS$MANAGER:SYSTARTUP_V5.COM for VMS V5.X):
  622.  
  623. $!
  624. $    @SYS$STARTUP:LAT$STARTUP.COM    ! Start LAT.
  625. $! Note that SYS$STARTUP:LAT$STARTUP.COM starts LAT and then invokes
  626. $! LAT$SYSTARTUP.COM to complete the system specific part of the startup.
  627. $! VMS V5.4 and below would use @SYS$MANAGER:LTLOAD.COM.
  628. $!
  629. $! Set up MODEM port on terminal server.  Note that, while this works for
  630. $! me on VMS V5.4, it has been reported to me that /HANGUP is not allowed
  631. $! under VMS V5.5.  The SET TERMINAL may not be necessary at all since the
  632. $! DECserver DEFINE commands include equivalents for everything except
  633. $! /ALTYPEAHD.
  634. $ SET TERMINAL /PERMANENT /MODEM /DIALUP /HANGUP -
  635.   /ALTYPEAHD /HOSTSYNC LTA100:
  636. $  SET PROTECTION=W:R /DEVICE LTA100:
  637.  
  638. 4. Reboot or execute the commands in steps 2 and 3.
  639.  
  640. It appears that SET HOST /DTE LTAnn: no longer works as of VMS V5.5-2.  I
  641. suspect that it will not work under VMS V5.4-1 or higher with LATmaster
  642. installed.  Instead, define the MODEM port as a service on the terminal
  643. server and use SET HOST /LAT service_name.
  644.  
  645.  
  646. V - BUILDING VMS C-KERMIT FROM THE SOURCE CODE
  647.  
  648. C-Kermit is written in the C programming language.  To build C-Kermit on the
  649. VAX, you must have VAX C 3.0 or later, DEC C, or GNU GCC.  VAX C has undergone
  650. a large number of changes during its lifetime.  Some header files may be
  651. missing in earlier versions.  VMS C-Kermit was developed using VAX C V3.2 and
  652. VMS V5.5, but it was designed to work on earlier systems, back to VMS 4.4 and
  653. VMS C 3.0, if built in those environments (but testing is needed for
  654. verification).  Please report any problems building C-Kermit on older VMS/C
  655. configurations so they can be fixed (or at least documented as problems).
  656.  
  657. At some sites, the C header files are archived in a VMS library and then VMS
  658. C-Kermit might not be compilable.  If the C compiler (preprocessor) complains
  659. about not being able to find header files, you'll have to extract them from
  660. the library.  A sample DCL procedure for this can be found at the end of this
  661. file.
  662.  
  663. BEWARE: VAX C can generate incorrect code under certain circumstances.
  664. For example, if a function is used before it is declared, and it generates
  665. a return value (via a return statement) that is not used, other functions
  666. might have their entry masks (argument lists) corrupted.  If you experience
  667. bizarre behavior from a version of C-Kermit built with VAX C, try recompiling
  668. with /OPT=NOINLINE and /NOOPT, or some other reduced optimization level.
  669.  
  670. The User Authorization File (UAF) parameters of the account in which C-Kermit
  671. will be built must be set to accomodate the large size of some source modules.
  672. Recommended values are:
  673.  
  674.   PAGE FILE QUOTA:  at least 60000
  675.   Working set extent:  at least 5012
  676.  
  677. To modify: Suppose a user KERMIT is the VMS account from which Kermit is
  678. maintained.  To set these values, the system manager must do the following:
  679.  
  680.   $ set default sys$system
  681.   $ mcr authorize
  682.   UAF> modify kermit/pgflquo=60000/wsextent=5012
  683.   UAF> exit
  684.  
  685. If errors such as:
  686.  
  687.   %cc-f-text Virtual Memory limits exceeded
  688.  
  689. occur during the build procedure, these parameters may need adjustment
  690. (upwards).
  691.  
  692. To build C-Kermit, create a new directory and make it your current directory:
  693.  
  694.   $ CREATE/DIR [.KERMIT]
  695.   $ SET DEFAULT [.KERMIT]
  696.  
  697. and put the C-Kermit source files and build procedures there, for example by
  698. copying them from the distribution tape or cartridge.
  699.  
  700. Four build procedures are provided.  You should use them in the this order
  701. of preference:
  702.  
  703. 1. For those with VMS MAKE (available from DECUS, written by Todd Aven of the
  704.    Software Sweatshop in Long Beach, NY, and also distributed with VMS
  705.    C-Kermit on magnetic tape or cartridge by Columbia University; to install
  706.    it, follow the directions in CKVMAK.HLP), a makefile is supplied, called
  707.    CKVKER.MAK, originally written by Terry Kennedy of Saint Peters Collge,
  708.    Jersey City, New Jersey.  The makefile is CKVKER.MAK.  Rename it to
  709.    MAKEFILE. (note the period):
  710.  
  711.    $ RENAME CKVKER.MAK MAKEFILE.
  712.  
  713.    To build C-Kermit with DEC C, type (but don't do it yet -- first read about
  714.    network options below): 
  715.  
  716.    $ MAKE
  717.  
  718.    at the DCL prompt (shown as $).  To build C-Kermit with GNU C, type:
  719.  
  720.    $ MAKE GKERMIT
  721.  
  722.    Use MAKE if you plan to be editing the source files and rebuilding C-Kermit
  723.    periodically.  This eliminates the need to recompile source files that have
  724.    not been changed.  NOTE: If you change compiler options but not the source
  725.    files, use "MAKE /FORCE" to force recompilation of all modules.
  726.  
  727. 2. The CKVKER.COM DCL command procedure.  This procedure unconditionally
  728.    compiles and links all the source modules into WERMIT.EXE.  This procedure
  729.    can be used on any VAX that has suitable versions of VMS and C, and it is
  730.    the procedure you would normally use if you do not intend to be modifying
  731.    the source code after building the program.  To build C-Kermit with the
  732.    DCL procedure, type:
  733.  
  734.    $ @CKVKER
  735.  
  736.    NOTE: CKVKER.COM should not be edited except for strictly local purposes.
  737.    It is generated automatically from CKVKER.MAK by:
  738.    
  739.    $ MAKE/KEEP/NOEXECUTE/FORCE/OUT=CKVKER.COM
  740.  
  741.    All changes of a global nature should be made to the makefile and then a
  742.    new CKVKER.COM generated from it as shown.
  743.  
  744. 3. MMS.  The CKVKER.MMS file can be used with MMS on VAX or Alpha or with
  745.    Mattgoat Software MMK.
  746.  
  747. 4. CKVOLD.COM, for building Kermit on VMS 4.x systems.  Or...  You can
  748.    also build C-Kermit on a VMS 5.x or 6.x system, move the object modules
  749.    to a VMS 4.x system, and then do the linking there, to produce an
  750.    executable that will run on the VMS 4.x system.  To do this:
  751.  
  752.    1. generate CKVKER.COM (or use existing version) and rename
  753.    2. edit the COM file
  754.       (a) add "OLD_VMS" to the /DEFINE=(...) (and customize other options}
  755.       (b) add CKVOLD to the appropriate compile and link lists 
  756.       (c) change library name, e.g., to CKVOLD (and make the library more
  757.       compact by adding "/DATA=REDUCE" to the /CREATE)
  758.       (d) make the file compile-only ("GOTO The_Exit" after the compile list)
  759.       (e) extract the link list to another file
  760.       (the command file uses DCL IF THEN ELSE constructs not available
  761.       on older systems)
  762.    3. compile
  763.    4. copy library and link file to older system
  764.    5. link & install
  765.  
  766. If you have the DEC FORTRAN 6.0 library, UVMTHRTL.EXE, installed, the
  767. resulting KERMIT.EXE file will not run on VMS systems that have an older
  768. FORTRAN library, or lack one altogether:
  769.  
  770.   %DCL-W-ACTIMAGE, error activating image MTHRTL
  771.   -CLI-E-IMGNAME, image file $1$DIA0:[SYS1.SYSCOMMON.][SYSLIB]UVMTHRTL.EXE
  772.   -SYSTEM-F-SHRIDMISMAT, ident mismatch with shareable image
  773.  
  774. The new FORTRAN library has a different identifier.  To link with the old
  775. version of the FORTRAN library, two possibilities exist:
  776.  
  777.   1) Link with SYS$LIBRARY:STARLET/LIB which uses NO shareable images.
  778.  
  779.   2) Perform two defines prior to linking (this causes warning messages)
  780.  
  781.      DEFINE/USER MTHRTL FORTRAN$MTHRTL-VMS
  782.      DEFINE/USER VMTHRTL FORTRAN$VMTHRTL-VMS
  783.  
  784. The second option has been tested successfully on a VAX/VMS system that
  785. has neither FORTRAN nor C installed.
  786.  
  787.  
  788. CUSTOMIZING THE BUILD PROCEDURE
  789.  
  790. If you have a DCL symbol "localopts" (case doesn't matter) defined when you
  791. use either the makefile or the .COM file, the contents of that symbol will be
  792. used instead of the normal ones ("siteopts" -- see the makefile).  You can use
  793. any legal CC compiler option here.  For example:
  794.  
  795.   $ LOCALOPTS = "/UNDEFINE=(""DYNAMIC"")"
  796.   $ MAKE
  797.     -- or --
  798.   $ @CKVKER
  799.  
  800. Note the doubled quotes because they're inside a symbol definition.  If you
  801. don't have a LOCALOPTS symbol, the null string is used and SITEOPTS prevails.
  802. LOCALOPTS is evaluated in the generated .COM file, so it works for both the
  803. makefile and the .COM file.
  804.  
  805. If using LOCALOPTS to add or change compiler options, be sure to include ALL
  806. such options, not just the additional ones, and be sure to include the /FORCE
  807. modifier with your MAKE command, to force recompilation of all modules.
  808.  
  809. Read CKCCFG.DOC for further information about compile-time options for feature
  810. selection.
  811.  
  812.  
  813. VMS TCP/IP NETWORKING SUPPORT FOR C-KERMIT
  814.  
  815. VMS C-Kermit is capable of establishing TCP/IP TELNET connections and acting
  816. as a TELNET program with built-in file transfer, script programming,
  817. character-set translation, etc, if it is built appropriately.  If you have one
  818. of the following products installed on your system, complete with libraries
  819. and header files:
  820.  
  821.   1. DEC TCP/IP (UCX)
  822.   2. TGV MultiNet TCP/IP
  823.   3. Wollongong WIN/TCP or PathWay
  824.   4. Process Software TCPware
  825.   5. CMU-OpenVMS/IP with Mike O'Malley's sockets library
  826.  
  827. then you can include TCP/IP capability in your version of VMS C-Kermit.
  828.  
  829. The TCP/IP product is selected automatically by the build procedure based on
  830. the presence or absence of certain files on your system.  To override the
  831. automatic selection, define the symbol NET_OPTION in one of the following ways
  832. before running the build procedure:
  833.  
  834.   $ NET_OPTION = "NONET"      ! Build with no TCP/IP networking support
  835.   $ NET_OPTION = "CMU_TCPIP"  ! Build with CMU/Tek TCP/IP networking support
  836.   $ NET_OPTION = "DEC_TCPIP"  ! Build with DEC TCP/IP (UCX) support
  837.   $ NET_OPTION = "MULTINET"   ! Build with TGV MultiNet TCP/IP support
  838.   $ NET_OPTION = "TCPWARE"    ! Build with Process Software TCPware support
  839.   $ NET_OPTION = "WINTCP"     ! Build with WIN/TCP or PathWay support
  840.  
  841. That is, type one of the commands listed above at the DCL prompt (shown above
  842. as "$") before running the build procedure.
  843.  
  844. Note: If you are building a version with TCP/IP support, and you have the
  845. required TCP/IP libraries and header files, but the #include files can't be
  846. found at compile time, then maybe they were put into a text library, in which
  847. case you need to unpack the include-file library into separate files using the
  848. VMS LIBRARY command.
  849.  
  850. DEC TCP/IP (UCX)
  851.  
  852. If the C-Kermit build procedure does not notice that you have DEC TCP/IP
  853. installed when you really do, it is likely because the file
  854. SYS$STARTUP:UCX$STARTUP.COM is read-protected (e.g. because your site
  855. runs DECinspect).  Turn on READONLY privilege.
  856.  
  857. If the DEC TCP/IP version of KERMIT.EXE crashes immediately upon startup
  858. with a message like:
  859.  
  860.   %LIB-E-ACTIMAGE, error activating image
  861.    R4GRIE$DIA0:[SYS0.SYSCOMMON.][SYSLIB]UCX$IPC_SHR.EXE;1
  862.   -SYSTEM-F-PRIVINSTALL
  863.  
  864. it means the system manager has to install the UCX sharable library:
  865.  
  866.   INSTALL ADD SYS$SHARE:UCX$IPC_SHR.EXE
  867.  
  868. WOLLONGONG TCP/IP
  869.  
  870. Wollongong support should work for both new (PathWay) and older (WIN/TCP)
  871. versions, and C-Kermit versions linked under older Wollongong versions should
  872. still run under the newer version.  But note that the pieces of the Wollongong
  873. package are now unbundled -- you have to buy the runtime, access, API, etc,
  874. pieces separately, and (of course) you need the API to compile C-Kermit with
  875. Wollongong TCP/IP support.
  876.  
  877. You can't build VMS C-Kermit with Wollongong TCP/IP support using GCC due to
  878. the use of "noshare" in the Wollongong header files.
  879.  
  880. Reportedly, when building C-Kermit with WIN/TCP support with older versions
  881. (5.1 and earlier?) of WIN/TCP, the symbol WIN$PERROR is undefined at link
  882. time and the build fails.  Workaround: change the one reference to
  883. win$perror(), which occurs in the contti() function in CKVTIO.C, to be
  884. simply perror().
  885.  
  886. TGV MULTINET
  887.  
  888. If your VAX has the TGV MultiNet TCP/IP networking product, both procedures
  889. automatically build C-Kermit with MultiNet TCP/IP support included.  However:
  890.  
  891. . In older (pre-V3.1) MultiNet installations, the header files might not be
  892.   installed.  Without these, C-Kermit will not build correctly.  The system
  893.   manager can add Multinet 3.1 programming support by installing MNETLIB031
  894.   from the Multinet distribution, if licensed to do so.
  895.  
  896. . Anyone building the VMS version with certain versions of TGV MultiNet
  897.   support under VAX C 3.1 might get an error message about conficting
  898.   definitions of "time_t".  This is because of a conflict between DEC's
  899.   <types.h> and MultiNet's <types.h> caused because DEC changed the definition
  900.   between VAX C 3.0 and 3.1.  Kermit can't do anything about this because
  901.   CKVTIO.C #includes <time.h>, which itself includes <types.h>.  The warning
  902.   is not fatal.
  903.  
  904. CMU-OpenVMS/IP
  905.  
  906. CMU-OpenVMS/IP (CMUIP), originally CMU/Tek-TCP/IP, is a Public domain TCP/IP
  907. package originally developed at Carnegie-Mellon University (CMU) by Tektronix
  908. (Tek).  CMUIP was released to the public trust in December 1992 as
  909. CMU-OpenVMS/IP and is now maintained by a diligent group from around the
  910. Internet.  Support is provided through the usenet group
  911. vmsnet.networks.tcp-ip.cmu-tek.  BSD socket support for C-Kermit is supported
  912. thanks to a new CMU-OpenVMS/IP socket library written by Mike O'Malley of
  913. Digital Equipment Corporation.  If you have this library installed on your VMS
  914. system, the build procedure will find the file CMUIP_ROOT:[SYSLIB]LIBCMU.OLB
  915. and C-Kermit will be built automatically with CMU-OpenVMS/IP support unless
  916. you define NET_OPTION to say otherwise.  The LIBCMU socket library can be
  917. found on the kermit.columbia.edu anonymous ftp server.
  918.  
  919.  
  920. VI - CASE STUDY: ALPHA AXP SETUP AND TEST RESULTS
  921.  
  922.   (by Peter Mossel)
  923.  
  924. Model number:  DEC3000/400, a workstation with 64MB of memory.
  925. Ports used:    OPA1: (a MMJ connector for the alternate operator console)
  926.                TTA1: (a 25-pin male D-connector on the back)
  927. Operating System:  OpenVMS AXP V1.0
  928. Firmware:  V1.1
  929.  
  930. Upon power-up, the console displays something like:
  931. ...
  932. CPU   OK  KN15-BA V1.1-S11A IO20 sV1.0 DECchip 21064 P2.1
  933. ...
  934.  
  935. Testing setup 1:  OPA1:
  936.  
  937. +-------+
  938. |     MMJ--- DECconnect cable ---MMJ H8571-A--- modem cable to PC
  939. +-------+                            (passive adapter)
  940.  
  941. In words, plug a DECconnect cable with MMJ plugs on both ends in the
  942. alternate console port on the back of the DEC3000/400.  Make sure S3 is
  943. in the "up" position.  The workstation screen is now the console (OPA0:)
  944. and the extra port, OPA1:, is available for connecting a terminal or
  945. printer.  This MMJ plug is the only MMJ plug on the back of this machine.
  946.  
  947. My other host for the test is a DECpc 466, a 66MHz i486 with DOS 5.0 and
  948. MS-DOS Kermit 3.12.  The 466 has 2 serial ports, both 9-pin.  I attached a
  949. standard 9-pin to 25-pin modem cable (the ones that came into existence with
  950. the IBM PC/AT which originally had only a 9-pin serial port) to the serial
  951. port on the 466.
  952.  
  953. Now we must join a 25-pin connector and a MMJ connector.  This is done with a
  954. passive adapter (H8571-A) which converts the RS423 signalling standard
  955. (balanced TX+ TX- RX+ RX-, DTR, DSR) to RS-232.  All this is fairly standard
  956. for DEC sites.  Note that when connecting a modem to an MMJ connector, we have
  957. only a subset of the required modem signals, so this is not supported via MMJ.
  958. The other port (TTA1) has full modem control.  Note that the DECconnect cable
  959. always reverses TX and RX, so it effectively functions as a NULL-modem cable.
  960.  
  961. Testing setup 2:  TTA1
  962.  
  963. +-------+
  964. |     25-pin D connector --- NULL modem cable to PC
  965. +-------+                            
  966. Use the (only) 25-pin D-connector on the back.  Now we need a null modem
  967. cable (see the Kermit book), and, because my PC has a 9-pin serial
  968. port, I also need a 9-pin to 25-pin modem cable.
  969.  
  970. Testing setup 3:  LAT
  971.  
  972. Connect the PC with a standard cable to the terminal server, which speaks
  973. LAT to my DEC3000/400.  The speed can be set up to 19200 baud with the
  974. terminal server in use.
  975.  
  976. Test script for setup 1 and 2:
  977.  
  978. On DEC3000:
  979. $ kermit
  980. C-Kermit>set line xxx
  981.    (where xxx is OPA1 or TTA1)
  982. C-Kermit>set speed 19200
  983.  
  984. On the PC
  985. C:\kermit
  986. MS-Kermit>set port 1
  987. MS-Kermit>set speed 19200
  988. MS-Kermit>server
  989.  
  990. On the DEC3000:
  991. C-Kermit>get test.fil
  992. C-Kermit>finish
  993.  
  994. On the PC
  995. MS-Kermit>quit
  996.  
  997. Test script for setup 3 (LAT):
  998. On the PC
  999. C:\kermit
  1000. MS-Kermit>set port 1
  1001. MS-Kermit>set speed 19200
  1002. MS-Kermit>connect
  1003.  
  1004. [ Now log into DEC3000 as host ]
  1005.  
  1006. $ kermit -x
  1007.  
  1008. [ back to the PC ]
  1009.  
  1010. MS-Kermit>get test.fil
  1011. MS-Kermit>bye
  1012.  
  1013. Results:
  1014.  
  1015. In all three cases, the data transfer speed is excellent.  Over 80% of the
  1016. bandwidth of the communication channel is used for the file transfer,
  1017. sometimes even more.  The DEC3000 is loaded with processes (MOTIF, Sybase
  1018. DBMS, NFS clients and servers,...) and heavy network activity (DECnet, LAT,
  1019. TCP/IP but no characters have ever been lost, even when the DBMS fires up.  No
  1020. special SYSGEN parameters, just configured for a normal workstation with
  1021. MOTIF.
  1022.  
  1023. Notes:
  1024.  
  1025. 1.  Device protection
  1026.  
  1027. In a system like this out of the box, the device protection on TTA1 and
  1028. OPA1 does not allow an unprivileged user to use these lines for DIAL-OUT
  1029. from Kermit.  Thus, the system manager must set every time the system is
  1030. rebooted:
  1031.  
  1032.   $ set protection=w:rwlp/device OPA1: 
  1033.   $ set protection=w:rwlp/device TTA1:
  1034.  
  1035. Without these special protections, a terminal connected to these ports 
  1036. will still be able to login and get the "Username:" prompt.
  1037.  
  1038. 2.  Console device speed
  1039.  
  1040. The VMS AXP V1.0 cover letter mentions that the command
  1041.  
  1042.   $ set terminal/speed=nnnn/perm/opa1: 
  1043.  
  1044. will have no effect on the speed of OPA1.  In practice, there is no problem
  1045. with Kermit file transfers.  The data just get thru fine and file transfers
  1046. are OK.  But Kermit gets confused when it calculates line thruput based on
  1047. 300 bps.  The release notes also mention that setting the speed of OPA1 can
  1048. be accomplished by setting the console environment variable "tta1_baud" to the
  1049. desired speed.  See the hardware guide on how to do this.  The problem will be
  1050. fixed in a future release.
  1051.  
  1052.  
  1053. VII - MAKING AND USING VMSINSTAL KITS
  1054.  
  1055. (NOTE: This section is only for future reference, in case it becomes
  1056. practical to distribute VMSINSTAL kits for C-Kermit.  For now, please ignore.)
  1057.  
  1058. (The reason it isn't practical to build VMSINSTAL kits is that they would
  1059. be HUGE -- we have five networking options times two processors (VAX and
  1060. Alpha AXP) times two choices of whether you want to build from the source code
  1061. or accept the included binary, and the resulting kit still would not solve
  1062. the many VMS configuration problems discussed above.)
  1063.  
  1064. After building C-Kermit using one of the procedures outlined above, execute
  1065. the DCL procedure CKVMSI.COM to create a VMSINSTAL kit.  This kit can be
  1066. created either with or without the source code.  In any case, it includes the
  1067. C-Kermit executable program, the C-Kermit help file (for installation in your
  1068. HELP library), plus a sample CKERMIT.INI (C-Kermit initialization) file, and
  1069. release notes.  You may now install C-Kermit using the command:
  1070.  
  1071.   @sys$update:vmsinstal kermit
  1072.  
  1073. It will prompt you for which components you want installed, and where to put
  1074. them.  CKVMSI and CKVKIT were written by Terry Kennedy of Saint Peters College.
  1075.  
  1076. SAMPLE HEADER-FILE EXTRACTION PROCEDURE
  1077.  
  1078. $!
  1079. $! XTRACTHD.COM
  1080. $! By Robert Weiner, Programming PLUS, rweiner@watsun.cc.columbia.edu
  1081. $! FEB-1992
  1082. $! Use this Extract Header command script to extract the VAXC header files
  1083. $! from sys$library:vaxcdef into the current directory inorder to compile
  1084. $! ckermit if you don't have the include files already in sys$library:
  1085. $! You must also modify the makefile DESCRIP.MMS to include
  1086. $! "CCFLAGS = /INC=([])" for this to work, ie. search current directory too.
  1087. $!
  1088. $ write sys$output "Extracting CKERMIT Include Files into Local Directory..."
  1089. $!
  1090. $lib /log /extract=CTYPE    /output=CTYPE.h        sys$library:vaxcdef.tlb
  1091. $lib /log /extract=DCDEF    /output=DCDEF.h        sys$library:vaxcdef.tlb
  1092. $lib /log /extract=DESCRIP    /output=DESCRIP.h    sys$library:vaxcdef.tlb
  1093. $lib /log /extract=DEVDEF    /output=DEVDEF.h    sys$library:vaxcdef.tlb
  1094. $lib /log /extract=DVIDEF    /output=DVIDEF.h    sys$library:vaxcdef.tlb
  1095. $lib /log /extract=ERRNO    /output=ERRNO.h        sys$library:vaxcdef.tlb
  1096. $lib /log /extract=FILE        /output=FILE.h        sys$library:vaxcdef.tlb
  1097. $lib /log /extract=IN        /output=IN.h        sys$library:vaxcdef.tlb
  1098. $lib /log /extract=INET        /output=INET.h        sys$library:vaxcdef.tlb
  1099. $lib /log /extract=IODEF    /output=IODEF.h        sys$library:vaxcdef.tlb
  1100. $lib /log /extract=JPIDEF    /output=JPIDEF.h    sys$library:vaxcdef.tlb
  1101. $lib /log /extract=LIMITS    /output=LIMITS.h    sys$library:vaxcdef.tlb
  1102. $lib /log /extract=NETDB    /output=NETDB.h        sys$library:vaxcdef.tlb
  1103. $lib /log /extract=RMS        /output=RMS.h        sys$library:vaxcdef.tlb
  1104. $lib /log /extract=SETJMP    /output=SETJMP.h    sys$library:vaxcdef.tlb
  1105. $lib /log /extract=SIGNAL    /output=SIGNAL.h    sys$library:vaxcdef.tlb
  1106. $lib /log /extract=SOCKET    /output=SOCKET.h    sys$library:vaxcdef.tlb
  1107. $lib /log /extract=SSDEF    /output=SSDEF.h        sys$library:vaxcdef.tlb
  1108. $lib /log /extract=STARLET    /output=STARLET.h    sys$library:vaxcdef.tlb
  1109. $lib /log /extract=STAT        /output=STAT.h        sys$library:vaxcdef.tlb
  1110. $lib /log /extract=STDIO    /output=STDIO.h        sys$library:vaxcdef.tlb
  1111. $lib /log /extract=STDLIB    /output=STDLIB.h    sys$library:vaxcdef.tlb
  1112. $lib /log /extract=STRING    /output=STRING.h    sys$library:vaxcdef.tlb
  1113. $lib /log /extract=STSDEF    /output=STSDEF.h    sys$library:vaxcdef.tlb
  1114. $lib /log /extract=SYIDEF    /output=SYIDEF.h    sys$library:vaxcdef.tlb
  1115. $lib /log /extract=TIME        /output=TIME.h        sys$library:vaxcdef.tlb
  1116. $lib /log /extract=TIMEB    /output=TIMEB.h        sys$library:vaxcdef.tlb
  1117. $lib /log /extract=TT2DEF    /output=TT2DEF.h    sys$library:vaxcdef.tlb
  1118. $lib /log /extract=TTDEF    /output=TTDEF.h        sys$library:vaxcdef.tlb
  1119. $lib /log /extract=TYPES    /output=TYPES.h        sys$library:vaxcdef.tlb
  1120. $lib /log /extract=UAIDEF    /output=UAIDEF.h    sys$library:vaxcdef.tlb
  1121. $!
  1122. $! The end
  1123. $!
  1124.  
  1125. (End of file CKVINS.DOC)
  1126.  
  1127.