home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / PJ8_3.ZIP / USCREEN.PAS < prev    next >
Pascal/Delphi Source File  |  1990-02-15  |  2KB  |  63 lines

  1. (* uscreen.pas -- (c) 1990 by Tom Swan *)
  2.  
  3. unit uscreen;
  4. interface
  5. uses crt, dos;
  6.  
  7. procedure clearWindow( x1, y1, x2, y2 : word );
  8. procedure scrollUp( x1, y1, x2, y2 : word );
  9. procedure scrollDown( x1, y1, x2, y2 : word );
  10.  
  11. implementation
  12.  
  13. { ----- Clear display area to current background color. }
  14. procedure clearWindow( x1, y1, x2, y2 : word );
  15. var
  16.    oldMin, oldMax : word;
  17. begin
  18.    oldMin := crt.windMin;
  19.    oldMax := crt.windMax;
  20.    window( x1, y1, x2, y2 );
  21.    clrscr;
  22.    crt.windMin := oldMin;
  23.    crt.windMax := oldMax
  24. end; { clearWindow }
  25.  
  26. { ----- Scroll display area up one line }
  27. procedure scrollUp( x1, y1, x2, y2 : word );
  28. var
  29.    regs : registers;
  30. begin
  31.    with regs do
  32.    begin
  33.       ah := 6;             { BIOS function number }
  34.       al := 1;             { Number of lines to scroll }
  35.       bh := crt.textAttr;  { Attribute for blank line }
  36.       cl := x1 - 1;
  37.       ch := y1 - 1;
  38.       dl := x2 - 1;
  39.       dh := y2 - 1
  40.    end;
  41.    intr( $10, regs )
  42. end; { scrollUp }
  43.  
  44. { ----- Scroll display area down one line }
  45. procedure scrollDown( x1, y1, x2, y2 : word );
  46. var
  47.    regs : registers;
  48. begin
  49.    with regs do
  50.    begin
  51.       ah := 7;             { BIOS function number }
  52.       al := 1;             { Number of lines to scroll }
  53.       bh := crt.textAttr;  { Attribute for blank line }
  54.       cl := x1 - 1;
  55.       ch := y1 - 1;
  56.       dl := x2 - 1;
  57.       dh := y2 - 1
  58.    end;
  59.    intr( $10, regs )
  60. end; { scrollDown }
  61.  
  62. end. { uscreen }
  63.