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 option; /* Defines how the user was logged off */
- extern int DUMP_USER; /* Set to log off user from door */
-
- extern char system_time_HHMMSS[]; /* System time */
- extern char todays_date_MMDDYY[]; /* System date */
- extern void adjust_time_allowed(short);
- extern BYTE cmdline[]; /* Used to hold user input */
- extern char par[]; /* Used to parse next cmd to */
- extern short linenum; /* Number of lines displayed */
- extern short graphics; /* ANSI in use */
- extern short display; /* Local display on/off */
- extern short local; /* Local mode indicator */
- extern short printer; /* Printer online/offline */
- extern short pagebell; /* Page bell on/off */
- extern short callalarm; /* Caller alarm on/off */
- extern short port; /* Port number in use */
- extern short error_connection; /* Error correction modem? */
- extern size_t scan_code; /* Keycodes for non-standard key */
- /* F1 - F10, arrow keys etc */
- /* Holds received all keycodes */
- extern short logoff_color; /* Log off message color */
- extern char exit_msg[]; /* Exit door msg. MAX 40 chars */
- extern char logoff_msg[]; /* Log off message. MAX 40 chars */
-
- /* misc. see CKIT.DOC for more information on these */
- extern short time_on,prev_used,time_limit,dload_limit,
- time_added,time_credit, min_left,event_active,event_slide,
- user_record, ansi_NG, record_lock, PCB12, PCB, WILDCAT, GENERIC,
- GAP, RBBS, expert, parity, current_conference, chatmode;
-
- extern BYTE *conferences; /* pointer to conferences registered in */
- extern BYTE *pcbsysbuf;
- /* C strings containing information read from PCBoard.sys */
-
- extern BYTE firstname[16];
- extern BYTE fullname[26];
- extern BYTE bps_open[6];
- extern BYTE baud_rate[6];
- extern BYTE sysop_next[2];
- extern BYTE netchat[2];
- extern BYTE password[13];
- extern BYTE language[6];
- extern BYTE event_time[6];
- extern BYTE aport[2];
- extern BYTE BBSname[63];
-
- extern char node[3];
-
- extern char upload_total[5]; /* Total files downloaded */
- extern char dload_total[5]; /* Total files uploaded */
- extern char daily_bytes[4]; /* Total Daily K bytes */
- extern char download_Kbytes[10]; /* Total K bytes downloaded */
- extern char upload_Kbytes[10]; /* Total K bytes uploaded */
- extern BYTE time_logged[6];
- extern char caller_bday[8]; /* Caller's birthday */
- extern char main_dir[15]; /* Main bbs system path */
- extern char gen_dir[15]; /* BBS system general path */
- extern char sysop_name[15]; /* Sysop first name */
- extern char sysop_alias[15]; /* Sysop's alias name */
- extern char last_file_scan[8]; /* Last new file scan */
- extern char max_files[4]; /* Max files allowed to dl */
- extern char daily_files[4]; /* Number of files today */
- extern char total_doors[4]; /* Total doors opened */
- extern char msgs_left[4]; /* Number of messages left */
- extern BYTE page_length; /* User page length */
- extern char protocol[15]; /* User's default protocol */
- extern char security_level[5]; /* User's security level */
-
-
- /* Below is info specific to WILDCAT! users */
- extern char monitor_type[5]; /* MONO/COLOR (Graphics On/Off) */
- extern char max_sec[5]; /* Maximum security allowed */
- extern char high_msg[10]; /* High message number read */
- extern BYTE name_in_use; /* True/False Name in use on other node */
- extern char door_opened[5]; /* Door user opened */
-
-
- /* Below is info you will need to define in your door program */
- extern short FORCEOFFHOOK; /* Set to TRUE or FALSE */
- extern short LOGOFFMSG; /* Set to TRUE or FALSE */
- extern short USERSFILE; /* Set true if you want user file info */
- /* PCBoard systems only */
- extern char progname[21]; /* Put you program name here. define */
- /* the string in YOUR program */
- /* MAX. 20 chars. See CKITDEMO.H */
- /* for example */
- extern char error_msg11[40]; /* Display file error msg, if you want */
- /* to change it...MAX 40 chars! */
-
- /******************************************************************************
- * Structure declarations *
- ******************************************************************************/
-
- 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 */
- char space1; /* Reserved */
- 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[4][39]; /* Last Read Message Area pointers */
- BYTE space2[15]; /* Reserved */
-
- };
-
-
- extern struct pcbuserstype user;
-
- /******************************************************************************
- * 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 clear_screen(void);
- extern void set_r_c(short, short);
- extern void open_door();
- extern void close_door(void);
- extern void s_putv(); /* High level send variable string I/O function */
- extern void s_puts(char *); /* High level send string I/O function */
- extern void s_putsn(char *); /* High level send string LOCAL only */
- extern void s_putstd(char *); /* High level send string using STD output */
- extern void s_putc(BYTE); /* High level send char. I/O function */
- extern void newline(void); /* send a Carriage return, line feed */
- extern void clear_row(short); /* Clear a given row of screen */
- extern void color(short); /* Select ANSI color to use */
- extern void pos_cursor(short, short); /* Position cursor using ANSI */
- extern void clr_screen(void); /* Clear local/remote screens */
- extern void back_space(short); /* Destructive backspace local/remote */
- extern void clear_eol(void); /* Clear to end of line local/remote */
- extern short display_file(char *); /* Display file local/remote */
- extern void prompt_def(char *, char *); /* Display prompt, with default string */
- extern void get_def(char *, char *); /* Same as prompt_def, but gets input */
- extern void get_defn(char *, char *); /* Same as get_def, appends "(Enter)=none?" */
- extern void get_defen(char *); /* Same as get_def, but default is always "(Enter=none? " */
- extern void get_defyn(char *, short); /* Get input with yes/no default based on short value */
- extern short nomore(void); /* prompt more?, returns TRUE if no or */
- extern size_t inkey(void); /* Read char. from local/remote */
- extern size_t getkey(void); /* Read char. from local keyboard */
- extern short wait_keypress(void); /* Waits for any key press, high level */
- extern void force_enter(void); /* Force user to press enter key to continue */
- extern void get_cmdline(void);
- extern void get_cmdline_raw(short); /* Get cmdline, erase prompt based on short */
- extern void input(BYTE *, short); /* Read input into cmdline, local/remote */
- extern short keystat(); /* Check if key waiting */
- extern BYTE receive(void); /* Get character receieved from the receive buffer */
- extern BYTE sio_getbyte (void); /* Returns byte from port, if available */
- extern char get_nextpar(void);
- extern void display_time(void); /* Display XXXX used, XXXX left (x = mins */
- extern void check_time_left(void); /* Check if user time is up, sets DUMPUSER */
- extern void adjust_time_allowed(short); /* Add/Subtract user time left */
- extern short event_minutes(void); /* Return minutes from midnight of event */
- extern void lower_dtr(void); /* Lower DTR line on serial port */
- extern void raise_dtr(void); /* Raise DTR line on serial port */
- extern void force_offhook(void); /* Force modem to hangup, go offhook */
- extern BYTE check_cd(void); /* Return CARRIER status, Non-Zero = CARRIER */
- extern void transmit_data(char *); /* Xmit to remote only, with CARRIER detect */
- extern short transmit_modem(char *); /* Xmit to modem, WITHOUT CARRIER detect */
- extern size_t tqueue_len(void); /* Returns length (in bytes) of serial xmit buffer */
- extern void flush_rqueue(void); /* Flush serial input buffer */
- extern void ck_wait(short); /* Wait delay in seconds */
- extern short check_CR(void); /* Check for Carriage Return, TRUE/FALSE */
- extern short check_keypress(BYTE); /* Check for any ASCII code press */
- extern void purge_buffer(BYTE *, short); /* Purge buffer to NULLS */
- extern void debug_on(void); /* Disable keyboard timer, carrier */
- extern void debug_off(void); /* Disable keyboard timer, carrier */
- extern void carrier_off(void); /* Same as debug on */
- extern void carrier_on(void); /* Same as debug off */
- extern short dos_shell(char *); /* Execute external program */
- extern void set_r_c(short, short); /* Position cursor on local console */
- extern short update_user(); /* Update user record */
-
-
- /****************************************************************************
- * 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 by the same name and does the same thing. */
- #if COMPILER == MICROSOFT /* Use Ckit's delay if not using TURBOC */
-
- extern void _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 ******************************/
-