home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / dec20 / k20mit-266.txt < prev    next >
Text File  |  2020-01-01  |  11KB  |  217 lines

  1. DECSYSTEM-20 KERMIT 5.1 UPDATE NOTES
  2.  
  3.   Frank da Cruz
  4.   The Kermit Project
  5.   Columbia University
  6.   http://www.columbia.edu/kermit/
  7.  
  8.   3 December 2003
  9.  
  10. Summary:
  11.  . 5.1(263) 2001-01-28: Long packets.
  12.  . 5.1(264) 2001-08-06: Buffered packet reading.
  13.  . 5.1(266) 2003-08-03: ARPANET/Internet improvements, bug fixes.
  14.  
  15. Version 5.1(263) of DECSYSTEM-20 KERMIT, released 28 January 2001 (the
  16. first change in 13 years) supports long packets.  This was never done
  17. before because long packets would break the DEC-20 front end hardware and
  18. OS (PDP-11/40 with DH11s and RSX20F) and crash the DEC-20.  But as far as
  19. I know, no real KL-10 based DEC-20s exist any more; all current DEC-20s
  20. are either 2020s (which don't have PDP-11 front ends), non-DEC clones, or
  21. else running on other hardware under emulation.  So now you can use DEC-20
  22. Kermit to transfer files with packets up to 9K in length; the previous
  23. maximum was 94 bytes.  This gives speed improvements up to about a factor
  24. of 20 (i.e. 2000%).  Long packets have been tested only on Telnet
  25. connections INTO the DEC-20.  They have not been tested on serial
  26. connections or on outbound connections of any kind.
  27.  
  28. This update was made in anticipation of the release of publicly available
  29. PDP-10 emulators running under Linux, Windows, or other common platforms.
  30. Since the emulator will not necessarily have Internet support, a way is
  31. needed to import and export files: DEC-20 Kermit (the very first Kermit
  32. program) lives again!  Now when you log in to the DEC-20 (or emulator) from
  33. a PC or other computer running a Kermit-capable terminal emulator, you can
  34. run DEC-20 Kermit to exchange files with your computer, and the transfers
  35. will not be as agonizingly slow as they would have been without this update.
  36.  
  37. To use long packets, tell the file receiver (DEC-20 Kermit or the other
  38. Kermit) to:
  39.  
  40.   SET RECEIVE PACKET-LENGTH xxxx
  41.  
  42. where xxxx is the desired packet length, e.g. 1000, 2000, 4000, etc.
  43. Obviously if some big length doesn't work, try a shorter one (in my testing,
  44. all lengths up to 9000 worked).
  45.  
  46. Version 5.1(264), 6 August 2001, adds another performance improvement.
  47. Previously, file-transfer packet input was read a byte at a time with BIN
  48. (Byte In) monitor calls, which is quite expensive.  This was not a
  49. bottleneck in the 9600bps days, but now it is.  So I changed the packet
  50. character-input routine (inchar) to read in gulps: SIBE to see what's
  51. waiting, SIN to read that many, and BIN only if nothing is waiting or
  52. nothing was read by SIN.  On my NYC-to-CA Telnet connection, sending a file
  53. to the DEC-20, performance improved between 30% and 100% over several
  54. trials.  That's with a 400K file, using 4000-byte packets and a 1K packet
  55. input buffer.  STAT after a RECEIVE command shows the number of ILDBs (load
  56. byte from buffer), SINs, and BINs.  The fewer SINs and BINs, the better.
  57. The maximum SIN gulp always seems to be 251, which is probably a limitation
  58. of the underlying TCP/IP stack, so there would seem to be no point in
  59. increasing the SIN buffer size.  Note: Packet sending was already buffered;
  60. packets are sent with a SOUT% in spack.
  61.  
  62. A few cautions are in order about using DEC-20 Kermit as the file transfer
  63. partner of modern Kermit programs:
  64.  
  65.  1. DEC-20 Kermit can accept unprefixed control characters except for
  66.     0, 1, 3, 13, 15, 17, 19, and 20, and their 8-bit doppelgangers.  In
  67.     case sending to the DEC-20 fails consistently, tell the other Kermit to
  68.     SET PREFIXING ALL and SET CLEAR-CHANNEL OFF.  (Instead of SET PREFIXING
  69.     ALL you could also use SET CONTROL PREFIX MINIMAL, SET CONTROL PREFIX
  70.     0 1 3 13 15 17 19 20).
  71.  
  72.  2. There are no sliding windows, streaming, or other modern conveniences.
  73.     They might improve performance a bit more, but not nearly as much as
  74.     long packets and buffered reads.  The lack of these features does not
  75.     cause a problem since they are negotiated automatically in the
  76.     protocol.  (Adding them, on the other hand, would be a major project.)
  77.  
  78.  3. DEC-20 Kermit does not support Attribute packets so size, type, and
  79.     date information is not relayed automatically from sender to receiver.
  80.  
  81.  4. DEC-20 Kermit doesn't have SET FILE TYPE { TEXT, BINARY } commands like
  82.     other Kermits do.  Nevertheless, it is possible to transfer text,
  83.     native 36-bit binary, and foreign 8-bit binary files back and forth,
  84.     but you must follow the instructions in the manual.  Here's a brief
  85.     summary:
  86.  
  87. Let's say you have a PC running DOS, Windows, or UNIX with MS-DOS Kermit,
  88. C-Kermit, or Kermit 95, that has a TELNET connection to a DEC-20 (or
  89. emulator).  Then:
  90.  
  91.   To transfer an ASCII text file between the DEC-20 and the PC:
  92.     Tell the PC Kermit to "set file type text" and then transfer the file.
  93.     This is equivalent to FTP TYPE ASCII.
  94.  
  95.   To transfer a 36-bit binary file between the DEC-20 and the PC:
  96.     Tell the PC Kermit to "set file type binary".
  97.     Then transfer the file.
  98.     This is equivalent to FTP TYPE BINARY.
  99.  
  100.   To transfer an 8-bit binary PC file between the PC and the DEC-20:
  101.     Tell the PC Kermit to "set file type binary".
  102.     Tell DEC-20 Kermit to "set file byte 8".
  103.     Then transfer the file.
  104.     This is equivalent to FTP TYPE TENEX.
  105.  
  106. Among other tests, the new Kermit-20 was used to receive its own source file,
  107. which was then assembled, linked, and run.  The new KERMIT.EXE was used
  108. to send itself to a PC, and then to receive the copy of itself that it had just
  109. sent, and then this copy was run to do the same things again.
  110.  
  111. Installation instructions:
  112.  
  113.   Download the new Kermit source (one file) in text mode from the
  114.   Kermit Project archive in text ("ASCII") mode:
  115.  
  116.     ftp://kermit.columbia.edu/kermit/d/k20mit.mac
  117.  
  118.   Note: this is a MACRO-20 source file; it is not any kind of "package",
  119.   tarball, ZIP archive, compressed, encrypted, or anything else.  It's
  120.   just PLAIN TEXT (if you use DEC-20s you know what plain text is).
  121.   Rename it to KERMIT.MAC, then:
  122.  
  123.     load kermit
  124.     save
  125.  
  126. This produces a KERMIT.EXE file, which is DEC-20 Kermit.  Install it
  127. somewhere in SYS:, or else redefine SYS: to include the directory where
  128. KERMIT.EXE is, or run it out of its own directory with "r kermit".
  129. Give it execute permission, e.g. P775252.  Documentation is here:
  130.  
  131.   Plain text:
  132.     ftp://kermit.columbia.edu/kermit/e/kuser.doc
  133.     ftp://kermit.columbia.edu/kermit/d/k20mit.doc
  134.  
  135.   PostScript:
  136.     ftp://kermit.columbia.edu/kermit/e/kuser.ps
  137.     ftp://kermit.columbia.edu/kermit/d/k20mit.ps
  138.  
  139. The manual has not been updated (this document is the update).  "kuser" is
  140. the old 1980s Kermit User Guide; "k20mit" is the DEC-20 chapter.  Note that
  141. ".DOC" is used in the original sense; these are not MS Word files.  All
  142. files listed above should be transferred in text ("ASCII") mode.
  143.  
  144. Note: DEC-20 Kermit is not a Telnet client, and so can't make Telnet
  145. connections.  But since it knows how to make serial connections, most of
  146. the needed code is there; only the network-specific pieces for opening the
  147. connection (gethostbyname, connect, etc) and executing at least a minimal
  148. TELNET protocol are missing and could be added in event that a PDP-10
  149. emulator appears that is capable of running TOPS-20 6.0 or later, with
  150. built-in ARPANET support and Ethernet drivers.  Earlier TOPS-20 versions
  151. required an outboard IMP Interface (AN20) (except maybe TOPS-20 4.1 on
  152. the KS-10).
  153.  
  154. Also note that there is no kind of internationalization whatsoever; no
  155. character-set translation and no special support for 8-bit text.  While you
  156. might be able to transfer 8-bit text (e.g. Latin-1), you can't have 8-bit
  157. filenames because TOPS-20 doesn't support them.
  158.  
  159. ---------------------------------
  160. From Tom De Bellis, December 2003:
  161.  
  162. I merged in [Mark Crispin's] PANDA network binary mode under a
  163. conditional.  If the PANDA MTOPR% fails for any reason, then I revert to
  164. the old way of poking the TAC or host.  While I was at it, I fixed a
  165. couple of minor bugs.  In particular, reslin and subroutines now always
  166. load the terminal jfn, as there were cases where they were trying to clear
  167. the output buffer of .FHSLF!  I wonder what CFOBF%ing a fork should do?
  168. Clear the memory?  :-)
  169.  
  170. Next, I put in code to automatically recognize whether the selected line
  171. is a TVT or not and put the line into binary mode.  In particular,
  172. (stable) 6.0 series monitors have the NTINF% Jsys which says what kind of
  173. line you're on.  The feature definitely works in 7 series monitors.
  174. However, just in case it gronks, I fall back to doing it the old way with
  175. STAT% (which also works).
  176.  
  177. I updated the user interface a little to control the new functionality.  I
  178. added an additional keyword to the set TVT-Binary command: 'automatic' and
  179. made it the default.  When Kermit is in automatic TVT-Binary negotiation
  180. mode, it uses the above code to determine TVT-ness.  However, I allow
  181. overrides 'set TVT-Binary {on|off}' to maintain compatibility.  Finally, I
  182. updated the program's internal help documention.
  183.  
  184. Program performance in certain cases has been stellar.  While running
  185. C-Kermit on MAC OS 10.2, I was getting data rates from the 20 that
  186. exceeded what I could transfer with FTP (which is part of the reason that
  187. I am re-writing part of FTPSER).  Data rates to my laptop running Windows
  188. 2000 have been good, although not as good as the iMac.
  189.  
  190. The problem with assymmetric transfer speeds with Kermit turns out to be
  191. with KLH-10 itself.  For some reason, it is faster to transfer files out
  192. of the 20 than it is to transfer them into the 20.  As an example, for a
  193. 104 page file, I got 7.54 KBs/s when I put the file to the 20 from my
  194. Windows 2000 laptop.  When I pulled the file (get), my transfer rate went
  195. to 39.90 KBs/s, more than five times as fast.
  196.  
  197. (End of Tom's remarks)
  198.  
  199. Translation: your mileage may vary according which PDP-10 emulator you are
  200. using (or which PDP-10!); as far as I know there's only one Telnet server
  201. for TOPS-20, so that shouldn't be a factor.  When I added long packet
  202. support in 2001, it was done on real KL-10 hardware (XKL), and I didn't
  203. notice any big discrepancy in send and receive rates over a Telnet
  204. connection, but since the XKL is no longer accessible to me I can't repeat
  205. the experiment.
  206.  
  207. Tom's new version was used to download itself from KLH-10, along with a
  208. 2MB JPG ("set file byte 8") for the DEC-20 historical archive (from when
  209. Tom was in Columbia's DEC-20 Systems Group in the 1980s).  It took a few
  210. tries to get the JPG across.  Unlike when running Kermit-20 on the XKL, I
  211. had to crank the packet length back to something like 500, and still got a
  212. 5% (correctable) error rate.
  213.  
  214. Tom's new version was installed at the Kermit Project ftp site 3 Dec 2003.
  215.  
  216. (End)
  217.