/* call on HALT */;Arg configdir task ansi me baud user;ver='v2.06a';if key = '' then key = '%';if baud='0' then baud='19200';'@echo off';config=configdir''cdcar''task'.cfg';f=1;do until lines(config)=0; param.f=linein(config); f=f+1;end;ok=stream(config,c,'close');parse var param.1 disk junk;parse var param.2 menutype junk;parse var param.3 homedir junk;parse var param.4 maxdir junk;parse var param.5 download junk;parse var param.6 fnum junk;parse var param.7 type junk
parse var param.8 marea junk;parse var param.9 tnode junk;parse var param.10 fnode junk;parse var param.11 sysopfirst sysoplast nextname nextname2 junk;parse var param.12 stype junk;parse var param.13 smarea junk;parse var param.15 pl junk;parse var param.17 standalone junk;parse var param.18 all junk;parse var param.19 eyes junk;parse var param.21 days junk;;configcd=configdir''cdcar||task'.cfg';f=1;do until lines(configcd)=0; if f > 24 then default.f=linein(configcd); else scrap=linein(configcd); f=f+1;end;cdes=f-24
if cdes = 1 then cdes = 2;ok=stream(config,c,'close');sys=configdir''cdcar||task'.sys';f=1;do until lines(sys)=0; sysparam.f=linein(sys); f=f+1;end;ok=stream(sys,c,'close');parse var sysparam.1 priv;parse var sysparam.2 key1;parse var sysparam.3 key2;parse var sysparam.4 key3;parse var sysparam.5 key4;parse var sysparam.6 key5;parse var sysparam.7 key6;parse var sysparam.8 key7;parse var sysparam.9 key8;if key='' then key='%';reqflag='0'
if ansi=2 then ansi = 0;if left(sysoplast,1)=';' then sysoplast='' ;if nextname <>'NEXTNAME' then if left(nextname,1)<>';' then sysoplast=sysoplast nextname;if left(nextname,1)<>';' then if nextname2 <>'NEXTNAME2' then if left(nextname2,1)<>'' then sysoplast=sysoplast nextname2;parse var user first2 mid2 last2 last3;incr=1;nmi='NO';alias='NO';;if last3<>'' then last2=last2 last3;;if last2='' then do; nmi='YES'; first=first2; last=mid2; mid='';end;if mid2='' then do; alias='YES'; first=first2
last=''; mid='';end;if nmi='NO' then do; first=first2; mid=mid2; last=last2;end ;;if last3<>'' then nmi='NO4';;;grn='';yel='';red='';blu='';cyan='';brt='';gry=')';lo=''
if ansi=1 then do; grn=''; yel=''; red=''; blu=''; cyan=''; brt=''; gry=''; lo='';end;deltag=0;o=1;eye=20 ;maxver=0 ;tc=1;incrd=1;incrr=1;reqflg=0;call RxFuncAdd 'SysloadFuncs','RexxUtil','Sysloadfuncs';call sysloadfuncs
file=homedir'disk.lst';;newqq = rxqueue('create');oqq = rxqueue('set',newqq);wait:;call sysfiletree homedir'disk'task'.bsy', 'wait.', 'F';if wait.0<>0 then call syssleep 1;if wait.0<>0 then signal wait;call lineout homedir'disk'task'.bsy', 'busy';do until lines(file)=0; quein=linein(file); queue quein;end;count=queued();close=stream(file,c,'close');close=stream(homedir'disk'task'.bsy',c,'close');'@del 'homedir'disk'task'.bsy >nul';do until count=0;parse pull data;parse upper value data with level loc disks diskdesc
parse upper var disk disku ;if disks=disku then signal done;count=queued();end;done:;call rxqueue 'delete',newqq;call rxqueue 'set',oqq ;;call sysfiletree homedir'*.d'task, 'hmmm.', 'F';if hmmm.0 <> 0 then '@del 'homedir'*.d'task '>nul';menu:;/*signal on HALT NAME menu */; if ansi=1 then if menutype=0 then do;say'HOS/2OS/2OS/2OS/2OS/2';say'1HOS/2OS/2OS/2OS/2OS/2OS/2OS';say'7H/2OS/2OS/2OS/2OS/2OS/2OS/2OS';say'5H/2OS/2HS 0HOH/H' ;say'0HCD Carousel Door0HSH25H'ver'0H/';say'HO0HBy Bill Esposito0H2HS0HOH/1H'
say'1H 4H 9H 0HSH2';say'1HThe Selected CD is: 'disk' 0H/HO';say'9H 0H21HS3H ';say'11HChange CD40H 80HO';say'1H/80HS1H228H File Area Selec';say'45Ht 80H/1HO80H21HS';say'28H Search by Filename/Text80HO1H/80HS';say'1H228H Bulletins 65H ';say'80H/1HO80H21HS26H ';say'27H ?Help 63H 80HO';say'1H/80HS1H230HQuit back to BBS';say'80H/1HO55HUser: 'user '80H21HS';say'28H 62HNode 'task'80HO1H/2OS/2O';say'8HS/2OS/2OS/2OS/2OS/2OS/2OS/2';say'35HOS/2OS/2OS/2OS/2OS/2OS/2';say'59HOS/2OS/2OS/2OS/2OS/2OS';say'1H';; end;
if ansi='0' then if menutype=0 then do; '@cls'; say 'OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2'; say ; say ' CD Carousel Door '; say ' 'ver ; say ' By Bill Esposito'; say ' * UnRegistered *'; say ; say ' The Currently Selected CD is: 'disk; say ; say ' C)hange Disk'; say ; say ' F)ile Area ' ; say ; say ' S)earch by Filename/Text'; say ; say ' B)ulletins '; say; say ' ?)Help'
say ; say ' Q)uit Back to BBS User: 'user; say ' Node 'task; say 'OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2OS/2';;; end ;;if menutype=1 then do; say; say brt||yel' CD Carousel Door: 'red||disk; say; say brt||yel||'C'gry'hange disk 'brt||yel'F'gry'ile area Select 'brt||yel'S'gry'earch by Filename/Text' ; say brt||yel'B'gry'ulletins 'brt||yel'Q'gry'uit to main 'brt||yel'?'gry'Help' ;end;pull sel;restart:;if sel = 'B' then call bull;if sel = '?' then call help;if sel='C' then call change_disk
if sel='C' then call menu;if sel ='F' then call filearealst;if reqflag=1 then do; if sel = 'Q' then call quit;end; if def=1 then if sel = 'Q' then call quit; if sel = 'Q' then call quit1; if sel ='S' then call find;signal menu;;/* file area list */;filearealst:;close=stream(file,c,'close');more = 1;file=homedir''disk'\names.lst';'@cls';;/* Read */;read: ;x=1
y='1';tc=1;call rxqueue 'delete',newqq;call rxqueue 'set',oqq ;tl=length(file);bsy=left(file,(tl-3))||'bsy';wait1:;call sysfiletree bsy, 'wait.', 'F';if wait.0<>0 then call syssleep 1;if wait.0<>0 then signal wait1;call lineout bsy, 'busy';open=stream(file,c,'open');linein(file,1,0) ;newqq = rxqueue('create');oqq = rxqueue('set',newqq);do until lines(file)=0; quein=linein(file); queue quein;end;count=queued()
close=stream(file,c,'close');close=stream(bsy,c,'close');'@del 'bsy '>nul';loop2:;count=queued();if more <> 3 then '@cls';name.=0 ;eye=20 ;if sel <> 'F' then if sel <> '?' then if sel <> 'B' then eye=10;if sel = 'S' then eye=10;if eyes=1 then eye=20;if sel = 'C' then eye=10;;do i=1 to eye; xx=right(x,2); if sel='F' then do; count=queued(); if count = 0 then signal more ; parse pull data ; parse value data with name5 fuldir dirdesc
/* parse value linein(file) with name5 fuldir dirdesc */; dirdesc=strip(dirdesc); name.i=xx'. 'left(name5,10) dirdesc; fulldir.i=fuldir; end ; if sel<>'F' then if sel <>'B' then if sel <>'?' then if sel <> 'C' then do; count=queued(); if count = 0 then signal more ; parse pull data ; parse value data with disks diskdesc; name.i= xx'. 'disks' 'strip(diskdesc); end ; else if sel<>'F' then if sel <>'B' then if sel <>'?' then do; count=queued(); if count = 0 then signal more ; parse pull data ; count=queued(); parse value data with level loc disks diskdesc ; /* parse value linein(file) with level loc disks diskdesc */; if me=1 then key = '%'
if me=1 then loc = '%'; if me=1 then priv = 10; if pl=1 then key = '%'; if pl=1 then loc = '%'; if pl=1 then priv = 10; if priv < level then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key1 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key2 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key3 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key4 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key5 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key6 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key7 then name.i= level loc xx'. CDROM Not Available at your access level.'; if loc <> key8 then name.i= level loc xx'. CDROM Not Available at your access level.'; if priv >= level then if loc = key1 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = key2 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = key3 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = key4 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = key5 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = key6 then name.i= level loc xx'. 'disks' 'strip(diskdesc)
if priv >= level then if loc = key7 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = key8 then name.i= level loc xx'. 'disks' 'strip(diskdesc); if priv >= level then if loc = '%' then name.i= level loc xx'. 'disks' 'strip(diskdesc); end; if sel = 'B' then do; count=queued(); if count = 0 then signal more ; parse pull data ; count=queued(); end ; se=0; if more=3 then do; parse var name.i level loc number nam diskdesc; name.i = level loc right(number,3) nam diskdesc;end ; if sel='F' then do; parse var name.i num name5 dirdesc; dirdesc=strip(dirdesc); say brt||yel||right(num,3)||grn||left(name5,10) cyan||dirdesc; end
if sel <>'F' then if sel <> 'B' then if sel <> '?' then if sel <> 'C' then do; parse var name.i num fn sz dt dc; replay.tc=name.i; pp=45; ptp=46; ppp=1; do until ppp=0; if substr(dc,pp,1) <>" " then if substr(dc,ptp,1) <>" " then pp=pp-1; if substr(dc,pp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then pp=pp+1; end; diskdesc2=substr(dc,pp+1,pp+75); name2.i=' 'diskdesc2; name2.i=left(name2.i,79);;;; say brt||red||right(num,3)||yel||left(fn,13)||red||right(sz,8)||grn||right(dt,9)' 'cyan||strip(left(dc,pp)); if eyes<>1 then say lo||cyan||left(name2.i,79)
end ; if sel = 'C' then do; ast=' '; name.i=left(name.i,79); parse var name.i level loc num disk6 diskdesc; u=1; paramno=24; do until u = cdes; paramno=paramno+1; parse upper var default.paramno dcd3 junk; parse upper var disk6 curcd1 junk; if dcd3=curcd1 then ast=' *'; u=u+1; end ; say brt||red||right(num,3)||yel||left(disk6,10)||grn||ast||cyan||strip(diskdesc); end; ; if sel = 'B' then say brt||cyan||data; if more=0 then if count=0 then signal more; if more=1 then if count=0 then signal more
if more=2 then if count=0 then signal more; if more=3 then do; if count=0 then call more; if count=0 then return; end; if count=0 then signal qdel; x=x+y;end;more:; x=1; say ; ; if more=1 then do; if count > 0 then say 'More? Select file area: ('red'['yel'Y'cyan'es'red']'cyan','yel'N'cyan'o,'yel'area#'cyan','yel'?'cyan'help)'; if count=0 then say 'Select file area: ('red'['yel'N'cyan'o'red']'cyan','yel'area#'cyan','yel'?'cyan'help)'; end ; ; if more=0 then do; say 'More? (Y,n)'; end
; if more=2 then do; if count>1 then say 'More? ('red'['yel'Y'cyan'es'red']'cyan','yel'N'cyan'o,'yel'file#'cyan','yel'I'cyan'nfo,'yel'L'cyan'ist-tagged,'yel'?'cyan'help)'; else say 'File#: ('red'['yel'N'cyan'o'red']'cyan','yel'file#'cyan','yel'I'cyan'nfo,'yel'L'cyan'ist-tagged,'yel'?'cyan'help)'; end; ; if more=3 then do; if count >0 then say 'More? Select Disk: ('red'['yel'Y'cyan'es'red']'cyan','yel'N'cyan'o,'yel'disk#'cyan','yel'?'cyan'help)'; if count=0 then say 'Select Disk? ('red'['yel'N'cyan'o'red']'cyan','yel'Q'cyan'uit,'yel'disk#'cyan','yel'?'cyan'help)'; end; yn=linein(); dt=datatype(yn); if dt<>'NUM' then do; if more=2 then if yn='I' then yn='i'; if more=2 then if yn='i' then call info; if more=2 then if yn='L' then yn='l'; if more=2 then if yn='l' then call list; if more=1 then if yn='?' then call help4; if more=2 then if yn='?' then call help2; if more=3 then if yn='?' then call help3
if count=0 then yn='N'; if more=3 then if count =0 then yn='N'; end; /* if more=2 then if yn='?' then call help2; if more=2 then if yn='I' then call info; if more=2 then if yn='i' then call info; if more=3 then if yn='?' then call help3*/; if yn='N' then signal qdel; if yn='n' then signal qdel; if yn='Q' then signal qdel; if yn='q' then signal qdel; if more=2 then do; if yn='' then if count = 1 then signal qdel; if yn='' then if count = 0 then signal qdel; if yn='Y' then if count = 0 then signal qdel; if yn='y' then if count = 0 then signal qdel; if yn='Y' then if count = 1 then signal qdel; if yn='y' then if count = 1 then signal qdel; dt=datatype(yn); if dt='NUM' then call tagger
if count=0 then if yn<>'' then yn='N'; end; if yn='Y' then if fs=1 then return ; if yn='y' then if fs=1 then return ; if yn='Y' then if fs <>1 then signal loop2; if yn='y' then if fs <>1 then signal loop2; if yn='' then do ; if count=0 then signal qdel; signal loop2; end; dt= datatype(yn); if dt='NUM' then if yn > i then yn=1; if more=1 then if dt='NUM' then call areasel; if more=3 then do; if dt<>'NUM' then yn=1; if dt='NUM' then do; call rxqueue 'delete',newqq; call rxqueue 'set',oqq ; end; if dt='NUM' then return
end ; if count=0 then return;if fs=1 then return;signal loop2;qdel:;call rxqueue 'delete',newqq;call rxqueue 'set',oqq ;close=stream(file,c,'close');signal menu;;more1:;say 'more? (Y,n)'; yn=linein();;if yn="N" then signal menu;if yn="n" then signal menu;count = 0;return;;tagger:
tag=yn;name3=name.tag;parse var name3 num filename date time desc;if filename <>'' then do; call sysfiletree homedir'*.r'task, 'file.', 'F'; if file.0=0 then firstime=1; u=1; paramno=24; do while u < cdes; paramno=paramno+1; parse upper var default.paramno dcd2 junk; parse upper var disk curcd; if dcd2=curcd then dcd=curcd; u=u+1; end ; if dcd=curcd then do;start=i-eye;cls; do repeat=start to i-1; parse var name.start num fn sz dt dc
pp=45; ptp=46; ppp=1; do until ppp=0; if substr(dc,pp,1) <>" " then if substr(dc,ptp,1) <>" " then pp=pp-1; if substr(dc,pp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then pp=pp+1; end; diskdesc2=substr(dc,pp+1,pp+75); name2.start=' 'diskdesc2; name2.start=left(name2.start,79); if name.start <>0 then do; say brt||red||right(num,3)||yel||left(fn,13)||red||right(sz,8)||grn||right(dt,9)' 'cyan||strip(left(dc,pp)); if eyes<> 1 then say lo||cyan||left(name2.start,79);; end ; start=start+1; end; if pl=0 then do
defaultd.incrd = disk nmi alias user level loc fulldirectory filename date time left(desc,44); incrd=incrd+1; end; if pl=1 then do; defaultd.incrd = disk nmi alias user level loc fulldirectory filename date time strip(left(desc,240)); incrd=incrd+1; end;; if maxver=1 then mecca.incr='P'download||filename; if maxver=0 then mecca.incr='J'download||filename; incr=incr+1; say grn||filename brt||red'has been Tagged'cyan; ok=stream(homedir''disk'.d'task,c,'close'); def=1; end; else do; if pl=0 then do; defaultr.incrr = disk nmi alias user level loc fulldirectory filename date time left(desc,44); incrr=incrr+1; end
if pl=1 then do; defaultr.incrr = disk nmi alias user level loc fulldirectory filename date time strip(left(desc,240)); incrr=incrr+1; end;start1:;start=i-eye;if start <1 then start=1;;cls; do repeat=start to i-1; parse var name.start num fn sz dt dc; pp=45; ptp=46; ppp=1; do until ppp=0; if substr(dc,pp,1) <>" " then if substr(dc,ptp,1) <>" " then pp=pp-1; if substr(dc,pp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then pp=pp+1; end
diskdesc2=substr(dc,pp+1,pp+75); name2.start=' 'diskdesc2; name2.start=left(name2.start,79); if name.start <>0 then do; if help2 <> 2 then say brt||red||right(num,3)||yel||left(fn,13)||red||right(sz,8)||grn||right(dt,9)' 'cyan||strip(left(dc,pp)); if help2 = 2 then say brt||yel||right(num,3)||grn||left(fn,13) cyan||strip(sz dt dc); if eyes<> 1 then say lo||cyan||left(name2.start,79); end; start=start+1; end;if help1=1 then signal skip; say grn||filename brt||red'has beed Tagged'cyan; ok=stream(homedir''disk'.r'task,c,'close'); reqflag=1; end ;end ;skip:;if help1=1 then help1=0;if help2=2 then help2=0;call more
return;;areasel:;name2=name.yn;fulldirectory=fulldir.yn;parse var name2 num areaname1 rest;areaname=strip(areaname1);file=homedir''disk'\'areaname'.bbs';more=2;sel='';call read;return;;change_disk:;;file=homedir'disk.lst';more=3;call dmenu;call read;name4=name.yn
parse var name4 level loc num disk1 cdrom;disk=strip(disk1);if disk = 'CDROM' then do;say 'You do not have access to that disk, please select another';say 'Press <ENTER> to continue'; ghgh=linein();end;if disk = 'CDROM' then signal change_disk;return;;bull:;more=0;file=homedir'cdbull.txt';call read;return;;help:;more=0;file=homedir'cdhelp.txt';sel = 'B'
call read;return;;dmenu:; if ansi=0 then do; '@cls'; say; say; say; say ; say ' CD Carousel Door'; say ' 'ver; say ' By Bill Esposito'; say; say ; say 'The Currently Selected CD is: 'disk; say ; say 'Note: CD'"'"'s marked with an * are on-line.'; say; end
; if ansi=1 then do; '@cls'; say; say; say; say; say ' CD Carousel Door'; say ' 'ver; say ' by Bill Esposito'; say; say ' '; say 'The Currently Selected CD is: 'disk; say ''; say red'Note:'cyan' CD'"'"'s marked with an 'grn'*'cyan' are on-line.'; say; end;return;find:;if sel = 'S' then eye=10
if eyes=1 then eye=20;notfound=0;more=4;count=0;i=0;'@cls';say;say;say;say;;if ansi=1 then say 'Enter Filename or search string? (any text or numbers, no wildcards)';if ansi=0 then say 'Enter Filename or search string? (any text or numbers, NO WILDCARDS)';say;what=linein();/*if what='' then '@del 'homedir||disk'.bsy >nul'*/;if what='' then signal menu;file=homedir''disk'\names.lst';loop3:;more=4
fs=1;z=1;ok=stream(file,c,'open read');newqq = rxqueue('create');oqq = rxqueue('set',newqq);do until lines(file)=0; quein=linein(file); queue quein;end;count=queued();ok=stream(file,c,'close');;do until z=40;/*linein(file,1,0)*/ ;zz=1;return1:;do until count=1;/*if yn='i'| sel = 'S' then count=count-i*/;count=queued() ;if yn='i' then if sel = 'S' then do
d=1; say; say brt||cyan'Directory: 'blu||drr||cyan||dirdesc1;; do until d=zz; say temp.d; d=d+1; end;end;if yn='i' then if sel = 'S' then call tag; parse pull data; parse value data with drr fulldirectory dirdesc; drrr=homedir''disk'\'drr'.bbs'; if dirdesc <>'' then dirdesc1='-'dirdesc; else dirdesc1='';; file.='';areaname=drr;say brt||cyan'Directory: 'blu||drr||cyan||dirdesc1; ok=sysfilesearch(what, drrr, 'file.')
read1: ;x=1;y='1';zz=1;name.0=0; do i=1 to file.0 ; if file.i<>'' then do; xx=right(x,2); name.i= xx'. 'file.i; if left(file.i,5) <>'FILE.' then do; parse var name.i num fn sz dt dc; pp=45; ptp=46; ppp=1; do until ppp=0; if substr(dc,pp,1) <>" " then if substr(dc,ptp,1) <>" " then pp=pp-1; if substr(dc,pp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then ppp=0; if substr(dc,ptp,1) =" " then pp=pp+1; end
diskdesc2=substr(dc,pp+1,pp+75); name2.i=' 'diskdesc2; name2.i=left(name2.i,79);;;; say brt||red||right(num,3)||yel||left(fn,13)||red||right(sz,8)||grn||right(dt,9)' 'cyan||strip(left(dc,pp)); if eyes<> 1 then say lo||cyan||name2.i; temp.zz=brt||red||right(num,3)||yel||left(fn,13)||red||right(sz,8)||grn||right(dt,9)' 'cyan||strip(left(dc,pp)); zz=zz+1; if eyes<> 1 then temp.zz=lo||cyan||name2.i; if eyes<> 1 then zz=zz+1;;; end; if left(file.i,5) <>'FILE.' then notfound=1;/* */; if datatype(i/eye,'W')=1 then call tag;end;x=x+y
end;if file.0 <>0 then call tag;z=z+y;end;skip2:;if count<>1 then call loop3;ok=stream(file,c,'close');call rxqueue 'delete',newqq;call rxqueue 'set',oqq;if notfound=0 then do; say ' Sorry, unable to find 'WHAT; say ' Press <ENTER> to continue'; ent=linein();end ;if notfound=1 then do; say ' Press <ENTER> to continue'; ent=linein();end ;call rxqueue 'delete',newqq;call rxqueue 'set',oqq
;/*'@del 'homedir||disk'.bsy >nul*/;;signal menu;;quit:;do jj=1 to incrd-1; if right(defaultd.JJ,9) <> '-DELETED-' then do;parse var defaultd.jj disk info; call lineout homedir''disk'.d'task,info;reqflg=1;end;end;ok=stream(homedir''disk'.d'task,c,'close');;do jj=1 to incrr-1;if right(defaultr.JJ,9) <> '-DELETED-' then do;parse var defaultr.jj disk info;call lineout homedir''disk'.r'task,info;reqflg=1
end;ok=stream(homedir''disk'.r'task,c,'close');end;;if reqflg<> 1 then signal theend ;;;file=homedir'disk.lst'; if ansi=0 then do; '@cls'; say ' CD Carousel Door'; say ' 'ver; say ' By Bill Esposito'; say; end; ; if ansi = 1 then do; '@cls' ; say ' CD Carousel Door'; say ' 'ver
say ' by Bill Esposito'; say '' ; end;if reqflag=1 then do;say First',';say ' You have requested the following files. You will receive a';say 'message for each sucessfully filled file request. Please K)ill';say 'these messages upon receipt. When posted, your files can be found';say 'for download in File Area 'fnum'.';say; ok=stream(file,c,'close');do until lines(file)=0; parse value linein(file) with priv lock disk1 diskdesc; disk=homedir''disk1'.r'task; ok=stream(disk,c,'close'); x=8; request=yes; dsk=no; do until lines(disk)=0; request=no
if nmi='NO' then if alias='NO' then do; parse value linein(disk) with nmi1 alias1 first1 mid1 last1 priv lock directory filename sz dt desc; end; if nmi='NO4' then if alias='NO' then do; parse value linein(disk) with nmi1 alias1 first1 mid1 last1 last2 priv lock directory filename sz dt desc; last1=last1 last2; end; if nmi='YES' then if alias='NO' then do; parse value linein(disk) with nmi1 alias1 first1 last1 priv lock directory filename sz dt desc; mid1=mid; end ; if alias='YES' then do; parse value linein(disk) with nmi1 alias1 first1 priv lock directory filename sz dt desc; mid1=mid; last1=''; end ; ; if x=20 then say; if x=20 then say 'Press <ENTER> to continue'; if x=20 then ak=linein()
if x=20 then x=8; if first1=first then if mid1=mid then if last1=last then do; if dsk=no then say; if dsk=no then say 'CD: 'disk1''; dsk=yes; say left(filename,12) left(desc,66); request=yes; req=yes; end ; x=x+1; end; end;ok=stream(file,c,'close');say;if def = 1 then say 'The files you selected from the On-Line CD'"'"'s (*) are available 'brt||red'now.';if def=1 then say ;if def=1 then say cyan'If you have problems downloading them, they will be waiting for you';if def = 1 then say 'in 'red'File Area 'fnum||cyan'.';end;if reqflag <> 1 then if def = 1 then do
h=1;;say first',';say;say 'The files you selected from the On-Line CD'"'"'s (*) are available 'brt||red'now.' ;say ;say cyan'If you have problems downloading them, they will be waiting for you' ;say 'in 'red'File Area 'fnum||cyan'.';if junk <> 0 then do;say;say 'These files will remain online for 'red||days||cyan' days.' ;end;end;say;say 'Press <ENTER> to continue';ak=linein();call msg;quit1:;'@cls';file=homedir'disk.lst'
ok=stream(homedir'disk.lst',c,'close');do until lines(file)=0; parse value linein(file) with disk1 diskdesc; ok=stream(homedir''strip(disk1)'\names.lst',c,'close');end ;ok=stream(file,c,'close');;if def=1 then do; siz=length(homedir); homedi=left(homedir,siz-1); drive=left(homedir,2); drive;do gggg=1 to incr-1;call lineout maxdir'cdload'task'.bbs',mecca.gggg;end;if maxver=0 then call lineout maxdir'cdload'task'.bbs','r∙';if maxver=1 then call lineout maxdir'cdload'task'.bbs','r∙garbage';'@del' maxdir'cddel'task'.bbs';call lineout maxdir'cddel'task'.bbs','D'maxdir'cdload'task'.bbs';
ok=stream(maxdir'cddel'task'.bbs',c,'close');ok=stream(maxdir'cdload'task'.bbs',c,'close');; '@cd' homedi; ; say cyan'Please wait, copying files............'; call cdmaint.cmd task 0 1;end;theend:;if me=1 then call cdmenu.cmd task;exit;;;tag: ; if count<>0 then say 'More, File# ? (Y,n,#,i)'; if count=0 then say 'File# ? (N,#,i)'; yn=linein(); ; if yn='N' then do; signal qdel
end ; if yn='n' then do; signal qdel; end ;if yn='I' then yn='i';if yn='i' then call info; dt=datatype(yn); if dt='NUM' then do; tag=yn; name3=name.tag; parse var name3 num filename date time desc; if filename <>'' then do; call sysfiletree homedir'*.r'task, 'file.', 'F'; if file.0=0 then firstime=1;; u=1; paramno=24; do while u < cdes; paramno=paramno+1; parse upper var default.paramno dcd2 junk
parse upper var disk curcd; if dcd2=curcd then dcd=curcd; u=u+1; end ; if dcd=curcd then do; if pl=0 then do; defaultd.incrd = disk nmi alias user level loc fulldirectory filename date time left(desc,44); incrd=incrd+1; end; if pl=1 then do; defaultd.incrd = disk nmi alias user level loc fulldirectory filename date time strip(left(desc,240)); incrd=incrd+1; end; def=1; if maxver=1 then mecca.incr='P'download||filename; if maxver=0 then mecca.incr='J'download||filename; /*mecca.incr='J'fulldirectory'\'filename */; incr=incr+1; end; else do
if pl=0 then do; defaultr.incrr = disk nmi alias user level loc fulldirectory filename date time left(desc,44); incrr=incrr+1; end; if pl=1 then do; defaultr.incrr = disk nmi alias user level loc fulldirectory filename date time strip(left(desc,240)); incrr=incrr+1; end; ok=stream(homedir''disk'.r'task,c,'close'); reqflag=1; end ; say grn||filename brt||red'has beed Tagged'cyan; end; end ; if yn='' then do ; if count=0 then signal qdel; return; end; if yn='Y' then do ; if count=0 then signal qdel
return; end; if yn='y' then do ; if count=0 then signal qdel; return; end;call tag; ok=stream(homedir''disk'.d'task,c,'close'); ok=stream(homedir''disk'.r'task,c,'close');return;msg:;if standalone = 1 then return;if all <> 0 then if req='YES' then if firstime <> 1 then if def = 1 then return;if def=1 then if req<>'YES' then return; /* MSGAPI */;if all=0 then cduser=user;else cduser='A User';address CMD 'rxsubcom drop msgapi';address CMD 'rxsubcom register MSGAPI rxmsgapi RXMSGAPI';address CMD 'rxsubcom load MSGAPI RXMSGAPI'
address MSGAPI;'OPEN_API 3 0';'OPEN_AREA MSG 'smarea' MSGAREA_NORMAL 'STYPE;'LOCK MSG';'OPEN_MSG MSGH MSG MOPEN_CREATE 0';cr = '0d'x;text = 'Hello 'SYSOPFIRST',' cr cr cduser' has requested a file from an off-line CD.' cr cr 'Please run CDMenu at your earliest convenience.' cr cr ' Thank you,' cr ' CD Carousel' cr cr cr '--- This File was brought to you by CD Carousel'cr ;controla = '01'x;control = controla || 'PID RXMSGAPI';xmsg.attr = 1;xmsg.from = CD Carousel;xmsg.to = SYSOPFIRST SYSOPLAST;xmsg.subj = 'File Request';xmsg.orig = tnode;xmsg.dest = fnode;hour=time('N');date2=date('S');year=left(date2,4);month=substr(date2,5,2);day=right(date2,2)
'CLOSE_API';address CMD 'rxsubcom drop msgapi';call syssleep 3;return;help2:;help1=1;cls;say brt||yel' CD Carousel 'ver;say;say cyan'"Y"'grn' = Yes, show the next page. If a response option is enclosed in brackets 'cyan'[]'grn',';say ' then that is the default action, hitting 'cyan'<enter>'grn' will select that option.';say cyan'"n"'grn' = No, quit to main menu.';say cyan'"#"'grn' = Enter the file number of the file you wish to tag. (ex. 3)';say cyan'"i"'grn' = Info; selecting this will prompt you for a file number. Entering';say ' the number will display the unabbreviated file description.';say cyan'"L"'grn' = List tagged files on current disk. You may delete files from this list';say cyan'"?"'grn' = Help' ;say;say yel'If you enter a file number, you will get a response stating that the file has';say 'been tagged.'
say;say grn'If the file is located on a CD which is currently 'cyan'online'grn' (denoted by an asteric';say '"*" in front of the disk description in the disk list) then that file(s) will';say 'be copied to File Area 'cyan||fnum||grn' after exiting CD Carousel, where you can ';say 'download it.';say;say yel'If the disk is 'cyan'offline'yel', then you will be notified by a message when the files';say 'have been put online for you to download. These files will also be available';say 'in File Area 'cyan||fnum||yel'.';say;say grn'Press any key to continue';ak=linein();signal start1;return;help3:;help1=1;cls;say;say brt||yel' CD Carousel 'ver;say
say brt||grn'Enter either the'cyan' disk number'grn' of the CD you want to browse, 'cyan'"y"'grn' to display the';say 'next page, or'cyan' "n"'grn' to quit back to the CD Carousel Main Menu.';say;say cyan'"Y"'grn' = Yes, show the next page. If a response option is enclosed in brackets 'cyan'[]'grn',';say ' then that is the default action, hitting 'cyan'<enter>'grn' will select that option.';say;say grn'If the CD is currently 'cyan'online'grn' (denoted by an asteric "*" in front of the disk';say 'description in the disk list) then the file(s) you select from that CD will be';say 'copied to File Area 'cyan||fnum||grn;say 'After exiting CD Carousel, you can download the file from that Area.';say;say yel'If the disk is 'cyan'offline'yel', then you will be notified by a message when the files';say 'have been put online for you to download. These files will also be available';say 'in File Area 'cyan||fnum||yel'.';say;say grn'Press any key to continue';ak=linein(); more=3; signal restart;return
help4:;help1=1;help2=2;cls;say brt||yel' CD Carousel 'ver;say;say cyan'"Y"'grn' = Yes, show the next page. If a response option is enclosed in brackets 'cyan'[]'grn',';say ' then that is the default action, hitting 'cyan'<enter>'grn' will select that option.';say cyan'"n"'grn' = No, quit to main menu.';say cyan'"#"'grn' = Enter the number of the File Directory you wish to go to. (ex. 3)';say cyan'"?"'grn' = Help' ;say;say;say grn'Press any key to continue';ak=linein();signal start1;return;info:;say 'Enter the number of the file you wish to see the complete description for:';fff=linein()
help1=1;cls;call wrapper;say;say grn'Press any key to continue';ak=linein();if yn='I' then if sel = 'S' then signal return1 ;if yn='i' then if sel = 'S' then signal return1; signal start1; wrapper:; colwrap=79; line=name.fff; ft=1; say brt||cyan' Complete File Description'; do until length(line)<colwrap; newline =left(line,colwrap); lastspace = lastpos(' ',newline); sendline = left(line,lastspace); line = substr(line,(lastspace+1)); if ft<>1 then say sendline
if ft=1 then do; parse var sendline num fn sz dt dc; say brt||yel||left(fn,13)||red||right(sz,8)||grn||right(dt,9)' 'lo||cyan||strip(dc); ft=0; end; end; say line; return;halt:;cls;say;say;say 'You hit CTRL-C and forced CD Carousel to terminate.';exit;list:;jj=1;ak=''; paramno=24; yup=0; uuu=1
do until uuu = cdes; paramno=paramno+1; parse upper var default.paramno dcd3 junk; parse upper var disk curcd1 junk; if dcd3=curcd1 then yup=1; uuu=uuu+1; end ;if yup=1 then signal list2;help1=1;cls;say brt||cyan' The following files were REQUESTED';say brt||blu' ----------------------------------'; if defaultr.jj='DEFAULTR.1' then do; say red'No files are tagged on this disk'; say; say cyan'Press any key to continue'; ak=linein(); signal start1; end;do jj=1 to incrr-1
parse var defaultr.jj minusone one two three four five six seven eight nine ten eleven ; if right(eleven,9) <>'-DELETED-' then say red||jj'.'brt||yel||left(eight,13)||red||right(nine,8)||grn||right(ten,9); else say red||jj'.'brt||yel||left(eight,13)||red||right(nine,8)||grn||right(ten,9)' 'red||right(eleven,9);end;say;deltag=0;say;say brt||cyan'Enter the file # you wish to 'brt||blu'Delete'cyan' or'brt||blu' Undelete'cyan' or hit 'yel'Q'cyan' to quit to file list';say 'Select ('yel'file#'cyan','yel'Q'cyan'uit):' ;ak=linein();ak=left(ak,1);if ak <> 'Q'|ak<>'q' then do; dt=datatype(ak); if dt='NUM' then do; parse var defaultr.ak minusone one two three four five six seven eight nine ten eleven;if right(eleven,9)<>'-DELETED-'then do; defaultr.ak=defaultr.ak' -DELETED-'; deltag=1; reqflg='0'; if ent<>'Q' then if ent<>'q' then signal list
end;if right(eleven,9)='-DELETED-'then do; rev=substr(reverse(defaultr.ak),10); defaultr.ak=reverse(rev); if ent<>'Q' then if ent<>'q' then signal list; end;end;signal start1;list2:;jj=1;help1=1;cls;list2:;help1=1;cls;say brt||cyan' The following files were REQUESTED';say brt||blu' ----------------------------------'; if defaultd.jj='DEFAULTD.1' then do; say red'No files are tagged on this disk'; say
say cyan'Press any key to continue'; ak=linein(); signal start1; end;do jj=1 to incrd-1; parse var defaultd.jj minusone one two three four five six seven eight nine ten eleven ; if right(eleven,9) <>'-DELETED-' then do; dltime= (nine/baud)/60; dltime=format(dltime,,2); parse var dltime hours'.'min1; min=left((min1*60),2); dltime=hours':'min;; end; if right(eleven,9) <>'-DELETED-' then say red||jj'.'brt||yel||left(eight,13)||red||right(nine,8)||grn||right(ten,9)||cyan' Download time is Approx 'red||dltime||cyan 'min.'; else say red||jj'.'brt||yel||left(eight,13)||red||right(nine,8)||grn||right(ten,9)' 'red||right(eleven,9);end;say;/*if deltag=1 then say red||gone||cyan' has been deleted from Request list'*/;deltag=0
say;say brt||cyan'Enter the file # you wish to 'brt||blu'Delete'cyan' or'brt||blu' Undelete'cyan' or hit 'yel'Q'cyan' to quit to file list';say 'Select ('yel'file#'cyan','yel'Q'cyan'uit):' ;ak=linein();ak=left(ak,1);if ak <> 'Q'|ak<>'q' then do; dt=datatype(ak); if dt='NUM' then do; parse var defaultd.ak minusone one two three four five six seven eight nine ten eleven;if right(eleven,9)<>'-DELETED-'then do; defaultd.ak=defaultd.ak' -DELETED-'; deltag=1; reqflg='0'; if ent<>'Q' then if ent<>'q' then signal list;end;if right(eleven,9)='-DELETED-'then do; rev=substr(reverse(defaultd.ak),10); defaultd.ak=reverse(rev); if ent<>'Q' then if ent<>'q' then signal list; end