home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / alphamicro / am68kdoc.txt < prev    next >
Text File  |  2020-01-01  |  13KB  |  356 lines

  1. KERMIT - Error Free File Transfers with Non-Alpha Computers
  2.  
  3. by Bob Rubendunst, Soft Machines
  4.  
  5.  
  6. If you have ever needed to transfer files between your Alpha
  7. Micro and some other brand of computer, you know that file
  8. transfers between unlike brands of computers are NOT easy.
  9. Most communications packages, like my DYALOG product, provide a
  10. way to send and receive information with other brands of
  11. computers. However, because the non-Alpha equipment probably
  12. does not support the same file transfer protocol, the file
  13. transfer can be spoiled by telephone line noise, particularly
  14. on longer distance link-ups.
  15.  
  16. A file transfer protocol is a process with its only goal
  17. being the sure communication of information from one point to
  18. another. Just as different programmers can write different
  19. programs to solve the same problem, different protocols can
  20. both communicate the same information, but in entirely
  21. different formats.
  22.  
  23. There are many reasons why file transfer protocols are
  24. different between brands of computers and even for products
  25. that run on the same machine. Standards in the computer
  26. industry have been slow to develop because of the speed at
  27. which the computer market moves. Telecommunications is
  28. exploding as people find new, slick solutions to old and new
  29. problems. Both software and hardware vendors frequently exhibit
  30. the "NOT INVENTED HERE" philosophy of "Well, if we didn't
  31. do it, it must not be any good". It takes much more time
  32. and many more resources to develop a file transfer protocol
  33. than to just market the program that uses it. Also, writing a
  34. proprietary product locks in a vendor's customer base. All of
  35. these things have stifled the development of a standard.
  36.  
  37. One standard that did develop was the XMODEM protocol in the
  38. CP/M computer field. It was developed by Ward Christensen of
  39. the famous Chicago area Computer Bulletin Board System. While
  40. XMODEM worked fine for CP/M systems, it was not well suited to
  41. other kinds of computers, and it was not defined well enough to
  42. guarantee compatibility between different implementations of
  43. XMODEM.
  44.  
  45. This summer, I discovered KERMIT through a conversation with a
  46. client. KERMIT is a universal protocol that was developed at
  47. Columbia University to allow the various micro computers at
  48. Columbia to trade files with their big mainframe computers.
  49. Bill Catchings and Frank da Cruz of Columbia developed this
  50. protocol in 1981, with the help of other colleagues at Columbia
  51. and other research facilities. Columbia has been nurturing it
  52. since that time.
  53.  
  54. KERMIT is named after the famous reporter, Kermit the
  55. Frog, on the MUPPET SHOW. The name Kermit is used by permission
  56. of Henson Associates., Inc.
  57.  
  58. At the beginning of a file transfer, the local and remote
  59. KERMITs tell each other what they expect and can handle in the
  60. way of communications. This enables KERMITs to communicate with
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. a wide variety of computers.
  68.  
  69. KERMIT is a great protocol because it is very flexible and well
  70. structured. Even the manner in which improvements are added to
  71. the protocol has been done in such a way that future versions of
  72. KERMIT will be fully compatible with older versions. KERMIT is
  73. a good concept beautifully executed.
  74.  
  75. KERMIT sends files from one computer to another by breaking
  76. down the procedures and the data in the file into packets.
  77. KERMIT sends packets one at a time, and then waits for the
  78. remote KERMIT to acknowledge that it has correctly received a
  79. procedure or data packet. The acknowledgement will only be sent
  80. if a check field contained inside each packet is correct. In
  81. this way, errors can be detected and packets can be re-sent
  82. until the packets are transported without error from system to
  83. system.
  84.  
  85.  
  86.  
  87. To make sure that as many people as possible should enjoy the
  88. benefits of KERMIT, Columbia's policy on distributing KERMIT is
  89. that KERMIT must not, and should never, become a commercial
  90. product, sold for profit. Its goal is to promote communication
  91. and sharing, and KERMIT itself should be freely shared, and not
  92. sold.
  93.  
  94. I am donating KERMIT to AMUS. The donation will consist
  95. of source code and documentation for Alpha-Kermit, which I have
  96. developed from a C language version of KERMIT that I obtained
  97. from Columbia this fall. I am giving all members of AMUS
  98. permission to use KERMIT for free, provided that they follow
  99. the non-profit guidelines that Columbia has established.
  100. I will also give AMUS versions of KERMIT for IBM, DEC, Radio
  101. Shack, CP/M and Apple computers that I obtained from Columbia.
  102.  
  103. I also invite YOU to add additional features to Alpha-KERMIT. I
  104. would suggest that motivated individuals leave some
  105. announcement  of their plans on the AMUS bulletin board to
  106. prevent unnecessary duplication of effort.
  107.  
  108. The reasons for donation are simple. There is a real need for a
  109. universal file transfer method, so that information can be
  110. shared.  Being the lazy sort (aren't all programmers lazy?),
  111. I'd rather write one program everybody in the AMUS community
  112. could use instead of fifty. Also, it's a good way to say thank
  113. you to all of the people in the AMUS community.
  114.  
  115. If you are puzzled as to why I am giving away KERMIT when I
  116. sell DYALOG, I think that KERMIT will enhance the market by
  117. generating more interest in telecommunications.
  118.  
  119. Here then, is a description of how to use all of the commands
  120. that Alpha-KERMIT has.
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.                     How to Use Alpha-KERMIT
  129.  
  130. To use KERMIT, you must have a copy of KERMIT.LIT on your
  131. DSK0:[1,4] account. (You may have to create this program file
  132. by running the M68 program on KERMIT.M68.)
  133.  
  134. You must also be running AMOSL version 1.2 or later. 
  135. Currently, there is no version of Alpha-KERMIT
  136. for the older WD-16 version of AMOS.
  137.  
  138. You must know the name of the TRMDEF you wish to use with
  139. KERMIT. For example, the TRMDEF for your modem may be called
  140. MODEM1.
  141.  
  142. Enter the KERMIT command, followed by the name of the TRMDEF
  143. you wish to communicate with. For example:
  144.  
  145.                          KERMIT MODEM1
  146.  
  147. is the command line you would enter to communicate using the
  148. MODEM1 TRMDEF on your system. If the TRMDEF you have chosen is
  149. currently in use by another job, you will see this error
  150. message:
  151.  
  152.               ?TRMDEF is assigned to another job.
  153.  
  154. If the TRMDEF is available for use, you will see the prompt:
  155.  
  156.        Alpha-KERMIT >
  157.  
  158. which means that KERMIT is awaiting your next command.
  159. Currently, the commands are:
  160.  
  161.        AMOS - drop back to AMOS temporarily.
  162.        CONNECT - converse with the modem or remote computer.
  163.        EXIT - finish your Alpha-KERMIT session.
  164.        HELP - display helpful information.
  165.        RECEIVE - receive a file from the remote KERMIT.
  166.        SEND - send a file to the remote KERMIT.
  167.        SET - change a KERMIT parameter.
  168.        SHOW - display the parameters in use now.
  169.  
  170.  
  171. Here is brief description of what each command does:
  172.  
  173. AMOS is used to temporarily leave KERMIT so that you can TYPE a
  174. file, or get a directory listing. You must re-enter KERMIT to
  175. end the communications session and free the communications
  176. channel for other users. AMOS takes no arguments.
  177.  
  178. CONNECT is executed when you want to send and receive
  179. characters between your CRT and the modem or the remote
  180. computer. If you are using a "smart" modem, you can send the
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187. modem the commands to dial the remote computer. When CONNECT is
  188. executed,  it shows you the key you need to press to end the
  189. CONNECT session. When the CONNECT session ends, you may enter
  190. another KERMIT command. CONNECT takes no arguments.
  191.  
  192. EXIT is the command you execute to end your KERMIT session.
  193. This frees the communications TRMDEF so that others can use it.
  194. EXIT takes no arguments.
  195.  
  196. RECEIVE is used to receive a file from a remote computer.
  197. Before using the receive command, you must make sure that the
  198. remote computer has executed the TRANSMIT command. If you are
  199. operating KERMIT at the remote site, you must enter the
  200. TRANSMIT command during a CONNECT session, then press the
  201. ESCAPE key to enter the KERMIT command mode. You may then enter
  202. the RECEIVE command. You may enter the name of the file as it
  203. is to appear on your system. If you just enter RECEIVE, the
  204. filename specified by the remote KERMIT will be used as the
  205. filename.
  206.  
  207. SEND is used to send a file to a remote KERMIT. Before issuing
  208. the SEND command, you must make sure that the remote KERMIT has
  209. been given the RECEIVE command. (You do this by using the
  210. CONNECT command, and then "escaping" back to the Kermit prompt.
  211. SEND requires the name of the local file you wish to send to
  212. the remote system.
  213.  
  214. SET is used to change options concerning the communications.
  215. SET requires an argument, which consists of the name of the
  216. option you want to change, followed by a logical operator. The
  217. argument may be YES or NO, TRUE or FALSE, or 1 or 2, depending
  218. on the option you are changing. If you are not sure of the
  219. required logical operator for an option, enter SET, and the
  220. option you wish to change, and the valid logical operators will
  221. be displayed for you to choose from.
  222.  
  223. SET BELL ON dings the bell every time the KERMIT prompt is
  224. displayed.
  225.  
  226. SET BINQUOTE allows you to change the binary quote character.
  227. The binary quote character allows binary file transfers over
  228. seven bit data lines. You must specify the new binary quote
  229. character. Normally, KERMIT uses & as the binary quote
  230. character.
  231.  
  232. SET BLOCKCHECK 1 sets KERMIT for 1 byte checksums, the default.
  233. SET BLOCKCHECK 2 sets KERMIT for 2 byte checksums.
  234.  
  235. SET DEBUG ON  Turns on display of packet operation.
  236. SET DEBUG OFF Suppresses packet operation display.
  237.  
  238. SET DUPLEX ON Allows full duplex operation.
  239. SET DUPLEX OFF Allows half-duplex operation.
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247. SET ENDLINE lets you change the default end of packet character
  248. from carriage return to something else.
  249.  
  250. SET ESCAPE lets you change the character that you must press to
  251. leave the CONNECT command. For example, SET ESCAPE ^G would
  252. change the ESCAPE character to a control-G. This defaults to a
  253. caret symbol.
  254.  
  255. SET RETRIES lets you change the number of packet retries
  256. attempted before KERMIT aborts a file transfer. The default is
  257. ten tries.
  258.  
  259. SET TIMEOUT changes the number of seconds that elapse before a
  260. packet is re-transmitted.
  261.  
  262. SHOW displays all of the options that can be adjusted in
  263. KERMIT, plus some additional parameters about the current
  264. communications session.
  265.  
  266. For a more complete description of Alpha KERMIT, see the file
  267. KERMIT.DOC on the AMUS computer. It has been adapted from 
  268. other KERMIT manuals from Columbia University.
  269.  
  270. So far, I have used Alpha KERMIT to communicate with IBM-PC
  271. and Alpha Workstations. Thousands of medical records have been
  272. moved to a new computer using KERMIT.
  273.  
  274. Here is a benchmark for comparing how quickly Alpha-KERMIT 
  275. can send files from one location to another. The file sent is
  276. AMOSL.MON version 1.2(96), if you want to compare it to another
  277. communications package. I have compared it to DYALOG here.
  278.  
  279. File: DSK0:AMOSL.MON[1,4] version 1.2(96)
  280. Size: 27222 bytes, binary file
  281. Baud rate: 2400 baud
  282.  
  283.                Transfer times for AMOSL.MON[1,4]
  284.  
  285.   DYALOG 2.0  : 126 seconds, effective baud rate of 2160
  286.  
  287. Alpha-KERMIT  : 263 seconds, effective baud rate of 1135
  288.  
  289. As you can see, KERMIT is not very fast. Nor can it send random
  290. files. But KERMIT is fantastic for sending files to machines
  291. previously untouchable.
  292.  
  293. I wish to thank Columbia University and the other people who
  294. have donated KERMIT programs to Columbia. Thanks to Barry
  295. Hamilton for reading the mag tape from Columbia.
  296.  
  297. Enjoy!
  298.                   Glossary
  299. JCB - Job Control Block. Used to access & control job related resources
  300. TCB - Terminal control block. Used to access & control terminal resources
  301.  
  302.                  Kermit Packet Types
  303. Type    Name        Function
  304. ----    ------------    -----------------------------------------------------
  305. S    Send-Init    Sends local Kermit Parameters to remote Kermit
  306. Y    Acknowledge    Receiver verifies reception of packet
  307. Y    (Acknowledge)    Returns Kermit parameters to instigating Kermit
  308. F    File Header    Contains name of file to be transferred
  309. D    File Data    Contains a portion of the data file contents
  310. Z    End of File    Signals receiver that all data file contents sent
  311. B    Break        Signals receiver to conclude file transfer (batch)
  312. N    Negative Ack.    Signal that receiver didn't get or like last packet
  313. E    Fatal Error    Signal that other Kermit cannot proceed normally
  314.  
  315. ALPHA MICRO KERMIT
  316.  
  317. Program:        Bob Rubendunst (Soft Machines)
  318. Language:        M68 (Alpha Micro 68000 assembler)
  319. Documentation:        Karen Bojda (Soft Machines)
  320. Version:        2.0(24)
  321. Date:            March 16, 1994
  322.  
  323. Alpha-Kermit capabilities at a glance:
  324.     Local operation:        Yes
  325.     Remote operation:        Yes
  326.     Login scripts:            No
  327.     Transfer text files:        Yes
  328.     Transfer binary files:        Yes
  329.     Wildcard send:            Yes
  330.     File transfer interruption:    No
  331.     Filename collision avoidance:    No
  332.     Can time out:            Yes
  333.     8th bit prefixing:        Yes
  334.     Repeat count prefixing:        No
  335.     Alternate block checks:        Yes
  336.     Terminal emulation:        Yes (Dumb or native terminal)
  337.     Communications settings:    Duplex
  338.     XON/XOFF:            No
  339.     Transmit BREAK:            No
  340.     IBM mainframe communications:    No
  341.     Transaction logging:        No
  342.     Session logging:        No
  343.     Debug Logging:            No
  344.     Packet logging:            No
  345.     Act as server:            No
  346.     Talk to server:            No
  347.     Advanced server functions:    No
  348.     Local file management:        No
  349.     Command/Init files:        No
  350.     Key redifinition/macros:    No
  351.     File attributes packets:    No
  352.     Command macros:            No
  353.     Raw file transmit:        No
  354.     Long packets:            No
  355.     Sliding windows:        No
  356.