[Back to TEXTWNDW SWAG index] [Back to Main SWAG index] [Original]
{ SALIM SAMAHA }
Unit Windows;
Interface
Uses
  Crt;
Const
  Max = 3;
Type
  ScreenImage = Array [0..1999] of Word;
  FrameRec    = Record
    Upperleft    : Word;
    LowerRight   : Word;
    ScreenMemory : ScreenImage;
  end;
Var
  SnapShot   : ^ScreenImage;
  FrameStore : Array [1..10] of ^FrameRec;
  WindowNum  : Byte;
Procedure OpenWindow(UpLeftX, UpLeftY, LoRightX, LoRightY : Byte);
Procedure CloseWindow;
Implementation
Procedure OpenWindow(UpLeftX, UpLeftY, LoRightX, LoRightY : Byte);
begin
  SnapShot := Ptr( $B800, $0000);
  Inc(WindowNum);
  New(FrameStore[WindowNum]);
  With Framestore[WindowNum]^ do
  begin
    ScreenMemory := SnapShot^;
    UpperLeft    := WindMin;
    LowerRight   := WindMax;
  end;
  Window(UpLeftX, UpLeftY, LoRightX, LoRightY);
end;
Procedure CloseWindow;
begin
  With Framestore[WindowNum]^ do
  begin
    Snapshot^ := ScreenMemory;
    Window ((Lo(UpperLeft) + 1), (Hi(UpperLeft) + 1),
            (Lo(LowerRight) + 1), (Hi(LowerRight) + 1));
  end;
  Dispose(Framestore[WindowNum]);
  Dec(WindowNum);
end;
[Back to TEXTWNDW SWAG index] [Back to Main SWAG index] [Original]