home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / TURBOPAS / PASHELP.LBR / HELPFIND.PQS / HELPFIND.PAS
Pascal/Delphi Source File  |  2000-06-30  |  3KB  |  110 lines

  1. Program HELPFIND_PAS;
  2.  
  3. (*
  4.     Author  :  Ken Isacson
  5.     Version :  1.00
  6.     Date    :  4/15/1986
  7.  
  8.     Warning : This program must be run under Turbo Pascal
  9.               with the
  10.  
  11. { Instructions : First Use TINST that came with Turbo
  12.                  And find out what you have Character Left
  13.                  Set to.
  14.                  Then enter that data after the promts 'n >'.
  15.                  Be sure that this program states the exact
  16.                  thing as TINST did.
  17.                  The program will display an integer to be
  18.                  used as a command memory offset.  If the
  19.                  more than one number appears, you have two
  20.                  options.
  21.                         Option 1)  Try each number as the
  22.                                    memory offset in the
  23.                                    HELP program.
  24.                         Option 2)  Redefine the Character
  25.                                    Left with TINST to some
  26.                                    thing longer and run this
  27.                                    program again.  This should
  28.                                    insure the correct reults.
  29.  
  30.                  This is going to be used for the TURBO PASCAL
  31.                  HELP.INC Program/Procedure.
  32.  
  33. }
  34.  
  35. Procedure WhatKey(Number : Integer);
  36.  
  37. Begin
  38.  
  39.       Case Number of
  40.       27      : Writeln ('ESCape');
  41.       10      : Writeln ('Line Feed');
  42.       32      : Writeln ('SPACE');
  43.       33..126 : Writeln (Chr(Number));
  44.       127     : Writeln ('DELETE');
  45.       0..31   : Writeln ('CNTRL-',Chr(64+Number));
  46.       End;
  47.  
  48.  
  49. End;
  50.  
  51.  
  52. Var X : Integer;
  53.     Ch : Char;
  54.     Check : Array[1..3] of Integer;
  55.     List   : Integer;
  56.     Amount : Integer;
  57.     Count  : Integer;
  58.     Good   : Boolean;
  59.     Label Out, Done;
  60.  
  61. Begin
  62.      ClrScr;
  63.      Rename;
  64.      For X := 1 to 3 do
  65.      Check[x] := 0;
  66.  
  67.      Writeln ('Be sure to read instructions in the begining of the code.');
  68.      Writeln;
  69.  
  70.      X := 0;
  71.      Writeln ('For Your Cursor Left > ');
  72.  
  73.      While ( X <= 2 ) and (Ch <> #13) Do
  74.      Begin
  75.        X := Succ(x);
  76.        Write(x,' > ');
  77.        Read(kbd, Ch);
  78.        Check[x] := Ord(Ch);
  79.        If ch <> #13 Then Whatkey(Check[x]) Else Writeln (#13,#13,'Searchig . . .');
  80.      End;
  81.      If (Ch = #13) And (X = 1) Then Goto Done;
  82.      If ch = #13 then X:=Pred(X);
  83.      Amount := (X);
  84.  
  85.      Good   := True;
  86.      X      := 0;
  87.  
  88. Repeat
  89.      Repeat
  90.      Good := true;
  91.      If Mem[X] = Amount
  92.         Then For Count := Succ(X) to X+Amount DO
  93.              Begin
  94.                 If (Mem[Count] = Check[(Count - X)]) and Good
  95.                     Then Good := True
  96.                     Else Good := False;
  97.              End;
  98.  
  99.      If (good) and (Mem[x] = Amount) then goto out else good := not good;
  100.      X := Succ(x);
  101.      Until (X < 0);
  102.  out:
  103.      If X > 0 Then Writeln ('Try ',X,' for HelpOffSet in HELP.INC.');
  104.      X := Succ(x);
  105. Until (X<0);
  106. Done:
  107. Writeln ('Done . . . . .');
  108.  
  109.  
  110. End.