Category : BBS Programs+Doors
Archive   : TELE2MAX.ZIP
Filename : TELEGARD.H

 
Output of file : TELEGARD.H contained in archive : TELE2MAX.ZIP
/*****************************************************************************/
/*> <*/
/*> Telegard Bulletin Board System <*/
/*> Copyright 1988-1991 by Martin Pollard. All rights reserved. <*/
/*> <*/
/*> Data Types and File Structures <*/
/*> <*/
/*****************************************************************************/

#ifndef __TELEGARD_H
#define __TELEGARD_H

#define BBS_VER "2.7" /* current version number */

#define MAXBOARDS 256 /* max # of message bases */
#define MAXUBOARDS 256 /* max # of file bases */
#define MAXPROTOCOLS 120 /* max # of transfer protocols */
#define MAXEVENTS 10 /* max # of scheduled events */
#define MAXARCS 8 /* max # of archivers */
#define MAXMENUCMDS 50 /* max # of menu commands */
#define NUMVOTEAS 10 /* max # of voting question answers */
#define NUMVOTEQS 20 /* max # of voting questions */

#define ATNO 0 /* no anonymous posts allowed */
#define ATYES 1 /* anonymous posts are allowed */
#define ATFORCED 2 /* ALL posts are forced anonymous */
#define ATDEARABBY 3 /* "Dear Abby" message base */
#define ATANYNAME 4 /* users can post as ANY name they want */

#define MLOCAL 0 /* local message base */
#define MNETMAIL 1 /* NetMail message base */
#define MECHOMAIL 2 /* EchoMail message base */
#define MGROUPMAIL 3 /* GroupMail message base */

#define MPUBLIC 0 /* post public messages only */
#define MPRIVATE 1 /* post private messages only */

/*---------------------------------------------------------------------------*/

/*
** Turbo Pascal equivalent types:
**
** Turbo Pascal ANSI C (PC) Description
** ------------ ----------- -----------
** byte char 8-bit unsigned (*)
** char char 8-bit unsigned (*)
** integer int 16-bit signed
** longint long 32-bit signed
** string char 8-bit unsigned (*)
** word unsigned 16-bit unsigned
**
** (*) You should set your C compiler to force char values to be
** unsigned during compilation. This will allow programs
** compiled with TELEGARD.H to work properly (also, unsigned
** chars will allow access to the full 8-bit character set of
** the IBM PC). Consult your compiler's documentation for
** information on forcing char values to be unsigned.
*/

typedef char acstring[21]; /* Access Control System string */
typedef char acrq[4]; /* AR flags */
typedef char clrs[2][10]; /* color records: */
/* [0][x] = mono */
/* [1][x] = color */
typedef int secrange[256]; /* security tables */

/*****************************************************************************/
/* */
/* The format of the packed date/time structure is as follows: */
/* */
/* Byte #0 | Byte #1 | Byte #2 */
/* ===============|===============|=============== */
/* 7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0 */
/* `-----------' `-------------' `-----' `-------' */
/* RESERVED Year Month Day */
/* (8 bits) (4 bits) (5 bits) */
/* */
/* Byte #3 | Byte #4 | Byte #5 */
/* ===============|===============|=============== */
/* 7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0 */
/* `-------' `---------' `---------' `-----------' */
/* Hour Minute Second 1/100 Seconds */
/* (5 bits) (6 bits) (6 bits) (7 bits) */
/* */
/*****************************************************************************/

typedef char cpackdatetime[6]; /* packed date/time */
typedef char mzscanr[MAXBOARDS / 8]; /* msg base scan flags */
typedef char fzscanr[MAXUBOARDS / 8]; /* file base scan flags */
typedef cpackdatetime mhireadr[MAXBOARDS]; /* last msg read table */

typedef struct /* user AC flags */
{
unsigned rlogon : 1; /* L - Restricted to one call a day */
unsigned rchat : 1; /* C - Can't page the SysOp */
unsigned rvalidate : 1; /* V - Posts marked unvalidated */
unsigned ramsg : 1; /* A - Can't change the AutoMessage */
unsigned rpostan : 1; /* * - Can't post anonymously */
unsigned rpostpvt : 1; /* E - Can't post private */
unsigned rpostnet : 1; /* N - Can't post NetMail */
unsigned rpost : 1; /* P - Can't post at all */
unsigned rvoting : 1; /* K - Can't vote */
unsigned rmsg : 1; /* M - Force mail deletion */
unsigned rreserved : 1; /* RESERVED */
unsigned onekey : 1; /* onekey input mode */
unsigned avatar : 1; /* user has AVATAR */
unsigned pause : 1; /* pause */
unsigned novice : 1; /* user is at novice help level */
unsigned ansi : 1; /* user has ANSI */
unsigned color : 1; /* user has color */
unsigned alert : 1; /* alert SysOp when user logs on */
unsigned smw : 1; /* short-message waiting for user */
unsigned nomail : 1; /* user mail-box is closed */
unsigned fnodlratio : 1; /* 1 - No UL/DL ratio */
unsigned fnopostratio : 1; /* 2 - No post/call ratio */
unsigned fnofilepts : 1; /* 3 - No file points checking */
unsigned fnodeletion : 1; /* 4 - Protection from deletion */
}
uflags;

/*---------------------------------------------------------------------------*/

typedef struct /* *.MIX status flags */
{
unsigned deleted : 1; /* is message deleted? */
unsigned unvalidated : 1; /* is message unvalidated? */
unsigned permanent : 1; /* is message permanent? */
}
msgindexstatr;

typedef struct /* *.MIX Fido message attributes */
{
unsigned private : 1; /* private */
unsigned crash : 1; /* crash mail */
unsigned received : 1; /* received */
unsigned sent : 1; /* sent */
unsigned fattach : 1; /* file attached */
unsigned intransit : 1; /* in-transit */
unsigned orphan : 1; /* orphaned */
unsigned kill : 1; /* kill after sending */
unsigned local : 1; /* local message */
unsigned hold : 1; /* hold for pickup */
unsigned unused : 1; /* **UNUSED** */
unsigned freq : 1; /* file request */
unsigned rreq : 1; /* return receipt request */
unsigned receipt : 1; /* return receipt message */
unsigned areq : 1; /* audit request */
unsigned fureq : 1; /* file update request */
}
fidoattrib;

typedef struct /* *.MIX Fido message attributes (extended) */
{
unsigned direct : 1; /* direct to recipient */
unsigned immediate : 1; /* immediate delivery */
unsigned delsent : 1; /* delete when sent */
}
fidoxattrib;

typedef struct /* *.MIX : Message index records */
{
long hdrptr; /* message header pointer */
int isreplyto; /* reply-to message number (-1=none) */
cpackdatetime isreplytoid; /* packed date/time of replied message */
int numreplies; /* number of replies to THIS message */
cpackdatetime msgdate; /* message date/time (packed) */
char msgdowk; /* message day of week (0=Sun..6=Sat) */
fidoattrib attrib; /* Fido msg attributes (see above) */
fidoxattrib xattrib; /* extended Fido attribs (see above) */
msgindexstatr flags; /* status flags (see above) */
}
msgindexrec;

typedef struct /* *.BRD from/to information */
{
char anon; /* anonymous type (0=no, 1/2=yes, 3="Abby", */
/* 4="Problemed Person", 5=any name */
unsigned usernum; /* user number (0=none) */
unsigned zone; /* zone (0=none) */
unsigned net; /* net (0=none) */
unsigned node; /* node (0=none) */
unsigned point; /* point (0=none) */
char name[37]; /* user name (all caps) if anon=3..5, */
/* otherwise null ('') */
char real[37]; /* user real name (all caps) */
char alias[37]; /* user alias (all caps) */
}
fromtoinfo;

typedef struct /* *.BRD : Message header records */
{
long msgptr; /* pointer to message text */
unsigned msglength; /* length of message text */
unsigned cost; /* cost to send message (NetMail only) */
fromtoinfo fromi; /* from user information */
fromtoinfo toi; /* to user information */
char title[72]; /* title of message */
char datetime[20]; /* Net/Echo/Group original msg date */
}
mheaderrec;

/*---------------------------------------------------------------------------*/

typedef struct /* *.DIR status flags */
{
unsigned notval : 1; /* if file is not validated */
unsigned isrequest : 1; /* if file is offline */
unsigned resumelater : 1; /* if file is resume-later */
unsigned hatch : 1; /* if file has been hatched via SDS */
}
filstat;

typedef struct /* *.DIR : File records */
{
char filename[13]; /* filename */
char description[61]; /* file description */
int filepoints; /* file points */
int nacc; /* number DLs */
char res1; /* RESERVED */
int blocks; /* # 128 byte blks */
int owner; /* ULer of file */
char stowner[37]; /* ULer's name */
char date[9]; /* date ULed */
int daten; /* numeric date ULed */
/* (# days since 01/01/85) */
long vpointer; /* pointer to verbose descr (-1=none) */
filstat filestat; /* file status */
char res2[10]; /* RESERVED */
}
ulfrec;

/*---------------------------------------------------------------------------*/

typedef struct /* *.MNU status flags */
{
unsigned clrscrbefore : 1; /* C: clear screen before menu display */
unsigned dontcenter : 1; /* D: don't center the menu titles! */
unsigned nomenuprompt : 1; /* N: no menu prompt whatsoever? */
unsigned forcepause : 1; /* P: force a pause before menu display? */
unsigned autotime : 1; /* T: is time displayed automatically? */
}
mnuflags;

typedef struct /* *.MNU : Menu records */
{
char menuname[3][101]; /* menu name */
char directive[13]; /* help file displayed */
char tutorial[13]; /* tutorial help file */
char menuprompt[121]; /* menu prompt */
acstring acs; /* access requirements */
char password[16]; /* password required */
char fallback[9]; /* fallback menu */
char forcehelplevel; /* forced help level for menu */
char gencols; /* generic menus: # of columns */
char gcol[3]; /* generic menus: colors */
mnuflags menuflags; /* menu status variables */
}
menurec;

typedef struct /* *.MNU command status flags */
{
unsigned hidden : 1; /* H: is command ALWAYS hidden? */
unsigned unhidden : 1; /* U: is command ALWAYS visible? */
}
cmdflags;

typedef struct /* *.MNU : Command records */
{
char ldesc[71]; /* long command description */
char sdesc[36]; /* short command description */
char ckeys[15]; /* command-execution keys */
acstring acs; /* access requirements */
char cmdkeys[3]; /* command keys: type of command */
char mstring[51]; /* MString: command data */
cmdflags commandflags; /* command status variables */
}
commandrec;

/*---------------------------------------------------------------------------*/

typedef struct /* ZLOG.DAT : System log */
{
char date[9]; /* entry date */
int userbaud[5]; /* new user logon BPS rates */
/* (300,1200,2400,4800,9600+) */
int active; /* % activity */
int calls; /* # of calls */
int newusers; /* # of new users */
int pubpost; /* # of public posts */
int privpost; /* # of private posts */
int netpost; /* # of NetMail posts */
int criterr; /* # of critical errors */
int uploads; /* # of uploads */
int downloads; /* # of downloads */
long uk; /* amount ULed in K */
long dk; /* amount DLed in K */
}
zlogrec;

/*---------------------------------------------------------------------------*/

typedef struct /* BOARDS.DAT status flags */
{
unsigned mbrealname : 1; /* real names are forced */
unsigned mbvisible : 1; /* visible to users w/o access */
unsigned mbfilter : 1; /* filter ANSI/8-bit ASCII */
unsigned mbstrip : 1; /* strip Telegard message codes */
unsigned mbaddtear : 1; /* add tear/origin lines */
unsigned mbtopstar : 1; /* Top Star base (GroupMail only) */
unsigned mbimmune : 1; /* immune to "twitting" */
unsigned mbinternet : 1; /* special Internet (UUCP) handling */
}
mbflags;

typedef struct /* BOARDS.DAT : Message base records */
{
char name[41]; /* message base description */
char filename[9]; /* BRD/MIX data filename */
char msgpath[41]; /* messages pathname */
char password[21]; /* base password */
acstring acs; /* access requirement */
acstring postacs; /* post access requirement */
unsigned maxmsgs; /* max message count */
char anonymous; /* anonymous type */
mbflags mbstat; /* message base status vars */
char mbtype; /* message base type */
char mbpost; /* message base posting type */
char origin[51]; /* origin line */
char kludge_color; /* color of kludge line */
char quote_color; /* color of quoted line */
char tear_color; /* color of tear line */
char origin_color; /* color of origin line */
unsigned zone; /* network address */
unsigned net; /* (zone:net/node.point) */
unsigned node;
unsigned point;
}
boardrec;

/*---------------------------------------------------------------------------*/

typedef struct /* CONFRENC.DAT : Conference data */
{
struct
{
acstring acs; /* access requirement */
char name[41]; /* name of conference */
}
conference[27];
}
confrec;

/*---------------------------------------------------------------------------*/

typedef struct /* EVENTS.DAT status flags */
{
unsigned active : 1; /* event is active */
unsigned busyduring : 1; /* take phone off-hook during event */
unsigned monthly : 1; /* event is executed monthly */
unsigned forced : 1; /* event is forced */
}
eventflags;

typedef struct /* EVENTS.DAT : Scheduled event records */
{
eventflags flags; /* status flags */
char description[31]; /* description */
char etype; /* event type: */
/* A:CS, C:hat, D:OS, E:xternal, P:ack */
char execdate[41]; /* event data: */
/* ACS: ACS command */
/* DOS: DOS command */
/* Ext: ERRORLEVEL to exit BBS with */
/* (irrelevant for all other types) */
int exectime; /* execution time (mins after midnight) */
int duration; /* length of time event takes (minutes) */
char execdays; /* monthly: day of month (1-28) */
/* daily: execution days (bitwise) */
char lastexec[9]; /* date event last executed */
int lastexecn; /* date event last executed */
/* (days since 01/01/85) */
}
eventrec;

/*---------------------------------------------------------------------------*/

typedef struct /* GFILES.DAT status flags */
{
unsigned tbunhidden : 1; /* whether *VISIBLE* to users w/o access */
unsigned tbreserved1 : 1; /* RESERVED FLAG #1 */
unsigned tbreserved2 : 1; /* RESERVED FLAG #2 */
}
tbflags;

typedef struct /* GFILES.DAT : Text-file records */
{
char title[41]; /* title */
char filen[13]; /* filename */
char gdate[9]; /* date of Tfile / Tfile base */
int gdaten; /* numeric date for fast calculation */
acstring acs; /* access requirement */
acstring ulacs; /* upload to base access requirement */
tbflags tbstat; /* text-file base status vars */
char res[10]; /* RESERVED */
}
tfilerec;

/*---------------------------------------------------------------------------*/

typedef struct /* LASTON.DAT : Last few callers records */
{
long callernum; /* system caller number */
char name[37]; /* user name of caller */
int number; /* user number of caller */
char citystate[31]; /* city/state of caller */
}
lcallers;

/*---------------------------------------------------------------------------*/

typedef struct /* MACROS.LST : Keyboard macro records */
{
char macro[4][241];
}
macrorec;

/*---------------------------------------------------------------------------*/

typedef struct /* MODEM.DAT status flags */
{
unsigned lockedport : 1; /* COM port locked at constant rate */
unsigned xonxoff : 1; /* XON/XOFF (software) flow control */
unsigned ctsrts : 1; /* CTS/RTS (hardware) flow control */
}
modemflags;

typedef struct /* MODEM.DAT : Modem configuration */
{
unsigned waitbaud; /* wait bps */
char comport; /* COM port number */
char init[81]; /* initialization string */
char answer[41]; /* answer string */
char hangup[41]; /* hangup string */
char offhook[41]; /* phone off-hook string */
int nocallinittime; /* reinit modem after x mins of inactivity */
unsigned lockedportbaud; /* bps rate to use when COM port locked */
modemflags flags; /* status flags (see above) */
char nocarrier; /* NO CARRIER result code */
char resultcode[2][10]; /* CONNECT result codes: 300,1200,2400, */
/* 4800,7200,9600,12000,14400,16800,19200 */
}
modemrec;

/*---------------------------------------------------------------------------*/

typedef struct /* NAMES.LST : Sorted names listing */
{
char name[37]; /* user name */
int number; /* user number */
}
smalrec;

/*---------------------------------------------------------------------------*/

typedef struct /* NETWORK.DAT status flags */
{
unsigned nstrip : 1; /* strip message codes? */
unsigned naddtear : 1; /* add tear/origin lines to Net/Group? */
unsigned nholduser : 1; /* hold all non-SysOp NetMail? */
unsigned nhold : 1; /* default NetMail to "hold"? */
unsigned ncrash : 1; /* default NetMail to "crash"? */
unsigned nkill : 1; /* default NetMail to "kill/sent"? */
}
netflags;

typedef struct /* NETWORK.DAT : Network information */
{
unsigned zone; /* network address */
unsigned net; /* (zone:net/node.point) */
unsigned node;
unsigned point;
char origin[51]; /* origin line */
char kludge_color; /* color of kludge line */
char quote_color; /* color of quoted text */
char tear_color; /* color of tear line */
char origin_color; /* color of origin line */
netflags flags; /* status flags */
char netpath[41]; /* NetMail path */
char echopath[41]; /* EchoMail path */
char grouppath[41]; /* GroupMail path */
char nodepath[41]; /* nodelist path */
}
networkrec;

/*---------------------------------------------------------------------------*/

typedef struct /* NODELIST.DAT status flags */
{
unsigned hub : 1; /* node is a net hub */
unsigned host : 1; /* node is a net host */
unsigned region : 1; /* node is region coord */
unsigned zone : 1; /* node is a zone coord */
unsigned cm : 1; /* runs continuous mail */
unsigned ores1 : 1; /* reserved for Opus */
unsigned ores2 : 1; /* reserved for Opus */
unsigned ores3 : 1; /* reserved for Opus */
unsigned ores4 : 1; /* reserved for Opus */
unsigned ores5 : 1; /* reserved for Opus */
unsigned nores1 : 1; /* reserved for non-Opus */
unsigned nores2 : 1; /* reserved for non-Opus */
unsigned nores3 : 1; /* reserved for non-Opus */
unsigned nores4 : 1; /* reserved for non-Opus */
unsigned nores5 : 1; /* reserved for non-Opus */
unsigned nores6 : 1; /* reserved for non-Opus */
}
nodeflags;

typedef struct /* NODELIST.DAT modem type flags */
{
unsigned hst : 1; /* node uses a USRobotics HST modem */
unsigned pep : 1; /* node uses a Telebit PEP modem */
unsigned v32 : 1; /* node uses a V.32 modem */
unsigned v32b : 1; /* node uses a V.32bis modem */
unsigned h96 : 1; /* node uses a Hayes Express96 modem */
}
modemtypes;

typedef struct /* NODELIST.DAT : Version 6 nodelist data */
{
int net; /* net number */
int node; /* node number */
int cost; /* cost per minute to call */
char name[34]; /* node name */
char phone[40]; /* phone number */
char city[30]; /* city and state */
char password[8]; /* password */
int realcost; /* phone company's charge */
int hubnode; /* node # of this node's hub (0=none) */
char rate; /* actual bps rate divided by 300 */
modemtypes modem; /* modem type codes */
nodeflags flags; /* set of flags */
char res[2]; /* RESERVED */
}
nodedatarec;

typedef struct /* NODELIST.IDX : Version 6 nodelist index */
{
int node; /* node number */
int net; /* net number */
}
nodeindexrec;

/*---------------------------------------------------------------------------*/

typedef struct /* PROTOCOL.DAT status flags */
{
unsigned xbactive : 1; /* is protocol active? */
unsigned xbisbatch : 1; /* is batch definition? */
unsigned xbisresume : 1; /* is resume definition? */
unsigned xbxferokcode : 1; /* does result code = xfer OK? */
}
xbflags;

typedef struct /* PROTOCOL.DAT : File transfer protocols */
{
xbflags xbstat; /* protocol flags */
char ckeys[15]; /* command keys */
char descr[41]; /* description */
acstring acs; /* access string */
char templog[26]; /* temp. log file */
char uloadlog[26]; /* permanent log files */
char dloadlog[26];
char ulcmd[79]; /* UL/DL command lines */
char dlcmd[79];
char ulcode[6][7]; /* UL/DL codes */
char dlcode[6][7];
char envcmd[61]; /* environment setup cmd (B) */
char dlflist[26]; /* DL file lists (B) */
int maxchrs; /* max chrs in cmdline */
int logpf; /* pos in log file for data (B) */
int logps;
char res[15]; /* RESERVED */
}
protrec;

/*---------------------------------------------------------------------------*/

typedef struct /* SHORTMSG.DAT : One-line messages */
{
char msg[161]; /* message */
int destin; /* destination user # (-1=deleted) */
}
smr;

/*---------------------------------------------------------------------------*/

typedef struct /* STATUS.DAT archive configuration records */
{
char active; /* whether this archive format is active */
char ext[4]; /* 3-char file extension */
char listline[26]; /* view archive cmdline ('' for internal) */
char arcline[26]; /* compression cmdline */
char unarcline[26]; /* de-compression cmdline */
char testline[26]; /* integrity test cmdline ('' for *None*) */
char cmtline[26]; /* comment cmdline ('' for *None*) */
int succlevel; /* success ERRORLEVEL (-1=ignore results) */
}
filearcinforec;

typedef struct /* STATUS.DAT : System configuration */
{
char gfilepath[80]; /* GFILES path (data files) */
char afilepath[80]; /* AFILES path (text files) */
char menupath[80]; /* MENUS path (system menu files) */
char trappath[80]; /* LOGS path (trap/chat/log files) */
char msgpath[80]; /* MSGS path (msg base data files) */
char tfilepath[80]; /* TFILES path (Tfiles base files) */
char temppath[80]; /* TEMP path (temporary files) */

char bbsname[81]; /* BBS name */
char bbsphone[13]; /* BBS phone number */
char sysopname[31]; /* SysOp's full name or alias */
int maxusers; /* max number of users system can have */
int audiolowtime; /* allow audio hours */
int audiohitime;
int dllowtime; /* normal downloading hours */
int dlhitime;
char shuttlelog; /* is Shuttle Logon active? */
char lock300; /* lock out 300 baud? */
char sysoppw[21]; /* SysOp PW */
char newuserpw[21]; /* newuser PW (or NULL if none) */
char shuttlepw[21]; /* Shuttle PW (if Shuttle active) */
int b300lowtime; /* 300 baud calling hours */
int b300hitime;
int b300dllowtime; /* 300 baud DL hours */
int b300dlhitime;
char closedsystem; /* DON'T allow new users? */
char swapshell; /* is swap shell function enabled? */
int eventwarningtime; /* time before event warning */
char tfiledate[9]; /* last date text-files were inserted */
char swapshelltype; /* swap shell type (0=disk,1=EMS) */

char res1[23]; /* RESERVED SPACE #1 */

acstring sop; /* SysOp */
acstring csop; /* Co-SysOp */
acstring msop; /* Message SysOp */
acstring fsop; /* File SysOp */
acstring spw; /* SysOp PW at logon */
acstring seepw; /* see SysOp PWs remotely */
acstring normpubpost; /* post public messages */
acstring normprivpost; /* post private messages */
acstring anonpubread; /* see who posted public anon */
acstring anonprivread; /* see who posted private anon */
acstring anonpubpost; /* post anon public messages */
acstring anonprivpost; /* post anon private messages */
acstring seeunval; /* see unvalidated files */
acstring dlunval; /* DL unvalidated files */
acstring nodlratio; /* no UL/DL ratio */
acstring nopostratio; /* no post/call ratio */
acstring nofilepts; /* no file points checking */
acstring ulvalreq; /* uploads require validation by SysOp */
acstring normnetpost; /* post NetMail messages */

char fsecmd[41]; /* full screen editor command */

char res2[38]; /* RESERVED SPACE #2 */

char maxprivpost; /* max private posts per call */
char maxnetpost; /* max NetMail posts per call */
char maxpubpost; /* max public posts per call */
char maxchat; /* max chat-pages per call */

char res3[4]; /* RESERVED SPACE #3 */

char maxlogontries; /* tries allowed for PW's at logon */
char bsdelay; /* backspacing delay */
char sysopcolor; /* SysOp color in chat mode */
char usercolor; /* user color in chat mode */
int minspaceforpost; /* minimum K drive space left to post */
int minspaceforupload; /* minimum K drive space left to upload */
char backsysoplogs; /* days to keep SYSOP##.LOG */
char wfcblanktime; /* minutes after which to blank WFC menu */
char linelen; /* default video line length */
char pagelen; /* default video page length */
char maxlogonmins; /* maximum minutes allowed for logon */

char res4[17]; /* RESERVED SPACE #4 */

char specialfx; /* WFC menu "special effects" */
char logonlogoff; /* enable LOGON.BAT & LOGOFF.BAT? */
char allowalias; /* allow alias's? (handles) */
char phonepw; /* use phone number password in logon? */
char localsec; /* is local security ON? */
char localscreensec; /* is local screen-security ON? */
char globaltrap; /* trap ALL USER'S activity? */
char autochatopen; /* does chat buffer auto-open? */
char autominlogon; /* Auto-Message in logon? */
char bullinlogon; /* bulletins in logon? */
char lcallinlogon; /* "Last Few Callers" list in logon? */
char yourinfoinlogon; /* "Your Info" in logon? */
char multitask; /* is BBS multitasking? */
char offhooklocallogon; /* take phone off-hook for local logons? */
char forcevoting; /* is manditory logon voting active? */
char compressbases; /* "compress" file/message base numbers? */
char searchdup; /* search for dup. filenames when UL? */
char slogtype; /* SysOp log type: File/Printer/Both */
char stripclog; /* strip colors from SysOp log output? */
int newapp; /* user# to send new user application to */
int guestuser; /* user# of guest user account */
int timeoutbell; /* minutes before time-out bell */
int timeout; /* minutes before timeout (logoff) */
char usewfclogo; /* whether to use WFC menu logo */
char useems; /* attempt to use EMS for overlay */
char usebios; /* use ROM BIOS for local video output */
char cgasnow; /* suppress snow on CGA systems */

char batlogon; /* execute LOGON.BAT */
char batlogoff; /* execute LOGOFF.BAT */
char batbbsstart; /* execute BBSSTART.BAT */
char batbbsdone; /* execute BBSDONE.BAT */
char batdaystart; /* execute DAYSTART.BAT */
char batplogoff; /* execute PLOGOFF.BAT */

char res5[10]; /* RESERVED SPACE #5 */

filearcinforec
filearcinfo[MAXARCS]; /* archive specs */
char filearccomment[3][81]; /* BBS comments for archives */

char uldlratio; /* are UL/DL ratios active? */
char fileptratio; /* is auto file-pt compensation active? */
char fileptcomp; /* file point compensation ratio */
char fileptcompbasesize; /* file point "base compensation size" */
char ulrefund; /* percent time refund for ULs */
char tosysopdir; /* "To SysOp" file base */
char validateallfiles; /* validate ALL FILES automatically? */
char remdevice[11]; /* remote output device (GATEx,COMx,etc) */
int maxintemp; /* max K allowed in TEMP\3\ */
int minresume; /* min K to allow resume-later */
char maxdbatch; /* max files in DL batch queue */
char maxubatch; /* max files in UL batch queue */
char unlistfp; /* # of file points for unlisted DLs */

char res6[19]; /* RESERVED SPACE #6 */

int autofp; /* auto-validation file points */
long newcredit; /* newuser NetMail credit */
long autocredit; /* auto-validation NetMail credit */
char newsl; /* newuser SL */
char newdsl; /* newuser DSL */
acrq newar; /* newuser AR */
uflags newac; /* newuser AC */
int newfp; /* newuser file points */
char autosl; /* auto-validation SL */
char autodsl; /* auto-validation DSL */
acrq autoar; /* auto-validation AR */
uflags autoac; /* auto-validation AC */

char allstartmenu[9]; /* logon menu to start ALL users on */

char res7[22]; /* RESERVED SPACE #7 */

char batchfileext[4]; /* batch filename extension */
char bulletprefix[9]; /* default bulletins filename prefix */

char swapondosshell; /* swap on DOS shell */
char swaponarchive; /* swap on archive command */
char swaponxfer; /* swap on file transfer */
char swapondoor; /* swap on door command */
char swaponsysbat; /* swap on system batch files */
char swaponglobat; /* swap on global batch file */
char swaponwfcbat; /* swap on WFC batch file */
char swapontermbat; /* swap on TERM.BAT */
char swaponfse; /* swap on full-screen editor */
char swaponevent; /* swap on DOS Shell event */

char res8[5]; /* RESERVED SPACE #8 */

secrange timeallow; /* time allowance */
secrange callallow; /* call allowance */
secrange dlratio; /* # ULs/# DLs ratios */
secrange dlkratio; /* DLk/ULk ratios */
secrange postratio; /* post/call ratios */

char lastdate[9]; /* last system date */
char curwindow; /* type of SysOp window currently in use */
char istopwindow; /* is SysOp window on top of screen? */
long callernum; /* total number of callers */
int numusers; /* number of users */
zlogrec todayzlog; /* TODAY's ZLOG record */
int postcredits; /* file points/upload credit */
/* compensation for posts */
char rebootforevent; /* reboot before events? */
char watchdogdoor; /* WatchDog active in doors? */
char windowon; /* is SysOp window on? */
char swappath[80]; /* swap shell path */
char arcpath[41]; /* archive utility path */
char protpath[41]; /* protocol driver path */

char res9[35]; /* RESERVED SPACE #9 */

unsigned versionid; /* version (eg 0x0270 = v2.7) */
}
systatrec;

/*---------------------------------------------------------------------------*/

typedef struct /* STRING.DAT : User-definable strings */
{
char ansiq[81]; /* "Do you want ANSI? " string */
char note[2][81]; /* Logon notes (L #1-2) */
char lprompt[81]; /* Logon prompt (L #3) */
char echoc; /* Echo char for PWs */
char sysopin[81]; /* "SysOp In" (inside SysOp hours)*/
char sysopout[81]; /* "SysOp Out" */
char engage[81]; /* "Engage Chat" */
char endchat[81]; /* "End Chat" */
char wait[81]; /* "SysOp Working" */
char pause[81]; /* "Pause" */
char entermsg1[81]; /* "Enter Message" line #1 */
char entermsg2[81]; /* "Enter Message" line #2 */
char newscan1[81]; /* "NewScan begin" */
char newscan2[81]; /* "NewScan done" */
char scanmessage[81]; /* Message scanning prompt */
char automsgt[81]; /* Auto-Message title */
char autom; /* Auto-Message border characters */

char shelldos1[81]; /* " >> SysOp shelling to DOS ..." */
char shelldos2[81]; /* " ... thank you for waiting." */
char chatcall1[81]; /* "Paging SysOp, please wait..." */
char chatcall2[81]; /* ">>><*><<<" */
char guestline[81]; /* "To be a guest ... " */
char namenotfound[81]; /* "Name NOT found in user list." */
char bulletinline[81]; /* Bulletin line */
char thanxvote[81]; /* "Thanks for voting" */

char listline[81]; /* "List files - P to pause" */
char newline[81]; /* "Search for new files -" */
char searchline[81]; /* "Search all dirs for file mask" */
char findline1[81]; /* "Search for descriptions... " */
char findline2[81]; /* "Enter the string to search for.." */
char downloadline[81]; /* "Download - " */
char uploadline[81]; /* "Upload - " */
char viewline[81]; /* "View interior files - " */
char nofilepts[81]; /* "Insufficient file points." */
char unbalance[81]; /* "Your UL/DL ratio is unbalanced" */

char pninfo[81]; /* "P to Pause, N for next dir" */
char gfnline1[81]; /* "[Enter]=All files" */
char gfnline2[81]; /* "File mask: " */
char batchadd[81]; /* "File added to batch queue." */

char quotestr1[51]; /* message quote header #1 */
char quotestr2[51]; /* message quote header #2 */

char mtaskline[81]; /* "System Under Multi-Tasking..." */
}
fstringrec;

/*---------------------------------------------------------------------------*/

typedef struct /* UPLOADS.DAT status flags */
{
unsigned fbnoratio : 1; /* if active */
unsigned fbunhidden : 1; /* whether *VISIBLE* to users w/o access */
unsigned fbdirdlpath : 1; /* if *.DIR file stored in DLPATH */
unsigned fbreserved1 : 1; /* RESERVED FLAG #1 */
unsigned fbusegifspecs : 1; /* whether to use GifSpecs */
unsigned fbreserved2 : 1; /* RESERVED FLAG #2 */
}
fbflags;

typedef struct /* UPLOADS.DAT : File base records */
{
char name[41]; /* area description */
char filename[13]; /* filename + ".DIR" */
char dlpath[41]; /* download path */
char ulpath[41]; /* upload path */
int maxfiles; /* max files allowed (1-2000) */
char password[21]; /* password required */
char arctype; /* wanted archive type (1..max,0=inactive) */
char cmttype; /* wanted comment type (1..3,0=inactive) */
char res1[2]; /* RESERVED SPACE #1 */
fbflags fbstat; /* file base status vars */
acstring acs; /* access requirements */
acstring ulacs; /* upload requirements */
acstring nameacs; /* see-names requirements */
char res2[10]; /* RESERVED SPACE #2 */
}
ulrec;

/*---------------------------------------------------------------------------*/

typedef struct /* USER.LST status flags */
{
unsigned lockedout : 1; /* if locked out */
unsigned udeleted : 1; /* if deleted */
unsigned trapactivity : 1; /* if trapping users activity */
unsigned trapseperate : 1; /* if trap to seperate TRAP file */
unsigned chatauto : 1; /* if auto chat trapping */
unsigned chatseperate : 1; /* if seperate chat file to trap to */
unsigned slogseperate : 1; /* if seperate SysOp log */
unsigned clsmsg : 1; /* if clear-screen before message */
unsigned avadjust : 1; /* if AVATAR color adjust */
}
userflags;

typedef struct /* USER.LST : User account records */
{

/* configuration information */

char name[37]; /* user name */
char realname[37]; /* real name */
char street[31]; /* mailing address */
char citystate[31]; /* city, state */
char zipcode[11]; /* zipcode */
char ph[13]; /* user phone # */
char bday[9]; /* user birthdate */
char sex; /* user sex */

char pw[21]; /* user password */
char firston[9]; /* firston date */
char laston[9]; /* laston date */

char computer[30]; /* type of computer */
char lastconf; /* last conference joined */
char occupation[41]; /* occupation */
char wherebbs[41]; /* BBS reference */
char note[40]; /* SysOp note */

char lockedfile[9]; /* lockout msg to print */
clrs cols; /* user colors */
char linelen; /* line length (# cols) */
char pagelen; /* page length (# rows) */
long mpointer; /* pointer to entry in MACRO.LST */
char userstartmenu[9]; /* menu to start user out on */

userflags flags; /* flags (see above) */

/* system access information */

char sl; /* SL */
char dsl; /* DSL */
uflags ac; /* user flags */
acrq ar; /* AR flags */

/* message system information */

char lastmsg; /* last message base # */
int pubpost; /* # public posts */
int privpost; /* # private posts */
int netpost; /* # NetMail posts */
int forusr; /* forward mail to user # */
long credit; /* NetMail points (credit) */
long debit; /* NetMail points (debit) */
mhireadr mhiread; /* NewScan high message pointers */
mzscanr mzscan; /* NewScan message bases */
char boardsysop[5]; /* msg board SysOp */

/* file system information */

char lastfil; /* last file base # */
int uploads; /* # of ULs */
int downloads; /* # of DLs */
long uk; /* amount ULed (kilobytes) */
long dk; /* amount DLed (kilobytes) */
int filepoints; /* # of file points */
char flistopt; /* type of file list type to use */
fzscanr fzscan; /* NewScan file bases */

/* system usage information */

long ttimeon; /* total mins spent on */
int loggedon; /* # times logged on */
int tltoday; /* # min left today */
char ontoday; /* # times on today */
char illegal; /* # illegal logon attempts */

/* miscellaneous information */

char vote[20]; /* voting data */
int timebank; /* # mins in Time Bank */
int timebankadd; /* time added to timebank TODAY */
}
userrec;

/*---------------------------------------------------------------------------*/

typedef struct /* VERBOSE.DAT : Verbose descriptions */
{
char descr[4][51];
}
verbrec;

/*---------------------------------------------------------------------------*/

typedef struct /* VOTING.DAT : Voting records */
{
char question[80]; /* voting question */
int numa; /* number of user's who have answered */
struct
{
char ans[41]; /* answer description */
int numres; /* this answer */
}
answ[NUMVOTEAS];
}
vdatar;

#endif



  3 Responses to “Category : BBS Programs+Doors
Archive   : TELE2MAX.ZIP
Filename : TELEGARD.H

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/