telegard/strct24d.pas

347 lines
19 KiB
ObjectPascal

{
T.A.G. (C) Copyrighted 1986-1989 by Robert Numerick and Victor Capton
All rights reserved.
-----------------------------------
T.A.G. Version 2.4d Data Structures
-----------------------------------
All we ask if you use these records is to give credit where credit is due.
Additional structure information may be given out on an individual basis
depending on the situation.
Program: STRCT24D.PAS
}
type
acrq='@'..'Z'; {AR flags}
{Special flag meanings when present}
flagrec=(autoprivdel, {A=Force user to delete private mail}
nopostcall, {B=No post call ratio}
rautomsg, {C=Restrict from posting auto-message}
ranon, {D=Restrict from posting anonymous}
rbbslist, {E=Restrict from adding to other BBS list}
rchat, {F=Restrict from chatting}
nodllimit, {G=No download ratio limit}
rpubmsg, {H=Restrict from posting public mail}
rprivmsg, {I=Restrict from sending private mail}
rvoting, {J=Restrict from voting}
onecall, {K=One call per day allowed}
pubnotval, {L=Public posts not validated}
protdel, {M=Protect from deletion}
nofilepts, {N=No file points checks}
wordwrap, {O=Word wrap in messages enabled}
pause, {P=[PAUSE] active}
ansi, {Q=ANSI graphics active}
color, {R=Color active if ANSI present}
onekey, {S=Onekey input used instead of line input}
alert, {R=Alert active for user's next call}
usermale, {S=User is of the male gender}
mboxclosed, {T=Mail box closed to all by SysOp's}
tabs, {U=VT100 tabs are used to optimize display}
clschar); {V=Clear screen characters used}
{3 bytes used for 24 flags}
flagset=set of flagrec; {Set of the above user flags}
msgscanrec=set of 0..55; {Set of message section scan flags}
filescanrec=set of 0..95; {Set of file section scan flags}
colorrec=array[false..true,0..9] of byte; {Array of colors
false=Black and white monitor
true =Color monitor}
umsgsrec=record {Last message read pointer (e.g. A-28432)}
ltr:char; {Letter of last message read (e.g. "A")}
number:integer; {Number of last message read (e.g. -28432)}
end;
userrec=record {User log record (user.lst)}
uname, {User name}
rname:string[36]; {Real name}
addr, {Address}
comtype, {Computer type}
citystate, {City/State}
snote:string[30]; {SysOp note}
lastdate, {Last date on (MS-DOS compressed)}
lasttime:integer; {Last time on (MS-DOS compressed)}
pw:string[16]; {Password}
phone:string[12]; {Phone number}
zcode:string[10]; {Zip code}
qscan:array[0..55] of umsgsrec; {Last read pointers for each msg section}
vote:array[1..20] of byte; {User's vote on each question}
callspr:array[1..15] of byte; {Call spread of last 15 calls}
ttimeon, {Total time on system in minutes}
ulk, {UL K-bytes}
dlk:real; {DL K-bytes}
usernum, {User's number 0=deleted
same as rec=normal
diff than rec=locked out}
privpost, {Private posts}
pubpost, {Public posts}
feedback, {Feedback to sysop}
numcalls, {Total number of calls}
numul, {Number of downloads}
numdl, {Number of uploads}
fmail, {Forward mail to what user number}
hbaud, {Highest baud rate user supports}
timetoday, {Minutes user on day of last call}
credit, {Credit in cents}
debit, {Money spent sending mail in cents}
points, {File points}
timebank, {Minutes in time bank}
bday, {Birthday of user (MS-DOS compressed)}
uuui:integer; {Reserved}
uuub1, {Reserved}
uuub2, {Reserved}
strtmenu, {Starting menu (not supported)}
sl, {Security level (SL)}
dsl, {Download security level (DSL)}
hlvl, {Help level}
colms, {Number columns on screen}
lines, {Number lines on screen}
callstoday, {Calls user made on day of last call}
illegal, {Illegal logons since last on}
waiting, {Number private messages waiting}
lmsgbase, {Last message base user in}
ldlbase, {Last file section user in}
cls, {CLS character (not supported)}
nulls:byte; {Number of nulls (not supported)}
ar:set of acrq; {Set of AR flags}
flags:flagset; {Special flags}
msgsysop:array[1..4] of byte; {Boards user is SubOp of (255=none)}
msgscan:msgscanrec; {Message areas to scan}
dlscan:filescanrec; {File sections to scan}
colors:colorrec; {Programmed colors for user}
end;
dayrec=(Sun,Mon,Tue,Wed,Thu,Fri,Sat); {Days of week for events}
eventrec=record {Event record}
offhook:boolean; {Take phone off hook during event}
elevel, {Error level to drop at}
day:byte; {Day of month event active (if zero weekly)}
schtype:char; {Schedule type}
{bit 7=1 if disabled}
general, {General variable (not used yet)}
start, {Starting time of event (# minutes from 00:00}
duration, {Minutes the event lasts}
timebefore:integer; {Time before event to disallow users}
days:set of dayrec; {Days of week event is active}
end;
messages=record {Message filename record (e.g. A-32767.1)}
ltr:char; {Letter of message (e.g. "A")}
number:integer; {Number of message (e.g. -32767)}
ext:byte; {Extension of message (e.g. 1)}
end;
range=array[0..255] of integer; {Range values for all security levels}
systatrec=record {System status record (status.dat)}
altpath, {Alternate file directory}
msgspath:string[40]; {Message text file directory}
uusr:array[1..26] of byte; {Reserved space}
modemresultnocarrier:string[14]; {Modem NO CARRIER string}
modemanswer:string[20]; {Modem answer string}
modemresultring:string[14]; {Modem RING string}
minkpost, {Minimum K-bytes to post}
minkul:integer; {Minimum K-bytes to upload}
autochatbufopen:boolean; {Chat buffer auto opens when chat}
modemoffhook:string[20]; {Modem off hook string}
modemresultok:string[14]; {Modem OK string}
logonpassword, {SL when SysOp PW#1 needed to logon}
readtextmsg:byte; {SL when can /read in message}
alertchatonly, {ALERT active only when chat on}
genericinfo, {Generic mode active}
logonphone:boolean; {Logon requires phone number}
modeminit:string[54]; {Modem initialization string}
lastcaller:string[42]; {Last caller on the system was...}
modemhangup:string[20]; {Modem hang-up string}
boardpw:string[16]; {New user password}
boardphone:string[12]; {Phone number of the system}
sysopcolor, {SysOp color in chat}
usercolor:byte; {User color in chat}
postcallflag:acrq; {AR flag used for post call ratio}
nopostcallchk, {SL where no post call check made}
reinittime, {Mins of no activity to init modem}
startmenu:byte; {Starting menu for users}
useautomsg, {Logon users auto-message}
logonoffhook:boolean; {Local logon takes phone off hook}
nopointchk:byte; {DSL where no file point check made}
lastdate:string[8]; {Date last user logged on}
event:array[1..34] of eventrec; {Array of events}
gfilespath:string[40]; {Main data files directory}
storebadlogon:boolean; {Store bad logon information}
maxbdnum, {Max number of files in DL queue}
maxbunum:byte; {Max number of files in UL queue}
boardname:string[50]; {System name}
sysopname:string[36]; {SysOp name}
uubytes:array[1..124] of byte; {Reserved space}
ksm:array[1..9] of string[255]; {Internal use structure}
sysoppw:array[1..3] of string[16]; {SysOp passwords}
modemresult:array[1..8] of string[14]; {Result codes for each baud rate
1,2:300 baud
3,4:1200 baud
5,6:2400 baud
7,8:9600 baud}
callernum, {Total calls to the system}
ulktoday, {UL K-bytes today}
dlktoday, {DL K-bytes today}
uur1, {Reserved space}
uur2, {Reserved space}
uur3:real; {Reserved space}
users, {Number of active users}
activetoday, {Minutes system is active today}
callstoday, {Number of calls today}
msgposttoday, {Number of public posts today}
emailtoday, {Number of private posts today}
fbacktoday, {Number of feedback's posted today}
ultoday, {Number of uploads today}
waitbaud, {Baud rate for modem initialization}
lowtime, {Mins into day start of SysOp hours}
hitime, {Mins into day end of SysOp hours}
maxusers, {Maximum users allow on the system}
errorstoday, {Number of system errors today}
nuserstoday, {Number of new users today}
dltoday, {Number of downloads today}
newusermsgto, {User new user message is sent to}
uui8, {Reserved space}
sysopmailto, {User mail to SYSOP is sent to}
guestuser, {Guest user number}
low300time, {Mins into day 300 baud hours start}
uui7, {Reserved space}
usagelogdays, {Number of days usage log stores}
hi300time, {Mins into day 300 baud hours end}
uui0, {Reserved space}
uui1, {Reserved space}
uui2, {Reserved space}
uui3, {Reserved space}
uui4, {Reserved space}
uui5, {Reserved space}
uui6:integer; {Reserved space}
sysoplvl, {SL of SysOp access}
cosysoplvl, {SL of CoSysOp access}
suboplvl, {SL of SubOp access}
addbbslvl, {SL to add to the BBS list}
emaillvl, {SL to send normal private mail}
valsl, {Validation SL}
valdsl, {Validation DSL}
seeunvallvl, {DSL to see unvalidated files}
dlcosysoplvl, {DSL of DL CoSysOp}
noratiochk, {DSL for no ratio check}
readanon, {SL to know who sent anon mail}
replyanon, {SL to reply to anon mail}
publicanonany, {SL to post anon on any msg base}
privateanonany, {SL to send anon private mail}
maxpubliccall, {Maximum public posts per call}
maxprivcall, {Maximum private posts per call}
maxfbackcall, {Maximum feedback per call}
maxwaitso, {Maximum mail waiting SysOp}
seepasswords, {SL to see passwords remotely}
maxwaitcs, {Maximum mail waiting CoSysOp}
maxwaitnorm, {Maximum mail waiting normal user}
comport, {Com-port}
timeout, {Minutes before no-activity timeout}
timeoutbell, {Minutes before no-activity bell}
backlogdays, {Number of back SYSOP.LOG days}
privilagesl, {SL privilege level}
privilagedsl, {DSL privilege level}
cdmask, {Carrier detect mask}
maxlogontries, {Maximum logon tries}
numlines, {Maximum lines per msg normal user}
csnumlines, {Maximum lines per msg CoSysOp}
ultimepercent, {UL percent refund time}
maxchats, {Maximum number of pages per call}
readmsgview, {SL to view user while reading mail}
readmsgval:byte; {SL to val user while reading mail}
closedsystem, {System closed}
titlepause, {Allow [PAUSE] on the title screen}
logonbulletin, {Logon to bulletin section}
blankwait, {Blank wait screen if no activity}
handles, {Allow handles on the system}
valclear, {Validation clears all restrictions}
securesystem, {Keyboard security active}
timeperday, {Time limits represent time per day}
binkley, {Binkley Term active}
sysopfemale, {SysOp of the system is female}
unusedbool:boolean; {Reserved space}
timeallowed, {SL array for time allowed on system}
uldlnumratio, {DSL array for number of UL ratios}
uldlkratio, {DSL array for K-byte UL ratios}
callsallowed, {SL array of calls allowed per day}
postcall:range; {SL array of post call ratios}
hmsg:messages; {Main system high message pointer}
valar:set of acrq; {Validation AR level set}
end;
anontyp=(no,yes,forced,atunused); {Anonymous status of a message section}
boardrec=record {Message section record (boards.dat)}
name:string[45]; {Message base name}
{30 max real length, rest for color codes}
filename:string[12]; {Header filename (don't believe it includes .BRD)}
sl:byte; {SL required to use base}
maxmsgs:byte; {Maximum messages allowed (must be 5-200)}
pw:string[16]; {Password to enter base}
anonymous:anontyp; {Anonymous type of section}
ar:acrq; {AR flag required to use base}
noansi:boolean; {ANSI graphics allowed?}
postsl:byte; {SL required to post on the base}
end;
smr=record {Small message record (shortmsg.dat)}
msg:string[160]; {Text small message}
destin:integer; {User number who message is to}
end;
vdatar=record {Voting data record (voting.dat)}
question:string[74]; {Text of the question}
numa:integer; {Number of users who have answered the question}
answ:array[0..9] of record {Answer data record array}
ans:string[40]; {Test of the answer}
numres:integer; {Number user who choose this answer}
end;
end;
ulrec=record {File section record (fboards.dat)}
name:string[39]; {Name of file section}
{26 max real length, rest is for color codes}
filename:string[8]; {Filename of section listing (no .DIR)}
dlpathname:string[30]; {Download pathname of section}
ulpathname:string[30]; {Upload pathname of section}
password:string[16]; {Password required to enter section}
dsl, {DSL required to use section}
seenames:byte; {DSL required to see file owners}
arlvl:acrq; {AR flag required to enter section}
noratio:boolean; {Does this check charge for files}
end;
ulfrec=record {File listing record (*.dir)}
filename:string[12]; {Filename}
description:string[78]; {Description}
nacc:integer; {Number of downloads for this file}
ft:byte; {File type (unused)}
blocks:integer; {Number of 128 byte blocks the file requires}
owner:string[36]; {User who uploaded the file}
date:string[8]; {Date the file was uploaded in MM/DD/YY format}
daten:integer; {Days since Jan 1, 1985 of upload date}
flag:boolean; {File unvalidated (true=yes)}
points:byte; {File points of the file}
end;
smalrec=record {Small user pointer record (names.lst)}
name:string[36]; {User name}
number:integer; {User number}
end;
macrorec=record {Macro record (macros.lst)}
usern:integer; {User number who macro's belong}
key:array[1..4] of string[160]; {Text of each macro}
end;