WFC_SCRN.MOD - From ICENEWS - Feb 1993 4Odin #1 @76640 2ÄÍ7[4SysOp7]2ÍÄ 2Wednesday 03/10/93 710:07p ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³Name: WFCSCRN.MOD ³ ³Author: Odin #1@7664 (IceNET) - C stuff (My first 4.22 mod!) ³ ³ Jim #1@1 (IceNET) - Ansi ³ ³Version: 4.22 ³ ³Files Affected: BBS.C - hey nice huh? ³ ³Difficulty: ²°°°°°° - A monkey can do this one! ³ ³Description: Are you tired of the blinking cursor at the top of your ³ ³ WFC (waiting for call) screen. Well here is a nice ³ ³ record of your BBS while your board is inactive. ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ This mod has an on-screen clock using the computer clock. It shows the time in standard form (i.e. 3:30am). This mod also has a built in screen saver. The status box will move around the screen. It will return to its "home" 1/3 of the time. I like it though, so think before killing. Any colors not desired may be fixed by using code similar to the one marked /*SELECT COLOR*/ If you wish more colors to be excuded, duplicate the line and change the numbers. STEP 1: BACK UP YOUR SOURCES ------ STEP 2: Load in BBS.C and locate "void getcaller" ------ Before this line, block copy the following void into BBS.C: void wfc_window(int NoScreen) { int am, i, wx, wy, width, len, tmp, clr1, clr2, Imove; char otstr[30], d_o_w[3], day; double d; long hr, min,l, totspace; float ftmp; if(!NoScreen) { run_external1_x("ICE"); d=timer(); ftmp=d/3600.0; hr=(int) ftmp; ftmp=60.0*(ftmp-(float) hr); min=(int) ftmp; am=1; Imove=rand() % 3; /*MOVE*/ if(hr>11){ am=0; hr=hr-12; } if(hr==0) hr=12; wx=12; wy=6; if(Imove<2) { /*MOVE*/ wx=rand() % 24; /*MOVE*/ wy=rand() % 11; /*MOVE*/ } /*MOVE*/ width=55; len=9; randomize(); clr1=rand() % 10; clr2=rand() % 10; if(clr1==6) clr1=1; /*Changes red to blue */ /*SELECT COLOR*/ if(clr2==6) clr2=1; ansic(clr1); makewindow(wx,wy+2,width,len); ansic(clr2); makewindow(wx,wy,width,3); tmp=(width-strlen(syscfg.systemname))/2; movecsr(wx+tmp,wy+1); sprintf(otstr,"%s",syscfg.systemname); outs(otstr); movecsr(wx+width-8,wy+1); sprintf(otstr,"%2ld:%-2.2ld",hr,min); outs(otstr); movecsr(wx+width-3,wy+1); if(am) { sprintf(otstr,"am"); } else sprintf(otstr,"pm"); outs(otstr); day=dow(); if(day==0) sprintf(d_o_w,"Sun"); if(day==1) sprintf(d_o_w,"Mon"); if(day==2) sprintf(d_o_w,"Tue"); if(day==3) sprintf(d_o_w,"Wed"); if(day==4) sprintf(d_o_w,"Thu"); if(day==5) sprintf(d_o_w,"Fri"); if(day==6) sprintf(d_o_w,"Sat"); movecsr(wx+1,wy+1); sprintf(otstr,"%s %s",d_o_w,status.date1); outs(otstr); ansic(clr1); movecsr(wx+1,wy+3); sprintf(otstr,"Calls today : %4u",status.callstoday); outs(otstr); movecsr(wx+1,wy+4); sprintf(otstr,"Actvity : %5.2f%%" ,((float) status.activetoday)/14.4); outs(otstr); movecsr(wx+1,wy+5); sprintf(otstr,"Mail Waiting: %4u",fwaiting); outs(otstr); movecsr(wx+1,wy+6); sprintf(otstr,"Uploads : %4u",status.uptoday); outs(otstr); movecsr(wx+1,wy+7); sprintf(otstr,"Posts Today : %4u",status.msgposttoday); outs(otstr); movecsr(wx+1,wy+8); sprintf(otstr,"Total Users : %4u",status.users); outs(otstr); movecsr(wx+1,wy+9); sprintf(otstr,"Total Calls : %5ld",status.callernum1); outs(otstr); movecsr(wx+30,wy+4); sprintf(otstr,"Minutes : %4u",status.activetoday); outs(otstr); movecsr(wx+30,wy+5); sprintf(otstr,"Max Users : %4u",syscfg.maxusers); outs(otstr); movecsr(wx+30,wy+6); sprintf(otstr,"Com Port : %2u",syscfg.primaryport); outs(otstr); movecsr(wx+30,wy+7); sprintf(otstr,"NETxx Ver : %4u",status.net_version); outs(otstr); movecsr(wx+30,wy+8); sprintf(otstr,"WWIV Ver : %4u",status.wwiv_version); outs(otstr); movecsr(wx+30,wy+9); sprintf(otstr,"WWIV Reg. # : %5ld",syscfg.wwiv_reg_number); outs(otstr); movecsr(wx+30,wy+3); i=3; l=(long) freek(3); totspace=l; while ((l>0) && ((i+'@')<=cdir[0])) { i++; if ((i+'@')<=cdir[0]) { l=(long) freek(i); totspace+=l; } } sprintf(otstr,"HD Space : %8ldk",totspace); outs(otstr); ansic(0); movecsr(0,22); } } STEP 3: All the following changes/additions occur in void getcaller ------ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Legend ³ ³! - this line changed ³ ³+ - add this line ³ ³= - this there before ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ -In the declaration section, make the following changes: ! int i,i1,i2,i3,any,wfc_on, NoScreen; ! double d,d1,tstamp,tmp; -Search for "srand((unsigned int)d);". Then change accordingly. = srand((unsigned int)d); + wfc_window(NoScreen); + tstamp=timer(); wfc_on=1; = do { -Search for "attempt_callout();". Then change accordingly. = if ((!any) && ((rand() % 8000)==0) && (net_sysnum) && = (ok_modem_stuff)) { = attempt_callout(); + wfc_on=0; = any=1; -In the switch section, add these lines + case '=': + if (NoScreen) NoScreen=0; + else NoScreen=1; + break; -Search for "if ((comhit())". Change accordingly. = } = okskey=0; + wfc_on=0; = } = if ((comhit()) && (ok_modem_stuff) && (!lokb)) { any=1; -Search for "giveup". Change accordingly. = giveup_timeslice(); = } + tmp=timer()-tstamp; + if((!wfc_on) || (60<=tmp) || (0>tmp)) { + tstamp=timer(); + wfc_on=1; + wfc_window(NoScreen); } = } while ((!incom) && (!lokb) && (!endday)); STEP 4: Re-compile using TCC or BCC. ------ STEP 5: Place ICE.COM into your main BBS directory. A copy is at the end ------ of this mod. STEP 6: Copy BBS.EXE, RETURN.EXE, and INIT.EXE into your main BBS directory. ------ That's it. DISCLAIMER: Well, if your hard drive crashes, your BBS decides to nuke all ---------- the accounts, your sister runs away with the milkman, or you just screwed up, DON'T BLAME ME. This method worked great for me. The following is ICE.COM uuencoded. Use UUDECODE to return it to its original state and place it into your main BBS directory. section 1 of uuencode 5.13 of file ice.com by R.E.M. begin 644 ice.com M_+T@`8MN`(NF`@"+G@0`M$K-(:$L`(F&&@"+G@``_^,P`8H41@K2=`:T`LTA MZ_/#P`D6#`(!&`P9#1H.&P^?Z%)0Z)'H4!ZX1-=0N``"```;6S0P;1M;,DH; M6S([,4@;6S,[,4@;6S0[,4@;6S4[,4@;6S8[,4@;6S<[,4@;6SE#&ULP.S%M ML;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&Q ML;&QL;&QL;&QL;&QL;&QL;$;6S@[,4@;6SE#L;&QL;&QL;&QL;&QL;&QL;&Q ML;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;$; M6S,V;;&Q&ULY.S%(&ULY0QM;,S=ML;&QL;$;6S`[,S5ML;&QL;&QL;&QL;&Q ML;&QL;&QL;&QL;&QL;&QL;$;6W,*#0`;6W6QL;&QL;&QL;&QL;&QL;&QL;&Q ML;&QL;&QL1M;,3LS-VVQL1M;,S9ML;$;6S$P.S%(&ULY0QM;,S=ML;&QL;$; M6S`[,S5ML;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&Q ML;&QL;&QL;&QL;&QL;&QL1M;,3LS-VVQL1M;,S9ML;$;6S$Q.S%(&ULY0QM; M,S=ML;&QL;$;6S`[,S5ML;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&Q ML;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL1M;,3LS-VVQL1M;,S9ML;$;6S$R M.S%(&UMS"@T`&UMU&ULY0QM;,S=ML;&QL;$;6S`[,S5ML;&QL;&QL;&QL;&Q ML;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL;&QL1M; M,3LS-VVQL1M;,S9ML;$;6S$S.S%(&ULY0QM;,S=ML;&QL;$;6S`[,S5ML;&Q ML1M;,3LS-VW?W]_?W]\;6S`[,S5ML;&Q&ULQ.S,W;=_?W]_?&ULP.S,U;;&Q M&ULQ.S,W;=_?W]_?W]\;6S`[,S5ML1M;,3LS-VW?W]\;6S`[,S5ML;&Q&ULQ M.S,W;=_?&ULP.S,U;;$;6S$[,S=MW]_?W]_?WQM;,#LS-6VQ&UMS"@T`&UMU M&ULQ.S,W;=_?W]_?W]_?&ULP.S,U;;&Q&ULQ.S,W;;&Q&ULS-FVQL1M;,30[ M,4@;6SE#&ULS-VVQL;&QL1M;,#LS-6VQL;&QL1M;,3LS-VW?WQM;,#LS-6VQ ML;&Q&ULQ.S,W;=_?&ULP.S,U;;&QL1M;,3LS-VW?WQM;,#LS-6VQ&ULQ.S,W M;=_?&ULP.S,U;;&QL;&QL1M;,3LS-VW?W]_?&ULP.S,U;;&Q&ULQ.S,W;=_? M&ULP.S,U;;$;6S$[,S=MW]\;6S`[,S5ML;&QL;&QL;&Q&ULQ.S,W;=_?&ULP M.S,U;;&QL;&QL1M;,3LS-VVQL1M;,S9M&UMS"@T`&UMUL;$;6S$U.S%(&ULY M0QM;,S=ML;&QL;$;6S`[,S5ML;&QL1M;,3LS-VW?WQM;,#LS-6VQL;$;6S$[ M,S=MW]_?&ULP.S,U;;&QL;&QL1M;,3LS-VW?W]_?WQM;,#LS-6VQL;$;6S$[ M,S=MW]\;6S`[,S5ML1M;,3LS-VW?WQM;,#LS-6VQ&ULQ.S,W;=_?&ULP.S,U M;;$;6S$[,S=MW]_?W]\;6S`[,S5ML;&QL;&Q&ULQ.S,W;=_?&ULP.S,U;;&Q ML;&QL;$;6S$[,S=ML;$;6S,V;;&Q&ULQ-CLQ2!M;.4,;6S,W;;&QL;&Q&ULP M.S,U;;&QL1M;