home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
On Disk Monthly 62
/
odm62.zip
/
GDSOURCE.EXE
/
KEYGLOB.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-10-14
|
4KB
|
131 lines
{$A-}
unit keyglob;
interface
{ note: order of precedence of shift keys when two or more are pressed at
the same time is
Alt Ctrl Shift }
CONST NULL = #0;
CONST SPACE = ' ';
CONST ESC = #27;
CONST CR = #13;
CONST BACKSPACE = #8;
CONST MOUSEKEY = $FFFF;
CONST NOKEY = 0;
CONST BKSPC = $0E08;
CONST ESCKY = $011B;
CONST CRKEY = $1C0D;
CONST TAB = $0F09;
CONST SHTAB = $0F0F;
CONST SPACEBAR = $3920;
CONST UPARR = $4800; DNARR = $5000;
CONST LFARR = $4B00; RTARR = $4D00;
CONST HOMKY = $4700; ENDKY = $4F00;
CONST PGUPK = $4900; PGDNK = $5100;
CONST INSKY = $5200; DELKY = $5300;
CONST KUPARR = $4838; KDNARR = $5032;
CONST KLFARR = $4B34; KRTARR = $4D36;
CONST KHOMKY = $4737; KENDKY = $4F31;
CONST KPGUPK = $4939; KPGDNK = $5133;
CONST KINSKY = $5230; KDELKY = $533E;
CONST KFIVE = $4C35;
CONST KPLUS = $502B; KMINUS = $4E2D;
CONST CTRLLF = $7300; CTRLRT = $7400;
CONST CTRLHM = $7700; CTRLEN = $7500;
CONST CTRLPD = $7600; CTRLPU = $8400;
CONST F1 = $3B00; F2 = $3C00;
CONST F3 = $3D00; F4 = $3E00;
CONST F5 = $3F00; F6 = $4000;
CONST F7 = $4100; F8 = $4200;
CONST F9 = $4300; F10 = $4400;
CONST SF1 = $5400; SF2 = $5500;
CONST SF3 = $5600; SF4 = $5700;
CONST SF5 = $5800; SF6 = $5900;
CONST SF7 = $5A00; SF8 = $5B00;
CONST SF9 = $5C00; SF10 = $5D00;
CONST CF1 = $5E00; CF2 = $5F00;
CONST CF3 = $6000; CF4 = $6100;
CONST CF5 = $6200; CF6 = $6300;
CONST CF7 = $6400; CF8 = $6500;
CONST CF9 = $6600; CF10 = $6700;
CONST AF1 = $6800; AF2 = $6900;
CONST AF3 = $6A00; AF4 = $6B00;
CONST AF5 = $6C00; AF6 = $6D00;
CONST AF7 = $6E00; AF8 = $6F00;
CONST AF9 = $7000; AF10 = $7100;
CONST ALTA = $1E00; ALTB = $3000;
CONST ALTC = $2E00; ALTD = $2000;
CONST ALTE = $1200; ALTF = $2100;
CONST ALTG = $2200; ALTH = $2300;
CONST ALTI = $1700; ALTJ = $2400;
CONST ALTK = $2500; ALTL = $2600;
CONST ALTM = $3200; ALTN = $3100;
CONST ALTO = $1800; ALTP = $1900;
CONST ALTQ = $1000; ALTR = $1300;
CONST ALTS = $1F00; ALTT = $1400;
CONST ALTU = $1600; ALTV = $2F00;
CONST ALTW = $1100; ALTX = $2D00;
CONST ALTY = $1500; ALTZ = $2C00;
CONST CTLA = $1E01; CTLB = $3002;
CONST CTLC = $2E03; CTLD = $2004;
CONST CTLE = $1205; CTLF = $2106;
CONST CTLG = $2207; CTLH = $2308;
CONST CTLI = $1709; CTLJ = $240A;
CONST CTLK = $250B; CTLL = $260C;
CONST CTLM = $320D; CTLN = $310E;
CONST CTLO = $180F; CTLP = $1910;
CONST CTLQ = $1011; CTLR = $1312;
CONST CTLS = $1F13; CTLT = $1414;
CONST CTLU = $1615; CTLV = $2F16;
CONST CTLW = $1117; CTLX = $2D18;
CONST CTLY = $1519; CTLZ = $2C1A;
CONST ALT1 = $7800; ALT2 = $7900;
CONST ALT3 = $7A00; ALT4 = $7B00;
CONST ALT5 = $7C00; ALT6 = $7D00;
CONST ALT7 = $7E00; ALT8 = $7F00;
CONST ALT9 = $8000; ALT0 = $8100;
CONST ALTMINUS = $8200; ALTEQUAL = $8300;
VAR GLOBCH : CHAR;
GLOBSC : BYTE;
GLOBKEY: WORD ABSOLUTE GLOBCH;
FUNCTION InKey: word;
FUNCTION GetKey: word;
implementation
FUNCTION InKey: word;
BEGIN
Inline(
$B4/$01/ { MOV AH,1 }
$CD/$16/ { INT $16 }
$B8/$00/$00/ { MOV AX,0 }
$74/$02/ { JZ exit }
$CD/$16/ { INT $16 }
$89/$46/$FE { MOV [BP-2],AX}
)
END;
FUNCTION GetKey: word;
BEGIN
Inline(
$B4/$00/ { MOV AH,0 }
$CD/$16/ { INT $16 }
$89/$46/$FE { MOV [BP-2],AX }
)
END;
END.