{***********************************************************************}
{									}
{ __CSizeScn  Set the size of the cursor				}
{									}
{ procedure __CSizeScn(Top,Bottom : byte);				}
{									}
{	      Top	Cursor top scan line.  It must be between 0 and }
{			15 (inclusive), but less or equal to Bottom.	}
{	      Bottom	Cursor bottom scan line.  It must be between	}
{			0 and 15 (inclusive), but greater than or	}
{			equal to Top.					}
{									}
{ Description This procedure sets the size of the cursor.  The size of	}
{	      the cursor is determined by the 'top' and 'bottom' scan	}
{	      lines or markers.  The cursor is a box, with the top line }
{	      at 0 and the bottom line at 7, 13, or 15 depending on the }
{	      mode, scan lines in effect, and adapter in use.		}
{	      Use __CSetScn as a simple means to control standard	}
{	      cursor size rather than calling __CSizeScn directly,	}
{	      because __CSetScn takes into account the pecularities of	}
{	      each adapter and cursor emulation on the EGA.		}
{									}
{ Version     4.00 (C)Copyright Blaise Computing Inc. 1986, 1987	}
{_______________________________________________________________________}

procedure __CSizeScn(Top,Bottom : byte);

  var
    Reg : registers;

  begin {__CSizeScn}

    if (Top > MaxScanLine_) then       { Set reasonable values for Top	}
       Top := MaxScanLine_;	       { and Bottom.			}
    if (Bottom < Top) then
       Bottom := Top
    else if (Bottom > MaxScanLine_) then
       Bottom := MaxScanLine_;

    with Reg do
      begin			       { First get current cursor	}
	AH := $03;		       { setting in case it is off	}
	BH := _CurDisplayPage;	       { so we can preserve the bit	}
	Intr(_VIDEO,Reg);	       { settings.			}
	AH := $01;		       { Call BIOS VIDEO using		}
	CH := (CH and $20) or Top;     { subfunction 1. 		}
	CL := Bottom;
	Intr(_VIDEO,Reg)
      end

  end;	{__CSizeScn}
