home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 435 / kermit23.arc / MSKERM.DOC < prev    next >
Text File  |  1988-01-15  |  185KB  |  3,759 lines

  1.  
  2.                            MS-DOS KERMIT USER GUIDE
  3.  
  4.  
  5.          FOR THE IBM PC FAMILY, COMPATIBLES, AND OTHER MS-DOS SYSTEMS
  6.  
  7.  
  8.  
  9.                             C. Gianone, F. da Cruz
  10.  
  11.               Columbia University Center for Computing Activities
  12.                            New York, New York 10027
  13.  
  14.  
  15.                                  J.R. Doupnik
  16.  
  17.               CASS and EE, Utah State University, Logan, UT 84322
  18.  
  19.  
  20.                                 January 8, 1988
  21.  
  22.  
  23.  
  24.                             Copyright (C) 1981,1988
  25.             Trustees of Columbia University in the City of New York
  26.  
  27.      Permission is granted to any individual or institution to use, copy,
  28.     or redistribute this document so long as it is not sold for profit, and
  29.                   provided this copyright notice is retained.
  30.  
  31.  
  32.  
  33. 1. MS-DOS KERMIT
  34.  
  35. --------
  36. This  document  is  formatted  as an ordinary, plain text ASCII disk file, from
  37. SCRIBE text formatter source.   Typeset  copies  are  available  from  Columbia
  38. University.
  39. --------
  40.  
  41. Program:        Joe  R.  Doupnik (Utah State University), with contributions by
  42.                 James  Harvey  (Indiana/Purdue  University),  James  Sturdevant
  43.                 (A.C. Nielson Company), and many others (see History).
  44.  
  45. Language:       Microsoft Macro Assembler (MASM)
  46.  
  47. Version:        2.30
  48.  
  49. Released:       January 8, 1988
  50.  
  51. Documentation:  Christine Gianone, Frank da Cruz (Columbia University),
  52.                 Joe R. Doupnik (Utah State University)
  53.  
  54. Dedicated To:   Peppi
  55.  
  56.  
  57. Kermit-MS Capabilities At A Glance:
  58.  
  59.    Local operation:                Yes
  60.    Remote operation:               Yes
  61.    Transfers text files:           Yes
  62.    Transfers binary files:         Yes
  63.    Wildcard send:                  Yes
  64.    File transfer interruption:     Yes
  65.    Filename collision avoidance:   Yes
  66.    Can time out:                   Yes
  67.    8th-bit prefixing:              Yes
  68.    Repeat count compression:       Yes
  69.    Alternate block check types:    Yes
  70.    Terminal emulation:             VT102, H19, VT52, Tektronix 4010
  71.    Communication settings:         Speed, Parity, Flow Control, Handshake, Echo
  72.    Transmit BREAK:                 Yes (and Long BREAK)
  73.    IBM mainframe communication:    Yes
  74.    Transaction logging:            No
  75.    Session logging (raw download): Yes
  76.    Raw upload:                     Yes
  77.    Act as server:                  Yes
  78.    Talk to server:                 Yes
  79.    Advanced server functions:      Yes
  80.    Advanced commands for servers:  Yes
  81.    Local file management:          Yes
  82.    Command/init files:             Yes
  83.    Command macros:                 Yes
  84.    Extended-length packets:        Yes
  85.    Local area networks:            Yes (NetBIOS support)
  86.    MS-Windows compatibility:       Yes
  87.    Attribute packets:              No
  88.    Sliding windows:                No
  89.  
  90. MS-DOS  Kermit, or "Kermit-MS" (or MS-Kermit), is a program that implements the
  91. Kermit file transfer protocol for the entire IBM PC family, including the  PS/2
  92. series,  IBM  compatibles,  and  several other machines based on the Intel 8086
  93. processor series (8088, 80286, 80386, etc) and the DOS operating system  family
  94. (PC-DOS  or  MS-DOS,  henceforth  referred  to collectively as MS-DOS or simply
  95. DOS).
  96.  
  97. It is assumed you are acquainted with your PC and with DOS, and  that  you  are
  98. familiar with the general ideas of data communication and Kermit file transfer.
  99. A very brief overview is given here, but for details consult the early chapters
  100. of  the  Kermit  User  Guide (of which this document is a chapter), or the book
  101. Kermit, A File Transfer Protocol, by Frank da Cruz, Digital Press (1987), order
  102. number  EY-6705E-DP  (phone  1-800-343-8321),  which  also  includes background
  103. tutorials on computers, file systems, and data communication (including modems,
  104. cabling,  etc).    For further information about Kermit documentation, updates,
  105. lists of current available versions, and ordering information, write to:
  106.  
  107.     Kermit Distribution
  108.     Columbia University Center for Computing Activities
  109.     612 West 115th Street
  110.     New York, NY  10025  (USA)
  111.  
  112.  
  113. 1.1. System Requirements
  114.  
  115. Kermit-MS version  2.30  runs  in  as  little  as  70K  of  memory  (about  55K
  116. contiguous),  but  will occupy up to 120K, if it can be found, for extra screen
  117. rollback memory.  Versions not using screen rollback memory  will  not  require
  118. the  additional  space.   It will also try to leave 24 Kbytes free for a second
  119. copy of COMMAND.COM which is needed for execution of certain commands.
  120.  
  121. On the IBM PC family, Kermit-MS 2.30 performs almost complete emulation of  the
  122. DEC  VT-102  and  Heath/Zenith-19  terminals  at  speeds  up  to 19,200 baud or
  123. greater, lacking only the VT102's smooth scrolling and (on some display boards)
  124. 132 column features.  And as of version 2.30, Kermit-MS also performs Tektronix
  125. 4010 graphics terminal emulation on IBM PC family systems  equipped  with  CGA,
  126. EGA, and Hercules graphics adapters, with either color or monochrome monitors.
  127.  
  128. Much  of  Kermit's speed is accomplished by direct writes to screen memory, but
  129. this is done in a "TopView-aware" manner to allow successful operation in  win-
  130. dowing  environments  like  MS-Windows, DesqView, and TopView itself.  Speed is
  131. also due to direct access of the serial port 8250  UART (Universal Asynchronous
  132. Receiver/Transmitter)  chip, with buffered, interrupt-driven receipt of charac-
  133. ters and selectable XON/XOFF  flow control.  Full speed 9600 baud operation  is
  134. possible  on 4.77Mhz systems without flow control, but flow control is required
  135. on these systems for 19,200 baud or higher rates.  The IBM  PC  version  should
  136. also  run  on near-clones like the DG/1 that differ from true PCs only in their
  137. choice  of  UART;  non-8250  UARTs  are  detected  automatically,  and   slower
  138. non-interrupt  driven Bios serial port i/o is used, in which case the top speed
  139. is in the 1200 baud range.  On the IBM PC family, COM1 and COM2 are  supported,
  140. and "hooks" are available for (inevitably nonstandard) COM3 and COM4 options.
  141.  
  142. Kermit-MS 2.30 runs on the entire IBM PC family (the PC, XT, AT, PCjr, Portable
  143. PC, PC Convertible, PS/2) and compatibles (Compaq,  VAXmate,  Z150,  etc),  and
  144. there are also specially tailored versions for non-IBM-compatibles like the DEC
  145. Rainbow, NEC APC, Sanyo MBC, Victor 9000, HP-110, HP-150, HP Portable Plus, and
  146. others, plus a "generic DOS" version that should run (slowly) on any 8086-based
  147. MS-DOS machine.  This document concentrates on the IBM  version;  some  of  the
  148. system-dependent capabilities described here may be lacking in the non-IBM ver-
  149. sions.  See section 1.9 for features of different systems.
  150.  
  151. KERMIT.EXE for the IBM PC family occupies about 86K of disk storage (the figure
  152. will  vary for other versions).  This can be reduced by about 15K if you run it
  153. through EXEPACK.  MS-Kermit is not distributed in packed form, because problems
  154. have  been  reported on certain systems when this is done.  So if you decide to
  155. pack it, make sure to keep an unpacked version available to  fall  back  to  in
  156. case of problems.
  157.  
  158.  
  159. 1.2. History
  160.  
  161. Over  the  years,  MS-Kermit has grown from a Kermit file transfer program that
  162. embodied a simple terminal emulator into a complex and  powerful  communication
  163. program that includes the Kermit file transfer protocol.  As a result, the bulk
  164. of this manual is devoted to the communication  features,  rather  than  Kermit
  165. protocol operation.  Skip ahead to the next section if you're not interested in
  166. the history of MS-Kermit.
  167.  
  168. MS-DOS Kermit (like the Kermit file transfer protocol itself) is a  product  of
  169. the  Systems  Group of the Columbia University Center for Computing Activities,
  170. and it was one of the four original Kermit programs (with the CP/M, DEC-20, and
  171. IBM  mainframe versions).  It was initially written for the IBM PC with DOS 1.1
  172. by Daphne Tzoar in 1981-1982, based largely on Bill Catchings's  original  CP/M
  173. 8080  assembler version.  PC-Kermit (as it was called then) provided basic Ker-
  174. mit file transfer and VT52 emulation.  Joellen Windsor  of  the  University  of
  175. Arizona  added  conditional  assembly  support for the Heath/Zenith-100 shortly
  176. thereafter, and soon after that Dave King of Carnegie-Mellon  University  added
  177. Heath-19  terminal emulation, and some patches to let the program run under the
  178. new DOS version, 2.0.  During this era, the program version numbers  went  from
  179. 1.0 to 1.20.
  180.  
  181. With  the  appearance  in the marketplace of many new MS-DOS machines that were
  182. not compatible with the IBM PC, it became apparent that conditionally assembled
  183. code  supporting  each of these machines within a single monolithic source file
  184. was not the best way to organize the program.   Therefore  Daphne,  along  with
  185. Jeff  Damens of Columbia, undertook to reorganize the program in a modular way,
  186. isolating system dependencies into separate files.    The  result  was  version
  187. 2.26,  released  in  July  1984.   It included support for the DEC Rainbow, the
  188. HP-150, the Wang PC, and generic MS-DOS, as well as for the IBM PC  family  and
  189. the  H/Z-100.  It also included many new features, like 8th-bit prefixing (code
  190. contributed by The Source  Telecomputing),  alternate  block  check  selection,
  191. byte-count  compression,  server/client operation, access to local file and DOS
  192. operations, command macros, initialization and command files, screen  rollback,
  193. key  redefinition,  and  more.    For  the  2.26 release, the executable Kermit
  194. programs were encoded printably as ".BOO" files, designed by Bill Catchings  as
  195. part of this effort.
  196.  
  197. Release 2.27 was produced by Daphne and Jeff in December 1984.  Unlike 2.26, it
  198. ran correctly on the new PC/AT under DOS 3.0, and included support for the  NEC
  199. APC  from  Ron  Blanford  of  Seattle, WA, and Ian Gibbons of the University of
  200. Hawaii, and for the TI Professional from Joe Smith of the  Colorado  School  of
  201. Mines,  plus  some bug fixes and reorganization.  2.27 is the last version that
  202. runs under pre-2.0 versions of DOS.
  203.  
  204. Version 2.28 (Daphne, Jeff, June  1985)  added  dynamic  memory  allocation  to
  205. reduce  disk  storage for the .EXE file, and to allow the program to adjust it-
  206. self to the PC's memory size, plus the inevitable bug fixes (many of them  con-
  207. tributed  by  Edgar  Butt  of the University of Maryland and Gregg Small of the
  208. University of California at Berkeley).  During this  period,  support  for  ad-
  209. ditional MS-DOS systems was added by various people.
  210.  
  211. In  December 1985, a tape showed up at Columbia sent by Prof. Joe R. Doupnik of
  212. the Center for Atmospheric and Space Studies and EE Department  at  Utah  State
  213. University.  This tape contained version 2.28 modified to fully support the DOS
  214. 2.0 file system, and to which many new features had  been  added,  notably  the
  215. ability  of  the  MS-DOS Kermit server to process various REMOTE commands (DIR,
  216. CWD, SPACE, etc).  And at about the same time, a tape arrived from James Harvey
  217. of  Indiana/Purdue University, who had changed Kermit's CONNECT command to emu-
  218. late the popular DEC VT100 terminal.  This material was sent to Joe,  who  then
  219. laboriously  fitted  James's  work  into his own code, keeping the VT52 and H19
  220. emulation alive as options, and upgrading the VT100 emulation to VT102  by  ad-
  221. ding  features  such  as line and character insertion and deletion.  The result
  222. was version 2.29, released in May 1986.
  223.  
  224. Soon after the release of 2.29, some disks were sent in by James Sturdevant  of
  225. the A.C. Nielson Company, containing a full implementation of the Kermit script
  226. facility, as described in the Kermit book.  This material was sent to Joe,  who
  227. had by now become keeper of MS-DOS Kermit and had already begun work on version
  228. 2.30 by adding support for extended-length packets.  Joe had been  carrying  on
  229. voluminous  network  correspondence  (Thanks,  BITNET!)  with Columbia and with
  230. MS-DOS Kermit users and testers all over the world, giving birth  to  many  new
  231. features,  including  Tektronix graphics terminal emulation, support for opera-
  232. tion over local area networks, support for 8-bit ASCII terminal connections and
  233. international  character  sets,  ANSI  printer  control, and a redesigned, more
  234. powerful, more portable key redefinition mechanism.  Version 2.30 was  formally
  235. released on January 1, 1988, after many "alpha" and "beta" tests.
  236.  
  237. Among the many contributors to this version are: Brian Holley and Joe Smith for
  238. the Tektronix emulation, Robert Goeke for the NEC AP3 support,  Brian  Peterson
  239. and  Andreas  Stumpf  for  the  Victor  9000, Bob Babcock and Joe White for the
  240. Sanyos, Christopher Lent for the Wang PC, Jack Bryans for an  Intel  iRMX  ver-
  241. sion,  Jim Noble for the Grid Compass, Geoff Mulligan and others for the Zenith
  242. 100, and David Knoell for the special Rainbow edition.  And thanks  to  Gisbert
  243. Selke,  Jack  Bryans,  and  others for proofreading drafts of this manual.  And
  244. apologies to anyone we neglected to mention.
  245.  
  246. Finally, please note that the program version number is not a whole number  and
  247. a fraction; 2.30 is pronounced "two point thirty", and is not equal to 2.3.
  248.  
  249.  
  250. 1.3. Using MS-Kermit
  251.  
  252. MS-DOS  Kermit performs two major functions, terminal emulation and file trans-
  253. fer.  File transfer can be done using either the Kermit file transfer protocol,
  254. or  else  (without  error checking), ASCII or XON/XOFF capture and transmission
  255. methods.  To use Kermit for "raw" uploading or downloading of  files,  see  the
  256. descriptions of the LOG SESSION and TRANSMIT commands.
  257.  
  258. Before  you  can  transfer files with another system using Kermit protocol, you
  259. must first connect to it as a terminal, login if necessary, and start up a Ker-
  260. mit  program  there.   The following example shows this process; the other com-
  261. puter is a Unix system, but the method is the same with most others.  The parts
  262. you  type  are  underlined  (if this document was printed on a printer that can
  263. underline), and when you type a command,  you  terminate  it  with  a  carriage
  264. return,  which  you  can't  see  in  the  example.    The  mysterious  "^]c" is
  265. MS-Kermit's "escape sequence", which you enter  by  holding  down  the  Control
  266. (Ctrl)  key and pressing "]" (right square bracket), and then typing the letter
  267. C. The example assumes the MS-Kermit program is stored on disk as KERMIT.EXE.
  268.  
  269.     Program Dialog:             Explanation:
  270.  
  271.     A>kermit
  272.     IBM PC Kermit-MS V2.30 8 Jan 88                                        
  273.     Type ? for help
  274.  
  275.     Kermit-MS>set speed 1200    Set the right baud rate.
  276.     Kermit-MS>connect           Connect as a terminal.
  277.     (Connecting to host, type ^]C to return to PC.)
  278.     ATDT7654321                 Dial the modem if necessary.
  279.     CONNECT 1200                The modem tells you you're connected.
  280.  
  281.       Now you're talking to the Unix system.
  282.       Type a carriage return to get its attention.
  283.  
  284.     Login: christin             Login to the host.
  285.     password:                   (Passwords normally don't echo.)
  286.     % kermit                    Run Kermit on the host.
  287.     C-Kermit>receive            Tell it to receive a file.
  288.     ^]c                         Escape back to the PC.
  289.     Kermit-MS>send autoexec.bat Send a file.
  290.  
  291.       (The file is transferred...)
  292.  
  293.     Kermit-MS>                  Transfer complete, prompt reappears.
  294.  
  295. In this example, the user types "kermit", and sees the program's herald and its
  296. prompt, "Kermit-MS>".  Then she sets the appropriate communication speed ("baud
  297. rate"), connects as a terminal, issues a dialing command to a Hayes-like  modem
  298. (you would skip this step if you had a direct connection), logs in to her ID on
  299. the Unix system which she has dialed, starts "C-Kermit"  on  the  Unix  system,
  300. tells it to receive a file, escapes back to the PC, and tells MS-Kermit to send
  301. a file.  After the file is transferred, the user would normally connect back to
  302. the Unix system, exit from the Kermit program there, and log out:
  303.  
  304.     Kermit-MS>connect        Connect again.
  305.     (Connecting to host, type ^]C to return.)
  306.     C-Kermit>exit
  307.     % ^D                     Logout from Unix by typing Ctrl-D.
  308.     ^]c                      Escape back to the PC.
  309.     Kermit-MS>exit           Return to DOS.
  310.  
  311. To  transfer  a  file  in  the  other direction, simply exchange the "send" and
  312. "receive" commands above.  That's the easiest and quickest way to  use  Kermit.
  313. If  this simple scenario does not work for you, issue the MS-Kermit STATUS com-
  314. mand and look for any obvious incorrect settings (speed, parity), fix them with
  315. SET  commands, and try again.  (IBM mainframe linemode connections have so many
  316. "different" settings, there's a special command for them, "do ibm",  which  you
  317. would  type  as the first Kermit-MS command above.)  If that doesn't help, read
  318. on.  Many problems can crop up when you attempt to connect two  unlike  systems
  319. over  a  possibly hostile communication medium.  And if you intend to be a fre-
  320. quent user of Kermit, there are many options you can take advantage of to adapt
  321. MS-Kermit  to  different  systems, improve its performance, and automate common
  322. tasks.
  323.  
  324.  
  325. 1.4. The MS-DOS File System
  326.  
  327. The features of the MS-DOS file system of greatest interest to Kermit users are
  328. the form of the file specifications, and the formats of the files themselves.
  329.  
  330.  
  331. 1.4.1. File Specifications
  332.  
  333. MS-DOS file specifications (in version 2.0 or later of DOS) are of the form 
  334.  
  335.     DEVICE:\PATHNAME\NAME.TYPE
  336.  
  337. where  the  DEVICE  is  a  single character identifier (for instance, A for the
  338. first floppy disk, C for the first fixed disk, D for a RAM disk emulator)  fol-
  339. lowed by a colon (":"), PATHNAME is up to 63 characters of identifier(s) (up to
  340. 8 characters each) surrounded by backslashes ("\"), NAME is an identifier of up
  341. to  8  characters,  and  TYPE is an identifier of up to 3 characters in length.
  342. Device and pathname may be omitted.  The first backslash in the pathname may be
  343. omitted  if  the  specified  path is relative to the current directory.  In the
  344. path field, "." means the current directory, ".." means the  parent  directory.
  345. Some  DOS implementations (like Wang) may use slash ("/") rather than backslash
  346. as a directory separator.
  347.  
  348. Pathname is normally omitted, but can be specified in  all  Kermit-MS  commands
  349. (as of version 2.29).  Device and directory pathnames, when omitted, default to
  350. either the user's current disk and  directory,  or  to  the  current  directory
  351. search path as specified in the DOS PATH environment variable, depending on the
  352. context in which the file name appears.
  353.  
  354.     When this document says that a file is searched  for  "in  the  current
  355.     path,"  it means that Kermit-MS looks on the current disk and directory
  356.     first, and if the file is not found, then the directories listed in the
  357.     PATH  environment variable are searched.  If the PATH environment vari-
  358.     able is empty, Kermit looks only at the current disk and directory.
  359.  
  360. NAME.TYPE is sufficient to specify a file on the current  disk  and  directory,
  361. and only this information is sent along by Kermit-MS with an outgoing file.
  362.  
  363. The  device, path, name, and type fields may contain uppercase letters, digits,
  364. and the special characters "-" (dash), "_" (underscore), "$" (dollar sign), "&"
  365. (ampersand),  "#"  (number  sign),  "@" (at sign), "!"  (exclamation mark), "'"
  366. (single  quote),  "()"  (parentheses),  "{}"  (curly  braces),  "^"  (caret  or
  367. circumflex), "~" (tilde), and "`" (accent grave).  Normally, you should confine
  368. your filenames to letters and digits for maximum  transportability  to  non-DOS
  369. systems.    When  you  type  lowercase letters in filenames, they are converted
  370. automatically to uppercase.  There are no imbedded or trailing spaces.    Other
  371. characters  may  not be included; there is no mechanism for "quoting" otherwise
  372. illegal characters in filenames.  The fields of the file specification are  set
  373. off from one another by the punctuation indicated above.
  374.  
  375. The  name  field is the primary identifier for the file.  The type, also called
  376. the extension or suffix, is an indicator which, by convention, tells what  kind
  377. of  file  we have.  For instance FOO.BAS is the source of a BASIC program named
  378. FOO; FOO.OBJ might be the  relocatable  object  module  produced  by  compiling
  379. FOO.BAS;  FOO.EXE  could  be an executable program produced by loading FOO.OBJ,
  380. and so forth.  .EXE and .COM are the normal suffixes for executable programs.
  381.  
  382. MS-DOS allows a group of files to be specified in a single  file  specification
  383. by including the special "wildcard" characters, "*" and "?".  A "*" matches any
  384. string of characters from the current position to the end of the field, includ-
  385. ing  no  characters  at all; a "?" matches any single character.  Here are some
  386. examples:
  387.  
  388.   *.BAS   All files of type BAS (BASIC source files) in the current directory.
  389.  
  390.   FOO.*   Files of all types with name FOO.
  391.  
  392.   F*.*    All files whose names start with F.
  393.  
  394.   *.?     All files whose types are exactly one character long, or have no type
  395.           at all.
  396.  
  397. Wildcard  notation  is used on many computer systems in similar ways, and it is
  398. the mechanism most commonly used to instruct Kermit to send a group of files.
  399.  
  400. Users of Kermit-MS should bear in mind that other (non-MS-DOS) systems may  use
  401. different wildcard characters.  For instance VMS and the DEC-20 use "%" instead
  402. of "?" as the single character wildcard; when  using  Kermit-MS  to  request  a
  403. wildcard  file  group  from a Kermit-20 server, the DOS "?" must be replaced by
  404. the DEC-20 "%".
  405.  
  406.  
  407. 1.4.2. File Formats
  408.  
  409. MS-DOS systems store files as streams of 8-bit bytes, with no  particular  dis-
  410. tinction  among text, program code, and binary files.  ASCII text files consist
  411. of lines separated by carriage-return-linefeed sequences (CRLFs), and this con-
  412. forms  exactly  to the way Kermit represents text files during transmission, so
  413. Kermit-MS has no need for a SET FILE TYPE BINARY command.   But  since  a  non-
  414. MS-DOS  receiving  system  might need to make distinctions as to file type, you
  415. will probably have to issue SET FILE TYPE commands there if you are sending  it
  416. non-text  files.   In transmitting files between Kermit-MS programs, regardless
  417. of file contents, the receiving MS-DOS system is equally capable of  processing
  418. text, code, and data, and in fact requires no knowledge of how the bytes in the
  419. file are to be used.
  420.  
  421. MS-DOS (unlike CP/M) knows the exact end of a file  because  it  keeps  a  byte
  422. count  in  the  directory,  so one would expect no particular confusion in this
  423. regard.  However, certain MS-DOS programs continue to use the  CP/M  convention
  424. of  terminating  a text file with a Control-Z character, and won't operate cor-
  425. rectly unless this terminating byte is present.  Therefore, you should be aware
  426. of  a  special  SET  EOF option for both incoming and outbound files, described
  427. later.
  428.  
  429. Non-MS-DOS  systems  may  be  confused  by  nonstandard  ASCII  files  sent  by
  430. Kermit-MS:
  431.  
  432.    - Files  containing  any  of  the 8-bit "extended ASCII" characters may
  433.      need conversion (or translation) to 7-bit ASCII.
  434.  
  435.    - Files produced by word processing programs like Word Perfect or  Word
  436.      Star may contain special binary formatting codes, and could need con-
  437.      version to conventional 7-bit ASCII  format  prior  to  transmission,
  438.      using commonly available "exporter" programs.
  439.  
  440.    - Files  created  by  word processors that store formatting data at the
  441.      end of the file, after the Control-Z and before physical end, may re-
  442.      quire  special  processing  via SET EOF to strip the formatting data,
  443.      lest they confuse non-MS-DOS recipients.
  444.  
  445.    - Spreadsheet or database files usually need special formatting  to  be
  446.      meaningful  to  non-MS-DOS recipients (though they can be transmitted
  447.      between MS-DOS systems with Kermit-MS).
  448.  
  449.    - BASIC programs are normally saved in a binary "tokenized" form.   Use
  450.      BASIC's ",a" SAVE option to save them as regular ASCII text, as in 
  451.  
  452.          save"foofa",a
  453.  
  454. In  general,  when  attempting  to transfer non-text files between MS-DOS and a
  455. different kind of system, consult the Kermit manual for that system.
  456.  
  457.  
  458. 1.5. Program Setup and Invocation
  459.  
  460. The MS-DOS Kermit program can be run from any disk without any special  instal-
  461. lation  procedure.  On hard disk systems, it is convenient to store the program
  462. in one of the directories listed in your DOS PATH, and it is often desirable to
  463. customize  Kermit's  operation to your communications and computing environment
  464. by creating an initialization file.
  465.  
  466. Kermit-MS can be run interactively, from a batch file, or as an "external"  DOS
  467. command.   Commands consist of one or more fields, separated by "whitespace" --
  468. one or more spaces or tabs.
  469.  
  470. Upon initial startup, the program executes  any  commands  found  in  the  file
  471. MSKERMIT.INI in the current path.  This initialization file may contain command
  472. macro definitions, communications settings for one or more ports, or any  other
  473. Kermit-MS  commands,  and  you  may  create it using any text editor capable of
  474. saving files in plain ASCII text format.  Here is a sample:
  475.  
  476. comment -- MSKERMIT.INI, MS-DOS Kermit initialization file
  477.  
  478. comment -- Don't overwrite my files!
  479.  set warning on
  480.  
  481. comment -- Define macros for the systems I use...
  482.  define unix set local-echo off,set par non,set flow xon,set timer off
  483.  def ibm set par odd,set loc on,set hands xon,set flo none,set tim on
  484.  def modem set port 2, set baud 1200
  485.  
  486. comment -- Define a macro for quickly adapting to noisy connections...
  487.  def noisy set block-check 3, set send packet-length 40, set retry 20
  488.  
  489. comment -- I always start out by connecting to my UNIX system...
  490.  set port 1
  491.  set baud 4800
  492.  do unix
  493.  connect
  494.  
  495. A different file may be substituted for MSKERMIT.INI by using "-f filename"  on
  496. the DOS command line, e.g.  
  497.  
  498.     kermit -f monday.ini
  499.  
  500. The  meanings  of these commands will emerge below.  For now, just note how you
  501. can use command files (and "macro definitions") to easily  adapt  MS-Kermit  to
  502. widely  differing  communication  environments.  A more advanced initialization
  503. file is shown below in section 1.8.
  504.  
  505.  
  506. Interactive Operation:
  507.  
  508. To run Kermit-MS interactively, invoke the program from DOS  command  level  by
  509. typing  its name, normally "kermit" (this means the program should be stored in
  510. your path with the name KERMIT.EXE).  When you see the program's prompt, 
  511.  
  512.     Kermit-MS>
  513.  
  514. you may type Kermit commands  repeatedly  until  you  are  ready  to  exit  the
  515. program,  as  in  the following example (which assumes there's already a Kermit
  516. "server" set up on the other end):
  517.  
  518.     A>
  519.     A>kermit
  520.  
  521.     IBM PC Kermit-MS V2.30  8 Jan 88
  522.     Type ? for help
  523.  
  524.     Kermit-MS>set speed 19200
  525.     Kermit-MS>send foo.*
  526.  
  527.       The files are sent.
  528.  
  529.     Kermit-MS>get fot.*
  530.  
  531.       The requested files are received.
  532.  
  533.     Kermit-MS>exit
  534.     A>
  535.  
  536. Interactive commands are described in Section 1.6.
  537.  
  538.  
  539. Command Line Invocation:
  540.  
  541. Kermit-MS may be invoked with command line arguments from  DOS  command  level,
  542. for instance:
  543.  
  544.     A>kermit send peter.amy
  545.  
  546. or
  547.  
  548.     A>kermit set port 1, set baud 9600, connect
  549.  
  550. In  this case, help and completion  are not available (because the program that
  551. provides them won't start running until  after  you  type  the  entire  command
  552. line),  and Kermit-MS will exit back to DOS after completing the specified com-
  553. mand or commands.    Therefore,  when  invoked  with  command  line  arguments,
  554. Kermit-MS  will  behave as if it were an external DOS command, like MODE.  Note
  555. that several commands may be given on the command line,  separated  by  commas.
  556. This can't be done interactively or from TAKE command files.
  557.  
  558. As  of  version  2.30,  two new Kermit commands can be given on the DOS command
  559. line.  First is the keyword STAY which prevents Kermit from  exiting  naturally
  560. when  the last command has completed (unless, of course, EXIT or QUIT was among
  561. the commands).  The second command is 
  562.  
  563.     -F filename
  564.  
  565. This means use the indicated filename as the initialization  file  rather  than
  566. MSKERMIT.INI.   The path will be searched for this file, if necessary.  A space
  567. or tab must separate -F from the filename, and the F may be in upper  or  lower
  568. case.  Example:  
  569.  
  570.     kermit -f tuesday.ini, set port 2, do ibm, stay
  571.  
  572. You can run Kermit with no initialization file at all by using the command 
  573.  
  574.     kermit -f nul
  575.  
  576. If -F is the only command line option, STAY is implied.
  577.  
  578.  
  579. Batch Operation:
  580.  
  581. Like  other MS-DOS programs, Kermit-MS may be operated under batch with command
  582. line arguments.  If you invoke it without command line arguments, it  will  run
  583. interactively, reading commands from the keyboard and not the batch file.  When
  584. it exits, batch processing will continue to the end of the batch file.
  585.  
  586. Kermit-MS returns the "errorlevel"  parameter  used  as  program  exit  status.
  587. Present  values  are  in  the range 0 to 7 with three areas yielding success or
  588. failure reports for the entire Kermit session. The errorlevel values are:
  589.    errorlevel   Kermit session status
  590.         0       entirely successful operation
  591.         1       a Send command completed unsuccessfully
  592.         2       a Receive or GET command completed unsuccessfully
  593.         4       a REMOTE command completed unsuccessfully
  594.      3,5,6,7    combinations (addition) of the above conditions
  595.  
  596. Note that failures are remembered for the whole session and are not canceled by
  597. a  following successful operation of the same type. Thus, sending several files
  598. individually yields an errorlevel of 0 only if all the files were sent success-
  599. fully.  The "errorlevel" parameter also applies to script commands where OUTPUT
  600. corresponds to SEND and INPUT to RECEIVE.  An example of  Batch  invocation  of
  601. Kermit is shown in Figure 1-3.
  602.  
  603.  
  604. Remote Operation:
  605.  
  606. The MS-DOS CTTY command allows an MS-DOS system to be used from a terminal con-
  607. nected to its communication port.  Such sessions must be conducted  with  great
  608. care, since many programs assume that they are running on the real console, and
  609. explicitly reference screen memory or keyboard scan codes.  Kermit can be  used
  610. in this manner too, but before you give it any file transfer commands, you must
  611. inform it that it is running in "remote mode" rather  than  its  normal  "local
  612. mode."    Use  the  SET REMOTE ON command for this purpose, to prevent the file
  613. transfer display from being sent out the port.
  614.  
  615.  
  616. RAM Disk Operation:
  617.  
  618. If you invoke Kermit frequently, and you have sufficient memory on your PC, you
  619. may find it convenient to copy Kermit and its initialization file to a RAM disk
  620. when you start your system.  This allows Kermit to be started and used  quickly
  621. and silently, with no disk operations.
  622.  
  623. For  instance, if you're using IBM's VDISK facility to create the RAM disk, you
  624. might put statements like this in your CONFIG.SYS file:
  625.  
  626.     DEVICE=VDISK.SYS 512 512 32 /e
  627.  
  628. This assumes you have 512K of extended (/e) memory installed and  VDISK.SYS  is
  629. in  the  root directory of the boot disk.  It creates a 512K RAM disk with 512K
  630. sector size and space for 32 directories in the extended memory,  assigning  it
  631. the  disk letter of your first unused disk.  And then in your AUTOEXEC.BAT file
  632. (assuming the RAM disk is disk D:)...
  633.  
  634.     COPY KERMIT.EXE   D: >NUL
  635.     COPY MSKERMIT.INI D: >NUL
  636.     COPY COMMAND.COM  D: >NUL
  637.     SET COMSPEC=D:\COMMAND.COM
  638.     PATH D:\; ...
  639.     APPEND D:\; ...
  640.  
  641. The PATH and APPEND commands allow DOS to find KERMIT.EXE, and Kermit  to  find
  642. MSKERMIT.INI  and  COMMAND.COM,  on  the  RAM disk.  If you use Kermit transfer
  643. files to your RAM disk, remember to copy those files to a real disk before  you
  644. turn off the system.
  645.  
  646.  
  647. Use of MS-Kermit in Windowing Environments:
  648.  
  649. Kermit-MS  can  operate  within  windowing  environments  like such as TopView,
  650. DESqview, and MS-Windows.  It runs in an active window  under  MS-Windows,  ac-
  651. cepts  cut and paste material, talks with mice, and shrinks to an icon (a boxed
  652. "KER").  An MS-Windows .PIF file  can  be  constructed  for  Kermit  using  the
  653. PIFEDIT  program,  supplied with Windows.  Memory requirements should be listed
  654. as 90 to 128KB.  It should be noted that Kermit does  not  modify  the  screen,
  655. keyboard,  memory,  COM1,  or  COM2 (!).  Program switch and exchange should be
  656. marked as Text, and Close Window on Exit should be checked.  This configuration
  657. will let you run Kermit with all the Windows features, but very slowly.  To run
  658. at full speed under Windows, tell PIFEDIT  that  Kermit  modifies  the  screen.
  659. Then  you lose the Windows features (cutting, pasting, running the clock at the
  660. same time, etc), but you still get back to the Windows interface when you  EXIT
  661. Kermit.
  662.  
  663.  
  664. Local Area Network Operation:
  665.  
  666. MS-Kermit  2.30 is capable of using a serial port on another local area network
  667. (LAN) node, so long as that node is running an asynchronous communication serv-
  668. er  and  you  have  installed a device driver on your own PC that makes COM1 or
  669. COM2 i/o use the network  server.    This  type  of  connection  works  because
  670. MS-Kermit  2.30 (but not earlier releases) on IBM PCs checks the selected port,
  671. COM1 or COM2, to see if it's a real 8250 UART chip, and  if  it  isn't,  Kermit
  672. uses  only  Bios  calls for port i/o, and the network routes these through your
  673. network device driver.  It may be necessary to turn off a  real  COM1  or  COM2
  674. device  (with  a  switch  or jumper on the board) to convince Kermit to use the
  675. Bios.  This style of operation should be transparent to Kermit, except that not
  676. all asynchronous communications servers utilize this technique.
  677.  
  678. As  of version 2.30, the IBM PC version of Kermit can also communicate directly
  679. with another PC on a local area network through the IBM NetBIOS  emulator  dis-
  680. tributed  with  the  LAN.  In essence, the LAN substitutes for the serial port,
  681. modem, and other wiring.  Kermit running on one user machine can transfer files
  682. with  another  Kermit  also  on  the  network much as if they were connected by
  683. modems, and Kermit can talk with some larger machines the same way.  The impor-
  684. tant, and only, network command is
  685.  
  686.     SET PORT NET nodename
  687.  
  688. which is described in the section on SET commands.  Also see the SERVER command
  689. description, and (if you're interested) section 1.16.1 for a technical descrip-
  690. tion.
  691.  
  692. Kermit  can  even  communicate with some other computers, such as Unix systems,
  693. which accept logins via this remote pathway.  The initial startup is  the  same
  694. as  calling a mainframe and logging in except the command SET PORT NET nodename
  695. is used instead of SET PORT COM1.  A connection is established with  the  first
  696. use  of the communications circuit, such as CONNECT, REMOTE DIR, SEND, or other
  697. file transfer command, and terminated with the HANGUP command.
  698.  
  699.  
  700. 1.6. Kermit-MS Commands
  701.  
  702. MS-DOS Kermit supplies most of the commands and  features  of  "ideal"  Kermit.
  703. Here's a summary:
  704.  
  705.            -F  specify alternate init file name on DOS command line.
  706.           BYE  to remote server, exit from MS-Kermit.
  707.         CLEAR  serial port buffer.
  708.         CLOSE  log files and stop logging remote session.
  709.       COMMENT  For including comments in command files.
  710.       CONNECT  as terminal to remote system.
  711.           CWD  change local working directory.
  712.        DEFINE  a macro of Kermit-MS commands.
  713.        DELETE  local files.
  714.     DIRECTORY  listing of local files.
  715.       DISABLE  server recognition of selected commands.
  716.            DO  a command macro.
  717.          ECHO  a line of text on the screen.
  718.        ENABLE  server recognition of selected commands.
  719.          EXIT  from Kermit-MS.
  720.        FINISH  Shut down remote server.
  721.           GET  remote files from server.
  722.        HANGUP  the phone or network connection.
  723.          HELP  about Kermit-MS.
  724.         INPUT  specified string from serial port, for scripts.
  725.           LOG  remote terminal session and/or packets.
  726.        LOGOUT  remote server, don't exit from Kermit-MS.
  727.        OUTPUT  string out serial port, for scripts.
  728.         PAUSE  between commands.
  729.          PUSH  to MS-DOS command level.
  730.          QUIT  from Kermit-MS (same as EXIT).
  731.       RECEIVE  files from remote Kermit.
  732.        REMOTE  Prefix for remote file management commands.
  733.           RUN  an MS-DOS program or command.
  734.          SEND  files to remote Kermit.
  735.        SERVER  mode of remote operation.
  736.           SET  various parameters.
  737.          SHOW  various parameters.
  738.         SPACE  inquiry (about disk space).
  739.        STATUS  inquiry (about settings).
  740.          STAY  stay within Kermit after DOS command line invocation.
  741.          TAKE  commands from a file.
  742.      TRANSMIT  a file "raw" (no error checking).
  743.          TYPE  a local file on the screen.
  744.       VERSION  display Kermit-MS program version number.
  745.  
  746. Not  all of these commands are necessarily available on all MS-DOS systems, and
  747. some of the commands may work somewhat differently between DOS versions.
  748.  
  749. A command keyword, such as SEND, RECEIVE, HELP, etc,  may  be  abbreviated,  so
  750. long  as  you  have  typed enough letters to distinguish it from other keywords
  751. that are valid in that position.  For instance, you can type CLE for CLEAR  and
  752. CLO  for CLOSE.  Several common commands also have special non-unique abbrevia-
  753. tions, like C for CONNECT, S for SEND, and R for RECEIVE.
  754.  
  755. During interactive operation, you may edit the command you're currently  typing
  756. using  BACKSPACE  to  erase the character most recently typed, Ctrl-W to delete
  757. the most recent field, or Ctrl-U to delete the entire  command.    The  editing
  758. characters  may be used in any combination until the command is finally entered
  759. by typing RETURN (Carriage Return, Enter) or Ctrl-L.
  760.  
  761. You may use the help ("?") and keyword completion  (ESC) features freely  while
  762. typing Kermit-MS commands.  A question mark typed at almost any point in a com-
  763. mand produces a brief description, or "menu", of what is expected  or  possible
  764. at  that point.  ESC typed at any point, except in a local filename, will cause
  765. the current field to be filled out if what you have typed so far is  sufficient
  766. to  identify  it,  and will leave you in position to type the next field (or to
  767. type a "?" to find out what the next field is);  otherwise,  the  program  will
  768. beep at you and wait for you to type more characters.
  769.  
  770. Kermit-MS  recognizes  only 7-bit ASCII characters when examining a Kermit com-
  771. mand line. The SET KEY and SHOW KEY commands can prompt for keyboard input  and
  772. understand 8-bit characters but only at their interactive prompt.  The SET KEY,
  773. INPUT, and OUTPUT commands accept "backslash number format"  on the main Kermit
  774. command  line.  Thus, national characters which are full 8-bit codes can be ex-
  775. pressed on command lines in backslash number form (\ddd), provided  the  Kermit
  776. command  itself  can  understand the form.  Presently, INPUT, OUTPUT, ECHO, SET
  777. KEY, SET PROMPT, and DEFINE  commands  understand  this  notation.    To  enter
  778. characters  in  backslash  number  format, type a backslash ("\") followed by a
  779. number corresponding to the ASCII code for the character:
  780.  
  781.     \123    a decimal number (decimal is the default number base)
  782.  
  783.     \d249   a decimal number (also \D)
  784.  
  785.     \o177   an octal (base 8) number (also \O)
  786.  
  787.     \x0d    a hexadecimal (base 16) number (also \X)
  788.  
  789. Table 1-1 shows all of the 7-bit ASCII codes in decimal.  Most Kermit  commands
  790. understand  backslash-ASCII  codes, both imbedded within character strings, and
  791. alone, as when a single character or number is to be specified.
  792.  
  793. Some Kermit-MS commands like GET, SHOW KEY, and SET KEY,  may  prompt  for  ad-
  794. ditional  information  on  subsequent  lines.  If you have reached one of these
  795. prompts and then wish to cancel the command, you may type Control-C to get back
  796. to the main Kermit-MS> prompt.
  797.  
  798.  
  799. Summary of Kermit-MS command editing characters:
  800.  
  801.     SPACE   Separates fields within the command.
  802.  
  803.     TAB     Same  as  Space,  and echoes as Space.  You may also use Ctrl-I for
  804.             Tab.
  805.  
  806.     BACKSPACE
  807.             Deletes the character most recently typed.  May be typed repeatedly
  808.             to delete all the way back to the prompt.  You may also use DELETE,
  809.             RUBOUT, Ctrl-H, or equivalent keys.
  810.  
  811.     Ctrl-W  Deletes the most recent "word", or field, on the command line.  May
  812.             be typed repeatedly.
  813.  
  814.     Ctrl-U  Deletes the entire command line, back to the prompt.
  815.  
  816.     Ctrl-C  Cancels the current command and returns to the "Kermit-MS>" prompt.
  817.             Also, terminates execution of a TAKE command file.
  818.  
  819.     ESC     If  enough  characters have been supplied in the current keyword to
  820.             identify it uniquely the remainder of the field is supplied and the
  821.             cursor  is positioned to the next field of the command.  Otherwise,
  822.             a beep is sounded.  ESC does not  provide  filename  completion  in
  823.             version 2.30.
  824.  
  825.     ?       Displays  a  brief message describing what may be typed in the cur-
  826.             rent command field.  Also,  wildcard  character  for  matching  any
  827.             single character in all but the first position of a filename.
  828.  
  829.     #       Wildcard  character  for  matching  single characters in filenames.
  830.  
  831. -------------------------------------------------------------------------------
  832.  
  833.  
  834.     Dec Name Ctrl            Dec Char      Dec Char     Dec Char
  835.  
  836.      0   NUL  ^@           |  32  SP    |   64   @   |   96  `
  837.      1   SOH  ^A           |  33   !    |   65   A   |   97  a
  838.      2   STX  ^B           |  34   "    |   66   B   |   98  b
  839.      3   ETX  ^C           |  35   #    |   67   C   |   99  c
  840.      4   EOT  ^D           |  36   $    |   68   D   |  100  d
  841.      5   ENQ  ^E           |  37   %    |   69   E   |  101  e
  842.      6   ACK  ^F           |  38   &    |   70   F   |  102  f
  843.      7   BEL  ^G beep      |  39   '    |   71   G   |  103  g
  844.      8   BS   ^H backspace |  40   (    |   72   H   |  104  h
  845.      9   HT   ^I tab       |  41   )    |   73   I   |  105  i
  846.     10   LF   ^J linefeed  |  42   *    |   74   J   |  106  j
  847.     11   VT   ^K           |  43   +    |   75   K   |  107  k
  848.     12   FF   ^L formfeed  |  44   ,    |   76   L   |  108  l
  849.     13   CR   ^M return    |  45   -    |   77   M   |  109  m
  850.     14   SO   ^N shift out |  46   .    |   78   N   |  110  n
  851.     15   SI   ^O shift in  |  47   /    |   79   O   |  111  o
  852.     16   DLE  ^P           |  48   0    |   80   P   |  112  p
  853.     17   DC1  ^Q XON       |  49   1    |   81   Q   |  113  q
  854.     18   DC2  ^R           |  50   2    |   82   R   |  114  r
  855.     19   DC3  ^S XOFF      |  51   3    |   83   S   |  115  s
  856.     20   DC4  ^T           |  52   4    |   84   T   |  116  t
  857.     21   NAK  ^U           |  53   5    |   85   U   |  117  u
  858.     23   ETB  ^W           |  54   6    |   86   V   |  118  v
  859.     22   SYN  ^V           |  55   7    |   87   W   |  119  w
  860.     24   CAN  ^X           |  56   8    |   88   X   |  120  x
  861.     25   EM   ^Y           |  57   9    |   89   Y   |  121  y
  862.     26   SUB  ^Z           |  58   :    |   90   Z   |  122  z
  863.     27   ESC  ^[ escape    |  59   ;    |   91   [   |  123  {
  864.     28   FS   ^\           |  60   <    |   92   \   |  124  |
  865.     29   GS   ^]           |  61   =    |   93   ]   |  125  }
  866.     30   RS   ^^           |  62   >    |   94   ^   |  126  ~
  867.     31   US   ^_           |  63   ?    |   95   _   |  127  RUBOUT,DELETE
  868.  
  869.            Table 1-1:   The US ASCII Character Set (ANSI X3.4-1977)
  870.  
  871. -------------------------------------------------------------------------------
  872.  
  873.             Equivalent to MS-DOS "?", but used  in  the  first  position  of  a
  874.             filename only, so that "?" may be used to get help at the beginning
  875.             of a filename field.
  876.  
  877.     RETURN  Enters the command.  On most keyboards, you may also use  ENTER  or
  878.             Ctrl-M.
  879.  
  880.     Ctrl-L  Clears the screen and enters the command.
  881.  
  882. Liberal  use  of "?" allows you to feel your way through the commands and their
  883. fields.  This feature is sometimes called "menu on  demand"  or  "context  sen-
  884. sitive help" -- unlike systems that force you to negotiate menus at every turn,
  885. menu-on-demand provides help only when it is needed.
  886.  
  887. Command parsing is done through DOS calls.  Kermit key  redefinition  does  not
  888. apply  at  MS-Kermit  command  level.    But ANSI.SYS or other external console
  889. drivers can be used for this purpose, for instance to assign ESC  to  the  PC's
  890. backquote key (ANSI.SYS is the IBM-supplied extended screen and keyboard device
  891. driver, described in the IBM DOS Technical Reference Manual).    Other  console
  892. drivers available include ProKey, SuperKey, NANSI.SYS (a public-domain replace-
  893. ment for ANSI.SYS), and FANSICONSOLE.
  894.  
  895. The notation used in command descriptions is as follows: Optional fields are in
  896. [square  brackets],  lists  of alternatives are in {curly braces}, separated by
  897. commas.  Parameters, such  as  numbers  or  filenames,  are  shown  in  italics
  898. (providing  the printer is capable of printing italics), and in dialog examples
  899. user typein is underlined (on printers that can show it) to distinguish it from
  900. computer typeout.
  901.  
  902. The following sections describe MS-Kermit's commands.  Command descriptions may
  903. contain references to other commands that haven't  been  explained  yet.    You
  904. might find that this manual makes more sense on a second reading.
  905.  
  906.  
  907. 1.6.1. Program Management Commands
  908.  
  909. "Program  management" is a rubric for Kermit-MS commands like TAKE, EXIT, HELP,
  910. COMMENT, ECHO, and VERSION, that don't fall into any other category.
  911.  
  912. HELP simply displays a short help message (the same  one,  in  fact,  that  you
  913. would see if you typed a question mark in the same place).
  914.  
  915. VERSION displays the MS-Kermit program version number, which you should know in
  916. case you are reporting bugs or seeking technical assistance.
  917.  
  918. Other program management commands require a bit more explanation.
  919.  
  920.  
  921. The EXIT Command
  922.  
  923. Syntax: EXIT  or  QUIT
  924.  
  925. EXIT and QUIT are synonyms for each other.  They cause MS-Kermit to return con-
  926. trol  to DOS or whatever program invoked MS-Kermit.  The specific actions taken
  927. are:
  928.  
  929.    - Close any open log or other files.
  930.    - Close any open network connection.
  931.    - Release all memory claimed by the program.
  932.    - Disable interrupts for the currently selected communication device.
  933.    - Terminate execution.
  934.  
  935. The serial port RS-232 signals are left alone upon EXIT, so that modem  connec-
  936. tions  are  not broken.  Kermit-MS may be restarted with the connection intact.
  937. Use HANGUP to explicitly break a modem connection.
  938.  
  939.  
  940. The STAY Command
  941.  
  942. Syntax: STAY
  943.  
  944. The STAY command, if included among command line arguments, instructs MS-Kermit
  945. not  to  exit upon completion but rather to enter interactive mode, unless EXIT
  946. or QUIT was among the command arguments.  STAY has no effect when  entered  in-
  947. teractively or from a TAKE file.
  948.  
  949.  
  950. The PUSH Command
  951.  
  952. Syntax: PUSH
  953.  
  954. PUSH  is  similar  to  EXIT,  except  it leaves MS-Kermit intact by invoking an
  955. MS-DOS command processor "under"  Kermit-MS,  either  COMMAND.COM  or  whatever
  956. shell  you  have  specified with COMSPEC (or SHELL, depending on the system) in
  957. your CONFIG.SYS file.  You can return to Kermit-MS by typing  the  MS-DOS  EXIT
  958. command,  and you will find Kermit-MS as you left it, with all settings intact.
  959. The same function is invoked by the CONNECT escape-level command P. Example:
  960.  
  961.     Kermit-MS>push           Push to DOS.
  962.     Command v3.10            COMMAND.COM program herald.
  963.  
  964.     C>diskcopy a: b:         Run a DOS program.
  965.  
  966.       DISKCOPY dialog here...
  967.  
  968.     C>dir b:                 More DOS commands...
  969.  
  970.       DOS session continues...
  971.  
  972.     C>exit                   When done, type DOS EXIT command.
  973.     Kermit-MS>               Back at Kermit.
  974.  
  975.  
  976. The TAKE Command
  977.  
  978. Syntax: TAKE filespec
  979.  
  980. The TAKE command gives you way a to collect MS-Kermit commands  into  a  single
  981. file,  so that you can execute many commands by typing a single (TAKE) command.
  982. TAKE instructs MS-Kermit to execute commands from the file  that  you  specify.
  983. The  current directory is searched for the file first, and then any directories
  984. listed in the PATH environment variable.  The  command  file  may  include  any
  985. valid  Kermit-MS  commands, including TAKE, but it cannot include characters to
  986. be sent to a remote host  after  a  CONNECT  command  (use  scripts  for  that,
  987. described  below).    Execution  of  a  TAKE  file  may  be cancelled by typing
  988. Control-C at the keyboard.
  989.  
  990. An implicit TAKE command is executed upon the initialization file, MSKERMIT.INI
  991. (or  another  file  specified  in the "-f" command-line argument), whenever you
  992. start MS-Kermit.  The MSKERMIT.INI file contains any commands you  want  to  be
  993. executed  each  time  you  run Kermit.  A sample is shown above, and a more am-
  994. bitious example is shown in section 1.8.
  995.  
  996. Commands within TAKE files, unlike interactive commands, may  include  trailing
  997. comments,  preceded  by semicolons (if a real semicolon is needed in a command,
  998. express it as "\;" and it will not be mistaken for the start of a comment).
  999.  
  1000.     set port 2      ; Select the modem port.
  1001.     set speed 1200  ; Set the baud rate for the modem.
  1002.     connect         ; Conduct a terminal session.
  1003.     hangup          ; Hang up the phone after escaping back.
  1004.  
  1005. Note the HANGUP command after CONNECT.  The HANGUP command is not executed  un-
  1006. til  after you escape back from your CONNECT session.  If this file were called
  1007. MODEM.CMD, the following TAKE command would execute it:  
  1008.  
  1009.     Kermit-MS>take modem.cmd
  1010.  
  1011. This directs MS-Kermit to find the MODEM.CMD file, open it,  execute  the  com-
  1012. mands  in  it,  close  it, and return to the MS-Kermit> prompt when done.  This
  1013. process can take a while on floppy-disk based systems.
  1014.  
  1015. Commands from the TAKE file will normally  not  be  displayed  on  your  screen
  1016. during  execution.   If you want to see them as they are executing, you can SET
  1017. TAKE-ECHO ON (for instance, at the beginning or end of your MSKERMIT.INI file).
  1018. With  the  echoing ON, comments are also displayed for reference, but the semi-
  1019. colon is not shown.
  1020.  
  1021. TAKE files may be nested to any reasonable level.  A command file that was  in-
  1022. voked by another command file returns to its invoking command file, rather than
  1023. to the MS-Kermit> prompt.
  1024.  
  1025. There is currently no parameter substitution mechanism for TAKE files.
  1026.  
  1027. Warnings:
  1028.  
  1029.    - An explicit query mark ("?") in a TAKE file will cause a help message
  1030.      to be displayed and the rest of the line will be read as another com-
  1031.      mand.
  1032.  
  1033.    - Since TAKE file processing discards all characters from a line begin-
  1034.      ning with the first semicolon, it is normally not possible to include
  1035.      semicolons as part of the commands themselves, e.g.
  1036.  
  1037.          get dska:foo.bar;6
  1038.  
  1039.      To get around this restriction, you may precede such semicolons  with
  1040.      a backslash:
  1041.  
  1042.          get dska:foo.bar\;6
  1043.  
  1044.  
  1045. The -F Command
  1046.  
  1047. Syntax: -F filespec
  1048.  
  1049. The  "-f"  command  is  effective  only  on the DOS command line.  It instructs
  1050. MS-Kermit to use the specified file as its  initialization  file,  rather  than
  1051. MSKERMIT.INI.    Unlike other command-line arguments, "-f" does not, of itself,
  1052. cause MS-Kermit to exit upon completion.  Example:
  1053.  
  1054.     C>kermit -f sunday.ini
  1055.     Kermit-MS>
  1056.  
  1057. The -F command line option allows different MS-Kermit initialization  files  to
  1058. coexist.  You can create batch commands to invoke Kermit in different ways, for
  1059. instance MONDAY.BAT might contain "kermit -f monday.ini",  TUESDAY.BAT  "kermit
  1060. -f tuesday.ini", etc.
  1061.  
  1062.  
  1063. The ECHO Command
  1064.  
  1065. Syntax: ECHO [string]
  1066.  
  1067. The  ECHO  command  writes  the string to the screen, without adding a carriage
  1068. return or line feed.  ECHO may be used to report progress during execution of a
  1069. TAKE command file, or to issue prompts during the execution of a script.  
  1070.  
  1071.     ECHO Part one completed...\13\10
  1072.  
  1073. The  numbers  at the end are "backslash codes" for ASCII control characters, in
  1074. this case carriage return (\13) and linefeed (\10).  Since the ECHO command in-
  1075. terprets   backslash  codes,  ANSI.SYS  and  similar  console  drivers  can  be
  1076. programmed through this command by embedding ANSI escape sequences (see section
  1077. 1.15.3) in the echo string.
  1078.  
  1079.  
  1080. The COMMENT Command
  1081.  
  1082. Syntax: COMMENT text
  1083. The  COMMENT  command  lets  you add comments to a TAKE command file.  The word
  1084. COMMENT (or any unique prefix thereof) must appear as the  first  word  on  the
  1085. line.  The COMMENT command may also be entered interactively.  It has no effect
  1086. at all.  Comments may also be entered in TAKE files,  but  not  on  interactive
  1087. command lines, by using the semicolon (";") character.  Unlike the COMMENT com-
  1088. mand, semicolon comments may appear on the same line as a Kermit command.   Ex-
  1089. ample:
  1090.  
  1091.     COMMENT - MS-Kermit command file to connect port 2 to an IBM mainframe
  1092.     set port 2
  1093.     set speed 4800   ; Baud rate is 4800
  1094.     do ibm           ; Set parameters for IBM linemode
  1095.     connect          ; Be a terminal
  1096.  
  1097. Question marks should not be included in comments, as they will invoke the help
  1098. function.
  1099.  
  1100.  
  1101. The DEFINE Command
  1102.  
  1103. Syntax: DEFINE macro-name [command [, command [, ...]]]
  1104.  
  1105. Command macros provide another way of collecting many commands  into  a  single
  1106. command.    The difference between a macro and a TAKE file is that Kermit keeps
  1107. all its macro definitions in memory, and can execute them as many times as  you
  1108. like,  without  having  to look them up on disk, whereas every time you issue a
  1109. TAKE command, Kermit has to access a disk.  But... you can have  as  many  TAKE
  1110. command  files  as  you  like,  and  they  can  be as long as you want, whereas
  1111. MS-Kermit's memory for storing macro definitions is limited.  You can put macro
  1112. definitions and DO commands for them in TAKE files (or for that matter, you can
  1113. put TAKE commands in macro definitions).
  1114.  
  1115. Kermit-MS command  macros  are  constructed  with  the  DEFINE  command.    Any
  1116. Kermit-MS commands may be included.  Example:
  1117.  
  1118.     define telenet set parity mark, set baud 1200, connect
  1119.  
  1120. A macro can be undefined by typing an empty DEFINE command for it, like 
  1121.  
  1122.     define telenet
  1123.  
  1124. A  macro  definition  may be no longer than 128 characters.  Longer definitions
  1125. can be accomplished by "chaining."  Example:
  1126.  
  1127.     define setup set port 1, set speed 19200, set par even, do setup2
  1128.     define setup2 set flo no, set handsh xon, set local on, do setup3
  1129.     define setup3 set timer on, set terminal color 1 31 45, do setup4
  1130.     define setup4 set warning on, set incomplete keep, connect
  1131.  
  1132. DO SETUP will invoke all of these commands.  The commas  above  stand  for  the
  1133. carriage  returns  needed  by  individual  commands.    Commas  must be used to
  1134. separate commands in macro definitions; carriage returns (\13) cannot be  used.
  1135. When  control or other special characters are needed in a macro they may be ex-
  1136. pressed in backslash number form, \nnn.
  1137.  
  1138. The SHOW MACROS command displays the value of all currently defined macros, and
  1139. tells how much space is left for further definitions.
  1140.  
  1141.  
  1142. The DO Command
  1143.  
  1144. Syntax: DO macro-name
  1145.  
  1146. A  Kermit-MS  command  macro  is  invoked  using the DO command.  For instance,
  1147. Kermit-MS comes with a predefined macro  to  allow  convenient  setup  for  IBM
  1148. mainframe  line-mode  communications; to invoke it, you would type DO IBM.  The
  1149. IBM macro is defined as "set timer on, set  local-echo  on,  set  parity  mark,
  1150. handshake xon, set flow none".  You can use the DEFINE command to redefine this
  1151. macro or remove the definition altogether.
  1152.  
  1153. There is no automatic way to undo the effect of a macro.  If you  need  to  ac-
  1154. complish  this  effect,  you should define another macro for that purpose.  For
  1155. instance, to undo the effect of "do ibm" so that you could connect to,  say,  a
  1156. DEC VAX, you could:
  1157.  
  1158.   def vax set par none,set hand none,set flo x,set tim off,set loc off
  1159.  
  1160. Then  you  can  "do  ibm" whenever you want to use the IBM system, and "do vax"
  1161. whenever you want to use the VAX.
  1162.  
  1163. If you wish to view the macro expansion whenever you issue a  DO  command,  you
  1164. can SET TAKE-ECHO ON.
  1165.  
  1166.  
  1167. Local File Management Commands
  1168.  
  1169. These  commands  are  executed  on your local PC, and generally invoke DOS ser-
  1170. vices.  This allows you to perform common DOS functions without leaving Kermit.
  1171. All  file specifications may include device and/or directory fields.  The local
  1172. file management commands are:
  1173.  
  1174. CWD path
  1175.         Changes  the  current  working  directory  to  the  given  path.    All
  1176.         references to local file names without explicit  paths  will  refer  to
  1177.         that  path.  A drive letter may be included to also change disk drives.
  1178.         This command affects Kermit and any inferior programs that you  RUN  or
  1179.         PUSH  to,  but  your  previous disk and directory are restored when you
  1180.         exit from Kermit.
  1181.  
  1182. DELETE filespec
  1183.         Deletes  the  specified  file  or  files.   As in DOS, the names of the
  1184.         deleted files are not listed, only the  message  "file(s)  deleted"  or
  1185.         "file(s)  not  found",  and  if  you  give  the  command  "delete *.*",
  1186.         Kermit-MS will prompt "Are you sure?" since DOS is doing the work.
  1187.  
  1188. DIRECTORY [filespec]
  1189.         Lists  the  names,  sizes,  and  creation dates of files that match the
  1190.         given file specification.  If no filespec  is  given,  the  command  is
  1191.         equivalent to DIR *.*.  Normal DOS switches are effective.
  1192.  
  1193. SPACE   Performs  the MS-DOS CHKDSK function by running the CHKDSK program from
  1194.         the current path.  CHKDSK summarizes your disk and memory usage.
  1195.  
  1196. RUN command
  1197.         Passes  the  command  line to COMMAND.COM for execution.  Any legal DOS
  1198.         operation is permitted: running a program (perhaps  with  command  line
  1199.         arguments  or i/o redirection), executing a DOS command, or executing a
  1200.         batch file.  The COMMAND.COM file should be in the current path.   Ker-
  1201.         mit  is  suspended  while  the  command  is  executed and automatically
  1202.         resumes afterward.  You may even nest RUN KERMIT commands several times
  1203.         if  memory  is  available.    The  command will be executed directly by
  1204.         COMMAND.COM so follow the rules of DOS.  Example:  
  1205.  
  1206.             Kermit-MS>run more < kim.txt
  1207.  
  1208.  
  1209.  
  1210. TYPE filespec
  1211.         Displays  the  specified  local file on the screen.  Automatic pause is
  1212.         not available at the end of a page (but see above example  for  how  to
  1213.         accomplish this).  On most systems, Ctrl-S can be typed to stop scroll-
  1214.         ing and Ctrl-Q to continue scrolling.
  1215.  
  1216.  
  1217. 1.6.2. COMMANDS FOR TERMINAL CONNECTION
  1218.  
  1219. The CONNECT command connects your PC as a terminal to the remote system so that
  1220. you  may conduct a session there, and the HANGUP command may be used to discon-
  1221. nect your modem (if you have one) from the remote system.  There  is  presently
  1222. no  DIAL  command;  modems  may be dialed "manually" during CONNECT or by using
  1223. scripts.  Scripts are described in detail in subsequent sections.
  1224.  
  1225. For completeness, the descriptions below contain copious reference to  the  SET
  1226. commands,  which  let  you  modify  all  sorts  of  terminal  and communication
  1227. parameters (the SET commands are described in a later section).   MS-Kermit  is
  1228. initially  set up with the following parameters, so that you only need to issue
  1229. SET commands for those that need to be changed:
  1230.  
  1231.     PORT                    1 (in most cases, e.g. COM1 on the IBM PC family)
  1232.     TERMINAL                VT102(*) emulation (on the IBM PC  family  and  DEC
  1233.                             Rainbow)
  1234.     SPEED                   Whatever the serial card is currently set to.
  1235.     PARITY                  None
  1236.     FLOW-CONTROL            XON/XOFF
  1237.     HANDSHAKE               None
  1238.     LOCAL-ECHO              Off
  1239.     DISPLAY                 7-bit characters
  1240.     INPUT TRANSLATION       Off
  1241.     ESCAPE                  Control-Rightbracket
  1242.  
  1243. (*)  The  VT102  terminal  is compatible with the VT100, but includes a few ad-
  1244. ditional functions.
  1245.  
  1246.  
  1247. The CONNECT Command
  1248.  
  1249. Syntax: CONNECT -or- C
  1250.  
  1251. The CONNECT command establishes  an  interactive  terminal  connection  to  the
  1252. remote  system  using the currently selected communications port (SET PORT COM1
  1253. or COM2) with all settings currently in effect for  that  port,  emulating  the
  1254. currently selected type of terminal.
  1255.  
  1256. During  CONNECT,  the  characters you type are sent out the communication port,
  1257. and the characters that arrive at the port are displayed on the screen  or  in-
  1258. terpreted  by  the  selected  terminal  emulator.    If  you SET LOCAL-ECHO ON,
  1259. MS-Kermit will also display the characters you type on the screen.
  1260.  
  1261. Before you issue the CONNECT command, be sure to set the correct  communication
  1262. speed  (SET  SPEED)  and any other necessary communication parameters (e.g. SET
  1263. PARITY, SET LOCAL-ECHO).  If you have SET DEBUG ON, then (on  certain  systems,
  1264. particularly the IBM PC), terminal emulation will be disabled and received con-
  1265. trol characters will be displayed in special notation.
  1266.  
  1267. By default, 7-bit ASCII characters are displayed on the screen.    If  you  SET
  1268. DISPLAY  8, then 8-bit characters will be used (useful for "national" character
  1269. sets).  Character translation will be done according to any SET TRANSLATION IN-
  1270. PUT  and  SET  KEY  commands you have issued.  In addition, characters that are
  1271. sent to the screen will also be recorded in a disk file or on a printer if  you
  1272. have issued a LOG SESSION command.
  1273.  
  1274. To  get back to the PC, type the escape character followed by the letter C (for
  1275. "Close connection").  On most MS-DOS systems the  escape  character  is  Ctrl-]
  1276. (Control-Rightbracket).    That  means,  hold down the Ctrl key, press "]", and
  1277. then type the letter C.
  1278.  
  1279.     Kermit-MS>connect        Connect to remote system.
  1280.  
  1281.       Conduct terminal session here...
  1282.  
  1283.     ^]c                      Escape back to PC.
  1284.     Kermit-MS>               Prompt reappears.
  1285.  
  1286. This is called "escaping back".  You can use the SET ESCAPE command  to  change
  1287. the escape character to something besides "^]", or you can assign the escaping-
  1288. back operation to a single key or key combination with SET KEY (on the  IBM  PC
  1289. the default for this is Alt-X).
  1290.  
  1291. You can include the CONNECT command in a TAKE command file, but not "bare" text
  1292. to be sent to the remote system during CONNECT (use scripts for that, see  Sec-
  1293. tion  1.7).    When a TAKE file includes a CONNECT command, no further commands
  1294. will be executed from the file until after you escape back.
  1295.  
  1296. When you CONNECT, the program attempts to raise the DTR and RTS RS-232 signals,
  1297. and  it  takes no specific action to lower them unless you explicitly issue the
  1298. HANGUP command; thus you can EXIT from Kermit-MS and restart it  without  drop-
  1299. ping  a  dialup connection.  While CONNECTed, you can communicate directly with
  1300. an autodialer or "smart modem" to control the communications line, hang it  up,
  1301. and the like, for instance, by typing AT commands to a Hayes-like modem.
  1302.  
  1303.     Kermit-MS>set speed 2400
  1304.     Kermit-MS>connect
  1305.     AT                       Now you're talking to the modem.
  1306.     OK
  1307.     ATDT8765432
  1308.     RINGING
  1309.     CONNECT 2400
  1310.     Welcome to ...           Now you're talking to the host computer.
  1311.     Please login:
  1312.  
  1313. MS-Kermit  makes  no attempt to monitor the modem's Carrier Detect (CD) or Data
  1314. Set Ready (DSR) signals, and will take no notice if they drop.  Thus it is  not
  1315. possible  to  automatically  terminate  a  session if the connection is broken.
  1316. However, you may query  the  status  of  these  modem  signals  yourself  using
  1317. Kermit's SHOW MODEM command.
  1318.  
  1319. When  using Kermit to connect two PCs "back to back," SET LOCAL-ECHO ON so that
  1320. when you CONNECT to the other PC to send messages to its operator, you can  see
  1321. what  you are typing.  Depending on the system, you may have to type a carriage
  1322. return and a linefeed (Control-J) at the end of each line in order to make  the
  1323. display look right.
  1324.  
  1325.  
  1326. The HANGUP Command
  1327.  
  1328. On  serial  port  connections, the HANGUP command attempts to momentarily lower
  1329. the modem signals DTR and RTS.  It may be used to hang up the phone when dialed
  1330. up  through  a  modem, or to get the attention of port contention units or ter-
  1331. minal concentrators that operate in this manner.   On  direct  connections,  it
  1332. will  probably  have no effect.  On local area network connections, the network
  1333. session is fully terminated.
  1334.  
  1335.  
  1336. TERMINAL EMULATION
  1337.  
  1338. The IBM PC version of Kermit-MS emulates the DEC VT102 terminal by default, and
  1339. may  also  be  instructed  to  emulate  the  DEC VT52, the Heath/Zenith-19, the
  1340. Tektronix 4010 graphics terminal, or no terminal at all,  selectable  with  the
  1341. SET TERMINAL command.  Emulation of each of these terminals is nearly complete.
  1342. VT102 emulation lacks only smooth scroll and 132 column mode (some  EGA  boards
  1343. allow it).  Double-height, double-width characters are supported, but simulated
  1344. using ordinary characters.
  1345.  
  1346. The IBM PC's 40-column (large character) screen mode may be used during CONNECT
  1347. if  you SET TERMINAL NONE (but you may also have to inform the remote host that
  1348. your screen width is 40).  This can provide improved  readability  to  visually
  1349. impaired  persons,  but at the expense of terminal emulation.  To use 40-column
  1350. mode, enter the DOS command "MODE 40" (or CO40 or BW40).
  1351.  
  1352. On color monitors, the foreground and background colors may be  set  using  SET
  1353. TERMINAL  COLOR,  and  inverse/normal video display may also be selected, along
  1354. with many other terminal parameters.  A complete list of the commands,  default
  1355. key configurations, and escape sequences accepted by the IBM PC Kermit terminal
  1356. emulator is given in section 1.15.1.   Non-IBM-compatible  PCs  have  different
  1357. terminal emulation options.  See section 1.9.
  1358.  
  1359.  
  1360. Escape-Level Commands
  1361.  
  1362. The  escape  character,  normally Control-], is used to regain the attention of
  1363. Kermit-MS during CONNECT  (you  can  change  the  escape  character  using  SET
  1364. ESCAPE).  When you type the escape character, Kermit-MS waits for you to follow
  1365. it with a single character command.  For instance, the single character command
  1366. "?"  produces  a  list of available single character commands.  This command is
  1367. executed immediately; it may not be edited, and the program does not wait for a
  1368. carriage  return  to confirm it.  Table 1-2 shows CONNECT escape-level commands
  1369. available in Kermit-MS.
  1370.  
  1371. -------------------------------------------------------------------------------
  1372.  
  1373.  
  1374.     ?   Help -- Lists the available single-character commands.
  1375.     0   (the digit zero) Transmit a NUL (ASCII 0).
  1376.     B   Transmit a BREAK signal.
  1377.     L   Transmit a Long BREAK signal (on some systems).
  1378.     C   Close the connection and return to Kermit-MS prompt level.
  1379.     H   Hangup the phone by lowering DTR and CTS momentarily.
  1380.     F   File the current screen in the screen dump file.
  1381.     M   Toggle the mode line, i.e. turn it off if it is on or vice versa.
  1382.     P   Push to DOS; get back to CONNECT by typing EXIT.
  1383.     Q   Temporarily quit logging the remote session.
  1384.     R   Resume logging the remote session.
  1385.     S   Show the status of the connection.
  1386.     ^]  (or whatever you have set the escape character to be)
  1387.         Typing the escape character twice sends one copy of it to the connected
  1388.         host.
  1389.  
  1390.          Table 1-2:   Kermit Single-Character CONNECT Escape Commands
  1391.  
  1392. -------------------------------------------------------------------------------
  1393.  
  1394. Typing any other character (except the space bar, which is the "null  command")
  1395. after  the  escape character will cause Kermit-MS to beep, but will do no harm.
  1396. These actions are also Kermit action verbs and can be assigned to single  keys.
  1397. See SET KEY for details.
  1398.  
  1399.  
  1400. The Mode Line
  1401.  
  1402. When  you  first  issue the CONNECT command, a message (on some systems, an in-
  1403. verse video "mode line") will display the most important facts about  the  con-
  1404. nection you've just established, so that you can quickly diagnose any problems.
  1405. Here's what the IBM PC mode line looks like:
  1406.  
  1407. Esc-chr:^] help:^]? port:1 speed:9600 parity:odd echo:rem VT102 .... PRN
  1408.  
  1409. This shows that the escape character is Ctrl-Rightbracket, that you would  type
  1410. Ctrl-rightbracket followed by question mark ("^]?") to get help during CONNECT,
  1411. that you are connected on port 1 at 9600 baud with odd parity and remote  echo,
  1412. and  that  a  VT102  terminal  is  being emulated.  The four dots represent the
  1413. VT102s LEDs (they turn into the digits 1,2,3,4 when "lit") and PRN will show up
  1414. if the printer is activated (e.g. by Ctrl-PrintScreen).
  1415.  
  1416. The  mode  line  may be turned on and off using SET MODE, or the CONNECT escape
  1417. character followed by the letter M.
  1418.  
  1419.  
  1420. Screen Rollback
  1421.  
  1422. On the IBM PC and some  other  systems  (see  Table  1-5),  Kermit-MS  provides
  1423. several  pages  of screen memory which let you recall earlier terminal screens.
  1424. These may be scrolled up and down using keys as shown in Table 1-6.    For  in-
  1425. stance,  the  IBM PC uses PgUp (previous screen), PgDn (next screen), Ctrl-PgUp
  1426. and Ctrl-PgDn (one line at a time).  Only lines that scroll off the top of  the
  1427. screen  are  saved.   When an application clears the screen, that screen is not
  1428. saved.  These functions and others may be assigned to different keys  with  the
  1429. SET KEY command.
  1430.  
  1431. If  you  have  rolled the screen back and a new character must be displayed, it
  1432. will normally appear at the current cursor position on the old screen.  This is
  1433. useful  when  you  are trying to copy something from a previous screen.  If you
  1434. wish new characters to appear in their proper place on the "newest" screen, you
  1435. can SET TERMINAL ROLL ON.
  1436.  
  1437.  
  1438. Screen Dump
  1439.  
  1440. The  screen  dump  feature  writes the contents of the current screen to a file
  1441. (KERMIT.SCN unless another file was selected by the SET DUMP command) when  the
  1442. CONNECT  escape-level  command F is typed.  The screen dump file is appended to
  1443. on each successive screen dump,  with  each  screen  separated  by  a  formfeed
  1444. (Ctrl-L).    This  feature may be used in conjunction with screen rollback -- a
  1445. handy way to recapture screenfuls of laboriously typed-in text after  a  remote
  1446. host  has  crashed  without saving your work.  The corresponding action verb is
  1447. "dump".  Screen dump does not function when in Tektronix graphics mode; instead
  1448. one of many graphics screen capture programs may be used independently commonly
  1449. via the DOS Shift PrtSc key combination or by LOGging the incoming byte stream.
  1450.  
  1451. A screen dump differs from a session log in two  ways.    First,  each  desired
  1452. screen  must  be  manually  filed,  and  second,  the screen dump file has been
  1453. stripped of any escape sequences, whereas the session log records them (see LOG
  1454. SESSION).
  1455.  
  1456.  
  1457. Printer Control
  1458.  
  1459. During  terminal emulation, a locally attached printer may be controlled in the
  1460. normal manner, on most systems.  Pushing the "Print  Screen"  key  (shifted  on
  1461. some  systems)  will  cause the current contents of the screen to be printed by
  1462. DOS; holding down Ctrl while depressing Print Screen will alternately start and
  1463. stop  the  spooling  of incoming characters to the printer.  On the IBM PC, the
  1464. mode line will show PRN when the printer is activated in this manner.  ^P or ^N
  1465. are  sent  to  the host during terminal emulation and do not toggle printing as
  1466. they do when you're talking directly to DOS.  CTRL-Print-Screen  can  be  simu-
  1467. lated  with  the  Kermit-MS  LOG  PRN  and  CLOSE commands.  VT102 (ANSI) style
  1468. host-controlled transparent printing is also supported on the IBM PC.  See sec-
  1469. tion 1.16.6 for technical information about MS-Kermit's printer control.
  1470.  
  1471.  
  1472. Graphics
  1473.  
  1474. MS-Kermit  on the IBM PC, compatibles, and several other systems, is capable of
  1475. emulating a Tektronix 4010 graphics terminal, for use with host-based  software
  1476. that can generate Tektronix control codes.  When you enter Tektronix emulation,
  1477. your cursor will disappear.  Don't be alarmed, this is how Tektronix  terminals
  1478. behave.
  1479.  
  1480. The  Tektronix  emulator  implements a mixture of Tek 4010 and 4014 features to
  1481. draw characters, lines, and dots in graphics mode.  These  Tektronix  terminals
  1482. have a graphics display 780 dots high by 1024 dots wide.  They use storage tube
  1483. technology whereby a dot stays illuminated until the  full  screen  is  erased.
  1484. They  also  lack  cursor  keys.  Kermit's Tek emulator maps the 1024 by 780 dot
  1485. display to the PC's current screen dimensions, say 640 across  by  200  or  350
  1486. dots high, and retains limited use of the cursor keys.  It automatically senses
  1487. the active  display  adapter  (EGA,  CGA,  Hercules,  Mono,  and  AT&T/Olivetti
  1488. 640x400)  and retains screen coloring (EGA) and the current graphics image (EGA
  1489. and Hercules) if the adapter has sufficient memory.  Pure  monochrome  systems,
  1490. of  course,  lack  a  graphics capability; in this case Kermit approximates the
  1491. graphic image by writing dots as plus signs.
  1492.  
  1493. Tektronix graphics mode is entered two different ways, automatically and volun-
  1494. tarily:
  1495.  
  1496.    1. Automatically  (which you can prevent via the Kermit command DISABLE
  1497.       TEK).  While emulating a VT102, VT52, or Heath-19, reception of  the
  1498.       byte pair ESCAPE Control-L causes the PC to change to graphics mode,
  1499.       clear the screen, and obey new  input  as  Tektronix  commands.    A
  1500.       second   automatic   entry  is  reception  of  the  escape  sequence
  1501.       "ESC [ ? 3 8 h" which does the same as above except  the  screen  is
  1502.       not  cleared.    Automatic  mode  is  exited  by either reception of
  1503.       Control-X or "ESC [ ? 3 8 l" (lower case L), or by toggling the ter-
  1504.       minal type (ALT minus, Kermit verb\KTermtype) to VT102, or something
  1505.       other than TEK.  (These "ESC [ ? 3 8 h/l" sequences derive from  the
  1506.       DEC VT340 terminal.)
  1507.  
  1508.    2. Voluntary mode is when terminal type TEK4010 is selected by the Ker-
  1509.       mit command SET TERMINAL TEK4010 or by toggling to it as above.   It
  1510.       is  exited  by  SET  TERMINAL another-kind or by toggling to another
  1511.       kind.  ENABLE or DISABLE TEK and the exit-Tek-mode escape  sequences
  1512.       are not applicable to voluntary mode.
  1513.  
  1514. Here are several common questions about Tek mode, and their answers:
  1515.  
  1516.    1. "How  do  I  escape  from  graphics  mode  back  to  being a regular
  1517.       terminal?"  Within CONNECT mode, you can type  the  \KTermtype  key,
  1518.       which  is  assigned  by  default to Alt-Minus.  Repeated pressing of
  1519.       this key "toggles"  among  Kermit's  terminal  types,  VT102,  VT52,
  1520.       Heath-19, and Tektronix.  You can also escape back to Kermit-MS com-
  1521.       mand level and issue an explicit SET TERMINAL command to change  the
  1522.       terminal type.
  1523.  
  1524.    2. "How  can  I return to the graphics screen without erasing it?"  The
  1525.       graphics screen is preserved if your graphics adapter has sufficient
  1526.       memory  (see  Table 1-3).  In this case, both your text and graphics
  1527.       screens will be preserved when you toggle back and forth  between  a
  1528.       character terminal (e.g. VT102) and Tektronix.
  1529.  
  1530.    3. "How do I erase the graphics screen?"  You can type the \KReset key,
  1531.       which is normally assigned to Alt-=.  The screen also clears if  the
  1532.       host sends a Control-L or ESC Control-L.
  1533.  
  1534. While acting as a Tek terminal Kermit uses the keyboard translation appropriate
  1535. to the VT102 terminal.  However, received escape sequences are  interpreted  by
  1536. the  Tek emulator and VT102 escape codes are inoperative.  The Tek emulator ab-
  1537. sorbs the ESCAPE and following character  and  treats  any  additional  unknown
  1538. items as ordinary text.
  1539.  
  1540. The  emulator  can  display text characters from a built-in 8-by-8 dot font for
  1541. characters Space through DELete (no control codes nor special characters).    A
  1542. backspace  operation  erases  the character under the final cursor location (an
  1543. extension beyond a real Tektronix 4010).  Tabs are converted to single  spaces.
  1544. Only the low 7 bits of the character are used.
  1545.  
  1546. While in Tek mode the emulator behaves as a simple TTY device for ordinary text
  1547. and as a line or dot drawing Tektronix device for commands listed in Table 1-8.
  1548. The  screen  resolution  is  governed by the kind of active display adapter and
  1549. monitor in the PC (Table 1-3).  Kermit senses this automatically when  graphics
  1550. mode  is  entered.  Graphics are saved on page 1 of screen memory.  Coloring is
  1551. determined by the current terminal status, either the default  screen  or  that
  1552. overridden by the command SET TERMINAL COLOR.
  1553.  
  1554. -------------------------------------------------------------------------------
  1555.  
  1556. Display Adapter Display       Mode    Screen Resolution and Coloring
  1557. EGA w/256KB     Hi res color  16 dec  640x350, graphics saved, 16 colors.
  1558.                 Med res color 14      640x200, graphics saved, 8 colors.
  1559.                 Monochrome    15      640x350, graphics saved, b/w.
  1560. EGA w/64KB      Hi res color  16      640x350, graphics not saved,
  1561.                                        4 colors of red, white, blue, black.
  1562.                 Med res color 14      640x200, graphics saved, 8 colors.
  1563.                 Monochrome    15      640x350, graphics not saved.
  1564. CGA             Color         6       640x200, graphics not saved, b/w.
  1565. Hercules        Monochrome    none    720x348, graphics saved if memory.
  1566. Monochrome      Monochrome    7       80 by 25 text, graphics not saved.
  1567. AT&T/Olivetti   any           72      640x400, grahics not saved, b/w.
  1568.  
  1569.   Table 1-3:   Adapters Supported by IBM PC MS-Kermit for Tektronix Emulation
  1570.  
  1571. -------------------------------------------------------------------------------
  1572.  
  1573. The technical details of Tektronix emulation are presented in section 1.15.7.
  1574.  
  1575.  
  1576. 1.6.3. COMMANDS FOR FILE TRANSFER
  1577.  
  1578. MS-Kermit's SEND, GET, and RECEIVE invoke the Kermit file transfer protocol for
  1579. error-checked transmission  of  files  between  MS-Kermit  and  another  Kermit
  1580. program  on the other end of the connection.  There are also commands for "raw"
  1581. transfer of files (no error checking)  with  systems  that  don't  have  Kermit
  1582. programs:  LOG  SESSION (for capturing text files on your PC) and TRANSMIT (for
  1583. uploading text files to the remote system).
  1584.  
  1585. During file transfer, MS-Kermit normally displays its progress on the screen as
  1586. shown  in  Figure  1-1.  The items in the right-hand column are updated more or
  1587. less at random.  In the current version, the percent done  is  filled  in  only
  1588. when sending files, not when receiving.  Several other display options are also
  1589. available; see SET DISPLAY.
  1590.  
  1591. -------------------------------------------------------------------------------
  1592.  
  1593.  
  1594.                Kermit-MS: V2.30  8 Jan 88
  1595.  
  1596.                File name: FOT.
  1597.       KBytes transferred: 7
  1598.      Percent transferred: 52%
  1599.                  Sending: In progress
  1600.  
  1601.        Number of packets: 74
  1602.            Packet length: 93
  1603.        Number of retries: 2
  1604.               Last error: None
  1605.             Last warning: None
  1606.  
  1607.              Figure 1-1:   MS-Kermit File Transfer Display Screen
  1608.  
  1609. -------------------------------------------------------------------------------
  1610.  
  1611. Although MS-Kermit makes no distinction between text  and  binary  files,  most
  1612. other  Kermit  programs  do.   Therefore, before you attempt to transfer binary
  1613. files with another type of system (say, a VAX, or an IBM mainframe), be sure to
  1614. give  the appropriate command -- usually something like SET FILE TYPE BINARY --
  1615. to the Kermit on the remote end.
  1616.  
  1617. File transfers involving floppy disks will be slow and noisy.  Hard  disks  are
  1618. much  faster  (and  quieter),  and RAM disks faster still (and totally silent).
  1619. But if you store files on a RAM disk, be sure to move them to a real  disk  be-
  1620. fore  turning  off your PC.  And before attempting to transfer files to the PC,
  1621. make sure you have enough room on the selected device.  Kermit does not provide
  1622. a way for you to change disks during a file transfer.
  1623.  
  1624.  
  1625. The SEND Command
  1626.  
  1627. Syntax:  SEND filespec1 [filespec2]
  1628.  
  1629. The  SEND  command causes a file or file group to be sent from the local MS-DOS
  1630. system to the Kermit on the remote system.  The remote Kermit may be running in
  1631. either  server or interactive mode; in the latter case, you should already have
  1632. given it a RECEIVE command and escaped back  to  your  PC.    S  is  a  special
  1633. non-unique abbreviation for SEND.
  1634.  
  1635. filespec1  may  contain  the    wildcard  characters  "*" to match zero or more
  1636. characters within a field, and/or "#" (first position) or  "?"  (elsewhere)  to
  1637. match any single character.  If filespec1 contains wildcard characters then all
  1638. matching files will be sent, in the same order that MS-DOS would show them in a
  1639. directory  listing.    If  filespec1  specifies  a  single file, you may direct
  1640. Kermit-MS to send that file with a different name, given in filespec2.  For in-
  1641. stance, in the command 
  1642.  
  1643.     Kermit-MS>send foo.bar framus.widget
  1644.  
  1645. filespec2  begins  with  the  first nonblank character after filespec1 and ends
  1646. with the carriage return; thus it may contain blanks or other  unusual  charac-
  1647. ters  that  may  be  appropriate on the target machine.  The alphabetic case of
  1648. text in filespec2 is preserved in transmission, so if case matters on the  tar-
  1649. get system, be sure to type filespec2 appropriately.
  1650.  
  1651. If  the  SEND command is specified by itself on the command line, then you will
  1652. be prompted separately for the name of the file to send, and the name  to  send
  1653. it under:
  1654.  
  1655.     Kermit-MS>send
  1656.      Local Source File: c:\chris\xcom1.txt
  1657.      Remote Destination File: com1.txt
  1658.  
  1659. If  a file can't be opened for read access, standard MS-DOS recovery procedures
  1660. will take place.  For example:
  1661.  
  1662.     Not ready error reading drive A
  1663.     Abort, Retry, Ignore?
  1664.  
  1665. Kermit remains active even if you select "Abort" (DOS's word, not ours).
  1666.  
  1667. Files will be sent with  their  MS-DOS  filename  and  filetype  (for  instance
  1668. FOO.TXT,  no  device or pathname).  Special characters in the file name are not
  1669. converted.  If there is no filetype, then only the name will be  sent,  without
  1670. the  terminating dot.  Each file is sent as is, with no conversions done on the
  1671. data, except for possibly stopping at a terminating  Control-Z  character  (see
  1672. the SET EOF command).
  1673.  
  1674. Once  you  give  Kermit-MS the SEND command, the name of each file will be dis-
  1675. played on your screen as the transfer begins.  Packet, retry, and other  counts
  1676. will be displayed along with informational messages during the transfer, in the
  1677. style specified by SET DISPLAY.  If the file is successfully  transferred,  you
  1678. will  see  "Complete",  otherwise  there  will  be  an error message.  When the
  1679. specified operation is done, the program will sound a beep.
  1680.  
  1681. Several single-character commands may be given while  a  file  transfer  is  in
  1682. progress:
  1683.  
  1684.   ^X  (Control-X)  Stop  sending the current file and go on to the next one, if
  1685.       any.
  1686.  
  1687.   ^Z  Stop sending this file, and don't send any further files.
  1688.  
  1689.   ^C  Return to Kermit-MS command level immediately without sending any kind of
  1690.       notification to the remote system.  (^Z or even ^E is preferable.)
  1691.  
  1692.   ^E  Like  ^C,  but send an Error packet to the remote Kermit in an attempt to
  1693.       bring it back to server or interactive command level.
  1694.  
  1695.   CR  Simulate a timeout: resend the current packet, or NAK the expected one.
  1696.  
  1697. Control-X, Control-Z, and Control-E send the proper protocol  messages  to  the
  1698. remote  Kermit  to  bring it gracefully to the desired state.  Control-C leaves
  1699. the remote Kermit in whatever state it happens to be in,  possibly  retransmit-
  1700. ting  its  last  packet  over and over, up to its retry limit.  You should only
  1701. have to use Control-C in dire emergencies (the  remote  Kermit  is  stuck,  the
  1702. remote  system  crashed, etc), or at those times when you realize that you have
  1703. given a file transfer command to Kermit-MS without first having told the remote
  1704. Kermit about it.
  1705.  
  1706.  
  1707. The RECEIVE Command
  1708.  
  1709. Syntax: RECEIVE [filespec]
  1710.  
  1711. The  RECEIVE  command  tells Kermit-MS to receive a file or file group from the
  1712. other system.  The file is stored under the name it was transmitted  with,  ex-
  1713. cept  that  any  illegal characters are translated to X's.  Kermit-MS passively
  1714. waits for the file to arrive; this command is not to be used when talking to  a
  1715. Kermit  server  (use GET for that).  You should already have issued a SEND com-
  1716. mand to the remote Kermit and escaped back  to  Kermit-MS  before  issuing  the
  1717. RECEIVE command.  R is a special non-unique abbreviation for RECEIVE.
  1718.  
  1719. If  the optional filespec is provided, incoming files will be stored under that
  1720. name.  If the filespec is really just a path then files are  stored  where  the
  1721. path indicates.  If it is an actual filename the first incoming file is renamed
  1722. and any additional files either overwrite the first (if FILE WARNING is OFF) or
  1723. are renamed slightly from the filespec (digits are added to the end of the main
  1724. filename part before the  dot  and  extension)  if  FILE  WARNING  is  ON  (the
  1725. default). The filespec may include any combination of the following fields:
  1726.  
  1727.   Device designator
  1728.       Store the file on the designated device, in  the  current  directory  for
  1729.       that  device.   If no device designator is given, store it on the current
  1730.       default device.
  1731.  
  1732.   Directory path
  1733.       Store  the file in the designated directory.  If no path given, store the
  1734.       file in the current directory.
  1735.  
  1736.   File name
  1737.       Store the file under the name given.  If no name is given, store it under
  1738.       the name it was sent under, converted, if necessary, to suit DOS  conven-
  1739.       tions,  and modified, if SET WARNING ON, to avoid overwriting any file of
  1740.       the same name in the same directory.
  1741.  
  1742. If an incoming file does not arrive in its entirety,  Kermit-MS  will  normally
  1743. discard  it  and it will not appear in your directory.  You may change this be-
  1744. havior by using the command SET INCOMPLETE KEEP, which will cause  as  much  of
  1745. the file as arrived to be saved on the disk.
  1746.  
  1747. The same single-character commands are available as during SEND:
  1748.  
  1749.   ^X  Request that the remote Kermit stop sending the current file, and proceed
  1750.       to the next one immediately.  Since this is an optional  feature  of  the
  1751.       Kermit protocol, the remote Kermit might not honor the request.
  1752.  
  1753.   ^Z  Request  that  the  remote  Kermit terminate the entire transfer; this is
  1754.       also an optional feature that may or may not be supported by  the  remote
  1755.       Kermit.
  1756.  
  1757.   ^C, ^E, and CR operate in the same way as they do during SEND.  In this case,
  1758.       ^E should always do what ^Z is supposed to do.
  1759.  
  1760. If WARNING is OFF and you type ^X or ^Z to interrupt the transfer,  you'll  ei-
  1761. ther get a partial new file, or else both the old and the new file of that name
  1762. will be lost, depending on SET INCOMPLETE.  In any case, when WARNING  is  off,
  1763. files with the same name as incoming files will not survive.
  1764.  
  1765. Caution: If an incoming file's name (the part before the dot) corresponds to an
  1766. MS-DOS device name, such as NUL, COM1, CON, AUX, or PRN, output will go to that
  1767. device, rather than to a file with that name.  This is a feature of MS-DOS.
  1768.  
  1769.  
  1770. 1.6.4. Hints for Transferring Large Files
  1771.  
  1772. During  a  prolonged file transfer session, things can go wrong that are beyond
  1773. Kermit's control.  The longer the session, the greater the probability it  will
  1774. be fatally interrupted.  But you can take a few precautions:
  1775.  
  1776.    - Make  sure  there  is sufficient disk space at the receiving end.  If
  1777.      possible, first run a disk utility (such as CHKDSK on MS-DOS systems)
  1778.      to clean out any bad disk blocks.
  1779.  
  1780.    - If you are using a telephone connection, make sure your session won't
  1781.      be interrupted by call waiting, people picking up  other  extensions,
  1782.      etc.
  1783.  
  1784.    - Don't  attempt  to  transfer  a  single file of many megabytes over a
  1785.      telephone connection.  The longer the call, the greater the chance of
  1786.      disconnection  (carrier  loss).   Although it's a bother, it may save
  1787.      time in the long run to break the file up into smaller pieces, trans-
  1788.      fer the pieces, and then recombine on the other end.
  1789.  
  1790.    - SET  INCOMPLETE  KEEP  on  the receiving end, so that if the transfer
  1791.      fails, then the partial file will be retained.  Then  chop  the  part
  1792.      that wasn't transferred into a separate file, reconnect, and send it.
  1793.      Then join the pieces together.
  1794.  
  1795. Consider moving truly massive amounts of data on magnetic media.  "Never under-
  1796. stimate the bandwidth of a station wagon full of magnetic tapes!"
  1797.  
  1798.  
  1799. 1.6.5. Commands for Raw Uploading and Downloading
  1800.  
  1801. MS-Kermit  can  be used to send files to, or capture files from, remote systems
  1802. that do not have Kermit programs available.  No error checking or correction is
  1803. done,  so  the  results can very likely contain corrupted characters, spurts of
  1804. noise, gaps, or extraneous system messages or prompts.  The command for upload-
  1805. ing is TRANSMIT, and for downloading LOG SESSION.
  1806.  
  1807. To  minimize  loss  of  data  during  these  operations,  be  sure  to  SET the
  1808. FLOW-CONTROL and HANDSHAKE parameters to match the characteristics of the  sys-
  1809. tem on the other end.
  1810.  
  1811.  
  1812. The TRANSMIT Command
  1813.  
  1814. Syntax: TRANSMIT filespec [prompt-character]
  1815.  
  1816. The  TRANSMIT  command  provides  a  basic raw upload (export) facility to send
  1817. straight ASCII text files to the  host  without  packets,  error  checking,  or
  1818. retransmissions,  but using all the currently selected communication parameters
  1819. for flow control, parity, etc.  Information is read from the disk file  a  line
  1820. at a time, sent out the serial port, and the command waits for a single charac-
  1821. ter prompt (normally linefeed) from the host before sending the next file line.
  1822. A  disk  file line ends with carriage-return-linefeed (CRLF), but only the car-
  1823. riage return is sent, just as you only type carriage return at  the  end  of  a
  1824. line, not CR and LF.  Most remote systems will echo the CR and then also supply
  1825. a LF, which indicates that they have processed  the  line  and  are  ready  for
  1826. another one.  Setting the prompt to binary zero, \0, makes the TRANSMIT command
  1827. proceed without waiting for a prompt.  Pressing the local Return key  simulates
  1828. arrival of a prompt character.
  1829.  
  1830. Typically,  before  using this command to upload a file, you would start a text
  1831. editor (preferably a line-oriented, rather than  full-screen,  editor)  on  the
  1832. remote  host  and put it into text insertion mode.  When the file has been com-
  1833. pletely transmitted, you would manually enter the required sequence for getting
  1834. the  editor out of text insertion mode, and then make any necessary corrections
  1835. by hand.  Here's an example for VAX/VMS:
  1836.  
  1837.     Kermit-MS>set flow xon/xoff Set flow control to match VAX/VMS.
  1838.     Kermit-MS>connect           Connect to VAX.
  1839.     $ edt foo.txt               Start the EDT editor.
  1840.     *i                          Put it into "insert" mode.
  1841.     ^]c                         Escape back to Kermit-MS.
  1842.     Kermit-MS>transmit foo.txt  Upload the file a line at a time.
  1843.      ...                        The lines are displayed on your screen.
  1844.     Kermit-MS>connect           When done, connect back to the VAX.
  1845.     ^Z                          Type Ctrl-Z to exit EDT insert mode.
  1846.     *exit                       Exit from EDT to save the file.
  1847.     $
  1848.  
  1849. If transmission appears to be stuck, you can wake it up by  typing  a  carriage
  1850. return  on  the  keyboard.    You  can  cancel the TRANSMIT command by typing a
  1851. Control-C.  Control-Z's or other control characters in the file  may  have  ad-
  1852. verse  effects  on the host.  For this reason, you should use TRANSMIT only for
  1853. files that contain 7-bit printing  ASCII  characters,  spaces,  tabs,  carriage
  1854. returns, linefeeds, and possibly formfeeds.
  1855.  
  1856.  
  1857. The LOG SESSION Command
  1858.  
  1859. Syntax: LOG SESSION [filespec]
  1860.  
  1861. The LOG SESSION command lets you copy the characters that appear on your screen
  1862. during CONNECT into the specified file on the PC.  You can use this command  to
  1863. download files by displaying (usually with a command like TYPE) the file on the
  1864. remote system while logging is in effect.  Example:
  1865.  
  1866.     Kermit-MS>set flow xon/xoff Set flow control to match VAX/VMS.
  1867.     Kermit-MS>connect           Connect to the VAX.
  1868.     $ type foo.bar              Give this command, but don't type CR yet.
  1869.     ^]c                         Escape back.
  1870.     Kermit-MS>log sess foo.bar  Start logging.
  1871.     Kermit-MS>connect           Connect back.
  1872.                                 Now type the carriage return.
  1873.     This is the file FOO.BAR.   The file is displayed on your screen
  1874.     Blah blah ...               and captured into PC file FOO.BAR.
  1875.     $                           The prompt is captured too.
  1876.     ^]c                         When done, escape back
  1877.     Kermit-MS>close             and close the log file.
  1878.  
  1879. The PC file FOO.BAR now contains a (possibly  mutilated)  copy  of  the  remote
  1880. computer's  FOO.BAR  file.    It probably has the remote system's prompt at the
  1881. end, which you can edit out.  The session  log  can  also  be  used  to  record
  1882. typescripts,  editing  sessions, Tektronix graphics output, or any other output
  1883. from, or dialog with, the remote computer.  The  LOG  and  CLOSE  commands  are
  1884. described further below, in section 1.6.8.
  1885.  
  1886.  
  1887. 1.6.6. Kermit Server Commands
  1888.  
  1889. Kermit-MS  can  act as a Kermit server, and can also interact with other Kermit
  1890. servers.  Normally, the remote Kermit is put into server mode.  Then the  local
  1891. Kermit  becomes a "client", and may issue repeated commands to the server with-
  1892. out having to connect and escape back repeatedly.  Servers can not only  trans-
  1893. fer  files,  but  can also provide a variety of file management functions.  The
  1894. SERVER command puts MS-Kermit into server mode, and the DISABLE and ENABLE com-
  1895. mands modify the behavior of the server.
  1896.  
  1897. Kermit  servers respond only to information sent as Kermit protocol packets and
  1898. not to ordinary CONNECT-mode commands.  When MS-Kermit is the client,  it  uses
  1899. the  SEND  command (described above) to send files to a server, the GET command
  1900. (not RECEIVE) to get files from a server, the REMOTE  commands  to  invoke  the
  1901. file  management  functions  of the server, and the BYE, FINISH, or LOGOUT com-
  1902. mands to shut down the server.  The MS-Kermit server can also  be  returned  to
  1903. interactive mode by typing Ctrl-C or Ctrl-Break on the PC's console keyboard.
  1904.  
  1905.  
  1906. The SERVER Command
  1907.  
  1908. Kermit-MS is capable of acting as a full-fledged Kermit server for users coming
  1909. in through one of the communication ports or a local  area  network.    To  put
  1910. Kermit-MS  into server mode, first issue any desired SET commands to select and
  1911. configure the desired port, then DISABLE any undesired functions, and then type
  1912. the  SERVER  command.    Kermit-MS will await all further instructions from the
  1913. client Kermit on the other end of the connection, which may  be  hardwired,  or
  1914. connected  through  a network or autoanswer modem.  In the following example, a
  1915. Kermit server is set up for dialing in:
  1916.  
  1917.     Kermit-MS>set port 1
  1918.     Kermit-MS>set baud 1200
  1919.     Kermit-MS>connect
  1920.     ATA
  1921.     OK
  1922.     ^]c
  1923.     Kermit-MS>set timer on
  1924.     Kermit-MS>set warning on
  1925.     Kermit-MS>disable all
  1926.     Kermit-MS>server
  1927.  
  1928. Before putting Kermit in server mode in this case, it was necessary to  connect
  1929. to  the  modem  (in  this  example, a Hayes) and put it into autoanswer mode by
  1930. typing the ATA command.
  1931.  
  1932. MS-Kermit 2.30 server mode supports the following requests:
  1933.  
  1934.     SEND           REMOTE CWD          REMOTE SEND
  1935.     GET            REMOTE DELETE       REMOTE SPACE
  1936.     FINISH         REMOTE DIRECTORY    REMOTE TYPE
  1937.     BYE            REMOTE HELP         REMOTE WHO
  1938.     LOGO           REMOTE HOST
  1939.  
  1940. REMOTE CWD can be used to change both directories and devices.  The REMOTE SEND
  1941. command  accepts a one line message on the command line which will be displayed
  1942. on the operator's console.  An MS-Kermit  Server  can  DISABLE  recognition  of
  1943. selected REMOTE commands to help reduce accidents.
  1944.  
  1945.     CAUTION: The method used for most of the REMOTE commands is to invoke a
  1946.     task with the user's command line, redirect standard output to  a  tem-
  1947.     porary  file,  $KERMIT$.TMP, send that file back to the remote end, and
  1948.     then delete the file.  Sufficient space must be available to store this
  1949.     file.  To service DOS commands or user tasks the boot drive must hold a
  1950.     copy of COMMAND.COM.  PATH will not  be  searched  (this  can  be  dis-
  1951.     asterous on a floppy disk based system).
  1952.  
  1953.     FURTHER  CAUTION:  Any  of these DOS tasks or programs may encounter an
  1954.     error, and in that case, DOS will generally put  the  familiar  "Abort,
  1955.     Retry, Ignore?" message on the screen, and will wait for an answer from
  1956.     the keyboard.  This will hang the server until a  human  comes  to  the
  1957.     keyboard  and  gives  a  response.  The same thing will happen when any
  1958.     program is invoked that interacts with the real console.  For instance,
  1959.     REMOTE  SPACE  works  by  running  CHKDSK and if CHKDSK finds something
  1960.     wrong with the disk while tallying up the space, it will  ask  (at  the
  1961.     console) if you want to it to be fixed.  This, too, will hang the serv-
  1962.     er.
  1963.  
  1964.     MORAL: The MS-DOS Kermit server should probably not be used for  REMOTE
  1965.     commands  unless  someone  is  around  to  take care of it when it gets
  1966.     stuck.
  1967.  
  1968. For local network operation, the SET PORT NET command (with no node name)  must
  1969. be  issued  before  the  SERVER command.  MS-Kermit then becomes a network-wide
  1970. server, and other client Kermits can start a network session with it  by  using
  1971. the  name  of the Kermit Server, which is shown on the server's screen when SET
  1972. PORT NET is given.  The Kermit Server accepts connections from  other  Kermits,
  1973. but only one at a time.  There may be many Kermit Servers active on the network
  1974. simultaneously because each has a unique node name.  Operations are exactly the
  1975. same  as  with  serial port usage and the session (equivalent to a dialed phone
  1976. connection) is maintained between the pair until too many  timeouts  occur,  or
  1977. the  client  Kermit  issues a HANGUP command, exits to DOS, or SETs PORT NET to
  1978. another node.  In the latter cases, the server remains  available  for  use  by
  1979. other client Kermits.  If a client Kermit issues the BYE or FINISH command, the
  1980. network server is shut down (unless it was started with FIN disabled).
  1981.  
  1982.  
  1983. The DISABLE and ENABLE Commands
  1984.  
  1985. For security purposes, it may be desirable to leave your PC  in  Kermit  server
  1986. mode  so that it can be dialed in to, but with certain functions unavailable to
  1987. those who dial in.  The DISABLE and ENABLE commands provide this control.
  1988.  
  1989. The DISABLE and ENABLE commands affect the following functions, with the effect
  1990. of DISABLEs noted:
  1991.  
  1992.     CWD     Changing of directories, disabled entirely.
  1993.     DEL     Deletion of files confined to current directory.
  1994.     DIR     Production of directory listings confined to current directory.
  1995.     FIN     Shutting down the server (applies also to BYE) disabled entirely.
  1996.     GET     Getting files from the server confined to current directory.
  1997.     HOST    Execution of all REMOTE HOST (DOS) commands disabled entirely.
  1998.     SEND    Forces files sent to server into current directory.
  1999.     SPACE   Asking the server for a disk space report, disabled.
  2000.     TYPE    REMOTE TYPE files confined to current directory.
  2001.     ALL     All of the above.
  2002.     TEK     Automatic  invocation  of Tektronix graphics mode by host commands.
  2003.             This function is not related to server mode, and is not included in
  2004.             the ALL term.
  2005.  
  2006. For  reasons  which  should  be  obvious,  the Kermit server does not provide a
  2007. REMOTE ENABLE command!
  2008.  
  2009.  
  2010. The GET Command
  2011.  
  2012. Syntax: GET remote-filespec
  2013.  
  2014. The GET command requests a remote Kermit server to send the file or file  group
  2015. specified by remote-filespec.  This command can be used only when Kermit-MS has
  2016. a Kermit server active on the other end of the connection.  This means that you
  2017. must  have  CONNECTed  to the other system, logged in, run Kermit there, issued
  2018. the SERVER command, and escaped back (e.g. "^]C") to the local  Kermit-MS  (or,
  2019. in  the case of LAN operation, a Kermit server must be running somewhere on the
  2020. network).  If the remote Kermit does not have a SERVER command, then you should
  2021. use SEND and RECEIVE as described above.
  2022.  
  2023. You  may  use  the GET command in a special way to specify a different name for
  2024. storing the incoming file.  Just type GET alone on a  line,  and  you  will  be
  2025. prompted separately for the remote filespec and the local filespec:
  2026.  
  2027.     Kermit-MS>get
  2028.      Remote Source File: com1 txt
  2029.      Local Destination File: a:xcom1.txt
  2030.  
  2031. The  local  file name may contain a device field, and/or a directory specifica-
  2032. tion. Device and directory specifications in the local  destination  file  name
  2033. work the same way as in the RECEIVE command.
  2034.  
  2035. The  remote  filespec  is any string that can be a legal file specification for
  2036. the remote system; it is not parsed or  validated  locally.    It  can  contain
  2037. whatever wildcard or file-group notation is valid on the remote system.
  2038.  
  2039. Once the file transfer begins, the GET command behaves exactly like the RECEIVE
  2040. command.
  2041.  
  2042. Warning:  If the remote filespec is to contain a semicolon, and the GET command
  2043. is  being issued from a TAKE command file, you must prefix the semicolon with a
  2044. backslash.  Otherwise, all characters beginning with the semicolon will be  ig-
  2045. nored:  
  2046.  
  2047.     get me.home\;0
  2048.  
  2049.  
  2050. 1.6.7. Commands for Controlling Remote Kermit Servers
  2051.  
  2052. The  BYE,  FINISH,  and  LOGOUT commands allow you to shut down a remote Kermit
  2053. server:
  2054.  
  2055. BYE     When communicating with a remote Kermit server, use the BYE command  to
  2056.         shut  down the server, log out its job, and exit locally from Kermit-MS
  2057.         to DOS.  On local area networks, BYE also terminates the  network  ses-
  2058.         sion.
  2059.  
  2060. FINISH  Like  BYE,  FINISH  shuts down the remote server.  However, FINISH does
  2061.         not log out the server's job.  You are left at Kermit-MS  prompt  level
  2062.         so that you can connect back to the job on the remote system.  On local
  2063.         area nets, FINISH shuts down the MS-Kermit server, but in  a  way  that
  2064.         allows it to be restarted as if no interruption had occurred.
  2065.  
  2066. LOGOUT  The  LOGOUT  command  is  identical to the BYE command, except you will
  2067.         remain at Kermit-MS prompt level, rather than exit to DOS, so that  you
  2068.         can  establish  or  use  another  connection  without having to restart
  2069.         MS-Kermit.
  2070.  
  2071.  
  2072. The REMOTE Commands
  2073.  
  2074. The REMOTE keyword is a prefix for a number of commands.  It indicates that the
  2075. command  is  to be performed by a remote Kermit server.  Not all Kermit servers
  2076. are capable of executing all of these commands, and some Kermit servers may  be
  2077. able to perform functions for which Kermit-MS does not yet have the correspond-
  2078. ing commands.  In case you send a command the server cannot  execute,  it  will
  2079. send  back  a message stating that the command is unknown to it.  If the remote
  2080. server can execute the command, it will send  the  results,  if  any,  to  your
  2081. screen.
  2082.  
  2083. Here are the REMOTE commands that Kermit-MS may issue:
  2084.  
  2085. REMOTE CWD [directory]
  2086.         Ask the server to Change your Working Directory  on  the  remote  host,
  2087.         that  is, the default source and destination area for file transfer and
  2088.         management.  You will be prompted for a password, which will  not  echo
  2089.         as  you type it.  If you do not supply a password (i.e. you type only a
  2090.         carriage return), the server  will  attempt  to  access  the  specified
  2091.         directory  without  a password.  If you do not supply a directory name,
  2092.         your default or login directory on the remote system  will  be  assumed
  2093.         and you will not be prompted for a password.
  2094.  
  2095. REMOTE DELETE filespec
  2096.         Ask the server to delete the specified file or files on the remote sys-
  2097.         tem.  In response, the server may display a list of the files that were
  2098.         or were not successfully deleted.
  2099.  
  2100. REMOTE DIRECTORY [filespec]
  2101.         Ask  the  server to display a directory listing of the specified files.
  2102.         If no files are specified, then the list should include  all  files  in
  2103.         the current working directory.
  2104.  
  2105. REMOTE HELP 
  2106.         Ask the server to list the services it provides.
  2107.  
  2108. REMOTE HOST [command]
  2109.         Ask  the  server  to  send  the  command to the remote system's command
  2110.         processor for execution.
  2111.  
  2112. REMOTE KERMIT command
  2113.         Send  the  command  to the remote Kermit for interpretation as a Kermit
  2114.         command in the remote Kermit server's own command syntax.  Most  Kermit
  2115.         servers,  including  Kermit-MS, do not yet recognize REMOTE KERMIT com-
  2116.         mands.
  2117.  
  2118. REMOTE SEND message
  2119.         Send the one line message to be displayed on the Server's screen.
  2120.  
  2121. REMOTE SPACE [directory]
  2122.         Ask the server to  provide  a  brief  summary  of  disk  usage  in  the
  2123.         specified area on the remote host or, if none specified, the default or
  2124.         current area.
  2125.  
  2126. REMOTE TYPE filespec
  2127.         Ask  the server to display the contents of the specified remote file or
  2128.         files on your screen.
  2129.  
  2130. REMOTE WHO [who-spec]
  2131.         Ask  the  server  to  list  actively logged on users; optional who-spec
  2132.         qualifies the list and uses the syntax of the server system.
  2133.  
  2134.  
  2135. 1.6.8. The LOG and CLOSE Commands
  2136.  
  2137. Syntax: LOG {PACKET, SESSION} [filespec]
  2138.         CLOSE
  2139. LOG SESSION specifies  that  your  terminal  session  during  CONNECT  will  be
  2140. recorded  in  the indicated file (whose name defaults to KERMIT.LOG in the cur-
  2141. rent directory), with any input character translations applied according to SET
  2142. TRANSLATION  INPUT.    The  filespec  may include a device specification and/or
  2143. directory path.  The LOG SESSION command allows you to "capture" files  from  a
  2144. remote   system  that  doesn't  have  Kermit,  as  well  as  to  record  remote
  2145. typescripts.  LOG PACKET causes the log file to record all packets in file  ex-
  2146. changes (DEBUG need not be set ON).  Both kinds of logging can be active simul-
  2147. taneously but only one filename can be specified -- everything goes to the same
  2148. log  file.  The log is closed when you EXIT from Kermit-MS or when you issue an
  2149. explicit CLOSE command.
  2150.  
  2151. If the log file already exists then new material is appended to it.  Try not to
  2152. delete an open log file (CLOSE it first) because DOS will become confused.
  2153.  
  2154. During  terminal emulation, the LOG command records all the characters that ar-
  2155. rive from the remote host in the specified file,  including  escape  sequences.
  2156. If  you  have  SET  LOCAL-ECHO ON, it will also record the characters you type.
  2157. Logging may be suspended and resumed within a terminal session with the CONNECT
  2158. escape-level  commands  Q  and  R. The log file will be composed of 7-bit ASCII
  2159. bytes if (a) PARITY is other than NONE, or (b) DISPLAY is SET to 7.  If DISPLAY
  2160. is  8  and  PARITY  is NONE, or if DEBUG is ON, then the log will contain 8-bit
  2161. bytes.
  2162.  
  2163. You may LOG PRN to cause the logging information to be printed directly on your
  2164. printer.  Any escape sequences that are sent to the screen are also sent to the
  2165. printer.
  2166.  
  2167. If you want to record information without imbedded escape  sequences,  use  the
  2168. screen  dump  feature,  invoked by the CONNECT escape-level command F, which is
  2169. described under the CONNECT command.
  2170.  
  2171. A session log cannot be played back directly on the PC from the log file.    To
  2172. relive the session, you must transfer it to the remote system and display it in
  2173. "binary mode" (e.g. cat in Unix) which CONNECTed.
  2174.  
  2175.  
  2176. 1.6.9. The SET Command
  2177.  
  2178. Syntax: SET parameter value
  2179.      -or- SET parameter parameter value
  2180.  
  2181. The SET command establishes or modifies parameters for file  transfer  or  ter-
  2182. minal  connection.   You can examine their values with the STATUS command.  The
  2183. following SET commands are available in Kermit-MS:
  2184.  
  2185.                 BAUD  Communications port line speed (synonym for SPEED)
  2186.                 BELL  Whether to beep at the end of a transaction
  2187.     BLOCK-CHECK-TYPE  Level of error checking for file transfer
  2188.                DEBUG  Display packet contents during file transfer
  2189.         DEFAULT-DISK  Default disk drive for file i/o
  2190.                DELAY  Wait number seconds before Sending a file
  2191.          DESTINATION  Default destination device for incoming files
  2192.              DISPLAY  For selecting the type of file transfer display
  2193.                 DUMP  Screen dump file (or device) name
  2194.          END-OF-LINE  Packet termination character
  2195.                  EOF  Method for determining or marking end of file
  2196.               ESCAPE  Escape character for CONNECT
  2197.         FLOW-CONTROL  Enable or disable XON/XOFF
  2198.            HANDSHAKE  Half-duplex line turnaround option
  2199.           INCOMPLETE  What to do with an incompletely received file
  2200.                INPUT  Behavior of INPUT command for scripts
  2201.                  KEY  Specify key redefinitions
  2202.           LOCAL-ECHO  Specify which computer does the echoing during CONNECT
  2203.            MODE-LINE  Whether to display a mode line during terminal emulation
  2204.               PARITY  Character parity to use
  2205.                 PORT  Select a communications port
  2206.               PROMPT  Change the "Kermit-MS>" prompt to something else
  2207.              RECEIVE  Request remote Kermit to use specified parameters
  2208.               REMOTE  For running Kermit-MS interactively from back port
  2209.                RETRY  Packet retransmission threshold
  2210.                 SEND  Use the specified parameters during file transfer
  2211.                SPEED  Communications port line speed (synonym for BAUD)
  2212.            TAKE-ECHO  Control echoing of commands from TAKE files
  2213.             TERMINAL  Emulation and parameters
  2214.                TIMER  Enable/disable timeouts during file transfer
  2215.          TRANSLATION  Enable/disable/specify conversion of arriving characters
  2216.              WARNING  Specify how to handle filename collisions
  2217.  
  2218. The SET commands are now described in detail, in alphabetical order.
  2219.  
  2220.  
  2221. SET BAUD
  2222.  
  2223. Syntax: SET BAUD number
  2224.  
  2225. Set the speed (in bits per second,  commonly  called  baud)  of  the  currently
  2226. selected  terminal  communications  port  (COM1 by default) to 300, 1200, 1800,
  2227. 2400, 4800, 9600, or other common speed, and  on  the  IBM  PC  family,  higher
  2228. speeds  including  19200, 38400, 57600, and 115200.  Both connected systems, as
  2229. well as any intervening communication equipment, must be able  to  support  the
  2230. specified baud rate, and both systems should be set to the same baud rate.
  2231.  
  2232. Some implementations do not support the SET BAUD command.  But Kermit-MS leaves
  2233. the current communication port settings alone unless  you  issue  explicit  SET
  2234. commands to change them, so you may use MODE or other DOS programs to establish
  2235. the desired settings before running Kermit.
  2236.  
  2237. On certain systems, when you first run Kermit after powering the system up, you
  2238. may  get  a  message "Unrecognized baud rate".  This means that Kermit tried to
  2239. read the baud rate from the port and none was set.  Simply  use  SET  BAUD  (if
  2240. available) or the DOS MODE command to set the desired baud rate.
  2241.  
  2242. SET SPEED is a synomym for SET BAUD.
  2243.  
  2244.  
  2245. SET BELL
  2246.  
  2247. Syntax: SET BELL {ON, OFF}
  2248.  
  2249. Specifies  whether  the  bell  (beeper)  should sound upon completion of a file
  2250. transfer operation.  Normally ON.
  2251.  
  2252.  
  2253. SET BLOCK-CHECK-TYPE
  2254.  
  2255. Syntax: SET BLOCK-CHECK-TYPE {1, 2, 3}
  2256.  
  2257. Selects the error detection method: a 1-character 6-bit  checksum  (the  normal
  2258. case), a 2-character 12-bit checksum, or a 3-character 16-bit cyclic redundancy
  2259. check (CRC).  If the other Kermit program is not capable of type 2 or 3  check-
  2260. ing  methods,  automatic fallback to type 1 will occur.  The more secure type 2
  2261. and 3 block checks take essentially no more execution time than  the  simple  1
  2262. character  checksum.    SET  BLOCK 3 is a stronger check than SET BLOCK 2.  SET
  2263. BLOCK 2 or 3 is recommended for use with long packets (see below),  noisy  com-
  2264. munication lines, binary (8-bit data) files, and text files containing critical
  2265. data (budgets, grades, etc).
  2266.  
  2267.  
  2268. SET DEBUG
  2269.  
  2270. Syntax: SET DEBUG {PACKET, SESSION, ON, OFF}
  2271.  
  2272. With DEBUG PACKET, Kermit will display packet traffic  on  your  screen  during
  2273. file  transfer.   With the normal file transfer display, regular-length packets
  2274. sent  and  received  are  displayed  in  fixed-size  slots.    The  display  of
  2275. extended-length  packets,  however  (see  SET  RECEIVE PACKET-LENGTH), tends to
  2276. overlap.  If this bothers you, then also SET DISPLAY SERIAL, or LOG the packets
  2277. rather than displaying them.
  2278.  
  2279. With  DEBUG  SESSION,  during terminal emulation (on the IBM PC, Rainbow, and a
  2280. few others), control characters are displayed in  uparrow  ("^")  notation  and
  2281. characters  with the 8th bit set are preceded by the tilde ("~") sign, and your
  2282. session log (if any) will record 8-bit bytes, rather than 7-bit ASCII,  regard-
  2283. less  of  SET  DISPLAY  or  SET PARITY.  Character translation (SET TRANSLATION
  2284. INPUT) is not done during session debugging.  The effect of SET  DEBUG  SESSION
  2285. during  terminal connection can be disconcerting, but it gives you a convenient
  2286. line monitor equivalent to a specialized device  that  costs  several  thousand
  2287. dollars,  and  it  can  prove  very  handy for tracking down data communication
  2288. problems.
  2289.  
  2290. SET DEBUG ON turns on both SESSION and PACKET  debugging,  and  SET  DEBUG  OFF
  2291. turns them both off.
  2292.  
  2293.  
  2294. SET DEFAULT-DISK
  2295.  
  2296. Syntax: SET DEFAULT-DISK x:
  2297.  
  2298. Specify  the  default  disk drive to use for file transfer, directory listings,
  2299. and so forth.  Equivalent to typing the DOS command for changing disks (A:, B:,
  2300. etc).    Affects Kermit and all inferior processes, but when you exit from Ker-
  2301. mit, you will still have the same default disk as when you entered.
  2302.  
  2303.  
  2304. SET DELAY
  2305.  
  2306. Syntax: SET DELAY number
  2307.  
  2308. Wait the specified number of seconds before starting a file transfer.  Intended
  2309. for  use  when  the  other side needs appreciable time to become ready, such as
  2310. rearranging cables, changing programs, etc.,  or  when  MS-DOS  Kermit  is  the
  2311. remote  Kermit  (e.g.  after  CTTY COM1, SET REMOTE ON).  The number is 0 to 63
  2312. seconds, normally 0.
  2313.  
  2314.  
  2315. SET DESTINATION
  2316.  
  2317. Syntax: SET DESTINATION {DISK, PRINTER, SCREEN}
  2318.  
  2319. SET DESTINATION PRINTER will cause incoming files to be sent  directly  to  the
  2320. printer;  SCREEN will send output normally destined for the disk to the screen.
  2321. The normal destination is DISK.  SET DESTINATION affects only files transferred
  2322. with SEND, GET, or RECEIVE; it cannot be used to reroute the output from REMOTE
  2323. server commands.
  2324.  
  2325.  
  2326. SET DISPLAY
  2327.  
  2328. Syntax: SET DISPLAY {QUIET, REGULAR, SERIAL, 7-BIT, 8-BIT}
  2329.  
  2330. During file transfer, MS-DOS Kermit's regular display  is  a  formatted  screen
  2331. whose  fields  are  randomly  updated  with  file  names, packet numbers, error
  2332. counts, percent done, error messages, and so forth.
  2333.  
  2334. If you wish to run Kermit-MS interactively through the back port, for  instance
  2335. after  the operator has done CTTY COM1, you must give the command SET REMOTE ON
  2336. (which, currently at least, is equivalent to  SET  DISPLAY  QUIET);  this  sup-
  2337. presses  the  file transfer display screen, so that the display won't interfere
  2338. with the file transfer itself.  You can also use this command to  suppress  the
  2339. display  in  local  mode,  in case you are using a system that allows you to do
  2340. other work while file transfer proceeds in the background.
  2341.  
  2342. If you have your PC connected to a  speaking  device  (a  common  practice  for
  2343. visually  impaired  people), or you are logging the display screen to a printer
  2344. (using DOS ^P or kermit > prn), the random nature of the regular  display  will
  2345. make  the  results of little use.  SET DISPLAY SERIAL is provided for this pur-
  2346. pose; it causes the program to report progress "serially" on the  screen.    In
  2347. serial mode, error messages are preceeded with the word "Error" and repeat mes-
  2348. sages with the word "Retry".  Packets are numbered as dots with every tenth be-
  2349. ing  a  plus  sign.  The packet display is automatically broken across lines at
  2350. every 70th packet.  The serial display makes much more sense when  spoken  than
  2351. does the regular display.
  2352.  
  2353. The  serial display does not show the percent and kilobytes transferred.  It is
  2354. the default display style for generic MS-DOS Kermit; REGULAR is the default for
  2355. all others.
  2356.  
  2357. The  last  two parameters, 7-BIT and 8-BIT, control the size of characters sent
  2358. to the screen during terminal emulation.  7-BIT is the default and includes all
  2359. ASCII characters.  8-BIT is useful with national and line drawing characters.
  2360.  
  2361.  
  2362. SET DUMP
  2363.  
  2364. Syntax: SET DUMP filespec
  2365.  
  2366. On  those  systems that support this feature, change the file or device name of
  2367. the screen dump file.  The normal file name is KERMIT.SCN.  See the section  on
  2368. terminal  emulation  for details about screen dumps.  If the specified file al-
  2369. ready exists then new material is appended to old.
  2370.  
  2371.  
  2372. SET END-OF-LINE
  2373.  
  2374. Syntax: SET END-OF-LINE number
  2375.  
  2376. If the remote system needs packets to be terminated by anything other than car-
  2377. riage  return, specify the decimal value, 0-31, of the desired ASCII character.
  2378. Equivalent to SET SEND END-OF-LINE (SET END-OF-LINE is kept only for historical
  2379. reasons, and the parameter really should be called END-OF-PACKET anyway.)
  2380.  
  2381.  
  2382. SET EOF
  2383.  
  2384. Syntax: SET EOF {CTRL-Z, NOCTRL-Z}
  2385.  
  2386. Controls  how the end of file is handled.  CTRL-Z specifies a Control-Z charac-
  2387. ter should be appended to the end of an incoming file, unless it  already  ends
  2388. with  a  Control-Z.  Certain MS-DOS text editors and other applications require
  2389. files to be in this format.  For outbound files, treat the first  Control-Z  as
  2390. the  end  of  the  local file, and do not send it or any subsequent characters.
  2391. NOCTRL-Z is the default; incoming files are stored, and MS-DOS files are  sent,
  2392. exactly as is, in their entirety.
  2393.  
  2394.  
  2395. SET ESCAPE
  2396.  
  2397. Syntax: SET ESCAPE character
  2398.  
  2399. Specify  the  control character you want to use to "escape" from remote connec-
  2400. tions back to Kermit-MS.   On  most  systems  the  default  is  "^]"  (Control-
  2401. Rightbracket),  which  was chosen because it is a character you would otherwise
  2402. rarely type.
  2403.  
  2404. The character is entered literally after SET ESCAPE or in backslash number form
  2405. (\29),  and  should be chosen from the ASCII control range.  It is not possible
  2406. to use non-ASCII characters (like function keys) for this purpose (but see  SET
  2407. KEY for a way around this restriction).
  2408.  
  2409.  
  2410. SET FLOW-CONTROL
  2411.  
  2412. Syntax: SET FLOW-CONTROL {XON/XOFF, NONE}
  2413.  
  2414. Specify the full duplex flow control to be done on the currently selected port.
  2415. The options are XON/XOFF and NONE.  The specified type of flow control will  be
  2416. done  during  both  terminal emulation and file transfer.  By default, XON/XOFF
  2417. flow control is selected.  XON/XOFF should not be used  on  half-duplex  (local
  2418. echo)  connections,  or with other systems that do not support it.  If XON/XOFF
  2419. is used, HANDSHAKE should be set to NONE.
  2420.  
  2421.  
  2422. SET HANDSHAKE
  2423.  
  2424. Syntax: SET HANDSHAKE {CODE number, BELL, CR, LF, NONE, XOFF, XON}
  2425.  
  2426. Specify any half-duplex line turnaround handshake character to be  used  during
  2427. file  transfer on the currently selected port.  The CODE number form allows any
  2428. ASCII character to be specified by its decimal ASCII code.  Handshake  is  NONE
  2429. by default; if set to other than NONE, then FLOW-CONTROL should be set to NONE.
  2430. In operation the handshake character is sought at  the  end  of  each  received
  2431. packet,  following  the  normal END-OF-LINE character, but is not sent for out-
  2432. going packets.
  2433.  
  2434.  
  2435. SET INCOMPLETE
  2436.  
  2437. Syntax: SET INCOMPLETE {DISCARD, KEEP}
  2438.  
  2439. Specifies what to do with files that arrive incompletely: discard them or  keep
  2440. them.  They are normally discarded.
  2441.  
  2442.  
  2443. SET INPUT
  2444.  
  2445. Syntax: SET INPUT {CASE, DEFAULT-TIMEOUT, ECHO, TIMEOUT-ACTION}
  2446.  
  2447. SET INPUT controls the behavior of the script INPUT command (see the section on
  2448. scripts for more information):
  2449.  
  2450. SET INPUT CASE {IGNORE, OBSERVE}
  2451.     Says  whether or not to distinguish upper and lower case letters when doing
  2452.     a matchup in the INPUT command.  OBSERVE causes upper and lower  case  let-
  2453.     ters to be distinguished.  The default is to IGNORE case distinctions.
  2454.  
  2455. SET INPUT DEFAULT-TIMEOUT seconds
  2456.     Changes the waiting time from one second to this new value.
  2457.  
  2458. SET INPUT ECHO {ON, OFF}
  2459.     Show  on  the screen characters read from the serial port during the script
  2460.     operation, or not.  Default is ON, show them.
  2461.  
  2462. SET INPUT TIMEOUT-ACTION {PROCEED, QUIT}
  2463.     Determines  whether or not the current TAKE command file is to be continued
  2464.     or exited if a timeout occurs.  PROCEED  is  the  default  and  means  that
  2465.     timeouts are ignored.  QUIT causes the current script file to be exited and
  2466.     control passed to either the next higher level script  file  (if  there  is
  2467.     one) or to Kermit's main prompt.
  2468.  
  2469.  
  2470. SET KEY
  2471.  
  2472. Syntax: SET KEY key-specifier [key-definition]
  2473.   Also: SET KEY {ON, OFF, CLEAR}
  2474.  
  2475.     WARNING: The format and functions of this command have changed substan-
  2476.     tially since version 2.29B and earlier.  The changes were made in order
  2477.     to  allow  key  redefinition  to work on a wider variety of systems and
  2478.     keyboards without customization of the program  source  code  for  each
  2479.     configuration.  See section 1.10 for further details.
  2480.  
  2481. The  SET  KEY command is one of the most useful -- and confusing -- features of
  2482. MS-Kermit.  Typical uses:
  2483.  
  2484.    - You're used to having the ESC key in the upper  left  corner  of  the
  2485.      keyboard,  but  your new PC keyboard has an accent grave ("`") there.
  2486.      You can use SET KEY to make the accent key transmit an ESC,  and  you
  2487.      can assign accent grave to some other key.
  2488.  
  2489.    - You  send  a lot of electronic mail, and always sign it the same way.
  2490.      You can put your "signature" on a single key to save yourself  a  lot
  2491.      of repetitive typing.
  2492.  
  2493.    - You  must  set  up  your PC's function keys or numeric keypad to work
  2494.      properly with a host application.
  2495.  
  2496. The SET KEY command does these things and more, and SHOW KEY  gives  us  assis-
  2497. tance.  A key can be defined to:
  2498.  
  2499.    - send a single character other than what it would normally send,
  2500.    - send a string of multiple characters,
  2501.    - invoke a CONNECT-mode Kermit action verb,
  2502.    - send itself again.
  2503.  
  2504. SET KEY specifies that when the designated key is struck during terminal emula-
  2505. tion, the specified character or string is sent or the specified Kermit  action
  2506. verb  is  performed.    Key  definitions  operate  only  during CONNECT, not at
  2507. Kermit-MS> or DOS command level.
  2508.  
  2509. The key-specifier is the identification of the key expressed in  system-depend-
  2510. ent  terms.    This can be a letter, such as Q for the key which emits an upper
  2511. case Q, or the numeric ASCII value of the letter in  backslash  notation  (e.g.
  2512. "\81"),  or  else the numerical "scan code" observed by the system when the key
  2513. is pressed (e.g. "\3856" for Ctrl-Alt-Q on an IBM PC).    Material  printed  on
  2514. keycaps  is  not necessarily a guide to what the key-specifier should be.  When
  2515. the word CLEAR is used in place of a key-specifier,  all  key  definitions  are
  2516. cleared and then any built-in definitions are restored.
  2517.  
  2518. A string definition is one or more characters, including 8-bit values expressed
  2519. in backslash form, such as
  2520.  
  2521.     SET KEY \315 top \13 list\13    IBM F1 key sends "top <cr> list<cr>"
  2522.     SET KEY S L                     S key sends upper case L
  2523.     SET KEY T \27[m                 T key sends three bytes ESC [ m
  2524.  
  2525. The string begins with the first non-spacing character following the key  iden-
  2526. tification  and  continues  until  the  end  of line, exclusive of any trailing
  2527. spaces.  If a semicolon comment is used and the definition is given in  a  TAKE
  2528. file,  the  line  ends  at the last non-spacing character before the semicolon.
  2529. Curly braces, {...<}>, can be use to delimit the string in case  you  want  the
  2530. definition  to  include trailing spaces.  All text after the closing bracket is
  2531. ignored.  
  2532.  
  2533.     SET KEY \315 {login } this extra text is ignored
  2534.  
  2535. This manual does not contain a list of all the scan codes for all the  keys  on
  2536. all  the  keyboards  on  all  the PCs supported by MS-Kermit -- that would be a
  2537. manual in itself.  Rather, in order to obtain the key-specifier for the SET KEY
  2538. command, you must type a SHOW KEY command and press the desired key or key com-
  2539. bination.  This will report a scan code that you can use as the  key  specifier
  2540. in  a SET KEY command.  To do this for many keys is a laborious process, so you
  2541. should collect all your SET KEY commands into a file, which you  can  TAKE,  or
  2542. put them in your MSKERMIT.INI file.
  2543.  
  2544. If  you enter SET KEY by itself, with no key specifier, the command will prompt
  2545. you to press the selected key and again for the  definition  string.    Certain
  2546. characters,  like ESC and CR, may not be entered literally into the string, but
  2547. can be included by inserting escape codes of the form \nnn,  a  backslash  fol-
  2548. lowed by a 1- to 4-digit number corresponding to the ASCII value of the desired
  2549. character.  Where an ASCII digit follows directly  after  a  backslash  number,
  2550. confusion can be avoided by placing curly braces {} around the backslashed num-
  2551. ber; thus, \{27}5 represents the two ASCII characters ESC 5.
  2552.  
  2553. Here is an example of the use of SET KEY to assign ESC (ASCII 27) to the accent
  2554. grave key.  First the user gets the key-specifier for the key:
  2555.  
  2556.     Kermit-MS>show key
  2557.       Push key to be shown (? shows all): `
  2558.       ASCII char: ` \96 decimal is defined as
  2559.       Self, no translation.
  2560.     Free space: 145 keys and 96 string definitions, 894 string characters.
  2561.  
  2562. The free space report says that 145 more keys may be redefined, and up to 96 of
  2563. them may have multi-character strings assigned to them (as  opposed  to  single
  2564. characters),  and  that  there  are 894 bytes left for these strings, in total.
  2565. Confident that there is enough space left for a new key  definition,  the  user
  2566. proceeds:
  2567.  
  2568.     Kermit-MS>set key
  2569.       Push key to be defined: `
  2570.       Enter new definition: \27
  2571.  
  2572. Once  a key definition is constructed and tested, it may be entered on a single
  2573. line in a command file (such as MSKERMIT.INI):  
  2574.  
  2575.     set key \96 \27
  2576.  
  2577. To prevent accidents, SET KEY shows the current definition before asking for  a
  2578. new one; enter a Control-C to keep the current definition, or a carriage return
  2579. to undefine the key, or a query mark (?) to see available choices.
  2580.  
  2581. A more exact definition of SET KEY follows these construction rules:  
  2582.  
  2583.     SET KEY [<key-ident><whitespace><definition>]
  2584.  
  2585. where <key-ident> is:
  2586.  
  2587.        - a single ordinary printable ASCII character, or
  2588.        - the numerical equivalent of an ASCII character (ESC is \27), or
  2589.        - a scan code written as  a  backslashed  number  (e.g.  \3856  for
  2590.          Ctrl-Alt-Q), or
  2591.        - keyword  CLEAR which removes all current key definitions and then
  2592.          restores any built-in definitions.
  2593.        - ? (a question mark), which displays a help message.
  2594.  
  2595. Scan codes, non-printing ASCII characters, 8-bit characters, and  other  binary
  2596.     codes are written in backslash form (see Table 1-1 for ASCII codes):
  2597.  
  2598.     \123            a decimal number (decimal is the default number base)
  2599.     \d789           a decimal number (also \D)
  2600.     \o177           an octal number (also \O)
  2601.     \x0d            a hexadecimal number (also \X)
  2602.     \{b###}         braces  around  material  following  the  slash,  where the
  2603.                     numerical base letter b is d, o, x, or absent.
  2604.  
  2605. <whitespace> is one or more spaces and or tabs.
  2606.  
  2607. <definition> is:
  2608.  
  2609.     missing altogether which "undefines" a key.
  2610.  
  2611.     \number         (a number in backslash notation between 0 and 255  decimal)
  2612.                     - assigns a character with the corresponding 8-bit value.
  2613.  
  2614.     \Kverb          for a Kermit action verb; upper or lower case K is OK.
  2615.  
  2616.     \{Kverb}        Same.  Verb is the name of an action verb.
  2617.  
  2618.     text            a  string with allowed embedded whitespace and embedded bi-
  2619.                     nary chars as above.  This kind of string may not  commence
  2620.                     with sequences \K or \{K.  The string begins with the first
  2621.                     non-whitespace character and ends at the end  of  the  line
  2622.                     (exclusive of trailing spaces and comments).
  2623.  
  2624.     {text}          string  confined  to  material  within  but  excluding  the
  2625.                     braces.  Note, where the number of opening  braces  exceeds
  2626.                     the number of closing braces the end of line terminates the
  2627.                     string:  
  2628.  
  2629.                         {ab{}{{c}d ==> ab{}{{c}d
  2630.  
  2631.                     but 
  2632.  
  2633.                         {ab}{{c}d ==> ab
  2634.  
  2635.     ?               Displays help message and lists all action verbs.
  2636.  
  2637.     Control-C       Quits the Set Key command without making changes.
  2638.  
  2639. Curly braces can be used to separate backslash numbers from regular ASCII text,
  2640. such as when we want to send the two bytes ESC 8 (ESC is decimal 27):
  2641.  
  2642.     SET KEY T \{27}8
  2643.     SET KEY L {words \{27}8 more words} trailing junk to be ignored
  2644.  
  2645. If a string begins with a left curly brace then Kermit counts them and ends the
  2646. string on the matching right curly brace (or end of line); the SET  KEY  L  ex-
  2647. ample  above  relies on brace matching to omit the trailing comment.  The outer
  2648. curly brace delimiters are not sent but the inner ones are; for example:
  2649.  
  2650.     SET KEY U {a {b}\{27}8}         sends the 7 bytes "a {b}ESC8"
  2651.     SET KEY U a{ {b}\{27}8}         sends the 9 bytes "a{ {b}ESC8}"
  2652.     SET KEY U a{ {b}\{{27}}8}       sends the 15 bytes "a{ {b}\{{27}}8}"
  2653.  
  2654. A definition is removed, that is a key is defined as itself, by giving an empty
  2655. definition:
  2656.  
  2657.     SET KEY q                       q key sends q again
  2658.     SET KEY \331                    IBM left arrow key is undefined.
  2659.  
  2660. The  keyboard  can  be restored to its startup state, that is all redefinitions
  2661. removed and all built-in defitions restored, by  using  the  keyword  CLEAR  in
  2662. place of the key identification:  
  2663.  
  2664.     SET KEY CLEAR
  2665.  
  2666. Undefined  keys  which do not send ASCII characters are trapped by the keyboard
  2667. translator and are rejected; a beep results from using an  undefined  non-ASCII
  2668. key.
  2669.  
  2670. SET  KEY  OFF directs MS-Kermit to read keycodes from DOS, rather than BIOS, so
  2671. that console drivers like ANSI.SYS that operate at the DOS level  may  be  used
  2672. during  Kermit CONNECT sessions.  This would also apply to any special keyboard
  2673. replacements that come with DOS-level drivers.  SET KEY ON turns key definition
  2674. back on, and returns Kermit to processing keystrokes at the BIOS level.
  2675.  
  2676.  
  2677. Kermit Action Verbs:
  2678.  
  2679. An  action  verb is the shorthand expression for a named Kermit procedure, such
  2680. as "generate the proper sequence for a left  arrow,"  "show  status,"  "send  a
  2681. BREAK,"  and  others; verbs are complex actions and each verb has a name.  In a
  2682. key definition the verb name is preceeded by backslash K (\K)  to  avoid  being
  2683. confused with a string.  Verbs and strings cannot be used together on a key.
  2684.  
  2685.     SET KEY \331 \Klfarr
  2686.     SET KEY \2349 \Kexit
  2687.  
  2688. makes  the IBM keyboard left arrow key execute the verb named lfarr which sends
  2689. the proper escape sequence for a VT102 left arrow key (which changes  depending
  2690. on  the internal state of the VT102).  The leading \K identifies the definition
  2691. as a Kermit verb, so no string can start as \K or as \{K in upper or lower case
  2692. (use  \92K).  The second example has Alt-X invoking the Leave-Connect-Mode verb
  2693. "exit" (same as Kermit escape character "^]" followed by C).
  2694.  
  2695. Each system has its own list of verbs and predefined keys.    Table  1-4  shows
  2696. those available for the IBM PC family (there are also some additional verbs for
  2697. reassigning Heath or VT100 function keys, see section 1.15.2).    The  SET  KEY
  2698. command  shows  the list of available verbs when a query mark (?) is given as a
  2699. definition.  SHOW KEY displays  all  currently  defined  keys  or  individually
  2700. selected ones; SHOW KEY can be executed only interactively.
  2701.  
  2702. -------------------------------------------------------------------------------
  2703.  
  2704.  
  2705.   Verb           Meaning
  2706.   \Kupscn        Roll up (back) to previous screen
  2707.   \Kdnscn        Roll down (forward) to next screen
  2708.   \Khomscn       Roll up to top of screen memory
  2709.   \Kendscn       Roll down to end of screen memory (current position)
  2710.   \Kupone        Roll screen up one line
  2711.   \Kdnone        Roll screen down one line
  2712.   \Kprtscn       Print the current screen
  2713.   \Kdump         Append the current screen to dump file
  2714.   \Klogoff       Turn off session logging
  2715.   \Klogon        Turn on session logging
  2716.   \Ktermtype     Toggle terminal type
  2717.   \Kreset        Reset terminal emulator to initial state
  2718.   \Kmodeline     Toggle modeline off/on
  2719.   \Kbreak        Send a BREAK signal
  2720.   \Klbreak       Send a "long BREAK" signal
  2721.   \Khangup       Drop DTR so modem will hang up phone
  2722.   \Knull         Send a null (ASCII 0)
  2723.   \Kdos          "Push" to DOS
  2724.   \Khelp         Display CONNECT help message
  2725.   \Kstatus       Display STATUS message
  2726.   \Kexit         Escape back from CONNECT mode
  2727.   \Kgold,\Kpf1   VT102 keypad function key PF1
  2728.   \Kpf2..\Kpf4   VT102 keypad function keys
  2729.   \Kkp0..\Kkp9   VT102 keypad numeric keys
  2730.   \Kkpdot,\Kkpminus,\Kkpcoma,\Kkpenter   Other VT102 keypad keys
  2731.   \Kuparr,\Kdnarr,\Klfarr,\Krtarr   VT102 cursor (arrow) keys
  2732.  
  2733.               Table 1-4:   Kermit-MS Verbs for the IBM PC Family
  2734.  
  2735. -------------------------------------------------------------------------------
  2736.  
  2737. Some  systems  have  preset key definitions when Kermit first begins (those for
  2738. the IBM PC are shown in section 1.15.2).  You can find out  what  they  are  on
  2739. your  system  by typing SHOW KEY, and then question mark on the next line.  You
  2740. may supplement or change the predefined keys with SET KEY commands typed inter-
  2741. actively or in MSKERMIT.INI or other command files.
  2742.  
  2743. The  MS-Kermit  CONNECT command may be used in conjunction with certain console
  2744. drivers that do their  own  key  redefinitions.    Since  MS-Kermit  intercepts
  2745. keystrokes at the BIOS level, drivers like ANSI.SYS which work at the DOS level
  2746. will have no effect during CONNECT, even though they work at MS-Kermit  command
  2747. level.    Other  drivers, like SuperKey and ProKey, work at the BIOS level, and
  2748. their key assignments will remain effective during  Kermit  terminal  sessions,
  2749. and additional Kermit SET KEY assignments may be made "on top" of them.
  2750.  
  2751.  
  2752. SET LOCAL-ECHO
  2753.  
  2754. Syntax: SET LOCAL-ECHO {ON, OFF}
  2755.  
  2756. Specify  how  characters  are echoed during terminal emulation on the currently
  2757. selected port.  ON specifies that characters are  to  be  echoed  by  Kermit-MS
  2758. (because  neither the remote computer nor the communications circuitry has been
  2759. requested to echo), and is appropriate for half-duplex connections.  LOCAL-ECHO
  2760. is OFF by default, for full-duplex, remote echo operation.
  2761.  
  2762.  
  2763. SET MODE-LINE
  2764.  
  2765. Syntax: SET MODE-LINE {ON, OFF}
  2766.  
  2767. On  systems,  like the IBM PC family, which are capable of displaying a status,
  2768. or "mode" line on the 25th line during terminal connection, disable  or  enable
  2769. this  function.    This  command has no effect on systems that do not display a
  2770. mode line during connect.
  2771.  
  2772. The mode line shows several important facts about the  connection,  like  which
  2773. port  is  being  used,  the baud rate and parity, the current escape character,
  2774. etc.  When the mode line is enabled, it may be turned on and off using the CON-
  2775. NECT escape-level command M or the Kermit verb "modeline".
  2776.  
  2777. The  mode  line occupies the 25th line of those systems that have such a thing,
  2778. and is not affected by scrolling (on some systems that have large screens,  the
  2779. mode  line  should appear on whatever the bottom line is, e.g. the 43rd).  When
  2780. emulating a VT102 or Heath-19, Kermit will allow the host to address  the  25th
  2781. line  directly using cursor positioning commands.  If this happens, Kermit will
  2782. remove its mode line and relinquish control of the 25th line to the host (as if
  2783. you had typed SET MODE OFF).  When no terminal is being emulated, the 25th line
  2784. (if any) is available for scrolling.  If the mode line is disabled  by  an  ap-
  2785. plication  or  by the command SET MODE OFF then the only way to revive Kermit's
  2786. mode line display is to give the command SET MODE ON.  On IBM systems  support-
  2787. ing  different  length  displays, the host needs to address the bottom line ex-
  2788. plicitly.  Also, note the line is saved  and  restored  when  CONNECT  mode  is
  2789. exited  and  reentered  so an old "fossil" mode line may reappear unexpectedly.
  2790. If this happens, you can escape back to the Kermit prompt,  say  SET  MODE  ON,
  2791. CONNECT, and toggle it off ("^]M") to clear the line.
  2792.  
  2793.  
  2794. SET PARITY
  2795.  
  2796. Syntax: SET PARITY {EVEN, ODD, MARK, SPACE, NONE}
  2797.  
  2798. Specify  the  character parity to be used on the currently selected port.  NONE
  2799. means no parity processing is done, and the 8th bit of each  character  can  be
  2800. used  for  data  when  transmitting binary files.  This is the normal case.  If
  2801. parity is other than none, then there will be 7 data bits (use of parity with 8
  2802. data bits is not supported).
  2803.  
  2804. If  you  have  set parity to ODD, EVEN, MARK, or SPACE, then Kermit-MS will re-
  2805. quest that binary files be transferred using 8th-bit-prefixing.  If  the  other
  2806. Kermit  knows  how  to do 8th-bit-prefixing (this is an optional feature of the
  2807. Kermit protocol, and some implementations of Kermit don't have it), then  8-bit
  2808. binary  files  can be transmitted successfully.  If NONE is specified, 8th-bit-
  2809. prefixing will not be requested.  Note that there  is  no  advantage  to  using
  2810. parity.    It  reduces  Kermit's file transfer efficiency without providing ad-
  2811. ditional error detection.  The SET PARITY command is  provided  only  to  allow
  2812. Kermit  to  adapt to conditions where parity is required, or 8-bit transmission
  2813. is otherwise thwarted.
  2814.  
  2815. You will need to SET PARITY to ODD, EVEN, MARK, or  possibly  SPACE  when  com-
  2816. municating  with a system, or over a network, or through modems, concentrators,
  2817. multiplexers, or front ends that require or impose character parity on the com-
  2818. munication  line.   For instance, most IBM mainframe computers use EVEN or MARK
  2819. parity; Telenet normally uses MARK parity.  If you neglect to SET  PARITY  when
  2820. the  communications  equipment  requires  it,  the symptom may be that terminal
  2821. emulation works (well or maybe only partially), but file transfer or script IN-
  2822. PUT commands do not work at all.
  2823.  
  2824. If parity is in use, then the display during terminal emulation, as well as any
  2825. session log, will be 7-bit ASCII, unless you have SET DEBUG ON (q.v.).
  2826.  
  2827. There may be situations in which you require 7-bit ASCII with no parity  during
  2828. terminal  emulation,  but  still  want  to  force 8th bit prefixing during file
  2829. transfer.  To accomplish this, SET PARITY SPACE.
  2830.  
  2831. The INPUT and TRANSMIT commands use 7 or 8 bits if parity is NONE, according to
  2832. the  SET DISPLAY command, and this may upset recognition of received characters
  2833. when the host unexpectedly sends them with its own parity.
  2834.  
  2835.  
  2836. SET PORT
  2837.  
  2838. Syntax: SET PORT {number, COM1, COM2, NET [nodename]}
  2839.  
  2840. On machines with more than one communications port, select the port to use  for
  2841. file  transfer and CONNECT.  This command lets you use a different asynchronous
  2842. adapter, or switch between two or more  simultaneous  remote  sessions.    Sub-
  2843. sequent  SET  BAUD, PARITY, HANDSHAKE, FLOW, and LOCAL-ECHO commands will apply
  2844. to this port only -- each port remembers its own parameters, so  that  you  may
  2845. set  them for each port and then switch between ports conveniently with the SET
  2846. PORT command.
  2847.  
  2848. SET PORT 1 selects COM1, SET PORT 2 selects COM2.  All versions default to port
  2849. 1,  except  for  the  IBM  PCjr, which uses port 2 if its internal modem is in-
  2850. stalled.  Additionally, COM3 and COM4 are supported for IBM PC's if the  system
  2851. is informed of their presence (as explained in Section 1.16.3).
  2852.  
  2853. In  "generic" MS-DOS Kermit, the following alternate forms allow you to experi-
  2854. ment with device names or numbers until you find the communication port:  
  2855.  
  2856.     SET PORT {DEVICE, FILE-HANDLE}
  2857.  
  2858. Just type a carriage return after either of these commands,  and  you  will  be
  2859. prompted for a device name or a numeric port-handle.  Keep trying till you find
  2860. one that works. File-handle 3, the system auxillary device, is conventional  on
  2861. many machines, as are device names COM1, COM2, and AUX.
  2862.  
  2863. MS-Kermit  for  the  IBM  PC family is able to operate over local area networks
  2864. through the NetBIOS interface.  The command 
  2865.  
  2866.     SET PORT NET [nodename]
  2867.  
  2868. redirects communications the LAN board installed in the local computer and  the
  2869. associated NetBIOS emulator software, if active, rather than the serial port or
  2870. the COM device driver.  It installs a unique Kermit node name in the local LAN,
  2871. so  that  other  nodes  can  refer to it when files are transferred or terminal
  2872. emulation is done.  This name is displayed when you give the SET PORT NET  com-
  2873. mand.    The server should use SET PORT NET, and the client should use SET PORT
  2874. NAME nodename, specifying the server's name,  e.g.  CHRIS.K.    Note  that  al-
  2875. phabetic case is significant in node names!
  2876.  
  2877. Both  the regular serial port and a network connection can be kept alive simul-
  2878. taneously; clearly, only one can be used at a time under MS-DOS.  MS-DOS 3.x is
  2879. not  required  for Kermit network usage, but most LANS do need DOS 3.1 or later
  2880. for conventional file server work.  Kermit needs only the NetBIOS emulator net-
  2881. work software.
  2882.  
  2883.  
  2884. SET PROMPT
  2885.  
  2886. Syntax: SET PROMPT [string]
  2887.  
  2888. This  command  allows  you  to  change the MS-DOS Kermit program's prompt.  The
  2889. string may be enclosed in curly braces.  Control characters like ESC can be in-
  2890. cluded as backslashed numbers like "\27".  ANSI.SYS and similar console drivers
  2891. can be programmed through this command.  The  string  must  be  less  than  128
  2892. characters.    If  the  string is omitted (missing) Kermit's original prompt of
  2893. "Kermit-MS>" is restored.
  2894.  
  2895.  
  2896. SET RECEIVE
  2897.  
  2898. Syntax: SET RECEIVE parameter value
  2899.  
  2900. This command lets you modify the ways in which MS-Kermit asks the other  Kermit
  2901. to behave.  That is, it controls the file transfer protocol options for packets
  2902. sent to MS-Kermit by the other Kermit.  The parameters and values  you  specify
  2903. in the SET RECEIVE command are sent to the other Kermit during initial negotia-
  2904. tions.
  2905.  
  2906. END-OF-LINE number
  2907.         ASCII value of packet terminator to look for on incoming packets.  Nor-
  2908.         mally carriage return.  Use this command if the other  Kermit  is  ter-
  2909.         minating its packets with some other control character.
  2910.  
  2911. PACKET-LENGTH number
  2912.         Ask the remote Kermit to use the specified maximum length  for  packets
  2913.         that  it  sends to Kermit-MS.  The normal length is 94 bytes.  Use this
  2914.         command to shorten packets if the communication line is noisy  or  ter-
  2915.         minal  buffers somewhere along the path are too small.  Shorter packets
  2916.         decrease the probability that a particular packet  will  be  corrupted,
  2917.         and will reduce the retransmission overhead when corruption occurs, but
  2918.         will increase the protocol overhead.
  2919.  
  2920.         If a length greater than 94 is  specified,  a  protocol  option  called
  2921.         "long  packets"  will  be used, provided the other Kermit also supports
  2922.         it.  Kermit-MS handles extended-length packets up to 1000  bytes  long.
  2923.         Long Packets can improve efficiency by reducing the per-packet overhead
  2924.         for a file, but they will not be used unless you  issue  this  command.
  2925.         Before  using  this option, ensure that the equipment on the communica-
  2926.         tions pathway can absorb a long packet,  and  that  the  connection  is
  2927.         clean  (retransmission of long packets is expensive!).  You should also
  2928.         SET BLOCK-CHECK 2 or 3 for more reliable error checking.
  2929.  
  2930. PADCHAR number
  2931.         Ask  the remote Kermit to use the given control character (expressed as
  2932.         a decimal number 0-31, or 127)  for  interpacket  padding.    Kermit-MS
  2933.         should never require any padding.
  2934.  
  2935. PADDING number
  2936.         Ask the remote Kermit to insert the given number of padding  characters
  2937.         before  each  packet it sends.  MS-Kermit never needs padding, but this
  2938.         mechanism might be required  to  keep  some  intervening  communication
  2939.         equipment happy.
  2940.  
  2941. START-OF-PACKET number
  2942.         If the remote Kermit will be marking the beginning of  packets  with  a
  2943.         control  character  other  than  Control-A,  use  this  command to tell
  2944.         Kermit-MS about it (the number should be the decimal ASCII value  of  a
  2945.         control  character).   This will be necessary only if the hosts or com-
  2946.         munication equipment involved cannot pass a Control-A through as  data,
  2947.         or  if some piece of communication equipment is echoing packets back at
  2948.         you.
  2949.  
  2950. TIMEOUT number
  2951.         Ask  the remote Kermit to time out after the given number of seconds if
  2952.         a packet expected from Kermit-MS has not arrived.  Use this command  to
  2953.         change the other Kermit's normal timeout interval.
  2954.  
  2955.  
  2956. SET REMOTE
  2957.  
  2958. Syntax: SET REMOTE {ON, OFF}
  2959.  
  2960. SET  REMOTE  ON removes the file transfer display (as if you had given the com-
  2961. mand SET DISPLAY QUIET).  It should be used when you are running  Kermit-MS  in
  2962. remote mode when coming in from another PC through the Kermit-MS's "back port",
  2963. to which the console has been reassigned using the DOS CTTY command, e.g.  
  2964.  
  2965.     CTTY COM1
  2966.  
  2967. It is necessary to issue the SET REMOTE ON command because (a) Kermit-MS has no
  2968. way  of  knowing that its console has been redirected, and (b) when the console
  2969. is the same as the port, the file transfer display will interfere with the file
  2970. transfer  itself.    SET  REMOTE  OFF  returns the file transfer display to its
  2971. preferred style (REGULAR or SERIAL).  When you SET REMOTE ON,  you  might  also
  2972. want  to  SET  DELAY 5 or thereabouts, to allow yourself time to escape back to
  2973. the local system before MS-Kermit starts sending packets.
  2974.  
  2975. WARNING: During CTTY console redirection, many programs  still  output  to  the
  2976. real  screen  and require input from the real keyboard and will hang the system
  2977. until keyboard requests are satisfied.  On the IBM PC, CTTY CON returns control
  2978. to  the  normal keyboard and screen (other systems may use other device names).
  2979. See section 1.16.4 for further details about remote operation.
  2980.  
  2981.  
  2982. SET RETRY
  2983.  
  2984. Syntax: SET RETRY number
  2985.  
  2986. Sets the number of times a packet is retransmitted before  the  protocol  gives
  2987. up.   The number of retries can be between 1 and 63, and is 5 by default.  This
  2988. is an especially useful parameter when the communications line is noisy or  the
  2989. remote host is very busy.  The initial packet of a file exchange is given three
  2990. times as many retries to allow both systems to become ready.
  2991.  
  2992.  
  2993. SET SEND
  2994.  
  2995. Syntax: SET SEND parameter value
  2996.  
  2997. The SET SEND command is primarily used to override negotiated protocol options,
  2998. or to establish them before they are negotiated.
  2999.  
  3000. END-OF-LINE number
  3001.         ASCII value of packet terminator to put on outbound packets.   Normally
  3002.         carriage  return.  Use this command if the other Kermit needs its pack-
  3003.         ets terminated with a nonstandard control character.
  3004.  
  3005. PACKET-LENGTH number
  3006.         Use this as the maximum length for outbound packets, regardless of what
  3007.         was negotiated with the other Kermit.  Normally,  you  would  use  this
  3008.         command  only  to  send shorter packets than the other Kermit requests,
  3009.         because you know something the other Kermit doesn't know, e.g.  there's
  3010.         a device on the communication path with small buffers.
  3011.  
  3012. PADCHAR number
  3013.         Use the specified control character  for  interpacket  padding.    Some
  3014.         hosts  may require some padding characters (normally NUL or DEL) before
  3015.         a packet, and certain front ends or other communication  equipment  may
  3016.         need  certain  control  characters to put them in the right modes.  The
  3017.         number is the ASCII decimal value of the padding character, (0 - 31, or
  3018.         127).
  3019.  
  3020. PADDING number
  3021.         How many copies of the pad character to send before each  packet,  nor-
  3022.         mally zero.
  3023.  
  3024. PAUSE number
  3025.         How many milliseconds to pause before sending each packet, 0-127,  nor-
  3026.         mally  zero.    This helps half-duplex systems prepare for reception of
  3027.         our packet.  Padding characters are sent only after the time limit  ex-
  3028.         pires.
  3029.  
  3030. QUOTE number
  3031.         Use the indicated printable character for prefixing  (quoting)  control
  3032.         characters and other prefix characters.  The only reason to change this
  3033.         would be for sending a very long  file  that  contains  very  many  "#"
  3034.         characters (the normal control prefix) as data.
  3035.  
  3036. START-OF-PACKET number
  3037.         Mark the beginning of outbound  packets  with  some  control  character
  3038.         other than Control-A.  This will be necessary if the remote host or the
  3039.         communication channel cannot accept a  Control-A  as  data,  or  if  it
  3040.         echoes  back  your  packets.   The remote host must have been given the
  3041.         corresponding SET RECEIVE START-OF-PACKET command.
  3042.  
  3043. TIMEOUT number
  3044.         Change  Kermit-MS's  normal timeout interval; this command is effective
  3045.         only if TIMER is set to be ON; it is normally ON so that  both  Kermits
  3046.         can control timeouts.  When the timer is ON, the default interval is 13
  3047.         seconds.
  3048.  
  3049.  
  3050. SET SPEED
  3051.  
  3052. Syntax: SET SPEED rate
  3053.  
  3054. Same as SET BAUD, q.v.
  3055.  
  3056.  
  3057. SET TAKE-ECHO
  3058.  
  3059. Syntax: SET TAKE-ECHO {ON, OFF}
  3060.  
  3061. Specifies whether screen display should occur during implicit or explicit  TAKE
  3062. operations on MSKERMIT.INI or other Kermit-MS command files, and during evalua-
  3063. tion of macro definitions by the DO command.  Handy for finding errors in  TAKE
  3064. files or macro definitions.
  3065.  
  3066.  
  3067. SET TERMINAL
  3068.  
  3069. Syntax: SET TERMINAL parameter [value]
  3070.  
  3071. This  command  controls  most  aspects  of  terminal  emulation.    Most of the
  3072. parameters are only settable (or meaningful) on the  IBM  PC  family  and  com-
  3073. patibles.   (Programmers who are proficient on other MS-DOS systems are invited
  3074. to fill in these functions for those systems  and  send  the  results  back  to
  3075. Columbia.)   On other systems, built-in setup modes or DOS commands can be used
  3076. to accomplish the same functions.
  3077.  
  3078. The first group of parameters tells which kind of terminal to  emulate.    When
  3079. Kermit-MS uses its built-in software for emulation, incoming characters are ex-
  3080. amined for screen control commands (escape sequences)  specific  to  that  ter-
  3081. minal, and if encountered, the commands are executed on the PC screen.
  3082.  
  3083. NONE    Act  as  a  dumb terminal.  All incoming characters will be sent to the
  3084.         screen "bare", as-is, through DOS.  If you have loaded a device  driver
  3085.         into DOS for the CON device, such as ANSI.SYS, then that driver will be
  3086.         able to interpret the codes itself.  Many non-IBM  systems  have  their
  3087.         own  screen  control  code  interpreter  built into DOS or firmware, or
  3088.         available as a loadable device driver.
  3089.  
  3090. VT52    The DEC VT-52 terminal.
  3091.  
  3092. HEATH   The Heath/Zenith-19 terminal (H19), which supports all  the  VT52  com-
  3093.         mands, plus line and character insert/delete editing functions, an ANSI
  3094.         mode, and a 25th line.
  3095.  
  3096. VT102   The DEC VT102 (ANSI) terminal, which is the same as a  VT100  but  also
  3097.         supports   line/character  insert/delete  editing  functions  and  ANSI
  3098.         printer controls.
  3099.  
  3100. TEK4010 A Tektronix 4010 graphics terminal.  Currently only available  on  IBM,
  3101.         TI, and Victor PCs.  On the IBM family, Kermit automatically senses and
  3102.         adapts to the CGA, EGA, or Hercules color board.
  3103.  
  3104. The specific escape sequences supported by Kermit for each  of  these  terminal
  3105. types  are  listed in section 1.15.1.  Note that when a Kermit program includes
  3106. Tektronix emulation, this can be invoked automatically while in character  mode
  3107. (VT102, VT52, or Heath emulation) when the emulator receives certain escape se-
  3108. quences.  This can be turned off using the DISABLE TEK command.
  3109.  
  3110. The remaining SET TERMINAL commands specify setup options for the selected ter-
  3111. minal:
  3112.  
  3113. CHARACTER-SET {UK, US}
  3114.         UK displays "#" (ASCII 35, number sign) as a pound  sterling  sign,  US
  3115.         displays "#" as "#".  This command applies during VT100/102 emulation.
  3116.  
  3117. COLOR number [, number [, number]]
  3118.         Several numbers, applied in left to right sequence, separated by commas
  3119.         or spaces:
  3120.  
  3121.           0   Reset  the colors to normal intensity white characters on a black
  3122.               background and use the "no-snow" mode on the IBM  Color  Graphics
  3123.               Adapter (CGA).
  3124.           1   High intensity foreground
  3125.           10  Request fast screen updating for use on the IBM Mono, EGA, or PGA
  3126.               (usually sensed and set internally by Kermit), and  some  non-IBM
  3127.               CGAs.
  3128.           3x  Foreground color
  3129.           4x  Background color
  3130.  
  3131.         where  x is a single digit from 0 to 7, which is the sum of the desired
  3132.         colors:
  3133.  
  3134.           1   Red
  3135.           2   Green
  3136.           4   Blue
  3137.  
  3138.         Example: 0, 1, 37, 44 on an IBM CGA would produce bold white characters
  3139.         on  a blue field with no snow. The snow removal business has to do with
  3140.         whether the program should synchronize with vertical retrace  when  up-
  3141.         dating  screen  memory.   This is necessary with certain color adaptors
  3142.         (like the CGA) and unnecessary for others (like the EGA).
  3143.  
  3144. CURSOR-STYLE {BLOCK, UNDERLINE}
  3145.         Sets  the cursor rendition to your preference.  Note that on some early
  3146.         IBM PCs and compatibles, the cursor may not be restored correctly after
  3147.         escaping back from CONNECT because of a bug in the early IBM BIOS.
  3148.  
  3149. KEYCLICK {ON, OFF}
  3150.         Turns electronic keyclick ON or OFF.  If your keyboard has a mechanical
  3151.         clicker  (as IBM boards do), you may not notice the effect of this com-
  3152.         mand.
  3153.  
  3154. MARGIN-BELL {ON, OFF}
  3155.         Controls  whether  the  bell  should  be sounded when the cursor passes
  3156.         column 72 near the right screen margin; wider displays set the  bell  8
  3157.         columns from the right edge.
  3158.  
  3159. NEWLINE-MODE {ON, OFF}
  3160.         ON sends a carriage-return-linefeed combination (CRLF)  when  you  type
  3161.         carriage  return  (CR)  during  terminal emulation.  OFF (default) just
  3162.         sends a CR when you type CR.
  3163.  
  3164. ROLL {ON, OFF}
  3165.         ON  unrolls  the screen to the bottom before adding new material if the
  3166.         screen had been rolled back, e.g. by Ctrl-PgUp.  ROLL OFF (the default)
  3167.         displays  new  material on the current screen, possibly overwriting old
  3168.         material.
  3169.  
  3170. SCREEN-BACKGROUND {NORMAL, REVERSE}
  3171.         NORMAL  means  dark  background, light characters.  REVERSE means light
  3172.         background, dark characters.
  3173.  
  3174. TAB {AT n, CLEAR AT n, CLEAR ALL}
  3175.         Sets  tab  stops or clears one or all tab stops; n is the numeric posi-
  3176.         tion of the tab to be set or cleared.  By default,  tabs  are  every  8
  3177.         spaces,  at positions 9, 17, 25, etc.  Only meaningful when emulating a
  3178.         terminal that has settable  tabs  (the  VT52  doesn't  really  but  the
  3179.         emulator  can set them anyway).  More than one tabstop may be specified
  3180.         by separating column numbers with commas, spaces, or tabs.  132 columns
  3181.         are supported.
  3182.  
  3183. WRAP {ON, OFF}
  3184.         ON automatically breaks screen lines (by inserting a  CRLF)  when  they
  3185.         reach  the  right  margin.    OFF disables wrapping -- if a line is too
  3186.         long, the excess characters go off the screen.  WRAP is OFF by default,
  3187.         since most hosts format lines to fit on your screen.
  3188.  
  3189.  
  3190. SET TIMER
  3191.  
  3192. Syntax: SET TIMER {ON, OFF}
  3193.  
  3194. This command enables or disables the timer that is used during file transfer to
  3195. break deadlocks that occur when expected packets do not arrive.    By  default,
  3196. the  timer  is  ON.   If the other Kermit is providing timeouts, you can safely
  3197. turn the timer OFF to avoid packet collisions that might occur when two  timers
  3198. go off simultaneously.
  3199.  
  3200.  
  3201. SET TRANSLATION
  3202.  
  3203. Syntax: SET TRANSLATION INPUT {ON, OFF, char1 char2}
  3204.  
  3205. This  command  provides  multi-language  support  (and  perhaps  other  special
  3206. effects) during CONNECT, and during execution of the INPUT, OUTPUT, PAUSE,  and
  3207. TRANSMIT  script commands, but not during file transfer or at MS-Kermit command
  3208. level.  A character that arrives at the  communication  port  (char1)  will  be
  3209. translated  to another character (char2) before display on the screen.  As many
  3210. as 256 characters may have translations specified concurrently.    But  to  see
  3211. characters  with  ASCII values higher than 127, you must also SET DISPLAY 8 and
  3212. SET PARITY NONE.
  3213.  
  3214. SET TRANSLATION INPUT ON enables translation (the keyword INPUT is required  to
  3215. allow  future translation mechanisms).  OFF disables the translation and is the
  3216. default.  So even if you have set up a translation table, you must  SET  TRANS-
  3217. LATION  INPUT  ON  before  it will take effect.  SHOW TRANSLATION tells whether
  3218. translation is OFF or ON, and displays any current table entries.
  3219.  
  3220. Translation table entries are made by specifying byte pairs in ASCII or numeric
  3221. backslash form:  
  3222.  
  3223.     SET TRANS INPUT \3 \13
  3224.  
  3225. converts  incoming  ASCII  ETX characters (decimal 3) to ASCII CR (decimal 13).
  3226. 8-bit values are allowed, and refer to characters in the "upper  half"  of  the
  3227. PC's character set, either the ROM characters supplied with the PC or else sub-
  3228. stitutions provided by a special device driver.
  3229.  
  3230. A more practical example shows how the user of a German PC could  use  the  SET
  3231. TRANSLATION  and  SET KEY commands to make the PC's umlaut-a key (key code 132)
  3232. send a left curly brace ("{", ASCII 123), and to display incoming curly  braces
  3233. as umlaut-a's:
  3234.  
  3235.     SET KEY \d132 \d123
  3236.     SET TRANS INP { \d132
  3237.  
  3238. (This  example  applies  to  the IBM PC German keyboard, and assumes the German
  3239. keyboard  driver,  KEYBGR,  has  been  loaded.    This  is  usually   done   in
  3240. AUTOEXEC.BAT.)
  3241.  
  3242.  
  3243. SET WARNING
  3244.  
  3245. Syntax: SET WARNING {ON, OFF}
  3246.  
  3247. Specify  what  to do when an incoming file is about to be stored under the same
  3248. name as an existing file in the target device and directory.    If  ON,  Kermit
  3249. will  warn you when an incoming file has the same name as an existing file, and
  3250. automatically rename the incoming file (as indicated in the warning message) so
  3251. as  not to destroy (overwrite) any existing one.  If OFF, the pre-existing file
  3252. is destroyed, even if the incoming file does not arrive completely.  WARNING is
  3253. ON by default as a safety measure.
  3254.  
  3255. The  new  name  is  formed by adding numbers to the part of the name before the
  3256. dot.    For  instance,  ABC.TXT  becomes  ABC00001.TXT,  ABC00001.TXT   becomes
  3257. ABC00002.TXT, etc.
  3258.  
  3259.  
  3260. The STATUS Command
  3261.  
  3262. Syntax: STATUS
  3263.  
  3264. The  STATUS  command displays the values of all the current SET options.  There
  3265. are currently no operands for the STATUS command.  It always displays  all  the
  3266. options, and the display fills the screen.
  3267.  
  3268.  
  3269. The SHOW Command
  3270.  
  3271. Syntax: SHOW option
  3272.  
  3273. Most  parameters  that  may  be  altered with SET commands are displayed by the
  3274. STATUS command.  The SHOW command is used for displaying macro definitions, key
  3275. redefinitions, file transfer statistics, and translations.
  3276.  
  3277. SHOW MACROS
  3278.         displays the definitions of all currently defined macros,  as  well  as
  3279.         the amount of space left for new macro definitions.
  3280.  
  3281. SHOW KEY
  3282.         allows you to determine a key's identification code and  what  it  will
  3283.         send in CONNECT mode, most useful for obtaining the identification of a
  3284.         key when SET KEY commands will be placed in a TAKE FILE.  This  command
  3285.         can  be  done  only  interactively  (use  a ? to see all defined keys).
  3286.         Refer to the terminal emulation section for examples.
  3287.  
  3288. SHOW MODEM
  3289.         displays  the  status  of  the  modem signals DSR (dataset ready, modem
  3290.         tells the PC that it is turned on and in  data  mode),  CTS  (clear  to
  3291.         send,  modem  grants  the  PC permission to send data), and CD (carrier
  3292.         detect, local modem tells the PC that it is  connected  to  the  remote
  3293.         modem).  The results may be misleading if your asynchronous adapter, or
  3294.         the connector or cable that is attached to it, is  strapped  to  supply
  3295.         these modem signals itself.
  3296.  
  3297. SHOW STATISTICS
  3298.         displays counts of characters sent and received during file  transfers,
  3299.         for  both  the  most recent transfer and the entire session, and an es-
  3300.         timate of the average baud rate while sending and listening.
  3301.  
  3302. SHOW TRANSLATION
  3303.         displays  the  entries in the 256 byte input translation table.  Values
  3304.         are expressed numerically to avoid  confusion  with  different  display
  3305.         adapters, and the command shows only entries for which input and output
  3306.         codes differ.
  3307.  
  3308.  
  3309. 1.7. SCRIPTS
  3310.  
  3311. A script is a file containing Kermit commands to be executed.  It is  the  same
  3312. as a TAKE file, in Kermit terminology, but includes INPUT, OUTPUT, PAUSE, ECHO,
  3313. and CLEAR commands to automatically detect and respond to  information  flowing
  3314. though  the serial port, actions which otherwise would be performed by the user
  3315. during CONNECT.  The login sequence of a host computer is a classical example.
  3316.  
  3317. The script commands INPUT, OUTPUT, PAUSE, and ECHO may be terminated by  typing
  3318. Control-C at the keyboard.
  3319.  
  3320.  
  3321. The CLEAR command
  3322.  
  3323. Syntax: CLEAR
  3324.  
  3325. The  CLEAR command flushes the buffers of the serial port to forget any earlier
  3326. material to help the INPUT command with a  clean  start.    (This  command  was
  3327. called  CLRINP  in 2.29B and earlier, and CLEAR was used to erase macro and key
  3328. definition memory).
  3329.  
  3330.  
  3331. The INPUT command
  3332.  
  3333. Syntax: INPUT [timeout] {search-string | @filespec}
  3334.  
  3335. INPUT is the most powerful of the script commands.  It  reads  characters  from
  3336. the  serial  port  continuously  until  one  of two things occurs: the received
  3337. characters match the search string or the time limit expires.  Matching strings
  3338. is the normal use, as in
  3339.  
  3340.     Kermit-MS>input 5 Login please:
  3341.  
  3342. to  recognize  the  phrase "Login please:", or else time out after trying for 5
  3343. seconds.  A special binary character \255 or \o377 or \xFF stands for the  com-
  3344. bination  carriage return and a line feed, in either order, to simplify pattern
  3345. matching.
  3346.  
  3347. Beware of characters arriving with parity set because the pattern matching con-
  3348. siders  all 8 bits of a byte unless the local parity is other than NONE and SET
  3349. DISPLAY is 7-BITS.  Arriving characters are  modified  by  first  removing  the
  3350. parity  bit, if parity is other than NONE, then they are passed through the SET
  3351. TRANSLATION INPUT converter, the high bit is again suppressed if SET DISPLAY is
  3352. 7-BITs, the result is logged and stored for pattern matching.
  3353.  
  3354. The  INPUT  and  OUTPUT  commands  have  a special syntax to replace the normal
  3355. string with text obtained from a file or device:
  3356.  
  3357.     OUTPUT @filespec
  3358.     INPUT @filespec
  3359.  
  3360. Both forms read one line of text from the file or device  and  use  it  as  the
  3361. desired  string.    A common use is to wait for a password prompt and then read
  3362. the password from the console  keyboard.    A  string  starts  with  the  first
  3363. non-spacing character and ends at either the end of line or, if executed within
  3364. a TAKE file, at a semicolon.  Indirectly obtained strings, the @filespec  form,
  3365. read  the  first line of the file up to but not including the explicit carriage
  3366. return.  Note if a trailing carriage return is  needed  it  must  be  expressed
  3367. numerically, such as \13 decimal.
  3368.  
  3369. The  behavior  of  the INPUT command can be controlled by SET INPUT parameters:
  3370. CASE, TIMEOUT-ACTION, DEFAULT-TIMEOUT, and ECHO.    If  the  TIMEOUT-ACTION  is
  3371. PROCEED  then failure to match strings is ignored and the script continues with
  3372. the next command.  Otherwise, QUIT causes the current script file to be  exited
  3373. immediately;  the  next  higher  level script file or the Kermit prompt is done
  3374. next.  CASE controls whether upper and lower case letters should be  considered
  3375. the same during matching.  DEFAULT-TIMEOUT supplies a different default for how
  3376. long to wait, in case an explicit value is not  given  in  the  INPUT  command.
  3377. Finally,  ECHO  controls  displaying  of  serial  port data during matching and
  3378. during the other script commands.
  3379.  
  3380. When a script fails because an INPUT command  did  not  encounter  the  desired
  3381. string within the timeout interval, the message is "?Not confirmed".
  3382.  
  3383.  
  3384. The OUTPUT command
  3385.  
  3386. Syntax: OUTPUT {string | @filespec}
  3387.  
  3388. The  OUTPUT command writes the indicated character string to the serial port as
  3389. ordinary text.  The string may contain control or other special binary  charac-
  3390. ters  by  representing  them  in the backslash numerical form.  Carriage Return
  3391. (CR), for example, is \13 decimal, \o15 octal, or \x0D hexadecimal.  The string
  3392. may use 8-bit characters if the communications parity is type NONE.
  3393.  
  3394. The OUTPUT string may not contain Kermit CONNECT-mode action verbs, but it does
  3395. recognize a special code \b or \B, which causes a BREAK  signal  to  be  trans-
  3396. mitted.
  3397.  
  3398. The  string to be transmitted starts with the first non-spacing character after
  3399. the OUTPUT command and ends at either the end of line or, if executed within  a
  3400. TAKE file, at a semicolon (if you need to output a semicolon from within a TAKE
  3401. file, use backslash notation, e.g. "\59").  Indirectly  obtained  strings,  the
  3402. @filespec form, read the first line of the file up to but not including the ex-
  3403. plicit carriage return.
  3404.  
  3405. As a convenience, text arriving at the serial port during the OUTPUT command is
  3406. shown  on the screen if SET INPUT-ECHO is ON, and stored in a 128-byte internal
  3407. buffer for rereading by a following INPUT command.
  3408.  
  3409.  
  3410. The PAUSE command
  3411.  
  3412. Syntax: PAUSE [number]
  3413.  
  3414. PAUSE simply waits one or more seconds before Kermit executes the  next  script
  3415. command.   Pauses are frequently necessary to avoid overdriving the host and to
  3416. let a modem proceed through a dialing sequence without interruptions from  Ker-
  3417. mit.   The default waiting time is set by SET INPUT DEFAULT-TIMEOUT and is nor-
  3418. mally one second.  The optional integer number selects the number of seconds to
  3419. pause  for  this command.  An explicit value of zero produces a pause of just a
  3420. few milliseconds which can be useful in some situations.
  3421.  
  3422. Text arriving during the  PAUSE  interval  is  shown  on  the  screen,  if  SET
  3423. INPUT-ECHO  is  ON, and stored in a 128-byte internal buffer for rereading by a
  3424. following INPUT command.
  3425.  
  3426.  
  3427. Script Examples
  3428.  
  3429. Figure 1-2 shows a simple script file that dials a Hayes modem and logs in to a
  3430. computer, prompting the user for her password, and then connects as a terminal.
  3431.  
  3432. -------------------------------------------------------------------------------
  3433.  
  3434.  
  3435.     CLEAR
  3436.     SET SPEED 1200
  3437.     OUTPUT AT\13                         ; Wakeup modem.
  3438.     PAUSE 2                              ; Let it get ready.
  3439.     INPUT OK                             ; Its response.
  3440.     OUTPUT ATDT 9,555-1212\13            ; Dial the phone.
  3441.     INPUT 30 CONNECT                     ;  Wait for connection.
  3442.     PAUSE 2                              ; Breathing space for modems.
  3443.     OUTPUT \13                           ; Send carriage returns to
  3444.     PAUSE 2                              ;  awaken host, wait 2 secs
  3445.     OUTPUT \13                           ;  between them.
  3446.     INPUT 15 Please login:               ; Get expected prompt.
  3447.     OUTPUT Sari\13                       ; Send username and CR.
  3448.     SET INPUT ECHO OFF                   ; Privacy, please.
  3449.     INPUT Enter password:                ; Quietly wait for this.
  3450.     ECHO Type your password now.         ; Make our own prompt.
  3451.     OUTPUT @CON                          ; Send console keystrokes.
  3452.     OUTPUT \13                           ; Add a real carriage return
  3453.     SET INPUT ECHO ON                    ; Go verbose again.
  3454.     CONNECT                              ; Start terminal emulation
  3455.  
  3456.          Figure 1-2:   MS-Kermit Script for Dialing Up and Logging In
  3457.  
  3458. -------------------------------------------------------------------------------
  3459.  
  3460. Notice  the  semicolons used to indicate comments in TAKE files.  If these same
  3461. commands were typed by hand at the Kermit prompt the semicolon  material  would
  3462. be  considered  part  of  a string!  Typing a Control-C will interrupt and ter-
  3463. minate any of the commands.
  3464.  
  3465. The MS-Kermit script package maintains a small memory buffer to allow the INPUT
  3466. command to inspect characters received during the previous few script commands.
  3467. CLEAR removes them and any others in a lower level main serial port buffer.
  3468.  
  3469. As with any TAKE file, scripts can be nested by using the TAKE command within a
  3470. script.    If an INPUT command fails to obtain a match and uses the QUIT option
  3471. or if the script simply finishes normally the TAKE file is exited  and  control
  3472. resumes where it left off in the next higher TAKE file or at the Kermit prompt.
  3473.  
  3474. A slightly more complicated combination of DOS Batch and Kermit Script files is
  3475. shown in Figures 1-3 and 1-4 (see your DOS manual for  an  explanation  of  the
  3476. batch  file  syntax).  The purpose is to allow a user to say "SEND filename" at
  3477. the DOS prompt.  The DOS batch shell, SEND.BAT, and the login script,  KX,  are
  3478. combined  to  login  to  a  VAX through a data switch, run VMS Kermit in server
  3479. mode, transfer the file, submit it to VMS Mail, delete the disk file, shut down
  3480. the  server  and  logout  from the VAX, and report the overall transfer status.
  3481. The user is asked to provide a password interactively.  Scripts are illustrated
  3482. further in the next section.
  3483.  
  3484. -------------------------------------------------------------------------------
  3485.  
  3486. File SEND.BAT, DOS batch program:
  3487.  
  3488.     echo off
  3489.     Rem Kermit, one-line file mailer, by Joe Doupnik.
  3490.     Rem Logon to VAX, run Kermit, Send user's file,
  3491.     Rem  post via MAIL, logout from VAX.
  3492.     if ".%2" == "." goto usage
  3493.     if exist %1 goto proceed
  3494.     echo No file to send!
  3495.     :usage
  3496.     echo Usage is  SEND filename username
  3497.     goto done
  3498.     :proceed
  3499.     echo Logging onto the Vax ...
  3500.     kermit set disp q,take kx,send %1,pau,rem host mail %1 %2,pau 2,bye,
  3501.     if errorlevel 3 goto badrem
  3502.     if errorlevel 2 goto badrcv
  3503.     if errorlevel 1 goto badsnd
  3504.     echo File(s) "%1" has been mailed to %2.
  3505.     goto done
  3506.     :badrem
  3507.     echo Mail did not cooperate!
  3508.     :badrcv
  3509.     echo Receive failed!
  3510.     goto done
  3511.     :badsnd
  3512.     echo Send failed!
  3513.     goto done
  3514.     :done
  3515.     echo on
  3516.  
  3517.        Figure 1-3:   MS-DOS Batch File Invoking Kermit to Send VAX Mail
  3518.  
  3519. -------------------------------------------------------------------------------
  3520.  
  3521.  
  3522. 1.8. Initialization Files Revisited
  3523.  
  3524. At  Columbia  University,  we  have  IBM  370-series mainframes running VM/CMS,
  3525. DECSYSTEM-20 mainframes running TOPS-20, a VAX 8700 running Unix.  All of these
  3526. systems  are  accessible  through a Gandalf PACX port contention unit.  The IBM
  3527. systems have two different kinds of front ends, a COMTEN 3695 (similar  to  IBM
  3528. 3705) for linemode half-duplex connections, and various Series/1-style protocol
  3529. converters (including the 7171 and  4994)  for  full-screen,  full-duplex  3270
  3530. emulation,  all of which use various combinations of parity and other settings.
  3531. Figure 1-5 shows an MSKERMIT.INI file composed by Vace Kundakci of Columbia  to
  3532. automate  the  task  of  switching  his  PC/AT among all these systems.  It il-
  3533. lustrates the creative use of macros and scripts.  Numerous site-  and  system-
  3534. dependent key definitions have been omitted.
  3535.  
  3536. A  bit  of explanation might clarify some of this.  PACX is our port contention
  3537. unit.  Its output appears in even parity.  It prompts us to  "Enter  node  name
  3538. =>",  and  we  respond  with the name of one of our systems or front ends, like
  3539. CU20B or CU20D (DEC-20s), SIMA or SIMB (7171s), CUVMA or CUVMB (IBM  mainframes
  3540. front  ended by COMTEN), or CUNIXC (a VAX).  To connect to a given system, Vace
  3541. types "do cu20b" or "do sima" to invoke a "connecting" macro.  Each  of  these,
  3542. in  turn,  invokes  the  PACX macro to navigate through the PACX to the desired
  3543. system, and then invokes the appropriate macro (3695, 7171, etc)  to  get  past
  3544. any  associated  front  end  (e.g.  to  tell  the COMTEN which IBM mainframe is
  3545. wanted, or to tell the protocol converter what terminal to emulate),  and  then
  3546. to  login  on  the  desired  system,  prompting  on  the screen for user ID and
  3547. password.  Finally, a macro like "vml" (VM linemode),  "xed"  (XEDIT,  i.e.  VM
  3548. full  screen),  or  "dec"  (DEC-20 or VAX) is executed to set the communication
  3549. parameters for the system just logged in to.   The  key  definitions  that  are
  3550. shown  in  the "vml", "xed", and "dec" macros assign the host's character dele-
  3551. tion code (backspace or rubout) to the AT's backarrow key.
  3552.  
  3553.  
  3554. 1.9. MS-Kermit Features for Different Systems
  3555.  
  3556. As noted early on, MS-Kermit was designed primarily for the IBM PC family,  and
  3557. later  adapted  to various non-IBM-compatible MS-DOS (and even non-MS-DOS) sys-
  3558. tems.  Some of these adaptations provide all the features of the  IBM  PC  ver-
  3559. sion,  others  provide only a subset, and still others may include features not
  3560. available on the IBM family.  These features are all  of  the  system-dependent
  3561. variety; the Kermit file transfer protocol should be implemented identically on
  3562. all versions of MS-Kermit.  The most obvious differences are  in  the  terminal
  3563. emulation  options  and  the keyboards.  Table 1-5 shows the terminal emulation
  3564. options for the systems presently supported by Kermit-MS, and Table 1-6,  shows
  3565. which  keys  are  used  for screen rollback on the various systems supported by
  3566. MS-Kermit.
  3567.  
  3568. -------------------------------------------------------------------------------
  3569.  
  3570. File KX, Kermit script:
  3571.  
  3572.     Comment Login script for VAXA via Micom data PBX Switch.
  3573.     set input timeout quit
  3574.     set input echo off
  3575.     set display quiet
  3576.     output \13
  3577.     comment - "slowly." and "CLASS" are part of the switch's prompt.
  3578.     input 10 slowly.
  3579.     input 10 CLASS
  3580.     pause
  3581.     comment - Slowly tell switch "vaxa", wait for beep.
  3582.     output v
  3583.     output a
  3584.     output x
  3585.     output a
  3586.     output \13
  3587.     pause
  3588.     input 5 \7
  3589.     comment - Done with Switch, wake up the VAX and log in.
  3590.     pause
  3591.     output \13
  3592.     pause
  3593.     input 5 Username:
  3594.     set input timeout proceed
  3595.     output MYNAME\13
  3596.     input 2 Password:
  3597.     comment - Prompt ourselves, then get password from console.
  3598.     echo Enter password:
  3599.     output @con
  3600.     comment - Send a carriage return at the end of the password.
  3601.     output \13
  3602.     comment - Expect ESC Z from the VAX's Set Term/Inquire...
  3603.     comment - Respond ESC [ <query symbol> 6 ; 2 c   (say we are VT102).
  3604.     comment - Note syntax for including question mark and semicolon!
  3605.     input 15 \27Z
  3606.     output \27[\{63}6\;2c
  3607.     comment Look for VMS dollar sign prompt
  3608.     input 15 $
  3609.     comment Start VMS Kermit and place it in server mode
  3610.     output kermit server\13
  3611.     comment - allow server's message to finish, "machine." appears twice.
  3612.     input 10 machine.
  3613.     input 10 machine.
  3614.     pause
  3615.  
  3616.      Figure 1-4:   MS-Kermit Script for Logging into VAX and Sending Mail
  3617.  
  3618. -------------------------------------------------------------------------------
  3619.  
  3620. -------------------------------------------------------------------------------
  3621.  
  3622.  
  3623.     ; MSKERMIT.INI for IBM PC/AT Kermit 2.30, by Vace Kundakci
  3624.  
  3625.     COMMENT - INPUT command defaults for scripts
  3626.     set inp tim quit
  3627.     set inp echo off
  3628.     set inp case observe
  3629.  
  3630.     COMMENT - Macros for connecting to PACX and selecting various systems
  3631.     def cu20b do pacx,o cu20b\13,do 2065
  3632.     def cu20d do pacx,o cu20d\13,do 2065
  3633.     def sima do pacx,o sima\13,do 7171
  3634.     def simb do pacx,o simb\13,do 4994
  3635.     def cunixc do pacx,o cunixc\13,do 8700
  3636.     def cuvma do pacx,o cuvm\13,do 3695,o vma\13,do 3083
  3637.     def cuvmb do pacx,o cuvm\13,do 3695,o vmb\13,do 3083
  3638.  
  3639.     COMMENT - Macros for logging in to various systems.
  3640.     def pacx cle,set par e,o \13,i 5 Enter node name =>\32,pau
  3641.     def 3695 i 5 SWITCHING CHARACTERS:\32\32
  3642.     def 3083 i 5 ONLINE,o L\32,do pwd,do vml,c
  3643.     def 8700 i 5 login:\32,do pwd,do dec,c
  3644.     def 2065 i 5 \13\10\64,o ter vt102\13,do pwd,do dec,c
  3645.     def 7171 pau,cle,o \13,i 5 TERMINAL TYPE:\32,o vt-100\13,do 3270
  3646.     def 4994 pau,cle,o \13,i 5 terminal type:\32,pau,o vt100\13,do 3270
  3647.     def 3270 pau,cle,o \13,o L\32,do pwd,do xed,c
  3648.  
  3649.     COMMENT - Macros for communicating with various systems
  3650.     def vml set par m,set k \270 \8,set k \3 \Kbreak,do tty
  3651.     def xed set par e,set k \270 \8,set k \3,do def
  3652.     def dec set par n,set k \270 \127,set k \3,do def
  3653.     def def set tim of,set loc of,set ter wr of,set han non,set flo xon
  3654.     def tty set tim on,set loc on,set ter wr on,set han xon,set flo non
  3655.  
  3656.     COMMENT - Macro for obtaining user ID and password
  3657.     def pwd echo user:,o @con,o \13, do pw2
  3658.     def pw2 echo Password:,o @con,o \13
  3659.  
  3660.             Figure 1-5:   An Advanced MS-Kermit Initialization File
  3661.  
  3662. -------------------------------------------------------------------------------
  3663.  
  3664. -------------------------------------------------------------------------------
  3665.  
  3666.  
  3667.   System         EscChar   Capabilities Terminal Service
  3668.   ACT Apricot      ^]            K      VT52 ???
  3669.   DEC Rainbow      ^]      R   P K D    VT102 firmware
  3670.   DECmate/DOS      ^]            K      VT100
  3671.   Generic DOS      ^]            K      Depends on system
  3672.   Grid Compass     ^]            K      ???
  3673.   HP-110           ^]            K      Dumb terminal
  3674.   HP-150           ^]      R     K      HP-2623 firmware
  3675.   IBM PC family    ^]      R M P K D    H19,VT52,VT102,Tek emulation
  3676.   Intel 3xx        ^]            K      Uses real terminal
  3677.   NEC APC3         ^]      R M P K D    H19,VT52,VT102 emulation
  3678.   NEC APC          ^]      R   P K      VT100, ADM3A firmware
  3679.   Olivetti M24     ^]      R M P K D    Same as IBM PC
  3680.   Sanyo MBC55x     ^]      R M P K D    H19,VT52,VT102 emulation
  3681.   Wang PC          ^A            K      Wang firmware
  3682.   TI Pro           ^]        M P K      VT100/Tektronix
  3683.   Victor 9000      Alt-]     M P K D    H19,VT52,VT102 and/or Tek4010
  3684.   Zenith Z100      ^]            K      Heath-19 emulation
  3685.  
  3686.  R=Rollback, M=Modeline, P=Printer control, K=Key redefinition, D=screen Dump
  3687.  
  3688.                Table 1-5:   Kermit-MS Terminal Emulation Options
  3689.  
  3690. -------------------------------------------------------------------------------
  3691.  
  3692. -------------------------------------------------------------------------------
  3693.  
  3694. System    Screen Down   Line Down       Screen Up   Line Up
  3695. IBM PC    PgUp          Ctrl-PgUp       PgDn        Ctrl-PgDn
  3696. Rainbow   PrevScreen    Ctrl-PrevScreen NextScreen  Ctrl-NextScreen
  3697. HP-150    Prev          Shift-UpArrow   Next        Shift-DownArrow
  3698. NEC APC   Uparrow       Ctrl-UpArrow    DownArrow   Ctrl-DownArrow
  3699. NEC APC3  PgUp          Ctrl-PgUp       PgDn        Ctrl-PgDn
  3700. Sanyo 55x PgUp          Ctrl-RtArrow    PgDn        Ctrl-PgDn
  3701. The IBM PC also allows use of the Home key to get to the  top  of  its  display
  3702. memory and End key to get to the bottom, and the keypad minus (-) key to toggle
  3703. the mode line on and off.  The Rainbow uses Shift-Next-Screen  to  get  to  the
  3704. bottom  of  its  display memory, but provides no key for moving directly to the
  3705. top.
  3706.  
  3707.                    Table 1-6:   Kermit-MS Screen Scroll Keys
  3708.  
  3709. -------------------------------------------------------------------------------
  3710.  
  3711. Another difference is the default communication port, the number of  communica-
  3712. tion  ports  supported,  and the names given to them.  For instance, the IBM PC
  3713. family supports COM1 and COM2, and uses COM1 by default.  MS-Kermit may be per-
  3714. suaded  to  support higher-numbered IBM ports using the method outlined in sec-
  3715. tion 1.16.3.  For remote operation, IBM's name for the console is  CON,  so  if
  3716. you CTTY COM1, you do CTTY CON to put the PC back to normal.
  3717.  
  3718.  
  3719. The DEC Rainbow
  3720.  
  3721. The  DEC  Rainbow  version  of  MS-Kermit 2.30 uses the built-in VT102 terminal
  3722. firmware and setup modes, and can operate at speeds up to 9600 baud.  It has no
  3723. 25th  screen  line,  and therefore no Kermit mode line during CONNECT.  It sup-
  3724. ports only the Rainbow's single communication port, and not the  printer  port,
  3725. so  SET  PORT for the Rainbow is not implemented (but of course the printer may
  3726. be used for printing.)  The Rainbow may be put in remote mode by CTTY AUX,  and
  3727. returned  to  normal with CTTY SCRN.  The Rainbow supports several SET TERMINAL
  3728. commands: VT102, VT52, and ROLL.
  3729.  
  3730. The keypad and cursor keys all work properly in VT102 and VT52 modes and in ap-
  3731. plication  as  well  as  native  states  (they never had in previous versions).
  3732. Newline mode is activated for received characters (LF ==> CR/LF).  Screen  roll
  3733. back  is  almost 11 screenfuls.  Table 1-7 shows the verb names and default key
  3734. assignments for the Rainbow.  On the main typewriter keyboard the shifted comma
  3735. and period are converted to special keys available for Set Key assignment with-
  3736. out impacting the normal unshifted ASCII actions; Shift Lock has no  effect  on
  3737. these keys.
  3738.  
  3739.  
  3740. The DECmate II
  3741.  
  3742. MS-Kermit for the DECmate II with the XPU option is somewhat similar to Rainbow
  3743. Kermit.  It uses built-in terminal VT100 firmware  and  setup  modes  and  baud
  3744. rates  up  to  9600  on the single communication port.  The printer port is not
  3745. available for communications in this version.  There is no mode line, but other
  3746. connect-mode escapes are supported, including sending BREAK.  Disks A through I
  3747. are supported, and the floppy disk format is compatible with the Rainbow.   DEC
  3748. utilities are available for file conversion between DOS and WPS-8 files.
  3749.  
  3750.  
  3751. The NEC APC3
  3752.  
  3753. The NEC APC3 version of MS-Kermit assumes that the ANSI.SYS driver has been in-
  3754. stalled and that a color monitor is being used; the color  graphics  option  is
  3755. not  used  by  Kermit.  Although the display should be entirely sensible with a
  3756. monochrome system, it has not been tested.  Differences from the IBM PC version
  3757. include:
  3758.  
  3759. SET BAUD: The useful baud rates supported range from 300 to 96