home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / mskermit / msr229.ann < prev    next >
Text File  |  2020-01-01  |  69KB  |  1,427 lines

  1. MS-DOS Kermit Version 2.29 Release Notes, May 26, 1986:
  2.  
  3. New Features:
  4.  
  5. . Full DOS 2.0 file support; device and path may be included in any
  6.   file specification in any Kermit command.  DOS 1.x support fully removed.
  7.   Version 2.29 will not run under DOS 1.x (neither would 2.28).
  8.  
  9. . On the IBM PC family, emulation of VT52, H19, VT102, and dumb terminal (the
  10.   latter to allow coresidence with a loadable console driver like [N]ANSI.SYS).
  11.   Support for host control of 25th line during terminal emulation.  Increased
  12.   screen memory for rollback, dynamically sized to allow for varying memory
  13.   capacity (about 8K required per screenful).  Program needs at least 60K to
  14.   run, will use as much as 100K if available, plus more when PUSH, SPACE, or
  15.   other commands that invoke DOS or other programs are used.
  16.  
  17. . VT102 emulation on IBM PC family includes all major VT102 features except
  18.   132 columns, smooth scrolling, printer control, and various diagnostic
  19.   functions.  H19/VT52 emulation is more complete than in previous versions.
  20.   VT102 is equivalent to VT100 with AVO, plus line and character insert and
  21.   delete functions, and local echo capability, i.e. it is a strict superset
  22.   of the VT100, and is upwards compatible with ti.
  23.  
  24. . The MS-DOS Kermit server responds to advanced server commands (REMOTE DIR,
  25.   REMOTE HOST, REMOTE DEL, REMOTE TYPE, REMOTE CWD, etc).  But because 
  26.   certain DOS "interactions" can't be fully disabled, these commands can
  27.   sometimes cause the server to hang (like when DOS asks "Abort, Retry, 
  28.   Ignore?" at the real console).
  29.  
  30. . Improved file name handling, to prevent destruction of directory,
  31.   system, hidden, read-only, and volume label files.  GET and RECEIVE allow
  32.   device and path to be prefixed to incoming filename.  File renaming algorithm
  33.   much improved for conversion of incoming file names to DOS conventions, and
  34.   for filename collision avoidance.  Only valid DOS filenames are created or
  35.   used for new files. 
  36.  
  37. . On the IBM PC family, compatibility with TopView, DesqView, and MS Windows,
  38.   and with the IBM Extended and Professional Graphics Adapters.
  39.  
  40. . Screen save (on the DEC Rainbow and IBM family only).  <esc-char>F
  41.   appends current screen to file KERMIT.SCN; use SET DUMP to change screen
  42.   dump file (or device) name.  Differs from LOG in that escape codes are
  43.   not saved, only the text itself (sans attributes).  Use in conjunction
  44.   with screen rollback to save the last several screens.
  45.  
  46. . New SET TERMINAL command for setting terminal type and parameters,
  47.   including foreground and background color and intensity on systems that
  48.   support it (currently only for IBM family).  Also, explicit control over
  49.   whether program should wait for vertical retrace cycle to write screen (snow
  50.   removal).
  51.  
  52. . New file transfer display options: SET DISPLAY QUIET, REGULAR, SERIAL.
  53.  
  54. . Program segments are now ordered independently of MASM/LINK version, without
  55.   any special switches required for building, which should clear up all the
  56.   system crashes that occurred when people ran the program after building it
  57.   from source without the appropriate switches.
  58.  
  59. . Assembles with MS MASM 1.25, IBM MASM 2.0 aka MS MASM 3.0, and MS MASM 4.0,
  60.   as well as Intel RMX assembler.
  61.  
  62. . Increased screen rollback memory on DEC Rainbow.
  63.  
  64. . Heath/Zenith-100 port i/o now interrupt driven, therefore much faster.
  65.  
  66. . COMMENT command, for documenting TAKE files.
  67.  
  68. . SET RETRY n command for changing the packet retry threshold.
  69.  
  70. . HANGUP command for dropping DTR & RTS, to signal modem to hang up phone
  71.   (IBM family only).
  72.  
  73. . LOG command now also logs debugging information (packets, terminal session)
  74.   if SET DEBUG ON command has been given.
  75.  
  76. . All known bugs in 2.28 fixed including:
  77.    Severe problems if program assembled and linked improperly
  78.    GET command filename confusion
  79.    Failure to warn when run under DOS 1.x
  80.    Many problems with file renaming, name truncation, etc.
  81.    Exported filenames with no filetype no longer end with period
  82.    SET DEST PRINTER didn't work correctly
  83.    Problems with dynamic memory allocation causing system crashes
  84.    Problems with dynamic memory allocation requiring more memory than necessary
  85.    Problems with file transfer display & mode line display on early PC, Compaq
  86.    Problem with <esc-char>? display on early PC, Compaq
  87.    Heath-19 emulation bug regarding receipt of CR or LF at col 80 vs autowrap
  88.    The "C?" bug in the command parser
  89.    ^C of a file transfer now honors SET INCOMPLETE KEEP
  90.    Lost clusters on disk if BYE command given with log file open
  91.    RUN command did not default file types .EXE, .COM, .BAT
  92.    Long debug lines would overflow screen
  93.    Overruns of half duplex systems at high baud rates
  94.    Control-prefix operands in packets not range checked
  95.    Interrupt and performance problems on IBM PC family
  96.    Numbers sometimes disappearing from file transfer display
  97.    Problems parsing SET PORT options in generic MS-DOS Kermit
  98.    Program crashes with "divide overflow" when transferring very long file
  99.    Tendency to hangup Hayes 1200B internal modem upon startup
  100.    Problems when padding with more than 2 or 3 characters
  101.  
  102. Known limititations of version 2.29:
  103.  
  104. . On the IBM family, SET MODE OFF, SET MODE ON sequences can produce
  105.   permanent, normal-video mode line.
  106. . On the IBM family, SET DEBUG ON not only selects packet display during file
  107.   transfer, but also control-character/escape-sequence display during
  108.   terminal emulation.  There are no separate controls for these functions.
  109. . On systems that use "grey keys" or F-keys for functions like BREAK, modeline
  110.   toggle, screen scroll, or emulator reset, there is no way to move these
  111.   functions to other keys.  Therefore, if "traditional" (e.g. keypad) values
  112.   are to be assigned to these keys using SET KEY, their built-in Kermit
  113.   functions are lost.
  114. . Certain keys on the IBM PC keyboard produce no scan code detectable by
  115.   Kermit, e.g. keypad 5, control-5, etc., and therefore cannot be redefined
  116.   with SET KEY SCAN.  Additional keys on the new "enhanced" keyboard
  117.   (such as F11 and F12) behave similarly.
  118. . On some systems, the message "Undefined baud rate" may appear when program
  119.   is started.  This just means you should issue a SET SPEED command.
  120. . Semicolons can not be used in filenames in GET commands from TAKE files,
  121.   because within TAKE files, semicolons are treated as the start of a comment.
  122. . Caution should be used when invoking certain terminate-and-stay-resident
  123.   programs while PUSHed from Kermit (e.g. using the PRINT command for the first
  124.   time), as not all of these programs observe proper etiquette for allocating
  125.   and freeing memory.
  126. . Each command macro definition is limited to 132 characters in length.
  127.   Longer macros can be formed by chaining (end one definition with a DO
  128.   for the next).
  129. . On early (original motherboard & BIOS) PCs, and on systems that mimic them
  130.   (e.g. Compaq), the cursor may assume a strange shape upon return from
  131.   CONNECT.  This is caused by a bug in the early BIOS, which stored cursor
  132.   attributes incorrectly.
  133. . MS-DOS Kermit cannot read commands from a .BAT file.  It only reads them
  134.   from the keyboard.  It may be run in the batch, but only using command
  135.   line arguments (possibly invoking TAKE files).
  136.  
  137. Incompatibilities with previous releases:
  138.  
  139. . SET HEATH gone, replaced by SET TERMINAL { HEATH, VT102, etc }
  140. . SET AUTOWRAP gone, replaced by SET TERMINAL WRAP
  141. . SET REMOTE ON/OFF changed to SET DISPLAY OFF/ON (but SET REMOTE still there)
  142. . Filename completion (recognition) no longer works, because of support for
  143.   fully qualified DOS 2.0 pathnames.
  144.  
  145. Tested successfully on the following systems:
  146.  
  147. . IBM PC, XT, AT, PCjr, Portable PC, Convertible PC, and RT with AT DOS option
  148. . Compaq, Z150, Z160, and other IBM compatibles
  149. . DEC Rainbow
  150. . Heath/Zenith-100
  151. . HP-150, HP-110, and Portable Plus
  152. . NEC APC and APC-3
  153. . Victor 9000 / Sirius 1
  154. . ACT Apricot
  155. . Sanyo MBC 550
  156. . Texas Instruments Professional PC
  157. . Generic MS-DOS
  158. . Intel 300 series with iRMX-86
  159.  
  160. Needs testing on:
  161.  
  162. . Wang PC
  163. . Olivetti M24 PC
  164. . Grid Compass II
  165. . DECmate-II,III with XPU (MS-DOS) option
  166.  
  167. IBM PC family H19 and VT102 emulators tested successfully with:
  168.  
  169. . EMACS (DEC-20, CCA, GNU, and others, using line/char insert/delete)
  170. . EDT, PHONE (VAX/VMS) (what else on VMS?  TPU?)
  171. . 1-800-DEC-DEMO
  172. . UNIX vi, sysline, etc
  173. . Various torture tests
  174.  
  175. What's not in 2.29 (wish list for future releases):
  176.  
  177. . TRANSMIT command for raw file upload
  178. . Login scripts
  179. . DIAL command, telephone directory
  180. . Transaction file logging.
  181. . A way to accept default values for omitted trailing fields in commands.
  182. . A better built-in help facility.
  183. . VT102 ANSI printer control
  184. . Long packets, sliding windows, or attribute packets
  185. . Tektronix or other graphics terminal emulation (except in TI Pro & Victor)
  186. . Redefinable keys at Kermit-MS> prompt level
  187. . Control over display of 8-bit characters during CONNECT
  188. . Pause at end of screen during local TYPE
  189. . A simple way to make Alt = Meta, without many many SET KEY commands
  190. . Piped operation a la UNIX (e.g. compress foo.bar | kermit send)
  191. . Integration with C-Kermit protocol modules
  192.  
  193. Request contribution of TopView .PIF file, Desqview and Windows configuration
  194. files, verification that 2.29 works on the as-yet untested systems, along with
  195. .BOO files, installation instructions, etc., for those systems.
  196.                         Notes on MS Kermit 2.29B
  197.                                 19 Feb 1987
  198.  
  199.         This most recent version of MS Kermit 2.29 has support for VT102
  200. printer commands, Long packets, and Scripts.  Additionally, it has corrections
  201. to most problems known at this time.
  202.  
  203.         A new kind of MS Kermit, MSTCLO.BOO, is available for near clones
  204. of IBM PC's but whose serial port hardware is not similar.  Here is a
  205. description from the originator, Glenn Everhart of RCA Labs:
  206.  
  207.    This module is derived from MSXIBM.ASM and is intended for IBM PC
  208.    near-clones that differ in their serial I/O but emulate the IBM
  209.    BIOS. Such machines include Seequa Chameleon, DG/1, and others.
  210.    The idea is to use the VT100 emulation (which will work) but
  211.    use BIOS for all serial I/O. This is not interrupt driven and so
  212.    will (unfortunately) not be able to keep up well at high baud
  213.    rates.  Nevertheless, it will be far better than the old Seequa
  214.    version which didn't emulate anything.
  215.  
  216. This version will also work on IBM PCs that need to use something other than
  217. the internal asynchronous adapter for communications, like a Token Ring asynchronous communication server via NETBIOS.
  218.  
  219.  
  220. BUG FIXES AND INTERNAL IMPROVEMENTS:
  221.  
  222.         Two important problems with MS Kermit 2.29 (no letter) were an
  223. incompatibility with Hayes internal modems, and related modems: the modem
  224. would hangup the phone when a file transfer completed or Connect mode
  225. were exited, and secondly, null characters could be sent at the start of
  226. a file transfer or when Connect mode was entered.  It seems that several
  227. mainframes regard null characters as important signals rather than as fillers.
  228. We have tested this version with a real Hayes 1200B modem with satisfactory
  229. results.
  230.  
  231.         There were numerous small problems throughout MS Kermit, as might
  232. be expected, and those identified to date have been addressed.  One important
  233. one was the serial port was left active if one PUSHed to DOS while in Connect
  234. mode.
  235.  
  236.         Serious DOS errors are trapped by Kermit to prevent Kermit from being
  237. aborted with the serial port interrupt alive and with a couple of other items
  238. redirected to Kermit itself. The most common such error is "Drive Not Ready."
  239. Previously, these conditions would invoke the normal DOS Critical Error proc
  240. which would request "Abort, Retry, Ignore?" and would abort the program if
  241. Abort were chosen.  Now, Kermit exercises a fourth option, Fail the Operation,
  242. when these errors occur.  Procedures spawning a second copy of COMMAND.COM
  243. (DIR, etc) still can yield the A/R/I message but it is harmless in this case.
  244. However, if such a message arises while Kermit is in Server mode a human must
  245. still type the answer locally.  The implementation replaces the normal DOS
  246. Control-Break (^C) and Critical Error handlers with Kermit's own handlers and
  247. restores the originals when Kermit exits.
  248.  
  249.         Numerous small bugs concerning negotiated parameters (8 bit quoting,
  250. Block check types, etc) have been fixed; these mainly concerned Server mode
  251. operations. The terminal emulator no longer responds to the answer-back msg
  252. request; there is no answer-back message in the emulator. Screen handling
  253. has been improved internally, but it still has a few glitches.
  254.  
  255.         While in Connect mode 8 bit received data will be passed through to
  256. the terminal processor if the Parity type is None. If Debugging is ON then
  257. characters with their high bit set will be displayed as a tilde and then a
  258. code for the lower 7 bits; i.e., 10000001b is displayed as ~^A. Note: due
  259. to network quirks these characters may be mistranslated; the tilde is the
  260. funny wiggle character above the accent mark and the control symbol is a
  261. caret.
  262.  
  263.  
  264. ADDITION TO SET DISPLAY COMMAND:
  265.  
  266.         Set Display  Regular | Serial | Quiet | 7-bit | 8-bit
  267.  
  268.         The keywords 7-bit and 8-bit have been added to control displays
  269. of characters in non-file transfer modes. 7-bit is the default and 8-bit
  270. becomes meaningless when parity is other than None. The Set Display
  271. command accepts two keywords in one command, processed left to right.
  272.  
  273. ADDITION TO SET PROMPT COMMAND:
  274.  
  275.         Special characters, such as escape, can be included in text of
  276. Kermit's prompt by specifying them as octal numbers in the form \ooo
  277. where o is an octal digit. Escape itself is \33. To return to Kermit's
  278. default prompt give the Set Prompt command without text. The replacement
  279. prompt can be up to 80 characters long.
  280.  
  281.  
  282. ANSI PRINTER SUPPORT:
  283.  
  284. For VT102 emulator in IBM and NEC AP3 versions.  New escape sequences:
  285.  
  286. ESC [ i         Print the entire screen (24 user lines) or just the text
  287.                 in the scrolling region, depending on ESC [ ? 19 h/l  below.
  288.                 ESC [ 0 i   is an equivalent command.
  289.  
  290. ESC [ ? 1 i     Print the line containing the cursor.
  291.  
  292. ESC [ 4 i       Disable Controller print. Cursor returns to its position
  293.                 when ESC [ 5 i was encountered earlier.
  294.  
  295. ESC [ ? 4 i     Disable Auto Print.
  296.  
  297. ESC [ 5 i       Enable Controller print; incoming text is sent to printer but
  298.                 not to the screen. Escape sequences are recognized and acted
  299.                 upon but are not printed. Cursor movement cannot be prevented.
  300.  
  301. ESC [ ? 5 i     Enable Auto Print; incoming text is sent to both screen and
  302.                 printer. Escape sequences are recognized and acted upon but
  303.                 are not printed.
  304.  
  305. ESC [ ? 18 h    Set Print termination char; requests Form Feed be printed
  306.                 after each Print Screen operation (ESC [ i).
  307.  
  308. ESC [ ? 18 l    Reset Print termination char; no FF after Print screen.
  309.  
  310. ESC [ ? 19 h    Sets print area of ESC [ i  to be the whole screen (24 lines).
  311.  
  312. ESC [ ? 19 l    Resets print area of ESC [ i  to be just scrolling region.
  313.  
  314. ESC [ ? 15 n    Request from remote host for printer status report.
  315.  
  316. ESC [ ? 10 n    Response to ESC [ ? 15 n  if printer is ready.
  317.  
  318. ESC [ ? 13 n    Response to ESC [ ? 15 n  if printer is not ready.
  319.  
  320.         The print device is selected to be the system printer (system file
  321. handle 4, LPT1) and the user has no choice in the matter. If the printer is
  322. not ready then a message to this effect is shown on the mode line (line 25)
  323. and the print request is skipped. Skipping is done to prevent systems from
  324. being hung just because the printer was not plugged in or similar trivia.
  325. Trailing spaces on each line are trimmed off to save printing time. These
  326. print screen operations should be compatible with all the other screen to
  327. printer operations (screen dump key, Log to PRN, DOS print screen, etc).
  328.  
  329.         Startup conditions are to reset both Print termination char and screen
  330. area bits; i.e., no FF after a print screen command and use scrolling region.
  331.  
  332.  
  333. LONG PACKETS:
  334.  
  335.         This version can use packets up to 1000 bytes in length. The file
  336. sender selects the type of packet (Regular or Long) based upon the size of the
  337. data to be sent in that particular packet; negotiations at the start of a file
  338. transfer determine the maximum length. The receiver is prepared to accept Long
  339. packets at any time up to a maximum length set by the user.
  340.  
  341.         The command SET RECEIVE PACKET-LENGTH xxx limits the
  342. maximum packet size; xxx can be as large as 1000.  Kermit uses 94 byte
  343. packets as its default maximum size; longer packets will be employed only if
  344. the user gives the SET RECEIVE PACK commands above, and the other Kermit
  345. knows how to and agrees to send them.  Packet lengths greater than 94 are
  346. accomplished using a protocol extension -- Extended Length Packets -- that may
  347. be lacking in other Kermit programs.  The SET SEND PACKET xxx command may
  348. be used to override the other Kermit's request.
  349.  
  350. WARNING: The normal file transfer display will be fractured if you use long
  351. packets together with SET DEBUG ON.  If you want to display long packets during
  352. file transfer, be sure to SET DISPLAY SERIAL.
  353.  
  354.  
  355. PERFORMANCE:
  356.  
  357.         The IBM serial port interrupt routine, buffer handler for received
  358. chars, and the packet assembly/disassembly routines Spack and Rpack have been
  359. completely rewritten for efficiency, Long packets, and high speed operations.
  360. It is possible to operate at 38400 baud on a plain 4.77 MHz IBM PC provided
  361. that the clock tic routine is not loaded with time consuming extras (Helpful
  362. Utilities, print spoolers, screen savers, and the like). Long packet and
  363. high efficiency code are system independent; fancy high speed operation code
  364. is for IBM PC's and clones and the DEC Rainbow.
  365.  
  366.  
  367. SCRIPTS:
  368.  
  369.         A simple Kermit-style script and raw file upload facility has been
  370. written by Jim Sturdevant and myself (he did the original version and we
  371. developed it from there). This code is actually system independent. A quick
  372. discussion is reproduced below, and the Kermit Help menu has further cryptic
  373. guidance.
  374.  
  375.         Here is a quick guide to scripts in MS Kermit 2.29.  There are several
  376. main script commands shown below in Upper case and yet another batch of Set
  377. commands to establish operational parameter for scripts.
  378.  
  379. OUTPUT text
  380.         Sends the single line of text out the serial port. Spaces and tabs
  381. are included. Control characters such as a carriage return must be stated
  382. as an octal number preceeded by a backslash: carriage return is \15, line
  383. feed is \12, bell is \7, and so forth. Example, dial the phone via a modem:
  384.         Output atdt 5,1234, (918) 555-1212\15
  385. The "text" also can be the first line of a file or even from the console if
  386. the first letter of the text is an at-sign, @filename or @con. Thus,
  387.         Output @con
  388. reads a line from the console and sends it out the serial port.
  389. You can also include "\b" or "\B" in your script to have it send a BREAK.
  390.  
  391. INPUT [time] text
  392.         This is a heavily used operation which reads characters from the
  393. serial port and attempts to match them to the line of text, or times out
  394. if it can't. A common command of this kind would be
  395.                 Input 30 Username:
  396. The sequence above waits up to 30 seconds for the pattern Username: to
  397. appear. If it does then the next script command is executed. If it does not
  398. appear then the script file can be told to Quit or to Proceed as if
  399. the pattern did occur. The time field is optional and is nominally 1 second.
  400. Selection of Quit or Proceed and the default waiting time are governed by
  401. the Set Input command discussed below. Text may also be replaced by
  402. at-sign filename to cause the pattern to be selected as the first line in
  403. that file.
  404.         If the text pattern is omitted then the Input command reads
  405. characters from the serial port, displays and then discards them.
  406.         A recent addition allows a carriage return typed at the local keyboard
  407. to force a pattern match (for those of us with limited patience concerning
  408. recalcerant remote hosts).
  409.  
  410. PAUSE [time]
  411.         Waits 1 second, or the number of seconds in the optional argument.
  412.  
  413. ECHO text
  414.         Simply writes the line of text on the screen.  Text may contain
  415.         imbedded escape codes (e.g. VT100 sequences for Rainbow firmware
  416.         or [N]ANSI.SYS.).
  417.  
  418. CLRINP
  419.         Empties the serial port's buffer of stored but not yet read characters.
  420.  
  421. TRANSMIT filespec [prompt]
  422.         Raw file upload. Sends the named file (no wild cards) a line at a time
  423. to the remote host. Each line is expected to end with carriage return-line
  424. feed, and the trailing line feed is not sent. After each line Kermit waits
  425. for a prompt character from the other side. The default prompt char is a
  426. line feed. The command line allows the prompt to be changed to any other
  427. character (control codes are expressed as an octal number in the form \ooo);
  428. specifying a prompt of \0 means do not wait for a prompt. Alternatively,
  429. pushing the local Return key simulates reception of prompt.
  430.         Trans foo.bar \7        send file "foo.bar", expect ^G as a prompt.
  431.  
  432. SET INPUT commands:
  433.  
  434. Set Input Default-timeout seconds
  435.         Changes the waiting time from 1 second to this new value.
  436.  
  437. Set Input Timeout-action Proceed or Quit
  438.         Determines whether or not the current script file is to be continued
  439. or exited if a timeout occurs. Proceed is the default and means that timeouts
  440. are ignored. Quit causes the current script file to be exited and control
  441. passed to either the next higher level script file (if the present one were
  442. invoked by such) or to Kermit's main prompt.
  443.  
  444. Set Input Case Ignore or Observe
  445.         Says whether or not to distinguish upper and lower case text when
  446. doing a matchup in the INPUT command. Ignore causes upper and lower case
  447. letters to be considered the same. Default is to Ignore case distinctions.
  448.  
  449. Set Input Echo On or Off
  450.         Show on the screen characters read from the serial port during the
  451. script operation, or not. Default is On, show them.
  452.  
  453.         Values of Set Input things are shown on Kermit's Status display.
  454.  
  455.         Construction of a script file. Kermit has the ability to read a file,
  456. called a Take file in Kermit-ese, and execute the contents as Kermit commands.
  457. The Kermit command to do this is TAKE filename. Within such a file may be
  458. another Take command, and within it yet another Take and so on. Thus, the
  459. script is prepared as an ordinary text file and is invoked within Kermit
  460. by saying Take filename; a complete working example is given below.
  461.         Before getting to it, however, a word or two about timeouts. If the
  462. action on timing out is set to Quit then the current Take file is exited
  463. whenever a timeout occurs and processing continues at any next higher level
  464. Take file; there is no conditional branching in this script facility. Also,
  465. Kermit looks for a particular file, MSKERMIT.INI, at startup time and
  466. executes it as the first Take file; you may place normal startup and script
  467. commands there as a convenience.
  468.  
  469.         An example script is shown below for connecting to machine VAXB via
  470. a modem and a Data Switch. The lines starting with Comment are ignored by
  471. Kermit and are there as a tutorial guide. Comments may also be placed on a
  472. line beginning with a semicolon. Upper case is used for clarity.
  473. File LOGIN.SCP -
  474.  
  475. Comment                                 set Kermit's baud rate to 2400
  476. SET SPEED 2400
  477. Comment                                 flush any old junk
  478. CLRINP
  479. Comment                             don't display Take file commands as we go
  480. SET TAKE OFF
  481. Comment                         quit script if proper answers do not appear
  482. SET INPUT TIMEOUT-ACTION QUIT
  483. Comment                                 see if modem is alive, hello modem.
  484. OUTPUT AT\15
  485. Comment                                 look for its normal response
  486. INPUT OK
  487. Comment                                 dial the Micom switch (from on-campus)
  488. OUTPUT ATDT 3458\15
  489. Comment                                 look for phone being answered
  490. INPUT 25 CONNECT
  491. Comment                                 wait 1 sec for modem to get ready
  492. PAUSE 1
  493. Comment                         then send control code carriage return,
  494. Comment                         expressed as an octal number preceded by \.
  495. OUTPUT \15
  496. Comment                                 wait a sec for the switch to wake up
  497. PAUSE 1
  498. Comment                 one more time so the switch recognizes our baud rate
  499. OUTPUT \15
  500. Comment                         find first part of switch's announcement
  501. INPUT 10 slowly
  502. Comment                                 ignore timeouts from here on
  503. SET INPUT TIMEOUT PROCEED
  504. Comment                                 find last word of the announcement
  505. INPUT 15 CLASS
  506. Comment                             tell the switch where we want to attach
  507. OUTPUT VAXB\15
  508. Comment                                 look for final prompt of Go and a beep
  509. INPUT 20 Go\7
  510. Comment                                 let switch get ready for our response
  511. PAUSE 1
  512. Comment                              wakeup vaxb, c/r's, slowly as instructed
  513. OUTPUT \15
  514. PAUSE 1
  515. OUTPUT \15
  516. PAUSE 1
  517. Comment                                 third c/r, just in case. Awaken Vaxen
  518. OUTPUT \15
  519. Comment                                 look for login sequence
  520. INPUT Username:
  521. Comment                                 give our username
  522. OUTPUT ItsMeAgain\15
  523. INPUT Password:
  524. Comment                         give ourselves a prompt and read from console
  525. ECHO \15\12Enter password:
  526. OUTPUT @con
  527. Comment                                 we're in, go test for new mail msg
  528. TAKE mail.scp
  529. Comment                                 go into VT102 terminal emulation mode
  530. CONNECT
  531.  
  532. And here is file MAIL.SCP, with added comments -
  533.  
  534. Comment                         show serial port traffic as we go
  535. SET TAKE ON
  536. Comment                         Exit this file if timeout (no new mail)
  537. SET INPUT TIMEOUT QUIT
  538. Comment                         look for keyword Mail, timeout if none
  539. INPUT 10 Mail
  540. Comment                         must be mail if we are still here, read it
  541. OUTPUT mail\15
  542.  
  543. LIMITATIONS OF SCRIPTS:
  544.  
  545. No variables, conditional branching, or similar features.
  546.  
  547. The terminal emulator is not active during script execution, so that
  548. escape sequences (particularly the DEC "what kind of terminal are you?"
  549. sequence) will not be recognized.  A login script designed for VAX/VMS systems
  550. with TERMINAL/INQUIRE should do an explicit INPUT for the enquiry string
  551. ("ESC Z", or "ESC [ 0 c") and then explicitly output the terminal ID string
  552. (like "ESC [ ? 6 c" for the VT102.  The terminal emulator is independent of the
  553. script facility so that scripts can be a part of all MS-DOS Kermits, not just
  554. the IBM PC version.
  555.  
  556. Sometimes 8-bit characters are displayed on the screen during script execution,
  557. even though PARITY might be SET to other than NONE.
  558.  
  559. [End of MST22B.UPD]
  560. Date: 7 JUN 87 21:22-MST
  561. From: JRD@USU
  562. Subject: 7 MSTxxx.BOO files, following.
  563.  
  564.         In your queue are files dated  7 June 1987, MSK 2.29C:
  565.  
  566.         mstibm.boo              IBM, tested
  567.         msthp1.boo              HP 110 and Portable Plus, untested
  568.         msthpx.boo              HP 150 untested
  569.         mstgen.boo              Generic, tested
  570.         mstgri.boo              Grid Compass, untested (need a tester too)
  571.         mstz10.boo              Zenith 100/200 (the S100 bus kinds) untested
  572.         mstap3.boo              NEC APC III, untested (has the VT102 emulator)
  573.  
  574.  
  575. To be finished here are the Victor 9000, Decmate II regular version, and
  576. not least the regular version for the Rainbow (partly done now). Apricot
  577. is out to the UK (Dick Carlton, rwtc%open.acs.vax@ac.uk), Sanyo 55x is out to
  578. Bob Babcock peprbv@cfaamp.bitnet and Joe White jhw@rti.bitnet,. Rainbow/Knoell
  579. needs rebuilding here to receive the latest improvements and will be sent
  580. later. Wang is out to Chris Lent, currently pedham@cuccfa.bitnet. A variant
  581. named EZP is being purged as a curiosity IBM clone of passed interest.
  582.  
  583.         The "Clone" Kermit not longer exists since regular MS Kermit/IBM
  584. now does the fancy footwork to use the Bios for serial port i/o if a real
  585. 8250 UART chip is not available. When the port is selected by Set Port ###
  586. a message about Bios usage is displayed, if appropriate. Testing for that
  587. chip is read-only for minimum disturbance to the host system. Should
  588. someone Set Port COMx when no such port exists then a message is displayed
  589. and the current port remains in force.
  590.  
  591.         Other small items, en passant. The IBM version measures the cpu speed
  592. automatically each time the serial port is opened, to provide reasonably
  593. accurate durations for waiting and Breaks (regular 275 ms and long 1800 ms)
  594. regardless of machine operational settings. Sort of a KI, Kermit Index.
  595. The IBM version also adapts automatically to systems using EGA boards in
  596. high density text modes, such as 132 columns and 43 lines, provided the
  597. user sets these modes outside of Kermit.
  598.  
  599.         Filtering of null and DEL characters has been revised so that
  600. the VT102 emulator can send all 256 binary byte combinations to a printer
  601. when Transparent Print is activated. The Set Translate Input table is
  602. bypassed during Transparent Print.
  603.  
  604.         The VT102 emulator is/will be in IBM, NEC APC III, Victor 9000, Wang,
  605. and perhaps in the Sanyo version with the IBM compatible video board.
  606.  
  607.         The keyboard translator and Set Translate Input table are in all
  608. versions.
  609.  
  610.         Regards,
  611.         Joe D.
  612.  
  613.  
  614. ==================================
  615. File error.not
  616.                         MS Kermit returns ERRORLEVEL
  617.                         information for batch files.
  618.  
  619. Version 2.30 of MS Kermit returns an error code to DOS for use in
  620. batch files as the ERRORLEVEL parameter. The codes are as follows:
  621.         0       success
  622.         1       error sending a file
  623.         2       error receiving a file
  624.         4       error executing a REMOTE command to a server
  625. The errors are culmulative while Kermit operates; thus errorlevel of 3
  626. indicates failure to both send and receive a file (or files) in this
  627. session. A successful operation does not change or reduce the errorlevel.
  628.  
  629.         jrd 7 June 1987
  630.  
  631. =============================
  632. File multicom.not
  633.  
  634.                         Notes on operating MS Kermit/IBM
  635.                         with serial ports COM3 and COM4
  636.                                 Joe R. Doupnik
  637.                                  17 May 1987
  638.  
  639.         Kermit is now able to use some of the serial port expansion boards
  640. as COM3 and COM4. However, certain technical issues should be probed before
  641. attempting such operation.
  642.  
  643.         Kermit looks for the base address of the 8250 UART chip for each
  644. port by examining the four words in memory starting at location 40:00h
  645. (segment 40h, offset 0). The system boot procedure normally tests for standard
  646. COM1 and COM2 serial ports and puts their base address in the first two
  647. words, or zeros otherwise. You must insert the addresses for additional
  648. serial ports, as described below, in words three or four. Kermit assumes
  649. that COM3 shares the interrupt request line IRQ4 with the regular COM1 port
  650. and similiarly COM4 shares IRQ3. If these conditions are not met then Kermit
  651. cannot use the extra ports without changing the source code.
  652.  
  653.                 Table of serial port numbers
  654.  
  655.         Serial Port     Base address    IRQ     Conventions
  656.           COM1            3F8H           4      IBM standard
  657.           COM2            2F8H           3      IBM standard
  658.           COM3             ?             4      your board, Kermit wants IRQ4
  659.           COM4             ?             3      your board, Kermit wants IRQ3
  660.  
  661. The addresses shown as query marks are to be found in the board's reference
  662. manual; values such as 2E8H and 2E0H would be common. However, there is
  663. no standard for anything to do with COM3 and COM4.
  664.  
  665.         Assuming that you have selected an address in harmony with the
  666. rest of the system (good luck on that part), set the board's switches or
  667. jumpers, and use DEBUG to insert the address(es) in segment 40H memory.
  668. The example below creates a small program named setcom3.com to put address
  669. 02E8H into the memory word 40:04H for COM3 and writes the program to drive C.
  670. (disregard the xxxx items below):
  671.         DEBUG                           don't type these comments
  672.         -n c:setcom3.com                sets name of output file
  673.         -a                              assemble command
  674.         xxxx:100 mov ax,40              value 40h
  675.         xxxx:103 mov es,ax              put it into register es
  676.         xxxx:105 mov ah,02              the 02 part of 02E8H
  677.         xxxx:107 mov al,e8              the E8 part of same
  678.         xxxx:109 es:
  679.         xxxx:10A mov [4],ax             store in 40:4 for com3 (40:6 for com4)
  680.         xxxx:10D int 20                 return to DOS
  681.         xxxx:10F                        blank line to end assemble mode
  682.         -r bx                           show contents of register bx
  683.         BX 0000
  684.         : 0                             want register bx to hold 0
  685.         -r cx                           show contents of register cx
  686.         CX 0000
  687.         : 0f                            set register cx to write 0fh bytes
  688.         -w                              write material to the file
  689.         -q                              quit debug
  690.         DEBUG c:setcom3.com
  691.         -u                              unassemble to see if all is well
  692.         -q                              quit debug
  693.  
  694. Note, for COM4, use [6] above rather than [4], and of course employ your
  695. board's port address in place of 02E8H. Check the manual.
  696.  
  697. Finally, try it:
  698.  
  699.         C> setcom3                      run the program
  700.         C> DEBUG                        now see what's down there
  701.         -dw 40:00                       display words in seg 40H
  702.                                         shows many words. See yours? Good.
  703.         -q
  704.         C>
  705.  
  706.         A small side effect noted in practice is the first time the extra
  707. port is used there may be garbage from it. Just return to the Kermit prompt
  708. and try again, all should be well the second time.
  709.  
  710.         More technical comments, for those with an interest. When Kermit
  711. finishes with a port it disables interrupts for that serial port and the
  712. interrupt request line (protects against stray interrupts later on).
  713. However, only one device at a time can be active on an IRQ. If you find
  714. that transmissions are good but there is no reception then another device
  715. has stolen the IRQ; disable it or find a guru. Kermit will work with non-
  716. standard addresses for COM1 and COM2 but the IRQ's must be as in the table
  717. above. Accessing a non-existant port produces a message and all commuications
  718. are discarded safely.
  719. ===================================
  720. File network.not
  721.  
  722.                         Notes on running MS Kermit 2.30/IBM
  723.                           across Local Area Networks
  724.                                 25 April 1987
  725.  
  726. 1. Introduction.
  727.  
  728.         The latest version of MS Kermit for IBM PC class machines is able
  729. to use many kinds of Local Area Networks (LANs) as its communications
  730. channel. The LANs are those based upon or emulate the IBM PCnet Netbios;
  731. these include the IBM PCnet, IBM Token Ring, AT&T StarLan, and others.
  732.  
  733.         To use a LAN the appropriate LAN board and software must be operating
  734. on the personal computer. This software is usually the 'client' side of
  735. a file/disk serving system. Next, run Kermit and give the command
  736.  
  737.         SET PORT NET nodename           for a Kermit client
  738.  
  739. This directs Kermit to communicate via the network components rather than
  740. the machine's serial port. Client machines need to state the node name
  741. of the remote system. That remote system is likely to be not the LAN file
  742. server but rather another user machine operating Kermit in server mode.
  743. Thankfully, Kermit does not understand the arcane language of file servers.
  744. If the local Kermit is restoring a previous connection or if it is to become
  745. a Kermit server then the node name can be omitted:
  746.  
  747.         SET PORT NET                    for a Kermit server
  748.  
  749. After a pause of up to 20 seconds or so Kermit will respond with it's
  750. local node name or an error message saying the network is unavailable.
  751. No actual connection is made at this point; the network is just checking
  752. on uniqueness of our local node name (it does nothing with the remote node
  753. name until later). Thereafter, use normal Kermit commands as one would do with
  754. serial port communications. Really? Yes, indeed; everything is normal. Great!
  755.  
  756.         A connection is established with the first external communications
  757. request, such as a file transfer or entering terminal emulation Connect mode.
  758. If the connection cannot be completed then an error message indicates this
  759. situation; either the network is not functioning on your machine, the
  760. remote node is not available, the remote node name is incorrect, or even
  761. your kind of LAN is not supported by Kermit.
  762.  
  763.         A connection, or 'session' in network terminology, is Broken when
  764.         - a Kermit is exited completely,
  765.         - the HANGUP command is issued (yes, the same command as we use
  766.           to hangup the phone with an attached modem),
  767.         - a new SET PORT NET differentnode  command is issued (but the
  768.           session is Not broken by saying SET PORT COM1/2), or
  769.         - one side or the other fails to respond to a packet after a network
  770.           timeout interval (many seconds).
  771.  
  772.         A connection is maintained while switching to one of the regular
  773. serial ports (COM1 et al), while Pushed to DOS, and while we just stare
  774. at the screen for a while.
  775.  
  776.         Kermit remembers the name of the other end, so when returning to
  777. a network port from say COM1 just give the command
  778.         SET PORT NET
  779. and resume where you left off.
  780.  
  781. 2. Ways of using Kermit across a LAN.
  782.  
  783.         Kermit is likely to be used in two situations. First, as a high
  784. quality terminal to a remote host which permits logins via the network.
  785. The AT&T StarLan system connected to a Unix machine supports such remote
  786. terminals. Similarly, some remote applications are built to talk over the
  787. network directly to a terminal.
  788.  
  789.         Second, Kermit can be put into Server mode for access by other
  790. Kermits across the network. To make a Kermit into a server give the
  791. Kermit command Server, but naturally say SET PORT NET beforehand.
  792. The node name of a net Kermit is the name of the local node (the first entry
  793. in the table of names held in the network adapter board) with the appendage
  794. of  .K  (dot K), such as  SALES.K.
  795.  
  796.         On a client Kermit give the command
  797.  
  798.         SET PORT NET SALES.K
  799.  
  800. and then use regular Kermit file transfer commands. The server will attend
  801. to only one user at a time so Hangup the connection when you are done. The
  802. server will continue to respond to connections from other nodes until it
  803. is shut down or someone issues the LOGO/BYE commands.
  804.  
  805.         The network can support many Kermit servers since the name of each
  806. is formed from the machine's normal node name plus the extension of dot K.
  807.  
  808.         Two Kermits can converse in Connect mode if, but only if, one end is
  809. first put into Server mode and then the other end establishes a session.
  810. The two Kermit commands,
  811.         REMOTE SEND one-line-message-to-server's-screen
  812. and
  813.         LOGO
  814. are useful to synchronize the connection process before both Kermits are put
  815. into Connect mode (a Chat mode if you like).
  816.  
  817.         File transfers can be slower than expected because of the extra
  818. overhead of wrapping Kermit packets within network packets. A dramatic
  819. improvment in speed can be achieved by lengthing the Kermit packets to
  820. the full 1000 byte limit; on each end issue the Kermit commands
  821.         SET SEND PACKET 1000
  822.         SET RECEIVE PACKET 1000
  823. Do this on both ends to use long packets. This size is much longer than
  824. most network packets, but Kermit takes care to not over fill them.
  825.  
  826.         Control-S/Q (XON/XOFF) continue to work on an end to end basis.
  827. Some run-on is likely since there probably are one or two packets still
  828. in the communciations system.
  829.  
  830. 3. Technical details.
  831.  
  832.         The LAN support in MS Kermit/IBM is written to interface with the
  833. IBM Netbios, Interrupt 5CH, and, if present, session level Interrupt 2AH.
  834. A test is made for presence of the 5CH interrupt and network board before
  835. issuing network commands. Keyboard, screen, disk, and other peripheral
  836. control is done locally on the PC. Thus, the identical Kermit program
  837. will run on a network or through the serial port (with or without an Intel
  838. 8250 UART chip) automatically. Network calls are kept as Netbios generic
  839. as possible.
  840.  
  841.         The Kermit status command shows the communications port as NET
  842. (port: N on the terminal status line). No node name is shown because
  843. they are 16 or more bytes long and screen real estate is fully used now.
  844.  
  845.         Internally, the network packet size is set to 256 bytes for both
  846. transmitter and receiver. This is a compromise between efficiency of longer
  847. network packets and space consumed within Kermit. Both transmission and
  848. reception are additionally buffered within Kermit. Reception is interrupt
  849. driven by the network software, transmission is not. Throughput should
  850. exceed 10-12K baud on an idle network with 1000 byte Kermit packets.
  851. Use the Kermit command SHOW STATISTICS to see average values.
  852.  
  853.         Virtual circuits, sessions, are employed rather than datagrams
  854. to ensure integrity of terminal mode communications and to reduce the
  855. number of lost packets when a network is heavily loaded with other traffic.
  856. Virtual circuits also isolate client to server communications to a pair
  857. of machines without mingling packets from other sources. The network can
  858. support many different Kermit client to server conversations simultaneously.
  859.  
  860.         Server mode starts by issuing a network LISTEN packet to solicit
  861. a connection from anyone using the server's node name. Thus, a session
  862. begins when another system sends a CALL packet to that node name AFTER the
  863. server has started. The session ends willingly as described in section 1
  864. and when a packet times out. Afterward, the server posts a new LISTEN
  865. packet to solicit a new a session. Breakage is nearly transparent on the
  866. client machine because Kermit remembers the last used remote node name.
  867.  
  868.         Client type Connect and file transfer modes begin by issuing a
  869. network CALL packet to the named node. Control does not resume until
  870. the CALL is answered by a Listener or the packet times out; Kermit retries
  871. the CALL many times, quietly. Typing Control-C will interrupt the CALL.
  872.  
  873.         A SET PORT NET command on a client remembers the last used node name.
  874. A server Listens for any remote node name and remembers the last used if
  875. such is needed when not in server mode any longer. Thus, SET PORT NET with
  876. no node name leaves intact any earlier name.
  877.  
  878.         The HANGUP command sends a disconnect message (a network Hangup
  879. packet) to the other side but leaves the remote node name intact. Exiting
  880. Kermit back to DOS results in a Hangup being executed; just Pushing to
  881. DOS retains the connection.
  882.  
  883.         Sending a BREAK is always delicate on LANs since the Netbios has
  884. no provision for such an RS 232-C signal. Manufacturers of some LANs have
  885. provided their own special methods for simulating a BREAK. More work is
  886. needed to support various systems.
  887.  
  888.         Specialized code will be introduced to support specific LANs. One
  889. such case will be allowance of long node names as are used to StarLan
  890. ISN gateways. Keyword NET will shift to allow the network name itself.
  891.  
  892.         MS Kermit/IBM has been successfully tested on the AT&T StarLan
  893. network while running on a PC's Limited 8 MHz AT clone which was loaded
  894. with an ega board, dual IOmega Bernoulli Boxes, real hard disk, etc. and
  895. on a Zenith 151 regular dual floppy PC clone. The network consisted of these
  896. two machines plus an AT&T Unix PC running AT&T Unix System V rel 3.0.
  897. The AT and PC clones operated under PC DOS 3.30.
  898.  
  899. 4. Acknowlegments.
  900.  
  901.         The network development effort was made possible by the support of
  902. AT&T, StarLan Product Management and Paul G. Fox in particular; their
  903. contribution to Kermit is recognized. General support of Utah State University
  904. is also recognized (you ought to see the computer bills for Mail).
  905.  
  906.                                 Joe R. Doupnik, jrd@usu.Bitnet
  907.                                 Center for Atmospheric Sciences and
  908.                                 Department of Electrical Engineering
  909.                                 Utah State University
  910.                                 Logan, Utah  84322-4405
  911.                                 (801) 750-2982 (work)
  912.  
  913. ===============================
  914. File key.not
  915.                         Some quick notes on material
  916.                         going into MS Kermit 2.30
  917.                                 Joe Doupnik
  918.                                 21 March 1987
  919.  
  920. Keyboard translator:
  921.  
  922. Brief list of present Set/Show Key syntax and predefined keys.
  923. This is all subject to change at any time (internal development only).
  924. Copied straight from the source code.
  925.  
  926. ;Defining a key:
  927. ; Command is SET KEY <key ident><whitespace><definition>
  928. ;
  929. ; <key ident> is
  930. ;               a single ordinary ascii char or
  931. ;               the numerical equivalent of an ascii char or
  932. ;               a Scan Code written as a number or
  933. ;               keyword SCAN followed by a number.
  934. ;               ?       Displays help message.
  935. ;       Numbers and Binary codes are of the form
  936. ;               \123    a decimal number
  937. ;               \o456   an octal number         base letters o, d, x can be
  938. ;               \d213   a decimal number        upper or lower case
  939. ;               \x0d    a hex number
  940. ;               \{b###}  braces around above material following slash.
  941. ;
  942. ; <whitespace> is one or more spaces and or tabs.
  943. ;
  944. ; <definition> is
  945. ;       missing altogether which "undefines" a key.
  946. ;       \Kverb          for a Kermit action verb; upper or lower case K is ok
  947. ;       \{Kverb}        ditto. Verb is the name of an action verb.
  948. ;       text            a string with allowed embedded whitespace and embedded
  949. ;                       binary chars as above. This kind of string may not
  950. ;                       commence with sequences \K or \{K; use braces below.
  951. ;       {text}          string confined to material within but excluding
  952. ;                       the braces. Note, where the number of opening braces
  953. ;                       exceeds the number of closing braces the end of line
  954. ;                       terminates the string: {ab{}{{c}d ==> ab{}{{c}d
  955. ;                       but  {ab}{{c}d ==> ab.
  956. ;       ?               Displays help message and lists all action verbs.
  957. ;
  958. ;       If Set Key is given interactively, as opposed to within a Take
  959. ;       file, the system will prompt for inputs if none is on the command
  960. ;       line. The response to Push key to be defined cannot be edited.
  961. ;
  962. ;       Text which reduces to a single replacement character is put into a
  963. ;       table separate from the multi-character strings (maxstng of these).
  964. ;       A key may be translated into any single 8 bit code.
  965. ;
  966. ;       Comments can follow a Kermit action verb or a braced string; no
  967. ;       semicolon is required since all are stripped out by the Take file
  968. ;       reader before the defining text is seen by SET KEY.
  969. ;
  970. ;       The current Kermit escape character cannot be translated without
  971. ;       subtrafuge.
  972. ;
  973. ;       Examples:
  974. ;               Set Key q z
  975. ;                               makes key q send character z
  976. ;               Set Key \7 \27[0m
  977. ;                               makes key Control G send the four byte
  978. ;                               string  ESC [ 0 m
  979. ;               Set Key q
  980. ;                               undefines key q so it sends itself (q) again.
  981. ;               Set Key \2349 \kexit
  982. ;                               defines IBM Alt-X to invoke the leave connect
  983. ;                               mode verb "exit" (Kermit's escape-char ^] C).
  984. ;               Set Key \x0c Login \{x0d}myname\{x0d}mypass\x0d
  985. ;                               defines Control L to send the string
  986. ;                               Login <cr>myname<cr>mypass<cr>
  987. ;
  988. ; Alternative Set Key syntax for backward compatibility with previous versions
  989. ;       The same forms as above except the key identification number must
  990. ;       be decimal and must Not have a leading backslash. Example:
  991. ;       Set Key Scan 59 This is the F1 key
  992. ;
  993. ;       If the definition is omitted it may be placed on the following line;
  994. ;       if that line is also empty the key is undefined (defined as Self).
  995. ;       A warning message about obsolete syntax will be given followed by
  996. ;       the key's modern numerical value and new definition. Only "special"
  997. ;       keys (those not producing ascii codes) are compatible with this
  998. ;       translator.
  999. ;
  1000. ;Showing a key:
  1001. ; Command is SHOW KEY <cr>
  1002. ; System prompts user to press a key and shows the definition plus the
  1003. ; free space for strings.
  1004. -----------------------------------------------------------------------------
  1005. ; Kermit IBM initialization time keyboard setup.
  1006. ; internal coding: Kermit verb then key numerical ident (scan=256, shift=512)
  1007.  
  1008.         '\kgold',scan+59        ; F1
  1009.         '\kpf2',scan+60         ; F2
  1010.         '\kpf3',scan+61         ; F3
  1011.         '\kpf4',scan+62         ; F4
  1012.         '\kkp0',scan+shift+90   ; VT100 keypad numeric area, SF7
  1013.         '\kkp1',scan+shift+86   ; SF3
  1014.         '\kkp2',scan+shift+87   ; SF4
  1015.         '\kkp3',scan+shift+88   ; SF5
  1016.         '\kkp4',scan+shift+89   ; SF9
  1017.         '\kkp5',scan+68         ; F10
  1018.         '\kkp6',scan+shift+84   ; SF1
  1019.         '\kkp7',scan+63         ; F5
  1020.         '\kkp8',scan+64         ; F6
  1021.         '\kkp9',scan+65         ; F7
  1022.         '\kkpenter',scan+shift+89 ; SF6
  1023.         '\kkpcoma',scan+shift+85  ; SF2
  1024.         '\kkpminus',scan+66     ; F8
  1025.         '\kkpdot',scan+shift+91 ; SF8
  1026.         '\kuparr',scan+72       ; VT100 cursor keys (arrows)
  1027.         '\kdnarr',scan+80
  1028.         '\klfarr',scan+75
  1029.         '\krtarr',scan+77
  1030.         '\kupscan',scan+73      ; PgUp  Kermit screen roll back keys
  1031.         '\kdnscan',scan+81      ; PgDn
  1032.         '\khomscn',scan+71      ; Home
  1033.         '\kendscn',scan+79      ; End
  1034.         '\kupone',scan+1156     ; Ctrl PgUp     one line scrolls
  1035.         '\kdnone',scan+1142     ; Ctrl PgDn
  1036.         '\kmodeline',scan+74    ; Kermit toggle mode line  Keypad -
  1037.         '\ktermtype',scan+2178  ; Kermit toggle terminal type  Alt -
  1038.         '\kreset',scan+2179     ; Kermit reset terminal  Alt =
  1039.         '\kprtscn',scan+1138    ; Kermit toggle print screen  Ctrl *
  1040.         '\kdump',scan+1141      ; Kermit Dump Screen  Ctrl End
  1041.         '\x7f',scan+83          ; Del key sends DEL
  1042.         '\x7f',scan+14          ; Backspace key sends DEL
  1043.         '\kexit',scan+2093      ; Exit connect mode  Alt X
  1044.         '\kstatus',scan+2079    ; Connect mode status  Alt S
  1045.         '\kbreak',scan+2096     ; Send a Break  Alt B
  1046.         '\khelp',scan+2083      ; Connect mode drop down menu  Alt H
  1047.  
  1048. ------------------------------------------------
  1049.  
  1050. Translation of bytes received at the serial port while in Connect mode:
  1051.  
  1052. The pair of commands
  1053.         SET TRANSlation INPUT  received-char  local-char
  1054. and
  1055.         SHOW TRANSlation INPUT
  1056. provide an elementary conversion of one raw byte to another. The received
  1057. character is translated into the local character before the rest of Kermit
  1058. can see it; this is effective for only Connect mode (not file transfers or
  1059. scripts).
  1060.         SET TRANS IN requires both byte specifications to be on the command
  1061. line. The form of the byte specs is an ascii character or a numerical value,
  1062. such as \65 (decimal for A), or \o101  (octal for A), or \x41 (hex for A).
  1063. Examples:
  1064.         SET TRANS IN p \156     ; letter p sent to us is changed to Pound
  1065.                                   Sterling sign (decimal 156)
  1066.         SET TRANS IN o \143     ; letter o is visible as long A
  1067.                                   (as in Angstrom)
  1068.         SET TRANS IN \143 \7    ; long a translated to a beep (control g)
  1069.  
  1070.         SHOW TRANS displays bytes subject to change by Set Trans information.
  1071. Note: the LOG file will show the local (translated) character.
  1072. --------------------------------------------------
  1073.  
  1074. SHOW STATistics  shows the byte counts, etc. for file transfers.
  1075.  
  1076. ---------------------------------------------------
  1077.  
  1078. LOG {PACKET | SESSION} filespec         revised LOG command
  1079.  
  1080. DISABLE {DELETE | HOST}                 server mode control (protection?)
  1081. ENABLE {DELETE | HOST}                  ditto
  1082.  
  1083. SET SEND DELAY seconds                  waits the indicated number of
  1084.                                         seconds before starting a SEND
  1085.                                         command.
  1086. ==============================
  1087. File msk229b.not, old and you have all this material from an earlier digest.
  1088.  
  1089.                         Notes on MS Kermit 2.29b
  1090.                                 12 Jan 1987
  1091.  
  1092.         This most recent version of MS Kermit 2.29 has support for VT102
  1093. printer commands, Long packets, and Scripts. Additionally, it has corrections
  1094. to most problems known at this time.
  1095.  
  1096.         A new kind of MS Kermit, mstclo.boo, is available for near clones
  1097. of IBM PC's but whose serial port hardware is not similar. Here is a
  1098. description from the originator Glenn Everhart:
  1099.  
  1100.    This module is derived from MSXIBM.ASM and is intended for IBM PC
  1101.    near-clones that differ in their serial I/O but emulate the IBM
  1102.    BIOS. Such machines include Seequa Chameleon, DG/1, and others.
  1103.    The idea is to use the VT100 emulation (which will work) but
  1104.    use BIOS for all serial I/O. This is not interrupt driven and so
  1105.    will (unfortunately) not be able to keep up well at high baud
  1106.    rates. Nevertheless, it will be far better than the old Seequa
  1107.    version which didn't emulate anything.
  1108.       Glenn Everhart, RCA, via <LCG.KERMIT@DEC-MARLBORO>
  1109.  
  1110. Bugs and internal improvments
  1111. -----------------------------
  1112.         Two important problems with MS Kermit 2.29 (no letter) were an
  1113. incompatibility with Hayes internal modems, and related modems: the modem
  1114. would hangup the phone when a file transfer completed or Connect mode
  1115. were exited, and secondly, null characters could be sent at the start of
  1116. a file transfer or when Connect mode was entered. It seems that several
  1117. mainframes regard null characters as important signals rather than as fillers.
  1118. We have tested this version with a real Hayes 1200B modem with satisfactory
  1119. results (whew!, but lets keep our fingers crossed).
  1120.  
  1121.         There were numerous small problems throughout MS Kermit, as might
  1122. be expected, and those identified to date have been addressed. One important
  1123. one was the serial port was left active if one PUSHed to DOS while in Connect
  1124. mode.
  1125.  
  1126.         Serious DOS errors are trapped by Kermit to prevent Kermit from being
  1127. aborted with the serial port interrupt alive and with a couple of other items
  1128. redirected to Kermit itself. The most common such error is "Drive Not Ready."
  1129. Previously, these conditions would invoke the normal DOS Critical Error proc
  1130. which would request "Abort, Retry, Ignore?" and would abort the program if
  1131. Abort were chosen. Now, Kermit exercises a fourth option, Fail the Operation,
  1132. when these errors occur. Procedures spawning a second copy of Command.Com
  1133. (DIR etc) still can yield the A/R/I message but it is harmless in this case.
  1134. However, if such a message arises while Kermit is in Server mode a human must
  1135. still type the answer locally. The implementation replaces the normal DOS
  1136. Control-Break (^C) and Critical Error handlers with Kermit's own handlers and
  1137. restores the originals when Kermit exits.
  1138.  
  1139.         Numerous small bugs concerning negotiated parameters (8 bit quoting,
  1140. Block check types, etc) have been fixed; these mainly concerned Server mode
  1141. operations. The terminal emulator no longer responds to the answer-back msg
  1142. request; there is no answer-back message in the emulator. Screen handling
  1143. has been improved internally, but it still has a few glitches.
  1144.  
  1145.         While in Connect mode 8 bit received data will be passed through to
  1146. the terminal processor if the Parity type is None. If Debugging is ON then
  1147. characters with their high bit set will be displayed as a tilde and then a
  1148. code for the lower 7 bits; i.e., 10000001b is displayed as ~^A. Note: due
  1149. to network quirks these characters may be mistranslated; the tilde is the
  1150. funny wiggle character above the accent mark and the control symbol is a
  1151. caret.
  1152.  
  1153.  
  1154. Addition to Set Display commnad
  1155. -------------------------------
  1156.         Set Display  Regular | Serial | Quiet | 7-bit | 8-bit
  1157.  
  1158.         The keywords 7-bit and 8-bit have been added to control displays
  1159. of characters in non-file transfer modes. 7-bit is the default and 8-bit
  1160. becomes meaningless when parity is other than None. The Set Display
  1161. command accepts two keywords in one command, processed left to right.
  1162.  
  1163. Addition to Set Prompt command
  1164. ------------------------------
  1165.         Special characters, such as escape, can be included in text of
  1166. Kermit's prompt by specifying them as octal numbers in the form \ooo
  1167. where o is an octal digit. Escape itself is \33. To return to Kermit's
  1168. default prompt give the Set Prompt command without text. The replacement
  1169. prompt can be up to 80 characters long.
  1170.  
  1171. VT102 Printer support, for emulator in IBM and NEC AP3 versions.
  1172. ----------------------
  1173. New escape sequences:
  1174.  
  1175. ESC [ i         Print the entire screen (24 user lines) or just the text
  1176.                 in the scrolling region, depending on ESC [ ? 19 h/l  below.
  1177.                 ESC [ 0 i   is an equivalent command.
  1178.  
  1179. ESC [ ? 1 i     Print the line containing the cursor.
  1180.  
  1181. ESC [ 4 i       Disable Controller print. Cursor returns to its position
  1182.                 when ESC [ 5 i was encountered earlier.
  1183.  
  1184. ESC [ ? 4 i     Disable Auto Print.
  1185.  
  1186. ESC [ 5 i       Enable Controller print; incoming text is sent to printer but
  1187.                 not to the screen. Escape sequences are recognized and acted
  1188.                 upon but are not printed. Cursor movement cannot be prevented.
  1189.  
  1190. ESC [ ? 5 i     Enable Auto Print; incoming text is sent to both screen and
  1191.                 printer. Escape sequences are recognized and acted upon but
  1192.                 are not printed.
  1193.  
  1194. ESC [ ? 18 h    Set Print termination char; requests Form Feed be printed
  1195.                 after each Print Screen operation (ESC [ i).
  1196.  
  1197. ESC [ ? 18 l    Reset Print termination char; no FF after Print screen.
  1198.  
  1199. ESC [ ? 19 h    Sets print area of ESC [ i  to be the whole screen (24 lines).
  1200.  
  1201. ESC [ ? 19 l    Resets print area of ESC [ i  to be just scrolling region.
  1202.  
  1203. ESC [ ? 15 n    Request from remote host for printer status report.
  1204.  
  1205. ESC [ ? 10 n    Response to ESC [ ? 15 n  if printer is ready.
  1206.  
  1207. ESC [ ? 13 n    Response to ESC [ ? 15 n  if printer is not ready.
  1208.  
  1209.         The print device is selected to be the system printer (system file
  1210. handle 4, LPT1) and the user has no choice in the matter. If the printer is
  1211. not ready then a message to this effect is shown on the mode line (line 25)
  1212. and the print request is skipped. Skipping is done to prevent systems from
  1213. being hung just because the printer was not plugged in or similar trivia.
  1214. Trailing spaces on each line are trimmed off to save printing time. These
  1215. print screen operations should be compatible with all the other screen to
  1216. printer operations (screen dump key, Log to PRN, DOS print screen, etc).
  1217.  
  1218.         Startup conditions are to reset both Print termination char and screen
  1219. area bits; i.e., no FF after a print screen command and use scrolling region.
  1220.  
  1221.  
  1222. Long Packets.
  1223. -------------
  1224.         This version can use packets up to 1000 bytes in length. The trans-
  1225. mitter selects the type of packet (Regular or Long) based upon the size of
  1226. the data to be sent in that particular packet; negotiations at the start of a
  1227. file transfer determine the maximum length. The receiver is prepared to accept
  1228. Long packets at any time up to a maximum length set by the user.
  1229.  
  1230.         The commands Set Send Pack ### and Set Receive Pack ### limit the
  1231. maximum packet size. ### can be as large as 1000. Kermit uses 94 byte
  1232. packets as its default maximum size; longer packets will be employed only if
  1233. the user gives the Set Send/Receive Pack commands above.
  1234.  
  1235.         The IBM serial port interrupt routine, buffer handler for received
  1236. chars, and the packet assembly/disassembly routines Spack and Rpack have been
  1237. completely rewritten for efficiency, Long packets, and high speed operations.
  1238. It is possible to operate at 38400 baud on a plain 4.77 MHz IBM PC provided
  1239. that the clock tic routine is not loaded with time consuming extras (Helpful
  1240. Utilities, print spoolers, screen savers, and the like). Long packet and
  1241. high efficiency code are system independent; fancy high speed operation code
  1242. is for IBM PC's and clones and the DEC Rainbow.
  1243.  
  1244.  
  1245. Scripts.
  1246. --------
  1247.         A simple DEC 20 style script and raw file upload facility has been
  1248. written by Jim Sturdevant and myself (he did the original version and we
  1249. developed it from there). This code is actually system independent. A quick
  1250. discussion is reproduced below, and the Kermit Help menu has further cryptic
  1251. guidance.
  1252.  
  1253. ----
  1254. A quick guide to scripts in MS Kermit 2.29. There are several main script
  1255. commands shown below in Upper case and yet another batch of Set commands
  1256. to establish operational parameter for scripts.
  1257.  
  1258. OUTPUT text
  1259.         Sends the single line of text out the serial port. Spaces and tabs
  1260. are included. Control characters such as a carriage return must be stated
  1261. as an octal number preceeded by a backslash: carriage return is \15, line
  1262. feed is \12, bell is \7, and so forth. Example, dial the phone via a modem:
  1263.         Output atdt 5,1234, (918) 555-1212\15
  1264. The "text" also can be the first line of a file or even from the console if
  1265. the first letter of the text is an at-sign, @filename or @con. Thus,
  1266.         Output @con
  1267. reads a line from the console and sends it out the serial port.
  1268.  
  1269. INPUT [time] text
  1270.         This is a heavily used operation which reads characters from the
  1271. serial port and attempts to match them to the line of text, or times out
  1272. if it can't. A common command of this kind would be
  1273.                 Input 30 Username:
  1274. The sequence above waits up to 30 seconds for the pattern Username: to
  1275. appear. If it does then the next script command is executed. If it does not
  1276. appear then the script file can be told to Quit or to Proceed as if
  1277. the pattern did occur. The time field is optional and is nominally 1 second.
  1278. Selection of Quit or Proceed and the default waiting time are governed by
  1279. the Set Input command discussed below. Text may also be replaced by
  1280. at-sign filename to cause the pattern to be selected as the first line in
  1281. that file.
  1282.         If the text pattern is omitted then the Input command reads
  1283. characters from the serial port, displays and then discards them.
  1284.         A recent addition allows a carriage return typed at the local keyboard
  1285. to force a pattern match (for those of us with limited patience concerning
  1286. recalcerant remote hosts).
  1287.  
  1288. PAUSE [time]
  1289.         Waits 1 second, or the number of seconds in the optional argument.
  1290.  
  1291. ECHO text
  1292.         Simply writes the line of text on the screen.
  1293.  
  1294. CLRINP
  1295.         Empties the serial port's buffer of stored but not yet read characters.
  1296.  
  1297. TRANSMIT filespec [prompt]
  1298.         Raw file upload. Sends the named file (no wild cards) a line at a time
  1299. to the remote host. Each line is expected to end with carriage return-line
  1300. feed, and the trailing line feed is not sent. After each line Kermit waits
  1301. for a prompt character from the other side. The default prompt char is a
  1302. line feed. The command line allows the prompt to be changed to any other
  1303. character (control codes are expressed as an octal number in the form \ooo);
  1304. specifying a prompt of \0 means do not wait for a prompt. Alternatively,
  1305. pushing the local Return key simulates reception of prompt.
  1306.         Trans foo.bar \7        send file "foo.bar", expect ^G as a prompt.
  1307.  
  1308. SET INPUT commands:
  1309.  
  1310. Set Input Default-timeout seconds
  1311.         Changes the waiting time from 1 second to this new value.
  1312.  
  1313. Set Input Timeout-action Proceed or Quit
  1314.         Determines whether or not the current script file is to be continued
  1315. or exited if a timeout occurs. Proceed is the default and means that timeouts
  1316. are ignored. Quit causes the current script file to be exited and control
  1317. passed to either the next higher level script file (if the present one were
  1318. invoked by such) or to Kermit's main prompt.
  1319.  
  1320. Set Input Case Ignore or Observe
  1321.         Says whether or not to distinguish upper and lower case text when
  1322. doing a matchup in the INPUT command. Ignore causes upper and lower case
  1323. letters to be considered the same. Default is to Ignore case distinctions.
  1324.  
  1325. Set Input Echo On or Off
  1326.         Show on the screen characters read from the serial port during the
  1327. script operation, or not. Default is On, show them.
  1328.  
  1329.         Values of Set Input things are shown on Kermit's Status display.
  1330.  
  1331.         Construction of a script file. Kermit has the ability to read a file,
  1332. called a Take file in Kermit-ese, and execute the contents as Kermit commands.
  1333. The Kermit command to do this is TAKE filename. Within such a file may be
  1334. another Take command, and within it yet another Take and so on. Thus, the
  1335. script is prepared as an ordinary text file and is invoked within Kermit
  1336. by saying Take filename; a complete working example is given below.
  1337.         Before getting to it, however, a word or two about timeouts. If the
  1338. action on timing out is set to Quit then the current Take file is exited
  1339. whenever a timeout occurs and processing continues at any next higher level
  1340. Take file; there is no conditional branching in this script facility. Also,
  1341. Kermit looks for a particular file, MSKERMIT.INI, at startup time and
  1342. executes it as the first Take file; you may place normal startup and script
  1343. commands there as a convenience.
  1344.  
  1345.         An example script is shown below for connecting to machine VAXB via
  1346. a modem and a Data Switch. The lines starting with Comment are ignored by
  1347. Kermit and are there as a tutorial guide. Comments may also be placed on a
  1348. line beginning with a semicolon. Upper case is used for clarity.
  1349. File LOGIN.SCP -
  1350.  
  1351. Comment                                 set Kermit's baud rate to 2400
  1352. SET SPEED 2400
  1353. Comment                                 flush any old junk
  1354. CLRINP
  1355. Comment                             don't display Take file commands as we go
  1356. SET TAKE OFF
  1357. Comment                         quit script if proper answers do not appear
  1358. SET INPUT TIMEOUT-ACTION QUIT
  1359. Comment                                 see if modem is alive, hello modem.
  1360. OUTPUT AT\15
  1361. Comment                                 look for its normal response
  1362. INPUT OK
  1363. Comment                                 dial the Micom switch (from on-campus)
  1364. OUTPUT ATDT 3458\15
  1365. Comment                                 look for phone being answered
  1366. INPUT 25 CONNECT
  1367. Comment                                 wait 1 sec for modem to get ready
  1368. PAUSE 1
  1369. Comment                         then send control code carriage return,
  1370. Comment                         expressed as an octal number preceded by \.
  1371. OUTPUT \15
  1372. Comment                                 wait a sec for the switch to wake up
  1373. PAUSE 1
  1374. Comment                 one more time so the switch recognizes our baud rate
  1375. OUTPUT \15
  1376. Comment                         find first part of switch's announcement
  1377. INPUT 10 slowly
  1378. Comment                                 ignore timeouts from here on
  1379. SET INPUT TIMEOUT PROCEED
  1380. Comment                                 find last word of the announcement
  1381. INPUT 15 CLASS
  1382. Comment                             tell the switch where we want to attach
  1383. OUTPUT VAXB\15
  1384. Comment                                 look for final prompt of Go and a beep
  1385. INPUT 20 Go\7
  1386. Comment                                 let switch get ready for our response
  1387. PAUSE 1
  1388. Comment                              wakeup vaxb, c/r's, slowly as instructed
  1389. OUTPUT \15
  1390. PAUSE 1
  1391. OUTPUT \15
  1392. PAUSE 1
  1393. Comment                                 third c/r, just in case. Awaken Vaxen
  1394. OUTPUT \15
  1395. Comment                                 look for login sequence
  1396. INPUT Username:
  1397. Comment                                 give our username
  1398. OUTPUT ItsMeAgain\15
  1399. INPUT Password:
  1400. Comment                         give ourselves a prompt and read from console
  1401. ECHO \15\12Enter password:
  1402. OUTPUT @con
  1403. Comment                                 we're in, go test for new mail msg
  1404. TAKE mail.scp
  1405. Comment                                 go into VT102 terminal emulation mode
  1406. CONNECT
  1407.  
  1408. And here is file MAIL.SCP, with added comments -
  1409.  
  1410. Comment                         show serial port traffic as we go
  1411. SET TAKE ON
  1412. Comment                         Exit this file if timeout (no new mail)
  1413. SET INPUT TIMEOUT QUIT
  1414. Comment                         look for keyword Mail, timeout if none
  1415. INPUT 10 Mail
  1416. Comment                         must be mail if we are still here, read it
  1417. OUTPUT mail\15
  1418. ---------------------------------------------------------------
  1419.  
  1420.         Joe Doupnik
  1421.         jrd@usu.bitnet
  1422. ========================== end of message ================================
  1423.  
  1424.  
  1425.  
  1426.  
  1427.