-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShow_Keys.BAS
More file actions
88 lines (72 loc) · 1.69 KB
/
Show_Keys.BAS
File metadata and controls
88 lines (72 loc) · 1.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
OPTION DEFAULT NONE
OPTION EXPLICIT
OPTION BASE 0
OPTION BREAK 0
DIM STRING key = INKEY$, quit = ""
? "KEY TESTING PROGRAM FOR SimplEd"
? "Press any key for keycode, includeing CTRL, ALT, WIN, SHIFT..."
? "Press q,u,i,t to quit this program"
?
DO WHILE quit<>"quit"
DO WHILE key = ""
key = INKEY$
LOOP
? SEkey(key)
SELECT CASE LEN(quit)
CASE 0
IF LCASE$(key) = "q" THEN
CAT quit, "q"
ELSE
quit = ""
ENDIF
CASE 1
IF LCASE$(key) = "u" THEN
CAT quit, "u"
ELSE
quit = ""
ENDIF
CASE 2
IF LCASE$(key) = "i" THEN
CAT quit, "i"
ELSE
quit = ""
ENDIF
CASE 3
IF LCASE$(key) = "t" THEN
CAT quit, "t"
ELSE
quit = ""
ENDIF
END SELECT
key = ""
LOOP
END
FUNCTION SEkey(kk AS STRING) AS STRING
LOCAL INTEGER m = KEYDOWN(7), mm = 0
LOCAL INTEGER k = ASC(kk)
SEkey = ""
IF (m AND 1) OR (m AND 16) THEN INC mm, 1000:CAT SEkey, "ALT " 'ALT
IF (m AND 2) OR (m AND 32) THEN INC mm, 4000:CAT SEkey, "CTRL " 'CTRL
IF (m AND 4) OR (m AND 64) THEN INC mm, 3000:CAT SEkey, "WIN " 'WIN
IF (m AND 8) OR (m AND 128) THEN INC mm, 2000:CAT SEkey, "SHIFT "'SHIFT
SELECT CASE kk
CASE CHR$(128)
CAT SEkey," up = "
CASE CHR$(129), CHR$(161)
CAT SEkey, " down = "
CASE CHR$(130)
CAT SEkey, " left = "
CASE CHR$(131), CHR$(163)
CAT SEkey, " right = "
CASE " "
CAT SEkey, "SPACE = "
CASE ELSE
IF (m AND 2) OR (m AND 32) THEN
CAT SEkey, CHR$(96 + k) + " = "
ELSE
CAT SEkey, LCASE$(kk) + " = "
ENDIF
END SELECT
INC k, mm
CAT SEkey, STR$(k, 4, 0, "0")
END FUNCTION