/**************************************************************************\
           $VER: CNet Who CONFIG, v2.51 (15-Oct-95) by Dotoran!
\**************************************************************************/
options results;signal on SYNTAX;signal on ERROR;signal on IOERR
tr=transmit;se=sendstring;gc=getchar;gu=getuser;gs=getscratch;mg=maygetchar
a='rexxsupport.library';if ~show('l',a) then if ~addlib(a,0,-30) then exit
gu 70;a=result;gu 1302246;b=result;if a='' then a=upper(b);b=index('W  WH WHO',left(a,3))
if b=0 then do;tr 'n1c9MISSING ARGUMENT!';exit;end;v=b%3+1;vw=word('SHORT NORMAL LONG',v);call SETUP
changewhere "CNet Who Config";call READCONFIG;signal SCREEN1
START:;se 'z7c4'it.sc.it'z0';gc;a=result
START2:;do 2;mg;b=result;end;if a=d2c(13) then signal START3
  if b='A' then do;ii=it;do until gh.sc.it=0;a=pos(right(it,2,'0')'-',zU.sc)+3;it=strip(substr(zU.sc,a,2),'l','0');end;end
  if b='B' then do;ii=it;do until gh.sc.it=0;a=pos(right(it,2,'0')'-',zD.sc)+3;it=strip(substr(zD.sc,a,2),'l','0');end;end
  if b='C' then do;ii=it;if index(z.sc,' '||it||' ')>0 then do;do until gh.sc.it=0;a=pos(right(it,2,'0')'-',zR.sc)+3;it=strip(substr(zR.sc,a,2),'l','0');end;end;end
  if b='D' then do;ii=it;if index(z.sc,' '||it||' ')>0 then do;do until gh.sc.it=0;a=pos(right(it,2,'0')'-',zL.sc)+3;it=strip(substr(zL.sc,a,2),'l','0');end;end;end
  if index('ABCD',b)>0 then do;se 'z4c7'it.sc.ii'z0';se 'z4c7'it.sc.it'z0';end;signal START
START3:;if sc=1 then signal MAIN;if sc=2 then signal COLORS;if sc=3 then signal TOGGLES;if sc=4 then signal GOODBYE
MAIN:;a="MAIN"||it;signal (a);MAIN1:;signal SCREEN2;MAIN2:;signal SCREEN3;MAIN3:;signal SCREEN4
MAIN4:;se '[6;23H';call EDIT(s0.1,4,1);if result>'' then do;save=1;s0.1=result;end;se '[6;23Hc3'left(s0.1,4);signal START
MAIN5:;se '[7;23H';call EDIT(s0.2,20,1);if result>'' then do;save=1;s0.2=result;end;se '[7;23Hc3'left(s0.2,20);signal START
MAIN6:;se '[8;23H';call EDIT(s0.3,6,1);if result>'' then do;save=1;s0.3=result;end;se '[8;23Hc3'left(s0.3,6);signal START
MAIN7:;se '[9;23H';call EDIT(s0.4,4,1);if result>'' then do;save=1;s0.4=result;end;se '[9;23Hc3'left(s0.4,4);signal START
MAIN8:;se '[10;23H';call EDIT(s0.5,24,1);if result>'' then do;save=1;s0.5=result;end;se '[10;23Hc3'left(s0.5,24);signal START
MAIN9:;se '[11;23H';call EDIT(s0.6,17,1);if result>'' then do;save=1;s0.6=result;end;se '[11;23Hc3'left(s0.6,17);signal START
MAIN10:;se '[13;23H';call EDIT(s0.7,8,1);if result>'' then do;save=1;s0.7=result;end;se '[13;23Hc3'left(s0.7,8);signal START
MAIN11:;se '[14;23H';call EDIT(s0.8,8,1);if result>'' then do;save=1;s0.8=result;end;se '[14;23Hc3'left(s0.8,8);signal START
MAIN12:;se '[16;23H';call EDIT(s0.9,1,0);if result>'' then do;save=1;s0.9=result;end;se '[16;23Hc3's0.9' 'copies(s0.9,20);signal START
MAIN13:;se '[17;23H';call EDIT(s0.10,1,0);if result>'' then do;save=1;s0.10=result;end;se '[17;23Hc3's0.10' 'copies(s0.10,20);signal START
MAIN14:;se "[22;1Hc3Use CNet's Default Color Scheme? [No]: ";gc;a=result;if a~="Y" then do;tr "No.[22;1H[3J";signal START;end;else tr "Yes!"
  con1.v=df.1.1;con2.v=df.1.2;con3.v=df.1.3;con4.v=df.1.4;call READCONFIG2;save=1;signal SCREEN1
MAIN15:;se "[22;1Hc3Use Dotoran's Frontiers Color Scheme? [No]: ";gc;a=result;if a~="Y" then do;tr "No.[22;1H[3J";signal START;end;else tr "Yes!"
  con1.v=df.2.1;con2.v=df.2.2;con3.v=df.2.3;con4.v=df.2.4;call READCONFIG2;save=1;signal SCREEN1
MAIN16:;signal LAYOUT
MAIN17:;se '[6;57H';call m2(1);signal START
MAIN18:;se '[7;57H';call m2(3);signal START
MAIN19:;se '[8;57H';call m2(5);signal START
MAIN20:;se '[9;57H';call m2(7);signal START
MAIN21:;se '[10;57H';call m2(9);signal START
MAIN22:;se '[11;57H';call m2(11);signal START
MAIN23:;se '[13;57H';call m2(13);signal START
MAIN24:;se '[14;57H';call m2(15);signal START
MAIN25:;se '[16;57H';call m2(17);signal START
MAIN26:;se '[17;57H';call m2(19);signal START
MAIN27:;se "[22;1Hc3You wish to create the z4c7"vw"z0 c3who module? [Yes]: ";gc;a=result
  if a="N" then do;tr "No.[21;1H[3J";signal START;end;tr "Yes![21;1H[3J";call SAVECONFIG
  tr '[21;51Hc3Creating c6'vw' WHOc3...#0pfiles:who/MakeWho 'v'}b1[21;51H[K';signal START
MAIN28:;se "[22;1Hc3You wish to create z4c7ALLz0 c3who modules? [Yes]: ";gc;a=result
  if a="N" then do;tr "No.[21;1H[3J";signal START;end;tr "Yes![21;1H[3J";call SAVECONFIG
  tr '[21;51Hc3Creating c6ALL WHO FILESc3...#0pfiles:who/MakeWho 0}b1[21;51H[K';signal START
MAIN29:;se '[6;69H';call m1(2);signal START
MAIN30:;se '[7;69H';call m1(4);signal START
MAIN31:;se '[8;69H';call m1(6);signal START
MAIN32:;se '[9;69H';call m1(8);signal START
MAIN33:;se '[10;69H';call m1(10);signal START
MAIN34:;se '[11;69H';call m1(12);signal START
MAIN35:;se '[13;69H';call m1(14);signal START
MAIN36:;se '[14;69H';call m1(16);signal START
MAIN37:;se '[16;69H';call m1(18);signal START
MAIN38:;se '[17;69H';call m1(20);signal START
M1:;arg a;b=index(mci1,s1.a);if b>15 then b=0;c=EDIT(s1.a,1,0);if index(mci1,c)=0|c=s1.a then c=substr(mci1,b+1,1);s1.a=c;save=1;tr '[uc3'c;return c
M2:;arg a;b=index(mci2,s1.a);if b>7 then b=0;c=EDIT(s1.a,1,2);if index(mci2,c)=0|c=s1.a then c=substr(mci2,b+1,1);s1.a=c;save=1;tr '[uc3'c;return c
COLORS:;a="COLORS"||it;signal (a);COLORS1:;signal SCREEN3;COLORS2:;signal SCREEN4;COLORS3:;signal SCREEN1
COLORS4:;se '[6;23Hcb';call c1(1);signal START
COLORS5:;se '[7;23Hcb';call c1(2);signal START
COLORS6:;se '[8;23Hcb';call c1(3);signal START
COLORS7:;se '[9;23Hcb';call c1(4);signal START
COLORS8:;se '[10;23Hcb';call c1(5);signal START
COLORS9:;se '[11;23Hcb';call c1(6);signal START
COLORS10:;se '[12;23Hcb';call c1(7);signal START
COLORS11:;se '[13;23Hcb';call c1(8);signal START
COLORS12:;se '[14;23Hcb';call c1(9);signal START
COLORS13:;se '[15;23Hcb';call c1(10);signal START
COLORS14:;se '[16;23Hcb';call c1(11);signal START
COLORS15:;se '[17;23Hcb';call c1(12);signal START
COLORS16:;se '[18;23Hcb';call c1(13);signal START
COLORS17:;se '[19;23Hcb';call c1(14);signal START
COLORS18:;se '[21;23H';call EDIT(s2.29,4,0);if result>'' then do;save=1;s2.29=result;end;se '[21;23Hc3'left(s2.29,4);signal START
COLORS19:;se '[22;23H';call EDIT(s2.32,4,0);if result>'' then do;save=1;s2.32=result;end;se '[22;23Hc3'left(s2.32,4);signal START
COLORS20:;signal LAYOUT
COLORS21:;se '[6;55Hcb';call c1(15);signal START
COLORS22:;se '[7;55Hcb';call c1(16);signal START
COLORS23:;se '[8;55Hcb';call c1(17);signal START
COLORS24:;se '[9;55Hcb';call c1(18);signal START
COLORS25:;se '[10;55Hcb';call c1(19);signal START
COLORS26:;se '[11;55Hcb';call c1(20);signal START
COLORS27:;se '[12;55Hcb';call c1(21);signal START
COLORS28:;se '[13;55Hcb';call c1(22);signal START
COLORS29:;se '[14;55Hcb';call c1(23);signal START
COLORS30:;se '[15;55Hcb';call c1(24);signal START
COLORS31:;se '[16;55Hcb';call c1(25);signal START
COLORS32:;se '[17;55Hcb';call c1(26);signal START
COLORS33:;se '[18;55Hcb';call c1(27);signal START
COLORS34:;se '[19;55Hcb';call c1(28);signal START
COLORS35:;se '[21;39Hcb';call c1(30);signal START
COLORS36:;se '[22;39Hcb';call c1(33);signal START
COLORS37:;se '[21;55Hcb';call c2(31);signal START
COLORS38:;se '[22;55Hcb';call c2(34);signal START
C1:;arg a;b=index(mci1,s2.a);if b>15 then b=0;c=EDIT(s2.a,1,0);if index(mci1,c)=0|c=s2.a then c=substr(mci1,b+1,1);s2.a=c;save=1;tr '[uc3'c;return c
C2:;arg a;b=index(mci2,s2.a);if b>7 then b=0;c=EDIT(s2.a,1,2);if index(mci2,c)=0|c=s2.a then c=substr(mci2,b+1,1);s2.a=c;save=1;tr '[uc3'c;return c
TOGGLES:;a="TOGGLES"||it;signal (a);TOGGLES1:;signal SCREEN2;TOGGLES2:;signal SCREEN4;TOGGLES3:;signal SCREEN1
TOGGLES4:;if s3.1=0 then s3.1=1;else s3.1=0;save=1;se '[6;23Hc3'left(subword('No Yes',s3.1+1,1),3);signal START
TOGGLES5:;if s3.2=0 then s3.2=1;else s3.2=0;save=1;se '[7;23Hc3'left(subword('No Yes',s3.2+1,1),3);signal START
TOGGLES6:;if s3.3=0 then s3.3=1;else s3.3=0;save=1;se '[8;23Hc3'left(subword('No Yes',s3.3+1,1),3);signal START
TOGGLES7:;if s3.4=0 then s3.4=1;else s3.4=0;save=1;se '[9;23Hc3'left(subword('No Yes',s3.4+1,1),3);signal START
TOGGLES8:;if s3.5=0 then s3.5=1;else s3.5=0;save=1;se '[10;23Hc3'left(subword('No Yes',s3.5+1,1),3);signal START
TOGGLES9:;if s3.10=0 then s3.10=1;else s3.10=0;save=1;se '[11;23Hc3'left(subword('No Yes',s3.10+1,1),3);signal START
TOGGLES10:;if s3.11=0 then s3.11=1;else s3.11=0;save=1;se '[12;23Hc3'left(subword('No Yes',s3.11+1,1),3);signal START
TOGGLES11:;call open(f1,'pfiles:Who/IdlePorts','r');a=word(readln(f1),1);do i=1 to a;b=readln(f1);parse var b p'|'info;call setclip('IdleWhoB'p,info);end i;call close(f1);tr 'b1';signal START
TOGGLES12:;if s3.9=0 then s3.9=1;else s3.9=0;save=1;se '[6;55Hc3'left(subword('No Yes',s3.9+1,1),3);signal START
TOGGLES13:;if s3.6=0 then s3.6=1;else s3.6=0;save=1;se '[7;55Hc3'left(subword('No Yes',s3.6+1,1),3);signal START
TOGGLES14:;se '[8;55H';call EDIT(s3.7,2,2);if result>'' then s3.7=result;save=1;se '[8;55Hc3'left(s3.7,2);signal START
TOGGLES15:;se '[9;55H';call EDIT(s3.8,2,2);if result>'' then s3.8=result;save=1;se '[9;55Hc3'left(s3.8,2);signal START
TOGGLES16:;se '[10;55H';call EDIT(fake%10,3,2);if result>'' then fake=result*10;save=1;se '[10;55Hc3'left(fake%10,3);signal START
GOODBYE:;a="GOODBYE"||it;signal (a)
GOODBYE1:;signal SCREEN1
GOODBYE2:;tr 'f1n2';call SAVECONFIG;exit
GOODBYE3:;tr 'f1n2';exit
SETUP:;changewhere "Who CONFIG";save=0;mci1='0123456789abcdef';mci2='01234567'
  gd.1.1='1967810111219202123242528313233353637x'
  gd.1.2='30789111213141516171819212223242526272829303132333435363738x'
  gd.1.3='456910x';gd.2.1='1010111223242528353637x'
  gd.2.2='261112131516171819212223242526272829303132333435363738x'
  gd.2.3='36910x';gd.3.1='00x';gd.3.2='00x';gd.3.3='00x'
  z.1=' 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 '
  zR.1='03-16-03-04-17-29-04-05-18-30-05-06-19-31-06-07-20-32-07-08-21-33-08-09-22-34-09-10-23-35-10-11-24-36-11-12-25-37-12-13-26-38-13-14-27-14-15-28-15'
  zL.1='28-15-28-27-14-27-38-26-13-38-37-25-12-37-36-24-11-36-35-23-10-35-34-22-09-34-33-21-08-33-32-20-07-32-31-19-06-31-30-18-05-30-29-17-04-29-16-03-16'
  zD.1='01-02-03-04-05-06-07-08-09-10-11-12-13-14-15-01-16-17-18-19-20-21-22-23-24-25-26-27-28-16-29-30-31-32-33-34-35-36-37-38-27'
  zU.1='28-27-38-37-36-35-34-33-32-31-30-29-16-28-26-25-24-23-22-21-20-19-18-17-16-15-14-13-12-11-10-09-08-07-06-05-04-03-02-01-15'
  it.1.1 ='[1;1HEdit Data Colors   >>';it.1.2 ='[2;1HToggle Switches    >>';it.1.3 ='[4;1H<< Exit              ';it.1.4 ='[6;1HPort Heading        :'
  it.1.5 ='[7;1HHandle Heading      :';it.1.6 ='[8;1HLogon Heading       :';it.1.7 ='[9;1HCPS Heading         :';it.1.8 ='[10;1HLocation Heading    :'
  it.1.9 ='[11;1HWhere Heading       :';it.1.10='[13;1HMale   Gender Text  :';it.1.11='[14;1HFemale Gender Text  :';it.1.12='[16;1HSeparator Char Line :'
  it.1.13='[17;1HTerminate Char Line :';it.1.14='[19;1HUse CNet "Stock" BBS ';it.1.15='[20;1HUse "Frontiers"  BBS ';it.1.16='[4;51HSHOW EXAMPLE LAYOUT  '
  it.1.17='[6;51H BG :';it.1.18='[7;51H BG :';it.1.19='[8;51H BG :';it.1.20='[9;51H BG :';it.1.21='[10;51H BG :';it.1.22='[11;51H BG :';it.1.23='[13;51H BG :'
  it.1.24='[14;51H BG :';it.1.25='[16;51H BG :';it.1.26='[17;51H BG :';it.1.27='[19;51HCREATE 'left(vw' WHO',10)'    ';it.1.28='[20;51HCREATE ALL WHO FILES '
  it.1.29='[6;63H FG :';it.1.30='[7;63H FG :';it.1.31='[8;63H FG :';it.1.32='[9;63H FG :';it.1.33='[10;63H FG :';it.1.34='[11;63H FG :';it.1.35='[13;63H FG :'
  it.1.36='[14;63H FG :';it.1.37='[16;63H FG :';it.1.38='[17;63H FG :'
  z.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 '
  zR.2='03-20-03-04-21-04-05-22-05-06-23-06-07-24-07-08-25-08-09-26-09-10-27-10-11-28-11-12-29-12-13-30-13-14-31-14-15-32-15-16-33-16-17-34-17-18-35-37-18-19-36-38-19'
  zL.2='38-36-19-38-37-35-18-37-34-17-34-33-16-33-32-15-32-31-14-31-30-13-30-29-12-29-28-11-28-27-10-27-26-09-26-25-08-25-24-07-24-23-06-23-22-05-22-21-04-21-20-03-20'
  zD.2='01-02-03-04-05-06-07-08-09-10-11-12-13-14-15-16-17-18-19-01-20-21-22-23-24-25-26-27-28-29-30-31-32-33-34-35-36-37-38-20'
  zU.2='38-37-36-35-34-33-32-31-30-29-28-27-26-25-24-23-22-21-20-38-19-18-17-16-15-14-13-12-11-10-09-08-07-06-05-04-03-02-01-19'
  it.2.1 ='[1;1H<< Toggle Switches   ';it.2.2 ='[3;1H<< Exit              ';it.2.3 ='[4;1H<< Previous Screen   ';it.2.4 ='[6;1HPort Number Digits  :'
  it.2.5 ='[7;1HHide/Muffle Flags   :';it.2.6 ='[8;1HUser Handle Text    :';it.2.7 ='[9;1HLogon  Time Text    :';it.2.8 ='[10;1HCPS Speed Text      :'
  it.2.9 ='[11;1HCity/State/Country  :';it.2.10='[12;1HWhere Text String   :';it.2.11='[13;1HLast Call Date Text :';it.2.12='[14;1HHistory * Flag      :'
  it.2.13='[15;1HTime Today Minutes  :';it.2.14='[16;1HWho Banner Text     :';it.2.15='[17;1HGlimpse Text Color  :';it.2.16='[18;1HColons After LC/TT  :'
  it.2.17='[19;1HAgain/Handle/Misc...:';it.2.18='[21;1HLast Call Date Text :';it.2.19='[22;1HTime Used Today Text:';it.2.20='[4;33HSHOW EXAMPLE LAYOUT  '
  it.2.21='[6;33HCommand Keywords    :';it.2.22='[7;33HCommand Brackets    :';it.2.23='[8;33HOther Command Text  :';it.2.24='[9;33HHistory/Histories...:'
  it.2.25='[10;33HWho/Port, etc...    :';it.2.26='[11;33HQuit/User, etc...   :';it.2.27='[12;33HHistory Title Bar   :';it.2.28='[13;33HDefault History Text:'
  it.2.29='[14;33HBanners Title Bar   :';it.2.30='[15;33HBanner SubTitles    :';it.2.31='[16;33HSubTitle Underscores:';it.2.32='[17;33HWord "Banner"       :'
  it.2.33='[18;33HBanner Number       :';it.2.34='[19;33HBanner Colons       :';it.2.35='[21;33H FG :';it.2.36='[22;33H FG :';it.2.37='[21;49H BG :';it.2.38='[22;49H BG :'
  z.3=' 3 4 5 6 7 8 11 12 13 14 15 16 ';zR.3='03-11-03-04-12-04-05-13-05-06-14-06-07-15-07-08-16-08'
  zL.3='16-08-16-15-07-15-14-06-14-13-05-13-12-04-12-11-03-11';zD.3='01-02-03-04-05-06-07-08-09-10-01-11-12-13-14-15-16-11'
  zU.3='16-15-14-13-12-11-16-10-09-08-07-06-05-04-03-02-01-10';it.3.1 ='[1;1H<< Edit Data Colors  '
  it.3.2 ='[3;1H<< Exit              ';it.3.3 ='[4;1H<< Previous Screen   '
  it.3.4 ='[6;1HShow Idle Minutes   :';it.3.5 ='[7;1HShow Idle Banners   :'
  it.3.6 ='[8;1HMultiple Banners    :';it.3.7 ='[9;1HSkip Idle Ports     :'
  it.3.8 ='[10;1HSkip Hidden Ports   :';it.3.9 ="[11;1HAllow Banner MCI's  :"
  it.3.10="[12;1HAllow SysOp  MCI's  :";it.3.11='[4;33HReLoad "IdlePorts"   '
  it.3.12='[6;33HClear Screen Before :';it.3.13='[7;33HEmpty Port Block    :'
  it.3.14='[8;33HPort to Skip FROM   :';it.3.15='[9;33HPort to Skip TO     :'
  it.3.16='[10;33HFake Idle Minutes?  :'
  z.4=' 2 3 ';zR.4='02-03-02';zL.4='03-02-03';zD.4='01-02-01-03-03'
  zU.4='03-03-02-01-02';it.4.1='[2;1H<< Abort Exit        '
  it.4.2='[4;1HSave changes         ';it.4.3='[4;26HExit without saving  '
  df.1.1='PortUser nameLogonSpdFromWhereMaleFemale-=x'
  df.1.2='01010101010174710202x'
  df.1.3='7377766737577777777777777777LC07TT07x'
  df.1.4='11100000110x'
  df.2.1='PortUser HandleLogonSpdFromWhereMaleFemale-=x'
  df.2.2='6464646464644f1b060cx'
  df.2.3='fbedb69ab9adfea76fbdea9eadbaLC46TT46x'
  df.2.4='11100000110x'; return
LAYOUT:;do i=1 to 19 by 2;c.i='z's1.i;end i;do i=2 to 20 by 2;c.i='c's1.i;end i
  do i=1 to 34;k.i='c's2.i;end i;k.31='z's2.31;k.34='z's2.34
  if v=1 then do;tr 'f1n3'c.1||c.2||left(s0.1,4)'z0 'c.3||c.4||left(s0.2,20)'z0 'c.11||c.12||left(s0.6,17)'z0'
  tr c.19||c.20||copies(s0.10,4)'z0 'c.19||c.20||copies(s0.10,20)'z0 'c.19||c.20||copies(s0.10,17)'z0'
  tr k.1' 0 'k.2'+ 'k.3'Dotoran              'k.7'Idle 'k.2'7 'k.8'Minutes';tr k.1' 1 'k.2'h 'k.3'Seductress           'k.7'Long WHO'
  tr k.1' 2   'k.3'<No One>             'k.7'Idle 'k.2'12 'k.8'Minutes';tr c.19||c.20||copies(s0.10,43)'z0n2';tr 'c7Press any key...g1';end
  if v=2 then do;tr 'f1n3'c.1||c.2||left(s0.1,4)'z0 'c.3||c.4||left(s0.2,20)'z0 'c.5||c.6||left(s0.3,6)'z0 'c.7||c.8||left(s0.4,3)'z0 'c.9||c.10||left(s0.5,24)'z0 'c.11||c.12||left(s0.6,17)'z0'
  tr c.19||c.20||copies(s0.10,4)'z0 'c.19||c.20||copies(s0.10,20)'z0 'c.19||c.20||copies(s0.10,6)'z0 'c.19||c.20||copies(s0.10,3)'z0 'c.19||c.20||copies(s0.10,24)'z0 'c.19||c.20||copies(s0.10,17)'z0'
  tr k.1' 0 'k.2'+ 'k.3'Dotoran               'k.4'8:06p 'k.5'576 'k.6'Buffalo, NY          USA 'k.7'Idle 'k.2'7 'k.8'Minutes'
  tr '[37C'k.11"I'm the SysOp Here! Type OL0! & Say Hi!";tr k.1' 1 'k.2'h 'k.3'Seductress            'k.4'8:06p 'k.5'576 'k.6'Buffalo, NY          USA 'k.7'Long WHO'
  tr '[37C'k.11'Hey Good Looking, What Ya Got Cooking?';tr k.1' 2   'k.3'<This is a LOCAL Port used for TESTING Purposes>         'k.7'Idle 'k.2'12 'k.8'Minutes';tr c.19||c.20||copies(s0.10,79)'z0n2';tr 'c7Press any key...g1';end
  if v=3 then do;tr 'f1n3'c.1||c.2||left(s0.1,4)'z0 'c.3||c.4||left(s0.2,20)'z0 'c.5||c.6||left(s0.3,6)'z0 'c.7||c.8||left(s0.4,3)'z0 'c.9||c.10||left(s0.5,24)'z0 'c.11||c.12||left(s0.6,17)'z0'
  tr c.19||c.20||copies(s0.10,4)'z0 'c.19||c.20||copies(s0.10,20)'z0 'c.19||c.20||copies(s0.10,6)'z0 'c.19||c.20||copies(s0.10,3)'z0 'c.19||c.20||copies(s0.10,24)'z0 'c.19||c.20||copies(s0.10,17)'z0'
  tr k.1' 0 'k.2'+ 'k.3'Dotoran               'k.4'8:06p 'k.5'576 'k.6'Buffalo, NY          USA 'k.7'Idle 'k.2'7 'k.8'Minutes'
  tr k.30||k.31||center(s2.29,4)"z0"k.13": "k.8"23-Feb "c.13||c.14||center(s0.7,8)"z0 "k.9"*"k.33||k.34||center(s2.32,4)"z0"k.13": "k.10"48      "k.11"I'm the SysOp Here! Type OL0! & Say Hi!n1"
  tr k.12'These three(3) lines are your personal "Glimpse" file, and may be edited by';tr 'pressing "G" from the prompt below. Your "History" file is a text file of up to'
  tr '20 lines, where you may wish to supply even more "words of wisdom/info"!';tr c.17||c.18||copies(s0.9,79)'z0';tr k.1' 1 'k.2'h 'k.3'Seductress            'k.4'8:06p 'k.5'576 'k.6'Buffalo, NY          USA 'k.7'Long WHO'
  tr k.30||k.31||center(s2.29,4)'z0'k.13': 'k.8'23-Feb 'c.15||c.16||center(s0.8,8)'z0 'k.9'*'k.33||k.34||center(s2.32,4)'z0'k.13': 'k.10'48      'k.11'Hey Good Looking, What Ya Got Cooking?';tr c.17||c.18||copies(s0.9,79)'z0'
  tr k.1' 2   'k.3'<This is a LOCAL Port used for TESTING Purposes>         'k.7'Idle 'k.2'12 'k.8'Minutes';tr c.19||c.20||copies(s0.10,79)'z0'
  tr k.17'Long 'k.19'Who 'k.16'['k.15'B'k.16']'k.15'anner'k.17', 'k.16'['k.15'G'k.16']'k.15'limpse'k.17', 'k.16'['k.15'V'k.16']'k.15'iew 'k.18'History'k.17', or 'k.16'['k.20'QUIT'k.16']'k.17': 'k.20'Quitn2'
  tr 'c7Press any key...g1';tr 'f1';do i=1 to 34;k.i='c's2.i;end i;tr k.23'r1 Your Short Who Banners r0n1';tr k.24' Current Banner';tr k.25'~~~~~~~~~~~~~~~~'
  tr k.26'Banner 'k.27'0'k.28': 'k.3"Hi, I'm New here! Buzz me and say Hi!n1"; tr k.24' Banners On File';tr k.25'~~~~~~~~~~~~~~~~~'
  do i=1 to 9;tr k.26'Banner 'k.27||i||k.28': 'k.3"Extra Banner (Type WHO B to edit Banner!)";end i
  tr 'n1'k.17'Edit 'k.16'['k.15'0'k.16'] 'k.17'thru 'k.16'['k.15'9'k.16']'k.17', 'k.16'['k.20'Q'k.16']'k.20'uit'k.17', or 'k.16'['k.15'P'k.16']'k.15'ick 'k.17'current? 'k.16'['k.15'Pick'k.16']'k.17': 'k.20'Quitn1'
  tr 'c7Press any key...g1';end;a='SCREEN'sc;signal (a)
READCONFIG:;call open(f1,'pfiles:who/Config.Data','r');line=readln(f1);do i=1 to 3
  con1.i=readln(f1);con2.i=readln(f1);con3.i=readln(f1);con4.i=readln(f1);end i;call close(f1)
READCONFIG2:;gh.=0;parse var line li107''li903''li1066''fak''li5''li4''j
  parse var gd.v.1 gt''gd;do i=1 to gt;parse var gd g''gd;gh.1.g=1;end i
  parse var gd.v.2 gt''gd;do i=1 to gt;parse var gd g''gd;gh.2.g=1;end i
  parse var gd.v.3 gt''gd;do i=1 to gt;parse var gd g''gd;gh.3.g=1;end i
  c1=con1.v;do i=1 to 10;parse var c1 s0.i''c1;end i
  c2=con2.v;do i=1 to 20;parse var c2 s1.i''c2;end i
  c3=con3.v;do i=1 to 34;parse var c3 s2.i''c3;end i
  c4=con4.v;do i=1 to 11;parse var c4 s3.i''c4;end i;call BBSTEXT
  if li4~=l4|li5~=l5|li107~=l107|li903~=l903|li1066~=l1066|fak~=fake then do
    call SAVECONFIG;signal READCONFIG;end;return
SAVECONFIG:;line=l107''l903''l1066''fake''l5''l4'x'
  c1='';do i=1 to 10;c1=c1||s0.i'';end i;con1.v=c1'x';c2='';do i=1 to 20;c2=c2||s1.i'';end i;con2.v=c2'x'
  c3='';do i=1 to 34;c3=c3||s2.i'';end i;con3.v=c3'x';c4='';do i=1 to 11;c4=c4||s3.i'';end i;con4.v=c4'x';save=0
  call open(f1,'pfiles:who/Config.Data','w');call writeln(f1,line);do i=1 to 3;call writeln(f1,con1.i);call writeln(f1,con2.i)
    call writeln(f1,con3.i);call writeln(f1,con4.i);end i;call close(f1);return
SCREEN1:;sc=1;it=3;tr 'f1@4z4c7Edit Data Colors   >>z0[24Cz7ccCNet/3 VisualDataEditorz0'
  tr 'z4c7Toggle Switches    >>z0[24Cz7ccUse cursor keys; ENTER to selectz0n1'
  tr 'z4c7<< Exit              z0[29Cz4c7SHOW EXAMPLE LAYOUT  z0n1'
  tr 'z4c7Port Heading        :z0 c3'left(s0.1,28)'z4c7 BG :z0 c3's1.1'[5Cz4c7 FG :z0 c3's1.2
  tr 'z4c7Handle Heading      :z0 c3'left(s0.2,28)'z4c7 BG :z0 c3's1.3'[5Cz4c7 FG :z0 c3's1.4
  tr 'z4c'g1(6)'Logon Heading       :z0 c'g2(6)||left(s0.3,28)'z4c'g1(19)' BG :z0 c'g2(19)||s1.5'[5Cz4c'g1(31)' FG :z0 c'g2(31)||s1.6
  tr 'z4c'g1(7)'CPS Heading         :z0 c'g2(7)||left(s0.4,28)'z4c'g1(20)' BG :z0 c'g2(20)||s1.7'[5Cz4c'g1(32)' FG :z0 c'g2(32)||s1.8
  tr 'z4c'g1(8)'Location Heading    :z0 c'g2(8)||left(s0.5,28)'z4c'g1(21)' BG :z0 c'g2(21)||s1.9'[5Cz4c'g1(33)' FG :z0 c'g2(33)||s1.10
  tr 'z4c7Where Heading       :z0 c3'left(s0.6,28)'z4c7 BG :z0 c3's1.11'[5Cz4c7 FG :z0 c3's1.12'n1'
  tr 'z4c'g1(10)'Male   Gender Text  :z0 c'g2(10)||left(s0.7,28)'z4c'g1(23)' BG :z0 c'g2(23)||s1.13'[5Cz4c'g1(35)' FG :z0 c'g2(35)||s1.14
  tr 'z4c'g1(11)'Female Gender Text  :z0 c'g2(11)||left(s0.8,28)'z4c'g1(24)' BG :z0 c'g2(24)||s1.15'[5Cz4c'g1(36)' FG :z0 c'g2(36)||s1.16'n1'
  tr 'z4c'g1(12)'Separator Char Line :z0 c'g2(12)||s0.9' 'copies(s0.9,20)'[6Cz4c'g1(25)' BG :z0 c'g2(25)||s1.17'[5Cz4c'g1(37)' FG :z0 c'g2(37)||s1.18
  tr 'z4c7Terminate Char Line :z0 c3's0.10' 'copies(s0.10,20)'[6Cz4c7 BG :z0 c3's1.19'[5Cz4c7 FG :z0 c3's1.20'n1'
  tr 'z4c7Use CNet "Stock" BBS z0[29Cz4c7CREATE 'left(vw' WHO',10)'    z0'
  tr 'z4c7Use "Frontiers"  BBS z0[29Cz4c'g1(28)'CREATE ALL WHO FILES z0';signal START
SCREEN2:;sc=2;it=3;tr 'f1@4z4c7<< Toggle Switches   z0[24Cz7ccCNet/3 VisualDataEditorz0'
  tr '[45Cz7ccUse cursor keys; ENTER to selectz0';tr 'z4c7<< Exit              z0'
  tr 'z4c7<< Previous Screen   z0[11Cz4c7SHOW EXAMPLE LAYOUT  z0n1'
  tr 'z4c7Port Number Digits  :z0 c3's2.1'[9Cz4c'g1(21)'Command Keywords    :z0 c'g2(21)||s2.15
  tr 'z4c7Hide/Muffle Flags   :z0 c3's2.2'[9Cz4c'g1(22)'Command Brackets    :z0 c'g2(22)||s2.16
  tr 'z4c7User Handle Text    :z0 c3's2.3'[9Cz4c'g1(23)'Other Command Text  :z0 c'g2(23)||s2.17
  tr 'z4c'g1(7)'Logon  Time Text    :z0 c'g2(7)||s2.4'[9Cz4c'g1(24)'History/Histories...:z0 c'g2(24)||s2.18
  tr 'z4c'g1(8)'CPS Speed Text      :z0 c'g2(8)||s2.5'[9Cz4c'g1(25)'Who/Port, etc...    :z0 c'g2(25)||s2.19
  tr 'z4c'g1(9)'City/State/Country  :z0 c'g2(9)||s2.6'[9Cz4c'g1(26)'Quit/User, etc...   :z0 c'g2(26)||s2.20
  tr 'z4c7Where Text String   :z0 c3's2.7'[9Cz4c'g1(27)'History Title Bar   :z0 c'g2(27)||s2.21
  tr 'z4c'g1(11)'Last Call Date Text :z0 c'g2(11)||s2.8'[9Cz4c'g1(28)'Default History Text:z0 c'g2(28)||s2.22
  tr 'z4c'g1(12)'History * Flag      :z0 c'g2(12)||s2.9'[9Cz4c'g1(29)'Banners Title Bar   :z0 c'g2(29)||s2.23
  tr 'z4c'g1(13)'Time Today Minutes  :z0 c'g2(13)||s2.10'[9Cz4c'g1(30)'Banner SubTitles    :z0 c'g2(30)||s2.24
  tr 'z4c'g1(14)'Who Banner Text     :z0 c'g2(14)||s2.11'[9Cz4c'g1(31)'SubTitle Underscores:z0 c'g2(31)||s2.25
  tr 'z4c'g1(15)'Glimpse Text Color  :z0 c'g2(15)||s2.12'[9Cz4c'g1(32)'Word "Banner"       :z0 c'g2(32)||s2.26
  tr 'z4c'g1(16)'Colons After LC/TT  :z0 c'g2(16)||s2.13'[9Cz4c'g1(33)'Banner Number       :z0 c'g2(33)||s2.27
  tr 'z4c'g1(17)'Again/Handle/Misc...:z0 c'g2(17)||s2.14'[9Cz4c'g1(34)'Banner Colons       :z0 c'g2(34)||s2.28'n1'
  tr 'z4c'g1(18)'Last Call Date Text :z0 c'g2(18)||left(s2.29,4)'[6Cz4c'g1(35)' FG :z0 c'g2(35)||s2.30'[9Cz4c'g1(37)' BG :z0 c'g2(37)||s2.31
  tr 'z4c'g1(19)'Time Used Today Text:z0 c'g2(19)||left(s2.32,4)'[6Cz4c'g1(36)' FG :z0 c'g2(36)||s2.33'[9Cz4c'g1(38)' BG :z0 c'g2(38)||s2.31;signal START
SCREEN3:;sc=3;it=3;tr 'f1@4z4c7<< Edit Data Colors  z0[24Cz7ccCNet/3 VisualDataEditorz0'
  tr '[45Cz7ccUse cursor keys; ENTER to selectz0';tr 'z4c7<< Exit              z0'
  tr 'z4c7<< Previous Screen   z0[11Cz4c7ReLoad "IdlePorts"   z0n1'
  tr 'z4c7Show Idle Minutes   :z0 c3'left(subword('No Yes',s3.1+1),3)'[7Cz4c7Clear Screen Before :z0 c3'left(subword('No Yes',s3.9+1),3)
  tr 'z4c'g1(5)'Show Idle Banners   :z0 c'g2(5)||left(subword('No Yes',s3.2+1),3)'[7Cz4c7Empty Port Block    :z0 c3'left(subword('No Yes',s3.6+1),3)
  tr 'z4c'g1(6)'Multiple Banners    :z0 c'g2(6)||left(subword('No Yes',s3.3+1),3)'[7Cz4c7Port to Skip FROM   :z0 c3'left(s3.7,2)
  tr 'z4c7Skip Idle Ports     :z0 c3'left(subword('No Yes',s3.4+1),3)'[7Cz4c7Port to Skip TO     :z0 c3'left(s3.8,2)
  tr 'z4c7Skip Hidden Ports   :z0 c3'left(subword('No Yes',s3.5+1),3)'[7Cz4c7Fake Idle Minutes?  :z0 c3'left(fake%10,3)
  tr "z4c"g1(9)"Allow Banner MCI's  :z0 c"g2(9)||left(subword('No Yes',s3.10+1),3)
  tr "z4c"g1(10)"Allow SysOp  MCI's  :z0 c"g2(10)||left(subword('No Yes',s3.11+1),3);signal START
SCREEN4:;sc=4;it=2;if save=0 then do;tr 'f1n2';exit;end;tr 'f1z4c7                     z0[24Cz7ccCNet/3 VisualDataEditorz0'
  tr 'z4c7<< Abort Exit        z0[24Cz7ccUse cursor keys; ENTER to selectz0n1'
  tr 'z4c7Save changes         z0[4Cz4c7Exit without saving  z0';signal START
G1:;arg a;return substr('70',gh.sc.a+1,1)
G2:;arg a;return substr('30',gh.sc.a+1,1)
EDIT:;parse arg v1,v2,v3;z=0;if v3=1 then z=16;if v3=2 then z=64;se "L1305640 #"v1"}[sz3c4V1305640 %-"v2"."v2"s}[uI"4100+z" "v2"}z0";gu 70;return result
BBSTEXT:;l4=BBSLINE(1,4);l5=BBSLINE(1,5);l107=BBSLINE(1,107);l903=BBSLINE(1,903);l1066=BBSLINE(1,1066);fake=430;return
BBSLINE: procedure;arg ty,li;getuser 1402018+(ty*4);ln=import(import(offset(x2c(d2x(result,8)),(li-1)*4),4),1024);parse var ln ln'00'x .;return ln
SYNTAX:;ERROR:;IOERR:;e1=' Error: 'rc' ('errortext(rc)')';e2='  Line: 'left(sigl,4)'File:';gu 1311992;a=result
  gu 1311960;b=result;c='"'a||b'"';e2=e2' 'c;tr e1;tr e2;logentry e1;logentry e2;e=sourceline(sigl)
  do while e~='';e3='Source: 'left(e,37);tr e3;logentry e3;e=substr(e,38);end;bufferflush;exit
/** Last Edited: 15-Oct-95 ************************************************\
\****************************************** Frontiers BBS (716)/823-9892 **/
