home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c-kermit / ck9bwr.txt < prev    next >
Text File  |  2020-01-01  |  8KB  |  151 lines

  1. CK9BWR.TXT          "Beware File" for C-Kermit Version 7.0        -*- text -*-
  2.  
  3.                   OS-9/68000 VERSION
  4.  
  5. Applies to 6.0.196
  6. Last update: Wed Jan 26 10:23:21 2000
  7.  
  8. Author: Christian Hemsing, Germany.
  9.         Ulrich Schlueter, Germany.
  10.  
  11. [Comments in brackets are by James Jones, USA; they reflect his opinions and
  12. judgement and the (minimal, thanks to the fine work of Herren Hemsing and
  13. Schlueter and all who have worked on C-Kermit for OS-9) changes made since
  14. the 5A(188) version, and do not necessarily reflect the opinions of any
  15. organization.]
  16.  
  17. Report problems, suggestions, fixes, etc, to Frank da Cruz:
  18.  
  19.  Internet: fdc@columbia.edu
  20.  
  21. The Kermit Project, Columbia University
  22. 612 West 115th Street, New York NY  10025  USA
  23. http://www.columbia.edu/kermit/
  24.  
  25.  
  26. KNOWN BUGS AND LIMITATIONS
  27.  
  28. If C-Kermit terminates suddenly and abnormally with a message about
  29. stack overflow, you can start it as follows:
  30.  
  31.   kermit -r #16k
  32.  
  33. This allocates an additional 16K of stack space (use a bigger number if
  34. necessary).
  35.  
  36. [OS-9 C Kermit will require source changes to compile and run under OS-9000,
  37. to move from OS-9 to OS-9000 system call interfaces and to recast the
  38. assembly language code in ck9asm.a and ck9fio.c into a more portable form.]
  39.  
  40. [As I do not have ready access to the old 3.2 OS-9/68000 C compiler or to
  41. gcc for OS-9/68000, I cannot guarantee that C Kermit will compile with those
  42. compilers, though I have made minimal changes to the source, and have made
  43. every effort to not break things for those attempting to compile with either
  44. of those compilers.  The most likely difficulty will be managing the amount
  45. of non-remote data.]
  46.  
  47. SET FILE DISPLAY FULLSCREEN only works for VT100 and compatible terminals,
  48. emulators, and/or console drivers.  If it doesn't work for you, please use
  49. one of the other FILE DISPLAY styles, such as CRT.
  50.  
  51. During text-mode file transfer, linefeed characters are converted to
  52. carriage returns (on purpose).
  53.  
  54. Unlike UNIX, OS-9/68000 has a built-in method to gain exclusive access to
  55. devices, so no lock files are needed.  The user will be told if the device
  56. is already in use.
  57.  
  58. 1)  Setting the speed of the communications line:
  59.  
  60.     With OS-9 there are two different ways to set the line speed which
  61.     need a little discussion.
  62.  
  63.     a) Assumption: you have a properly implemented driver for your terminal
  64.        lines.  This means that with any SS_Open and SS_Opt call to the driver
  65.        will check whether the speed has changed and will re-program the
  66.        hardware accordingly.  In this case everything is fine and kermit will
  67.        only have to do an _ss_opt call and the speed will be changed.  This is
  68.        what tmode does.
  69.  
  70.     b) Assumption (more likely): your driver does not check the speed change.
  71.        You could try to change the speed with the xmode command, close the
  72.        path currently open on it and reopen it again (xmode only modifies the
  73.        device descriptor in memory; NOT any currently existing path
  74.        descriptors).  But this won't help you much if your line was iniz'ed
  75.        before, because the driver's init routine will NOT be called again and
  76.        since the poorly implemented driver does not check the speed with an
  77.        SS_Open call the actual speed is not changed.  The only way is to have
  78.        the device not iniz'ed.  But this again might cause some problems:
  79.        again, a poorly implemented driver does not wait till output buffer
  80.        (the drivers!, not to be mixed up with the buffer e.g. setbuf(), works
  81.        on) is empty, before the termination routine runs.  So, when the device
  82.        was not iniz'ed and therefore the termination routine is called
  83.        everytime the last existing open path closes, characters might get lost
  84.        (e.g. a list file.name >/t3 on a previously not iniz'ed device often
  85.        will not show all characters on /t3 if the drivers termination routine
  86.        does not wait).  The best solution is to deiniz the device till there
  87.        are no interrupts running any more (with OS-9 V 2.3 and later use irqs)
  88.        then use xmode and iniz the device again.
  89.  
  90.     How to find out: let kermit change the speed (using _ss_opt) and see
  91.     whether the change worked.  Otherwise use the method mentioned above.
  92.     I included the xmode version in kermit (which only works on non-iniz'd
  93.     line, but its use is strongly discouraged.  You can include the -dXMODE
  94.     option in the makefile to have this method used by kermit.
  95.  
  96.     Another problem could arise on a system with an installed memory
  97.     protection unit: if the device descriptor does not have public write
  98.     access, xmode cannot change the device descriptor unless you are
  99.     privileged.  In that case changing the speed with xmode from within kermit
  100.     will not work.  The _ss_opt (tmode) method works also with an installed
  101.     memory protection unit, because it acts only on the path descriptor (not
  102.     on the device descriptor) which is owned by the current user.  The best
  103.     solution is: already have or get or write a decent driver.
  104.  
  105. 2)  Setting raw mode on line: Again a remark: If you change XON/XOFF to 0 with
  106.     _ss_opt, the driver should wait until the output buffer is empty, because
  107.     if there is pending output the driver might receive an XOFF which will
  108.     result in an output halt.  Next time you change the mode with XON set to
  109.     0, and the driver will never start output again, because there is no XON
  110.     character anymore.  This might happen when you type the CONNECT command.
  111.     In this case kermit says something like "Connection thru blabla" and then
  112.     puts the terminal line in raw mode.  But your terminal might have sent an
  113.     XOFF (and shortly later an XON again), but the XON might be lost.  The
  114.     only way to circumvent this (unfortunately OS-9 currently offers no way to
  115.     find out whether the driver's output buffer is empty; there are many
  116.     situations when one would like to know that) is to wait.  If this happens
  117.     to you, edit ck9con.c to wait after the message.
  118.  
  119. 3)  Kermit now does an open with initial file size.  This avoids the
  120.     frustration of attempting to receive a long file only to fail at
  121.     the very end because of fragmentation or lack of disk space.
  122.  
  123. 4)  You can make the module (and its data requirements) a lot smaller by
  124.     adding certain compiler switches to the makefile like -dNODEBUG.
  125.     For the possible switches, read the file ckccfg.doc.
  126.  
  127. 5)  Sending a BREAK on a line is again a matter of the driver.  There is a
  128.     setstat call SS_Break, but again many carelessly implemented driver do
  129.     not support the call.  If there is no support, kermit will try to switch
  130.     to a lower speed for the BREAK, but again this may not work (see above).
  131.     Things would be much easier, if drivers were written more carefully.
  132.     One known device driver takes 5 hours (!) to return from the send-BREAK
  133.     code.
  134.  
  135. 6)  [When compiled for the old 3.2 C compiler or with gcc, C-Kermit is now
  136.     using its own rename function. Compiling with Ultra C will use the ANSI
  137.     library rename() function.]  This enables moving files.  But you have to
  138.     use another syntax: To rename a file "foo" in the directory "oofa" to
  139.     "oofa/fooo" the OS-9 shell syntax is "rename oofa/foo fooo" - but the
  140.     C-Kermit syntax is "rename oofa/foo oofa/fooo".
  141.  
  142. 7)  There is now a version available with network support (Microware ISP
  143.     1.3-1.4). This version needs the carefully implemented driver (aborting
  144.     I/O on signals less than 32). When sending files to an OS-9 Kermit server
  145.     with TCP/IP and large packets the transfer get's stuck because of a buggy
  146.     telnetdc and pkdvr. You have at least to increase the buffer size of the
  147.     pseudo ttys to 2048. This buffer size can be found in the pk device
  148.     descriptor at offset 0x4A (buffer size = (*(char *)0x4A) + 1) * 128).
  149.  
  150. (End of CK9BWR.TXT)
  151.