home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 08 / tricks / newcom.pas < prev    next >
Pascal/Delphi Source File  |  1990-07-05  |  2KB  |  58 lines

  1. (* ------------------------------------------------------ *)
  2. (*                       NEWCOM.PAS                       *)
  3. (*          (c) 1990 Jan Laitenberger & TOOLBOX           *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM NewCom;
  6.  
  7. USES Crt, Dos;
  8.  
  9. CONST
  10.   Passwort: STRING = 'TOOLBOX';
  11.  
  12.   FUNCTION LesePasswort: STRING;
  13.   VAR
  14.     c        : CHAR;
  15.     s        : STRING;
  16.     x, y, x0 : BYTE;
  17.   BEGIN
  18.     x0 := WhereX;  y := WhereY;  x := x0;  s := '';
  19.     REPEAT
  20.       c := ReadKey;
  21.       IF c > #31 THEN BEGIN
  22.         Write('X');  s := s + c;  Inc(x);
  23.       END;
  24.       IF c = ^H THEN IF x > x0 THEN BEGIN
  25.         Dec(x);  GotoXY(x, y);  Write (' ');
  26.         GotoXY(x, y);  Dec(s[0]);
  27.       END ELSE BEGIN
  28.         Sound(1000);  Delay(100);  NoSound;
  29.       END;
  30.     UNTIL c = #13;
  31.     LesePasswort := s;
  32.   END {LesePasswort};
  33.  
  34. BEGIN
  35.   CheckBreak := FALSE;
  36.   Write('Passwort: ');
  37.   IF Passwort <> LesePasswort THEN BEGIN
  38.     WriteLn; WriteLn ('Zugriff verweigert.');
  39.     WriteLn('System angehalten');
  40.     REPEAT
  41.       { Ein kleiner Trost: }
  42.       Sound(Random(1000) + 200);
  43.       Delay(Random(500)  + 100);
  44.     UNTIL FALSE;
  45.   END;
  46.   {$M 3000,0,0}
  47.   Exec('C:\COMMAND.COM', '/c AUTOEXEC.BAT');
  48.   REPEAT
  49.     { Diese Endlosschleife dient zur Sicherheit, damit     }
  50.     { beim Verlassen des DOS über EXIT kein Systemabsturz  }
  51.     { hervorgerufen wird.                                  }
  52.     WriteLn('Befehlsprozessor wird geladen');
  53.     Exec('C:\COMMAND.COM', '');
  54.   UNTIL FALSE;
  55. END {NewCom}.
  56. (* ------------------------------------------------------ *)
  57. (*                  Ende von NEWCOM.PAS                   *)
  58.