home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / gould2 / gm2kermdoc.txt < prev   
Text File  |  2020-01-01  |  18KB  |  406 lines

  1. Kermit-MPX
  2.  
  3. Program:       L. Tate, Simulation Associates Inc.
  4.                Derived from CYBER-170 version 1.0,
  5.                Jim Knutson, University of Texas.
  6. Language:      Gould Fortran 77 4.2, with some assembler routines
  7. Version:       2.3
  8. Date:          May 1986
  9. Documentation: L. Tate, Simulation Associates Inc.,
  10.                Mike Niswonger, Computer Science and Applications
  11.  
  12. Kermit-MPX Capabilities at a glance:
  13.  
  14.     Local operation                    Yes; MPX 3.2B or later
  15.     Remote operation                   Yes
  16.     Transfers text files               Yes
  17.     Transfers binary files             No
  18.     Wildcard send                      No
  19.     ^X/^Y interruption                 No
  20.     Filename collision avoidance       No
  21.     Can time out                       Yes
  22.     8th-bit prefixing                  No
  23.     Repeat count prefixing             No
  24.     Alternate block checks             No
  25.     Terminal emulation                 No
  26.     Communication settings             No
  27.     Transmit Break                     Yes
  28.     IBM communication                  Yes
  29.     Transaction logging                No
  30.     Session logging                    Yes
  31.     Raw upload                         No
  32.     Act as server                      Yes
  33.     Talk to server                     Yes
  34.     Advanced commands for servers      No
  35.     Local file management              No
  36.     Handle file attributes             No
  37.     Command/init files                 Yes
  38.     Printer control                    No
  39.  
  40. 14.1 Kermit-MPX Description
  41.  
  42. Kermit-MPX runs on Gould's Concept and Series computers running MPX 2.X or  MPX
  43. 3.X  operating  systems.   MPX 3.2B and later versions allow true  full  duplex
  44. terminal  operations  so  these installations may use the Kermit program  in  a
  45. local mode although the response is very poor.
  46.  
  47. This  Kermit  requires the use of an eight line asynchronous  (8LAS)  interface
  48. (sorry  ALIM  and  ADS users) on an IOP.   This interface  buffers  the  input,
  49. performing  some  rudimentary translations like lower to upper case  and  block
  50. reads and writes.   Unfortunately, it's efficiency is very poor for single byte
  51. reads  and writes,  thus the connect mode's effective throughput is only  about
  52. 300  baud.   To make matters worse  when the type-ahead buffer is full  (40-128
  53. characters)  then  the  buffer empties and a program  interruption  (break)  is
  54. generated. Also a break can be generated by recognition by the 8LAS of a 'wake-
  55. up' character.   Convenient for the terminal processor, but really bad for file
  56. transfer if the wake-up character is a '?' or any other printable character.
  57.  
  58. This  Kermit has a timeout that functions at random intervals.  If the  timeout
  59. doesn't work then sending a break should wake it up.
  60.  
  61. The initialization file KERMIT.INI may be used to initialize Kermit.   The file
  62. must  be in the current directory when starting Kermit up.    Any valid Kermit-
  63. MPX command may be included.
  64.  
  65. 14.2 Kermit-MPX Commands
  66.  
  67. Kermit-MPX uses the DECSYSTEM-20 keyword style command language.   Each keyword
  68. may be abbreviated to its minimum length.  "?" may be type to request a menu of
  69. the available options for the current field at any point in a command.
  70.  
  71. Kermit-MPX prompts with 'Kermit-' with the machine type concatenated on to  it.
  72. For example on a Concept 32/27 machine, the prompt will be 'Kermit-27>'.
  73.  
  74. BYE
  75.          Sends  a message to the remote server to log out the remote Kermit and
  76.          exits local Kermit to system level. Since Kermit-MPX cannot log itself
  77.          off, it just exits the task.
  78.  
  79. CONNECT
  80.          Enter  terminal  emulation  mode.   Presents  the  illusion  of  being
  81.          directly  connected as a terminal to the remote system.   When  escape
  82.          character is typed, interprets next character as follows:
  83.  
  84.                    0               (zero) transmits a null
  85.                    B               transmits a BREAK
  86.                    C               close a connection, return to
  87.                                    local Kermit
  88.                    Q               quit logging (if being done)
  89.                    R               resume logging
  90.                    ?               show available arguments
  91.                    escape character
  92.                                    transmits the escape character
  93.  
  94.          Invalid arguments are beeped and reenters connect mode.
  95.  
  96. EXIT
  97.          Exit from local Kermit.
  98.  
  99. FINISH
  100.          Sends a message to the remote server to shut itself down,  leaving the
  101.          local Kermit at command level, and the remote at system level.
  102.  
  103. GET  remote-filename
  104.          Tells a remote Kermit to send a file.
  105.  
  106. HELP  topic
  107.          Typing  HELP alone prints a brief summary of Kermit and its  commands.
  108.          You can also type
  109.  
  110.             HELP command
  111.  
  112.          for  any  Kermit command,  e.g.  "HELP SEND",  to  get  more  detailed
  113.          information about a specific command.  Type
  114.  
  115.             HELP ?
  116.  
  117.          to  see  a  list of all the available help commands,  or  consult  the
  118.          Kermit Users Guide.
  119.  
  120. QUIT
  121.          Exit from local Kermit.
  122.  
  123. RECEIVE
  124.          Expects one or more files to arrive.
  125.  
  126. SEND local-filename
  127.          Sends a file to remote Kermit.
  128.  
  129. SERVER
  130.          Act  as a server for another Kermit.   Take all further commands  from
  131.          the  other Kermit.   After issuing this command,  escape back to  your
  132.          local system and issue SEND, GET, BYE or other server-oriented command
  133.          from there.  If your local Kermit does not have a BYE command, it does
  134.          not  have  the full ability to communicate with a  Kermit  server  (in
  135.          which case you can only use the send command).
  136.  
  137. SET
  138.          Establish  system-dependent parameters.   You can examine their values
  139.          with  the  SHOW  command.    Numeric  values  may  be  decimal,  octal
  140.          (postfixed with an O or B), or hexadecimal (postfixed with an H).  The
  141.          following may be SET:
  142.  
  143.          DEBUG options
  144.             Show packet traffic explicitly.  Options are:
  145.             ALL      Set all debug options.
  146.             LOG-FILE local-filename
  147.                      Log states and packets to the specified file.
  148.                      The default log-file is file L.KERMLOG
  149.             OFF      Don't display debugging information. (this is
  150.                      the default).  If debugging was in effect, turn
  151.                      it off and close any log file.
  152.             PACKETS  Display each incoming and outgoing packet
  153.                      (lengthy)
  154.             STATES   Show Kermit state transitions and packet numbers
  155.                      (brief).
  156.  
  157.          LOG options
  158.             Log all inputs from remote port during connection.
  159.             Options are:
  160.             LOG-FILE local-filename
  161.                      Log inputs to specified file.  The default
  162.                      log-file is file L.SESSION
  163.             OFF      Turn off the session logging
  164.             ON       Turn on the session logging
  165.  
  166.          PORT terminal-address
  167.             Sets the communication port;  to which connect,  send,  receive and
  168.             server  interact  with.   Any  MPX terminal address  may  be  used.
  169.             Examples: TY7EC0, U17CC4, or UT.
  170.             Default is UT.
  171.  
  172.           ESCAPE number
  173.             Control character used to escape from connect mode.
  174.             Default is 29, (^])
  175.  
  176.           ECHO on/off
  177.             Turns on or off the echo by Kermit during connect mode.
  178.             Echo is normally off.
  179.  
  180.           DELAY number
  181.             How  many seconds to wait before sending the  first  packet.   This
  182.             gives you time to "escape" back and issue a RECEIVE command.  Delay
  183.             defaults to 5 seconds.
  184.  
  185.           INIT-RETRY number
  186.             Set   the  maximum  number  of  retries  allowed  for  the  initial
  187.             connection before giving up. 
  188.             Default is 20.
  189.  
  190.           RETRY number
  191.             Set the maximum number of retries allowed for sending a  particular
  192.             packet. 
  193.             Defaults to 5.
  194.  
  195.           SEND parameter
  196.             Parameters for outgoing packets as follows:
  197.  
  198.             EOLCHR  number
  199.               The  octal  value  of the ASCII character to be used  as  a  line
  200.               terminator  for packets,  if one is required by the other system.
  201.               Carriage return (0DH) by default.
  202.  
  203.             PACKLEN number
  204.               Maximum packet length to send, decimal number, between 20 and 94.
  205.               94 by default.
  206.  
  207.             PADCHR number
  208.               Character to use for padding.  Default is NUL.
  209.  
  210.             PADLEN number
  211.               How much padding to send before a packet. 
  212.               Default is no padding.
  213.  
  214.             QUOTECHR number
  215.               What   printable  character  to  use  for  quoting   of   control
  216.               characters.  The default is '#' (23H).  There should be no reason
  217.               to change this.
  218.  
  219.             SYNCCHR number
  220.               The  control character that marks the beginning of  the  packet. 
  221.               Normally SOH (Control-A,  ASCII 1).  There should be no reason to
  222.               change this.
  223.  
  224.             TIMEOUT number
  225.               How  many  seconds the other Kermit wants before being asked  for
  226.               retransmission.  Default is 10 seconds.
  227.  
  228.           RECEIVE parameter
  229.             Parameters to request or expect for incoming packets, as follows:
  230.  
  231.             EOLCHR  number
  232.               The  octal  value  of the ASCII character to be used  as  a  line
  233.               terminator for packets, if one is required by the other  system. 
  234.               Carriage return (0DH) by default.
  235.  
  236.             PACKLEN number
  237.               Maximum packet length to send, decimal number, between 20 and 94.
  238.               94 by default.
  239.  
  240.             PADCHR number
  241.               Character to use for padding.  Default is NUL.
  242.  
  243.             PADLEN number
  244.               How much padding to send before a packet. 
  245.               Default is no padding.
  246.  
  247.             QUOTECHR number
  248.               What   printable   character  to  use  for  quoting  of   control
  249.               characters.  The default is '#' (23H).  There should be no reason
  250.               to change this.
  251.  
  252.             SYNCCHR number
  253.               The  control  character that marks the beginning of  the  packet 
  254.               Normally SOH (Control-A,  ASCII 1).  There should be no reason to
  255.               change this.
  256.  
  257.             TIMEOUT number
  258.               How  many seconds the other Kermit wants before being  asked  for
  259.               retransmission.  Default is 10 seconds.
  260.  
  261. SHOW
  262.          Display current SET parameters, version of Kermit, and other info.
  263.  
  264. STATUS         
  265.          Give statistics about the most recent file transfer.
  266.  
  267. TAKE local-filename
  268.          Read and execute Kermit commands from a local file.
  269.  
  270. X
  271.          Exit from Kermit.
  272.  
  273.  
  274. 14.3 Software Installation
  275.  
  276. MPX-3.2B  and  later operating systems support true full duplex TSM  terminals.
  277. With these operating system versions set the LOCALON flag .TRUE. in the include
  278. file KVER.INS.  This allows the local commands to be used; BYE, CONNECT, FINISH
  279. and GET.  Otherwise, Kermit-MPX is good as a remote server (which is it's prime
  280. function anyway).
  281.  
  282. The source is a series of files;
  283.  
  284.           KVER.INS                  version include file
  285.           KDEF.INS                  Kermit definitions
  286.           KPROT.COM                 protocol common
  287.           KPACK.COM                 communication parameters of Kermits
  288.           KFILE.COM                 I/O package common data
  289.           KTIME.COM                 Timing of connect mode
  290.           KDBUG.COM                 Debug output control
  291.           KMSG.COM                  Prompt and version message
  292.         
  293.           GM2KERM.INS               Consolidated include file
  294.                                      (has all above files in it)
  295.           GM2KERM.F77               main Kermit code
  296.           GM2KERM.ASM               assembler routines for I/O system
  297.           GM2KERM.BAT               batch deck to compile, assemble
  298.                                     and catalog task image
  299.  
  300. The  small COM and INS files are found in the larger GM2KERM.INS file.   Use  a
  301. text editor to split out the smaller files for the Fortran compiler to  access.
  302. When creating the task, edit the batch deck for appropriate directory names and
  303. file names.
  304.  
  305. 14.4 Hardware Requirements
  306.  
  307. The front end of a Gould can be quite trouble-some, requiring some expertise to
  308. overcome some of the 8LAS shortcomings.
  309.  
  310. The  wakeup  character  on many system is the '?'.   This  is  a  valid  Kermit
  311. character,  but  every time it is sent,  it breaks the terminal thus ending the
  312. packet.   To  avoid  this we change the wakeup character to a non-valid  Kermit
  313. character such as control-E (05H).
  314.  
  315. The  connect  mode is rather slow,  having an aggregate rate of  300  baud,  if
  316. system  load is low.   However,  we usually like to transfer at 9600  or  19.2k
  317. baud.  In one installation,  we set the baud rate to maximum.  Since the remote
  318. system is sending characters back at the same high rate,  it outpaces the local
  319. Kermit  and we lose the buffer (remember the break) in connect mode.  Note that
  320. this  does  not affect the server mode where transfers occur  at  full  channel
  321. speed.   Logging  in  and  activating the server does not require  much  system
  322. interaction  and dropped characters can be tolerated for the short duration  of
  323. the  connect  mode required.   This limitation of connect mode  emphasizes  the
  324. primary  use  of Kermit-MPX as a file server,  not as  an  interactive  connect
  325. terminal program.
  326.  
  327. The other solution is to dynamically change the baud rate from 300 to 9600  and
  328. back.  This requires a program to change the baud rate dynamically and a direct
  329. linkage between computers. The procedure is to log on to the remote's terminal,
  330. change the baud rate to desired rate,  close your local connection,  change the
  331. baud rate of connect port, then reopen connection.
  332.  
  333. A  port  characteristic changing program was not built into Kermit  because  of
  334. it's system dependence.   All that's needed is a program to translate the  port
  335. characteristics to a 3 byte ACE code used 8LAS.   This may be sent to the  port
  336. using  the  M.WRITE macro,  with the data format inhibit (DFI) bit set and  the
  337. transmit  ACE  parameter  bit set.   See MPX reference  manual,  volume  I  for
  338. details. A good future enhancement.
  339.  
  340.  
  341. 14.5 Future Work
  342.  
  343.      Install a port setting capability to Kermit.
  344.  
  345.      Improve CONNECT speed.  Suggested alternatives could be;
  346.          Block reads with 1 sec timeouts and special character detect.
  347.  
  348.          Total interrupt driven.   This requires assembler routine,  and use of
  349.          M.CALL to IOCS since M.WRITE/M.READ does not perform well in interrupt
  350.          driven environment.
  351.  
  352.          Activate Kermit to get higher priority.  This sounds cheap.
  353.    
  354.      Added server commands for file management, particularly;
  355.          cd       change directory
  356.          copy     copy file
  357.          rename   rename file
  358.          delete   delete file
  359.          list     list file
  360.          dir      directory listing,
  361.  
  362.      These commands are most needed since it's difficult to use volume  manager
  363.      at 9600 baud connected.
  364.  
  365.      Correct  error  reporting.   Error packets are not displayed and for  some
  366.      reason, sent error packets are not displayed by other Kermits.
  367.  
  368. 14.5 Kermit-MPX Revision List
  369.   
  370.       2.3  Added to SERVER the ability to recognize the I packet.   This packet
  371.            is  used  by  advanced Kermits (at least MS-Kermit 2.27 and  up)  to
  372.            initialize  the  server.   Changed  the method by  which  nowait  is
  373.            established so that if ECHO was off before Kermit operation, then it
  374.            will remain so afterwards.   Good for network operation.   Corrected
  375.            the error reporting code such that the error messages are  produced.
  376.            However,  they  can  be very cryptic.   What is needed is a  general
  377.            method  of handling text,  like help and error messages,  such  that
  378.            memory is not filled but ready access is available.
  379.             L. Tate, SAI, May 1986.   
  380.  
  381.       2.2  Improved  receive/get reliability by moving the  terminal  reporting
  382.            before  the ACK/NAK is sent.   The problem seems to have been during
  383.            the reporting time, the sending flooded the 8-line buffer and caused
  384.            a break,  losing data.  Also corrected error in printl routine which
  385.            wrote to stdout instead of the parameter fd. 
  386.             L. Tate, SAI, Mar. 1986.
  387.  
  388.       2.1  Correct bug in SUDT.  When use the SVC 1,X'27' which set full duplex
  389.            on a terminal it previously used a trashed file control block.  This
  390.            had  caused  unpredictable results in a lot of the I/O  including  2
  391.            reads  pending at once.  Correcting this problem allowed removal  of
  392.            HIOALL  routine.  Files to be read are opened with OPENMODE='R'  and
  393.            files  to be written are opened with OPENMODE='U'.   Also added  the
  394.            TAKE command. 
  395.             L. Tate, SAI, Mar. 1986.
  396.  
  397.       2.0  Added  the  CONNECT,  GET,  FINISH,  BYE  commands.   This  required
  398.            significant  changes to the io interface.   The local on/off  option
  399.            was also part of this.
  400.             L. Tate, SAI, Nov. 1985.
  401.  
  402.       1.0  This  Kermit was the direct implementation of the Cyber-170 version,
  403.            University of Texas.
  404.             L. Tate, SAI, Sept. 1985.
  405.  
  406.