getting a bigger cursor

In article <95323.141309HJ...@CUNYVM.CUNY.EDU>,
   Jack Hammond <HJ...@CUNYVM.CUNY.EDU> wrote:

Quote
>How can I use TP5.0 to change the cursor size (and have it remain
>at its new size when I exit the program and go into another)?

unit UCursor;
interface

type  CursorForm=(CuNone,  {hidden cursor}
                  CuLine,  {normal line cursor}
                  CuBlock, {full box cursor}
                  CuHalf); {half box cursor (like insert-cursor in DOS)}

var   cursors:array [CursorForm] of word; {MicLine from..to
                             Hi()=from, Lo()=to}
      cuform:CursorForm; {current cursor form}

procedure SetCursorForm(kind:CursorForm);

function  getCursorKind:word;
  {get current cursor format via Video-BIOS,
  {only for saving at program start - if neccessary}

procedure HideCursor;
  { same as SetCursorForm(cuNone) }

implementation

function  getCursorKind:word; assembler;
  asm mov ah,$03; xor bh,bh; int $10; xchg ax,cx end;

procedure setCursorKnd(w:word); assembler;
  {Set cursor form via BIOS}
  asm mov cx,w; mov ah,1; int 10h  end;

I forgot, since when TP got an inline assembler,
may be it was 6.0. Change the asm sequence by using
INTR() if neccessary!

function ColorBoard:boolean;
  {detect screen:Color or B/W}
  var cb:word;
  begin asm int $11; mov cb,ax end;
  ColorBoard:=cb and $30 <>$30
  end;

procedure InitCursor;
  {Set Values depending on Color- or B/W-Screen
   (different number of micLines)}
  begin
  cursors[cuNone]:=$0100 {set to $1426 if cursor will never disappear};
  if ColorBoard then {virtual MicLines 0..7}
    begin cursors[cuLine]:=$0607;
    cursors[cuBlock]:=$0007;
    cursors[cuHalf]:=$0407
    end
  else {MicLines 0..13}
    begin cursors[cuLine]:=$0c0d;
    cursors[cuBlock]:=$000d;
    cursors[cuHalf]:=$060d
    end;
  setCursorKnd(cursors[cuLine])
  end;

procedure SetCursorForm(kind:CursorForm);
  begin {Show cursor in format of kind}
  cuForm:=kind; setCursorKnd(cursors[kind])
  end;

procedure HideCursor;
  begin SetCursorForm(CuNone) end;

begin InitCursor end.

------------------------------------------------------------------------------
Horst Rothe, Uni Leipzig, URZ, Germany
Tel.: (049) (0341) 97 33317 / Fax: (0341) 97 33399
e-mail: ro...@rz.uni-leipzig.de
------------------------------------------------------------------------------