home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / ckv192.zip / ckvker.bwr < prev    next >
Text File  |  1996-12-28  |  37KB  |  817 lines

  1. CKVKER.BWR          "Beware File" for C-Kermit Version 6.0        -*- text -*-
  2.  
  3.             (Open)VMS VERSION FOR DEC VAX AND ALPHA
  4.  
  5. Applies to C-Kermit 6.0.192
  6. Last update: Thu Dec  5 15:43:07 1996
  7.  
  8. Authors: Frank da Cruz and Christine M. Gianone (Columbia University, NYC);
  9.          Terry Kennedy (Saint Peters College, Jersey City, NJ).
  10.  
  11.   Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New
  12.   York.  The C-Kermit software may not be, in whole or in part, licensed or
  13.   sold for profit as a software product itself, nor may it be included in or
  14.   distributed with commercial products or otherwise distributed by commercial
  15.   concerns to their clients or customers without written permission of the
  16.   Office of Kermit Development and Distribution, Columbia University.  This
  17.   copyright notice must not be removed, altered, or obscured.
  18.  
  19.  
  20. VMS C-Kermit installation instructions are in the file CKVINS.DOC.  Please
  21. be sure you have read that file before concluding that C-Kermit isn't working
  22. right on VMS.
  23.  
  24. Note: "VMS" as used in this document refers to both VMS and OpenVMS on both
  25. VAX and AXP (Alpha) processors.  Most of the words in the previous sentence
  26. are trademarks (TM) of Digital Equipment Corporation.
  27.  
  28.  
  29. DOCUMENTATION
  30.  
  31. C-Kermit is documented in the book "Using C-Kermit", Second Edition, 1997,
  32. by Frank da Cruz and Christine M. Gianone, Digital Press, Burlington, MA, USA,
  33. ISBN 1-55558-164-1.  Price: US $39.95.  To order, call Columbia University,
  34. New York City, at +1 212 854-3703, or Digital Press / Butterworth-Heinemann:
  35.  
  36.     +1 800 366-2665   (Woburn, Massachusetts office for USA & Canada)
  37.     +44 1865 314627   (Oxford, England distribution centre for UK & Europe)
  38.     +61 03 9245 7111  (Melbourne, Vic, office for Australia & NZ)
  39.     +65 356-1968      (Singapore office for Asia) 
  40.     +27 (31) 2683111  (Durban office for South Africa)
  41.  
  42. A German edition is available from Verlag Heinz Heise in Hannover, Germany,
  43. Tel. +49 (05 11) 53 52-0, Fax. +49 (05 11) 53 52-1 29.
  44.  
  45. New features added since these books were published are documented in the
  46. ckcker.upd file.
  47.  
  48. TECHNICAL SUPPORT
  49.  
  50. Please consult the documentation listed above, plus the ckcker.bwr file and
  51. this file itself, before submitting questions, reporting problems, etc, to:
  52.  
  53.   E-Mail: kermit-support@columbia.edu
  54.  
  55.     News: comp.protocols.kermit.misc
  56.  
  57.     Post: The Kermit Project
  58.           Columbia University
  59.           612 West 115th Street
  60.           New York NY  10025
  61.           USA
  62.  
  63.     Fax: +1 212 663-8202
  64.      or: +1 212 662-6442
  65.  
  66. Telephone support also available:
  67.  
  68.   USA Only:  +1 900 555-5595, cost: $2.50 per minute
  69.   Anywhere:  +1 212 854-5126, cost: $25.00 per call, payable via Visa or MC.
  70.  
  71.  
  72. COMMAND PARSER
  73.  
  74. VMS-style command-line editing (arrow keys, etc) is not supported.  Kermit
  75. does not use the VMS F$PARSE facility -- it has its own command parser that
  76. lacks certain features of F$PARSE (arrow-key editing, etc) but has many other
  77. features that F$PARSE lacks: "?"-help, keyword and filename completion,
  78. filename menus, variables, macros, etc.  As of edit 190, C-Kermit does support
  79. command recall (via Ctrl-B and Ctrl-N, not via arrow keys).
  80.  
  81. If you write a DCL command file that starts Kermit with a command-file name
  82. as its first command-line argument, e.g.:
  83.  
  84.   $ kermit oofa.scr
  85.  
  86. and then SUBMIT this DCL command file as a batch job, be aware that the
  87. batch job is executed out of your login directory, so if the command file
  88. (OOFA.SCR in this case) is not in your login directory, you must either SET
  89. DEFAULT to the directory it is in, or else give a fully qualified filename:
  90.  
  91.   $ set default [mydir.mysubdir]
  92.   $ kermit oofa.scr
  93.  
  94. or:
  95.  
  96.   $ kermit [mydir.mysubdir]oofa.scr
  97.  
  98. Contrary to expectations of VMS users, the MSEND command does NOT use
  99. commas to separate file specifications.  E.g. say this:
  100.  
  101.   C-Kermit>msend ckc*.% cku*.% ckv*.%
  102.  
  103. not this:
  104.  
  105.   C-Kermit>msend ckc*.%, cku*.%, ckv*.%
  106.  
  107. CD (Change Directory) to a DECnet node does not work in VMS C-Kermit.
  108.  
  109. The OPEN !READ process needs to be closed explicitly.  If it is not, then
  110. subsequent SEND commands will erroneously try to read from the !READ process.
  111. (This should be fixed in 6.0)
  112.  
  113. OPEN !WRITE does not work in VMS C-Kermit.
  114.  
  115. VMS C-Kermit does NOT provide program status codes in the normal VMS manner.
  116. Rather, it returns the codes described on pp. 323-324 of "Using C-Kermit", by
  117. assigning them to the symbol CKERMIT_STATUS.  For example, if a RECEIVE
  118. operation failed:
  119.  
  120.   $ show symbol ckermit_status
  121.     CKERMIT_STATUS == "4"
  122.   $
  123.  
  124. Arguments supplied to the EXIT (or QUIT) commands take precedence:
  125.  
  126.   C-Kermit>exit 1234
  127.   $ show symbol ckermit_status
  128.     CKERMIT_STATUS == "1234"
  129.   $
  130.  
  131. If C-Kermit encounters no execution errors, and EXIT (QUIT) is given without
  132. an operand, then:
  133.  
  134.   C-Kermit>exit
  135.   $ show symbol ckermit_status
  136.     CKERMIT_STATUS == "0"
  137.   $
  138.  
  139. You can use the CKERMIT_STATUS symbol as in this DCL example:
  140.  
  141.   $ kermit -s oofa.txt
  142.   $ if ckermit_status .eq. 0 then goto ok
  143.  
  144.  
  145. RUNNING C-KERMIT IN DCL COMMAND PROCEDURES
  146.  
  147. It is often desirable to wrap C-Kermit in a DCL command procedure.  Such
  148. a procedure, for example OOFA.COM, can be run either directly on your job's
  149. controlling terminal by:
  150.  
  151.   $ @OOFA
  152.  
  153. or as a batch job via:
  154.  
  155.   $ SUBMIT OOFA
  156.  
  157. When you are writing a DCL command procedure that runs C-Kermit, you
  158. must make a choice:
  159.  
  160.  1. If you want to be able to include Kermit commands in the DCL procedure as
  161.     "image data" (i.e. lines that don't start with $), then you can NOT
  162.     include any Kermit commands that would require access to the real console
  163.     terminal's keyboard and screen, such as CONNECT.  That is, the person who
  164.     runs the DCL procedure can NOT interact directly with a remote computer.
  165.     This type of DCL command procedure can be run either on a terminal via @,
  166.     or as a batch job via SUBMIT.  If you include a CONNECT command in this
  167.     type of batch job, the CONNECT command will fail with the following
  168.     message: 
  169.  
  170.       Sorry, Kermit's CONNECT command can be used only on a real terminal.
  171.       If this is not a batch a job, then you must:
  172.  
  173.       $ DEFINE SYS$INPUT SYS$COMMAND
  174.       
  175.       in your DCL command procedure before starting Kermit.
  176.  
  177.  2. If you want the user to be able to interact directly with the remote
  178.     computer through Kermit's CONNECT command, then:
  179.  
  180.     (a) The DCL procedure can be run only with @, not with SUBMIT.  That is,
  181.         it cannot be a batch job; it must have access to the console terminal.
  182.  
  183.     (b) You must include the following DCL command in the DCL procedure 
  184.         immediately before starting Kermit:
  185.  
  186.         $ DEFINE SYS$INPUT SYS$COMMAND
  187.  
  188.         (/USER, /NOLOG, etc, switches may be used).
  189.  
  190.     (c) You can not include Kermit commands as "image data" in the DCL command
  191.         procedure.  Instead, you must create a separate Kermit command file,
  192.         and use command-line arguments to instruct Kermit to execute it; for
  193.         example:
  194.  
  195.         $ define /user/nolog sys$input sys$command
  196.         $! Execute oofa.scr instead of normal initialization file.
  197.         $ kermit -y oofa.scr
  198.  
  199.         or:
  200.  
  201.         $ define /user sys$input sys$command
  202.         $! Execute oofa.scr after executing normal initialization file.
  203.         $ kermit "-C" "take oofa.scr" 
  204.  
  205. Here is a sample DCL command procedure of the first type, which can be run
  206. either on the controlling terminal or as a batch procedure, and requires no
  207. interaction from the user.  Lines beginning with dollar sign ($) are DCL
  208. commands, other lines are fed to the application program (Kermit).
  209.  
  210.   1. $ write sys$output "Hello from DCL"
  211.   2. $ set default [myuserid.mysubdirectory]
  212.   3. $ kermit
  213.   4. set prompt {}
  214.   5. echo Hello from C-Kermit
  215.   6. @ write sys$output "Hello from DCL from inside C-Kermit"
  216.   7. take oofa.scr
  217.   8. exit
  218.   9. $ write sys$output "All done."
  219.  
  220. (The numbers are not part of the file.)  Lines 1-3 are DCL commands.  Line 3
  221. starts C-Kermit.  Lines 4-8 are C-Kermit commands.  Line 4 shows how to set
  222. C-Kermit's prompt to nothing to reduce clutter in the batch log, should you
  223. desire.  Line 5 shows how to enter messages in the batch log.  Line 6 shows
  224. how to run DCL commands from within Kermit (you can use @ (at-sign), !
  225. (exclamation mark), or the word RUN -- all of them are synonyms, followed by
  226. a DCL command).  Line 8 exits from C-Kermit back to DCL.
  227.  
  228. In line 7, C-Kermit is told to execute a script program from another file,
  229. OOFA.SCR.  Script programs to be run during the batch session are best kept in
  230. separate C-Kermit command files because certain commands, notably GOTO, FOR,
  231. WHILE, and XIF, do not work when entered in the interactive command stream.
  232. Here is a sample command file:
  233.  
  234. set take echo on        ; Make Kermit commands appear in the batch log
  235. set take error on       ; This stops execution automatically upon error
  236. set input echo on       ; This makes INPUT material appear in the batch log
  237. set host blah           ; Make a network connection to host "blah"
  238. set file display serial ; Use SERIAL or NONE for the batch log, not FULL or CRT
  239. input 5 login:          ; Wait for a login prompt
  240. output myuserid\13      ; Send my user ID and a carriage return
  241. input 5 Password:       ; Wait for password prompt
  242. output \$(P1)\13        ; Send my password (see below) and a carriage return
  243. input 20 \13\10$\32     ; Wait for system prompt
  244. output kermit\13        ; Start Kermit on host "blah"
  245. input 5 Kermit>         ; Wait for Kermit> prompt
  246. output server\13        ; Put remote Kermit in server mode
  247. in 5 READY TO SERVE...  ; Wait for READY message
  248. get oofa.txt            ; Get a file from the remote server
  249. bye                     ; Terminate the remote session
  250. end                     ; Return to local C-Kermit prompt
  251.  
  252. VERY IMPORTANT: Batched login scripts are inherently insecure because the
  253. passwords are visible in plaintext, either in a file or else in the batch
  254. queue entry.  VMS presently offers no secure way (known to the writers of this
  255. document) to enter a password into a batch job.
  256.  
  257. Two very insecure methods can be used:
  258.  
  259. 1. Put the password in the Kermit script file.  The risk here is that anybody
  260.    who gains access to the file, or to the system backup tapes, can learn your
  261.    password on the remote system.
  262.  
  263. 2. Give the password as a parameter to the SUBMIT command when starting the
  264.    batch job, for example:
  265.  
  266.    $ SUBMIT OOFA /NOTIFY /PARAM=("mypassword")
  267.  
  268.    (This sets the DCL parameter P1 to your password on the remote host (for
  269.    further information, give the DCL command "help submit /param").  Quotation
  270.    marks are necessary to preserve lowercase letters (important when logging
  271.    in to UNIX hosts).  DCL parameters may be referenced in Kermit commands as
  272.    \$(P1), \$(P2), etc.)  The disadvantage here is that the VMS SHOW
  273.    ENTRY/FULL command displays the parameters from your SUBMIT command, making
  274.    the password visible to (at least) the system operator, and (most likely)
  275.    also to other users, such as members of your group (batch queues are, by
  276.    default, read-accessible by all members of their group).
  277.    
  278. Both methods can be made somewhat safer by adjusting the protections on the
  279. files and/or batch queues that will contain sensitive information, but there
  280. can be no guarantees.  Therefore: EXERCISE EXTREME CAUTION with passwords in
  281. login scripts and batch jobs.
  282.  
  283. And please note further that passwords passed in plain text -- as they still
  284. must be in most cases, particularly those involving dialup access -- are
  285. subject to discovery by various other means, including, but not limited to,
  286. wire tapping.
  287.  
  288. RUNNING C-KERMIT FROM ALL-IN-1
  289.  
  290.   Dr. David Kelly, Australian Environmental Protection Authority
  291.   kellyd@airmoon.epa.nsw.gov.au
  292.  
  293. ALL-IN-1 uses mailboxes (MBX) devices, rather than terminals.  TT: is
  294. reassigned from the user's controlling terminal to a mailbox device.  C-Kermit
  295. uses TT: as its default line device and so doesn't work straight off under
  296. ALL-IN-1.  SYS$INPUT is reassigned to something else again.  SYS$OUTPUT
  297. remains assigned to the user's original terminal line so it can be used to
  298. specify the line device for C-Kermit when called from within ALL-IN-1.  Below
  299. is a script which can be run from ALL-IN-1 which calls C-Kermit to receive a
  300. file.  SYS$OUTPUT is temporarily redefined to stop some guff showing on the
  301. screen.
  302.  
  303. $! RECEIVE_FROM_PC.COM
  304. $!
  305. $! Transfer file from PC into ALL-IN-1 using KERMIT
  306. $! Invoked by TRANSFER_PC_TO_A1.SCP, which is in turn called by the RF
  307. $! option on DT menu.
  308. $!
  309. $ set noon
  310. $ on control_y then goto exit
  311. $
  312. $       tt1=f$trnlnm("sys$output")
  313. $       kermit :== $epa__system:Ckermit
  314. $       define/user sys$input sys$command
  315. $       define sys$output sys$login:del.txt
  316. $       kermit -l 'tt1' -b 9600 -r -a a1file.a1f -q -i
  317. $       deassign sys$output
  318. $       del sys$login:del.txt;
  319. $exit:
  320. $ exit
  321.  
  322. Similarly a file can be sent :
  323.  
  324. $! SEND_TO_PC.COM
  325. $! Transfer document from ALL-IN-1 to the PC
  326. $! invoked by TRANSFER_A1_TO_PC.SCP which is, in turn, called by the
  327. $! SF option on the DT menu
  328. $!
  329. $ set noon
  330. $ on control_y then goto exit
  331. $!
  332. $       write oamailbox "OA GET #CURDOC_FILENAM"
  333. $       @dclmailbox:
  334. $       a1file = "''result'"
  335. $       vmsfile = "A1FILE.A1F"
  336. $       copy/nolog/noconfirm 'a1file' 'vmsfile'
  337. $       kermit :== $epa__system:Ckermit
  338. $       define/user sys$input sys$command
  339. $       tt1=f$trnlnm("sys$output")
  340. $       define sys$output sys$login:del.txt
  341. $       kermit -l 'tt1' -b 9600 -s A1FILE.A1F -q -i
  342. $       deassign sys$output
  343. $       del sys$login:del.txt;
  344. $       if $severity .le. 1 then goto exit
  345. $! if an error occurs, tell ALL-IN-1
  346. $       write oamailbox "OA GET $PC_KERMIT_STATUS=0"
  347. $       @dclmailbox:
  348. $exit:
  349. $ deletex/nolog a1file.a1f;*
  350. $ exit
  351.  
  352. EXTERNAL PROTOCOLS
  353.  
  354. You can use the ZMODEM SZ and RZ commands as "external protocols" over a
  355. connection you have established with C-Kermit, to a host or service that
  356. does not support Kermit protocol.  Start the file transfer on the remote
  357. end, escape back to C-Kermit, give the SPAWN command, and then (for example):
  358.  
  359.   $ define tt xxx:
  360.   $ rz
  361.  
  362. where xxx is the designation of the terminal device (TT or LTA) that you have
  363. dialed out on.  When the transfer is complete, LOGOUT from the SPAWN'd
  364. subprocess and you'll be back at the C-Kermit prompt.
  365.  
  366. GENERAL FAILURES
  367.  
  368. ...can occur for many reasons beyond Kermit's control, many of them related to
  369. VMS system parameters or limits on the user or process: disk quotas, user
  370. pagefile quotas (AUTHORIZE parameter PGFLQUO), system pagefile space filling
  371. up, etc.  See CKVINS.DOC (installation instructions) for details.
  372.  
  373. To increase a user's pagefile quota, tell AUTHORIZE to MODIFY
  374. username/PGFLQUO=number.  The system itself might be running out of pagefile
  375. space, which would cause the system to grind to a halt and eventually crash.
  376. You can check the system pagefiles with SHOW MEMORY/FILE: add up the "Free"
  377. numbers for the [*]*PAGEFILE.SYS files and see if the total is big enough
  378. (there should normally be at least 100K free pages on an active system).  If
  379. not, the system manager would use the procedure @SYS$UPDATE:SWAPFILES to
  380. resize the files.
  381.  
  382. VMS C-Kermit can hang or crash with an "access violation" under certain
  383. conditions when trying to hang up a modem-controlled device that is already
  384. hung up; investigation shows that the hang or crash happens in VMS kernel
  385. space, not in Kermit.
  386.  
  387. Reportedly, on certain VMS configurations (but not others), the following
  388. sequence can cause C-Kermit to crash:
  389.  
  390.   set host somewhere
  391.   connect
  392.   (escape back)
  393.   receive
  394.   Ctrl-C
  395.   connect
  396.  
  397. The problem appears to be in the VMS C library's implementation of signal
  398. handling and longjumps.
  399.  
  400. "Zombie" process can be left behind under certain conditions when a VMS
  401. Kermit server has been sent a BYE command, particularly over a TCP/IP
  402. connection (connection disappears before VMS has a chance to print its
  403. "logged out" message, and now there is nothing to print it on).
  404.  
  405. One user reported "massive failures" when transferring files with VMS C-Kermit
  406. through a particular kind of terminal server.  She had followed all the
  407. directions in the manual, the CKVINS.DOC file, and the CKVKER.BWR files (as it
  408. was before this item was added).  The terminal server, an Equinox ELG48, uses
  409. TELNET protocol to a DECstation 3000 Model 600 running VMS 6.1 and TGV
  410. MultiNet 3.3.  Later, she reported: "It turned out that upgrading the software
  411. on our terminal server has fixed the problem.  It's so odd that the problem
  412. only occured after we upgraded from VMS V5.5-2 to V6.1, since the terminal
  413. server worked fine before the upgrade.  It's also weird that this terminal
  414. server has always worked fine for our Suns, also.  Here's the details of the
  415. terminal server if you want to keep these details on file: Equinox PBX 20 with
  416. ELG 48 board.  The ELG 48 rev was 2.30.  After upgrading it to V2.33,
  417. everything works fine."
  418.  
  419. FILE OPERATIONS
  420.  
  421. As of edit 190, VMS C-Kermit supports append operations: the various logs
  422. (packet, debug, transaction, etc) can be opened in append mode by including
  423. the APPEND keyword after the filename, e.g.:
  424.  
  425.   LOG TRANSACTIONS TRANSACT.LOG APPEND
  426.  
  427. An arbitrary file can be opened for output in append mode:
  428.  
  429.   OPEN APPEND OOFA.TXT
  430.  
  431. and the SET FILE COLLISION APPEND option now works during file transfer.
  432.  
  433. When using append operations:
  434.  
  435.  . Be careful not to append files of different types together, such as a text
  436.    file to an indexed file, or a fixed-record binary file to a text file, etc.
  437.    The result will generally be unusable.
  438.  
  439.  . SET FILE COLLISION APPEND does not work when the FILE TYPE is LABELED.
  440.    This is deliberate: labeled transfers are designed to give you an exact
  441.    copy of the file, including attributes.
  442.  
  443. There is no facility in C-Kermit to distinguish between "overwriting" and
  444. "versioning".  SET FILE COLLISION OVERWRITE always creates a new version in
  445. VMS.
  446.  
  447. BUG: As of this writing, APPEND operations do not use the RMS "first free
  448. byte", and so start on a new block boundary.
  449.  
  450. FILE TRANSFER
  451.  
  452. File transfer modes (TEXT vs BINARY) are set automatically for each file when
  453. sending.  The SET FILE TYPE BINARY and SET FILE TYPE TEXT commands are ignored
  454. when sending files.  To force binary-mode transmission, use SET FILE TYPE
  455. IMAGE.  See the VMS appendix of "Using C-Kermit".
  456.  
  457. When sending binary files that have an odd record length, please note that
  458. these files are actually stored with an even record length on disk.  For
  459. example, suppose DIR/FULL X.VDM says "fixed-length records, record length 17".
  460. On disk, the file really has 18-byte records; each 17-byte record is padded
  461. with a NUL (0) byte to make its length even; this is revealed by DUMP.
  462. C-Kermit sends the raw records, INCLUDING THE PADDING.  Thus, if you send such
  463. a file to (say) DOS or UNIX for actual use, your DOS or UNIX application must
  464. be coded to account for this -- if the record length is odd, add one to it.
  465. If you send the file back to VMS, just tell VMS C-Kermit to SET FILE RECORD
  466. to the original odd length, and the resulting file will be identical to the
  467. original one.
  468.  
  469. Incoming files are rejected if the available space on the disk device is less
  470. than the size of the file.  However, the user's disk quota is not checked.
  471. Quota checking could erroneously report that a user couldn't store a file for
  472. a number of reasons: for example, the user has the EXQUOTA privilege, C-Kermit
  473. is installed with EXQUOTA privilege (not recommended!), overdraft, etc.
  474. Because of the large potential for denying a transfer that would fit, the file
  475. is accepted regardless of the disk quota.  This is consistent with the way
  476. other VMS utilities work.
  477.  
  478. The file size shown in the file transfer display when sending a file might
  479. be incorrect under certain conditions (but the file is still transferred
  480. correctly).
  481.  
  482. Incoming files, if accepted, are always stored as a new file with the next
  483. highest version number, even when FILE COLLISION is set to OVERWRITE or
  484. or RENAME.
  485.  
  486. When you send a BYE command to a VMS C-Kermit server, it does not guarantee
  487. that the VMS job will be logged out.  If C-Kermit was SPAWN'd from another
  488. process, only C-Kermit itself disappears in this case.  Even if the whole VMS
  489. session ends, if the user came in through a LAT terminal server, they will be
  490. back at the "Local>" prompt and the phone line won't be disconnected.
  491.  
  492. Transfer of VFC (Variable with Fixed Control) files, such as those created
  493. by DCL, is problematic, since the meaning of the control bytes is defined by
  494. the application.
  495.  
  496. VMS MAIL messages: If you want to download mail messages to a PC (or other
  497. non-VMS system), select the message of interest using the SELECT and DIRECTORY
  498. commands within VMS MAIL, then EXTRACT/ALL to extract all the selected
  499. messages to a normal text file, then use Kermit to SEND this file.  Don't even
  500. think about trying to transfer your mail file as-is to a non-VMS system; it is
  501. a complicated indexed file, possibly containing pointers to other files, etc.
  502.  
  503. ZIP files: If you have trouble transferring ZIP files into or out of VMS
  504. using BINARY mode, use IMAGE mode instead (SET FILE TYPE IMAGE).  The same
  505. applies to binary files created by VMS UNZIP.
  506.  
  507. When transferring files in LABELED mode, the file transfer display will show
  508. the name the file was sent as, not the "true" name within the labeled file.
  509. Also, note that a transfer may fail with an obscure error (can't create output
  510. file) if there is something incorrect with the label information (for example,
  511. if you specified that the file should be restored to the original directory
  512. and you don't have privilege to write to that directory on this system).
  513.  
  514. DEC PATHWORKS file services normally create files in stream mode,  but
  515. this can be overridden when the file service is created:
  516.  
  517.   $ ADMIN/PCSA
  518.   PCSA> SET FILE_SERVER SERVICE service-name/ATTRIBUTES=SEQUENTIAL_FIXED
  519.  
  520. The normal stream files will be treated as TEXT by Kermit.  To transfer
  521. PATHWORKS files that are really binary, such as executables, use IMAGE mode.
  522.  
  523. Reportedly, when VMS C-Kermit is in local mode and transferring a file (file
  524. transfer display is showing) over a MultiNet TCP/IP connection and a broadcast
  525. from a completing batch job (SUBMIT/NOTIFY) arrives, it crashes C-Kermit with
  526. %SYSTEM-F-ACCVIO, access violation.  The stack dump shows this occurs in the
  527. netinc() routine while reading a packet (rpack).
  528.  
  529. Reportedly, when transferring files TO a VMS system over a LAT connection (for
  530. example, from a PC equipped with PATHWORKS or SuperLAT and MS-DOS Kermit),
  531. packet sizes greater than 255 (some reports say 70!) cannot be used,
  532. irrespective of the VMS SYSGEN parameters regarding MAXBUF, etc.  The problem
  533. seems to lay in the LAT protocol itself, or the particular implementation of
  534. it, whereby applications are not informed of -- and cannot find out -- limits
  535. on transmission.  (And yet, others say they have no problems with file
  536. transfers over LAT connections, even with packet sizes greater than 1000.)
  537.  
  538. SERIAL AND LAT COMMUNICATIONS
  539.  
  540. Prior to version 6.0, there was no way to select a serial communications
  541. speed higher than 38400 bps.  In version 6.0, it is possible to SET SPEED
  542. 57600, 76800, and 115200, since these speeds are supported in VMS 6.x and
  543. later.  However, the fact that you can set a particular speed doesn't mean
  544. this will work.  The device might not support it.  In some cases, the device
  545. will actually use the low-order bits of the speed value, because its speed
  546. register is smaller than the codes used for the new higher speeds.
  547.  
  548. If you CONNECT to a modem or other device, and see a neverending stream of
  549. messages, the terminal device probably has the /LOCAL_ECHO characteristic.
  550. As of edit 189, C-Kermit attempts to turn off this characteristic
  551. automatically as part of the SET LINE procedure.
  552.  
  553. The SET CARRIER command is not supported in the VMS version of C-Kermit.
  554.  
  555. Certain operations driven by RS-232 modem signals do not work on VAXstations
  556. or other DEC platforms whose serial interfaces use MMP connectors (DEC version
  557. of RJ45 telephone jack with with offset tab).  These connectors convey only
  558. the DSR and DTR modem signals, but not carrier (CD), RTS, CTS, or RI.
  559.  
  560. When used on a serial communication device, the HANGUP command (as well as
  561. the CONNECT-mode escape command, H, and the HANGUP done by the DIAL command
  562. when DIAL HANGUP is ON) takes at least 3 (three) seconds.  This is a feature
  563. of VMS.
  564.  
  565. If a DIAL or SET SPEED command gives the error:
  566.  
  567.   ?ttbin: sys$qiow: %SYSTEM-F-NOLOG_IO, operation requires LOG_IO privilege
  568.  
  569. then either the user must be given LOG_IO privilege or else the device must be
  570. given the SET_SPEED attribute.  However, note that under certain versions of
  571. VMS the TT2$M_SETSPEED bit in TTY_DEFCHAR2 is not properly propogated to LAT
  572. devices.  It is best to issue the command SET TERM/PERM/SET_SPEED LTA31: at
  573. startup when the LTA31 device is initially created (which, of course, would be
  574. done by a sufficiently privileged account).
  575.  
  576. During terminal connection (SET LINE) and file transfer over a serial device,
  577. buffer-overrun or BYTLM-quota-exceeded messages might appear.  It is essential
  578. that any VMS system that needs to use Kermit or any other program to transfer
  579. files over serial devices, especially when long packets or sliding windows are
  580. to be used, be SYSGEN'd with large typehead buffers, and that user accounts
  581. be given large BYTLM quotas.  See CKVINS.DOC.
  582.  
  583.   Note that LATmaster software (optional as of VMS V5.4-1, mandatory as of 
  584.   VMS V5.5) requires a minimum Alt-Typeahead buffer of 2064 bytes.  Thus, you
  585.   may already have increased the size.
  586.  
  587. To get around problems on systems where users have small BYTLM quotas, the
  588. txbufr() routine in CKVTIO.C has been limited to reading 512-byte chunks at a
  589. time from the communication device.  This does not appear to have an adverse
  590. affect on performance.  If it does, a quick fix is to recompile CKVTIO.C,
  591. defining CKV_IO_SIZE to be something bigger, e.g.
  592.  
  593.   /define=("CKV_IO_SIZE=8192")
  594.  
  595. or whatever.  A better fix might be to have txbufr() check the user's
  596. remaining BYTLM quota before doing each read.  But the overhead in doing this
  597. might cancel out the advantage of doing it.
  598.  
  599. It is possible to SET LINE to an LTA (LAT) device, but correct operation is
  600. reportedly dependent on the version of DECserver code and the VMS version, and
  601. which patches have been applied, and of course the way the whole setup is
  602. configured.  More about LAT configuration in CKVINS.DOC.
  603.  
  604. If you use C-Kermit to SET LINE to an LTA device and receive a hangup message
  605. immediately:
  606.  
  607.   contti: ttiosb.status: %SYSTEM-F-HANGUP, data set hang-up
  608.  
  609. then:
  610.  
  611.  . Make sure you've created an LTA port on your VMS system which is
  612.    mapped to the DECserver port that the modem is connected to.
  613.  
  614.  . Can you use the VMS SET HOST/DTE command to connect to that line?  If you
  615.    get the same error (which you should) there's a configuration problem in
  616.    the DECserver setup for that port, or the devices protection, or your
  617.    privileges or quotas, or somesuch.
  618.  
  619.  . In order for VMS to connect to the dial-out modem, it needs to see the
  620.    carrier detect signal asserted.  If that signal isn't asserted, the server
  621.    will return a "hangup" error on the first character sent to the port.
  622.    C-Kermit's SET CARRIER command has no effect in VMS.
  623.  
  624.  . Additionally, some modems want to see various settings on RTS/CTS and
  625.    DSR/DTR before they will accept input.  If you have a breakout box and
  626.    someone who is skilled at using it, you can usually resolve these problems.
  627.  
  628. C-Kermit puts LAT terminal servers into PASSTHRU mode, which disables their
  629. forward/backward session switch characters.
  630.  
  631. Reportedly, if you have CONNECTed out through a LAT device, the CONNECT-mode
  632. escape command to hang up (<esc-char>U) does not work.  Reason: unknown.
  633. Cure: unknown (The LAT programming interface is very poorly documented).
  634. Workaround: SET LINE <cr> to close the SET LINE device.
  635.  
  636. Reportedly, although Kermit can SET LINE to a LAT device and work OK, the
  637. same can't be said for a "LAT group" (whatever that is).  The user who
  638. submitted this report said that this problem could be worked around by telling
  639. VMS to SET TERM <blah> /NOALTYPEAHD before starting Kermit (take this one
  640. with a grain of salt).
  641.  
  642. Reportedly, to use C-Kermit with a LAT device under LATmaster, the associated
  643. terminal device must be set /NOREADSYNC.
  644.  
  645. FLOW CONTROL
  646.  
  647. The SET FLOW RTS/CTS command is not supported in the VMS version of C-Kermit.
  648. VMS versions prior to 7.0 do not support RTS/CTS (hardware) flow control.
  649.  
  650. VMS flow control is governed by two SET TERMINAL parameters: /TTSYNC and
  651. /HOSTSYNC.  TTSYNC lets the terminal control the flow of data from the host
  652. and HOSTSYNC lets the host control the flow of data from the terminal.  In
  653. general, these are implemented as Xon/Xoff flow control in each direction, but
  654. on LAT and TCP/IP connections, they can also affect the internal networking
  655. protocol, and they can be implemented on the LAT server's serial interface
  656. with any flow control method at all - Xon/Xoff, RTS/CTS, etc.
  657.  
  658. In VMS C-Kermit, SET FLOW XON/XOFF is equivalent to $ SET TERM /HOSTSYNC
  659. /TTSYNC.  There should never be a reason to SET FLOW NONE in VMS -- in fact,
  660. it is almost always a bad idea.
  661.  
  662. When C-Kermit is in "remote mode", i.e. it is on the far end of a connection,
  663. and is not establishing a connection itself, it uses your current VMS SET
  664. TERMINAL parameters for flow control during command processing.  During packet
  665. mode, however, it obeys your C-Kermit SET FLOW-CONTROL setting, which, to
  666. ensure the chances of lost data are minimal.
  667.  
  668. When C-Kermit is in "local mode", i.e. it is being used to establish a
  669. connection with SET LINE or TELNET, there are two components to your
  670. connection: the part between your terminal and C-Kermit (call this "Part A"),
  671. and the part between C-Kermit and the remote computer or service that you have
  672. connected to ("Part B").  At all times, the flow control used on Part A is
  673. governed by your VMS SET TERMINAL parameters, and the flow control used on
  674. Part B is always governed by C-Kermit's SET FLOW-CONTROL command.
  675.  
  676. If you are using C-Kermit in local mode to access a remote host to use the
  677. EMACS editor, you might find that the Ctrl-S (Search) and Ctrl-Q (Quote)
  678. commands don't work -- your screen and keyboard "freeze" when you type Ctrl-S,
  679. and Ctrl-Q seems to be ignored.  This means that your VMS command terminal has
  680. the /TTSYNC characteristic; Ctrl-S and Ctrl-Q are being used for flow control
  681. between your terminal and the VMS system -- the remote system and EMACS never
  682. see them.  There are two ways around this problem:
  683.  
  684.  1. Tell VMS to SET TERM /NOTTSYNC before starting C-Kermit.  In this case,
  685.     you are in danger of losing data on the connection, particularly if your
  686.     connection to VMS is through a LAT device.
  687.  
  688.  2. Leave the /TTSYNC charactistic in force and use the long forms for the
  689.     EMACS commands: ESC-X Search-Forward and ESC-X Quoted-Insert.  Or assign
  690.     these functions to other EMACS keys in your EMACS initialization file.
  691.  
  692. NETWORK COMMUNICATIONS
  693.  
  694. There is (as yet) no support for initiating connections over DECnet, nor for
  695. VAX/PSI.  Certain types of TCP/IP are supported (including DEC TCP/IP (UCX),
  696. CMU-OpenVMS/IP ("CMU/Tek"), TGV MultiNet, Wollongong WIN/TCP or PathWay,
  697. Process Software TCPware); other types: not yet (e.g. Fusion).
  698.  
  699. The TCPware version works correctly with TCPware versions 4.1-2 or later;
  700. earlier versions, such 3.1-3, have a bug that can result in failure of
  701. C-Kermit to make network connections, with a message like:
  702.  
  703.  ?contti: network sys$qio: %SYSTEM-F-IVCHAN, invalid I/O channel
  704.  
  705. Process Software recommends upgrading to the current TCPware release.
  706.  
  707. DEC TCP/IP (UCX) 2.0C and earlier, which runs only on VAXes, has a bug that
  708. prevents TCP port lookup by name from working as expected, so if you tell
  709. C-Kermit to "telnet blah" or "set host blah", you'll get a "Connection
  710. refused" error.  If you don't specify a port, Kermit substitutes the service
  711. name "telnet" and then asks UCX to look it up; UCX finds it but erroneously
  712. returns a port number with its bytes swapped (e.g. 5888 instead of 23), and
  713. then Kermit tries to connect to port 5888 on the host; most hosts will refuse
  714. the connection; if they don't, you probably didn't reach a Telnet port anyway.
  715. The workaround is to include a port number (not name) in your command.  Any of
  716. the following will work:
  717.  
  718.   set host blah:23
  719.   set host blah 23
  720.   telnet blah:23
  721.   telnet blah 23
  722.  
  723. A patch was issued after C-Kermit 6.0.192 was released, adding the following
  724. command to VMS C-Kermit versions built on VAXes with UCX:
  725.  
  726.   SET TCP UCX-PORT-BUG { ON, OFF }
  727.  
  728. If you have UCX 2.0C or earlier, and C-Kermit won't make Telnet connections,
  729. tell it to:
  730.  
  731.   SET TCP UCX-PORT-BUG ON
  732.  
  733. In case your version of C-Kermit 6.0 does not have this patch, then use
  734. the workaround of specifying a port number.
  735.  
  736. If you enter the VAX from elsewhere through a TELNET connection, and the VAX
  737. is running CMU-OpenVMS/IP, Fusion, or DEC TCP/IP (UCX), you might notice that
  738. file transfers into the VAX fail almost immediately.  If this happens, it is
  739. most likely the result of small VMS typeahead buffers.  See CKVINS.DOC for how
  740. to increase typeahead buffer sizes, or work around the problem by telling VMS
  741. C-Kermit to ask for smaller packets, for example:
  742.  
  743.   C-Kermit>set receive packet-length 65  ; (Use the longest length that works)
  744.  
  745. The UCX version of Kermit works on MultiNet systems too, because MultiNet
  746. automatically goes into "UCX compatibility mode" when a UCX application is
  747. run.
  748.  
  749. You can also use the non-network version of C-Kermit on a MultiNet system to
  750. make TCP/IP connections as follows:
  751.  
  752. $ telnet/create foo.bar.baz.com
  753. Trying... 
  754. TELNET session now connected to _NTY5:
  755. %DCL-I-ALLOC, _$4$NTY5: allocated
  756.  
  757. $ kermit
  758. C-Kermit 6.0.192, OpenVMS AXP
  759. Type ? or HELP for help
  760. C-Kermit>set line telnet_nty
  761. C-Kermit>connect
  762. etc...
  763.  
  764. When using the CMU-OpenVMS/IP TCP/IP transport, assign the system logical
  765. INET$SERVICE_TELNET_TCP to the telnet port as follows:
  766.  
  767.     $ DEFINE /SYSTEM INET$SERVICE_TELNET_TCP 23
  768.  
  769. This is only required if the -j option is used without specifying a port to use
  770. (e.g. -j host).  If this logical assignment is not made using `-j host' option
  771. will fail with the error:
  772.  
  773.   %CKERMIT-E-FATAL, can't open host connection
  774.  
  775. The default port, hardcoded in C-Kermit, is 23.  Another port may be specified
  776. using the -j option as `-j host:port'.
  777.  
  778. SET INPUT ECHO OFF seems to have no effect when given to VMS C-Kermit and
  779. the INPUT command is reading from the console terminal.
  780.  
  781. PERFORMANCE
  782.  
  783. If you are experiencing very poor performance on serial connections, use the
  784. VMS command SHOW TERMINAL to make sure that the terminal device has the DMA
  785. (Direct Memory Access) characteristic.  If it does not, try setting it (or
  786. get your system manager to, in case privilege is required):
  787.  
  788.   $ SET TERMINAL device_name /PERMANENT/DMA
  789.  
  790. On some slower VAX models with built-in serial ports, such as the VAXstation
  791. 3100 or MicroVAX-II, receiving files on serial ports at (say) 19200 bps
  792. results in high CPU utilization, slowing down the system for other processes.
  793. This is partially because VMS C-Kermit's serial i/o routines need to be
  794. restructured along the same lines as the network ones (nonblocking buffered
  795. reads), but also because on certain systems, such as the VS3100, serial
  796. ports interrupt the CPU every time a character arrives.  Most VMS systems
  797. nowadays, however, support either DMA for serial port i/o, or have their
  798. users coming in through terminal servers.
  799.  
  800. A similar problem is observed when C-Kermit is receiving files on a VAX/PSI
  801. (X.25) system, attached to a certain X.25 network (Autonet), but not others,
  802. attached via a DSW42 interface: huge numbers of I/O requests drive the load
  803. way up.  Reportedly, "this is due to a VAX PSI feature called Synchronized
  804. Echo Protocol (SEP), which is supposed to coordinate echo by the X.25 PAD,
  805. e.g. when typing ahead.  When disabling this feature, the file transfers
  806. proceed fast and efficient.  This feature is a network-specific X.25
  807. "facility" negotiated at call-setup time, not an X.3 parameter (standard or
  808. otherwise) -- Facility Number 66 (decimal, or 42 hex).  It could not even be
  809. set or viewed by the user or the VAX administrator.  It had to be disabled by
  810. the network provider.  I think that most X.25 networks do not even implement
  811. this feature and thus is it not common issue.  In any case, in our situation,
  812. I asked the X.25 network provider to disable this feature, and now C-Kermit is
  813. performing efficiently, but now, of course, echoing (e.g. of material that is
  814. typed ahead) is no longer synchronized."
  815.  
  816. (End of CKVKER.BWR)
  817.