home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 3 Comm / 03-Comm.zip / CKPM5X_S.ZIP / CKOKER.UPD < prev    next >
Text File  |  1990-05-02  |  20KB  |  340 lines

  1. Update file started 18-Feb-90.  This does not contain any of the
  2. details of the chagnes made to convert Chris Adies CKOKER 1.0p into a
  3. Presentation Manager kermit.  Part of this conversion involves the
  4. addition of files CKOPM1.C, CKOPM2.C, CKOTEK.C, CKOPM.H, CKOKEY.H,
  5. CKOFNS.H, CKOSTD.C, CKODRV.C.
  6.  
  7. CKOKER must now be compiled using the MicroSoft C 5.1 multithread
  8. runtime library and it's attendant include files.  I do not refer
  9. directly to any of the multithread include files.  They are reference
  10. by using the INCLUDE environment variable.  Since the PM and OS2
  11. include files are normally installed in the \include directory
  12. togehter with the regular includes and the multithread includes in
  13. the \include\mt directory the INCLUDE environment variable should be
  14. set up as follows (assuming hard drive C:);
  15.  
  16. SET INCLUDE = C:\INCLUDE\MT;C:\INCLUDE
  17.  
  18. This ensures that the mt includes are looked at first.
  19.  
  20. What other compilers do for handling multithreaded applications I
  21. don't know.  If anyone wants to compile with a different compiler
  22. then they'll have to figure it out for themselves.  To date there are
  23. 3 threads, apart from the main thread, created specifically by the program.  
  24. One in CKOCON.C, one in CKOPM1.C and one to impliment the alarm interrupt in
  25. CKOTIO.C.
  26.  
  27. CKUUS3.C - trmtab changed to include tek4014 and vt100 options.
  28.          - doprm() case XYTERM modified to handle the new term
  29.            options.   
  30. CKUUS2.C - dohset() case XYTERM changed to sho info relevant to the
  31.            new SET TERM commands.
  32. CKCDEB.H - OS/2 defines putchar as a macro not a function.  It must
  33.            therefore be undefined before compilation.  The #undef
  34.            command is in this file.  This file MUST now be placed
  35.            after all the normal system includes but note that it
  36.            should go before the kermit includes.  It had to be moved
  37.            in the CKO files, and in CKUDIA.C, CKUSCR.C, CKUUS2.C,
  38.            CKUUS3.C, CKUUSR.C
  39.            
  40. CKUCMD.C - VioScrollUp and VioSetCurPos replaced with the AVIO equivalents.
  41.  
  42. 22-Feb-90  Herald date changed to 22-Feb-90  (in ckotio.c)
  43. CKUUS3.C - Support for setting the hardware handshaking lines on the PC under
  44.            OS/2.  This saves having to run "MODE.COM" to set each port each
  45.            time kermit is started.
  46.            Changes made to keytab struct flotab, case XYFLOW and a new function
  47.            os2_set_hand added.
  48. CKUUS2.C - Help for XYFLOW modified.
  49. CKOTIO.C - os_set_flow modified to read the DCBINFO first. It now sets values
  50.            which should correspond to the MODE ODSR, IDSR and OCTS commands.
  51.  
  52. 23-Feb-90
  53. CKOTIO.C - os_set_flow modified some more to set the bits properly! dsr etc.
  54.            default to ON, which is the system default.
  55.  
  56. ******************** The following updates refer to version 5A files *******
  57. CKOKER.MAK - CKUUS4.C, CKCFN3.C, CKCXLA.C added
  58. CKUUS4.C - #include "ckcdeb.h" moved to after the system includes.
  59. CKWART.C - #include "ckcdeb.h" moved to after the system includes.
  60. CKCDEB.H - OS/2 undef of putchar()
  61. CKCKER.H - More ASCII mnemonics added plus codes for diferent terminal modes.
  62.            These are not defined specific to OS/2 as they can be used by anyone.
  63. CKUCMD.C - VioScrollUp and VioSetCurPos replaced with the AVIO equivalents.
  64. CKUUS3.C - trmtab changed to include tek4014 and vt100 options.
  65.          - doprm() case XYTERM modified to handle the new term
  66.            options.  These changes are defined as OS/2 specific.
  67. CKUUS2.C - dohset() case XYTERM changed to sho info relevant to the
  68.            new SET TERM commands.  These changes are defined as OS/2 specific.
  69. CKUUSR.C - ckcdeb.h moved.  File to big to compile, MSCs annoying "out of heap"
  70.            message. With 14Mb, or something like that or virtual memory how can
  71.            this happen!!!!  So docmd() moved to new file CKUUS5.C
  72. CKOKER.MAK and CKOKER.LNK - ckuus5.c added
  73. CKUUS4.C - Definition of SIGALRM and alarm() added. OS/2 specific.
  74. CKCDEB.H - Braketed typdefs of long and char with #ifndefs.  These definitions
  75.            are made in the OS.2 headers.  However these headers are not included
  76.            in all kermit files.  Trying to typedef a second time them causes 
  77.            an error.
  78. CKOKER.MAK - CKWART.C removed from make and link, not needed!!
  79. ---------------------------------
  80. 20-Feb-90 C.P.Armstrong
  81. CKOKER.MAK - Several attempts made to get 5A kermit to compile and
  82.              link, so far to no avail. Matters not helped by me not
  83.              really knowing what I'm doing.  Using the /Gt compile
  84.              flags permits kermit to compile and link successfully.
  85.              However it wont run, giving a protection error.  Using
  86.              codeview I've isolated this to the malloc statment in
  87.              the printf() function in ckostd.c.  I've come accross
  88.              this problem with malloc() before and I've no idea what
  89.              to do about it.
  90. CKUUSR.C - The new reduced size one (19 Feb 90). ckcdeb.h moved 
  91.            "#endif COMMENT" changed to "#endif /* COMMENT */" at lines
  92.            879 and 1256.
  93.          - #include "ckcdeb.h" moved to after the system includes.
  94.          - The "#ifdef NETCONN"s around netcmd and nnets removed as they
  95.            are referenced in CKUUS3.C
  96. CKUUS4.C - #include "ckcdeb.h" moved to after the system includes. But before
  97.            all other include.
  98.            Definition of SIGALRM and alarm() added. OS/2 specific.
  99. CKUUS5.C - all local includes moved to after the system include.
  100. CKUUS3.C - trmtab changed to include tek4014 and vt100 options.
  101.          - doprm() case XYTERM modified to handle the new term
  102.            options.  These changes are defined as OS/2 specific.
  103.          - #include "ckcdeb.h" moved to after the system includes.
  104.          - Term_mode declared external.
  105. CKUUS2.C - dohset() case XYTERM changed to sho info relevant to the
  106.            new SET TERM commands.  These changes are defined as OS/2 specific.
  107.            #include "ckcdeb.h" moved to after the system includes.
  108.  
  109. 23-Feb-90  Files from 22-Feb-90
  110. CKUUS3.C - Characters after #endif's removed.
  111.          - ttyptab[] defined in wrong part of #ifdef.  Moved to OS2 bit
  112. CKCKER.h - Restored definitions of FF and ESC with #ifndef's.
  113. CKUCMD.h - Only define FF and ESC if not already defined
  114.            For some reason ckucmd.h has an OS2.H include in it.  So
  115.            when it is included in a cko???.c file, as is necessary if
  116.            FF and ESC are moved to ckucmd.h instead of being in
  117.            ckcker.h, along with the other ASCII definitions, all the
  118.            OS/2 definitions get redefined, which gives an error.
  119.            Since I generally don't need anything in ckucmd.h in the
  120.            cko??? files I'd rather not have to have it just to
  121.            include OS2.H.  Especially with an INCL_ I don't need,
  122.            which brings in more stuff than necessary which will cause
  123.            the "out of heap" compiler error. 
  124. CKUUS5.C - zfindfile() declared correctly.
  125.  
  126. 25-Feb-90
  127.  
  128. CKOTIO.C - The alarm functions modified a bit.  Now uses _beginthread to start
  129.            the thread - maybe this was causeing the system crashes...
  130.          - ttinc() modified wrt timeouts.  The "untimed" timeout
  131.            setting assumed rdch() returned immediately if no char
  132.            waiting.  Not so. The DosRead waits forever and is
  133.            impervious to the alarm signals for some reason.  So
  134.            ttinc() for "untimed" reads sets a timeout of 0.1s then
  135.            goes ahead and repeatedly checks the rdch() return value
  136.            for a character.
  137.            ttinc() parameter now sets the number of centiseconds, not the
  138.            number plus 1cs.  A param of 0 means indefinite wait.
  139.  
  140. CKUUS4.C - When a timer event occurs it should be acknowledged.  Acknowledge
  141.            call put into doinput() (OS/2 specific).
  142.          - doinput() character wait loop seems a little inconsistent.  If
  143.            ttinc(0) means wait forever then putting a keyboard interrupt check
  144.            after ttinc returns does not allow interruption.
  145.            The while loop terminates if a negative value of y is returned.  But
  146.            in the loop a negative value is checked for.
  147.            While loop therefore changed to continuous.  ttinc() value changed to
  148.            5cs.
  149.            No error checking for communications problems.  But the timeout should
  150.            be sufficient.
  151.  
  152. 26-Feb-90  Files of 25-Feb-90
  153. CKUUS4.C - signal() function in doinput() replaced by custom OS/2 version.
  154.          - signal must be acknowledged after resetting to default.  alarmack()
  155.            added for OS/2.
  156.          - OS/2 version configured so that the user can stop the input wait 
  157.            by hitting the keyboard (gentley!).
  158.            Note that the OS/2 routine in ttinc() has it's own set of timeout
  159.            parameters and is completely unaffected by the timer used to interrupt
  160.            the input routine.
  161.            I messed around with the {} layout to make suer I was doing the
  162.            right thing in the right place - I just can't figure out whats going
  163.            on when the {} pairs aren't obvious.
  164.          - Put coninc() in doinput() to swallow the user keyboard interruption
  165.            character.
  166. CKOTIO.C - ttgsp() added.  This simply calls ttspeed() which was already there!
  167. CKUUSR.C - output misses off the first character.  The for(;;) construct has been
  168.            replaced with while(*s++).  This seems to increment *s before doing
  169.            the test (very risky on NUL strings under OS/2!!!).  Changed it to
  170.            (*s)++ to see if helps it do the test then increment to the next char.
  171.            It didn't work - I got lots of characters, as if it was printing a 
  172.            character table (amazingly no protection fault!).
  173.            So, in the interests of simplicity I changed it back to the original
  174.            for(;;) loop, for OS/2 only, as the only change to that bit was the
  175.            return code.
  176.            
  177. 28-Feb-90  Files of (116)
  178.            All files compiled okay!
  179. CKOTIO.C - the INPUT command now relies on coninc() and ttinc() waiting if a
  180.            time is specified, coninc() didn't and ttinc() waited centiseconds
  181.            instead of seconds.  So coninc() now uses a times getch routine if
  182.            necessary, coninc(0) is assumes to mean indefinite wait.  ttinc()
  183.            now converts it's parameter to seconds (i.e. (timo-1)*100).
  184. CKOPM1.C - Timed getch routine added - buff_tgetch().  Takes a parameter
  185.            of milliseconds (this seems to be the OS/2 unit of time).
  186.            
  187. 02-Mar-90  Core files downloaded am 02-Mar-90
  188. CKUCMD.C - Bits in the "#ifdef COMMENT" cause an error.
  189.            "char *xx;" added.  No idea where COMMENT is defined, couldn't
  190.            find it in the kermit includes.
  191.            
  192. 04-Mar-90 Core files downloaded 03-Mar-90
  193. CKUCMD.C - As above.
  194. CKOTEK.C - Shift printscreen should dump the Tektronix plot to the printer.
  195. CKOPM2.C - VK_PRINTSCRN chnaged to VK_SHPRINTSCRN if the shift key is down when
  196.            the PrintScreen button is pressed.
  197. CKOCON.C - vt100read modified.  Screen rollback loop moved to separate function
  198.            called screen_rollback().
  199.          - scankey() modified to trap VK_PRINTSCRN and call function to dump
  200.            the AVIO screen to the printer.  Putting the trap in here allow
  201.            rolled back screens to be dumped.  Another trap should probably be
  202.            inserted to allow dumping of the command line mode screen.
  203. CKCKER.H - Definitions for ODSR, IDSR, OCTS added.
  204. CKUUS3.C - SET FLOW ODTS OCTS or IDSR added.
  205. CKUUS2.C - Help for the new set flow commands.
  206. CKOTIO.C - os2_set_hand() command put in here.
  207.  
  208. 07-Mar-90
  209. CKOCON.C - Buffering system installed to reduce the number of WinPostMsg
  210.            calls requried for displaying a line.  Seems to speed things a 
  211.            little.
  212. CKOPM2.C - New avio_command message defined.  Same as WRCCHRSTAT except that
  213.            the string to be printed is "free()"d after printing and there is
  214.            no need for the main thread to wait for the PM thread to print the
  215.            string.
  216. CKOPM.H  - definition of WRCCHSTATD.
  217. 11-Mar-90
  218. CKOPM1.C - New function to put the Vio cursor in the window when input is
  219.            requested and after a Vio resize.  Works great with Vaxes but not
  220.            so well with the IBM3090 XEDIT which always puts the cursor at the
  221.            bottom.  Never mind, you need the full screen with XEDIT anyway.
  222. CKOPM.H  - definition of WM_CURCHECK.
  223.  
  224. 24-Mar-90 C.P.Armstrong
  225. CKUUS4.C - Created a SESOPN function to perform opening and closing of 
  226.            the session log similar to debopn(). This is so the new menu 
  227.            commands can call the same opening function as the regular commands
  228.            thus preventing unnecessary duplication.
  229.            debopn() modified to simply close the file if a nul string is
  230.            sent.
  231.            tralog() and pktlog() created.
  232. CKOPM3.C - This new file contains all (so far) of the menu and dialog handling
  233.            routines.  So far the "Communications...", "Terminal..."
  234.            and "Logging..." menu items have prototype routines.  The
  235.            terminal one is the most complete, it works whether in
  236.            connect mode or not.  The communications dialog does not
  237.            check to see if the line is open already, so it has no
  238.            effect when in connect mode.  It does not check to see if
  239.            a valid port has been entered - this involves re-writing
  240.            quite a bit of the non-PM thread stuff.  The logging stuff
  241.            works in both connect and command line mode.  I don't know
  242.            about during file transfer.  Logging makes no allowances
  243.            for the compiler options which exclude loggin or
  244.            transaction logging.  The logging dialog should maybe have
  245.            a list of files, with the option to edit the list
  246.            selector/default extension.... one day.
  247.            It would be nice to be able to disable the terminal
  248.            tektronix dump format buttons when vt100 mode is selected,
  249.            it doesn't appear to be possible at present.  There is the
  250.            option to switch of the dump file - it should be included
  251.            in the dialog.
  252. CKORC.RC - This replaces the ckoptr.rc.  It contains all the resource
  253.            stuff such as pointers, dialogs, menus.
  254. CKORC.H  - Contains all the #defines for the resources.
  255.          
  256. CKOCON.C - Couldn't use ipadl25() from the PM thread to reflect the
  257.            change in terminal emulation caused by the menu item
  258.            during connect mode.  This because of the semaphoring
  259.            using when passing strings etc. for display from the
  260.            non-PM thread to the PM thread**.  ipadl25() uses many such
  261.            semaphores.  When the PM-thread sets them from a dialog
  262.            and then waits for itself to clear them we get deadlock as
  263.            the PM-thread is "suspended" while doing dialogs.  So
  264.            scankey() now does an ipadl() when it gets a null return
  265.            value.  It swallows the null.
  266.  
  267. ** This problem might be avoided by using WinMsgSemWait().
  268.  
  269.            Minor changes to ckodrv, ckopm1, ckopm2, ckotio.
  270.  
  271. 02-Apr-90 C.P.Armstrong
  272. CKORC.RC
  273. CKORC.H
  274. CKOPM3.C - The "Edit" menu is now implimented.  It is now possible to copy
  275.            text from the VT100 window to the clipboard and to paste text from
  276.            the clipboard into the keyboard input buffer.  Pasted text is 
  277.            therefore treated as if it had been entered from the keyboard.
  278.            The keyboard buffer input routine now detects when the buffer is
  279.            full and waits for the output routine to make space.  This is because
  280.            the "Paste" function can enter text much more rapidly than the output
  281.            routine can remove it and transmit it. Text is marked by moving the
  282.            mouse with the "left" button depressed.  Text marking at present is 
  283.            a little slow, but I'll speed it up eventually.
  284.  
  285. 05-Apr-90 C.P.Armstrong
  286. CKOPM1,2,3,4 - Rearrangement of the modules in these files to get around the
  287.            exasperating "out of near heap" generated by MSC5.1  CKOPM1.C is
  288.            now down to about 700 lines!!!!!  Why it wont compile I've no idea
  289.            especially as over 2000 (although it's at bursting point).
  290.            
  291. CKOPM4.C - The Gpi window now loads a custom font for use in the Tektronix
  292.            window.  This is an image fixed spacing font small enough not to
  293.            overlap at the spacing corresponding to the Tektronix spacing.  This
  294.            is much more legible than using the system font.  Unfortunately the
  295.            only way to use the font is to have it as a separate file.  The 
  296.            a-holes at IBM/MS have set things up so you can't attach a font
  297.            to the end of a .exe like you can a menu, or dialog or pointer or
  298.            bitmap. Don't ask me why?  The font is loaded with GpiLoadFonts. This
  299.            is another prime example of a-holery.  All the ref.mans. say use
  300.            .FON for a font file extension.  So you give LoadFonts the filename
  301.            ckofon.fon expecting it to look in libpath or the current directory.
  302.            Does it hell.  I've no idea where it looks.  So you miss off the
  303.            extension and what does it supply..... .DLL.  Who are these people,
  304.            what the hell are they playing at.  Since the function uses libpath
  305.            why the hell can't it look for what it's told to in libpath.  What
  306.            else does LoadFonts do?  It just LoadsFonts right.  So why the hell
  307.            does it supply .DLL - give me strength.  So the font file is called
  308.            CKOFON.DLL so it can go into a users libpath.  Of course this 
  309.            extension means a user must rename it if it wants to load the
  310.            font publicly, thus causing kermit to fail to load it, so there must
  311.            be two copies, causing user to run out of disc space even sooner.
  312.            The other files required to make CKOFON.DLL are;
  313.                 CKOTEK.FNT      The image Tektronix font (one day it'll be a
  314.                                 vector font when I find out how to do it.)
  315.                                 This file is created using FONTEDIT and is
  316.                                 binary.
  317.                 CKOFON.ASM      The dummy code segment for the .DLL file
  318.                 CKOFON.RC       The resource compiler file
  319.                 CKOFON.DEF      The linker definition file which causes the
  320.                                 linker to build a dynamic link library.  It
  321.                                 supplies the extension .DLL automatically.
  322.                                 
  323. 02-May-90 C.P.Armstrong
  324. CKCDEB.H - Tried to compile with MSC 6.0. Ugh, why do they do it?
  325.            Files which previously produced no warnings (let alone errors!) now
  326.            spew warnings left right and center.  However there seems to be a
  327.            serious problem with either the linker or the compiler.  The standard
  328.            C RTL functions printf(), puts() and putchar() don't work with
  329.            Advanced VIO.  So I've written versions which do, to replace the RTL
  330.            ones.  My printf() and puts() are used okay but the putchar()
  331.            function generates a "symbol defined more than once" during linking -
  332.            in spite of the fact that I am using /NOE and /NOD.  I don't know why
  333.            it's doing this.  The only way to stop it is to change the name of
  334.            putchar().  Horrible I realise but it's the only way. 
  335. CKOFNS.H - Changes related to above.
  336. CKOSTD.C - Ditto
  337. CKUSCR.C - #include "ckcdeb.h" moved to where it should have been in the 
  338.            first place.
  339. CKUDIA.C - Ditto
  340.