home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1990 / 11 / tricks / txcrt.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1990-09-19  |  2.5 KB  |  132 lines

  1. (* ------------------------------------------------------ *)
  2. (*                      TXCRT.PAS                         *)
  3. (*                   TOOLBOX-Crt-Unit                     *)
  4. (* ------------------------------------------------------ *)
  5. UNIT txCrt;
  6.  
  7. INTERFACE
  8.  
  9. USES Dos, Crt;
  10.  
  11. TYPE
  12.   ScreenType = ARRAY [1..4000] OF BYTE;
  13.  
  14. VAR
  15.   MonoScreen : ScreenType ABSOLUTE $B000:0000;
  16.   ColScreen  : ScreenType ABSOLUTE $B800:0000;
  17.  
  18.   ScreenBuf  : ScreenType;
  19.   Foreground : BYTE;
  20.   Background : BYTE;
  21.  
  22.  
  23.   PROCEDURE ClrScr;
  24.  
  25.   PROCEDURE GotoXY(x, y : BYTE);
  26.  
  27.   PROCEDURE Delay(mSec : WORD);
  28.  
  29.   FUNCTION  KeyPressed : BOOLEAN;
  30.  
  31.   FUNCTION  ReadKey : CHAR;
  32.  
  33.   PROCEDURE Normal;
  34.  
  35.   PROCEDURE Invers;
  36.  
  37.   FUNCTION  Mono : BOOLEAN;
  38.   { TRUE, wenn eine Mono-Grafikkarte benutzt wird          }
  39.  
  40.   PROCEDURE SaveScreen;
  41.   { Bildschirm löschen/Inhalt sichern                      }
  42.  
  43.   PROCEDURE RestoreScreen;
  44.   { Bildschirm wiederherstellen                            }
  45.  
  46.   PROCEDURE CursorOn;
  47.  
  48.   PROCEDURE CursorOff;
  49.  
  50. IMPLEMENTATION
  51.  
  52.   PROCEDURE ClrScr;
  53.   BEGIN
  54.     Crt.ClrScr;
  55.   END;
  56.  
  57.   PROCEDURE GotoXY(x, y : BYTE);
  58.   BEGIN
  59.     Crt.GotoXY(x, y);
  60.   END;
  61.  
  62.   PROCEDURE Delay(mSec : WORD);
  63.   BEGIN
  64.     Crt.Delay(mSec);
  65.   END;
  66.  
  67.   FUNCTION KeyPressed : BOOLEAN;
  68.   BEGIN
  69.     KeyPressed := Crt.KeyPressed;
  70.   END;
  71.  
  72.   FUNCTION ReadKey : CHAR;
  73.   BEGIN
  74.     ReadKey := Crt.ReadKey;
  75.   END;
  76.  
  77.   PROCEDURE Normal;
  78.   BEGIN
  79.     Crt.Textcolor(Foreground);
  80.     Crt.Textbackground(Background);
  81.   END;
  82.  
  83.   PROCEDURE Invers;
  84.   BEGIN
  85.     Crt.TextColor(Background);
  86.     Crt.TextBackground(Foreground);
  87.   END;
  88.  
  89.   FUNCTION  Mono : BOOLEAN;
  90.   VAR
  91.     Regs : Dos.Registers;
  92.   BEGIN
  93.     Regs.AH := $F;
  94.     Dos.Intr($10, Regs);
  95.     Mono := (Regs.AL = 7);
  96.   END;
  97.  
  98.   PROCEDURE SaveScreen;
  99.   BEGIN
  100.     IF Mono THEN
  101.       ScreenBuf := MonoScreen
  102.     ELSE
  103.       ScreenBuf := ColScreen;
  104.     ClrScr;
  105.   END;
  106.  
  107.   PROCEDURE RestoreScreen;
  108.   BEGIN
  109.     IF Mono THEN
  110.       MonoScreen := ScreenBuf
  111.     ELSE
  112.       ColScreen  := ScreenBuf;
  113.   END;
  114.  
  115.   PROCEDURE CursorOn;
  116.   BEGIN
  117.     INLINE($B4/$01/
  118.            $B9/13/12/   { Cursoranf. 12.Z, Cursorende 13.Z }
  119.            $CD/$10);
  120.   END;
  121.  
  122.   PROCEDURE CursorOff;
  123.   BEGIN
  124.     INLINE($B4/$01/
  125.            $B9/$FF/$FF/       { Cursoranfang und -ende auf }
  126.            $CD/$10);        { 255 setzen löscht den Cursor }
  127.   END;
  128.  
  129. END.
  130. (* ------------------------------------------------------ *)
  131. (*                   Ende von TXCRT.PAS                   *)
  132.