home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Beijing Paradise BBS Backup
/
PARADISE.ISO
/
software
/
BBSDOORW
/
CBVR097U.ZIP
/
RBVVAR.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-03-09
|
20KB
|
453 lines
UNIT RBVVAR; (* contains variables specific to RENEGADE version *)
INTERFACE
CONST
_version = 'RENEGADE-CBV 0.97 ';
_config = 'CBVCFG.';
_user_file = 'USERS.DAT';
_versionflag1 = 1100000100;
_versionflag2 = 1000100000;
maxbases=250;
maxfbases=250;
TYPE
acrq='@'..'Z'; { Access Restriction flags }
colors = array[FALSE..TRUE,0..9] of byte; { Color tables }
mzscanr = set of 1..maxbases; { Which message bases to scan }
fzscanr = set of 1..maxfbases; { Which file bases to scan }
mhireadr = array[1..maxbases] of longint; { Lastread pointers }
uflags =
(rlogon, { L - Limited to one call a day }
rchat, { C - No SysOp paging }
rvalidate, { V - Posts are unvalidated }
ruserlist, { U - Can't list users }
ramsg, { A - Can't post an auto message }
rpostan, { * - Can't post anonymously }
rpost, { P - Can't post }
remail, { E - Can't send email }
rvoting, { K - Can't use voting booth }
rmsg, { M - Force email deletion }
xreplace, { use me }
xhotkey, { hotkey input mode }
xavatar, { Supports Avatar }
xxause, { screen pausing }
xnovice, { user requires novice help }
xansi, { Supports ANSI }
xcolor, { Supports color }
xalert, { Alert SysOp upon login }
xsmw, { Short message(s) waiting }
xnomail, { Mailbox is closed }
fnodlratio, { 1 - No UL/DL ratio }
fnopostratio, { 2 - No post/call ratio }
fnofilepts, { 3 - No file points checking }
fnodeletion); { 4 - Protected from deletion }
suflags =
(lockedout, { if locked out }
deleted, { if deleted }
trapactivity, { if trapping users activity }
trapseparate, { if trap to seperate TRAP file }
chatauto, { if auto chat trapping }
chatseparate, { if separate chat file to trap to }
slogseparate, { if separate SysOp log }
clsmsg, { if clear-screens }
avadjust, { if AVATAR color adjust }
fseditor { if Full Screen Editor }
);
ACFF = SET OF ACRQ;
ACRR = SET OF UFLAGS;
ConfigRec = RECORD
header : STRING[15];
use_note_field,
compare_fons, (* compare userrec.phone 2 entry?? *)
update_trash,
allow_ld,
allow_out_ld,
CTS_RTS,
hangup_after,
use_callfile, (* CANCALL.DAT - ac-pr to only call *)
direct_write,
quite_mode, (* option requested by Apolloyn *)
allow_toll (* allow toll calls? *)
: BOOLEAN;
retry_attempts,
delay_time,
drop_delay,
min_time, (* min time granted for door use *)
hang_time, (* no entry hangup time *)
max_SL,
logtype : BYTE; (* 0=NONE 1=PART 2=COMP *)
startmenu : STRING[7];
LC_SL,
LC_DSL,
LD_SL,
LD_DSL : BYTE;
LC_AR,
LD_AR : ACFF;
LC_flags,
LD_flags : ACRR; (* userrec.uflags *)
IRQLevel,
LC_filepoints,
LD_filepoints : INTEGER;
bbs_areac,
bbs_prefix,
bbs_suffix : STRING[4];
LD_PREFIX : STRING[20];
dialcommand, (* command to dial on modem *)
hangupcmd : STRING[30]; (* command to hangup the modem *)
logfiledir,
_BBSDIR_ : STRING[60]; (* now is BBS directory! *)
version1,
version2,
LastDate, (* for checking autocfg *)
LD_WIN_START,
LD_WIN_STOP : LONGINT;
END;
RGuserrec= record
name:string[36]; { system name }
realname:string[36]; { real name }
pw:string[20]; { password }
ph:string[12]; { phone # }
bday:string[8]; { birthdate }
firston:string[8]; { first on date }
laston:string[8]; { last on date }
street:string[30]; { street address }
citystate:string[30]; { city, state }
zipcode:string[10]; { zipcode }
usrdefstr:array[1..3] of string[35]; { type of computer }
{ occupation }
{ BBS reference }
note:string[35]; { SysOp note }
userstartmenu:string[8]; { menu to start at }
lockedfile:string[8]; { print lockout msg}
flags:set of uflags; { flags }
sflags:set of suflags; { status flags }
ar:set of acrq; { AR flags }
vote:array[1..25] of byte; { voting data }
sex:char; { gender }
ttimeon, { total time on }
uk, { UL k }
dk:longint; { DL k }
tltoday, { # min left today }
forusr, { forward mail to }
filepoints:integer; { # of file points }
uploads,downloads, { # of ULs/# of DLs}
loggedon, { # times on }
msgpost, { # message posts }
emailsent, { # email sent }
feedback, { # feedback sent }
timebank, { # mins in bank }
timebankadd, { # added today }
dlktoday, { # kbytes dl today}
dltoday:word; { # files dl today }
waiting, { mail waiting }
linelen, { line length }
pagelen, { page length }
ontoday, { # times on today }
illegal, { # illegal logons }
barf,
lastmbase, { # last msg base }
lastfbase, { # last file base }
sl,dsl:byte; { SL / DSL }
mhiread:mhireadr; { Message last read date ptrs}
mzscan:mzscanr; { Which message bases to scan}
fzscan:fzscanr; { Which file bases to scan}
cols:colors; { user colors }
garbage:byte;
timebankwith:word; { amount of time withdrawn today}
passwordchanged:word; { last day password changed }
defarctype:byte; { default QWK archive type }
lastconf:char; { last conference they were in }
lastqwk:longint; { date/time of last qwk packet }
getownqwk:boolean; { add own messages to qwk packet? }
scanfilesqwk:boolean; { scan file bases for qwk packets? }
privateqwk:boolean; { get private mail in qwk packets? }
credit:longint; { Amount of credit a user has }
debit:longint; { Amount of debit a user has }
expiration:longint; { Expiration date of this user }
expireto:char; { Subscription level to expire to }
ColorScheme:byte; { User's color scheme # }
res:array[1..2] of byte; { RESERVED }
end;
(***************************************************************************)
const
ver='01-03 Beta';
maxprotocols=120;
maxevents=10;
maxarcs=8;
maxbatchfiles=50;
maxmenucmds=100;
TYPE
astr=string[160];
acstring=string[20]; { Access Condition String }
secrange = array[0..255] of integer; { Access tables }
filearcinforec= { Archive configuration records }
record
active:boolean; { active or not }
ext:string[3]; { file extension }
listline, { /x for internal;
x: 1=ZIP, 2=ARC/PAK, 3=ZOO, 4=LZH }
arcline, { compression cmdline }
unarcline, { de-compression cmdline }
testline, { integrity test cmdline }
cmtline:string[25]; { comment cmdline }
succlevel:integer; { success ERRORLEVEL, -1=ignore results }
end;
historyrec= { HISTORY.DAT : Summary logs }
record
date:string[8];
userbaud:array[0..4] of word;
active,callers,newusers,posts,email,feedback,
errors,uploads,downloads:word;
uk,dk:longint;
end;
modemflags= { MODEM.DAT status flags }
(
lockedport, { COM port locked at constant rate }
xonxoff, { XON/XOFF (software) flow control }
ctsrts { CTS/RTS (hardware) flow control }
);
linerec=
record
waitbaud:word; { initialization baud }
comport:byte; { COM port number }
init:string[50]; { init string }
answer:string[40]; { answer string }
hangup:string[40]; { hangup string }
offhook:string[40]; { phone off-hook string }
nocallinittime:word; { reinit modem after x mins of inactivity }
lockedportbaud:word; { locked baud rate }
mflags:set of modemflags; { status flags }
nocarrier:byte; { NO CARRIER result code }
resultcode:array[1..2,0..14] { CONNECT result codes }
of byte; { 300,1200,2400,4800,7200,9600,12000,14400,16800,19200,5 extra}
logonacs:acstring; { acs string to logon this node }
doorpath:string[40]; { path to write door info files to }
end;
validationrec = record
description:string[25]; { description }
newsl, { new SL }
newdsl:byte; { new DSL }
newar:set of acrq; { new AR }
newac:set of uflags; { new AC }
newfp:integer; { file points to add }
newcredit:longint; { new credit (added) }
expiration:word; { days until expiration }
expireto:char; { validation level to expire to }
softar:boolean; { TRUE=AR added to current, else replaces }
softac:boolean; { TRUE=AC " " " " " }
newmenu:string[8]; { User start out menu }
end;
systatrec=
record
datapath:string[40]; { DATA path }
miscpath:string[40]; { MISC path }
menupath:string[40]; { MENU path }
logspath:string[40]; { LOGS path }
msgpath:string[40]; { MSGS path }
nodepath:string[40]; { NODE list path }
temppath:string[40]; { TEMP path }
protpath:string[40]; { PROT path }
arcspath:string[40]; { ARCS path }
bbsname:string[40]; { BBS name }
bbsphone:string[12]; { BBS phone number }
sysopname:string[30]; { SysOp's name }
lowtime, { SysOp begin minute (in minutes) }
hitime, { SysOp end time }
dllowtime, { normal downloading hours begin.. }
dlhitime, { ..and end }
minbaudlowtime, { minimum baud calling hours begin.. }
minbaudhitime, { ..and end }
minbauddllowtime, { minimum baud downloading hours begin.. }
minbauddlhitime:integer; { ..and end }
minimumbaud, { minimum baud rate to logon }
minimumdlbaud:longint; { minimum baud rate to download }
shuttlelog, { Use Shuttle Logon? }
closedsystem, { Allow new users? }
swapshell:boolean; { Swap on shell? }
sysoppw, { SysOp password }
newuserpw, { newuser password }
minbaudoverride, { override minimum baud rate }
shuttlepw:string[20]; { Shuttle password }
crapola2:string[8]; { }
sop, { SysOp }
csop, { Co-SysOp }
msop, { Message SysOp }
fsop, { File SysOp }
spw, { SysOp PW at logon }
seepw, { see SysOp PWs remotely }
normpubpost, { make normal public posts }
normprivpost, { send normal e-mail }
anonpubread, { see who posted public anon }
anonprivread, { see who sent anon e-mail }
anonpubpost, { make anon posts }
anonprivpost, { send anon e-mail }
seeunval, { see unvalidated files }
dlunval, { DL unvalidated files }
nodlratio, { no UL/DL ratio }
nopostratio, { no post/call ratio }
nofilepts, { no file points checking }
ulvalreq, { uploads require validation }
junkola1, { nuuuuuuuuukkkkkkkked }
overridechat:acstring; { override chat hours }
maxprivpost, { max email can send per call }
maxfback, { max feedback per call }
maxpubpost, { max posts per call }
maxchat, { max sysop pages per call }
maxwaiting, { max mail waiting }
csmaxwaiting, { max mail waiting for Co-SysOp + }
junk1, { }
junk2, { }
maxlogontries, { tries allowed for PW's at logon }
sysopcolor, { SysOp color in chat mode }
usercolor:byte; { user color in chat mode }
minspaceforpost, { minimum drive space left to post }
minspaceforupload:integer; { minimum drive space left to upload }
backsysoplogs, { days to keep SYSOP##.LOG }
eventwarningtime, { minutes before event to warn user }
wfcblanktime:byte; { minutes before blanking WFC menu }
allowalias, { allow handles? }
phonepw, { phone number password in logon? }
localsec, { use local security? }
globaltrap, { trap everyone's activity? }
autochatopen, { automatically open chat buffer? }
autominlogon, { Auto-Message at logon? }
bullinlogon, { bulletins at logon? }
lcallinlogon, { "Last Few Callers" list at logon? }
yourinfoinlogon, { "Your Info" at logon? }
offhooklocallogon, { phone off-hook for local logons? }
forcevoting, { manditory voting? }
compressbases, { "compress" file/msg base numbers? }
searchdup:boolean; { search for dupes files when UL? }
slogtype:byte; { log type: File/Printer/Both }
stripclog:boolean; { strip colors from SysOp log? }
newapp, { send new user application to # }
timeoutbell, { minutes before timeout beep }
timeout:integer; { minutes before timeout }
useems:boolean; { use EMS for overlay }
usebios:boolean; { use BIOS for video output }
cgasnow:boolean; { snow supression on }
alertbeep:integer; { time between alert beeps }
filearcinfo:
array[1..maxarcs] of filearcinforec; { archive specs }
filearccomment:
array[1..3] of string[40]; { BBS comment files for archives }
uldlratio, { use UL/DL ratios? }
fileptratio:boolean; { use auto file-pt compensation? }
fileptcomp, { file point compensation ratio }
fileptcompbasesize, { file point base compensation size }
ulrefund, { percent of time to refund on ULs }
tosysopdir:byte; { SysOp file base }
validateallfiles:boolean; { validate files automatically? }
maxintemp, { max K allowed in TEMP }
minresume:integer; { min K to allow resume-later }
RES99:array[1..11] of byte;
sysoppword:boolean; { check for sysop password? }
RES98:array[1..9] of byte;
allstartmenu:string[8]; { logon menu to start users on }
bulletprefix:string[8]; { default bulletins filename }
timeallow, { time allowance }
callallow, { call allowance }
dlratio, { # ULs/# DLs ratios }
dlkratio, { DLk/ULk ratios }
postratio, { posts per call ratio }
dloneday, { Max number of dload files in one day}
dlkoneday:secrange; { Max k downloaded in one day}
lastdate:string[8]; { last system date }
curwindow:byte; { type of SysOp window in use }
istopwindow:boolean; { is window at top of screen? }
callernum:longint; { system caller number }
numusers:integer; { number of users }
end;
(***************************************************************************)
VAR
SecTable : secrange;
AddTimeLOCAL,
AddTimeLONGD : INTEGER;
RGuserfile : FILE OF RGuserrec;
RGuser : RGuserrec;
RGUserFN : STRING;
Config : ConfigRec;
ConfigFile : FILE OF ConfigRec;
RealCFGName : STRING;
IMPLEMENTATION
END.