Skip to content

Latest commit

 

History

History
346 lines (319 loc) · 19.1 KB

strct24d.pas

File metadata and controls

346 lines (319 loc) · 19.1 KB
 
Nov 18, 2000
Nov 18, 2000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
{
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;