1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- {
- $Id$
- This file is part of the Free Pascal run time library.
- Copyright (c) 1999-2000 by Florian Klaempfl
- member of the Free Pascal development team
- Keyboard unit for go32v2
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- unit Keyboard;
- interface
- {$i keybrdh.inc}
- implementation
- uses
- go32;
- {$i keyboard.inc}
- function SysGetKeyEvent: TKeyEvent;
- var
- regs : trealregs;
- begin
- regs.ah:=$10;
- realintr($16,regs);
- if (regs.al=$e0) and (regs.ah<>0) then
- regs.al:=0;
- SysGetKeyEvent:=(kbPhys shl 24) or regs.ax or ((mem[$40:$17] and $f) shl 16);
- end;
- function SysPollKeyEvent: TKeyEvent;
- var
- regs : trealregs;
- begin
- regs.ah:=$11;
- realintr($16,regs);
- if (regs.realflags and zeroflag<>0) then
- exit(0);
- if (regs.al=$e0) and (regs.ah<>0) then
- regs.al:=0;
- SysPollKeyEvent:=(kbPhys shl 24) or regs.ax or ((mem[$40:$17] and $f) shl 16);
- end;
- function SysGetShiftState: Byte;
- begin
- SysGetShiftState:=(mem[$40:$17] and $f);
- end;
- Const
- SysKeyboardDriver : TKeyboardDriver = (
- InitDriver : Nil;
- DoneDriver : Nil;
- GetKeyevent : @SysGetKeyEvent;
- PollKeyEvent : @SysPollKeyEvent;
- GetShiftState : @SysGetShiftState;
- TranslateKeyEvent : Nil;
- TranslateKeyEventUnicode : Nil;
- );
- begin
- SetKeyBoardDriver(SysKeyBoardDriver);
- end.
- {
- $Log$
- Revision 1.4 2002-09-07 16:01:18 peter
- * old logs removed and tabs fixed
- Revision 1.3 2002/08/28 06:35:30 pierre
- * merge kbPhys patch from fixes branch
- Revision 1.1.2.3 2002/07/13 12:22:03 pierre
- * added kbPhys flag
- }
|