initial commit
[fifth.git] / imageFile / f / lib / 5TH_DRVKBD
1 : KBD_test\r
2 until\r
3         kbd@\r
4         dup 1 = if done then\r
5         dup if\r
6                 . tab. update\r
7         else\r
8                 drop\r
9         then\r
10 loop ;\r
11 \r
12 \r
13 create KBD_downbuf 80 alloc\r
14 \r
15 : KBD_@\r
16 until\r
17         kbd@\r
18         dup if\r
19                 dup 80 >= if\r
20                         [ KBD_downbuf 80 - ] + 0 swap c!\r
21                 else\r
22                         dup KBD_downbuf + 1 swap c! done\r
23                 then\r
24         else\r
25                 done\r
26         then\r
27 loop ;\r
28 \r
29 : KBD_down? ( KeyScanCode -- result )\r
30 KBD_downbuf + c@ ;\r
31 \r
32 rh KBD_downbuf\r
33 \r
34 str \listF\listLIB\5TH_KBD_USDVORAK" tmp1\r
35 str \listF\listLIB\5TH_KBD_US" tmp2\r
36 \r
37 .( Select keyboard layout, by pressing appropriate number. )\r
38 .( 1 - US dvorak )\r
39 .( 2 - US )\r
40 \r
41 : tmpselect\r
42 until\r
43         KBD_@\r
44         dup 2 = if tmp1 swap done then\r
45         dup 3 = if tmp2 swap done then\r
46         drop\r
47 loop ;\r
48 \r
49 update\r
50 tmpselect\r
51 .( selected )\r
52 update\r
53 \r
54 defDstr str2Dstr\r
55 forget tmp1\r
56 defDstr include\r
57 \r
58 : KBD_test2\r
59 until\r
60         KBD_@\r
61         dup 1 = if done then\r
62         dup if\r
63                 . tab. update\r
64         else\r
65                 drop\r
66         then\r
67 loop ;\r
68 \r
69 : KBD_SC2FSCII ( ScanCode -- FSCII )\r
70 KBD_table swap until    \ addr code\r
71         over @ dup if\r
72                 over = if\r
73                         drop 4 + @ done\r
74                 else\r
75                         swap 8 + swap\r
76                 then\r
77         else\r
78                 2drop drop -1 done\r
79         then\r
80 loop ;\r
81 \r
82 : KBD_F@\r
83 KBD_@\r
84 2A KBD_down? if 100 + then\r
85 38 KBD_down? if 200 + then\r
86 KBD_SC2FSCII ;\r
87 \r
88 : KBD_FW@ update\r
89 until\r
90         KBD_F@\r
91         dup -1 = if drop else done then\r
92 loop ;\r