home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / msk314.zip / KERMIT.UPD < prev    next >
Text File  |  1995-01-11  |  153KB  |  3,437 lines

  1. File KERMIT.UPD (MSKERM.UPD)                     January 1995
  2.  
  3.              SUPPLEMENT TO "USING MS-DOS KERMIT":
  4.          CHANGES AND NEW FEATURES SINCE VERSION 3.11
  5.  
  6. Most recent update: Wed Jan 11 15:21:57 1995
  7.  
  8. MS-DOS Kermit is:
  9.  
  10.   Copyright (C) 1982, 1995, Trustees of Columbia University in the City of New
  11.   York.     The MS-DOS Kermit software may not be, in whole or in part, licensed
  12.   or sold for profit as a software product itself, nor may it be included in
  13.   or distributed with commercial products or otherwise distributed by
  14.   commercial concerns to their clients or customers without written permission
  15.   of the Office of Kermit Development and Distribution, Columbia University.
  16.   This copyright notice must not be removed, altered, or obscured.
  17.  
  18. Kermit software is furnished without warranty of any kind.  Neither Columbia
  19. University, nor the individual authors, nor Digital Press, nor Data General
  20. Corporation, nor any other institution or individual that has contributed to
  21. the development or documentation warrant the software in any way.
  22.  
  23. See the file KERMIT.HLP (MSKERM.HLP) for contact information.
  24.  
  25. CONTENTS:
  26.  
  27.      INTRODUCTION
  28.  (0) THE "KERMIT" ENVIRONMENT VARIABLE
  29.  (1) DIALING AND THE DIALING DIRECTORY
  30.  (2) FOSSIL DRIVERS, ISDN, HAYES ESP SERIAL BOARD
  31.  (3) FILE TRANSFER RECOVERY
  32.  (4) FASTER METHOD FOR TRANSFERRING BINARY FILES
  33.  (5) OTHER FILE TRANSFER IMPROVEMENTS
  34.  (6) IMPROVED CLIENT/SERVER OPERATION
  35.  (7) IBM MAINFRAME FILE TRANSFER
  36.  (8) NEW CHARACTER-SET SUPPORT
  37.  (9) CONNECT-MODE STATUS LINE AND POPUP HELP SCREENS
  38. (10) THE APC ESCAPE SEQUENCE
  39. (11) VT320 TERMINAL EMULATION
  40. (12) ANSI TERMINAL EMULATION
  41. (13) DATA GENERAL DASHER TERMINAL EMULATION
  42. (14) WYSE-50 TERMINAL EMULATION
  43. (15) COMPOSE-KEY SEQUENCES FOR ENTERING SPECIAL CHARACTERS
  44. (16) WIDE SCREENS AND HORIZONTAL SCROLLING
  45. (17) EXPANDED MEMORY
  46. (18) GRAPHICS TERMINAL EMULATION
  47. (19) OTHER TERMINAL EMULATION CHANGES AND IMPROVEMENTS
  48. (20) SCRIPT PROGRAMMING CHANGES AND ADDITIONS
  49. (22) GENERAL COMMUNICATIONS
  50. (22) COMMAND PARSER
  51. (23) TCP/IP NETWORKING
  52. (24) MULTIPLE TCP/IP SESSIONS -- KERMIT'S TCP/IP SESSION MANAGER
  53. (25) SMALL MEMORY-SIZE EDITIONS
  54. (26) BBS OPERATORS GUIDE
  55. APPENDIX I:  NEW TERMINAL EMULATIONS - TECHNICAL SUMMARY
  56.  
  57. ------------------------------
  58. INTRODUCTION
  59.  
  60. MS-DOS Kermit 3.11 was released in September 1991, and is fully described in
  61. Chapter 14 of "Using MS-DOS Kermit", second edition.  Subsequent releases add
  62. a few features not described in the book.  This file describes these new
  63. features.
  64.  
  65. MS-DOS Kermit 3.12 was released in September, 1992:
  66.  
  67.  . Networking and communications improvements, including ODI support.
  68.  . Japanese Kanji text-file transfer translation.
  69.  . Locking-shift protocol for efficient 8-bit file transfer on 7-bit links.
  70.  . A new method for transferring files with IBM mainframes.
  71.  . Ability to SET PORT TCP/IP to non-TELNET ports.
  72.  
  73. MS-DOS Kermit 3.13, July 1993:
  74.  
  75.  . A new faster method for transferring binary and precompressed files
  76.  . Larger packets and windows allowed, up to 9024 x 31.
  77.  . Switching among multiple simultaneous TCP/IP sessions
  78.  . Data General DASHER terminal emulation
  79.  . Graphics-mode support for 132-column operation on EGA & VGA video adapters
  80.  . Text-mode support for 132-column operation on ET4000 & other VESA adapters
  81.  . Horizontal scrolling of wide terminal screens
  82.  . Expanded-memory option for screen rollback and graphics image retention
  83.  . Hebrew character-set translation and Hebrew terminal emulation
  84.  . East European character-set translation
  85.  . Icelandic CP861 code page support
  86.  . Separate code page selection for terminal emulation and file transfer
  87.  . Compose-key sequences for entering accented characters
  88.  . New KERMIT PATH environment variable
  89.  . Support for Novell SLIP_PPP ODI driver and other networking improvements
  90.  . BOOTP improvements
  91.  . TELNET improvements, including option negotiation display
  92.  . DIAL-command support for additional modem types
  93.  
  94. MS-DOS Kermit 3.14, January 1995:
  95.  
  96.  . ANSI terminal emulation
  97.  . Wyse-50 terminal emulation
  98.  . Data General DASHER and DEC VT terminal emulation improvements
  99.  . Kanji character-set translation during terminal emulation
  100.  . HP-Roman8 terminal character-set
  101.  . Control over timeslicing method in Windows, DesqView, OS/2, NT
  102.  . Control over automatic video-mode switching
  103.  . Selectable fore- and background colors for underline simulation
  104.  . Additional scan codes for Alt/Ctrl/Shift - SpaceBar/Esc combinations
  105.  . Revised printer support for better interoperation with Novell CAPTURE
  106.  . Additional control over TCP/IP and TELNET protocol features
  107.  . Debugging display of TELNET options negotiation
  108.  . Networking support for Telebit PPP
  109.  . TCP/IP fixes, speedups, and refinements
  110.  . Multiple TCP/IP sessions to the same host now allowed
  111.  . Support for Artisoft Int14 redirector
  112.  . Support for Meridian Technology SuperLAT network connections
  113.  . SET SPEED 28800
  114.  . Workarounds for buggy SMC FDC37C665 UART simulator on Pentium motherboards
  115.  . Support for Hayes ESP serial communications board in 16550A mode
  116.  . Support for Fossil Drivers
  117.  . User control over treatment of carrier signal on serial connections
  118.  . Binary-mode file transfer recovery
  119.  . Ability to send partial files manually
  120.  . Control of run-length encoding
  121.  . Improved client/server operation
  122.  . Prompt string value now evaluated each time prompt is issued
  123.  . ASK/ASKQ responses now taken literally
  124.  . New APC command sends APC strings
  125.  . Incoming APC strings ignored by default for safety
  126.  . Revised CONNECT-mode status line for additional information
  127.  . Separate CONNECT-mode help and one-character command menus
  128.  . New script programming commands
  129.  . Improved consistency of backslash-quoting in commands
  130.  . New built-in string, file, and numeric functions
  131.  . Additional built-in variables
  132.  . Revised command-line handling of substitution variables
  133.  . Transaction log of file transfers now records detailed rejection 
  134.    reason if based on file attributes
  135.  . Available also in special reduced forms for limited memory
  136.  
  137. See the READ.ME file in the top-level directory of the Kermit diskette for
  138. installation instructions and an overview of what's included on the disk.
  139. ------------------------------    
  140.  
  141. (0) THE "KERMIT" ENVIRONMENT VARIABLE
  142.  
  143. The DOS environment variable KERMIT may be used for setting certain
  144. parameters, even if Kermit doesn't read its initialization file.
  145. Set this environment variable in your AUTOEXEC.BAT file:
  146.  
  147.   SET KERMIT=text
  148.  
  149. <text> can be one or more MS-DOS Kermit startup parameters of the form
  150. <name> <value>, separated by semicolons.  Startup parameters include:
  151.  
  152.   INPUT <number>    (allocates storage for INPUT command buffer)
  153.   ROLLBACK <number>    (allocates storage for <number> rollback screens)
  154.   WIDTH <number>    (allocates sorage for given screen width, 80-207)
  155.   COMn <address> <irq>    (sets COM1, COM2, COM3, or COM4 address and IRQ)
  156.   PATH <path>        (where Kermit looks for TAKE files)
  157.  
  158. PATH and WIDTH are new to v3.13.  WIDTH defines the width of the terminal-
  159. screen rollback memory.  If you want to roll back wide screens, you should
  160. specify the width, e.g. 132.  AUTOEXEC.BAT example:
  161.  
  162.   SET KERMIT=ROLLBACK 50;WIDTH 132;PATH C:\KERMIT  
  163.  
  164. PATH affects the init-file search, the TAKE command, and IF INPATH.
  165.   
  166. (1) DIALING AND THE DIALING DIRECTORY
  167.  
  168. MS-DOS Kermit includes flexible and extensible facilities for dialing
  169. with most of today's popular modems.
  170.  
  171. (1.1) The Standard Dialing Method
  172.  
  173. If you installed Kermit from the distribution disk according to instructions,
  174. you'll have the standard DIAL macro, defined in Kermit's initialization file,
  175. MSKERMIT.INI, at your disposal.  The DIAL macro:
  176.  
  177.  . Uses your dialing directory if you have one.
  178.  . Uses a modem-specific script to configure and dial your modem.
  179.  . Redials several times automatically if the line is busy.
  180.  . Is entirely scripted, so you can change it if you want to.
  181.  
  182. To use the dial macro, simply type "dial" followed by the phone number at
  183. the MS-Kermit> prompt, for example:
  184.  
  185.   MS-Kermit> dial 9876543
  186.  
  187. or:
  188.  
  189.   MS-Kermit> dial 1 800 987-6543
  190.  
  191. The DIAL macro uses two additional files: xxxxx.SCR, a script program for
  192. dialing your modem ("xxxxx" is HAYES, T3000, ROLM, etc), and DIALUPS.TXT, your
  193. dialing directory (optional).  
  194.  
  195. (1.1.1) Telling Kermit Which Kind of Modem You Have
  196.  
  197. Kermit comes with dialing scripts lots of modems.  Different modems have
  198. different commands and capabilities, so each kind must be handled separately.
  199. The scripted approach allows new modems to be added easily, without changing
  200. the Kermit program itself.  It also allows for bugs to be fixed, parameters
  201. changed, behavior altered, etc, without changing the program.  Modem scripts
  202. are ordinary text files in Kermit's MODEMS subdirectory that anybody can type,
  203. print, or edit.  The script language, and modem scripts in particular, are
  204. described in detail in "Using MS-DOS Kermit".
  205.  
  206. Unless you say otherwise, Kermit assumes you have a Hayes 2400 modem and uses
  207. MODEMS\HAYES.SCR for dialing.
  208.  
  209. How to say otherwise?  The modem script is chosen in any of the following ways
  210. (using the Telebit T3000 modem as an example, which has a T3000.SCR file in
  211. the KERMIT\MODEMS directory):
  212.  
  213.  1. Set a DOS environment variable, MODEM, to be the name of your modem;
  214.     add the following line to your AUTOEXEC.BAT file: 
  215.  
  216.     SET MODEM=T3000
  217.  
  218.     or give this command at the DOS prompt before starting Kermit.
  219.  
  220.  2. Or use the following Kermit command:
  221.  
  222.     DEFINE _MODEM T3000 ; Note the underscore!
  223.  
  224.  3. Or, in v3.14 and later, tell Kermit to:
  225.  
  226.     SET MODEM T3000     ; Note: no underscore, no "=" sign.
  227.  
  228.     which is equivalent to "define _modem t3000".
  229.  
  230. Methods 2 and 3 are both regular Kermit commands.  You can put them in your
  231. MSCUSTOM.INI file if you want them in effect every time you start Kermit,
  232. or you can type them at the MS-Kermit> prompt.
  233.  
  234. Each method has the same effect.  It tells Kermit to look for a file called
  235. T3000.SCR in Kermit's MODEMS subdirectory.  You can substitute any string for
  236. "T3000", as long as there is a corresponding .SCR file in the MODEMS
  237. subdirectory.  For example, SET MODEM PP14400 tells Kermit to look in its
  238. MODEMS subdirectory for PP14400.SCR.  See MODEMS\READ.ME for a list of the
  239. dialing scripts that are included in the standard Kermit package and a full
  240. description of how they work.
  241.  
  242. If you have a modem for which no suitable dialing script is provided, you can
  243. write a new script program for dialing, modeled after one of the other dialing
  244. scripts (see "Using MS-DOS Kermit") and put it in the MODEMS subdirectory, and
  245. then tell Kermit about it using one of the three methods above.  Note that
  246. some dialing scripts might work with multiple brands of modems, perhaps less
  247. than optimally.  For example HAYES.SCR will probably work with any Hayes-
  248. compatible modem; PP14400.SCR reportedly also works with Zoltrix modems, etc.
  249.  
  250. (1.1.2) Creating a Dialing Directory
  251.  
  252. Kermit's dialing directory lets you:
  253.  
  254.  . Use names instead of phone numbers for dialing
  255.  . Choose a particular speed or parity automatically for each entry
  256.  
  257. For example, suppose you regularly make a modem call to XYZ Corporation
  258. at 1 800 765-4321.  Rather than type:
  259.  
  260.   DIAL 18007654321
  261.  
  262. every time you want to make this call, you could type:
  263.  
  264.   DIAL XYZ
  265.  
  266. Your dialing directory is a plain-text file in your Kermit directory (the same
  267. directory as your MSKERMIT.INI file) called DIALUPS.TXT.  A DIALUPS.TXT file
  268. is already supplied on the Kermit diskette, which you can edit (using any text
  269. editor, such as the DOS EDIT program).  The file contains one line per entry:
  270.  
  271.   name     number      speed       parity   comments
  272.  
  273. The "name" is the name you want to use for this entry in your DIAL commands.
  274. "number" is the telephone number; "speed" is the dialing speed in bits per
  275. second, "parity" is the parity to use (even, odd, mark, space, or none).  The
  276. name, number, speed, and parity are separated from each other by one or more
  277. spaces.  Any words after the parity are ignored, so you can use them for
  278. comments.  If trailing fields (speed, parity) are omitted, Kermit's current
  279. values are used (but then you can't have a comment).  If you want to tell
  280. Kermit explicitly to use its current value for speed or parity, use an equal
  281. sign (=).  Examples:
  282.  
  283.   xyz        18007654321
  284.   sprintnet  7654321      2400     mark
  285.   oofanet    6543210      1200     odd    This entry has a comment.
  286.   tymnet     93,876-5432  2400     even    You can put punctuation in the phone #.
  287.   hometone   T5551212      1200     none    T in number forces tone dialing
  288.   homepulse  P5551212      1200     none    P in number forces pulse dialing
  289.   anyspeed   999-9999      =     none    Use current speed, whatever it is.
  290.   anyparity  888-8888      9600     =    Use current parity, whatever it is.
  291.   whocares   777-7777      =     =    Use current speed and parity.
  292.   defaults   987-6543
  293.  
  294. To use the dialing directory, just type DIAL followed by the name, spelled out
  295. in full (case doesn't matter), for example:
  296.  
  297.   MS-Kermit>dial xyz
  298.  
  299. If you type a name or number that is not in the directory, Kermit dials
  300. exactly the characters you type, for example DIAL 5552370 dials the number
  301. 5552370.  DIAL FRED (if FRED is not in the directory) tells Kermit to dial the
  302. letters FRED, which won't accomplish anything useful with most modems (unless
  303. the modem itself has an internal dialing directory).
  304.  
  305.   IMPORTANT: Kermit assumes neither Tone nor Pulse dialing.  Kermit's dialing
  306.   command for Hayes-like modems is ATD, not ATDT or ATDP because Tone dialing
  307.   is not available in many areas.  If you want to force (say) Tone dialing,
  308.   include a "T" at the beginning of the phone number (e.g. "dial T76543231")
  309.   or configure your modem beforehand for Tone dialing.
  310.  
  311. To view your dialing directory, type LIST.  To view particular entries in your
  312. dialing directory, type LIST XXX, where XXX is a sequence of characters that
  313. appears in the desired entries (usually the name):
  314.  
  315.   MS-Kermit>list tymnet
  316.   tymnet   93,876-5432  2400   even  You can put punctuation in the phone #.
  317.  
  318. The DIAL command assumes your dialing directory is stored on your PC as
  319. DIALUPS.TXT in your Kermit directory, i.e. the same directory as your MS-DOS
  320. Kermit initialization file.  If you want to keep it someplace else or use some
  321. other name, create a DOS environment variable in your AUTOEXEC.BAT file:
  322.  
  323.   SET DIALFILE=C:\PHONES\MSKERMIT.KDD
  324.  
  325. or in your MSCUSTOM.INI file:
  326.  
  327.   DEFINE _DIALFILE C:\PHONES\DIALING.DIR ; (Note underscore)
  328.  
  329. If you want to use the directory sometimes but not others, define a separate
  330. macro for dialing without it, e.g.:
  331.  
  332.   define call take C:\KERMIT\MODEMS\\\m(_modem).SCR
  333.  
  334. As of MS-DOS Kermit 3.14, dialing scripts are available for about 20 different
  335. modems; many new ones were added in 3.13 and 3.14; see the READ.ME file in
  336. MODEMS directory for details.
  337.  
  338. NOTE: Most of the dialing scripts for high-speed modems (V.32 and above)
  339. ignore Kermit's current speed as well as any speeds given in your dialing
  340. directory.  Instead, Kermit uses a fixed high interface speed (usually 57600
  341. bps) and configures the modem to negotiate the best connection speed and then
  342. automatically buffer between the connection speed and the interface speed.
  343.  
  344. (1.2) The Default Dialing Method
  345.  
  346. As of version 3.14, even if you did not install Kermit according to
  347. instructions, or if you did not start it with the standard initialization
  348. file, you'll still have a simple DIAL capability.  The new built-in dialing
  349. method is used if you give a DIAL command, but no DIAL macro is defined.  The
  350. built-in method does the following:
  351.  
  352.  . Gets and saves the SET CARRIER setting.
  353.  . Executes the SET CARRIER OFF command.
  354.  . Sends ATD, then the phone number, then carriage return to the modem.
  355.  . Waits up to 90 seconds for the CD signal to come on.  If it comes on
  356.    at any time within 90 seconds, the DIAL command completes immediately
  357.    and sets a success code; otherwise (after 90 seconds, or if you
  358.    interrupt it with Ctrl-C), it completes with a failure code.
  359.  . Upon completion, it restores your previous SET CARRIER setting.
  360.  
  361. Thus, the default dialing method assumes a Hayes-like modem, but only to the
  362. extent that it uses ATD as its dialing command.  It does not change your
  363. current speed, parity, flow control, or other parameters; it does not look for
  364. a dialing directory, it does not attempt to reconfigure the modem, and it does
  365. not rely on any responses from the modem, other than the CD signal coming on
  366. when the connection is complete.
  367.  
  368. This dialing method is used whenever you give a DIAL command and no DIAL macro
  369. is defined.  This implies, by the way, that you can define your own DIAL
  370. command to do anything you want, replacing the standard definition from the
  371. MSKERMIT.INI file.  As always, whenever you want to do override or remove any
  372. definitions or settings that are made in MSKERMIT.INI, please do this in your
  373. MSCUSTOM.INI file rather than by editing MSKERMIT.INI itself.  For example:
  374.  
  375.   define dial  ; Remove DIAL macro definition, use built-in default DIAL.
  376.   define dial blah blah blah ...  ; Replace standard DIAL definition
  377.  
  378. The internal default dialing macro is called __DIAL (the word "DIAL" preceded
  379. by two underscores).  Type "show macro __dial" to view its definition.
  380.  
  381. (1.3) Manual Dialing
  382.  
  383. Of course, Kermit also lets you dial "manually" in CONNECT mode.  Simply
  384. type CONNECT and then, in the terminal-emulation screen, type AT commands or
  385. whatever commands are appropriate for your modem.  If Kermit won't let you
  386. CONNECT, then give a SET CARRIER OFF command first (SET CARRIER OFF means
  387. Kermit does not care about the CD signal; SET CARRIER ON, which is NOT the
  388. default, means Kermit requires carrier to communicate).  Normally, the
  389. modem does not present the CD signal if it doesn't have a connection.
  390.  
  391. And of course, you can also write your own script programs to dial the modem.
  392. You don't have to use the ones that are supplied with Kermit.
  393.  
  394. (2) FOSSIL DRIVERS, ISDN, HAYES ESP SERIAL BOARD
  395.  
  396. (2.1) FOSSIL DRIVERS
  397.  
  398. MS-DOS Kermit supports Fossil serial port drivers through the SET PORT BIOSn
  399. (n = 1-4) communications channel.  The presumption is an external agent has
  400. selected the speed (Fossil redefines some IBM PC slow speeds to be higher
  401. speeds) and flow control.  Kermit will not touch the serial port hardware if
  402. the SET PORT BIOSn command is given before any command inquires about port
  403. information.  Thus a BBS may have a Fossil driver managing serial port
  404. hardware and Kermit is a polite user of one port via Interrupt 14h.
  405.  
  406. A Fossil driver can also be used with the new (v3.14) SET PORT option:
  407.  
  408.   SET PORT FOSSIL <1..99>
  409.  
  410. to select Fossil COM port 1 through 99, thus lifting the normal upper limit of
  411. 4 on the port number, and also enabling block reads and writes, which are more
  412. efficient (particularly in multitasking environments) than BIOS single-
  413. character I/O.  Here again, speed and flow control must be set in the fossil
  414. driver itself, and can't be set from Kermit.  Using this method, it is not
  415. possible to test whether a Fossil driver is really active.  If a call fails in
  416. a common way because no driver is present, Kermit declares the port to be
  417. inoperative and quits the connection.  Thus there is a user-assumed risk in
  418. SET PORT FOSSIL, since we can't check first to be sure a proper driver is
  419. present.  If in doubt go back to SET PORT BIOSn which are normal, safe
  420. (probably slower) BIOS serial port channels.  Note: Kermit supports only a
  421. single Fossil connection at time.
  422.  
  423. Another note: although Kermit supports the fossil driver specification, this
  424. does not mean that we necessarily support particular fossil drivers, or can
  425. provide help about them.  Some fossil drivers might have bugs; these are the
  426. responsibility of the fossil driver authors.  One such bug, reportedly, is
  427. that a certain fossil driver will stop working after its first connection has
  428. been closed.  The workaround is to fully reinitialize the driver by giving
  429. Kermit another SET PORT FOSSIL n command.
  430.  
  431. Applications that use fossil drivers, such as BBS packages, differ in their
  432. expectations about what "external protocols" (such as Kermit, when invoked
  433. from another program) should do with the fossil driver; some expect the 
  434. external application to "deinitialize" the fossil driver (fossil function
  435. 05h), others expect it not to do so.  MS-DOS Kermit will behave either way,
  436. according to:
  437.  
  438. SET FOSSIL DISABLE-ON-CLOSE { ON, OFF }
  439.   When OFF (the default), Kermit does NOT deinitialize the fossil driver
  440.   upon exit.  When ON, Kermit issues fossil function 05h to deinitialize
  441.   the fossil driver.
  442.  
  443. If you experience problems with your software after invoking Kermit on it
  444. as an external protocol on a fossil port, then try changing this setting.
  445.  
  446. (2.2) ISDN
  447.  
  448. Integrated Services Digital Network (ISDN) boards serve ISDN digital
  449. telephones, which provide (among other things) 64Kbps data transmission.  ISDN
  450. boards are not serial boards, and therefore require special drivers.  There is
  451. a Common Application Programming Interface (CAPI) for ISDN boards, defined by
  452. German Telecom and German ISDN manufacturers.  CAPI drivers are supplied by
  453. ISDN board manufacturers.  MS-DOS Kermit 3.14 does not support CAPI directly,
  454. but shims exist that allow Kermit to be used with ISDN anyway, by disguising
  455. CAPI as the Fossil, Int 14, or Packet Driver interface, all of which are
  456. supported by Kermit.  Examples:
  457.  
  458.  . cFos is a shareware fossil driver for CAPI, written by Martin Winkler &
  459.    Christoph Lueders of Bonn, Germany.  It is available via anonymous ftp
  460.    from ftp.dfv.rwth-aachen.de:/pub/network/isdn/cfos, or by dialup to the
  461.    Zaphods BBS in Bonn: +49 228 9111041.  It supports both the Fossil and
  462.    Int 14 interfaces, and presents ISDN controls in the form of Hayes-like
  463.    AT commands.
  464.  
  465.  . PAPI is free software, GNU Public License, providing a SLIP-class packet
  466.    driver interface to a CAPI driver, written by Dietmar Friede, Friede
  467.    Consulting, Munich (Muenchen), German <capi@friede.de>.  Available via
  468.    ftpmail to ftp.germany.eu.net (send email to archive-server@germany.eu.net
  469.    containing the word "help"), or by ftp directly from
  470.    ftp.dfv.rwth-aachen.de.
  471.  
  472. (2.3) HAYES ESP
  473.  
  474. The Hayes ESP serial board emulates 16550A UARTs, but with more buffering and
  475. several specialized modes of operation.  Kermit works fine with the ESP board
  476. when the board is running in 16550A emulation mode, and when the Hayes Windows
  477. ESP drivers are active.  In this mode no drivers are needed at DOS level; just
  478. run the Hayes DOSSETUP.EXE program to define serial port address and IRQ
  479. values.  If those port values differ from IBM conventions, or refer to COM3 or
  480. COM4 then use SET COMn <port> <irq> (n=1-4) to inform Kermit of the board's
  481. operating values.  A dual-port ESP board has been tested successfully in DOS
  482. and Windows, with and without the extra Windows drivers, with MS-DOS Kermit
  483. 3.13 and 3.14.
  484.  
  485. (3) FILE TRANSFER RECOVERY
  486.  
  487. Version 3.14 adds the ability to continue interrupted binary-mode file
  488. transfers, and also allows you to "manually" recover from certain other types
  489. of failures.
  490.  
  491. The new RESEND command lets you continue a file transfer from the point where
  492. it was interrupted (for example, because of a telephone disconnection) without
  493. having to retransmit the data that was already successfully transmitted.
  494. Before seeing how to use this feature, let's look at the restrictions:
  495.  
  496.  1. Recovery works only for binary-mode transfers between computers that have
  497.     a Kermit program that support this feature.  It can not be used with
  498.     text-mode transfers.  In other words, if you want to be able to use the
  499.     recovery feature, you must tell the file sender to:
  500.  
  501.       SET FILE TYPE BINARY
  502.  
  503.  2. The original transfer must have been done with SET FILE INCOMPLETE KEEP
  504.     in effect at the receiver, meaning that incompletely received files are
  505.     kept rather than discarded.     In MS-DOS Kermit 3.14 and C-Kermit 5A(190),
  506.     this is the default, which is a change from previous releases.
  507.  
  508.  3. Recovery only works between two Kermit programs that have this capability
  509.     and negotiate it successfully.  As of this writing, these programs include
  510.     MS-DOS Kermit 3.14 and later for DOS and Windows and C-Kermit 5A(190) and
  511.     later for UNIX, VMS, OS/2, AOS/VS, Stratus VOS, and the Commodore Amiga.
  512.  
  513.  4. You should never use SET FILE COLLISION RENAME if you intend to use the
  514.     recovery feature, since that will change the partially-transmitted file's
  515.     name and Kermit won't be able to locate it during recovery operations or,
  516.     worse, will append the incoming data to the wrong file.
  517.  
  518. To recover a failed upload: reestablish the connection, access the same
  519. account and directory to which you were sending the file previously, start
  520. Kermit there and put it in RECEIVE or SERVER mode.  Then escape back to MS-DOS
  521. Kermit and give it these commands:
  522.  
  523.   SET FILE TYPE BINARY
  524.   RESEND filename [ as-name ]
  525.  
  526. The RESEND command should use exactly the same names as the SEND command that
  527. was interrupted.  When you RESEND a file, the receiving Kermit, upon getting
  528. the filename, looks up the file and gets its size; it sends the size back to
  529. the sending Kermit, and the sending Kermit resumes sending from that point;
  530. the receiving Kermit appends incoming material to the partial file rather than
  531. creating a new file.
  532.  
  533. You can recover a failed download in the same way.  Just make sure you are
  534. accessing the same directories as before, and the files have (or are being
  535. sent with) the same names as before.
  536.  
  537. When a file is being resent, the file file receiver ignores its SET FILE
  538. COLLISION setting; thus you need not change your FILE COLLISION setting when
  539. RESENDing, and you will not find it altered afterwards either.
  540.  
  541. If the RESEND command is used, but a partial file of the same name does not
  542. exist on the receiving end, RESEND behaves just like SEND -- it sends the
  543. whole file.  If the file on the receiving is the same size as the sender's
  544. copy (or larger), RESEND does nothing; both files are left alone.  These
  545. properties let you resume the interrupted transfer of a group of files.
  546. Suppose you had originally done this:
  547.  
  548.   Receiver:                Sender:
  549.    SET FILE INCOMPLETE KEEP         SET FILE TYPE BINARY
  550.    RECEIVE (or SERVER)             SEND *.ZIP
  551.  
  552. and the phone hung up in the middle of one of the ZIP files.  Just reestablish
  553. the connection, and recover this way:
  554.  
  555.   Receiver:                Sender:
  556.    SET FILE INCOMPLETE KEEP         SET FILE TYPE BINARY
  557.    RECEIVE (or SERVER)             RESEND *.ZIP
  558.  
  559. The files that were already sent are skipped, the file that was partially sent
  560. is recovered, and the files that were not sent yet are sent.
  561.  
  562. For the recovery feature feature to be useful at all, the default for SET FILE
  563. INCOMPLETE was changed from DISCARD to KEEP when the RESEND command was added
  564. in version 3.14.  Otherwise an interrupted transfer would leave no partial
  565. file behind unless you had remembered to change the default.  But now you have
  566. to pay closer attention to Kermit's messages to know whether a transfer
  567. failed; previously, if it failed, the file would not show up on the receiving
  568. end at all; now, you'll get a partial file which could easily be mistaken for
  569. a complete file unless you change the default back to DISCARD or read the
  570. screen messages, or keep a transaction log.
  571.  
  572. Using RESEND, you can write a script program to really, REALLY send a file.
  573. Here is a sample, in which we dial up a UNIX computer and send the MS-DOS
  574. Kermit distribution ZIP file.  This script program runs under C-Kermit 5A(190)
  575. or later on OS/2 (and with a change in the dialout device name, under UNIX
  576. too), and under MS-DOS Kermit 3.14 or later.  If the transfer fails, we
  577. reestablish the connection and restart the transfer from the point of failure,
  578. as many times as it takes to get the file across.
  579.  
  580. ---(cut here)---
  581. ask \%u { username: }
  582. askq \%p { \%u's password: }
  583.  
  584. ; Settings for entire session.
  585. ;
  586. define \%s 20          ; Seconds to pause between each try
  587. define \%n 7654321      ; Phone number
  588. def _modem hayes      ; Modem type
  589. set port com1          ; Communication port
  590. set speed 19200          ; Speed
  591.  
  592. set file type binary      ; File transfer mode must be binary
  593. set input timeout quit      ; This is just to keep the script program short...
  594. set count 50          ; Try up to 50 times to send the file
  595. goto nomsg          ; Skip message the first time
  596.  
  597. :LOOP              ; Come here to redial
  598. hangup              ; Give the phone a rest
  599. echo CONNECTION BROKEN.
  600. echo Pausing for \%s seconds...
  601. sleep \%s
  602. Echo redialing...
  603.  
  604. :NOMSG
  605. dial \%n          ; Dial the phone number
  606. if fail goto AGAIN      ; Keep trying...
  607. output \13          ; System answered, send a carriage return
  608. input 15 login:          ; Get login prompt
  609. output \%u\13          ; Send user ID
  610. input 8 Password:      ; Get password prompt
  611. output \%p\13          ; Send password
  612. input 60 {$ }          ; Get system prompt
  613. cd \budget          ; CD to desired local source directory
  614. output cd budget\13      ; and remote destination directory
  615. input 8 {$ }          ; Get system prompt
  616. out kermit -r\13      ; kermit -r(eceive) on remote system
  617. input 10 KERMIT READY      ; Wait for READY message
  618. pause 1              ; Plus a second for safety
  619. resend fy9495.wks      ; RESEND the file
  620. if success goto done      ; Success means file is completely transferred
  621.  
  622. :AGAIN
  623. if count goto LOOP      ; Otherwise, try again.
  624. Stop 1 Too many tries.      ; Too many tries, give up.
  625.  
  626. :DONE
  627. echo File transferred OK  ; Success, give message
  628. output exit\13          ; Log out from remote computer
  629. pause 5              ; Give it time...
  630. hangup              ; Hang up
  631. stop 0 Script succeeded      ; Finished, the end.
  632. ---(cut here)---
  633.  
  634. Manual Recovery: The PSEND Command
  635.  
  636. The PSEND ("partial send") command is like the SEND command, but it begins
  637. sending from a specified position in the file:
  638.  
  639.   PSEND <filename> <position> [ <as-name> ]
  640.  
  641. <filename> must refer to a single file, not a file group.  <position> is the
  642. byte position after which to begin sending; 0 means the beginning, 1000 means
  643. the 1001st byte.  As with the SEND command, the file is sent under its own
  644. name unless you specify an "as-name".  Unlike RESEND, PSEND can be used for
  645. both text and binary transfers; no special capabilities are required of the
  646. Kermit program on the receiving end.  The PSEND command can be viewed as a
  647. "do-it-yourself" recovery feature to be used when the other Kermit program
  648. does not support recovery, or when a text file transfer was interrupted.
  649.  
  650. For example, suppose you were sending a file called OOFA when the connection
  651. hung up, and that the receiving Kermit program had been instructed to keep
  652. incompletely received files (SET FILE INCOMPLETE KEEP).  If the transfer was
  653. in binary mode, you could note the length of the partial file on the receiving
  654. end; let's say it was 123456.  Then tell the file receiver to:
  655.  
  656.   SET FILE COLLISION APPEND
  657.   RECEIVE
  658.  
  659. and tell the sender to:
  660.  
  661.   SET FILE TYPE BINARY
  662.   PSEND OOFA 123456
  663.  
  664. If the receiver does not support SET FILE COLLISION APPEND, you could just use
  665. PSEND to create a new file:
  666.  
  667.   SET FILE TYPE BINARY
  668.   PSEND OOFA 123456 OOFA.NEW
  669.  
  670. and then, after the transfer is complete, join the two pieces together on the
  671. receiving end, using a system command or utility.
  672.  
  673. If the file transfer was in text mode, you would could use the same method IF
  674. the other computer also used CRLF for line termination (like DOS does), but if
  675. the other computer was (say) UNIX, which uses LF for line termination, the
  676. sizes would be different, and you would have to figure out the correspondence
  677. by inspection.
  678.  
  679. (4) FASTER METHOD FOR TRANSFERRING BINARY FILES
  680.  
  681. This feature (v3.13) lets you improve MS-DOS Kermit's file transfer
  682. performance on connections you know are transparent to a certain set of
  683. control characters.  It lets you tell MS-DOS Kermit exactly which control
  684. characters need to be prefixed and which ones do not when it is sending files.
  685.  
  686. SET CONTROL-CHARACTER UNPREFIXED { <code>..., ALL }
  687.   Says that you think it is safe to include the control character represented
  688.   by <code> without prefixing in packets which MS-DOS Kermit sends.  The
  689.   <code> is the numeric ASCII code for a control character, 0-31, 127-159, or
  690.   255. For example, linefeed (code 10) is normally sent as two printable
  691.   characters, #J.  SET CONTROL UNPREFIXED 10 lets linefeed be sent literally.
  692.   You can include the word ALL to unprefix all control characters, or you can
  693.   specify a list of one or more numeric values, separated by spaces.
  694.   Examples:
  695.  
  696.      SET CONTROL UNPREFIXED 31         ; A single control character
  697.      SET CONTROL UNPREFIXED 2 4 5 18 20     ; A list of control characters
  698.      SET CONTROL UNPREFIXED ALL         ; All control characters
  699.  
  700.   If you can safely declare a lot of control characters to be UNPREFIXED, you
  701.   can send binary files (particularly precompressed ones) up to about 20-25
  702.   percent faster.  If you include a control character in this category that
  703.   causes trouble, however, the transfer will fail, so experimentation is
  704.   necessary.  NOTE: This command will not allow you to "unprefix" the
  705.   following characters if MS-DOS Kermit's current FLOW-CONTROL setting is
  706.   XON/XOFF: 17, 19, 145, 147; nor will it let you unprefix characters 127 or
  707.   255 on a TELNET (SET PORT TCP/IP) connection.
  708.  
  709. SET CONTROL-CHARACTER PREFIXED { <code>..., ALL }
  710.   Says that the given control character(s) must be prefixed in Kermit packets.
  711.   By default, all control characters, 0-31, 127-159, and 255, are prefixed.
  712.   NOTE: when sending files *to* MS-DOS Kermit, you must SET CONTROL PREFIXED
  713.   (at least) 1 129 (assuming the start-of-packet character is Ctrl-A).
  714.  
  715. SHOW CONTROL-PREFIXING
  716.   Displays the code values of the control characters that are currently
  717.   UNPREFIXED.
  718.  
  719. The purpose of the SET CONTROL UNPREFIX command is to UNILATERALLY configure
  720. MS-DOS Kermit to skip prefixing and printable encoding of selected control
  721. characters to achieve higher performance when sending files.  This feature
  722. takes advantage of the fact that most (not all) Kermit programs will accept
  723. control characters within packet data-fields literally, provided they get
  724. through at all, and provided they do not have a special meaning to the
  725. receiving Kermit program (such as, in many cases, the packet-start and -end
  726. characters).
  727.  
  728. There is no protocol negotiation between the two Kermit programs to determine
  729. a "safe set" of control characters, and in fact any such negotiation would be
  730. pointless because in most cases the two Kermit programs don't have all the
  731. needed information.  For example, there might be a terminal server or PAD
  732. between them that is sensitive to a particular control character, even though
  733. the two Kermit programs are not.
  734.  
  735. If you include in your SET CONTROL UNPREFIXED list one or more control
  736. characters that are unsafe, any of several things might happen:
  737.  
  738.  1. Transfer of any file containing these characters will fail.
  739.  
  740.  2. The receiving Kermit program might be interrupted or halted.
  741.  
  742.  3. Your connection might become hung, stuck, or broken.  This includes the
  743.     situation where a control character causes a PAD, terminal server, or
  744.     similar device to change modes -- e.g. to go from online mode to command
  745.     mode.
  746.  
  747. The set of safe control characters depends on the two Kermit programs, their
  748. settings, the host operating systems and their settings, the communication and
  749. flow control methods, and all the devices, drivers, and protocols that lie
  750. between the two Kermit programs.  You must be willing to experiment in order
  751. to achieve the optimal safe set.
  752.  
  753. Under ideal conditions (totally transparent and clean serial connection, no
  754. Xon/Xoff, MS-DOS Kermit is not in SERVER mode, and C-Kermit has been told to
  755. SET TRANSFER CANCELLATION OFF), the minimum set of control characters that
  756. needs to be prefixed is:
  757.  
  758.   SENDER      RECEIVER       PREFIXED CONTROLS
  759.    MS-DOS Kermit   MS-DOS Kermit    1, 129
  760.    MS-DOS Kermit   C-Kermit        0
  761.    C-Kermit       MS-DOS Kermit    0, 1, 129
  762.    C-Kermit       C-Kermit        0
  763.  
  764. For example, to set up C-Kermit to unprefix the minimum set of prefixed
  765. control characters for sending files to MS-DOS Kermit, tell C-Kermit to:
  766.  
  767.   SET FLOW NONE           ; Or SET FLOW RTS/CTS
  768.   SET CONTROL UNPREFIX ALL
  769.   SET CONTROL PREFIX 1 129 ; C-Kermit always prefixes character 0
  770.  
  771. When the mininum set doesn't work, use the SET CONTROL PREFIX command to
  772. prefix additional control characters.  Some experimentation will be required.
  773. Here is the list of control characters that are apt to cause trouble and
  774. therefore likely candidates for prefixing:
  775.  
  776. set con p 0   ; Ctrl-@ = NUL, internal string terminator in C-Kermit.
  777.           ;         Also, often discarded as padding.
  778. set con p 1   ; Ctrl-A = Packet-start character.
  779. set con p 3   ; Ctrl-C = Packet breakout for remote-mode C-Kermit,
  780.           ;         packet breakout for server-mode MS-DOS Kermit,
  781.           ;         likely to cause interruptions on other systems.
  782. set con p 13  ; Ctrl-M = Carriage return, always prefix on TELNET connections.
  783. set con p 14  ; Ctrl-N = Shift Out
  784. set con p 15  ; Ctrl-O = Shift In
  785. set con p 16  ; Ctrl-P = Commonly-used X.25/X.3 PAD escape character
  786. set con p 17  ; Ctrl-Q = XON, must be prefixed with Xon/Xoff flow control
  787. set con p 19  ; Ctrl-S = XOFF, must be prefixed with Xon/Xoff flow control
  788. set con p 27  ; Ctrl-[ = ESC, prefix if going through some kind of ANSI device
  789. set con p 28  ; Ctrl-\ = CONNECT-mode escape for C-Kermit
  790. set con p 29  ; Ctrl-] = CONNECT-mode escape for TELNET
  791. set con p 30  ; Ctrl-^ = Cisco terminal server escape.
  792. set con p 127 ; Ctrl-? = DEL, often discarded as padding.
  793.           ;         Also becomes TELNET IAC if parity bit is added.
  794. set con p 128 ; = NUL     + 128
  795. set con p 129 ; = Ctrl-A + 128
  796. set con p 131 ; = Ctrl-C + 128
  797. set con p 141 ; = CR + 128
  798. set con p 145 ; = XON + 128
  799. set con p 147 ; = XOFF + 128
  800. set con p 255 ; 255 = TELNET IAC, use P on TCP/IP TELNET connections
  801.  
  802. Notes:
  803.  
  804.  . If MS-DOS Kermit has initiated a TCP/IP connection, prefixing of 255
  805.    (TELNET IAC) is forced automatically.
  806.  
  807.  . Kermit will not let you unprefix XON (17), XOFF (19), XON+128 (145), or
  808.    XOFF+128 (147) if its FLOW-CONTROL setting is XON/XOFF.  If you want to
  809.    unprefix these, make sure *both* Kermits have been told to SET FLOW NONE
  810.    (or RTS/CTS), and that XON/XOFF flow control is not in effect anywhere
  811.    along the communication path between the two Kermits.
  812.  
  813.  . When sending files to C-Kermit 5A(189) and earlier, you should normally SET
  814.    CONTROL PREFIX 3 and SET CONTROL PREFIX 131, because C-Kermit (by default)
  815.    takes two Ctrl-C's (3 or 131) in a row as cancellation of packet-mode.
  816.    However, you can UNPREFIX these characters if you know your file does not
  817.    contain two Ctrl-C's in a row, or if you tell C-Kermit to SET TRANSFER
  818.    CANCELLATION OFF, or SET TRANSFER CANCELLATION ON <code> <number> when you
  819.    know that <number> copies of <code> do not occur in a row in the data.
  820.    In C-Kermit 5A(190) and later, this precaution should not be necessary
  821.    (see C-Kermit 5A(190) update documentation).
  822.  
  823. (5) OTHER FILE TRANSFER IMPROVEMENTS
  824.  
  825.  . Bigger file transfer window sizes and packet buffers, depending on
  826.    available memory.  Packets may be up to 9024 bytes in length, and the
  827.    window can contain up to 31 packets of the maximum length (32 in version
  828.    3.14).  Use the regular commands to select these sizes: SET RECEIVE
  829.    PACKET-LENGTH and SET WINDOW.  Also see the Memory Management section of
  830.    KERMIT.BWR (MSKERM.BWR).
  831.  
  832.  . Locking shifts for efficient transfer of 8-bit text on 7-bit connections
  833.    (version 3.12, important for Cyrillic, Hebrew, and Japanese text):
  834.  
  835.    SET TRANSFER LOCKING-SHIFT { OFF, ON, FORCED }
  836.      The default setting is ON, meaning that MS-DOS Kermit will attempt to
  837.      negotiate use of this feature with the other Kermit if the parity is not
  838.      NONE, in which case locking shifts will be used if the other Kermit
  839.      agrees (C-Kermit 5A and IBM Mainframe Kermit 4.2.4 will agree, others
  840.      will not).     OFF means don't negotiate locking shifts, and FORCED means to
  841.      use them regardless of negotiations.
  842.  
  843.  . Dynamically varying packet length to adapt automatically to changing noise
  844.    conditions.  This happens automatically when MS-DOS Kermit is sending files.
  845.    No commands are needed.  If packets are damaged by noise or timeouts occur,
  846.    MS-DOS Kermit cuts the packet length in half and then gradually grows it
  847.    back to the maximum negotiated size as (if) transmission errors subside.
  848.  
  849.  . A file transfer "thermometer" (3.13), improved statistics reporting
  850.    including, for serial connections only, the efficiency of the transfer
  851.    expressed as a percent, the ratio of actual file characters transferred per
  852.    second to the connection speed.
  853.  
  854.    SET REPEAT { COUNTS {ON, OFF}, PREFIX <character>}
  855.      Turns repeat-count prefixing (run-length encoding) on and off, and
  856.      lets you select the repeat-count prefix.
  857.  
  858.  . Control over pathnames (3.14):
  859.  
  860.    SET { SEND, RECEIVE } PATHNAMES { ON, OFF }
  861.      RECEIVE PATHNAMES OFF is useful on BBSs or other unattended systems to
  862.      restrict incoming files to the current directory.  SEND is OFF and
  863.      RECEIVE is ON by default (except in minimal-size "Kermit Lite", which
  864.      is designed for use as an external Kermit protocol, where both are OFF)
  865.      by default.  SEND PATHNAMES, even when ON, never includes the disk
  866.      letter.  RECEIVE PATHNAMES ON expects DOS syntax; does not result in
  867.      creation of directories; OFF can be overridden by "RECEIVE filename".
  868.  
  869.  . File Lists (3.14):
  870.  
  871.    SEND @filename
  872.      If the SEND command is given an "indirect file name" (i.e. a filename
  873.      that starts with an at-sign (@)), it will read the name(s) of the
  874.      file(s) to send from the given file.  This provides a convenient method
  875.      for sending an arbitrary group of files in a single operation.  The
  876.      list of filenames can contain one filename per line, or it can contain
  877.      a comma-separated list of names, or any mixture of the two.  Filenames
  878.      can contain disk letters, directory names, and DOS-format wildcards.
  879.  
  880. (6) IMPROVED CLIENT/SERVER OPERATION
  881.  
  882. "What Am I" protocol (3.14) allows the client in a Kermit client/server
  883. relationship to announce the transfer mode (text or binary) and the filename
  884. conversion method (converted, literal) to the server.  In other words, in a
  885. client/server connection, these items are now controlled by the CLIENT rather
  886. than by the FILE SENDER, which is hopefully more what one would expect.
  887.  
  888. Various REMOTE SET commands are now effective simultaneously at the client
  889. and the server, e.g.:
  890.  
  891.   REMOTE SET FILE TYPE { TEXT, BINARY }
  892.  
  893. In version 3.14 and C-Kermit 5A(190), it is possible for the Kermit client
  894. to set and query variables in the Kermit server:
  895.  
  896. REMOTE ASSIGN <variable name> <value>
  897.   The length of the name plus the value must be less than 510 bytes.  Syntax
  898.   for the variable name is that of the other Kermit, and the variable is
  899.   \%letter or a macro name (a "user" class in remote query).  The value is
  900.   interpreted fully by the local Kermit before transmission; protect remote
  901.   variable names with double backslashes.  Example:
  902.  
  903.     remote assign \%c sending time is \v(time) var time is \\v(time).
  904.     remote query user \%c
  905.  
  906.   yields:
  907.  
  908.     sending time is 09:05:00 var time is \v(time)
  909.  
  910. REMOTE QUERY {KERMIT, SYSTEM, USER} <name>
  911.   Asks the server to send the value of the given type of variable that has the
  912.   specified name.  Responses are also recorded in \v(query) if they are short
  913.   enough to fit within one Kermit packet.  Longer results will be displayed on
  914.   the screen but not in \v(query).  KERMIT-class objects are \v(..) items, not
  915.   settable by the user.     SYSTEM-class objects are in the operating system's
  916.   enviroment (PATH and similar).  USER-class objects are variables and macros
  917.   creatable by the user, such as \%letter or a macro name.
  918.  
  919. ENABLE or DISABLE REMOTE ASSIGN and QUERY
  920.   Security controls for an MS-DOS Kermit server.  Defaults are ENABLE.
  921.  
  922. The status of a file transfer was changed in v3.14 to report SUCCESS if a file
  923. was rejected by the receiver because of date/time when SET FILE COLLISION
  924. UPDATE is in effect.  The rejection simply means the transmitted file is not
  925. newer than the current file so no transfer is needed.  A new bit-value, 256,
  926. is introduced into the \v(status) variable if a file transfer fails because of
  927. file attribute mismatches.
  928.  
  929. (7) IBM MAINFRAME FILE TRANSFER
  930.  
  931. "Doomsday Kermit" (DDK) techniques allow file transfer with IBM mainframes
  932. through 3270 protocol converters that do NOT support transparent mode, to be
  933. used in conjunction with IBM Mainframe Kermit's SET CONTROLLER FULLSCREEN
  934. command on VM/CMS, MVS/TSO, or CICS.  MS-DOS Kermit 3.13 or later and IBM
  935. Mainframe Kermit 4.2.3 or later required.  Commands:
  936.     
  937.   SET PARITY EVEN     ; Or whatever
  938.   SET FLOW XON/XOFF     ; Or whatever
  939.   SET SEND START 62     ; Greater-than sign
  940.   SET RECEIVE START 62     ; Ditto
  941.   SET BLOCK BLANK-FREE-2 ; New block-check type
  942.   SET HANDSHAKE NONE
  943.  
  944. BLANK-FREE-2 is a new block-check type, exactly like type 2, except encoded
  945. to never contains blanks.  Give IBM Mainframe Kermit the following commands:
  946.  
  947.   SET CONTROLLER FULL
  948.   SET SEND START 62
  949.   SET RECEIVE START 62
  950.   SET BLOCK BLANK-FREE-2
  951.   SET HANDSHAKE 0
  952.  
  953. Doomsday Kermit file transfers are not as reliable as regular Kermit protocol
  954. transfers, and they are much slower.  Use this method only as a last resort;
  955. that is, only when you can't get a transparent-mode fullscreen connection or
  956. a linemode connection to the mainframe.
  957.  
  958. (8) NEW CHARACTER-SET SUPPORT
  959.  
  960. (8.1) HP Roman8
  961.  
  962. The Hewlett Packard Roman8 character set is supported in version 3.14 as
  963. a terminal character set.
  964.  
  965. (8.2) SET TERMINAL CODE-PAGE
  966.  
  967. A command is available in version 3.13 and later to tell MS-DOS Kermit what
  968. your actual code page is, for purposes of character-set translation during
  969. terminal emulation:
  970.  
  971.   SET TERMINAL CODE-PAGE CPnnn
  972.  
  973. where nnn are digits.  This command is necessary because most PCs fail to
  974. report active code pages other than CP437 and CP850 correctly, and so Kermit
  975. generally has no way to find out when you have some other code page loaded.
  976. This command is distinct from SET FILE CHARACTER-SET, so you can select
  977. translations for terminal emulation and file transfer separately if you want
  978. to.  MS-DOS Kermit knows about the following code pages:
  979.  
  980.  Code Page  File-Xfer  Term-Emul  Comments
  981.    CP437    Y       Y      Original PC, and usually hardware, code page
  982.    CP850    Y       Y      Multilingual West European code page
  983.    CP852**    Y       Y      Multilingual East European code page
  984.    CP860    Y       Y      Portuguese code page
  985.    CP861**    Y       Y      Icelandic code page
  986.    CP862**    Y       Y      Hebrew code page
  987.    CP863    Y       Y      Canadian-French code page
  988.    CP865    Y       Y      Norwegian/Danish code page
  989.    CP866    Y       N      Cyrillic code page
  990.  Shift-JIS*    Y*       Y***      Japanese Kanji multibyte code page = CP982
  991.  
  992.   * New to version 3.12
  993.  ** New to version 3.13
  994. *** New to version 3.14
  995.  
  996. Specific code pages are discussed in the following sections.  Some of them
  997. can use (or must use) fonts supplied in the PCFONTS directory of the Kermit
  998. diskette.  The macros that are supplied to work with these fonts assume a
  999. screen size of 25x80.  Other screen sizes are possible; please read the
  1000. file PCFONTS\READ.ME for further information.
  1001.  
  1002. (8.3) East European Character Sets
  1003.  
  1004. Roman character sets for East European languages (Czech, Polish, Hungarian,
  1005. Romanian, etc) (version 3.13).    Commands:
  1006.  
  1007.    SET TERMINAL CHARACTER-SET LATIN2 ; ISO 8859-2 Latin Alphabet 2
  1008.    SET TRANSFER CHARACTER-SET LATIN2 ; ISO 8859-2 Latin Alphabet 2
  1009.    SET TERMINAL CODE-PAGE CP852         ; Code page 852
  1010.    SET FILE CHARACTER-SET CP852         ; Code page 852
  1011.  
  1012. MS-DOS 5.0 and later include the East European Code Page, CP852.  To use it:
  1013.  
  1014.  1. Add the following lines to your AUTOEXEC.BAT file and then reboot:
  1015.  
  1016.     C:\DOS\MODE CON: CP PREPARE=((850,,437,852) C:\DOS\EGA.CPI)
  1017.  
  1018.  4. To load the East European code page, use this DOS command:
  1019.  
  1020.     C:\DOS\MODE CON: CP SELECT=852
  1021.  
  1022. Or just use LOADFONT CP852.F16 in the Kermit diskette PCFONTS directory
  1023. (Kermit macro EFONT).
  1024.  
  1025. (8.4) The Icelandic Code Page
  1026.  
  1027. New Icelandic code page support (version 3.13).     Commands:
  1028.  
  1029.   SET TERMINAL CHARACTER-SET LATIN1 (or DEC-MCS, or whatever)
  1030.   SET TRANSFER CHARACTER-SET LATIN1
  1031.   SET TERMINAL CODE-PAGE CP861
  1032.   SET FILE CHARACTER-SET CP861
  1033.  
  1034. Use MODE CON CP PREPARE, if necessary, to install this code page.  Use MODE
  1035. CON CP SELECT=861 to load it.  Or use LOADFONT CP861.F16 in the Kermit PCFONTS
  1036. directory (IFONT macro).
  1037.  
  1038. (8.5) Cyrillic
  1039.  
  1040. Cyrillic text-file transfer has been part of Kermit since version 3.11, and is
  1041. documented in "Using MS-DOS Kermit".  For Cyrillic terminal emulation, please
  1042. refer to the READ.ME and other files in the CYRILLIC subdirectory of the
  1043. Kermit diskette, new to version 3.14.
  1044.  
  1045. (8.6) Japanese Kanji
  1046.  
  1047. MS-DOS Kermit supports conversion of multibyte Kanji character sets in both
  1048. file transfer and terminal emulation.
  1049.  
  1050. (8.6.1) Kanji File Transfer
  1051.  
  1052. The Japanese Kanji code page for PCs is CP982 (this is the FILE
  1053. CHARACTER-SET).  The Kanji code on the wire (in the file transfer packets) is
  1054. Japanese Extended UNIX Code (EUC).  For file transfer, the commands are:
  1055.  
  1056.   SET TRANSFER CHARACTER-SET JAPANESE-EUC
  1057.   SET FILE CHARACTER-SET SHIFT-JIS
  1058.  
  1059. (8.6.2) Kanji File Terminal Emulation
  1060.  
  1061. Special Japanese-model IBM PCs have Kanji fonts in firmware, allowing display
  1062. of Kanji characters in Japanese-DOS.  It is also possible to display Kanji on
  1063. USA-model IBM PCs and compatibles with VGA adapters.  In this case,
  1064. Japanese-DOS/V (not Japanese-DOS) must be used.
  1065.  
  1066. You can display Kanji even in English DOS/V if you have the Japanese font
  1067. (software) driver and Japanese (software) keyinput driver (you can even use
  1068. the 101 English keyboad).  Japanese-DOS/V is a revolutionary operating system
  1069. that opens the Japanese IBM-PC market.  Prior to DOS/V, Japanese customers had
  1070. to buy expensive special Kanji PC models that could not run English
  1071. applications.  Japanese DOS/V consists of:
  1072.  
  1073.   Baseline DOS/V
  1074.   + Japanese font driver
  1075.   + Japanese fonts
  1076.   + Japanese keyinput driver
  1077.   + Japanese dictionary
  1078.  
  1079. The Japanese font driver displays Japanese characters in VGA 640 x 480 graphic
  1080. mode, and sometimes it might conflict with English applications.  However you
  1081. can easily switch back and forth because the baseline DOS/V is the same.
  1082.  
  1083. As of v3.14, terminal emulation works in Kanji mode on Japanese DOS/V
  1084. computers when CP982 is loaded and you choose a Japanese character set with
  1085. the following command:
  1086.  
  1087.   SET TERMINAL CHARACTER-SET JIS-KANJI
  1088.  
  1089. JIS-KANJI should work for all host-based multibyte Kanji character sets; it is
  1090. the same as Japanese EUC, which is a superset of all the other Kanji sets,
  1091. such as JIS X 0208, DEC Kanji, and JIS7, and includes double-width JIS-ROMAN
  1092. in G0 and double-width JIS-KATAKANA in G2.  NOTE: In JIS-KANJI, GR points to
  1093. G3 instead of G2 (as it does in the Japanese VT382 terminal).
  1094.  
  1095. For single-width, single-byte Roman and Katakana characters, use:
  1096.  
  1097.   SET TERMINAL CHARACTER-SET { JIS-KATAKANA, JIS-ROMAN }
  1098.  
  1099. JIS-KATAKANA refers to the Katakana character set of JIS X 0201, and JIS-ROMAN
  1100. refers to the Roman character set of same standard, which is identical to
  1101. ASCII except in two positions.  JIS-ROMAN and JIS-KATAKANA can be combined
  1102. into a single 8-bit character set as follows:
  1103.  
  1104.   SET TERMINAL CHARACTER-SET JIS-ROMAN G0
  1105.   SET TERMINAL CHARACTER-SET JIS-KATAKANA G1 (or G2 or G3)
  1106.  
  1107. Because the PC local Kanji-code is Shift-JIS (CP982), TRANSPARENT can be used
  1108. if the remote Kanji code is Shift-JIS.
  1109.  
  1110. When sending characters from the keyboard (or with the TRANSMIT command), you
  1111. must first turn off the status line, because this line is used for composing
  1112. Kanji characters:
  1113.  
  1114.   SET MODE-LINE OFF
  1115.  
  1116. Then you must specify, in addition to the host character set, a shifting
  1117. method:
  1118.  
  1119.   SET TERMINAL OUTPUT-SHIFT { EUC-KANJI, DEC-KANJI, JIS7-KANJI }
  1120.  
  1121. These work as follows:
  1122.  
  1123. EUC-Kanji
  1124.   Shift-JIS Roman/ASCII  -> US-ASCII/JIS-Roman (1 byte)
  1125.   Shift-JIS Katakana     -> SS2 + JIS X 0201 (in GR) (2 bytes)
  1126.   Shift-JIS Kanji        -> JIS X 0208 (in GR) (2 bytes)
  1127.  
  1128. DEC-Kanji
  1129.   Shift-JIS Roman/ASCII  -> 1 byte US-ASCII/JIS-Roman (1 byte)
  1130.   Shift-JIS Katakana     -> JIS X 0208 Katakana (in GR) (2 bytes)
  1131.   Shift-JIS Kanji        -> JIS X 0208 Kanji (in GR) (2 bytes)
  1132.  
  1133. JIS7-Kanji
  1134.   This is not actually a shift-machanism, but rather changes the G0 character
  1135.   set between ASCII/Roman and Kanji by using ISO-2022 designation sequences.
  1136.   For Shift-JIS Katakana characters, Kermit maps to JIS X 0208 Katakana if you
  1137.   set TERMINAL CHARACTER-SET to JIS-KANJI.  On the other hand, if you SET
  1138.   TERMINAL CHARACTER-SET to JIS-KATAKANA, the Shift-In/Shift-Out mechanism is
  1139.   used.
  1140.  
  1141. For ASCII/Roman and Kanji character sets, there are several possibilities:
  1142.  
  1143. For Kanji
  1144.   Final Character
  1145.     4/0  (@)    JIS C 6226 (1978)    so-called JIS78 Kanji
  1146.     4/2  (B)    JIS X 0208 (1983)    so-called JIS83 Kanji
  1147.  
  1148. For ASCII/Roman
  1149.   Final Character
  1150.     4/2  (B)    US-ASCII
  1151.     4/10 (J)    JIS-Roman (JIS X 0201)
  1152.     4/8  (H)    This is wrong but still used in same cases, perhaps
  1153.             due to a misprint in JIS C 6228 (1975).
  1154.  
  1155. To choose one of the combinations, you can specify one of the following with
  1156. SET TERMINAL OUTPUT-SHIFT JIS7-KANJI command:
  1157.  
  1158.             Kanji desig.     ASCII/Roman desig.
  1159.     JIS83-US         <ESC> $ B        <ESC> ( B
  1160.     JIS83-Roman      <ESC> $ B        <ESC> ( J
  1161.     JIS83-75Roman    <ESC> $ B        <ESC> ( H
  1162.     JIS78-US         <ESC> $ @        <ESC> ( B
  1163.     JIS78-Roman      <ESC> $ @        <ESC> ( J
  1164.     JIS78-75Roman    <ESC> $ @        <ESC> ( H
  1165.  
  1166. For example, if your host uses JIS78-75Roman combination, use the following
  1167. command:
  1168.  
  1169.   SET TERMINAL OUTPUT-SHIFT JIS7-KANJI JIS78-75ROMAN
  1170.   
  1171. (8.7) Hebrew File Transfer and Terminal Emulation
  1172.  
  1173. Hebrew terminal emulation and file transfer were added in version 3.13.
  1174. Commands:
  1175.  
  1176.   SET TRANSFER CHARACTER-SET HEBREW
  1177.   SET FILE CHARACTER-SET CP862
  1178.   SET TERMINAL CHARACTER-SET { HEBREW-ISO, HEBREW-7 }
  1179.   SET TERMINAL DIRECTION { RIGHT-TO-LEFT, LEFT-TO-RIGHT }
  1180.   SET TERMINAL CODE-PAGE CP862
  1181.  
  1182. Version 3.14 adds a complete Hebrew support package -- keyboard mappings,
  1183. fonts, special documentation, and so on.  See the HEBREW.DOC in the HEBREW
  1184. directory for details.
  1185.  
  1186. (8.8) Character-set Translation Goal Selection
  1187.  
  1188. SET TRANSFER TRANSLATION { READABLE, INVERTIBLE }
  1189.   Default is READABLE. INVERTIBLE attempts to use code points as much in
  1190.   common between the transfer and file character sets as possible, with the
  1191.   transfer character set having priority.  Thus INVERTIBLE can create code
  1192.   points which do not display correctly on the destination machine but yield
  1193.   the closest match when a file is sent back to the originator.
  1194.  
  1195. (8.9) Terminal-to-Host Keyboard Character Shifting
  1196.  
  1197. SET TERMINAL OUTPUT-SHIFT { NONE, AUTOMATIC, SI/SO, SS2, SS3, JIS7, EUC }
  1198.   Allows you to type 8-bit characters on a 7-bit terminal connection.
  1199.   MS-DOS Kermit supplies the selected type of shifting:
  1200.  
  1201.   NONE    - (Default) No shifting
  1202.   SI/SO - Shift-In Shift-Out around each 8-bit character (GR = G1)
  1203.   SS2    - Single-Shift 2 before each 8-bit character (GR = G2)
  1204.   SS3    - Single-Shift 3 before each 8-bit character (GR = G3)
  1205.   AUTO    - Shift type depends on current character set GR assignment     
  1206.   JIS7    - For sending JIS7-coded Kanji
  1207.   EUC    - For sending EUC-coded Kanji
  1208.  
  1209. (8.10) CHINESE
  1210.  
  1211. There is nothing new here except for this explanation, courtesy of Ching Mo
  1212. Chang of Washington State University.
  1213.  
  1214. MS-DOS Kermit may be used on regular IBM PCs and compatibles equipped with
  1215. regular USA keyboard and VGA video adapter, running at least the following
  1216. Chinese versions of DOS (both of which are available via anonymous ftp as
  1217. indicated):
  1218.  
  1219.  . KCDOS - Big5 (ROC) encoding.  Host cnd.org, /pub/software/dos/chinese-sys.
  1220.  . ZWDOS - GB 2312-80 (PRC) encoding.  Host cnd.org, /pub/software/dos/ZWDOS.
  1221.  
  1222. The two encodings correspond to the two major encodings used on host computers
  1223. and services.  So you would run the appropriate DOS version, and then simply
  1224. tell Kermit to:
  1225.  
  1226.   set parity none
  1227.   set terminal bytesize 8
  1228.   set terminal character-set transparent
  1229.  
  1230. This allows Chinese characters to be viewed, typed, and transmitted during
  1231. terminal emulation.  Input is according to the input method supplied in the
  1232. particular version of DOS.
  1233.  
  1234. (9) CONNECT-MODE STATUS LINE AND POPUP HELP SCREENS
  1235.  
  1236. In version 3.14, the status line was changed to say:
  1237.  
  1238.  Esc:Alt-x help:Alt-h <host/port-info> bp1 echo:xxx <term> ....
  1239.  
  1240. This means you should use Alt-x to escape back to the prompt.  The old method
  1241. (the CONNECT-mode escape character, normally Ctrl-], followed by the letter C)
  1242. still works too.  Alt-h pops up a help screen listing the special characters.
  1243.  
  1244.   WARNING: If you remap the special characters, the status line and
  1245.   popup help screens will not know about it, so it is best not to do
  1246.   this, particularly with \Kexit (Alt-x) and \Khelp (Alt-h).
  1247.  
  1248. In v3.14, if you type the escape character, a help screen pops up
  1249. automatically so you will always know what to do next.
  1250.  
  1251. In the status line, "bp1" replaces the "parity" designation, which took up too
  1252. much space.  "b" is the character size, 7 or 8 bits (7 if Kermit's PARITY is
  1253. not NONE *or* if TERMINAL BYTESIZE is 7); "p" is the parity (n, e, o, m, s =
  1254. None, Even, Odd, Mark, or Space), and "1" means 1 stop bit (this can't be
  1255. changed, but we display it anyway).  Example:
  1256.  
  1257.  Esc:Alt-x help:Alt-h COM1 19200 7n1 echo:rem VT320 ....
  1258.  
  1259. The four dots represent the VT100 keyboard LEDs.
  1260.  
  1261. (10) THE APC ESCAPE SEQUENCE
  1262.  
  1263. ...For Auto-Upload, Auto-Download, Auto-Anything-Else...
  1264.  
  1265. The handling of the CSI ? 34 h / l escape sequences by the VT220 and VT320
  1266. terminal emulators changed between versions 3.12 and 3.13 in order to support
  1267. Hebrew VT220/320/420 terminal emulation, and because DEC software such as
  1268. DECforms expects to use these sequences to control screen-writing direction.
  1269.  
  1270. Old way (described on pages 180-181 of "Using MS-DOS Kermit"): CSI ? 34 h / l
  1271. invoked the TERMINALR and TERMINALS macros, if you had them defined.  This
  1272. required each Kermit user to define them, for example in their MSCUSTOM.INI
  1273. files, a big management problem for large user communities.
  1274.  
  1275. New way: CSI ? 34 h / l controls screen-writing direction, left-to-right or
  1276. right-to-left (for Hebrew and Arabic), as it does on real Hebrew-model VT
  1277. terminals.
  1278.  
  1279. To replace the TERMINALR/TERMINALS function, MS-DOS Kermit 3.13 and later
  1280. support the Application Program Command (APC) escape sequence, which is
  1281. accepted by Kermit's VT emulators, VT100 and above:
  1282.  
  1283.   APC <string> ST
  1284.  
  1285. In the 7-bit environment, APC is ESC _ and ST (string terminator) is ESC \.
  1286. In the 8-bit environment, APC is decimal 159 and ST is 156 decimal.  The
  1287. <string> can be any MS-DOS Kermit command or list of commands, separated by
  1288. commas, and can be up to 1024 bytes in length.    Upon receipt of this escape
  1289. sequence, MS-DOS Kermit executes the command(s) in the string and then
  1290. automatically resumes CONNECT mode.
  1291.  
  1292.   NOTE: In this respect, APC differs from the old TERMINALR/TERMINALS
  1293.   mechanism, which did NOT automatically re-enter CONNECT mode.     Thus, if
  1294.   you are recycling your TERMINALR/TERMINALS macros for APC use, be sure
  1295.   to remove the ", connect" from the end of their definitions, or else you
  1296.   will have to escape back twice the next time you want the MS-Kermit> prompt.
  1297.  
  1298. For safety, the APC mechanism is disabled unless you say otherwise.  This
  1299. is controlled by the command:
  1300.  
  1301.   SET TERMINAL APC { ON, OFF, UNCHECKED }
  1302.  
  1303. OFF (the default) means Kermit will not execute any commands and will ignore
  1304. APCs.  ON means that Kermit will execute only commands that are relatively
  1305. safe.  UNCHECKED means Kermit will execute ANY commands sent via APC,
  1306. including commands that might delete your files, etc.  UNCHECKED is required
  1307. for RUN, i.e. to run DOS commands or external programs.  Use UNCHECKED at your
  1308. own risk.
  1309.  
  1310. APC is much more flexible than the old TERMINALS/TERMINALR mechanism, and can
  1311. be used for any purpose at all.     For example, it can be used to configure
  1312. MS-DOS Kermit for use with a particular host or application by sending the
  1313. appropriate list of SET commands: communication parameters like parity,
  1314. protocol parameters like packet-length and window size, key mappings, etc.
  1315.  
  1316. It can also be used to initiate file transfers automatically from the host
  1317. without having to escape back to MS-DOS Kermit.     Here's an example you can use
  1318. with C-Kermit 5A.  In your C-Kermit 5A customization file (.mykermrc or
  1319. CKERMOD.INI), add commands like this:
  1320.  
  1321.   define autosend set delay 0, apc receive, send \%1 \%2, statistics
  1322.   define autoreceive apc {send \%1 \%2}, receive, statistics
  1323.  
  1324. The APC command is new to C-Kermit 5A(189); if you have an earlier release of
  1325. C-Kermit you can define APC as a macro:
  1326.  
  1327.   define apc output \27_\%1\27\92
  1328.  
  1329. You can set up similar procedures with IBM mainframe Kermit, e.g. in VM/CMS by
  1330. stacking commands and using XECHO to emit the escape sequences.
  1331.  
  1332. You can expand these commands to handle text and binary mode if you want to:
  1333.  
  1334.   ; Text transfers
  1335.   define tsend set del 0, set file type text, apc receive, send \%1, stat
  1336.   define treceive apc {set fil typ text, send \%1 \%2}, stat
  1337.   ;
  1338.   ; Binary transfers
  1339.   define bsend set del 0, set file type binary, apc receive, send \%1, stat
  1340.   define breceive apc {set fil typ binary, send \%1 \%2}, stat
  1341.  
  1342. Use your imagination, the possibilities are endless!
  1343.  
  1344. (11) VT320 TERMINAL EMULATION
  1345.  
  1346. The following features added in v3.14:
  1347.  
  1348. Select character attribute ; CSI Ps " q
  1349.   Ps - 0 or 2, erasable.
  1350.   PS - 1, not erasable.
  1351.  
  1352. Selective erase in display ; CSI ? Ps J
  1353.   Ps - 0, cursor to end (default).
  1354.   Ps - 1, beginning to cursor.
  1355.   Ps - 2, complete display.
  1356.  
  1357. Selective erase in line       ; CSI ? Ps K
  1358.   Ps - 0, cursor to end (default).
  1359.   Ps - 1, beginning to cursor.
  1360.  
  1361. (12) ANSI TERMINAL EMULATION
  1362.  
  1363. "ANSI" terminal emulation, useful primarily for accessing BBSs, is available
  1364. as of version 3.14 via the command:
  1365.  
  1366.   SET TERMINAL TYPE ANSI
  1367.  
  1368. ANSI emulation is similar to VT100 emulation, but with host-controlled colors
  1369. and using 8-bit IBM code-page 437 characters for line and box drawing, plus
  1370. some unique escape sequences for cursor save/restore, and different
  1371. interpretation of several other escape sequences used by the VT100.
  1372.  
  1373. Terminal screen colors are automatically set to black on white, TERMINAL
  1374. BYTESIZE is automatically set to 8, TERMINAL CHARACTER-SET is forced to
  1375. TRANSPARENT, and your code page is set to CP437 (provided you have CP437
  1376. prepared; otherwise your code page is not changed).
  1377.  
  1378. Kermit's ANSI emulation does nothing special with the keys; in particular,
  1379. there is no attempt at "PCTERM" keyboard handling, in which unique key-down
  1380. and key-up sequences are transmitted separately for every single IBM key
  1381. (including Shift, Alt, etc), apparently needed for the SCO UNIX console
  1382. terminal (also called "DOORWAY mode)", but evidently not needed for BBS's.
  1383. There is also no support for so-called ANSI music.
  1384.  
  1385. If you SET TERMINAL TYPE anything-but-ANSI after having SET TERMINAL TYPE
  1386. ANSI, your previous code page, TERMINAL BYTESIZE, COLOR, and CHARACTER-SET are
  1387. restored.
  1388.  
  1389. Hint: Some BBS's send a "cursor position report request" when you log in,
  1390. ESC [ 6 n.  When writing login scripts for BBS's, you should account for
  1391. this.  For example:
  1392.  
  1393.   input 10 \27[6n        ; Cursor position report request
  1394.   if success output \27[24;1R    ; Cursor position report
  1395.  
  1396. (13) DATA GENERAL DASHER TERMINAL EMULATION
  1397.  
  1398. MS-DOS Kermit 3.13 added built-in emulation of the Data General DASHER D463
  1399. (monochrome) and D470 (color) text/graphics terminals:
  1400.  
  1401.   SET TERMINAL TYPE { D463, D470 }
  1402.  
  1403. Because DASHER escape sequences can include XON and XOFF characters, you must
  1404. also tell MS-DOS Kermit not to use regular bidirectional Xon/Xoff flow control
  1405. during DASHER terminal emulation.  Instead, on network connections, SET FLOW
  1406. NONE; on serial connections, SET FLOW RTS/CTS if available, or else use
  1407. unidirectional Xon/Xoff with the new command:
  1408.  
  1409.   SET FLOW OUTGOING-XON/XOFF
  1410.  
  1411. For using Western European languages on a Data General host:
  1412.  
  1413.   SET TERMINAL CHARACTER-SET DG-INTERNATIONAL
  1414.  
  1415. DG function and special keys are supported via new keyboard verbs, which can
  1416. be assigned as desired with SET KEY: \KdgF1..F15, \KdgC1..C4, arrow keys,
  1417. Home, \KdgPoint, \KdgSPCL, \KdgNC.  These verbs are not assigned
  1418. automatically, you must assign them yourself.  Here, for example, is a sample
  1419. macro that assigns the DG F1-F12 keys to the PC's F1-F12 keys:
  1420.  
  1421. define dasher set key cle,set flow outgoing-xon/xoff,set term type d463,-
  1422.   set ke \315 \kdgf1,set ke \316 \kdgf2,set ke \317 \kdgf3,-
  1423.   set ke \318 \kdgf4,set ke \319 \kdgf5,set ke \320 \kdgf6,-
  1424.   set ke \321 \kdgf7,set ke \322 \kdgf8,set ke \323 \kdgf9,-
  1425.   set ke \324 \kdgf10,set ke \389 \kdgf11,set ke \390 \kdgf12
  1426.  
  1427. Verbs \KdgSF1 thru \KdgSF15, for the shifted DASHER function keys, were added
  1428. in v3.14.
  1429.  
  1430. Arrow-key codes (\Klfarr, etc) are adjusted automatically according to the
  1431. terminal type (VT52/Heath, VT100/102, VT220/320, Data General, or Wyse).
  1432.  
  1433. For SPCL key operation, see the Compose Key section below.
  1434.  
  1435. A comprehensive set of DG DASHER key assignments is given in the DASHER.INI
  1436. (MSIDGK.INI) file, supplied by Data General Corporation.  This mapping follows
  1437. that used in DG's CEO Connection product.
  1438.  
  1439. Compressed text (see section 16 below) is supported in either text or graphics
  1440. mode, depending on your video adapter and preferences; in graphics mode,
  1441. regular and compressed text can be mixed on the same screen.  Full-color DG
  1442. graphics are also supported including polygon fill, and the mouse (Microsoft
  1443. or compatible) is supported for CEO Drawing Board and other graphics
  1444. applications; mouse movements control the crosshair cursor and the left mouse
  1445. button sends \KdgF1.
  1446.  
  1447. The DG International Character Set (DGI) is supported during terminal
  1448. emulation, with conversion to CP437 if CP437 is active, otherwise to CP850.
  1449. CP850 is recommended, since it is the closest match to DGI.  Other code pages
  1450. are not supported in DG terminal emulation, nor are Hebrew, Latin/2, and Kanji
  1451. terminal emulation.  Also not supported for DG terminal emulation:
  1452. downloadable fonts/character-sets; retention of graphics screens after
  1453. escaping back or switching to text mode; compressed fonts for monochrome, CGA,
  1454. or Hercules video adapters.
  1455.  
  1456. Technical details of DG terminal emulation are listed in Appendix I.
  1457.  
  1458. (14) WYSE-50 TERMINAL EMULATION
  1459.  
  1460. MS-DOS Kermit 3.14 adds built-in emulation of the Wyse-50 text terminal.  This
  1461. emulation is about the same as Wyse-60 in "Wyse mode", since the Wyse-60 is
  1462. essentially a Wyse-50 with additional emulations added.  To emulate a Wyse-50:
  1463.  
  1464.   SET TERMINAL TYPE WYSE50
  1465.  
  1466. Wyse function keys are supported via the keyboard verbs \KwyseFn (n = 1
  1467. through 16), and shifted Wyse functions keys via \KwyseSFn.  The regular
  1468. \KxxArr verbs (xx = Up, Dn, Lf, Rt) automatically switch to Wyse mode in Wyse
  1469. emulation.
  1470.  
  1471. Restrictions include:
  1472.  
  1473.  . No function key labels, nor local or host message fields.
  1474.  . No erasing with the NUL character; space is used in all cases.
  1475.  . Video attribute Blank is ignored.
  1476.  . Split screens are ignored because insufficent information is available.
  1477.  . Local printing is severely curtailed because much makes little sense to
  1478.    DOS systems.
  1479.  . No block mode nor host controllable duplex.
  1480.  . No local editing.
  1481.  . No host control of the keyboard.
  1482.  . No host-initiated transmission of screen contents or fields.
  1483.  . No host-controlled monitor mode (use Kermit's instead).
  1484.  
  1485. Enhancements:
  1486.  . Transparent printing a`la the Wyse 60 and 50+ terminals
  1487.  
  1488. Technical details of Wyse terminal emulation are listed in Appendix I.
  1489.  
  1490. (15) COMPOSE-KEY SEQUENCES FOR ENTERING SPECIAL CHARACTERS
  1491.  
  1492. Special characters (accented letters, etc) may be entered in the normal ways
  1493. described in "Using MS-DOS Kermit", second edition, Chapter 13, and, starting
  1494. in version 3.13, as compose-key sequences via two new compose-key verbs:
  1495.  
  1496.   \Kcompose ; DEC Compose key
  1497.   \KdgSPCL  ; Data General SPCL ("special") key
  1498.  
  1499. These two verbs are identical, and are assigned to Alt-c by default.  To enter
  1500. a special character, press this key followed by two more keys.    For example,
  1501. you can enter A-acute like this:
  1502.  
  1503.   Alt-c ' A
  1504.  
  1505. That is, press Alt-c (or other key or key combination you have assigned
  1506. \Kcompose or \KdgSPCL to), then acute accent (apostrophe), then capital A.
  1507. In general, compose-key combinations are intuitive: letter+grave accent,
  1508. letter+acute accent (apostrophe), letter+doublequote (for umlaut or
  1509. diaeresis), letter+asterisk (ring above), etc; complete listing below.
  1510.  
  1511. When you press the compose key, the letter C appears at the right of the
  1512. CONNECT-mode status line and remains there until you type the next two keys.
  1513. If the two keys form a valid compose sequence, the corresponding character is
  1514. sent to the host.  If not, Kermit beeps.  In both cases, the C disappears from
  1515. the status line at the end of the compose sequence.  To cancel a compose
  1516. sequence in progress, just type one or two Ctrl-C characters (or any two
  1517. characters that are not a legal compose sequence).
  1518.  
  1519. Compose sequences are available only for those 8-bit Latin1-class (i.e.
  1520. Western European) terminal character-sets that are valid for Kermit's current
  1521. terminal emulation:
  1522.  
  1523. Terminal Type:     Character Sets:
  1524.  VT220 or 320      LATIN1, DEC-MCS
  1525.  D463 or D470      LATIN1, DG-INTERNATIONAL
  1526.  
  1527. Compose sequences are entirely independent of your PC's current code page.
  1528.  
  1529. MS-DOS Kermit's compose-key sequences are:
  1530.  
  1531. Case and order insensitive:
  1532.   Input pair        DG Int    Latin1    Graphic            
  1533.   ++            23h    n/a    #            
  1534.   AA            40h    n/a    @            
  1535.   ((            5Bh    n/a    [            
  1536.   // or /<        5Ch    n/a    \            
  1537.   ))            5Dh    n/a    ]            
  1538.   ^<space>        7Eh    n/a    ^            
  1539.   (-            7Bh    n/a    {            
  1540.   /^            7Ch    n/a    |            
  1541.   )-            7Dh    n/a    }
  1542.   <<            B1h    ABh    << (Left guillemot)
  1543.   0^ or *<space>    BCh    B0h    Degree, ring above
  1544.   +-            B6h    B1h    +-
  1545.   >>            B0h    BBh    >> (Right guillemot)
  1546.   SS            FCh    DFh    German double s (Ess-Zet)
  1547.   /U            A3h    B5h    Greek mu
  1548.   2^            A4h    B2h    2 superscript
  1549.   3^            A5h    B3h    3 superscript
  1550.   C/ or C|        A7h    A2h    Cent sign
  1551.   L- or L=        A8h    A3h    Pound Sterling
  1552.   Y- or Y=        B5h    A5h    Yen sign
  1553.   SO or S! or S0    BBh    A7h    Paragraph sign
  1554.   XO or X0        A6h    A5h    Currency sign
  1555.   A-            A9h    A4h    Feminine ordinal
  1556.   CO or C0        ADh    A9h    Copyright sign
  1557.   PP or P!        B2h    B6h    Pilcrow sign
  1558.   .^            B9h    B7h    Middle dot
  1559.   O-            AAh    BAh    Masculine ordinal
  1560.   12            A2h    BDh    Fraction one-half
  1561.   !!            ABh    A1h    Inverted exclamation
  1562.   ??            ACh    BFh    Inverted query mark
  1563.   T-            AFh    n/a    Not equals sign
  1564.   TM            B3h    AEh    Trademark sign
  1565.   FF            B4h    n/a    Florin sign (DGI only)
  1566.   <=            B7h    n/a    Less than or equals sign (DGI only)
  1567.   >=            B8h    n/a    Greater than or equals sign (DGI only)
  1568.   ,-            A1h    ACh    Not sign
  1569.   ""            BDh    A8h    Diaeresis
  1570.   ''            BEh    B4h    Accent acute
  1571.   RO            AEh    AEh    Registered sign
  1572.   ||            n/a    A6h    Vertical broken bar
  1573.   --            n/a    ADh    Soft hyphen
  1574.   -^            n/a    AFh    Macron
  1575.   ,,            n/a    B8h    Cedilla
  1576.   34            n/a    BEh    Fraction three-fourths
  1577.   XX            n/a    D7h    Multiplication sign
  1578.   -:            n/a    F7h    Division sign
  1579.   1^            n/a    B9h    Superscript 1
  1580.   14            n/a    BCh    Fraction one-fourth
  1581.  
  1582. Case and order sensitive:
  1583.   Input pair        DG Int    Latin1    Graphic            
  1584.   EO            D7h    n/a    OE digraph
  1585.   AE            C6h    C6h    AE digraph
  1586.   ae            E6h    E6h    ae digraph
  1587.   ,C            C7h    C7h    Cedilla
  1588.   ,c            E7h    E7h    cedilla
  1589.   /O            D6h    D8h    O oblique stroke
  1590.   /o            F6h    F8h    o oblique stroke
  1591.   HT            n/a    DEh    Icelandic Thorn (yes, HT, not TH)
  1592.   ht            n/a    FEh    Icelandic thorn (ht, not th)
  1593.   -D            n/a    D0h    Icelandic Eth
  1594.   -d            n/a    F0h    Icelandic eth
  1595.  
  1596. Case sensitive, order insensitive:
  1597.   Input pair        DG Int    Latin1    Graphic            
  1598.   'A            C0h    C1h    A-acute
  1599.   'a            E0h    E1h    a-acute
  1600.   `A            C1h    C0h    A-grave
  1601.   `a            E1h    E0h    a-grave
  1602.   ^A            C2h    C2h    A-circumflex
  1603.   ^a            E2h    E2h    a-circumflex
  1604.   "A            C3h    C4h    A-diaeresis
  1605.   "a            E3h    E4h    a-diaeresis
  1606.   ~A            C4h    C3h    A-tilde
  1607.   ~a            E4h    E3h    a-tilde
  1608.   *A            C5h    C5h    A-ring
  1609.   *a            E5h    E5h    a-ring
  1610.   'E            C8h    C9h    E-acute
  1611.   'e            E8h    E9h    e-acute
  1612.   `E            C9h    C8h    E-grave
  1613.   `e            E9h    E8h    e-grave
  1614.   ^E            CAh    CAh    E-circumflex
  1615.   ^e            EAh    EAh    e-circumflex
  1616.   "E            CBh    CBh    E-diaeresis
  1617.   "e            EBh    EBh    e-diaeresis
  1618.   'I            CCh    CDh    I-acute
  1619.   'i            ECh    EDh    i-acute
  1620.   `I            CDh    CCh    I-grave
  1621.   `i            EDh    ECh    i-grave
  1622.   ^I            CEh    CEh    I-circumflex
  1623.   ^i            EEh    EEh    i-circumflex
  1624.   "I            CFh    CFh    I-diaeresis
  1625.   "i            EFh    EFh    i-diaeresis
  1626.   ~N            D0h    D1h    N-tilde
  1627.   ~n            F0h    F1h    n-tilde
  1628.   'O            D1h    D3h    O-acute
  1629.   'o            F1h    F3h    o-acute
  1630.   `O            D2h    D2h    O-grave
  1631.   `o            F2h    F2h    o-grave
  1632.   ^O            D3h    D4h    O-circumflex
  1633.   ^o            F3h    F4h    o-circumflex
  1634.   "O            D4h    D6h    O-diaeresis
  1635.   "o            F4h    F6h    o-diaeresis
  1636.   ~O            D5h    D5h    O-tilde
  1637.   ~o            F5h    F5h    o-tilde
  1638.   'U            D8h    DAh    U-acute
  1639.   'u            F8h    FAh    u-acute
  1640.   `U            D9h    D9h    U-grave
  1641.   `u            F9h    F9h    u-grave
  1642.   ^U            DAh    D8h    U-circumflex
  1643.   ^u            FAh    F8h    u-circumflex
  1644.   "U            DBh    DCh    U-diaeresis
  1645.   "u            FBh    FCh    u-diaeresis
  1646.   "Y            DDh    n/a    Y-diaeresis
  1647.   "y            FDh    FFh    y-diaeresis
  1648.   'Y            n/a    DDh    Y-acute
  1649.   'y            n/a    FDh    y-acute
  1650.  
  1651. (16) WIDE SCREENS AND HORIZONTAL SCROLLING
  1652.  
  1653. Kermit changes between 80 and 132 column mode at host request (CSI ? 3 h / l)
  1654. or when you give an explicit SET TERMINAL WIDTH { 80, 132 } command.  Until
  1655. version 3.13, 132-column screens were possible only on PCs with video adapters
  1656. that have a 132-column text mode.  Now MS-DOS Kermit also includes support for
  1657. DEC VT 132-column mode and Data General compressed text on EGA and VGA video
  1658. adapters that do not have a 132-column text mode, by entering graphics mode
  1659. and writing the characters dot by dot. 128 columns are displayed rather than
  1660. 132 due to the PC's screen geometry but you can use MS-DOS Kermit's horizontal
  1661. scrolling feature to see the rightmost 4 columns.  Wide screens are handled
  1662. according to the following commands:
  1663.  
  1664. SET TERMINAL VIDEO-CHANGE {ENABLED, DISABLED, DOS-ONLY}
  1665.   Enable or disable the video screen from switching between 80 and 132
  1666.   columns.  By default, this is enabled in DOS only (DOS-ONLY).  Video-mode
  1667.   switching can wreak havoc on some (but not all) PCs when done in a Microsoft
  1668.   Windows window and so by default video-mode switching is disabled in
  1669.   Windows.  Use ENABLED to enable it AT YOUR OWN RISK.  If it works, Windows
  1670.   will probably force Kermit into a fullscreen session.  If it doesn't work,
  1671.   then disable it again and use horizontal scrolling instead, or run Kermit
  1672.   under plain DOS or in a fullscreen DOS window under Windows.  v3.14.
  1673.  
  1674. SET TERMINAL COMPRESSED-TEXT {GRAPHICS, TEXT}
  1675.   Tells whether Kermit should use text (fast) or graphics (slow) mode for
  1676.   compressed text (wide screens).  By default, it will use whichever method
  1677.   it thinks is appropriate to your video adapter.  Graphics is allowed
  1678.   on EGA, VGA or higher video systems.  v3.13.
  1679.  
  1680. Text mode will not actually display compressed text unless your video adapter
  1681. supports this function, but Kermit's virtual screen is adjusted to
  1682. the terminal-emulation width.  For example, if your screen shows 80 characters
  1683. per line, but your terminal width is 132, then wrapping occurs at column 132
  1684. (perhaps off the screen) rather than column 80, and Kermit reports its screen
  1685. width as 132 (e.g. in response to a report-request escape sequence).
  1686.  
  1687. Of course, for 132-column operation, it is always better if your video adapter
  1688. supports 132 columns directly -- the video board does all the work, which is
  1689. much faster than writing screen dots in software!  This works if Kermit knows
  1690. which kind of video adapter you have (Kermit determines this from a hopefully
  1691. unique "signature" in the video BIOS, provided it has not been hidden from
  1692. Kermit by Windows or your memory manager, see KERMIT.BWR).  Here is a list of
  1693. such boards:
  1694.  
  1695.   ATI EGA and VGA Wonder
  1696.   AST, Dell, and other boards based on Western Digital VGA boards
  1697.   AT&T / Olivetti
  1698.   Everex Viewpoint EV-659, FVGA-673, EV-678, Micro Enhancer Deluxe
  1699.   IBM SVGA (= Tseng ET4000, e.g. on PS/ValuePoint)
  1700.   IBM XGA
  1701.   Paradise AutoSwitch EGA Mono
  1702.   Paradise Professional
  1703.   Paradise VGA Plus 16 (ROM BIOS 003056-xxx firmware)
  1704.   Paradise VGA Plus (ROM BIOS 003056-xxx firmware)
  1705.   Paradise VGA Professional (ROM BIOS 003056-xxx firmware)
  1706.   Paradise VGA1024
  1707.   STB VGA/EM (Tseng TVGA)
  1708.   STB VGA/EM Plus (Tseng 4000), VGA/EM-16, VGA/EM-16 Plus
  1709.   Tseng Labs EVA board with 132-column kit installed
  1710.   Tseng Labs UltraPAK mono/Hercules with 132 column modes
  1711.   Tseng Labs ET4000 SVGA
  1712.   VESA-compatible video BIOS
  1713.   Video 7 Vega Deluxe with 132X25.COM driver installed and Video 7 VGA
  1714.  
  1715. If you have an adapter capable of 132-column operation, but Kermit does not
  1716. know how to activate it, set up your COLS132.BAT and COLS80.BAT files to do
  1717. the switching, as described in "Using MS-DOS Kermit".
  1718.  
  1719. For Data General DASHER terminal emulation, screen widths up to 207 are
  1720. supported for purposes of horizontal scrolling.  DG terminal emulation is in
  1721. text mode by default.  As soon as the host commands the terminal to display
  1722. compressed text, Kermit switches the entire screen to 132-column text mode if
  1723. your video adapter supports it, and otherwise switches to (slower) graphics
  1724. mode.  As in VT terminal emulation, this behavior is controlled by the SET
  1725. TERMINAL COMPRESSED-TEXT command.  Unlike VT terminals, DASHER terminals (and
  1726. MS-DOS Kermit, when in graphics mode) can display compressed and regular text
  1727. on the screen at the same time.
  1728.  
  1729. (16.1) WIDE SCREENS AND ROLLBACK
  1730.  
  1731. Normally, Kermit only keeps 80 columns in its screen-rollback memory.  If you
  1732. want to be able to roll back screens of 132 (or, for DG terminal emulation, up
  1733. to 207) columns, you must set the KERMIT environment variable WIDTH to 132 (or
  1734. the desired number) in your AUTOEXEC.BAT file, for example:
  1735.  
  1736.   SET KERMIT=WIDTH 132
  1737.  
  1738. The KERMIT environment variable must contain a WIDTH definition before you
  1739. start MS-DOS Kermit in order for it to take effect.  Wide rollback screens
  1740. need more memory than regular ones.
  1741.  
  1742. NOTE: The KERMIT=WIDTH value and SET TERMINAL WIDTH value are two different
  1743. things.     The former controls memory allocation in the rollback buffer, the
  1744. latter controls the actual display width (virtual or real) of your screen.
  1745.  
  1746. (16.2) HORIZONTAL SCROLLING  
  1747.  
  1748. If your logical screen width is greater than the physical screen width, MS-DOS
  1749. Kermit 3.13 lets you scroll the screen horizontally by pushing keys.  The new
  1750. keyboard verbs are:
  1751.  
  1752.   \Klfpage    Scroll left one "page" (= 20 columns) (screen moves right)
  1753.   \Klfone     Scroll left one column
  1754.   \Krtpage    Scroll right one page (screen moves left)
  1755.   \Krtone     Scroll right one column
  1756.  
  1757. These verbs are unassigned by default. Here are the commands you could add to
  1758. your MSCUSTOM.INI file if you wanted to assign them to the gray (T-pad) arrow
  1759. keys on the extended (101) PC keyboard:
  1760.  
  1761.   SET KEY \2459 \Krtpage  ; Alt-Left arrow makes screen move left on page
  1762.   SET KEY \5491 \Krtone      ; Ctrl-Left arrow moves screen one column to left
  1763.   SET KEY \2461 \Klfpage  ; Alt-Right arrow makes screen move right one page  
  1764.   SET KEY \5492 \Klfone      ; Ctrl-Right arrow moves screen one column right
  1765.  
  1766. When these keys are used in combination with the PageUp/Down keys, your screen
  1767. becomes a "virtual window" on your session, which you can move around in
  1768. arbitrary directions.
  1769.  
  1770. By analogy with SET TERMINAL ROLLBACK { ON, OFF }, which tells Kermit whether
  1771. to move a rolled-back screen automatically to the bottom when new characters
  1772. arrive from the host, the new command:
  1773.  
  1774.   SET TERMINAL HORIZONTAL-SCROLL { AUTOMATIC, MANUAL }
  1775.  
  1776. tells Kermit whether to scroll horizontally when a character arrives that
  1777. would be displayed to the left or right of the visible screen. By default,
  1778. horizontal scrolling is MANUAL during VT terminal emulation, and AUTOMATIC
  1779. during DASHER emulation.  MANUAL means you have to push keys to scroll the
  1780. screen horizontally, AUTOMATIC means that Kermit moves the screen to "catch"
  1781. incoming characters.
  1782.  
  1783. (17) EXPANDED MEMORY
  1784.  
  1785. Graphics screens and terminal rollback screens can now be kept in expanded
  1786. memory (EMS), and the size of the screen rollback buffer can selected and
  1787. changed at runtime.  When sufficient expanded memory is available, you can
  1788. have up to 8000 rollback screens.
  1789.  
  1790. SET ROLLBACK <number>
  1791.   Specifies the number of text screens to be kept in the rollback buffer.
  1792.   Each 24x80 screen occupies about 4K; bigger screens need more space.  Don't
  1793.   confuse this command with SET TERMINAL ROLLBACK, which tells what to do when
  1794.   characters arrive for the screen while it is rolled back.
  1795.  
  1796. SET TERMINAL EXPANDED-MEMORY { ON, OFF }
  1797.   Whether to use expanded memory for retention of graphics screens and for
  1798.   text terminal-emulation rollback screens.  Default is OFF, use conventional
  1799.   memory.  ON leaves extra room in conventional memory for running other
  1800.   programs, does not rely on your video adapter's memory for storing graphics
  1801.   images, and allows more rollback screens, limited only by the size of your
  1802.   PC's available physical memory.  ON requires that an expanded memory
  1803.   manager, such as EMM386 or QEMM, be used correctly to configure EMS memory.
  1804.  
  1805. See the Memory Management section of KERMIT.BWR (MSKERM.BWR) for further info.
  1806.  
  1807. (18) GRAPHICS TERMINAL EMULATION
  1808.  
  1809. SET TERMINAL GRAPHICS { ..., VESA, ...}
  1810.   VESA now supported for graphics terminal emulation (Tektronix, Sixel, etc).
  1811.   This is an 800x600 display on display adapters (e.g. SVGA) that support it.
  1812.   This in comparison to VGA with 640x480 (v3.14).
  1813.  
  1814. TIFF dumps of graphics screens have improved coloration, especially among
  1815. black and shades of gray (v3.14).
  1816.  
  1817. SAS 6.10 and later on UNIX platforms (MIPS, Intel, and Alpha as of this
  1818. writing) includes new SAS/GRAPH drivers that take advantage of Kermit's
  1819. color Sixel graphics capabilities:
  1820.  
  1821. KRMTVGA
  1822.   Requires VGA video adapter.  You must tell Kermit to
  1823.   SET TERM GRAPHICS VGA or SET TERM GRAPHICS VESA.
  1824.  
  1825. KRMTAUTO
  1826.   Requires that you set your terminal graphics to auto-sensing
  1827.   (SET TERM GRAPHICS AUTO, which is the default).
  1828.  
  1829. To view a graph from an interactive SAS/GRAPH session, use this syntax at the
  1830. beginning of your graphics program:
  1831.  
  1832.   GOPTIONS DEVICE=KRMTVGA; -or-  GOPTIONS DEVICE=KRMTAUTO; 
  1833.  
  1834. Users running release 6.08 of SAS have access to a driver called 
  1835. KERMIT that does Tektronix 4014 emulation.  Prior to that release, they
  1836. can use this syntax in their GOPTIONS statement to get a monochrome
  1837. graph:
  1838.  
  1839.   GOPTIONS DEVICE=TEK4014 GPROLOG='1b5b3f333868'x GEPILOG='1b5b3f33386c'; 
  1840.  
  1841. For more information on these device drivers, contact SAS Institute Technical
  1842. Support at (919)-677-8008 and ask for the GRAPHICS group.
  1843.  
  1844. (19) OTHER TERMINAL EMULATION CHANGES AND IMPROVEMENTS
  1845.  
  1846. SET TERMINAL ANSWERBACK { ON, OFF }
  1847.   Whether Kermit should respond with string "MS-DOS-KERMIT nnn_ttt" if, during
  1848.   terminal emulation, it receives Ctrl-E (ENQ) from host.  Default is OFF, no
  1849.   reply.  As of v3.14 nnn = Kermit version number, ttt = terminal type, e.g.
  1850.   "MS-DOS-KERMIT 314_VT320", terminated by a carriage return.
  1851.  
  1852. SET TERMINAL ANSWERBACK { MESSAGE [ text ] }
  1853.   The text, if any, is appended to the standard answerback message, separated
  1854.   by an underscore, e.g. "MS-DOS-KERMIT 314_VT320_123 Science Hall".  The text
  1855.   can be up to 30 characters long, and may contain \nnn codes, and is shown in
  1856.   the SHOW TERMINAL display as "ab msg: text".  It is not possible to replace
  1857.   the standard message, only to append additional text to it.  Thus, programs
  1858.   sending ENQ to MS-DOS Kermit programs can depend on finding the program
  1859.   name, version, and terminal type as the first three items.  v3.14.
  1860.  
  1861. SET TERMINAL COLOR 20
  1862.   If Kermit receives a "reset visual attributes" escape sequence (CSI 0 m)
  1863.   from the host, this does not affect the screen coloration.  However, some
  1864.   applications expect it to restore the default fore- and background colors.
  1865.   SET TERMINAL COLOR 20 tells Kermit to do this.  v3.14.
  1866.  
  1867. SET TERMINAL ERASE {NORMAL-BACKGROUND, CURRENT-COLOR}
  1868.   What Kermit should do about color when it receives a screen erasure command
  1869.   from the host, such as CSI Pn J, CSI Pn K, etc.  Default is NORMAL: fill the
  1870.   erased area with the default (SET TERMINAL COLOR) background color.
  1871.   CURRENT-COLOR means to use the background color most recently set by a
  1872.   host-generated CSI 4x m escape sequence.  v3.14.
  1873.  
  1874. SET TERMINAL RESET
  1875.   Causes the terminal emulator to reset to startup defaults when CONNECT mode
  1876.   is entered the next time.  The dynamic reset is still keyboard verb \Kreset.
  1877.  
  1878. SET TERMINAL TIMESLICE-RELEASE {ENABLE, DISABLE}
  1879.   ENABLE (default) lets Kermit release a CPU time slice to mulitasking systems
  1880.   Windows, OS/2, NT, and DESQview when idle.  Unfortunately, under at least
  1881.   OS/2, a Packet Driver loaded into the same DOS box may not receive enough
  1882.   CPU cycles to work effectively unless we disable timeslice-release.
  1883.   Enabling frees CPU cycles for other tasks; disabling may improve performance
  1884.   of Kermit and related comms drivers.  The timeslice release mechanism is
  1885.   active only while in CONNECT mode; the operating system's normal scheduler
  1886.   takes care of matters while at the Kermit prompt.
  1887.  
  1888. SET TERMINAL UNDERSCORE <fg-color> <bg-color>
  1889.   Lets you select the fore- and background colors for underscore simulation
  1890.   on color monitors.  Syntax is the same as SET TERM COLOR, 3x and 4x numbers.
  1891.  
  1892. Downloadable DEC function keys now have their own \Kverbs, \KudkF6..F20;
  1893. unassigned by default.
  1894.  
  1895. SET KEY now recognizes separate scan codes for the Esc, Space, and Enter keys
  1896. when combined with Ctrl, Shift, and Alt keys:
  1897.  
  1898.       Unmodified  Ctrl    Shift     Alt    C-S    C-A    S-A  C-S-A
  1899.   Space        313      1337      825    2361   1849   3385   2873   3897
  1900.   Enter        284      1308      796    2332   1820   3356   2844   3868
  1901.   Esc        257      1281      769    2305   1793   3329   2817   3841
  1902.  
  1903. Now you can make separate SET KEY assignments to each combination of Space,
  1904. Enter, and Esc with the Alt, Shift, and Ctrl keys.
  1905.  
  1906. (20) SCRIPT PROGRAMMING CHANGES AND ADDITIONS
  1907.  
  1908. \\ quoting now works.  Also \; etc.  Semicolons not preceeded by whitespace
  1909. and not at the beginning of a line are now considered to be part of the text.
  1910.  
  1911. All-new string, numeric, and file functions:
  1912.  
  1913.  \Fcharacter(number)   The character whose numeric value is given
  1914.  \Fcode(character)     The numeric code for the character
  1915.  \Fcontents(variable)  The contents of the variable (variable name is literal)
  1916.  \Fdate(filename)      The creation date of the given file
  1917.  \Fdefinition(macro)   The literal definition of the given macro
  1918.  \Ffiles(filespec)     The number of files that match the filespec
  1919.  \Findex(s1,s2,p)      The position of string s1 in s2 starting at position p
  1920.  \Flength(string)      The length of the given string
  1921.  \Fliteral(string)     The string, literally, unevaluated
  1922.  \Flower(string)       The string with uppercase letters changed to lowercase
  1923.  \Flpad(string,len,char) The string left padded to given length with char
  1924.  \Fmaximum(n1,n2)      The maximum of the two numbers, which may be variables
  1925.  \Fminimum(n1,n2)      The minimum of the two numbers, ditto
  1926.  \Fnextfile()           Next file from \Ffiles() list
  1927.  \Frepeat(string,num)  num repetitions of the string
  1928.  \Freverse(string)     The string, reversed left to right
  1929.  \Freplace(s1,s2,s3)   Replace all occurrences of s2 in the string s1 with s3
  1930.  \Fright(string,num)   The rightmost num characters of the string
  1931.  \Frpad(string,len,char) The string right-padded to given length with char
  1932.  \Fsize(file)           The size (bytes) of the given file
  1933.  \Fsubstr(string,p,len) Substring of string, starting at p, of given length
  1934.  \Fupper(string)       The string with lowercase letters changed to uppercase
  1935.  
  1936. Built-in variables (* are new to 3.14):
  1937.  
  1938.  \v(argc)        Number of arguments to current macro
  1939. *\v(carrier)        SET CARRIER setting
  1940. *\v(charset)        Code Page currently active, such as CP437
  1941. *\v(cmdfile)        Name of currently executing command file, if any
  1942. *\v(console)        ANSI if ANSI.SYS loaded, else NONE
  1943.  \v(count)        Current SET COUNT value
  1944. *\v(cmdlevel)        Command level (for macros & TAKE files)
  1945.                          0 or 1 = top level, 2 = 2nd level, 3 = 3rd level, ...
  1946. *\v(cps)        Characters per second, most recent file transfer
  1947.  \v(date)        Current date
  1948. *\v(inidir)        Full pathname of MSKERMIT.INI's directory
  1949.  \v(ndate)        Current date, numeric format
  1950.  \v(directory)        Current directory
  1951.  \v(dosversion)        Numeric DOS version, e.g. 500 for 5.00
  1952.  \v(errorlevel)        ERRORLEVEL value
  1953. *\v(inpath)        Drive:\path\ resulting from last IF INPATH command
  1954. *\v(input)        INPUT buffer, first string ending in LF, CR, or FF
  1955.  \v(keyboard)        Keyboard type, e.g. 88, 101
  1956.  \v(line)        Synonym for \v(port)
  1957. *\v(monitor)        Monitor type - COLOR, MONO
  1958. *\v(parity)        Current SET PARITY setting
  1959.  \v(platform)        IBM-PC (or other)
  1960.  \v(port)        Current SET PORT setting
  1961.  \v(program)        MS-DOS_KERMIT
  1962. *\v(prompt)        Current SET PROMPT setting
  1963. *\v(query)        Result of last REMOTE QUERY command, if not a file
  1964.  \v(session)        Current TCP/IP session number (1 through 6)
  1965. *\v(tcpip_status)    Status of current TCP/IP session
  1966. *\v(space)        Free space on current disk, bytes
  1967.  \v(speed)        Current SET SPEED setting
  1968. *\v(startup)        Disk:\Directory\ from which Kermit was started
  1969.  \v(status)        Status of most recent command, 0 = success
  1970. *\v(sysid)        System identification in Kermit packets (U8)
  1971.  \v(system)        MS-DOS
  1972.  \v(tcp_status)        TCP connection status
  1973.  \v(terminal)        Current SET TERMINAL TYPE setting
  1974.  \v(time)        Current time
  1975.  \v(ntime)        Current time, numeric (seconds since midnight)
  1976.  \v(version)        MS-DOS Kermit numeric version number, e.g. 314
  1977.  
  1978. Note: \v(ndate) and \v(ntime) are suitable for construction of filenames.
  1979.  
  1980. New or changed commands:
  1981.  
  1982. ASK[Q] <variable-or-macro-name> prompt
  1983.   Modified to retain the response string literally rather than expand
  1984.   embedded substitution variables (version 3.14).
  1985.  
  1986. APC text
  1987.   Sends text string (Kermit commands to be executed on the other end) with
  1988.   prefix of ESC _ and postfix of ESC \ out the currently selected port.  This
  1989.   is an Applications Program Command to receptive VT200 and above terminal
  1990.   emulators.  C-Kermit 5A(190) and MS-DOS Kermit 3.13 and later understand APC
  1991.   sequences while in CONNECT mode.
  1992.  
  1993. CD <anything>\
  1994.   Now works in DOS 5.00 (previously DOS would object to the trailing
  1995.   backslash). Numerically named directories, such as CD \123 should be denoted
  1996.   with double slashes, as CD \\123, to prevent conversion to an internal
  1997.   binary number during command reading.  v3.14.
  1998.  
  1999. CHECK {TCP/IP, NETWORKS, GRAPHICS, TERMINALS}
  2000.   Tests if these conditional-build items are present in MS-DOS Kermit. Reports
  2001.   success or failure.
  2002.  
  2003. GETC <variable-or-macro-name> <prompt>
  2004.   Like ASK, but reads a single character from the keyboard.  v3.14.
  2005.  
  2006. END [ <number> [ <text> ] ]
  2007.   Stops execution of the current macro or TAKE file and returns immediately to
  2008.   the level which invoked it, i.e. the next higher level.  <number> and <text>
  2009.   are used as in the STOP command. v3.13.  POP is a synonym for END.
  2010.  
  2011. IF DIRECTORY <string> <command>
  2012.   Executes the <command> if <string> is the name of an existing directory.
  2013.   v3.14.
  2014.  
  2015. IF INPATH filename
  2016.   Saves the resulting path, if the file were found, in variable \v(inpath).
  2017.   Command success or failure indication continues to work as before.  v3.13.
  2018.  
  2019. IF NEWER <file1> <file2> <command>
  2020.   Executes the <command> if <file1> is newer than <file2>.  v3.14.
  2021.  
  2022. IF NUMERIC <string> <command>
  2023.   Executes the <command> if <string> contains only digits.  v3.14.
  2024.  
  2025. IF < <number> <number> <command>
  2026. IF = <number> <number> <command>
  2027. IF > <number> <number> <command>
  2028. IF COUNT, IF NUMERIC, IF VERSION
  2029.   Now all work with 32-bit numbers, v3.14.
  2030.  
  2031. IF [ NOT ] EXIST <filename>
  2032.   Succeeds if the given file exists, fails otherwise.
  2033.  
  2034. IF [ NOT ] INPATH <filename>
  2035.   Succeeds if the given file can be found by normal DOS search rules, i.e. if
  2036.   it is in the current disk/directory, or in the DOS PATH, and if it succeeds,
  2037.   sets \v(inpath) to the path where the file was found.  v3.14.
  2038.  
  2039. INCREMENT <variable> [ <value> ]
  2040.   Adds the <value>, which must be a positive number (or a variable that
  2041.   evaluates to a positive number), to the value of the given variable.    If the
  2042.   <value> is not specified, then 1 is added.  If the <variable> is not defined
  2043.   or has a non numeric value, the command fails and the value of the variable
  2044.   is not altered.  As of v3.14, INCREMENT works with 32-bit numbers.
  2045.  
  2046. DECREMENT <variablename> [ <value> ]
  2047.   Subtracts the <value>, which must be a positive number (or a variable that
  2048.   evaluates to a positive number), from the value of the given variable.  If
  2049.   the <value> is not specified, then 1 is subtracted.  If the <variable> is
  2050.   not defined or has a non numeric value, the command fails and the value of
  2051.   the variable is not altered.    As of v3.14, works with 32-bit numbers.
  2052.  
  2053. MPAUSE <number>
  2054.   Like PAUSE, but pauses for the given number of milliseconds.  v3.14.
  2055.  
  2056. OUTPUT \L
  2057.   Sends a Long BREAK (1.5 sec) (v3.13).     OUTPUT \B continues to send a regular
  2058.   BREAK (250 msec).  On TELNET connections, both of these send a TELNET BREAK.
  2059.  
  2060. READ <variablename>
  2061.   No longer processes the data it reads; it is stored literally in the
  2062.   variable.  v3.14.
  2063.  
  2064. SET TAKE { ERROR, ECHO } { ON, OFF }
  2065. SET MACRO ERROR { ON, OFF }
  2066.   Separate control of echoing and error handling in macros and TAKE files.
  2067.   ECHO ON means to echo commands as they are read from the file or macro
  2068.   definition.  ERROR ON means to exit from the command file or macro
  2069.   definition if an error occurs; ERROR OFF means don't exit, continue
  2070.   processing (e.g. let errors be handled by IF FAILURE / IF SUCCESS).  v3.14.
  2071.  
  2072. SET MODEM [ <text> ]
  2073.   Synonym for DEFINE _MODEM <text>.  v3.14.
  2074.  
  2075. SET PROMPT <text>
  2076.   <text> now evaluated each time prompt is printed.
  2077.   So "SET PROMPT [\v(dir)] MS-Kermit>" always shows your current directory,
  2078.   "SET PROMPT \v(time)>" shows the current time, etc.  v3.14.
  2079.  
  2080. SLEEP { <number>, <hh:mm:ss> }
  2081.   Like PAUSE, but does not sample the communications device.  But it does
  2082.   sample the keyboard (like PAUSE) and wakes up if a key is pressed.  v3.14.
  2083.  
  2084. STOP [ <number> [ <text> ] ]
  2085.   Stops execution of the current macro or TAKE file and returns immediately to
  2086.   top command level.  The <number> and <text> operands are new to v3.13.
  2087.   <number> is a return code that can be tested by IF SUCCESS.  It is also
  2088.   assigned to \v(status).  Text is an optional message to be printed.
  2089.  
  2090. Hidden script support commands, v3.14:
  2091.  
  2092. _ASSIGN and _DEFINE
  2093.   These are the same as ASSIGN and DEFINE, except the destination macro name
  2094.   is subject to expansion of embedded substitution variables, as in "_define
  2095.   foo\%a this is a definition".
  2096.  
  2097. FORWARD label
  2098.   Like GOTO except the label search starts at the current position and looks
  2099.   only forward rather than from the beginning as GOTO does.  Failures pop up
  2100.   through the command stack, all searches are still only forward.
  2101.  
  2102. (21) GENERAL COMMUNICATIONS
  2103.  
  2104. SET CARRIER { ON, OFF } specifies treatment of Carrier Detect signal:
  2105.   OFF  = ignore it.
  2106.   ON   = require it at all times except during DIAL macro execution.
  2107.  
  2108. SET STOP-BITS { 1, 2 }
  2109.   Set serial port stop-bits to 1 (default) or 2.  2 is hardly ever needed.
  2110.   v3.14.
  2111.  
  2112. SET EXIT WARNING { ON, OFF }
  2113.   If you try to EXIT from Kermit while a connection (serial or network)
  2114.   appears to be active, Kermit warns you and gives you a chance to change
  2115.   your mind if SET EXIT WARNING is ON.  If OFF, it just EXITs with no
  2116.   questions asked (as in v3.13 and earlier).  v3.14.
  2117.  
  2118. SET PORT SUPERLAT <nodename>
  2119.   Support for Meridian Technology SuperLAT network interface.  v3.14.
  2120.  
  2121. TEST COMx
  2122.   Tests to see if COMx (x = 1..4) is present and usable.  v3.14.
  2123.  
  2124. (22) COMMAND PARSER
  2125.  
  2126. Display of substitution variables and functions changed in v3.14.  Now the
  2127. original typing (or TAKE file content) is displayed without showing the
  2128. replacement text.  Character and word deletion thus operate on what is visible
  2129. rather than on the underlying contents.  This simplifies the presentation and
  2130. makes it more intuitive.  Context sensitive help, "?", extends to functions
  2131. and variables nested within functions and variables.
  2132.  
  2133. (23) TCP/IP NETWORKING
  2134.  
  2135. See the networks sections in KERMIT.HLP, KERMIT.BWR, and NETWORKS\SETUP.DOC
  2136. for additional information.  New networking features since "Using MS-DOS
  2137. Kermit", second edition, was published include:
  2138.  
  2139.  . Support for ODI, SLIP, and Novell SLIP_PPP drivers, support for
  2140.    Telebit PPP drivers.
  2141.  
  2142.  . Up to six simultaneous TCP/IP sessions.
  2143.  
  2144.  . TCP/IP fixes, speedups, and refinements (packet fragment reassembly, 
  2145.    additional ICMP responses, user-selectable maximum segment size, tighter 
  2146.    round trip timing estimation, much higher long-distance throughput,
  2147.    and ensuring the TCP PUSH bit is always set to help some older servers.)
  2148.  
  2149. New commands:
  2150.  
  2151.    SET PORT BWTCP <ip-address> (v3.14)
  2152.      Make a TCP/IP connection using the Beame & Whiteside TCP/IP protocol
  2153.      stack.
  2154.  
  2155.    SET TCP ADDRESS TELEBIT-PPP (v3.14)
  2156.      Use Telebit's PPP ODI driver, and get my TCP address from there. Section
  2157.      PROTOCOL KERMIT of Novell's NET.CFG can hold a line such as MYIP below 
  2158.      which will have the IP number filled in by the PPP driver:
  2159.  
  2160.     Protocol KERMIT
  2161.         bind telebit
  2162.         MYIP   123.123.123.2        < MYIP word to match ODIPPP
  2163.                         < ODIPPP writes IP number
  2164.     Link Driver ODIPPP
  2165.         Frame PPP
  2166.         Protocol IPX  0 PPP
  2167.         Protocol IP   0800 PPP
  2168.         Protocol ARP  0806 PPP
  2169.         Protocol RARP 8035 PPP
  2170.         IPCP DYNAMIC "PROTOCOL KERMIT: MYIP:" < matches spelling above
  2171.  
  2172.    SET TCP/IP MSS <number> (v3.14)
  2173.      Maximum TCP Segment Size, to override built-in defaults of 1046 bytes 
  2174.      local and 536 bytes if routed (plus 40 bytes TCP and IP headers).    This
  2175.      may be considered MTU (maximum transmission unit) but smarter because
  2176.      TCP informs the other side.  Maximum size is 1460 bytes (1500 byte pkt).
  2177.  
  2178.    SET TCP/IP PACKET-DRIVER-INTERRUPT { <number>, ODI } (v3.12)
  2179.      Normally Kermit searches from 0x60 to 0x7e for a packet driver.  This
  2180.      command allows you to (a) specify a particular interrupt, in case you
  2181.      have more than one packet driver loaded, or (b) tell Kermit to skip the
  2182.      packet-driver interrupt search and use the ODI interface.    Note: the ODI
  2183.      interface is used by default for TCP/IP connections if a packet driver
  2184.      cannot be found but an ODI driver can be found.
  2185.  
  2186.  . The ability to select a particular TCP port when making a connection:
  2187.  
  2188.    SET PORT TCP/IP <ip-name-or-address> [ <tcp-port-number> ]
  2189.      The default TCP port number is 23, which is the TELNET protocol socket.
  2190.      You can specify any other port number except 25.  Version 3.12.
  2191.  
  2192.  . New TCP/IP server mode accepts incoming TCP/IP connections (v3.12):
  2193.  
  2194.    SET PORT TCP/IP * [ <tcp-port-number> ]
  2195.      If you specify asterisk (*) instead of an IP host name or address,
  2196.      MS-DOS Kermit waits for an incoming connection on the specified TCP
  2197.      port (23 by default).  This connection is useful only when MS-DOS Kermit
  2198.      is in SERVER mode or, for chatting, CONNECT mode.    It does not give
  2199.      clients a DOS command processor.
  2200.  
  2201.  . RFC 1395 BOOTP compliance allows MS-DOS Kermit to receive its fully
  2202.    qualified domain name from a BOOTP server.  Also, MS-DOS Kermit's SHOW
  2203.    COMMUNICATIONS command now displays the IP address of the BOOTP server
  2204.    from which its TCP/IP parameters were received.
  2205.  
  2206.  . New commands to govern TELNET protocol:
  2207.  
  2208.    SET { TCP/IP == TELNET } (TCP/IP and TELNET are synonyms)
  2209.    SET TELNET TERM-TYPE <text>
  2210.      Normally, MS-DOS Kermit sends its actual terminal-emulation type when the
  2211.      remote TELNET server asks for a terminal type report. But the remote
  2212.      computer might not support Kermit's current terminal type, or might know
  2213.      it by a different name.  This command lets you specify a terminal-type
  2214.      name for Kermit to send instead of the normal one.
  2215.  
  2216.    SET TELNET NEWLINE-MODE { OFF, ON, RAW }
  2217.      During terminal emulation on a TCP/IP connection, MS-DOS Kermit follows
  2218.      the TELNET specification and transmits carriage and line feed (CRLF)
  2219.      whenever you type carriage return (the Enter key).  If the remote TELNET
  2220.      server is confused by this, use SET TCP/IP NEWLINE-MODE OFF to make
  2221.      Kermit send CR and NUL rather than CR and LF, or RAW to send CR "bare".
  2222.  
  2223.    SET TELNET MODE { NVT-ASCII, BINARY }
  2224.      NVT-ASCII is the normal TELNET mode; you may also select BINARY if
  2225.      needed.  Mode selection is effective only when starting a connection, and
  2226.      can be overriden by TELNET negotiations.
  2227.  
  2228.    SET TELNET DEBUG-OPTIONS { ON, OFF } = OFF
  2229.      In v3.14 you can display TELNET option negotiations on the screen capture
  2230.      them in screen dump or session log files, or print them, just like any
  2231.      other CONNECT-mode screen text. DEBUG-OPTIONS is useful for debugging
  2232.      misbehaving TELNET sessions.  Refer to the TELNET RFCs, or a TCP/IP book,
  2233.      for an explanation of what they mean.
  2234.  
  2235.  . MS-DOS Kermit now replies to traceroute requests, handles ICMP redirects.
  2236.  
  2237.  . TELNET window (i.e. screen) size (NAWS) negotiation.
  2238.      When using Kermit's internal Telnet and the remote host has agreed to the
  2239.      TELNET option to receive screen dimensions each time the Kermit screen
  2240.      changes size, then Kermit sends the appropriate TELNET Option report.
  2241.  
  2242. (24) MULTIPLE TCP/IP SESSIONS -- KERMIT'S TCP/IP SESSION MANAGER
  2243.  
  2244. MS-DOS Kermit 3.13 and later support up to six simultaneous TCP/IP sessions.
  2245. Each session is identified by a digit, 1 to 6.    The commands are:
  2246.  
  2247. SET PORT TCP <ip-hostname-or-address> [ <tcp-port-number> ]
  2248.   Starts a new session and assigns it a session number, 1 to 6.
  2249.    
  2250. In v3.14, command syntax was added to allow you to say whether a SET PORT TCP
  2251. <host> command should continue an existing session or start a new session, so
  2252. now it's possible to have multiple sessions to the same host:
  2253.  
  2254. SET PORT TCP/IP <host> <port> [ NEW ]
  2255.   Starts a new session to the given host, even if there is an existing session
  2256.   to that same host.  NEW is the default.
  2257.  
  2258. SET PORT TCP/IP <host> <port> RESUME
  2259.   Resumes a current session on the given host.
  2260.  
  2261. SET PORT TCP/IP <session number 1..6>
  2262.   Resumes a current session whose session identification is 1..6.
  2263.   Use SHOW SESSION to see which session numbers are defined.
  2264.  
  2265. \v(session)
  2266.   This variable contains the current TCP/IP session number, 1 to 6.
  2267.  
  2268. \KnextSession
  2269.   New CONNECT-mode keyboard verb to toggle instantaneously among active TCP/IP
  2270.   sessions, round-robin style.
  2271.  
  2272. Alt-n
  2273.   This is the default key assignment for the \KnextSession verb.
  2274.  
  2275. SHOW SESSIONS
  2276.   Displays current sessions.
  2277.  
  2278. DEFINE SESSION1 <text>
  2279.   Defines a macro to be executed when switching to session 1.
  2280.   SESSION2 is for session 2, and so on, through SESSION6.
  2281.  
  2282. The terminal-emulation status line shows current session number and name.
  2283. Most communication- and terminal-related settings are preserved for each
  2284. session, including the last terminal screen, the key map, the terminal type,
  2285. echoing, etc.  Use the SESSIONn macros to take care of any items that are not
  2286. preserved.  The screen rollback buffer is common to all sessions.
  2287.  
  2288. Suppose you normally access two TCP/IP hosts, a DEC VMS and a Data General
  2289. AOS/VS system, and you would like to keep sessions to both alive at once.
  2290. Alt-n switches between them instantaneously, and you can also define
  2291. convenient macros for use at the command prompt or in script programs, such as
  2292. the following, which make the initial connection to each host, and then
  2293. redefine themselves to continue the same session thereafter:
  2294.  
  2295. define vax -
  2296.   telnet vax 23 vt320,-
  2297.   if success assign vax telnet \v(session)
  2298.  
  2299. define dg -
  2300.   telnet dg 23 d463,-
  2301.   if success assign dg telnet \v(session)
  2302.  
  2303. (TELNET is a macro defined in the MS-DOS Kermit MSCUSTOM.INI file.  See
  2304. KERMIT.HLP for more information.)
  2305.  
  2306. When a connection is closed, the port number is lost.  So if you had a TCP/IP
  2307. session to a non-TELNET port (i.e. not 23), and it was closed, and you
  2308. continue the session, it will connect to port 23 rather than to the session's
  2309. previous port.
  2310.  
  2311. (25) SMALL MEMORY-SIZE EDITIONS
  2312.  
  2313. A special "medium" edition of MS-DOS Kermit v3.14 shrinks the program
  2314. executable from about 262KB to 181KB (before packing; see next paragraph) by
  2315. removing all networking support and graphics terminal emulation.  A "lite"
  2316. edition removes all terminal emulation and networking support, and so
  2317. communication is possible only in remote mode (e.g. on a BBS), or via script
  2318. programs.  The size is about 121KB.  Features omitted are displayed on the
  2319. startup herald and are also CHECK-able with the CHECK command.  Lite editions
  2320. require separate patch files.
  2321.  
  2322. In version 3.14, Kermit executables are built (for the first time) with the
  2323. "pack" linker option, which shrinks the size of the .EXE file.
  2324.  
  2325.             Normal    Packed    Savings
  2326.   Full       262K      228K       34K
  2327.   Medium     181K      158K       23K
  2328.   Lite       121K      103K       18K
  2329.  
  2330. (26) BBS OPERATORS GUIDE
  2331.  
  2332. Most BBSs today either lack support for Kermit protocol, or supply a poor
  2333. implementation.  Now BBSs can use the Real Thing, MS-DOS Kermit itself, as an
  2334. external protocol.  "Kermit Lite" is a tiny but full-featured Kermit protocol
  2335. and script execution engine.
  2336.  
  2337. Why add or upgrade Kermit file transfer?
  2338.  
  2339.  1. Make your BBS accessible to Kermit software programs, which do not
  2340.     include support for other protocols.  Recent releases of MS-DOS and
  2341.     OS/2 C-Kermit include ANSI terminal emulation, favored by BBSs.
  2342.  
  2343.  2. Kermit file transfer is (at least arguably) more robust than other
  2344.     protocols used on BBSs.  That is, it works better when connections
  2345.     are noisy.  And, properly implemented and configured, it is just as
  2346.     fast or faster than other protocols.
  2347.  
  2348.  3. Kermit protocol survives 7-bit connections; most other protocols
  2349.     do not.  This is important when callers arrive over public data networks
  2350.     and other non-direct paths.
  2351.  
  2352.  4. Kermit protocol can be used by Internet-accessible BBSs and other
  2353.     services.  It works well over TELNET connections, even 7-bit ones,
  2354.     and Kermit TELNET clients are available for most popular operating
  2355.     systems: DOS, Windows, OS/2, UNIX, VMS, etc.
  2356.  
  2357.  5. Only Kermit protocol is capable of converting from one text character
  2358.     set to another during text-file transfer: This is vital as the BBS
  2359.     world becomes more international, and the BBS client hardware more
  2360.     heterogeneous.  Remember: Not all computers use IBM Code Pages to
  2361.     to represent non-English text!
  2362.  
  2363.  6. MS-DOS Kermit can "autoconfigure" callers for maximum performance,
  2364.     and can initiate "autoupload" and "autodownload" operations without user
  2365.     intervention, provided the client software is MS-DOS Kermit 3.13 or
  2366.     later, or C-Kermit 5A(190) or later for UNIX, OS/2, or VMS.
  2367.  
  2368. Follow the instructions that come with your BBS software for installing
  2369. external protocols.  Generally, you must disable the internal Kermit protocol,
  2370. if there is one.  For example, set the security level of the internal Kermit
  2371. to "sysop", or at least out of reach of the normal caller.  Then add Kermit as
  2372. an external protocol.  This typically involves assigning a command letter to
  2373. the protocol and defining two MS-DOS batch files to be executed for uploads
  2374. and downloads, respectively.
  2375.  
  2376. (26.1) USING PORTS AND DRIVERS
  2377.  
  2378. MS-DOS Kermit operates over existing drivers and over existing settings of
  2379. standard serial ports. It leaves modem signal DTR asserted (high) when it
  2380. exits so a connection can persist beyond Kermit's use of the line.  It uses
  2381. the existing port speed unless instructed otherwise, and it expects the port
  2382. to configured for 8 bits no parity (parity is handled internally by software).
  2383. If the communications hardware employs parity in hardware then tell Kermit to
  2384. use the same parity (command SET PARITY).
  2385.  
  2386. Fossil drivers (see Section 2 above) can be used by telling Kermit to SET PORT
  2387. FOSSIL n, where n is the Fossil port number (1 to 99).  This enables efficient
  2388. block-mode i/o with the fossil driver.  Speed and flow control must be set in
  2389. the fossil driver, not in Kermit.  You can also use SET PORT BIOSn, n=1-4;
  2390. less efficient, but might work if SET PORT FOSSIL does not.  If the hardware
  2391. ports are accessed via SET PORT COM1 or SET PORT 1 then the fossil driver
  2392. might or might not survive; please be careful.
  2393.  
  2394. Of course, you can also use Kermit's built-in COM port driver via SET PORT
  2395. COM1 thru COM4; this method will be fastest of all, but is limited to standard
  2396. COM ports.  Non-standard serial port hardware and IRQs for COM1 to 4 are
  2397. stated to Kermit with command SET COMn <port> <irq>, where again n=1-4.  COM
  2398. ports above 4 (e.g. on Digiboards) can be accessed via Fossil drivers or by
  2399. other tricks (see KERMIT.BWR).
  2400.  
  2401. (26.2) GENERAL SETUP
  2402.  
  2403. Kermit commands appearing in the BBS's MSKERMIT.INI file might be:
  2404.  
  2405.   SET PARITY NONE          ; Usually no parity on BBS
  2406.   SET BLOCK 3           ; CRC checking for security 
  2407.   SET RECEIVE PACKET 2000  ; Long packets from client, upper limit
  2408.   SET WINDOW 4           ; Sliding windows, upper limit
  2409.   SET FILE TYPE BINARY       ; Fine for all DOS to DOS transfers(*)
  2410.   SET CONTROL UNPREFIX ALL ; Unprefix all control characters except...
  2411.   SET CON P 0 1 3 13 17 19 129 131 141 145 147
  2412.   SET RECEIVE PATH OFF     ; Restrict uploads to current directory
  2413.   SET FILE COLL OVERWRITE  ; Incoming files overwrite old files of same name
  2414.   SET CARRIER ON           ; Recover from hangups immediately
  2415.   SET FILE DISPLAY QUIET   ; No file transfer display
  2416.   SET BELL OFF             ; Be quiet
  2417.   SET EXIT WARNING OFF     ; Unattended, don't ask for permission to exit
  2418.   LOG TRANSACTION          ; Log transfers to TRANSACT.LOG if desired(**)
  2419.   DEFINE BSEND SET FILE TYPE BINARY, SEND \%1 ; Use macros for command
  2420.   DEFINE TSEND SET FILE TYPE TEXT, SEND \%1   ; line brevity...
  2421.  
  2422.  (*) Unless character-set translation is needed.
  2423. (**) Or specify a different filename; generate a unique one using \v(ndate)
  2424.      and \v(ntime).
  2425.  
  2426. The MSKERMIT.INI settings can be overriden on the Kermit command line as
  2427. illustrated below.
  2428.  
  2429. The BBS software should invoke MS-DOS Kermit with "command-line arguments",
  2430. i.e. commands to be executed, given on the same line as the "kermit" command.
  2431. Multiple commands can be separated by commas.  Kermit will execute the
  2432. commands and then exit automatically when done.
  2433.  
  2434.   WARNING: There is a limit to how long a command line can be, usually
  2435.   about 127.  If you need to issue more commands than will fit on the
  2436.   command line, simply collect them into a file, and then invoke Kermit
  2437.   with a TAKE command for that file.
  2438.  
  2439. Communication parameters should be given on the Kermit command line for each
  2440. session, along with the file transfer commands.  The initialization file is
  2441. read and executed, then the command line material is executed, and finally
  2442. Kermit exits when done.  Examples (note the use of BSEND and TSEND macros):
  2443.  
  2444.   kermit set port fossil 17, bsend foo.zip
  2445.   kermit set port 2, set speed 57600, set flow rts/cts, bsend bar.zip
  2446.   kermit set com3 \x3e8 5, set por 3, set flow rts/cts, set sp 57, bs baz.zip
  2447.   kermit set port bios1, tsend oofa.txt
  2448.  
  2449. Real Kermit software, including MS-DOS Kermit 3.13 and later and C-Kermit
  2450. 5A(190) and later (OS/2, UNIX, and VMS versions), when used to dial up a BBS,
  2451. can be configured automatically by the BBS software provided the caller has
  2452. "set terminal apc on" to enable this feature.  The BBS software can then set
  2453. the optimal file transfer parameters in calling Kermit program, and also
  2454. initiate up- and downloads automatically.  Read section 10, THE APC ESCAPE
  2455. SEQUENCE, in this document.  For example:
  2456.  
  2457.   kermit -f download.scr, set file type <text-or-binary>, send <filename>
  2458.  
  2459. where DOWNLOAD.SCR might look like this:
  2460.  
  2461.   SET BLOCK 3 ; etc etc, as above
  2462.   APC SET WINDOW 4, SET REC PACK 2000, RECEIVE    
  2463.  
  2464. (26.3) FILE TRANSFER
  2465.  
  2466. When MS-DOS Kermit is to receive files, it can be invoked in several ways.
  2467. The transfer mode (text or binary) is determined by the file sender, unless
  2468. it is an extremely primitive Kermit implementation that does not support
  2469. attribute (A) packets (in which it must be given an explicit SET FILE TYPE
  2470. command first):
  2471.  
  2472.  1. Receive a file or files, and store them according to the name they come
  2473.     with; if the incoming name includes a disk letter or directory name,
  2474.     use them when storing the file:
  2475.  
  2476.       kermit set receive pathnames on, receive
  2477.  
  2478.  2. Receive files, store them with the name they were sent with, but in the
  2479.     current directory:
  2480.  
  2481.       kermit set receive pathnames off, receive
  2482.  
  2483.  3. Receive files, store them under their own names, but in the TEMP directory
  2484.     on the D disk:
  2485.  
  2486.       kermit receive d:\temp
  2487.  
  2488.  4. Receive a file, store it with the name "oofa.txt" in the current
  2489.     directory, no matter what name it was sent with:
  2490.  
  2491.       kermit receive oofa.txt
  2492.  
  2493.  5. Receive a file, store it as d:\uploads\abc.xyz, no matter what name
  2494.     it was sent with:
  2495.  
  2496.       kermit receive d:\uploads\abc.xyz
  2497.  
  2498. When MS-DOS Kermit is to send files, it can be given the name(s) of the
  2499. file(s) to send in several ways.  In this case, Kermit should be told what
  2500. mode, text or binary, in which to send the file.  The default mode is text,
  2501. but since the MSKERMIT.INI file might have changed the default, it is best
  2502. to be explicit about it.
  2503.  
  2504.  1. A single filename on the command line, as in these examples:
  2505.  
  2506.       kermit set file type text, send oofa.txt
  2507.       kermit set file type binary, send oofa.zip
  2508.       kermit set file type binary, send d:\zips\oofa.zip
  2509.  
  2510.     or, using the BSEND and TSEND macros (defined above) for brevity:
  2511.  
  2512.       kermit set tsend oofa.txt
  2513.       kermit set bsend oofa.zip
  2514.       kermit set bsend d:\zips\oofa.zip
  2515.  
  2516.  2. A DOS-format wildcard specification on the command line, as in:
  2517.  
  2518.       kermit tsend *.txt
  2519.       kermit bsend *.zip
  2520.  
  2521.  3. An indirect file specification, denoted by "@" as the first letter in
  2522.     the filename, in which the named file contains a list of the names of
  2523.     the files to be sent:
  2524.  
  2525.       kermit set file type text, send @files.lst
  2526.  
  2527.     The list of filenames can contain one filename per line, or it can
  2528.     contain a comma-separated list of names, or any mixture of the two.
  2529.     Filenames can contain disk letters, directory names, and DOS-format
  2530.     wildcards.
  2531.  
  2532.  4. Any other way you can think of, such as telling Kermit to execute a
  2533.     command file:
  2534.  
  2535.       kermit take download.scr
  2536.  
  2537. Kermits negotiate operating modes to find the greatest common denominator.
  2538. The sending Kermit makes the initial offer and the receiver responds.  Thus
  2539. the BBS operator should place upper limits on packet length, sliding window
  2540. slots, and so on which suit the highest-performance clients and still let the
  2541. client negotiate operating conditions within those limits.  We recommend long
  2542. packets, say 2000 bytes each, and four window slots as efficient parameters;
  2543. this consumes 8KB of file buffer memory (allocated dynamically from DOS for
  2544. each file transfer).  For most PC-based BBSs a default setting of SET FILE
  2545. TYPE BINARY is suitable because the transfers are between like file systems
  2546. (DOS to DOS).
  2547.  
  2548. File transfer operations may be logged to a file with the command LOG
  2549. TRANSACTION (by default, the file is called TRANSACT.LOG).
  2550.  
  2551. Uploads can be restricted to the current directory using SET RECEIVE
  2552. PATHNAMES OFF.  This is the default for KERLITE.EXE, but for larger versions
  2553. (those with terminal emulators) the default is ON.
  2554.  
  2555. To increase throughput to the last bit per second you may unprefix selected
  2556. control codes via the SET PREFIX command.  Kermit will not unprefix XON/XOFF
  2557. codes if they are used for flow control, though we do recommend hardware flow
  2558. control (RTS/CTS) for best efficiency.  Beware that many intervening
  2559. communications boxes may not pass all control codes, and which codes are fatal
  2560. is not testable from the outside.  The biggest gain from unprefixing control
  2561. codes is usually seen with pre-compressed files, and that gain is about 25%
  2562. (which is the proportion of control to printable bytes in a random mixture).
  2563.  
  2564. APPENDIX I:  NEW TERMINAL EMULATIONS - TECHNICAL SUMMARY
  2565.  
  2566. DEC VT, Heath, and Tektronix terminal emulation specifications are given in
  2567. Appendix II of "Using MS-DOS Kermit".  The following sections briefly specify
  2568. Kermit's ANSI, Data General, and Wyse emulations.
  2569.  
  2570. I.1. ANSI TERMINAL EMULATION
  2571.  
  2572. ANSI terminal emulation is a VT100 subset but with:
  2573.  
  2574.  . SET TERMINAL CHARACTER-SET TRANSPARENT, with PC code page 437 is used
  2575.    transparently, favored by BBSs.
  2576.  . The cursor goes to the home (upper left corner) after an erase in display
  2577.    operation (ESC [ Pn J).
  2578.  . Ctrl-L is treated as "home and clear screen".
  2579.  . Ctrl-N (normally Shift-Out) is ignored.
  2580.  . Host queries about terminal are answered as if a VT100.
  2581.  . The initial screen coloring is forced to be dim white on black.
  2582.  . The terminal status line shows terminal type ANSI.
  2583.  
  2584. I.2. DATA GENERAL DASHER TERMINAL EMULATION
  2585.  
  2586. Items marked with a * are not implemented in MS-DOS Kermit.  XON/XOFF flow
  2587. control should be set to outgoing only or none or RTS/CTS because Ctrl-Q/S are
  2588. used as D463/D470 commands.  Special D463/D470 Kermit command:
  2589.  
  2590.   SET TERMINAL COMPRESSED-TEXT {GRAPHICS, TEXT-132}
  2591.  
  2592. The default is GRAPHICS, meaning compressed font characters are drawn as 5x14
  2593. dot pattern cells in IBM PC graphics mode, simulating a text screen.  The
  2594. compressed font used in Graphics mode is Code Page CP437 or CP850.  TEXT-132
  2595. means switch to 132-column EGA/VGA text mode and show all text with that font,
  2596. which only works if your graphics adapter supports this mode.
  2597.  
  2598. Graphics is way slower than text and only 128 character cells are available
  2599. across the screen (640 dots / 128 yields 5 dots per character cell including a
  2600. separation dot).  If text is commanded and the display adapter cannot be
  2601. switched to 132 column mode, graphics is used instead.  Compressed fonts are
  2602. available only on EGA/VGA adapters and above, not on Mono, CGA, or Hercules.
  2603.  
  2604. Note on line drawing, RS L and the RS G series of commands: the drawing
  2605. remains intact as long as the graphics screen is viewed.  It is not preserved
  2606. if the user returns to the Kermit prompt or switches to the text screen (the
  2607. ALT - key, keyboard verb \ktermtype): the basic screen is first drawn from the
  2608. text screen and then line drawing dots are superimposed.  Leaving this screen
  2609. means the text screen could change and thus a fresh version of it will always
  2610. overwrite the existing material.  The line drawings are not preserved
  2611. separately from the underlying simulated text screen.  The Data General
  2612. CEO_DRAW program provides a REFRESH command to restore graphics images.
  2613.  
  2614. A D463 terminal is a monochrome high-resolution text and graphics terminal, a
  2615. D470 is a similar full-color terminal.  The D470 has fewer screen dots than
  2616. the D463 and uses a smaller graphics crosshair.  A D463 graphics screen is 800
  2617. dots across by 576 high, a D470 graphic screen is 640 across by 480 high with
  2618. 16 colors.  Aside from a few status reports and the graphics details both
  2619. terminals use the same core emulator.  VTxxx submode is not supported on
  2620. either terminal; please use Kermit's VT320 instead.
  2621.  
  2622. When the display adapter is in graphics mode character fonts are sought from
  2623. the display adapter and, when Code Pages are active, from the DOS Code Page
  2624. file EGA.SYS.  Normal-width characters can be drawn from that file, but
  2625. compressed characters will be shown from a CP850 font if the current Code Page
  2626. is other than CP437.  The DOS file EGA.SYS must be in the current directory on
  2627. along the PATH.  CGA, monochrome, and Hercules video display adapters cannot
  2628. use Code Pages; only EGA/VGA and above can.
  2629.  
  2630. Special codes sent by DG keyboard function keys, not preassigned to PC keys
  2631.  
  2632.  DG Key name        Kermit Verb       D463/D470 Data General native mode
  2633.                  prefix     second character
  2634.  F1..F15        dgF1..dgF15       RS    q,r,s,t,u, v,w,x,y,z, {,|,},~,p
  2635.  shift F1..F15        dgSF1..dgSf15  RS    a,b,c,d,e, f,g,h,i,j, k,l,m,n,`
  2636.  control F1..F15    none       RS    1,2,3,4,5, 6,7,8,9,:, ;,<,=,>,0
  2637.  ctrl-shft F1..F15  none       RS    !,",#,$,%, &,',(,),*, +,comma,-,.,
  2638.                                 <space>
  2639.  C1..C4            dgC1..dgC4       RS    \,],^,_
  2640.  shift C1..C4        none       RS    X,Y,Z,[
  2641.  Uparrow        uparr       Control-W
  2642.  Rightarrow        rtarr       Control-X
  2643.  Leftarrow        lfarr       Control-Y
  2644.  Downarrow        dnarr       Control-Z
  2645.  Home            none       Control-H
  2646.  shift Uparrow        none       RS Control-W
  2647.  shift Rightarrow   none       RS Control-X
  2648.  shift Leftarrow    none       RS Control-Y
  2649.  shift Downarrow    none       RS Control-Z
  2650.  shift Home        none       RS Control-H
  2651.  Erase EOL        none       Control-K
  2652.  Erase Page        none       Control-L
  2653.  Cmd-Print        none       RS Control-U
  2654.  shift Cmd-Print    none       RS Control-A
  2655.  POINT            dgPoint       Full graphics cursor position report
  2656.  SPCL            dgSPCL       none, used as prefix for compounds
  2657.  NC            dgNC       none, toggles screen between Normal and
  2658.                    Compress fonts, same as if the host sent
  2659.                    RS F J or RS F K.
  2660.  
  2661. The mouse: When Kermit is in graphics mode, a Microsoft-compatible mouse may
  2662. be used to control the graphics crosshair. The left mouse button sends the
  2663. POINT command, and the right button sends the dgF1 keyboard verb.  The DG F1
  2664. key frequently means "execute" to many utilities.  On DG keyboards POINT is
  2665. the key combination CMD CURSOR-TYPE.
  2666.  
  2667. RECEIVED CODES AND ACTIONS
  2668.  
  2669. Note: <n> is the lower four bits of a byte, <nn> is the lower four bits of two
  2670. consecutive bytes as high- then low-order portions of an 8-bit result.  Such
  2671. input bytes may have anything in the upper four bits.
  2672.         
  2673.  Control Seq    Hex        Description of Action
  2674.  Control-@    00h        Used as data within a command
  2675.  Control-A    01h        Print form. Only bold characters in current 
  2676.                 window at cursor row and below, followed by 
  2677.                 sending a Control-F character to the host.
  2678.  Control-B    02h        Reverse video off
  2679.  Control-C    03h        Blink enable, affects only new chars in Kermit
  2680.  Control-D    04h        Blink disable, affects only new chars
  2681.  Control-E    05h        Read window address
  2682.                 Report is Control-_<col><row>  in binary
  2683.  Control-G    07h        Bell
  2684.  Control-H    08h        Window home, go upper left corner of window
  2685.  Control-I    09h        Tab horizontally
  2686.  Control-J    0Ah        Newline, can scroll window if Roll Mode is on,
  2687.                 else cursor wraps to upper left corner (Home).
  2688.                 Landing on a protected character yields a
  2689.                 cursor right operation.
  2690.  Control-K    0Bh        Erase cursor to end of line (stops on first
  2691.                 protected mode character)
  2692.  Control-L    0Ch        Erase window, cursor to window home
  2693.  Control-M    0Dh        Carriage return. Go to left margin. If that
  2694.                 character is protected then a cursor right
  2695.                 is performed.
  2696.  Control-N    0Eh        Blink on
  2697.  Control-O    0Fh        Blink off
  2698.  Control-P <col><row>    10h    Write window address, 255 is do not change.
  2699.                 Addresses are in unencoded binary.
  2700.  Control-Q    11h        Print window. All characters in current
  2701.                 window at cursor row and below, followed by
  2702.                 sending a Control-F character to the host.
  2703.  Control-R    12h        Roll Mode enable (default)
  2704.  Control-S    13h        Roll Mode disable
  2705.  Control-T    14h        Underscore on
  2706.  Control-U    15h        Underscore off
  2707.  Control-V    16h        Reverse video on
  2708.  Control-W    17h        Cursor up. Wraps top to bottom in the window.
  2709.                 Landing on a protected character yields a
  2710.                 cursor left operation.
  2711.  Control-X    18h        Cursor right. End of line wrap executes New
  2712.                 Line. Landing on a protected character repeats
  2713.                 the cursor right command (stops at start).
  2714.  Control-Y    19h        Cursor left. Start of line wrap executes a
  2715.                 cursor up at right margin. Repeats if a
  2716.                 protected mode character is encountered, and
  2717.                 stops at starting point if looping.
  2718.  Control-Z    1Ah        Cursor down, one line, same column. Wraps
  2719.                 in window bottom to top, landing on a
  2720.                 protected character yields a cursor right.
  2721.  Control-[    1Bh        Escape char 
  2722.  Control-\    1Ch        Dim on
  2723.  Control-]    1Dh        Dim off
  2724.  Control-^    1Eh        DG escape char (ASCII name RS)
  2725.  Control-_    1Fh        Used as data within a command
  2726.  
  2727.  
  2728.  DG Escape Seq            Description of Action
  2729.  
  2730.  RS A <n>            Set foreground color (D470). A D463 uses this
  2731.                 only for polygon fill. Kermit uses D470 style.
  2732.                 <n> is a color code whose 4 lower bits mean:
  2733.                  0 = black, 1..8 = bold blue, green, cyan, red,
  2734.                      magenta, yellow, white, respectively, and
  2735.                  9 = dark grey, 10..16 = dim versions of above.
  2736.  RS B <n>            Set background color (D470). As above
  2737.  RS C                Read model id
  2738.                 Report is RS o # <m><x><y>
  2739.                 <m> is ASCII 6    (D463/D413)
  2740.                     or 44 decimal (D470)
  2741.                 <x> is 010CP000 binary byte
  2742.                     C = 0 if 7 bit, = 1 if 8 bit comms
  2743.                     P = 0 if not, = 1 if printer is available
  2744.                 <y> is 0101LLLL binary byte
  2745.                     LLLL is keyboard nationality
  2746.                     0010 Norwegian
  2747.                     0011 Swiss/French (French in Kermit)
  2748.                     0100 Swiss/German (Swiss in Kermit)
  2749.                     1010 French-Canadian
  2750.                     0110 Katakana (not implemented in Kermit)
  2751.                     1000 French-Canadian
  2752.                     1001 US English
  2753.                     1010 United Kingdom
  2754.                     1011 French
  2755.                     1100 German
  2756.                     1101 Swedish/Finnish
  2757.                     1110 Spanish
  2758.                     1111 Danish/Norwegian
  2759.  
  2760.  RS D                Reverse video on
  2761.  RS E                Reverse video off
  2762.  RS H                Scroll up
  2763.  RS I                Scroll down
  2764.  RS J                Insert character
  2765.  RS K                Delete character
  2766.  
  2767.  RS F 7 <nn>            *Select printer NRC
  2768.  RS F 8                *Display char generator contents, diagnostics
  2769.  RS F 9                Fill screen with grid, diagnostics
  2770.  RS F ? 0            Simulprint off (print and display together)
  2771.  RS F ? 1            Simulprint on  (print and display together)
  2772.  RS F ? 2            Print pass through off (transparent printing)
  2773.  RS F ? 3            Print pass through on (transparent printing)
  2774.  RS F ? 5            *Window bit dump
  2775.  RS F ? 6            *Form bit dump
  2776.  RS F ? 7            VT style autoprint off (whole line printing)
  2777.  RS F ? 8            VT style autoprint on (whole line printing)
  2778.  RS F ? :            Print Screen. All characters on the screen,
  2779.                 followed by sending a Control-F character 
  2780.                 to the host.
  2781.  RS F ; <command>        *Data trap mode, debugging (use SET DEBUG ON)
  2782.  RS F <                *Perform UART loopback, diagnostics
  2783.  RS F > <char>            Fill screen with character, diagnostics
  2784.  RS F A                Reset the terminal emulator
  2785.  RS F B <nn><n>..<nn><n>    Set Windows (each is full width of screen
  2786.                 and each scrolls h/v independently)
  2787.             <nn> number of lines in window (24 == full screen)
  2788.             <n>=0/1 normal/compressed (compress=graphics fake-text
  2789.                 or 132 columns, user selectable, in Kermit)
  2790.                 Command ends on 24 lines or on <00><n>.
  2791.                 Screen is auto centered. Cursor to screen home.
  2792.  RS F C <nn>            Scroll left <nn> columns (if Horiz scroll is
  2793.                 enabled)
  2794.  RS F D <nn>            Scroll right <nn> columns (ditto)
  2795.  RS F E                Erase screen, cursor to screen home, window
  2796.                 settings are preserved.
  2797.  RS F F                Erase unprotected characters from the cursor
  2798.                 position to the end of the window.
  2799.  RS F G                Screen home, go to upper left corner of screen.
  2800.                 Landing on a protected character yields a
  2801.                 cursor right operation.
  2802.  RS F H                Insert line, text moves down in window
  2803.  RS F I                Delete line, text moves up in window. If the
  2804.                 cursor is on a protected character a cursor
  2805.                 right command is executed.
  2806.  RS F J                Select normal spacing (80 column mode)
  2807.  RS F K                Select compressed spacing (132 column mode)
  2808.  RS F L                Protect on, applies to chars until Protect off,
  2809.  RS F M                Protect off
  2810.  RS F N <nnn><n><n>        Change attributes in current window
  2811.             <nnn> number of chars to change, starting at cursor
  2812.             <n> attributes to set
  2813.                 bit 3 dim
  2814.                 bit 2 reverse video
  2815.                 bit 1 underscore
  2816.                 bit 0 blink
  2817.             <n> attributes to reset, as above
  2818.             Both set and reset means toggle. 
  2819.  RS F O                Read horizontal scroll offset
  2820.                 Report is RS o : <nn>    where <nn> is window
  2821.                 horizontal scroll value (columns)
  2822.  RS F P <nn><nn>        Write screen attributes
  2823.             <nn> absolute screen column for cursor
  2824.             <nn> absolute screen row for cursor
  2825.  RS F Q <n>            Set cursor type
  2826.             <n>    cursor type
  2827.              0    disable/hide, and save current
  2828.              1    blinking 
  2829.              2    reverse video block (PC cursors always blink)
  2830.              3    blinking reverse video block
  2831.              4    underscore
  2832.              5    display cursor with saved attributes
  2833.  RS F R <char><dd>..<dd>    *Define character, 12 or 10 <dd> items, 
  2834.                  10x12 cell for D463, 8x10 for D470.
  2835.  RS F S <nn>            Select Character Set
  2836.            <nn>    character set
  2837.         00    keyboard language
  2838.         01    US ASCII
  2839.         02    UK ASCII (sharp sign # relaced by Pound Sterling)
  2840.         03    NRC French
  2841.         04    NRC German
  2842.         05    NRC Swedish/Finnish
  2843.         06    NRC Spanish
  2844.         07    NRC Danish/Norwegian
  2845.         08    NRC Swiss
  2846.         09    NRC Kata Kana (G0)    not supported in Kermit
  2847.         0E    DG International
  2848.         0F    Kata Kana (G1)        not supported in Kermit
  2849.         11    Line Drawing
  2850.         13    DG Special Graphics (CP437 GR)
  2851.         14    DEC Multinational
  2852.         15    DEC Special Graphics (line drawing)
  2853.         1D    Low PC Term (CP437 GL)
  2854.         1E    High PC Term (CP437 GR)
  2855.         1F    Latin1 (ISO 8859-1)
  2856.         20 et seq  soft fonts        not supported in Kermit
  2857.  
  2858.  RS F T <n>            *Set scroll rate
  2859.             <n>
  2860.             0    disable smooth scroll
  2861.             1    enable smooth scroll at 5 rows/sec
  2862.             2    enable smooth scroll at 10 rows/sec
  2863.  RS F U <n>            Select 7/8 bit operation
  2864.                 <n>, 0 = 7-bits, 1 = 8-bits in and out
  2865.  RS F V                Protect enable, permit protect on/off to work
  2866.  RS F W                Protect disable
  2867.  RS F X <nn><nn>        Set margins
  2868.             <nn>, first is left margin, second is right margin
  2869.             both in the range of 0 to 206, inclusive. Screen
  2870.             may be scrolled to make both margins visible (left
  2871.             margin dominates). Cursor moves to left margin.
  2872.  RS F Y <nn><nn><nn>        Set alternate margins, relative to current
  2873.             <nn> row to place cursor on, 0..24, wrt window top.
  2874.             <nn> column of new left margin, wrt permanent left.
  2875.             <nn> column of new right margin, wrt new left.
  2876.             255 value means do not change
  2877.                 Disables horizontal scrolling
  2878.  RS F Z                Restore normal margins, removes alt margins,
  2879.                 reenables horizontal scrolling
  2880.  RS F ]                Horizontal scroll disable
  2881.  RS F \                Delete line between margins (push up)
  2882.  RS F [                Insert line between margins (push up)
  2883.  RS F ^                Horizontal scroll enable (default)
  2884.  RS F _ <nn><nn>        Show columns (align window l/r to show text)
  2885.             <nn> left most col to display, 0..206
  2886.             <nn> right most col to display, 0..206
  2887.             Screen may be scrolled to make both margins visible 
  2888.             (left margin dominates).
  2889.  
  2890.  RS F `                Print Pass Through on (not transparent print)
  2891.  RS F a                Print Pass Through off
  2892.  RS F b                Read screen address (cursor position)
  2893.                 Report is RS o 8 <nn><nn>   for col,row
  2894.  RS F c <n><n><n><n>        *Set color map, D470. Use Kermit command
  2895.                 Set Terminal Color.
  2896.  RS F d                Read characters remining
  2897.                 Report is RS o 9 <high><low> (binary)
  2898.                 Always zero remaining in Kermit
  2899.  RS F e <n><n>            Reserve character (no action in Kermit, none
  2900.                 is needed.)
  2901.  RS F f <n>            Set keyboard language
  2902.             <n>
  2903.             0    set language to default (National)
  2904.             1    set language to GL=ASCII, GR=DG International
  2905.             2    set language to GL=ASCII, GR=Latin1 ISO 8859.1
  2906.  
  2907.  RS F h                *Push
  2908.  RS F i                *Pop
  2909.  RS F k <mode><key><length><string> *Host programmable function keys
  2910.  RS F m 0            *Read cursor contents, diagnostics
  2911.  RS F m 4            *Character loopback, diagnostics
  2912.  RS F m 5            *Hot key switch, dual emulation
  2913.  RS F m 6            *Read bit contents, diagnostics
  2914.  RS F r <n><pos><time>        *Set clock time
  2915.  RS F q <nn><nn>        *Deallocate character sets
  2916.  RS F s <n>            *Save/restore screen contents
  2917.                 <n> 0=save, 1=restore
  2918.  RS F t                Report screen size
  2919.                 Reports RS o <nn><nn><nn><nn><status>
  2920.                 rows, columns(207), rows in window, columns in 
  2921.                 window (right-left margins+1), status=70h
  2922.  RS F v    <r1><c1><r2><c2>    Read window contents
  2923.                 Reports chars in window from row1, col1
  2924.                 to row2, col2, without attributes
  2925.  RS F w                Read new model id
  2926.             Reports RS o w <class><service><rev><name><reserved>
  2927.             <class>    is 8        D460/D470 level
  2928.             <service> is 01
  2929.             <revision> is 00    firmware rev (Kermit = 0)
  2930.             <name> is "D463       "    (8 bytes)
  2931.                    or "D470       "    (for the D470 emulator)
  2932.             <reserved> is "       "    (4 bytes)
  2933.  
  2934.  RS F x <n>            Printer pass back to host
  2935.                 Reports RS R x 0 (mode cannot be set, Kermit)
  2936.  RS F z    <n>            Set 25th line mode
  2937.             <n>
  2938.             0    display status line
  2939.             1    put msg on line, msg is <nn>text
  2940.                 following this cmd
  2941.             2    *use as extra screen row
  2942.             3    blanked
  2943.  RS F { <nn><n>            Set model id <nn> and graphics ability <n>
  2944.  RS F } <n><n>            Named save/restore cursor
  2945.                 <n> sets memory number, 0..15, for save
  2946.                 <n> 0=save to memory, 1=restore from memory
  2947.                 Saves/restores cursor location and shape.
  2948.  RS F ~ <nn>            *Switch emulation mode, dual emulation
  2949.  
  2950.  RS G 0 <nnn><nnn><nnn><nnn><nnn>  Arc (center x, center y, radius, start 
  2951.                 angle, stop angle). Angle is deg CCW from
  2952.                 +x axis. <nnn> are "location arguments."
  2953.                 Manual is in error on this item. DG screen
  2954.                 coordinates of 0..799 (x), 0..574 (y) D463
  2955.                 or 0..639 (x), 0..479 (y) D470.
  2956.  RS G 1 <nnn><nnn><nnn><nnn><n>    Bar. Arguments are lower left x,y corner
  2957.                 width, height, and <n> for foreground (1)
  2958.                 or background (0) filling color.
  2959.  RS G 8 <loc_list><null>    Line drawing <loc_list> is list of x,y pairs
  2960.                 using "location arguments".
  2961.  RS G @                Cursor attributes. Report is
  2962.                 RS o , <crosshair> 0 <crosssize> <tracked>
  2963.                 where <crosshair> is 0 or 1 for off/on,
  2964.                 <crosssize> is 1 for D463 and 0 for D470,
  2965.                 <tracked> is 0, 2, 4 or 6 for tracked devices
  2966.                 of none, keyboard, mouse, both, respectively.
  2967.  RS G A                Graphics cursor reset (no cursor, no tracking)
  2968.  RS G B                Graphics cursor on
  2969.  RS G C                Graphics cursor off
  2970.  RS G H <n>            Graphics cursor track
  2971.                 <n> bit field,    0 for nothing
  2972.                         2 for keyboard arrow keys,
  2973.                         4 for mouse, default nothing
  2974.  RS G I <n>            *D470, set graphics crosshair (cursor) color.
  2975.                  Not implemented because Kermit uses XOR with
  2976.                  existing screen dots.
  2977.  RS G : <loc><null>        Polygon fill (non-intersecting polygon)
  2978.                 <loc> is up to 255 x,y pairs of sequential
  2979.                 vertices, in location argument format.
  2980.  RS G p 1 <offset><pat><null>    Set pattern for line drawings. Kermit supports
  2981.                 only a 16 bit pattern, and no offset editing.
  2982.  RS G ? |            Read cursor location. Reports
  2983.                 RS o | <space><xxxxx><space><yyyyy><CR>
  2984.                 D463 Manual is in error and says RS O | etc.
  2985.  RS G > | <nnn><nnn>        Set cursor location, graphics crosshair.
  2986.  
  2987.  RS H                Scroll up (in window). Window text moves up
  2988.                 one line, blank line is inserted at bottom.
  2989.                 Cursor remains fixed on screen unless it is
  2990.                 on a protected character, then a cursor right
  2991.                 is executed.
  2992.  RS I                Scroll down (in window). Window text moves
  2993.                 down one line, blank line is inserted at top,
  2994.                 cursor remains fixed on the screen.
  2995.  RS J                Insert character. Insert a space at the curror,
  2996.                 push right, lose excess. First protected 
  2997.                 character is temporary right margin.
  2998.  RS K                Delete character at cursor position, pull
  2999.                 left. First protected character is temporary
  3000.                 right margin.
  3001.  
  3002.  RS L <loc_list><null>        Line drawing. Same as RS G 8 above.
  3003.  
  3004.  RS N                Shift out (GLeft pointed to G1)
  3005.  
  3006.  RS O                Shift in (GLeft pointed to G0, default)
  3007.  
  3008.  RS P @ <n>            *Unix mode
  3009.                 <n>, 0 = enter, 1 = exit Unix mode
  3010.  RS R @ <nn>            *Set row length
  3011.  RS R A 0 <nn><n>        *Set split screen mode, dual emulation
  3012.  RS R A 1 <nn>            *Set first row to display, dual emulation
  3013.  RS R B <type><ff><cs><graph>    *Set Device Options
  3014.  RS R C <ss><rr>        *Field attributes
  3015.             <ss>=<nn> set, <rr>=<nn> reset
  3016.             bit 4    blank (invisible)
  3017.             bit 3    dim
  3018.             bit 2    reverse video
  3019.             bit 1    underscore
  3020.             bit 0    blink
  3021.             toggle if both set and reset
  3022.  RS R D <ss><rr>        *Page Attributes
  3023.             <ss>=<nn> set, <rr>=<nn> reset
  3024.             bit 3    dim
  3025.             bit 2    reverse video
  3026.             bit 1    underscore
  3027.             bit 0    blink
  3028.             toggle if both set and reset
  3029.  RS R E <n>            Double high/wide characters (as char blank)
  3030.             <n>
  3031.              0    normal row
  3032.              1    double wide
  3033.              2    double high top
  3034.              3    double high bottom
  3035.              4    double high top/double wide
  3036.              5    double high bottom/double wide
  3037.             (The D470 does not support RS R commands)
  3038. --------------------
  3039. D470 ANSI-Mode Additions
  3040.  
  3041.  Control Seq    Hex        Description of Action
  3042.  Control-G    07h        Bell
  3043.  Control-H    08h        Backspace
  3044.  Control-J    0Ah        Newline, can scroll window if Roll Mode is on,
  3045.                 else cursor wraps to upper left corner (Home).
  3046.                 Landing on a protected character yields a
  3047.                 cursor right operation.
  3048.  Control-L    0Ch        Form Feed, treated as New Line
  3049.  Control-M    0Dh        Carriage return. Go to left margin. If that
  3050.                 character is protected then a cursor right
  3051.                 is performed.
  3052.  Control-N    0Eh        Shift out
  3053.  Control-O    0Fh        Shift in
  3054.  Control-Q    11h        XOFF flow control
  3055.  Control-S    13h        XON flow control
  3056.  Control-[    1Bh        Escape char
  3057.  SS2        8eh        Single shift 2
  3058.  SS3        8fh        Single shift 3
  3059.  DCS        90h        Device control sequence introducer
  3060.  CSI        9bh        Control sequence introducer
  3061.  ST        9ch        String (DCS) terminator
  3062.  
  3063.  ESC c                    Reset to initial state
  3064.  ESC D                    Index (can scroll screen upward)
  3065.  ESC E                    Next Line (LF)
  3066.  ESC M                    Reverse index (can scroll down)
  3067.  ESC N                    SS2
  3068.  ESC P                    DCS
  3069.  ESC O                    SS3
  3070.  ESC V                    Start protected area
  3071.  ESC W                    End protected area
  3072.  ESC \                    ST
  3073.  ESC Pg Pset                Select character set
  3074.             Pg is  ( ) * +    for G0..G3
  3075.     RS F S        Pset
  3076.     equiv        <space>0 .. <space>?  DRCB 1..16
  3077.             !0 .. !5    DRCB 17..22
  3078.             (all mapped to one set at the moment)
  3079.  
  3080.     00        0        keyboard language
  3081.     06        1        Spanish
  3082.     07        2        Danish/Norwegian
  3083.     08        3        Swiss
  3084.     0e        4        DGI
  3085.     10        5        WP/math/Greek
  3086.     11        6        Line Drawing
  3087.     100 (soft)    7        *Mosaics
  3088.     02        A        UK
  3089.     01        B        US
  3090.     05        H        Swedish/Finnish
  3091.     0f        I        *Katakana G1
  3092.     09        J        *Katakana G0
  3093.     04        K        German
  3094.     03        L        French
  3095.  
  3096.  CSI Pc @                Insert Pc spaces under cursor
  3097.  CSI Pc <space> @            Scroll left Pc columns
  3098.  CSI Pc A                Cursor up Pc rows
  3099.  CSI Pc <space> A            Scroll right Pc columns
  3100.  CSI Pc B                Cursor down Pc rows
  3101.  CSI Pc C                Cursor forward Pc columns
  3102.  CSI Pc D                Cursor backward Pc columns
  3103.  CSI row; col H                Cursor to row, column
  3104.  CSI Pc J                Erase in display (Pc = 0,1,2)
  3105.  CSI Pc K                Erase in line (Pc = 0,1,2)
  3106.  CSI Pc L                Insert Pc lines under cursor
  3107.  CSI Pc M                Delete Pc lines under cursor
  3108.  CSI Pc P                Delete Pc chars under cursor
  3109.  CSI Pc S                Scroll up Pc rows
  3110.  CSI Pc T                Scroll down Pc rows
  3111.  CSI row; col f                Cursor to row, column
  3112.  CSI Pc; Pc;.. h            Set mode
  3113.         Pc    mode
  3114.         1    guarded area transfer (for printing)
  3115.         6    erasure
  3116.         <0    roll
  3117.         <1    blink
  3118.         <2    horizontal scroll
  3119.         <3    DG ANSI mode
  3120.         <4    forms mode
  3121.         <5    margins mode
  3122.  CSI Pc i                Media copy (Pc= 0, <0, 4, 5)
  3123.  CSI mode; mode;... l            Reset mode (see Set mode above)
  3124.  CSI Pc; Pc;... m            Set graphic rendition
  3125.     Pc        action
  3126.     0        all visual attributes off
  3127.     2        dim on
  3128.     4        underscore on
  3129.     5        blink on
  3130.     7        reverse video on
  3131.     30 .. 37    bold foreground color (1=red, 2=green, 4=blue)
  3132.     38,39        ignored (reserved, default foreground color)
  3133.     40 .. 47    background color (always dim)
  3134.     48,49        ignored (reserved, default background color)
  3135.     >0 .. >7    dim foreground color
  3136.     =0 .. =7    background color (always dim)
  3137.  
  3138.  CSI Pc n                Device status report
  3139.                     Reports ESC [ 0 n  meaning ready
  3140.  CSI loc; width; height; color p    Draw bar
  3141.  CSI loc; radius; start; end <space> p    Draw arc
  3142.  CSI count; onvalue; offvalue q        Change attributes
  3143.  CSI <space> q                Read graphics cursor
  3144.  CSI <space> r                Read cursor attributes
  3145.  CSI Pc; set; num s            Read/Reserve characters
  3146.                     Reports 2000 chars available
  3147.  CSI color <space> s            *Graphics cursor color
  3148.  CSI Pc t                Read offset (Pc=0)/Show columns(Pc=1)
  3149.  CSI x; y <space> t            Write graphics cursor (to x,y)
  3150.  CSI row; col u                Screen position (RS F P style)
  3151.  CSI <space> u                Cursor (graphics) off
  3152.  CSI Pc; Pv; Pc; Pv;... v        Set parameters
  3153.      what    Pc        Pv
  3154.      defaults    0            *select defaults for below
  3155.      kbd lang    1        0    keyboard nationality char set in use
  3156.                 1    DGI (default
  3157.      7/8 bit    2        0    7-bit
  3158.                 1    8-bit
  3159.      cursor type 3        0    not displayed
  3160.                 1    blinking underscore
  3161.                 2    reverse video block
  3162.                 3    blinking reverse video block
  3163.      *scroll rate 4        0    jump
  3164.                 1    smooth, 5 bit rows/sec
  3165.                 2    smooth, 10 bit rows/sec
  3166.  
  3167.  CSI <space> v                Cursor (graphics) on
  3168.  CSI Pc; Pseries w            Set margins
  3169.         Pc = 0, exit alt temp margins
  3170.         Pc = 1, set absolute margins at left; right
  3171.         Pc = 2, set temp alt margins at row; left; right
  3172.  
  3173.  CSI <space> w                Cursor reset
  3174.  CSI x                    Read terminal configuration
  3175.  CSI Pc <space> x            Cursor track
  3176.  CSI n1; n2;...n16 y            Set print colors
  3177.  CSI n1; n2; n3; n4 <space> z        Set color map
  3178.  CSI <space> |                *Push
  3179.  CSI <space> }                *Pop
  3180.  
  3181.  
  3182.  DCS A <char><string of dd> ST        Define character
  3183.  DCS B <string of loc> ST        Draw line
  3184.  DCS C <offset><pattern> ST        Set Pattern (for line drawing)
  3185.  DCS D <string of nn n> ST        Set Windows
  3186.  DCS E <string of loc> ST        Draw polygon
  3187.  DCS F ST                Report failures
  3188.                 Report is DCS F ST  meaning no failures
  3189.  
  3190.  DG Key name        Kermit Verb       D470 Data General ANSI mode
  3191.                  prefix     second character
  3192.  F1..F15        dgF1..dgF15       ESC [ 01 z .. ESC [ 14 z   ESC [ 00 z
  3193.  C1..C4            dgC1..dgC4       ESC [ 20 z .. ESC [ 23 z
  3194.  Uparrow        uparr       ESC [ A
  3195.  Rightarrow        rtarr       ESC [ C
  3196.  Leftarrow        lfarr       ESC [ D
  3197.  Downarrow        dnarr       ESC [ B
  3198.  
  3199. I.3. WYSE-50 TERMINAL EMULATION
  3200.  
  3201. CONTROL
  3202. SEQUENCE    HEX   DESCRIPTION OF ACTION
  3203.  
  3204. Control-E   05h   returns answerback string (see SET TERM ANSWERBACK)
  3205. Control-G   07h   sounds bell
  3206. Control-H   08h   cursor to left one column
  3207. Control-I   09h   cursor to right one tab stop
  3208. Control-J   0ah   cursor down one row (can scroll the screen)
  3209. Control-K   0bh   cursor up one row
  3210. Control-L   0ch   cursor right one column
  3211. Control-M   0dh   cursor to left margin
  3212. Control-N   0eh   unlocks keyboard, ignored
  3213. Control-O   0fh   locks keyboard, ignored
  3214. Control-R   12h   turns on controller printing
  3215. Control-T   14h   turns off controller and transparent printing
  3216. Control-X   18h   turns on transparent printing (Wyse-60)
  3217. Control-Z   1ah   clears all unprotected cells to spaces
  3218. Control-[   1bh   Escape, escape sequence introducer
  3219. Control-^   1eh   cursor to home (upper left corner)
  3220. Control-_   1fh   cursor to left margin and next row down
  3221.  
  3222. Other Control codes are ignored.
  3223.  
  3224. WYSE ESCAPE SEQUENCE  DESCRIPTION OF ACTION (* = Not Supported)
  3225.  
  3226. ESC <space>           report terminal ident, send 3 bytes "50<c/r>"
  3227. ESC ! attrib           writes all unprotected cells with attribute
  3228.                code attrib (Blank attribute is ignored)
  3229.       attrib        action
  3230.      0        normal video
  3231.      1           *blank
  3232.      2        blink
  3233.      3           *blank
  3234.      4        reverse video
  3235.      8        underscore
  3236.     40h        dim
  3237.             (attrib is a byte with these bits as components,
  3238.              using a bias of ASCII "0", 30h)
  3239. ESC "              *unlocks keyboard, ignored
  3240. ESC #              *locks keyboard, ignored
  3241. ESC &               turns on protected mode, autoscroll to off
  3242. ESC '               turns off protected mode, autoscroll to on
  3243. ESC (               turns off write protect mode
  3244. ESC )               turns on write protect mode
  3245. ESC *               clears screen to nulls (Kermit uses spaces),
  3246.                protected mode to off
  3247. ESC +               clears screen to spaces, protected mode off
  3248. ESC ,               clears screen to protected spaces, protect
  3249.                mode is off. (Kermit clears with unprotected
  3250.                spaces)
  3251. ESC - nrc           cursor to text segment n and row, col
  3252.                (Kermit supports only text segment 0)
  3253.                (r and c are a binary value plus 20h)
  3254. ESC . code           clear all unprotected cells which have char
  3255.                codes of "code". "code" is expressed in hex.
  3256. ESC /               sends to host the text segment and row, col
  3257.                in same format as ESC - nrc command
  3258. ESC 0               clear all tab stops
  3259. ESC 1               set tab stop at cursor position
  3260. ESC 2               clear tab stop at cursor position
  3261. ESC 4              *sends to host all unprotected cells from start
  3262.                of row 
  3263. ESC 5              *sends to host all unprotected cells from start
  3264.                of text
  3265. ESC 6              *sends to host all cells from start of row 
  3266. ESC 7              *sends to host all cells from start of text
  3267. ESC 8               write start of message char (STX, 02h)
  3268. ESC 9               write end of message char (ETX, 03h)
  3269. ESC :               clear all unprotected cells to nulls (Kermit
  3270.                clears with spaces)
  3271. ESC ;               clear all unprotected cells to spaces
  3272. ESC = rc           cursor to row, col (for 80 columns only)
  3273.                (r and c are a binary value plus 20h)
  3274. ESC ?               sends to host the cursor address in the form
  3275.                    rc CR  (for 80 columns only)
  3276. ESC @              *sends all unprotected cells from start of 
  3277.                text to the auxillary port, terminates lines 
  3278.                with CR LF NULL
  3279. ESC A n attrib           sets video attribute for a message field or
  3280.                for entire display (n = 0). Kermit supports
  3281.                only the entire display.
  3282. ESC B              *enter block mode
  3283. ESC C              *exit block mode to conversational mode
  3284. ESC D x              *change between half and full duplex
  3285. ESC E               insert row of spaces, bottom moves down
  3286. ESC F text CR          *enter message into message field
  3287. ESC G attrib           set video attribute for future operations
  3288.  
  3289. ESC H x               enter "graphics" char at cursor, x = 0..?
  3290.                for selected CP437 line drawing symbols.
  3291.     x    symbol            x    symbol
  3292.     0    top tee            8    center plus
  3293.     1    lower left corner    9    left center tee
  3294.     2    top left corner        :    horizontal bar
  3295.     3    top right corner    ;    light crosshatch
  3296.     4    left center tee        <    double horz bar
  3297.     5    lower right corner    =    bottom center tee
  3298.     6    vertical bar        >    double vertical bar
  3299.     7    dark crosshatch        ?    medium crosshatch
  3300.     STX    start translating as above until ESC H ETX
  3301.     ETX    end translating as above
  3302. ESC I               cursor left to previous tab stop
  3303. ESC J              *activate alternate text segment
  3304. ESC K              *activate alternate text segment
  3305. ESC L              *send all chars unformatted to aux port
  3306. ESC M               send to host the char code at the cursor
  3307. ESC N               turns on no-scroll mode
  3308. ESC O               turns off no-scroll mode
  3309. ESC P               send all chars to auxillary port
  3310. ESC Q               insert a character, right part moves right
  3311. ESC R               delete a row, bottom moves up
  3312. ESC S              *sends a message unprotected
  3313. ESC T               erases all cells from cursor to end of row
  3314. ESC U              *turns on monitor mode (use SET DEBUG ON)
  3315. ESC V               sets cursor column to protected
  3316. ESC W               delete a character, right side moves left
  3317. ESC X              *turns off monitor mode
  3318. ESC Y               erase all cells from cursor to end of screen
  3319.                replacing them with spaces
  3320. ESC ]              *activates text segment 0
  3321. ESC ` n               sets screen feature n
  3322.            n       feature
  3323.            0       cursor off
  3324.            1       cursor on
  3325.            2       steady block (PC cursor always blinks)
  3326.            3       blinking line
  3327.            4       steady line
  3328.            5       blinking block
  3329.            A       normal protect char   (Kermit interprets these
  3330.            6       reverse protect char   as meaning protect all
  3331.            7       dim protect char          future characters)
  3332.            8      *screen display off
  3333.            9      *screen display on
  3334.            :       80 column screen
  3335.            ;       132 column screen
  3336.            <,=,>,?, and @ are scroll rates (unsupported)
  3337.  
  3338. ESC a rr R ccc C       move cursor to row and column (ASCII decimal)
  3339. ESC b               sends to host the cursor address in same form
  3340.                as ESC a above
  3341. ESC d #               turn on transparent printing
  3342. ESC i               cursor right to next tab stop
  3343. ESC j               cursor up one row and begins scrolling at
  3344.                top row (Kermit can't make any sense of the
  3345.                latter part of this and stops cursor at top)
  3346. ESC k              *turn on local edit mode
  3347. ESC l              *turn on duplex edit mode
  3348. ESC p               sends all chars unformatted to auxillary port
  3349. ESC q               turns on insert mode
  3350. ESC r               turns off insert mode
  3351. ESC s              *sends a message
  3352. ESC t               erase from cusor to end of row, fill with
  3353.                nulls (Kermit always erases with spaces)
  3354. ESC u               turn off monitor mode
  3355. ESC x n HSR          *change screen format (split screen)
  3356. ESC y               erase from curosr to end of screen, fill with
  3357.                nulls (Kermit always erases with spaces)
  3358. ESC z n text CR          *enter msg into function key labels or into
  3359.                function key codes
  3360. ESC z DEL          *turns off shifted key label line
  3361. ESC {               cursor to home (upper left corner)
  3362. ESC }              *activates text segment 1
  3363.  
  3364.  
  3365. Wyse Key name       Kermit Verb      Wyse-50 code
  3366. F1..F16           wyF1..wyF16      SOH <c> CR  where SOH is 01h and <c> is
  3367.                        @,A,B,C,D, E,F,G,H,I, J,K,L,M,N, O
  3368. shift F1..F16       wySF1..wySF16  as above but <c> is
  3369.                        `,a,b,c,d, e,f,g,h,i, j,k,l,m,n, o
  3370.  
  3371. Uparrow           uparr      Control-K
  3372. Rightarrow       rtarr      Control-L
  3373. Leftarrow       lfarr      Control-H
  3374. Downarrow       dnarr      Control-J
  3375.  
  3376. The following Wyse escape sequences are recognized but ignored:
  3377.  
  3378. ESC "   unlocks keyboard
  3379. ESC #   locks keyboard
  3380. ESC 4   sends all unprotected chars from start of row
  3381.     to the host computer
  3382. ESC 5   sends all unprotected chars from start-of-text
  3383.         to the host computer
  3384. ESC 6   sends all chars from start of row to host computer
  3385. ESC 7   sends all chars from start-of-text to host computer
  3386. ESC @   sends all unprotected chars from start-of-text to
  3387.     the auxillary port. Each row is terminated with CR LF NULL
  3388. ESC B   places the terminal in block mode
  3389. ESC D   selects half or full duplex modes
  3390. ESC F   enters a message in the host message field
  3391. ESC J   activates the alternate text segment
  3392. ESC K   same as ESC J (who knows what "activates" means?)
  3393. ESC L   sends all chars unformatted to the auxillary port
  3394. ESC P   sends all chars to auxillary port regardless of mode
  3395.         settings (whatever that means)
  3396. ESC U   turns on monitor mode
  3397. ESC X   turns off monitor mode
  3398. ESC ]   activates text segment 0
  3399. ESC k   turns on the local edit submode
  3400. ESC l   turns on the duplex edit submode
  3401. ESC p   sends all chars unformatted to the auxillary port, attribute
  3402.         codes are sent as spaces. Row-end seq not sent. Same as ESC L
  3403. ESC s   sends a message
  3404. ESC u   turns on monitor mode, same as ESC X
  3405. ESC x   changes screen display format (screen splitting)
  3406. ESC z   enters a message into the selected function key
  3407.         label field or programs user-defined function key
  3408. ESC }   activates text segment 1
  3409.  
  3410. WYSE GRAPHICS CHARACTERS
  3411.  
  3412. When ESC H single or locking shifts are in effect, the following ASCII
  3413. characters map to the following graphic (line/box-drawing) characters.  These
  3414. are available in PC Code Page 437, as well as in most other commonly used code
  3415. pages including CP850, etc.
  3416.  
  3417.       Maps to
  3418.   ASCII      PC char  
  3419.   0  48        194        Middle box top
  3420.   1  49        192        Lower left box corner
  3421.   2  50        218        Upper left box corner
  3422.   3  51        191        Upper right box corner
  3423.   4  52        195        Left middle box side
  3424.   5  53        217        Lower right box corner
  3425.   6  54        179        Center box bar vertical
  3426.   7  55        178        Fill character heavy
  3427.   8  56        197        Box intersection
  3428.   9  57        180        Right middle box side
  3429.   :  58        196        Center box bar horizontal
  3430.   ;  59        177        Fill character medium
  3431.   <  60        205        Center box bar horizontal double
  3432.   =  61        193        Middle box bottom
  3433.   >  62        186        Center box vertical double
  3434.   ?  63        176        Fill character light
  3435.  
  3436. (End of KERMIT.UPD / MSKERM.UPD)
  3437.