home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Devil's Doorknob BBS Capture (1996-2003)
/
devilsdoorknobbbscapture1996-2003.iso
/
Dloads
/
OTHERUTI
/
WWIV310S.ZIP
/
INIT.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1986-03-28
|
10KB
|
309 lines
program init;
{$V-} {$C-}
{*****************************}
{Copyright (c) 1986 Wayne Bell}
{*****************************}
CONST strlen=160;
recv_buf_size=2048;
TYPE str=string[strlen];
restrictions=(rlogon,rchat,rvalidate,rbackspace,ramsg,rpostan,
rpost,remail,rvoting,rmsg);
acrq='@'..'G';
newtyp=(rp,lt,rm);
deflts=(spcsr,onekey,wordwrap,pause);
pnr=record name:string[40]; number:string[14]; hs:boolean; end;
anontyp=(no,yes,forced,dearabby);
ansttype=(postn,emailn,pana,sanm,cosysop,lcosysop);
opts=(alert,smw,nomail);
slr=record
ttime:byte;
mallowed:integer;
emails,posts:byte;
anst:set of ansttype;
end;
messages=record
ltr:char;
number:integer;
ext:byte;
end;
smalrec=record
name:string[25];
number:integer;
end;
userrec=record
name:string[25];
realname:string[14];
deleted:boolean;
pw:string[8];
ph:string[12];
waiting:byte;
laston:string[10];
loggedon:integer;
msgpost:integer;
emailsent:integer;
feedback:integer;
linelen:byte;
pagelen:byte;
defaults:set of deflts;
ontoday:byte;
illegal:byte;
cursor:string[10];
sl:byte;
ac:set of restrictions;
ar:set of acrq;
qscan:array[1..19] of messages;
qscn:array[1..19] of boolean;
macro:array[1..2] of string[79];
comptype:byte;
option:set of opts;
vote:array[1..9] of byte;
sbn:byte;
dsl:byte;
uploads,downloads:integer;
uk,dk:integer;
end;
boardrec=record
name:string[25];
filename:string[12];
sl:byte;
maxmsgs:byte;
pw:string[10];
anonymous:anontyp;
ar:acrq;
key:char;
end;
msgstat=(validated,unvalidated,deleted);
messagerec=record
title:string[30];
messagestat:msgstat;
message:messages;
owner:integer;
date:integer;
mage:byte;
end;
systatrec=record
boardpw:string[8];
sysoppw:string[8];
hmsg:messages;
users:integer;
lastdate:string[8];
callernum:integer;
activetoday:integer;
callstoday:integer;
msgposttoday:integer;
emailtoday:integer;
fbacktoday:integer;
uptoday:integer;
closedsystem:boolean;
end;
mailrec=record
title:string[30];
from,destin:integer;
msg:messages;
date:integer;
mage:byte;
end;
gft=record
num:integer;
title:string[40];
filen:string[12];
end;
smr=record
msg:str;
destin:integer;
end;
vdatar=record
question:string[79];
numa:integer;
answ:array[0..9] of record
ans:string[25];
numres:integer;
end;
end;
ulrec=record
name:string[25];
filename:string[12];
password:string[10];
dsl:byte;
maxfiles:integer;
end;
var sf:file of smalrec;
uf:file of userrec;
bf:file of boardrec;
mf:file of messagerec;
mailfile:file of mailrec;
slf,slf1:file of slr;
seclev:array[0..255] of slr;
systatf:file of systatrec;
systat:systatrec;
sr:smalrec;
buf,emailtitle,spd,irt,lastname,ll,cursor,i:str;
thisuser,user:userrec;
boards:boardrec;
fw,extramsgs,buf_start,buf_end,mread,board,numboards,t,usernum:integer;
pap,lil,realsl,ftoday,ptoday,etoday:integer;
c,ID:char;
hungup,useron,next,chatcall,expert,doneday,echo,hangup,incom,outcom:boolean;
extratime,timeon:real;
ch,quit:boolean;
recv_buffer:array[1..recv_buf_size] of byte;
smf:file of smr;
macok,lan:boolean;
x:file of str;
vdata:file of vdatar;
vd:vdatar;
ulf:file of ulrec;
fx:ulrec;
fi:text;
ns:pnr; fil:file of pnr;
function exist(fn:str):boolean;
var f:file;
begin
assign(f,fn);
{$I-} reset(f); {$I+}
exist:=(ioresult=0);
close(f);
end;
procedure move(s:str);
var s1,i:str; f,f1:text;
begin
if not exist(s) then writeln('"',s,'" isn''t here.') else begin
writeln(' Moving '+s);
assign(f,s); s1:='gfiles\'+s; assign(f1,s1);
reset(f); rewrite(f1);
while not eof(f) do begin
readln(f,i); writeln(f1,i);
end;
close(f1); close(f);
erase(f);
end;
end;
procedure make(s:str);
var f:text;
begin
if not exist('gfiles\'+s) then begin
writeln(' Creating: ',s);
assign(f,'gfiles\'+s);
rewrite(f);
writeln(f,'This is "'+s+'"');
close(f);
end;
end;
procedure make1(s:str);
var f:text;
begin
if not exist('gfiles\'+s) then begin
writeln(' Creating: ',s);
assign(f,'gfiles\'+s);
rewrite(f);
writeln(f);
close(f);
end;
end;
begin
clrscr;
if exist('gfiles\user.lst') then writeln('Already installed') else begin
writeln('WWIV v3.10 Initialization Program.');
writeln('Now beginning initialization.');
writeln(' Creating directories..');
mkdir('gfiles'); mkdir('msgs'); mkdir('dloads');
writeln(' Creating user files..');
assign(uf,'gfiles\user.lst'); assign(sf,'gfiles\names.lst');
assign(systatf,'gfiles\status');
rewrite(uf); write(uf,user);close(uf); rewrite(sf);
sr.number:=0; sr.name:='';
write(sf,sr);write(sf,sr);close(sf); rewrite(systatf);
with systat do begin boardpw:=''; sysoppw:='SYSOP';
hmsg.number:=-32767; hmsg.ltr:='A'; hmsg.ext:=1; users:=0;
lastdate:=''; callernum:=0; activetoday:=0; callstoday:=0; msgposttoday:=0;
emailtoday:=0; fbacktoday:=0; uptoday:=0; closedsystem:=false;
end;
write(systatf,systat); close(systatf);
make('WELCOME.MSG');
make('LOGON.MSG');
make('LOGOFF.MSG');
make('SYSTEM.MSG');
make('NEWUSER.MSG');
make1('USER.LOG');
make1('SYSOP.LOG');
make1('YSYSOP.LOG');
make1('BBSLIST.MSG');
make1('NONEWUSR.MSG');
writeln(' Creating board files..');
assign(bf,'gfiles\boards.dat');
with boards do begin
name:='General';
filename:='board1';
sl:=10;
maxmsgs:=50;
pw:='';
anonymous:=no;
ar:='@';
key:=' ';
end;
rewrite(bf); write(bf,boards); close(bf);
assign(ulf,'gfiles\uploads.dat'); rewrite(ulf);
fx.name:='Sysop'; fx.dsl:=100; fx.filename:='ubsysop'; fx.maxfiles:=50; fx.password:='';
write(ulf,fx);
fx.name:='Miscellaneous'; fx.dsl:=0; fx.filename:='ub1'; fx.maxfiles:=50; fx.password:='';
write(ulf,fx);
close(ulf);
assign(x,'gfiles\laston.fil'); rewrite(x);
i:='';
for t:=1 to 8 do write(x,i);
close(x);
assign(vdata,'gfiles\voting.dat');
rewrite(vdata);
vd.question:='<< NO QUESTION >>'; vd.numa:=0;
for t:=1 to 9 do write(vdata,vd);
close(vdata);
assign(mailfile,'gfiles\email.dat');
rewrite(mailfile);
close(mailfile);
assign(fi,'gfiles\trashcan.txt');
rewrite(fi); i:='FUCK'; writeln(fi,i); i:='SID VICIOUS'; writeln(fi,i);
i:='SYSOP'; writeln(fi,i); i:='JEFF THE RIPPER'; writeln(fi,i);
close(fi);
move('mainmenu.msg'); move('sysopmnu.msg');
move('dlmenu.msg'); move('dosmnu.msg'); move('help.msg');
if not exist('seclev.dat') then writeln('"seclev.dat" is missing.') else begin
writeln(' Moving seclev.dat');
assign(slf,'seclev.dat'); assign(slf1,'gfiles\seclev.dat');
reset(slf); rewrite(slf1);
for fw:=0 to 255 do begin read(slf,seclev[fw]); write(slf1,seclev[fw]); end;
close(slf1);
close(slf);
erase(slf);
end;
assign(fil,'gfiles\numbers.trm');
{$I-} reset(fil); {$I+}
if ioresult<>0 then begin
rewrite(fil);
ns.name:='========================================';
ns.number:='- --- --- ----';
ns.hs:=true;
for fw:=1 to 9 do write(fil,ns);
end; close(fil);
writeln('WWIV v3.10 initialization complete.');
writeln; writeln;
writeln('Thank you for using WWIV software. A $25 donation is requested for using');
writeln('this software. Please address any correspondences to:');
writeln;
writeln(' Wayne Bell');
writeln(' Box 636');
writeln(' 904 Silver Spur Road');
writeln(' Rolling Hills Estates, CA 90274');
end;
end.