I use the following procedures/functions to turn the
cursor on and off and change the size of the cursor
(overwrite mode on/off).
On some old monochrome monitors the cursor is not
visible when I use the LineCursor procedure.
When in overwrite mode (BlockCursor) the cursor is
full visible.
How can I change the folowing procedures/function so
it works both on (old) monochrome monitors as
(new) color monitors?
Iwan Oprins
---
function MonoScreen: Boolean;
begin
MonoScreen := (Mem[0:$449] = 7);
end;
{-----}
procedure Cursor (CursorOn: Boolean);
var
Reg: Registers;
begin
if (CursorOn) then
if (MonoScreen) then
Reg.CX := $0C0D
else
Reg.CX := $0607
else
Reg.CX := $2000;
Reg.AX := $0100;
Intr ($10,Reg);
end;
{-----}
procedure CursorFormat (StartLine, EndLine: Byte);
var
Reg: Registers;
begin
Reg.AX := 256;
Reg.CX := StartLine shl 8 + EndLine;
Intr ($10,Reg);
end;
{-----}
procedure BlockCursor;
begin
CursorFormat (0,12);
end;
{-----}
procedure LineCursor;
begin
CursorFormat (11,12);
end;
Sent via Deja.com http://www.deja.com/
Before you buy.