{
>It's just a Fileviewer, I'm working on. I just want to be able to
>scroll the File up, down, etc.
}

Program ScrollDemo;
Uses
  Crt;
Type
  UpDown = (Up, Down);
  { Scroll Text screen up or down. }

Procedure Scroll({input } Direction : UpDown;
                          Lines2Scroll,
                          Rowtop,
                          RowBot,
                          ColStart,
                          ColStop,
                          FillAttr : Byte);
begin
  if (Direction = Up) then
  Asm
    mov ah, 06h
    mov al, Lines2Scroll
    mov bh, FillAttr
    mov ch, Rowtop
    mov cl, ColStart
    mov dh, RowBot
    mov dl, ColStop
    int 10h
  end
  else
  Asm
    mov ah, 07h
    mov al, Lines2Scroll
    mov bh, FillAttr
    mov ch, Rowtop
    mov cl, ColStart
    mov dh, RowBot
    mov dl, ColStop
    int 10h
  end
end; { Scroll }

{ Pause For a key press. }
Procedure Pause;
Var
  chTemp : Char;
begin
  While KeyPressed do
    chTemp := ReadKey;
  Repeat Until(KeyPressed)
end; { Pause }

Var
  Index : Byte;
  stTemp : String[80];
begin
  ClrScr;
  { Display 24 lines of Text. }
  For Index := 1 to 24 do
    begin
      stTemp[0] := #80;
      fillChar(stTemp[1], length(stTemp), (Index + 64));
      Write(stTemp)
    end;
  { Pause For a key press. }
  Pause;
  { Scroll Text down by 1 line. Use the Crt's Textattr }
  { Variable as the Text color to fill with. }
  Scroll(Down, 1, 0, 24, 0, 79, Textattr);
  { Pause For a key press. }
  Pause;
  { Scroll Text up by 1 line. Use the Crt's Textattr }
  { Variable as the Text color to fill with. }
  Scroll(Up, 1, 0, 24, 0, 79, Textattr);
  { Pause For a key press. }
  Pause
end.
