From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/isshift.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/isshift.c (limited to 'reference/C/CONTRIB/SNIP/isshift.c') diff --git a/reference/C/CONTRIB/SNIP/isshift.c b/reference/C/CONTRIB/SNIP/isshift.c new file mode 100755 index 0000000..79c4cff --- /dev/null +++ b/reference/C/CONTRIB/SNIP/isshift.c @@ -0,0 +1,24 @@ +/*-------------------------[ IsShift ]--------------------------*/ +/* Determine whether a shift key is depressed */ +/* public domain snippet by Jeff Dunlop */ +/*--------------------------------------------------------------*/ +/* local: */ +/* key_flags = pointer to bios shift key area */ +/* return: */ +/* 1 if either shift key is depressed */ +/*--------------------------------------------------------------*/ + +#if !defined(MK_FP) + #define MK_FP(seg,off) ((void far *)(((long)(seg) << 16)|(unsigned)(off))) +#endif + +int IsShift(void) +{ + unsigned char far *keyflags = MK_FP(0x40, 0x17); + + return (*keyflags & 0x03); +} + +/* -or?- */ + +#define IsShift ((*MK_FP(0x40, 0x17)) & 0x03) -- cgit v1.2.3-54-g00ecf