RELEASE HISTORY =============== 08-18-91 v2.0 - It is not necassary to use WORD alignment EXCEPT if you plan on using the user structure or the update_user() function. Otherwise, BYTE or WORD alignment should work OK. - Added the short ck_system_time_used(void); function. - ALL ckit's variables/functions now begin with the letters "ck_" See upgrade file. - Added ck_DOTS. This will cause dots "." to be echoed to the screen when true and using one of the keyboard inputs. - Fixed fullname so that it will display more than 2 names for PCBboard 14.5. - Ckit will no longer exit your program on it's own. If open_door() fails, it will now return an error code based what the problem it had. If open_door() is successful, it will return a NULL. The error codes are as follows: ========== 1 ;Unable to open BBS system file (pcboard.sys,door.sys etc) 2 ;Problem reading BBS system file 3 ;Unrecognized BBS file type 4 ;Unable to open pcboard USERS file 5 ;Invalid User record or problem seeking to user record 6 ;Problem reading USER record 7 ;PORT command syntax error 8 ;Fossil driver specified but no Fossil driver installed 9 ;Memory allocation problem - Added ability to change ALL of Ckit's exit message and they can be of any length. The code looks for an array of pointers to the exit messages and uses the option variable to pick which one to print. This pointer to the array of pointer is now public so you can define you own array of pointers to the 5 exit messages. They must be in this order. See ck_logoff_msgs; - display_file() will only print a "generic" message now. "ERROR: Unable to open file!\a\r\n". If you want it to print a specific file error message, the you need to change error_msg11. This message is limited to 47 characters NOT including the NULL terminator. strcpy(error_msg11, "\a\nUnable to locate CKIT.DOC"); if(display_file(doc_filename)) { newline(); }; - Added set keyboard time out routine. This will allow the door author to set keyboard timer. See set_kybd_time(); - The keyboard timer will not beep locally now if display has been turned off. (display = FALSE). - Added ability to change Ckit's general purpose messages. See ck_gen_msgs; - Added system_time_used(). This will report back the number of minutes since the door was opened. It does include time used in previous calls. You can use this function along with mins_left_system() to create you prompt the same way display_time() does. s_printf("( %d used, %d left)", system_time_used()+prev_used, \ mins_left_system()+time_credit); - The global variable option will now be available BEFORE a call to close_door() is made. If DUMP_USER goes TRUE, you can now check option to see why it went TRUE BEFORE calling close_door(). - Fixed a problem in the large model libraries with updating users record. - Change syntax of ansi_NG to ansi_ng in MSC libraries. - Fixed a problem with the port command that only occured if port was passed as the 3rd argument - Changed get_cmdline() to accept chars > than ASCII 128 - Added switch for ansi when using PCB14.5+ pcboard.sys file to know if the caller wanted ANSI but no color. - Ckit was not allowing ANSI cursor commands if the door.sys file had the user set for ANSI with no graphics. (ansi_ng). Fixed. - Added a new variable short non_ibm. This indicates whether the caller called using 7 bits instead of 8 bits. Using 7 bits doesn't allow for IBM graphic characters above 128 to be displayed correctly. - Added time_credit, and mins_left_system() to the door documentation. These were always available but was left out of the documentation for some unknown reason..:) - Added two more variables: short uart_base - will contain the base address of the port in use. short irq - will contain the interrupt request in use. - Corrected a problem with display_file again.. Also rearranged and optimized some code in the display_file(). You should see a SUBSTANTIAL improvement in the way display_file works for speed. - Increased the strings main_dir[] and gen_dir[] from 15 chars. to 80 characters. - Added proto's for Ctrl-K set of functions that were left out of CKIT.H - CKIT.H had a variable called current_conference. This should have been called current_conf. fixed - If you were using pos_cursor() (ANSI cursor control) and you were displaying peices of a string on the same line, and you didn't have any line feeds and you went past line 22 (into the local status bar), Ckit would try and scroll the screen each time you called pos_cursor() with a row number greater than 22 even though you were still on the same line. Fixed. 07-15-91 - Added switch for ansi when using PCB14.5+ pcboard.sys file to know if the caller wanted ANSI but no color. - Ckit was not allowing ANSI cursor commands if the door.sys file had the user set for ANSI with no graphics. (ansi_NG). Fixed. - Added a new variable short non_ibm. This indicates whether the caller called using 7 bits instead of 8 bits. Using 7 bits doesn't allow for IBM graphic characters above 128 to be displayed correctly. - Fixed a problem in the LARGE memory model where it was not reading a DORINFOx.DEF file correctly for the graphics preference. 07-08-91 v1.81á - Added time_credit, and mins_left_system() to the door documentation. These were always available but was left out of the documentation for some unknown reason..:) 07-Jul-91 v1.81á - Added two more variables in CKIT.H. short uart_base - will contain the base address of the port in use. short irq - will contain the interrupt request in use. - Optimized some code in the interrupt handlers. 02-Jul-91 v1.81á - Corrected a problem with display_file again.. Also rearranged and optimized some code in the display_file(). You should see a SUBSTANTIAL improvement in the way display_file works for speed. - Increased the strings main_dir[] and gen_dir[] from 15 chars. to 80 characters. - Optimized some other code in CKIT. 21-Jun-91 v1.81á - Added proto's for Ctrl-K set of functions that were left out of CKIT.H - CKIT.H had a variable called current_conference. This should have been called current_conf. fixed - If you were using pos_cursor() (ANSI cursor control) and you were displaying peices of a string on the same line, and you didn't have any line feeds and you went past line 23 (into the local status bar), Ckit would try and scroll the screen each time you called pos_cursor() with a row number greater than 23 even though you were still on the same line. Fixed. 15-Jun-91 v1.8 - Added support for FOSSIL drivers. Ckit will now detect if a fossil driver is in use. See the open_door() in the docs. You will need to add this to your door doc files. - Added more capability to inkey(). inkey() will now watch time left and set DUMP_USER. - Included some useful information with using close_door() and C's atexit() function. Door authors need to read this! and look at the ckitdemo.c usage of it. - Fixed a potential problem whereas if exit_msg[] was a NULL, Ckit could get hung up. 05-May-91 v1.76D - Added chatmode set to TRUE when the sysop drops to DOS so the door program can know that a screen re-fresh is needed. See chatmode usage in DOC file for more info. - Fixed the PORT:XXXX:X cmd, CKIT wasn't picking up the port base address/irq correctly. NOTE DOOR AUTHORS: You should include in your documentation the PORT usage cmd and compile your door program to accept and pass this information to open_door(). Pls see docs. - Fixed display_file() so it would not display the EOF character. 24-Mar-91 v1.76 - Added support for RBBS-PC and other systems using the DORINFOx.DEF system files. - Source code for reading PCBoard data files are available on Data-Comp BBS and may be linked with your C door program if desired. RBBS and and others will be as they become available. 15-Feb-91 v1.75C - Not sure what happend 1.75B but anyway, the C version fixed a few loose ends. - Fixed code so that door.sys, wildcat, and generic.sys files are closed after a call to open_door(). - Changed so that if sysop is logged on, (using pcboard.sys), the firstname will be set to what is in the pcboard.sys file instead of "sysop". - Added a pointer to the internal buffer that pcboard.sys is held and which will be used to update pcboard.sys when returning to the board. Added pointer to internal pcboard.sys buffer - BYTE *pcbsysbuf - Changed logoff_msg[] to exit_msg[]. logoff_msg[] is now displayed if the user says good-bye within the door. See CKIT.H for the macros LOGOFF and EXITDOOR. The complete log-off routines and source code for reading pcboard.dat files are on Data-Comp BBS. These can be linked with CKIT if you want to add a log-off feature for PCBoard doors. 24-Nov-90 v1.75 - Fixed a problem in the last release for sysops using the pcboard.sys file. CKIT would always report "Time adjusted for upcoming event". 12-Nov-90 v1.75 - Added a function to update user record IF you are writing the door for use with PCBoard 14.5. The new function name is update_user(). - Added the ability to turn on and off Control K checking, if desired. This involves the additon of 3 functions. CtrlK_ON, CtrlK_OFF, and check_CTRL_K. - Added chat mode via function key 10. Also a variable short chatmode is set to TRUE when chat mode has taken place. - CKIT will now read a file called GENERIC.SYS. This file will allow the door to work on ANY BBS system, depending on the level of information required for door. - Added some enhancements to the status line for the COM port status. It will now display the status of CTS, DTR, DSR and DCD. - Fixed a problem with ALL the medium models. Also fixed a problem with the delay() function in the MSC libraries. There is also a large memory model now available for registered users. 16-Sep-90 v1.71 Release of version 1.71 This release was intended to be a maintenance release. There were, however, a few things added and a couple items repaired. - Added a function to re-enable keyboard timer after it had been turned off by a previous call to debug_on(). The new function name is debug_off(). - Added the ability to define your own error message for the display_file() function. error_msg11[40]. If you don't define it, CKIT will use it's default. - More and more and more documentation updates and examples. Too many additions to list here. Mostly more examples and better explanations. - Fixed the display_file() function so that it will properly handle files that did not contain line feeds. There will also be a future release of display_file() that will handle the ANSI screens better and include PCB color macros. - Close door was clearing the screen when exiting. It no longer does this. - Fixed the More: (Y)es, (N), (NS)non-stop prompt. Somehow in the last release, the last part of the string was missing from the source code. - Also missing in the last release source code was the public declares for transmit_modem, set_r_c and another function. Not sure how this happened but it did. Your linker will now find these. - The page_length should be accurate now. The bug that was in PCBoard's 14.5 door.sys has been fixed and I changed CKIT to give the true page length. 01-Sep-90 v1.6 Release of version 1.7 - Added support for reading scan codes from non-standard keys on IBM keyboards. (F1-F10, Arrows, PgUp, PgDn, etc). - Ability to define the logoff message and color - Ability to change the port address and IRQ if needed. PORT:AAAA:A where AAAA equal to port base address and A is IRQ i.e PORT:02F8:3 would be the same as COM2. - Additonal variables: short scan_code, short logoff_color, char logoff_msg[40], short key_source - Additonal functions: short wait_keypress(void) for "hot_keys" - open_door()'s prototype has been changed. This allows one to pass as many parameters as desired (up to the max. of 3), without having to pass any dummy pointers. - Fixed a problem in the cmd line where certain command line parameters (callinfo.bbs and pcboard.sys) passed were case sensitive. This caused CKIT to read them incorrectly. - Cleaned up the status line display when certain information was not available depending on which file was opened. (pcboard, door.sys, callinfo) - Additional documentation added and improvements. Once again, see open_door() for some changes and key_source. The option variable documention has also been updated. Also see the ckitdemo.c for more examples. 19-Aug-90 v1.6 Release of version 1.6 Added support for WILDCAT! systems. The following additonal information is available for WILDCAT! users. Additional WILDCAT! variables: monitor_type[5], max_sec[5], high_msg[5], door_opened[5], BYTE name_in_user Additional variables for general use by any system: short WILDCAT, protocol[15], security_level[5] See the CKIT.DOC for explanations and the compatibility chart. - clr_screen() was not properly handling NON_ANSI callers. fixed - Under certain circumstances, a parsing routine in CKIT could get hung up. fixed. - Reduction of code size by about 5% relative. - Fixed some documentation errors. In particular, you may want to reprint the open_door() page and progname variable page. Also there are new variables listed above in the doc file and the compatibility chart has been upgraded. - Look over the NEW CKITDEMO.C and CKITDEMO.H files. The demo demostrates some use of added features, (zmodem download, pcb, wildcat! etc). 13-Aug-90 v1.5A Release of version 1.5A I can't believe I did this. After telling everyone to make sure and not have debug_on in the released versions of their door, I released CKIT with debug on!. As a result, the keyboard timer and some other things would not work properly. This release with a code date 8/13/90 will work properly. 11-Aug-90 v1.5 Release of version 1.5 Ckit is now compatible with PCBoard version 12.0, 14.x-14.5, GAP BBS, and other BBS systems using the standard door.sys file. The level of compatiblity is up to the door author and the type of information needed. There is a lot of information available, but by keeping this to a minimum, the door author can write his door to be compatible with all the systems above with no extra instructions to the user of the door except for the PCBoard sysop to use either pcboard.sys or door.sys. (Version 12.0 would have to use pcboard.sys and all others use door.sys.) CKIT will automatically determine which file to read and which PCBoard version is in use. See the compatiblity section in this doc file for more information and a Variables Quick-Reference. - Added more features and cosmetics to the program's status line for the sysop's use... F8 - Return user to BBS. This was always there, I just forgot to document it. :) F5 - Shell to DOS ALT-X - Sets the PCBoard's exit to DOS after caller flag ALT-N - Sets the PCBoard's sysop on next after caller flag ALT-H - Display Help Screen on sysop status line, and next ALT-H will show com port status - Functions added are: dos_shell(char *) - Allow door author to shell to another program for execution if desired. See CKIT.DOC _debug_on(void); - Turns off keyboard timer and other things while door author is debugging his door. - Additional variables: short PCB, PCB12, expert, parity, *conferences, current_conference, caller_bday[8], main_dir[15], gen_dir[15], sysop_name[15], sysop_alias[15], page_length, ansi_ng, default_color[2], last_dir_scan[8], daily_files[4], total_doors[4], msgs_left[4], max_files[4], upload_Kbytes[10], download_Kbytes[10], dload_total[5], upload_total[5] - Added my own math routine so you no longer have to include MATH.LIB if you are using TC compiler. - Reduction of code size by about 20% relative. 25-Jul-90 v1.1 Release of version 1.1 This release was a little premature. I went ahead and released it since it did fix a couple of problems. "*" indicates a new feature. Pages in CKIT.DOC for display_file(), input(), purge_buffer(), check_CR(), check_keypress() have been updated/added and you may want to reprint these. Display_file() - a. It will now put a space before the filename when it reports a problem. b. The EOF is no longer displayed. c. display_file() will now correctly display text files that have ANSI codes embedded in the file. d. CTRL-K now works on the local keyboard. (The remote keyboard was OK) * e. display_file() will now return TRUE/FALSE to indicate whether a problem had occured. You can then check the C global variable _errno for cause of error. * f. Fixed problem when user.page_length was equal to 0. See the CKIT.DOC for hints on how to take advantage of this. 2. display_time() - Would not update the time used until after two carriage returns were entered. fixed 3. input() a. Control characters or any non-displayable characters below 1F hex will not increase the counter. This corrects the problem of being to backspace too far and erasing the prompts. * b. Each call to input() now will purge the buffer you wish to place keyboard input. You should no longer have to include the statement memset(buffer, 0, 21) before calling input(). * c. A new function purge_buffer will purge any buffer to NULLS by passing a pointer to the buffer and the size of the buffer. i.e purge_buffer(buffer, 0x80). This may or may not be useful but is available. NOTE: There is a seperate purge function for the serial port input buffer if you wish to purge it before calling input. See CKIT.DOC * d. New function available called check_keypress. Checks for any specific ASCII character. This function will return TRUE/FALSE as defined in CKIT.DOC. * e. Another new function called check_CR will check for a carriage return and return TRUE/FALSE. 4. get_nextpar() - Would only accept 2 stacked commands, fixed. While working on the get_nextpar() function, I went ahead and targeted it for some optimization along with the get_cmdline() function. The results are: get_nextpar() is now smaller and 7% faster. get_cmdline() is now smaller and 45% faster. Overall, with all the corrections and added functions the .obj file for CKIT is now 2% SMALLER than before. 25-Jun-90 v1.05 Release of version 1.05 Added support for 16550AN UART. The code will take advantage of 16550AN chip if present. Added caller log function. Begin including the medium library with Zip. This was done because of the self-registering feature. Took out time limit that CKIT originally had. Future releases will not have any limitations. 20-Jun-90 v1.0 Release of version 1.0C Fixed another minor problem where the assembler I used had converted all my functions to uppercase in the .obj file. I thought the default was to not do that but as it turns out it wasn't. Now all the library function names/variables are the right case. 16-Jun-90 v1.0 Release of version 1.0B 01-Jun-90 v1.0 Release of version 1.0 01-May-90 v1.0 Initial BETA testing as CKIT10á.ZIP Beta 1.0 release. The next release of CKIT, I predict, should have about a 15% to 20% reduction in code size. If you find any problems with CKIT, please contact me at the phone numbers/address above.