home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************
- * FILE CKIT.H *
- * Created 11-FEB-1990 Rickie W. Belitz *
- * 820 Brentwood Drive *
- * Maryville, Tennessee 37801 *
- * BBS (615) 982-6512 *
- * (615) 982-6537 *
- * (615) 982-8723 *
- * *
- * Include file for CKIT - DOOR Toolkit v1.7 *
- * *
- * *
- ****************************************************************************/
- /******************************************************************************
- * INCLUDE files needed *
- *******************************************************************************/
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <dos.h>
- #include <time.h>
- #include <string.h>
- #include <stdarg.h>
- #include <share.h>
- #include <io.h>
- #define MICROSOFT 1
- #define TURBOC 2
- /****************************************************************************
- * IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF *
- ****************************************************************************/
- #if COMPILER == MICROSOFT
- #include <malloc.h>
- #else
- #if COMPILER == TURBOC
- #include <alloc.h>
- #endif
- #endif
-
- /****************************************************************************
- * ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF *
- ****************************************************************************/
-
- /* data type definitions */
- typedef unsigned char BYTE; /* Define BYTE to mean unsigned char */
-
- /* logical constants */
- #define ERR -1
- #define EVER ;; /* Used in "for (EVER)" */
- #define FALSE 0
- #define TRUE 1
- #define NOT_READY -1
- #define NO_KEY 0
- #define EXITDOOR 0 /* User exited Door */
- #define NOCARRIER 1 /* Carrier lost */
- #define TIMEOUT 2 /* Keyboard timeout */
- #define SYSOP_O 3 /* Sysop request */
- #define SYSTEMTIME 4 /* System time elapse */
- #define LOGOFF 5 /* Normal logoff */
- /******************************************************************************
- * ANSI color table indexes *
- *******************************************************************************/
- #define dkblue 1
- #define dkgreen 2
- #define dkcyan 3
- #define dkred 4
- #define dkviolet 5
- #define magenta 5
- #define brown 6
- #define grey 7
- #define dkgrey 8
- #define blue 9
- #define green 10
- #define cyan 11
- #define red 12
- #define violet 13
- #define yellow 14
- #define white 15
-
- /******************************************************************************
- * External variable declarations *
- ******************************************************************************/
- extern BYTE ck_option; /* Defines how the user was logged off */
- extern int ck_DUMP_USER; /* Set to log off user from door */
- extern BYTE ck_DOTS; /* Echo dots with input() */
-
- extern char ck_system_time_HHMMSS[]; /* System time */
- extern char ck_todays_date_MMDDYY[]; /* System date */
- extern void ck_adjust_time_allowed(short);
- extern BYTE ck_cmdline[]; /* Used to hold user input */
- extern char ck_par[]; /* Used to parse next cmd to */
- extern short ck_linenum; /* Number of lines displayed */
- extern short ck_graphics; /* ANSI in use */
- extern short ck_display; /* Local display on/off */
- extern short ck_local; /* Local mode indicator */
- extern short ck_printer; /* Printer online/offline */
- extern short ck_pagebell; /* Page bell on/off */
- extern short ck_callalarm; /* Caller alarm on/off */
- extern short ck_port; /* Port number in use */
- extern short ck_error_connection; /* Error correction modem? */
- extern size_t ck_scan_code; /* Keycodes for non-standard key */
- /* F1 - F10, arrow keys etc */
- /* Holds received all keycodes */
-
- /* misc. see CKIT.DOC for more information on these */
- extern short ck_time_on, ck_prev_used, ck_time_limit, ck_dload_limit,
- ck_time_added, ck_time_credit, ck_min_left,ck_event_active,
- ck_event_slide,ck_user_record, ck_ansi_ng, ck_record_lock,
- ck_PCB12, ck_PCB, ck_WILDCAT, ck_GENERIC,ck_GAP, ck_RBBS,
- ck_expert, ck_parity, ck_current_conf, ck_chatmode,
- ck_uart_base, ck_irq, ck_non_ibm, ck_FOSSIL, ck_silent,
- ck_NO_FKEYS;
-
- extern short ck_logoff_color; /* Log off message color */
- extern BYTE *ck_conferences; /* pointer to conferences registered in */
- extern BYTE *ck_pcbsysbuf; /* pointer to buffer holding pcboard.sys */
- extern char **ck_logoff_msgs; /* pointer to log off messages */
- extern char **ck_gen_msgs; /* pointer to general internal messages */
-
- /* C strings containing information read from BBS system files */
- extern BYTE ck_firstname[16];
- extern BYTE ck_fullname[26];
- extern BYTE ck_bps_open[6];
- extern BYTE ck_baud_rate[6];
- extern BYTE ck_sysop_next[2];
- extern BYTE ck_netchat[2];
- extern BYTE ck_password[13];
- extern BYTE ck_language[6];
- extern BYTE ck_event_time[6];
- extern BYTE ck_aport[2];
- extern BYTE ck_BBSname[63];
-
- extern char ck_node[3];
-
- extern char ck_upload_total[5]; /* Total files downloaded */
- extern char ck_dload_total[5]; /* Total files uploaded */
- extern char ck_daily_bytes[4]; /* Total Daily K bytes */
- extern char ck_download_Kbytes[10]; /* Total K bytes downloaded */
- extern char ck_upload_Kbytes[10]; /* Total K bytes uploaded */
- extern BYTE ck_time_logged[6];
- extern char ck_caller_bday[8]; /* Caller's birthday */
- extern char ck_main_dir[80]; /* Main bbs system path */
- extern char ck_gen_dir[80]; /* BBS system general path */
- extern char ck_sysop_name[15]; /* Sysop first name */
- extern char ck_sysop_alias[15]; /* Sysop's alias name */
- extern char ck_last_file_scan[8]; /* Last new file scan */
- extern char ck_max_files[4]; /* Max files allowed to dl */
- extern char ck_daily_files[4]; /* Number of files today */
- extern char ck_total_doors[4]; /* Total doors opened */
- extern char ck_msgs_left[4]; /* Number of messages left */
- extern BYTE ck_page_length; /* User page length */
- extern char ck_protocol[15]; /* User's default protocol */
- extern char ck_security_level[5]; /* User's security level */
-
-
- /* Below is info specific to WILDCAT! users */
- extern char ck_monitor_type[5]; /* MONO/COLOR (Graphics On/Off) */
- extern char ck_max_sec[5]; /* Maximum security allowed */
- extern char ck_high_msg[10]; /* High message number read */
- extern BYTE ck_name_in_use; /* True/False Name in use on other node */
- extern char ck_door_opened[5]; /* Door user opened */
-
-
- /* Below is info you will need to define in your door program */
- extern short ck_FORCEOFFHOOK; /* Set to TRUE or FALSE */
- extern short ck_LOGOFFMSG; /* Set to TRUE or FALSE */
- extern short ck_USERSFILE; /* Set true if you want user file info */
- /* PCBoard systems only */
- extern char ck_progname[21]; /* Put you program name here. define */
- /* the string in YOUR program */
- /* MAX. 20 chars. See CKITDEMO.H */
- /* for example */
- extern char ck_error_msg11[40]; /* Display file error msg, if you want */
- /* to change it...MAX 40 chars! */
-
-
- /******************************************************************************
- * Structure declarations (PCBoard 14.5 only) *
- ******************************************************************************/
- typedef struct pcbuserstype {
-
- char name[26]; /* First and Last name */
- char city[25]; /* City and State */
- char pwrd[13]; /* Password */
- char bphone[14]; /* Business/Data phone number */
- char phone[14]; /* Home phone number */
- char last_date[7]; /* Last date on in (YYMMDD) format */
- char last_time[6]; /* Last logon time in HH:MM) format */
- char expert[2]; /* Expert Mode (Y or N) */
- char protocol[2]; /* Protocol type */
- BYTE packed_byte; /* Bit packed flags */
- char filedate[7]; /* Last DIR look date (YYMMDD) format */
- BYTE security; /* Security level of user */
- short total_calls; /* Number of times on */
- BYTE page_length; /* Page length */
- short uploads; /* Number of Uploads */
- short downloads; /* Number of Downloads */
- double dload_bytes; /* Daily dload bytes so far */
- char comment1[31]; /* User maintained comment */
- char comment2[31]; /* Sysop maintained comment */
- short time_used; /* Elapsed time on system */
- char expire_date[7]; /* Subscription Reg. Date (YYMMDD) */
- BYTE expire_level; /* Expired security level */
- BYTE current_conf; /* Area number last in */
- BYTE conferences[6]; /* Conferences area allowed in */
- BYTE expire_conf[6]; /* Expired conference areas */
- BYTE scan_conf[6]; /* Conferences desired for mail scan */
- double dload_total; /* Total bytes downloaded - all calls */
- double upload_total; /* Total bytes uploaded - all calls */
- char delete_user[2]; /* Delete user flag (Y or N) */
- unsigned long last_msg_read; /* Last read msg Main area (default) */
- long last_read[39]; /* Last Read Message Area pointers */
- BYTE space2[15]; /* Reserved */
-
- };
- extern struct pcbuserstype ck_user;
-
- /****************************************************************************
- * IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF *
- ****************************************************************************/
- /******************************************************************************
- * Function prototypes *
- ******************************************************************************/
- void s_printf(char *,...); /* High level variable sio puts */
-
- /* COMMENT
- Copy this function to your door source code to create the s_printf() func.
- See ckitdemo.c. Default buffer is 82 chars, modify as needed.
-
- void s_printf(char *s_format,...) {
- va_list arg_pointer;
- char buffer[82];
- va_start(arg_pointer, s_format);
- vsprintf(buffer, s_format, arg_pointer);
- s_puts(buffer);
- va_end(arg_pointer);
- }
-
- */
-
- /******************************************************************************
- * External function prototypes *
- ******************************************************************************/
-
- extern void ck_clear_screen(void);
- extern void ck_set_r_c(short, short);
- extern short ck_open_door(char *, ...);
- extern void ck_close_door(void);
- extern void ck_s_putv(); /* High level send variable string I/O function */
- extern void ck_s_puts(char *); /* High level send string I/O function */
- extern void ck_s_putsn(char *); /* High level send string LOCAL only */
- extern void ck_s_putstd(char *); /* High level send string using STD output */
- extern void ck_s_putc(BYTE); /* High level send char. I/O function */
- extern void ck_newline(void); /* send a Carriage return, line feed */
- extern void ck_clear_row(short); /* Clear a given row of screen */
- extern void ck_color(short); /* Select ANSI color to use */
- extern void ck_pos_cursor(short, short); /* Position cursor using ANSI */
- extern void ck_clr_screen(void); /* Clear local/remote screens */
- extern void ck_back_space(short); /* Destructive backspace local/remote */
- extern void ck_clear_eol(void); /* Clear to end of line local/remote */
- extern short ck_display_file(char *); /* Display file local/remote */
- extern void ck_prompt_def(char *, char *); /* Display prompt, with default string */
- extern void ck_get_def(char *, char *); /* Same as prompt_def, but gets input */
- extern void ck_get_defn(char *, char *); /* Same as get_def, appends "(Enter)=none?" */
- extern void ck_get_defen(char *); /* Same as get_def, but default is always "(Enter=none? " */
- extern void ck_get_defyn(char *, short); /* Get input with yes/no default based on short value */
- extern short ck_nomore(void); /* prompt more?, returns TRUE if no or */
- extern size_t ck_inkey(void); /* Read char. from local/remote */
- extern size_t ck_getkey(void); /* Read char. from local keyboard */
- extern short ck_wait_keypress(void); /* Waits for any key press, high level */
- extern void ck_force_enter(void); /* Force user to press enter key to continue */
- extern void ck_get_cmdline(void);
- extern void ck_get_cmdline_raw(short); /* Get cmdline, erase prompt based on short */
- extern void ck_input(BYTE *, short); /* Read input into cmdline, local/remote */
- extern short ck_keystat(); /* Check if key waiting */
- extern BYTE ck_receive(void); /* Get character receieved from the receive buffer */
- extern BYTE ck_sio_getbyte (void); /* Returns byte from port, if available */
- extern char ck_get_nextpar(void);
- extern void ck_check_time_left(void); /* Check if user time is up, sets DUMPUSER */
- extern short ck_mins_left_system(void); /* Returns number of minutes left on system */
- extern short ck_system_time_used(void); /* Returns mins since door was opened */
- extern void ck_adjust_time_allowed(short); /* Add/Subtract user time left */
- extern short ck_event_minutes(void); /* Return minutes from midnight of event */
- extern void ck_lower_dtr(void); /* Lower DTR line on serial port */
- extern void ck_raise_dtr(void); /* Raise DTR line on serial port */
- extern void ck_force_offhook(void); /* Force modem to hangup, go offhook */
- extern BYTE ck_check_cd(void); /* Return CARRIER status, Non-Zero = CARRIER */
- extern void ck_transmit_data(char *); /* Xmit to remote only, with CARRIER detect */
- extern short ck_transmit_modem(char *); /* Xmit to modem, WITHOUT CARRIER detect */
- extern size_t ck_tqueue_len(void); /* Returns length (in bytes) of serial xmit buffer */
- extern void ck_flush_rqueue(void); /* Flush serial input buffer */
- extern void ck_ck_wait(short); /* Wait delay in seconds */
- extern short ck_check_CR(void); /* Check for Carriage Return, TRUE/FALSE */
- extern short ck_check_keypress(BYTE); /* Check for any ASCII code press */
- extern void ck_purge_buffer(BYTE *, short); /* Purge buffer to NULLS */
- extern void ck_debug_on(void); /* Disable keyboard timer, carrier */
- extern void ck_debug_off(void); /* Disable keyboard timer, carrier */
- extern void ck_carrier_off(void); /* Same as debug on */
- extern void ck_carrier_on(void); /* Same as debug off */
- extern short ck_dos_shell(char *, char *); /* Execute external program */
- extern void ck_set_r_c(short, short); /* Position cursor on local console */
- extern short ck_update_user(); /* Update user record */
- extern short ck_check_CTRL_K(void); /* Check for CTRL-K press */
- extern void ck_CtrlK_ON(void); /* Enable CTRL-K checking (default) */
- extern void ck_CtrlK_OFF(void); /* Disable CTRL-K checking */
- extern void ck_set_kybd_time(BYTE, BYTE); /* Set keyboard timeouts */
- extern short ck_set_ANSI(short); /* Turn on ANSI compability */
-
- /******************************************************************************
- * Structure to use with CKIT for BBS's not supported by CKIT *
- ******************************************************************************/
- typedef struct ckitgeneric {
- char port[6]; /* COM:? */
- short min_left; /* minutes left */
- };
-
- struct ckitgeneric ck_gen; /* You can name this whatever you want */
-
- extern short ck_NOSYSTEM; /* Set true if want C-kit open_door() */
- /* to obtain information from ck_gen */
- /* ckitgeneric structure */
-
- /****************************************************************************
- * IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF IF *
- ****************************************************************************/
- /* Turbo C has a delay() function and does the same thing. */
- #if COMPILER == MICROSOFT /* Use Ckit's delay if not using TURBOC */
-
- extern void ck_delay(short); /* Gen. Purpose delay X 55 milliseconds */
-
- #endif
-
- /****************************************************************************
- * ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF *
- ****************************************************************************/
-
- /******************************************************************************
- ************************ E N D OF M O D U L E ******************************/
-