{****************************************************************************
This is a source file of Free Vision
Copyright (c) 1996 by FP Klaempfl
****************************************************************************}
{$E-}
unit drivers;
interface
uses
objects;
const
kbctrla = 1;
kbctrlb = 2;
kbctrlc = 3;
kbctrld = 4;
kbctrle = 5;
kbctrlf = 6;
kbctrlg = 7;
kbback = 8;
kbctrlh = 8;
kbtab = 9;
kbctrli = 9;
kbctrlj = 10;
kbctrlk = 11;
kbctrll = 12;
kbreturn = 13;
kbctrlm = 13;
kbctrln = 14;
kbctrlo = 15;
kbctrlp = 16;
kbctrlq = 17;
kbctrlr = 18;
kbctrls = 19;
kbctrlt = 20;
kbctrlu = 21;
kbctrlv = 22;
kbctrlw = 23;
kbctrlx = 24;
kbctrly = 25;
kbctrlz = 26;
kbesc = 27;
kbshifttab = 271;
kbaltq = 272;
kbaltw = 273;
kbalte = 274;
kbaltr = 275;
kbaltt = 276;
kbalty = 277;
kbaltu = 278;
kbalti = 279;
kbalto = 280;
kbaltp = 281;
kbalta = 286;
kbalts = 287;
kbaltd = 288;
kbaltf = 289;
kbaltg = 290;
kbalth = 291;
kbaltj = 292;
kbaltk = 293;
kbaltl = 294;
kbaltz = 300;
kbaltx = 301;
kbaltc = 302;
kbaltv = 303;
kbaltb = 304;
kbaltn = 305;
kbaltm = 306;
kbf1 = 315;
kbf2 = 316;
kbf3 = 317;
kbf4 = 318;
kbf5 = 319;
kbf6 = 320;
kbf7 = 321;
kbf8 = 322;
kbf9 = 323;
kbf10 = 324;
kbpos1 = 327;
kbup = 328;
kbpageup = 329;
kbleft = 331;
kbright = 333;
kbend = 335;
kbdown = 336;
kbpagedown = 337;
kbins = 338;
kbdel = 339;
kbshiftf1 = 340;
kbshiftf2 = 341;
kbshiftf3 = 342;
kbshiftf4 = 343;
kbshiftf5 = 344;
kbshiftf6 = 345;
kbshiftf7 = 346;
kbshiftf8 = 347;
kbshiftf9 = 348;
kbshiftf10 = 349;
kbctrlf1 = 350;
kbctrlf2 = 351;
kbctrlf3 = 352;
kbctrlf4 = 353;
kbctrlf5 = 354;
kbctrlf6 = 355;
kbctrlf7 = 356;
kbctrlf8 = 357;
kbctrlf9 = 358;
kbctrlf10 = 359;
kbaltf1 = 360;
kbaltf2 = 361;
kbaltf3 = 362;
kbaltf4 = 363;
kbaltf5 = 364;
kbaltf6 = 365;
kbaltf7 = 366;
kbaltf8 = 367;
kbaltf9 = 368;
kbaltf10 = 369;
kbctrlprtsc = 370;
kbctrlleft = 371;
kbctrlright = 372;
kbctrlend = 373;
kbctrlpagedown = 374;
kbctrlpos1 = 375;
kbalt1 = 376;
kbalt2 = 377;
kbalt3 = 378;
kbalt4 = 379;
kbalt5 = 380;
kbalt6 = 381;
kbalt7 = 382;
kbalt8 = 383;
kbalt9 = 384;
kbalt10 = 385;
kbctrlpageup = 387;
kbf11 = 389;
kbf12 = 390;
kbshiftf11 = 391;
kbshiftf12 = 392;
kbctrlf11 = 393;
kbctrlf12 = 394;
kbaltf11 = 395;
kbaltf12 = 396;
evmousedown = $1;
evmouseup = $2;
evmousemove = $4;
evmouseauto = $8;
evkeydown = $10;
evcommand = $100;
evbroadcast = $200;
evnothing = $0;
evmouse = $f;
evkeyboard = $10;
evmessage = $ff00;
mbleftbutton = $1;
mbrightbutton = $2;
type
pevent = ^tevent;
tevent = record
case what : word of
evnothing : ();
evmouse : (buttons : byte;double : boolean;where : tpoint);
evkeydown : (case integer of
0 : (keycode : word);
1 : (charcode : char;scancode : byte)
);
evmessage : (case word of
0 : (infoptr : pointer);
1 : (infolong : longint);
2 : (infoword : word);
3 : (infoint : integer);
4 : (infobyte : byte);
5 : (infochar : char);
);
end;
procedure initevents;
procedure doneevents;
procedure showmouse;
procedure hidemouse;
procedure getmousevent(var event : tevent);
procedure getkeyevent(var event : tevent);
function getshiftstate : byte;
const
smbw80 = 2;
smco80 = 3;
smmono = 7;
smfont8x8 = $100;
startupmode : word = $ffff;
{ mouse: }
buttoncount : byte = 0;
mousevents : boolean = false;
mousereverse : boolean = false;
doubledelay : word = 8;
repeatdelay : word = 8;
var
screenmode : word;
screenwidth : word;
screenheight : word;
hiresscreen : boolean;
{ never used }
checksnow : boolean;
{ is only used by DOS }
screenbuffer : pointer;
cursorlines : word;
{ mouse: }
mouseintflags : byte;
mousebuttons : byte;
mousewhere : tpoint;
procedure initvideo;
procedure donevideo;
procedure setvideomode(mode : word);
procedure clearscreen;
implementation
procedure initevents;
begin
{!!!!!}
end;
procedure doneevents;
begin
{!!!!!}
end;
procedure showmouse;
begin
{!!!!!}
end;
procedure hidemouse;
begin
{!!!!!}
end;
procedure getmousevent(var event : tevent);
begin
{!!!!!}
end;
procedure getkeyevent(var event : tevent);
begin
{!!!!!}
end;
function getshiftstate : byte;
begin
{!!!!!}
end;
procedure initvideo;
begin
{!!!!!}
end;
procedure donevideo;
begin
{!!!!!}
end;
procedure setvideomode(mode : word);
begin
{!!!!!}
end;
procedure clearscreen;
begin
{!!!!!}
end;
end.