telegard/sysop2e.pas

173 lines
6.4 KiB
ObjectPascal

(*****************************************************************************)
(*> <*)
(*> SYSOP2E .PAS - Written by Eric Oman <*)
(*> <*)
(*> SysOp functions: System Configuration Editor -- "E" command. <*)
(*> <*)
(*****************************************************************************)
{$A+,B+,E+,F+,I+,L+,N-,O+,R-,S+,V-}
unit sysop2e;
interface
uses
crt, dos,
{rcg11172000 no overlay under Linux.}
{overlay,}
common;
procedure poflagfunc;
implementation
function sltype(i:integer):string;
begin
case i of
0:sltype:='File only';
1:sltype:='Printer & File';
2:sltype:='Printer only';
end;
end;
procedure poflagfunc;
var s:string[80];
c,cc:char;
nuu,i:integer;
abort,next,done:boolean;
bbb:byte;
begin
done:=FALSE;
repeat
with systat do begin
cls;
sprint(#3#5+'System flagged functions');
nl;
abort:=FALSE; next:=FALSE;
printacr('A. Special effects :'+onoff(specialfx)+
' B. Use FOSSIL comm driver :'+onoff(fossil),abort,next);
printacr('C. Handles allowed on system:'+onoff(allowalias)+
' D. Phone number in logon :'+onoff(phonepw),abort,next);
printacr('E. Local security protection:'+onoff(localsec)+
' F. Local screen security :'+onoff(localscreensec),abort,next);
printacr('G. Global activity trapping :'+onoff(globaltrap)+
' H. Auto chat buffer open :'+onoff(autochatopen),abort,next);
printacr('I. AutoMessage in logon :'+onoff(autominlogon)+
' J. Bulletins in logon :'+onoff(bullinlogon),abort,next);
printacr('K. Last few callers in logon:'+onoff(lcallinlogon)+
' L. "Your info" in logon :'+onoff(yourinfoinlogon),abort,next);
printacr('M. BBS is multi-tasking :'+onoff(multitask)+
' N. Offhook in local logon :'+onoff(offhooklocallogon),abort,next);
printacr('O. Mandatory voting :'+onoff(forcevoting)+
' P. Compress file/msg numbers :'+onoff(compressbases),abort,next);
printacr('R. UL duplicate file search :'+onoff(searchdup)+
' S. SysOp Log type :'+sltype(slogtype),abort,next);
printacr('T. Strip color off SysOp log:'+onoff(stripclog)+
' U. Use WFC menu logo :'+onoff(usewfclogo),abort,next);
printacr('V. Use BIOS for video output:'+onoff(usebios)+
' W. Suppress snow on CGA :'+onoff(cgasnow),abort,next);
printacr('X. Use EMS for overlay file :'+onoff(useems),abort,next);
printacr('',abort,next);
s:='1. New user message sent to :';
if (newapp=-1) then s:=s+'Off' else s:=s+mn(newapp,3);
s:=s+' 2. Guest user number :';
if (guestuser=-1) then s:=s+'Off' else s:=s+mn(guestuser,3);
printacr(s,abort,next);
s:='3. Mins before timeout bell :';
if (timeoutbell=-1) then s:=s+'Off' else s:=s+mn(timeoutbell,3);
s:=s+' 4. Mins before timeout :';
if (timeout=-1) then s:=s+'Off' else s:=s+mn(timeout,3);
printacr(s,abort,next);
nl;
prt('Enter selection (A-X,1-4) [Q]uit : ');
onek(c,'QABCDEFGHIJKLMNOPRSTUVWX1234'^M); nl;
case c of
'Q':done:=TRUE;
'A':specialfx:=not specialfx;
'B':begin
remove_port;
fossil:=not fossil;
iport;
end;
'C':allowalias:=not allowalias;
'D':phonepw:=not phonepw;
'E':localsec:=not localsec;
'F':localscreensec:=not localscreensec;
'G':globaltrap:=not globaltrap;
'H':autochatopen:=not autochatopen;
'I':autominlogon:=not autominlogon;
'J':bullinlogon:=not bullinlogon;
'K':lcallinlogon:=not lcallinlogon;
'L':yourinfoinlogon:=not yourinfoinlogon;
'M':multitask:=not multitask;
'N':offhooklocallogon:=not offhooklocallogon;
'O':forcevoting:=not forcevoting;
'P':begin
compressbases:=not compressbases;
nl;
if (compressbases) then print('Compressing bases...')
else print('De-compressing bases...');
newcomptables;
end;
'R':searchdup:=not searchdup;
'S':begin
print('Current SysOp Log type: '+sltype(slogtype));
nl;
for i:=0 to 2 do print(cstr(i)+': '+sltype(i));
nl;
prt('New type: '); ini(bbb);
if ((not badini) and (bbb in [0..2])) then slogtype:=bbb;
end;
'T':stripclog:=not stripclog;
'U':usewfclogo:=not usewfclogo;
'V':begin
usebios:=not usebios;
directvideo:=not usebios;
end;
'W':begin
cgasnow:=not cgasnow;
checksnow:=cgasnow;
end;
'X':useems:=not useems;
'1'..'4':
begin
prt('[E]nable [D]isable this function: ');
onek(cc,'Q ED'^M);
if cc in ['E','D'] then begin
badini:=FALSE;
case cc of
'D':i:=-1;
'E':begin
prt('Range ');
case c of
'1','2':begin
reset(uf); nuu:=filesize(uf)-1; close(uf);
prt('(1-'+cstr(nuu)+')');
end;
'3','4':prt('(1-20)');
else
prt('(0-32767)');
end;
nl; prt('Enter value for this function: ');
inu(i);
end;
end;
if (not badini) then
case c of
'1':if ((i>=1) and (i<=nuu)) or (cc='D') then newapp:=i;
'2':if ((i>=1) and (i<=nuu)) or (cc='D') then guestuser:=i;
'3':if ((i>=1) and (i<=20)) or (cc='D') then timeoutbell:=i;
'4':if ((i>=1) and (i<=20)) or (cc='D') then timeout:=i;
end;
end
else print('No change.');
end;
end;
end;
until (done) or (hangup);
end;
end.