[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]

There are basically three ways you can do it, all of them using
Interrupt 10h (video interrupt). First, set up something in your Var
like this:

  Var
    Regs : Registers;

Function 0 sets the mode, which will also clear the screen.  This is
useful if you want to set mode and clear screen at the same time.
It would look like this;

  REGS.AH := 0;
  REGS.AL := x; { where x is the mode you want (get a good Dos
                  reference manual For these) }
  inTR($10,REGS);

The other two options are Really inverses of each other...scroll
Window up and scroll Window down.  The advantage of these is that it
doesn't clear the border color (set mode does).  The disadvantage is
there are a lot more parameters to set.  For these, AH = 6 For scroll up
and 7 For scroll down.  AL = 0 (this Forces a clear screen), CH = the
upper row, CL = the left column, DH = the lower row, DL = the right
column, and BH = the color attribute (Foreground and background).  As I
said, it's a bit more Complicated, but you can set the screen color at
the same time if you want to (if not, you'll need to get the current
attribute first and store it in BH).  You'll also have to know the
current screen mode (40 or 80 columns, 25, 35, 43, or 50 lines).

As you can see, clearing the screen without using Crt is a bit more
Complicated, but you can set a lot of options at the same time as well.
It's up to you.

Just as an after-note, I'm currently working on a way to use
page-switching in Crt mode, writing directly to the video memory.  I'm
sick of not being to switch pages without loading Graph (waste of space
and memory, just to switch pages).

[Back to EGAVGA SWAG index]  [Back to Main SWAG index]  [Original]