home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / extra18 / pastrick / catchit / catchit.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1991-12-18  |  2.0 KB  |  82 lines

  1. (* ------------------------------------------------- *)
  2. (*                    CATCHIT.PAS                    *)
  3. (*       (c) 1991 Wolfgang Gürtler & DMV-Verlag      *)
  4. (* ------------------------------------------------- *)
  5. {$M 1024,0,0}
  6. {$R-,S-}
  7. PROGRAM CatchGrafix;
  8.  
  9. Uses Crt, Dos;
  10.  
  11. VAR
  12.   OldInt5, NewInt5,
  13.   OldInt9, NewInt9,
  14.   OldInt8, NewInt8 : POINTER;
  15.   Z                : LongInt;
  16.   Sekunden         : INTEGER;
  17.  
  18. {$F+}
  19.   PROCEDURE Keyboard; INTERRUPT;
  20.    (* Neue ISR für Interrupt 9H *)
  21.   BEGIN
  22.     INLINE($9C/$FF/$1E/OldInt9);
  23.     INLINE($9C/$FF/$1E/NewInt9);
  24.   END;
  25. {$F-}
  26.  
  27. {$F+}
  28.   PROCEDURE Hardcopy; INTERRUPT;
  29.    (* Neue ISR für Interrupt 5H *)
  30.   BEGIN
  31.     INLINE($9C/$FF/$1E/OldInt5);
  32.   END;
  33. {$F-}
  34.  
  35.   PROCEDURE ActivateKeyboard;
  36.     (* Aktiviert neue ISR's 9H und 5H *)
  37.   BEGIN
  38.     GetIntVec($9, NewInt9);
  39.     GetIntVec($5, NewInt5);
  40.     IF (NewInt9 = OldInt9) AND
  41.        (NewInt5 = OldInt5) THEN BEGIN
  42.       Z := 0;
  43.     END ELSE BEGIN
  44.       Sound(220);  Delay(100);  NoSound;
  45.       SetIntVec($9, @Keyboard);
  46.       SetIntVec($5, @Hardcopy);
  47.     END;
  48.   END;
  49.  
  50.   PROCEDURE Timer; INTERRUPT;
  51.     (* Prozedur aktiviert nach einer Zeitspanne *)
  52.   BEGIN
  53.     INLINE($9C/$FF/$1E/OldInt8);
  54.       { Timerimpuls weiterleiten }
  55.     Z := Z+1;
  56.     IF Z = (18*Sekunden) THEN
  57.       ActivateKeyboard
  58.     ELSE IF ((Z MOD 18) = 0) AND
  59.             (Z < 18*Sekunden) THEN BEGIN
  60.       Sound(220);  Delay(5);  NoSound;
  61.     END;
  62.   END;
  63.  
  64. BEGIN
  65.   GetIntVec($8, OldInt8); { alte Adressen speichern }
  66.   GetIntVec($9, OldInt9);
  67.   GetIntVec($5, OldInt5);
  68.   Writeln;
  69.   Writeln('CATCH-IT ');
  70.   Write  (' Aktivierungszeit in Sekunden  :');
  71.   Readln (Sekunden);
  72.   Z := 0;
  73.   SetIntVec($8, @Timer);             { Timer setzen }
  74.   Writeln(' CATCH-IT installiert. ');
  75.   Writeln('  Aktivierung in t minus ', Sekunden,
  76.           ' Sekunden (Ton).');
  77.   Keep(0);
  78. END.
  79. (* ------------------------------------------------- *)
  80. (*             Ende von CATCHIT.PAS                  *)
  81.  
  82.