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

 
Output of file : TELEGARD.H contained in archive : TG27.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 */

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

typedef unsigned char boolean; /* Turbo Pascal "boolean" */
typedef unsigned char byte; /* Turbo Pascal "byte" */
typedef signed short int integer; /* Turbo Pascal "integer" */
typedef signed long int longint; /* Turbo Pascal "longint" */
typedef unsigned char string; /* Turbo Pascal "string" */
typedef unsigned short int word; /* Turbo Pascal "word" */
typedef unsigned int bit; /* shorthand for C bit fields */

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

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

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

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

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

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

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

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

typedef struct /* *.MIX : Message index records */
{
longint hdrptr; /* message header pointer */
integer isreplyto; /* reply-to message number (-1=none) */
cpackdatetime isreplytoid; /* packed date/time of replied message */
integer numreplies; /* number of replies to THIS message */
cpackdatetime msgdate; /* message date/time (packed) */
byte 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 */
{
byte anon; /* anonymous type (0=no, 1/2=yes, 3="Abby", */
/* 4="Problemed Person", 5=any name */
word usernum; /* user number (0=none) */
word zone; /* zone (0=none) */
word net; /* net (0=none) */
word node; /* node (0=none) */
word point; /* point (0=none) */
string name[37]; /* user name (all caps) if anon=3..5, */
/* otherwise null ('') */
string real[37]; /* user real name (all caps) */
string alias[37]; /* user alias (all caps) */
}
fromtoinfo;

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

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

typedef struct /* *.DIR status flags */
{
bit notval : 1; /* if file is not validated */
bit isrequest : 1; /* if file is offline */
bit resumelater : 1; /* if file is resume-later */
}
filstat;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

typedef struct /* EVENTS.DAT : Scheduled event records */
{
boolean active; /* whether active */
string description[31]; /* event description (for logs) */
string etype; /* A:CS, C:hat, D:os call, E:xternal */
string execdata[21]; /* errorlevel if "E", commandline if "D" */
integer busytime; /* off-hook time before; 0 if none */
integer exectime; /* time of execution */
boolean busyduring; /* busy phone DURING event? */
integer duration; /* length of time event takes */
byte execdays; /* bitwise execution days, */
/* or day of month if monthly */
boolean monthly; /* monthly event? */
}
eventrec;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

byte 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 */

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

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

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

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

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

byte res4[18]; /* RESERVED SPACE #4 */

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

byte res5[16]; /* RESERVED SPACE #5 */

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

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

byte res6[21]; /* RESERVED SPACE #6 */

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

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

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

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

byte res8[15]; /* 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 */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/* configuration information */

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

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

string computer[31]; /* type of computer */
string occupation[41]; /* occupation */
string wherebbs[41]; /* BBS reference */
string note[40]; /* SysOp note */

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

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

/* system access information */

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

/* message system information */

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

/* file system information */

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

/* system usage information */

longint ttimeon; /* total mins spent on */
integer loggedon; /* # times logged on */
integer tltoday; /* # min left today */
byte ontoday; /* # times on today */
byte illegal; /* # illegal logon attempts */

/* miscellaneous information */

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

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

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

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

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

#endif



  3 Responses to “Category : BBS Programs+Doors
Archive   : TG27.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/