3 <ENTRY DEFINE-NORMAL-KEY DEFINE-FUNCTION-KEY WRITE-MAPS>
5 <INCLUDE "KEYDEFS" "VSTYPES" "VSDEFS" "VSKEYDEFS">
8 <DEFINE WRITE-MAPS ("OPT" (WHERE:STRING ,X-DEFAULT-KEYMAP)
9 "AUX" NM2:<SPECIAL STRING>
10 CH:<OR <CHANNEL 'DISK> FALSE>
13 (<GASSIGNED? NORMAL-KEYS>
15 <COND (<SET CH <GEN-OPEN .WHERE "CREATE" "BINARY" DISK>>
16 <SET KN ,KEY-MIN-NORM>
17 <CHANNEL-OP .CH WRITE-BYTE <LENGTH ,NORMAL-KEYS:VECTOR>>
18 <CHANNEL-OP .CH WRITE-BYTE .KN>
20 <FUNCTION (NK:<OR KEY FALSE>)
22 <CHANNEL-OP .CH WRITE-BYTE .KN>
23 <CHANNEL-OP .CH WRITE-BUFFER .NK>)>
28 <ERROR CANT-WRITE-KEY-FILE!-ERRORS <SYS-ERR .CH .WHERE T>
31 (<GASSIGNED? FUNCTION-KEYS>
33 <COND (<SET CH <GEN-OPEN .WHERE "CREATE" "BINARY" DISK>>
35 <CHANNEL-OP .CH WRITE-BYTE <LENGTH ,FUNCTION-KEYS:VECTOR>>
36 <CHANNEL-OP .CH WRITE-BYTE .KN>
38 <FUNCTION (NK:<OR KEY FALSE>)
40 <CHANNEL-OP .CH WRITE-BYTE .KN>
41 <CHANNEL-OP .CH WRITE-BUFFER .NK>)>
43 ,FUNCTION-KEYS:VECTOR>
46 <ERROR CANT-WRITE-KEY-FILE!-ERRORS <SYS-ERR .CH .WHERE T>
50 <DEFINE DEFINE-NORMAL-KEY (WHICH:ATOM NORM:CHARACTER SHIFT:CHARACTER "OPT"
51 (LOCK?:<OR ATOM FALSE> T)
52 (CONTROL:<OR CHARACTER FALSE> <>)
53 (CONTROL-SHIFT:<OR CHARACTER FALSE> <>)
54 "AUX" KEYNO (NK <CHTYPE <IUVECTOR 5> KEY>))
55 <COND (<NOT <GASSIGNED? NORMAL-KEYS>>
56 <SETG NORMAL-KEYS <IVECTOR <+ 1 <- ,KEY-MAX-NORM ,KEY-MIN-NORM>>
58 <COND (<OR <NOT <GASSIGNED? .WHICH>>
59 <NOT <TYPE? <SET KEYNO ,.WHICH> FIX>>>
60 <ERROR NO-SUCH-KEY!-ERRORS .WHICH DEFINE-NORMAL-KEY>)
63 <KD-NORM .NK <CHTYPE .NORM FIX>>
64 <KD-SHIFT .NK <CHTYPE .SHIFT FIX>>
66 <KD-LOCK .NK <CHTYPE .SHIFT FIX>>)
68 <KD-LOCK .NK <CHTYPE .NORM FIX>>)>
70 <KD-CTRL .NK <CHTYPE .CONTROL FIX>>)
72 <KD-CTRL .NK <ANDB *37* <ASCII .NORM>>>)>
74 <KD-CS .NK <CHTYPE .CONTROL-SHIFT FIX>>)
76 <KD-CS .NK <KD-CTRL .NK>>)>
77 <PUT ,NORMAL-KEYS <- .KEYNO ,KEY-MIN-NORM -1>
80 <DEFINE DEFINE-FUNCTION-KEY (WHICH:ATOM NORM:<OR FIX CHARACTER>
81 SHIFT:<OR FIX CHARACTER> "AUX" NK KEYNO)
82 <COND (<NOT <GASSIGNED? FUNCTION-KEYS>>
83 <SETG FUNCTION-KEYS <IVECTOR <- ,KEY-MAX-FCN ,KEY-MIN-FCN -1> <>>>)>
84 <COND (<OR <NOT <GASSIGNED? .WHICH>>
85 <NOT <TYPE? <SET KEYNO ,.WHICH> FIX>>>
86 <ERROR NO-SUCH-FUNCTION-KEY!-ERRORS .WHICH DEFINE-FUNCTION-KEY>)
88 <SET NK <CHTYPE <IUVECTOR 5 0> KEY>>
89 <COND (<TYPE? .NORM FIX>
90 <KD-NORM .NK <- .NORM>>)
92 <KD-NORM .NK <CHTYPE .NORM FIX>>)>
93 <COND (<TYPE? .SHIFT FIX>
94 <KD-SHIFT .NK <- .SHIFT>>)
96 <KD-SHIFT .NK <CHTYPE .SHIFT FIX>>)>
97 <KD-LOCK .NK <KD-NORM .NK>>
98 <KD-CTRL .NK <KD-NORM .NK>>
99 <KD-CS .NK <KD-SHIFT .NK>>
100 <PUT ,FUNCTION-KEYS <- .KEYNO ,KEY-MIN-FCN -1> .NK>)>>
103 (<GASSIGNED? DEFINE-NORMAL-KEY>
104 <DEFINE-NORMAL-KEY KEY-RUBOUT <ASCII 127> <ASCII 127> <> <ASCII 127> <ASCII 127>>
105 <DEFINE-NORMAL-KEY KEY-RETURN <ASCII 13> <ASCII 13> <> <ASCII 13> <ASCII 13>>
106 <DEFINE-NORMAL-KEY KEY-TAB <ASCII 9> <ASCII 9> <> <ASCII 9> <ASCII 9>>
107 <DEFINE-NORMAL-KEY KEY-BACKQUOTE <ASCII 27> <ASCII 27> <> <ASCII 27> <ASCII 27>>
108 <DEFINE-NORMAL-KEY KEY-1 !\1 !\! <> !\1 !\!>
109 <DEFINE-NORMAL-KEY KEY-Q !\q !\Q T !\
\11 <>>
110 <DEFINE-NORMAL-KEY KEY-A !\a !\A T !\
\ 1 <>>
111 <DEFINE-NORMAL-KEY KEY-Z !\z !\Z T !\
\1a <>>
112 <DEFINE-NORMAL-KEY KEY-2 !\2 !\@ <> !\2 !\@>
113 <DEFINE-NORMAL-KEY KEY-W !\w !\W T !\
\17 <>>
114 <DEFINE-NORMAL-KEY KEY-S !\s !\S T !\
\13 <>>
115 <DEFINE-NORMAL-KEY KEY-X !\x !\X T !\
\18 <>>
116 <DEFINE-NORMAL-KEY KEY-3 !\3 !\# <> !\3 !\#>
117 <DEFINE-NORMAL-KEY KEY-E !\e !\E T !\
\ 5 <>>
118 <DEFINE-NORMAL-KEY KEY-D !\d !\D T !\
\ 4 <>>
119 <DEFINE-NORMAL-KEY KEY-C !\c !\C T !\
\ 3 <>>
120 <DEFINE-NORMAL-KEY KEY-4 !\4 !\$ <> !\4 !\$>
121 <DEFINE-NORMAL-KEY KEY-R !\r !\R T !\
\12 <>>
122 <DEFINE-NORMAL-KEY KEY-F !\f !\F T !\
\ 6 <>>
123 <DEFINE-NORMAL-KEY KEY-V !\v !\V T !\
\16 <>>
124 <DEFINE-NORMAL-KEY KEY-SPACE !\ !\ T <ASCII 0> <>>
125 <DEFINE-NORMAL-KEY KEY-5 !\5 !\% <> !\5 !\%>
126 <DEFINE-NORMAL-KEY KEY-T !\t !\T T !\
\14 <>>
127 <DEFINE-NORMAL-KEY KEY-G !\g !\G T !\
\a <>>
128 <DEFINE-NORMAL-KEY KEY-B !\b !\B T !\
\ 2 <>>
129 <DEFINE-NORMAL-KEY KEY-6 !\6 !\^ <> !\
\1e <>>
130 <DEFINE-NORMAL-KEY KEY-Y !\y !\Y T !\
\19 <>>
131 <DEFINE-NORMAL-KEY KEY-H !\h !\H T !\
\b <>>
132 <DEFINE-NORMAL-KEY KEY-N !\n !\N T !\
\ e <>>
133 <DEFINE-NORMAL-KEY KEY-7 !\7 !\& <> !\7 !\&>
134 <DEFINE-NORMAL-KEY KEY-U !\u !\U T !\
\15 <>>
135 <DEFINE-NORMAL-KEY KEY-J !\j !\J T <ASCII 10> <>>
136 <DEFINE-NORMAL-KEY KEY-M !\m !\M T <ASCII 13> <>>
137 <DEFINE-NORMAL-KEY KEY-8 !\8 !\* <> !\8 !\*>
138 <DEFINE-NORMAL-KEY KEY-I !\i !\I T <ASCII 9> <>>
139 <DEFINE-NORMAL-KEY KEY-K !\k !\K T !\
\v <>>
140 <DEFINE-NORMAL-KEY KEY-COMMA !\, !\< <> !\, !\<>
141 <DEFINE-NORMAL-KEY KEY-9 !\9 !\( <> !\9 !\(>
142 <DEFINE-NORMAL-KEY KEY-O !\o !\O T !\
\ f <>>
143 <DEFINE-NORMAL-KEY KEY-L !\l !\L T !\
\f <>>
144 <DEFINE-NORMAL-KEY KEY-DOT !\. !\> <> !\. !\>>
145 <DEFINE-NORMAL-KEY KEY-0 !\0 !\) <> !\0 !\)>
146 <DEFINE-NORMAL-KEY KEY-P !\p !\P T <> <>>
147 <DEFINE-NORMAL-KEY KEY-SEMI !\; !\: <> !\; !\:>
148 <DEFINE-NORMAL-KEY KEY-SLASH !\/ !\? <> !\/ !\?>
149 <DEFINE-NORMAL-KEY KEY-EQUAL !\= !\+ <> !\= !\+>
150 <DEFINE-NORMAL-KEY KEY-RIGHT-SQUARE !\] !\} <> !\
\1d <>>
151 <DEFINE-NORMAL-KEY KEY-BACKSLASH !\\ !\| <> !\
\1c <>>
152 <DEFINE-NORMAL-KEY KEY-DASH !\- !\_ <> !\
\1f <>>
153 <DEFINE-NORMAL-KEY KEY-LEFT-SQUARE !\[ !\{ <> !\
\e <>>
154 <DEFINE-NORMAL-KEY KEY-QUOTE !\' !\" <> !\' !\">
155 <DEFINE-NORMAL-KEY KEY-ANGLE !\` !\~ <> !\` !\~>
156 <DEFINE-FUNCTION-KEY KEY-F1 ,X-F1 ,X-F1>
157 <DEFINE-FUNCTION-KEY KEY-F2 ,X-F2 ,X-F2>
158 <DEFINE-FUNCTION-KEY KEY-F3 ,X-F3 ,X-F3>
159 <DEFINE-FUNCTION-KEY KEY-F4 ,X-F4 ,X-F4>
160 <DEFINE-FUNCTION-KEY KEY-F5 ,X-F5 ,X-F5>
161 <DEFINE-FUNCTION-KEY KEY-F6 ,X-F6 ,X-F6>
162 <DEFINE-FUNCTION-KEY KEY-F7 ,X-F7 ,X-F7>
163 <DEFINE-FUNCTION-KEY KEY-F8 ,X-F8 ,X-F8>
164 <DEFINE-FUNCTION-KEY KEY-F9 ,X-F9 ,X-F9>
165 <DEFINE-FUNCTION-KEY KEY-F10 ,X-F10 ,X-F10>
166 <DEFINE-FUNCTION-KEY KEY-F14 ,X-F14 ,X-F14>
167 <DEFINE-FUNCTION-KEY KEY-F15 ,X-HELP ,X-HELP>
168 <DEFINE-FUNCTION-KEY KEY-F16 ,X-F16 ,X-F16>
169 <DEFINE-FUNCTION-KEY KEY-F17 ,X-F17 ,X-F17>
170 <DEFINE-FUNCTION-KEY KEY-F18 ,X-F18 ,X-F18>
171 <DEFINE-FUNCTION-KEY KEY-F19 ,X-F19 ,X-F19>
172 <DEFINE-FUNCTION-KEY KEY-F20 ,X-F20 ,X-F20>
173 <DEFINE-FUNCTION-KEY KEY-E1 ,X-E1 ,X-E1>
174 <DEFINE-FUNCTION-KEY KEY-E2 ,X-E2 ,X-E2>
175 <DEFINE-FUNCTION-KEY KEY-E3 ,X-E3 ,X-E3>
176 <DEFINE-FUNCTION-KEY KEY-E4 ,X-E4 ,X-E4>
177 <DEFINE-FUNCTION-KEY KEY-E5 ,X-E5 ,X-E5>
178 <DEFINE-FUNCTION-KEY KEY-E6 ,X-E6 ,X-E6>
179 <DEFINE-FUNCTION-KEY KEY-N0 ,X-NP0 !\0>
180 <DEFINE-FUNCTION-KEY KEY-NDOT ,X-NPDOT !\.>
181 <DEFINE-FUNCTION-KEY KEY-ENTER ,X-ENTER <ASCII 13>>
182 <DEFINE-FUNCTION-KEY KEY-N1 ,X-NP1 !\1>
183 <DEFINE-FUNCTION-KEY KEY-N2 ,X-NP2 !\2>
184 <DEFINE-FUNCTION-KEY KEY-N3 ,X-NP3 !\3>
185 <DEFINE-FUNCTION-KEY KEY-N4 ,X-NP4 !\4>
186 <DEFINE-FUNCTION-KEY KEY-N5 ,X-NP5 !\5>
187 <DEFINE-FUNCTION-KEY KEY-N6 ,X-NP6 !\6>
188 <DEFINE-FUNCTION-KEY KEY-N7 ,X-NP7 !\7>
189 <DEFINE-FUNCTION-KEY KEY-N8 ,X-NP8 !\8>
190 <DEFINE-FUNCTION-KEY KEY-N9 ,X-NP9 !\9>
191 <DEFINE-FUNCTION-KEY KEY-NCOMMA ,X-NPCOMMA !\,>
192 <DEFINE-FUNCTION-KEY KEY-NDASH ,X-NPDASH !\->
193 <DEFINE-FUNCTION-KEY KEY-PF1 ,X-PF1 ,X-PF1>
194 <DEFINE-FUNCTION-KEY KEY-PF2 ,X-PF2 ,X-PF2>
195 <DEFINE-FUNCTION-KEY KEY-PF3 ,X-PF3 ,X-PF3>
196 <DEFINE-FUNCTION-KEY KEY-PF4 ,X-PF4 ,X-PF4>
197 <DEFINE-FUNCTION-KEY KEY-LEFT ,X-LEFT ,X-LEFT>
198 <DEFINE-FUNCTION-KEY KEY-RIGHT ,X-RIGHT ,X-RIGHT>
199 <DEFINE-FUNCTION-KEY KEY-UP ,X-UP ,X-UP>
200 <DEFINE-FUNCTION-KEY KEY-DOWN ,X-DOWN ,X-DOWN>
201 <DEFINE-FUNCTION-KEY KEY-F11 !\
\e !\
\e>
202 <DEFINE-FUNCTION-KEY KEY-F12 !\
\b !\
\b>
203 <DEFINE-FUNCTION-KEY KEY-F13 <ASCII 10> <ASCII 10>>)>