home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / protocol / kostya-locking-shift.reply < prev    next >
Internet Message Format  |  2020-01-01  |  5KB

  1. From: Frank da Cruz <fdc@watsun.cc.columbia.edu>
  2. To: kvin@ccic.icsti.msk.su (Konstantin Vinogradov)
  3. Cc: cmg@watsun.cc.columbia.edu, jrd@watsun.cc.columbia.edu,
  4.     pepmnt@cfaamp.harvard.edu, keibun@kek.jp, Klensin@INFOODS.MIT.EDU,
  5.     MURAKAMI@NTT-20.NTT.JP, PIRARD@vm1.ulg.ac.be, pplaceway@bbn.com,
  6.     S00100@DBNRHRZ1.BITNET, TERRY@SPCVXA.BITNET
  7. Subject: Re: Kermit Locking Shift Proposal
  8. bcc: fdc
  9. In-Reply-To: Your message of Thu, 16 May 91 20:24:17 +0300 (MSD)
  10.  
  11. > Dear Christine and Frank,
  12. > > The file sender should not set this capability bit if its PARITY variable
  13. > > is not NONE.
  14. > Does it mean that the Sender should set capability bit only if its PARITY
  15. > variable is NONE ? I can't believe this and assume the first "not" (or
  16. > the second one) NOT TRUE.
  17. >
  18. Thank you for noticing the typographical error!
  19.  
  20. > It seems there is no way to initiate Locking Shift by the Receiver in case
  21. > sender's parity is NONE. I guess it's possible to set sender's LS bit if
  22. > parity is NONE, but receiver should not set this bit if its parity is NONE
  23. > and sender's QBIN equal "Y". Does it make sense ?
  24. You're right, Konstantin.  Locking shifts (or combined shifts) should be
  25. negotiated and used in exactly the same way as single shifts.  So the file
  26. receiver should be able to initiate locking shifts just as it can initiate
  27. single shifts.  However, we should not tie locking shift negotiation to
  28. single-shift negotiation because we want them to be independent.
  29.  
  30. So suppose we modify the negotiation phase to be like this:
  31.  
  32. Any Kermit program that implements locking-shift protocol will always set the
  33. locking-shift capability bit.  This indicates that it CAN do locking shifts,
  34. but not that it WILL do them.
  35.  
  36. In addition, a new field is added to the initialization string: PARITY.  It
  37. will be the fourth byte after the capabilities field (CAPAS+4).  The values
  38. can be:
  39.  
  40.     E  Even parity (7 bit data)
  41.     O  Odd parity (7 bit data)
  42.     M  Mark parity (7 bit data)
  43.     S  Space parity (7 bit data)
  44.     P  Any kind of parity other than NONE (7 bit data)
  45.     N  NONE, no parity (8-bit data)
  46.  
  47. So the conditions for locking shifts to be used are that both Kermit programs
  48. set the locking-shift capability bit, AND one or both Kermits specifies a
  49. PARITY value other than N.  The value of the PARITY negotiation field comes
  50. from Kermit's PARITY variable.
  51.  
  52. > LS FORCED mode: I have two remarks here.  Assume any text file will be
  53. > received and recorded with sender's ISO-based (8859/? + 2022)
  54. > transfer_character_set in case receiver does not support LS.  First of all,
  55. > this is unsuitable if receiver has been able to accept this
  56. > transfer_character_set and to translate it accordingly.  This is unwanted
  57. > situation.
  58. >
  59. An excellent point!  But the use of locking shifts should not prevent
  60. character set translation, and the proposal did not say it should.  Let's look
  61. at the possibilities when the sender has LOCKING-SHIFT FORCED and has
  62. announced the transfer character set in the Attribute packet, and the receiver
  63. supports character-set translation, but does not support LS (or LS protocol
  64. has not been negotiated):
  65.  
  66. 1. Receiver translates the transfer character set into an 8-bit file character
  67.    set whose first 128 characters are ASCII, such as an IBM code page, KOI-8,
  68.    the Apple or NeXT character set, etc.  In this case, the desired effect is
  69.    achieved automatically.
  70.  
  71. 2. Receiver translates the transfer character set into a 7-bit file character
  72.    set such as an ISO 646 NRC or Short KOI.  In this case the result is
  73.    garbage.  Locking shifts should not be used here.  For the languages
  74.    covered by ISO 646 NRCs, single shifts are more efficient anyway.
  75.  
  76. > John already mentioned the second problem.  Well, receiver couldn't accept
  77. > the transfer_character_set.  In this case we have got a text file with
  78. > SI/SO included.  Even if it is ISO-based it does not mean that local
  79. > equipment can process it.  Which kind of 8859 arrived?  How should it be
  80. > translated?  If you can't answer you can't use such file.  It's not enough
  81. > to convert it to 8-bit data file or output to display or printer.  You may
  82. > get nothing.
  83. This situation is no worse with locking shifts than without them.  If the file
  84. had been transferred with single shifts only, it would still contain 8-bit
  85. characters whose meanings were unknown.  In either case -- 8-bit values or
  86. SO/SI characters in the file -- a postprocessing program could translate the
  87. character set into the desired one.
  88.  
  89. > As to my experience, the only character set which is used here in the
  90. > Soviet Union in such manner is KOI/7, i.e. old_KOI/8 in 7-bit environment.
  91. > Really a variety of displays, operating systems, online services, etc. was
  92. > designed to use SI/SO technique.  My LAN station, for example, uses it.
  93. > But most of them are obsolete and I never heard that somebody decided to
  94. > apply SI/SO method to store or output currently used codes (including
  95. > new_KOI/8 = ISO8859/5).
  96. Now they can.  Several useful examples have already been listed.  With
  97. imbedded SO/SI in file data, people can read and print international
  98. characters in environments where this could never be done before.
  99.  
  100.  
  101.