/[linux-patches]/genpatches-2.6/historical/2.6.2/403_speakup_accessibility.patch
Gentoo

Contents of /genpatches-2.6/historical/2.6.2/403_speakup_accessibility.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download) (as text)
Sat Jun 11 23:16:54 2005 UTC (15 years ago) by dsd
File MIME type: text/x-diff
File size: 401433 byte(s)
Import historical releases
1 diff -ruN linux-2.6.0.old/Documentation/speakup/DefaultKeyAssignments linux-2.6.0/Documentation/speakup/DefaultKeyAssignments
2 --- linux-2.6.0.old/Documentation/speakup/DefaultKeyAssignments 1969-12-31 19:00:00.000000000 -0500
3 +++ linux-2.6.0/Documentation/speakup/DefaultKeyAssignments 2003-12-28 20:50:09.057841344 -0500
4 @@ -0,0 +1,46 @@
5 +This file is intended to give you an overview of the default keys used
6 +by speakup for it's review functions. You may change them to be
7 +anything you want but that will take some familiarity with key
8 +mapping.
9 +
10 +We have remapped the insert or zero key on the keypad to act as a
11 +shift key. Well, actually as an altgr key. So in the following list
12 +InsKeyPad-period means hold down the insert key like a shift key and
13 +hit the keypad period.
14 +
15 +KeyPad-8 Say current Line
16 +InsKeyPad-8 say from top of screen to reading cursor.
17 +KeyPad-7 Say Previous Line (UP one line)
18 +KeyPad-9 Say Next Line (down one line)
19 +KeyPad-5 Say Current Word
20 +InsKeyPad-5 Spell Current Word
21 +KeyPad-4 Say Previous Word (left one word)
22 +InsKeyPad-4 say from left edge of line to reading cursor.
23 +KeyPad-6 Say Next Word (right one word)
24 +InsKeyPad-6 Say from reading cursor to right edge of line.
25 +KeyPad-2 Say Current Letter
26 +InsKeyPad-2 say current letter phonetically
27 +KeyPad-1 Say Previous Character (left one letter)
28 +KeyPad-3 Say Next Character (right one letter)
29 +KeyPad-plus Say Entire Screen
30 +InsKeyPad-plus Say from reading cursor line to bottom of screen.
31 +KeyPad-Minus Park reading cursor (toggle)
32 +InsKeyPad-minus Say character hex and decimal value.
33 +KeyPad-period Say Position (current line, position and console)
34 +InsKeyPad-period say colour attributes of current position.
35 +InsKeyPad-9 Move reading cursor to top of screen (insert pgup)
36 +InsKeyPad-3 Move reading cursor to bottom of screen (insert pgdn)
37 +InsKeyPad-7 Move reading cursor to left edge of screen (insert home)
38 +InsKeyPad-1 Move reading cursor to right edge of screen (insert end)
39 +ControlKeyPad-1 Move reading cursor to last character on current line.
40 +KeyPad-Enter Shut Up (until another key is hit) and sync reading cursor
41 +InsKeyPad-Enter Shut Up (until toggled back on).
42 +InsKeyPad-star n<x|y> go to line (y) or column (x). Where 'n' is any
43 + allowed value for the row or column for your current screen.
44 +KeyPad-/ Mark and Cut screen region.
45 +InsKeyPad-/ Paste screen region into any console.
46 +
47 +Hitting any key while speakup is outputting speech will quiet the
48 +synth until it has caught up with what is being printed on the
49 +console.
50 +
51 diff -ruN linux-2.6.0.old/Documentation/speakup/INSTALLATION linux-2.6.0/Documentation/speakup/INSTALLATION
52 --- linux-2.6.0.old/Documentation/speakup/INSTALLATION 1969-12-31 19:00:00.000000000 -0500
53 +++ linux-2.6.0/Documentation/speakup/INSTALLATION 2003-12-28 20:50:09.057841344 -0500
54 @@ -0,0 +1,108 @@
55 +This document assumes you have had some experience with kernel
56 +compilation and installation. If you have not, I recommend you get
57 +the kernel source and read the README and various documents in the
58 +linux/Documentation directory. In particular the Changes file to make
59 +sure you have the appropriate utilities needed for installing a 2.2.xx
60 +or 2.4xx kernel. It isn't as difficult as you might think. The
61 +kernel README is intimidating the first time but once you get the
62 +steps down, it's really pretty easy. Getting through the "make
63 +config" is the tedious bit.
64 +
65 +The first thing to do is to place a copy of the tarball in the /usr/src
66 +directory which is the directory the linux tree is located in as well.
67 +Next untar speakup by typing:
68 +
69 +tar zxf speakup-1.00.tar.gz
70 +cd speakup-1.00
71 +./install
72 +
73 +Note the dot-slash before the install. This will copy the speakup
74 +directory to the kernel tree and apply the various patches and
75 +components to the appropriate kernel files. Depending on how
76 +experienced you are with kernel compiling and hacking will determine
77 +whether you should bother looking at any failed patches. If this
78 +happens, you should probably write to the speakup mailing list for
79 +help or myself.
80 +
81 +If all of the patch hunks apply successfully then just continue with
82 +the standard steps to compile the kernel with:
83 +
84 +make mrproper
85 +make config
86 +
87 +When you get to the section console speech output, answer 'y' to the
88 +CONFIG_SPEAKUP prompt. You will be given a submenu with the list of
89 +synthesizers which are currently supported. You can include as many
90 +synths in the kernel as you wish but remember each one takes up kernel
91 +space. You can only choose one of the synths as the default or none,
92 +so just type dtlk or whatever is the correct string for the
93 +synthesizer you have. You will also be asked if you wish to build-in
94 +a speakup key map. If you do not say 'y' to this option you will need
95 +to load a speakup map at boot time with whichever mechanism your
96 +distribution uses for loading key maps.
97 +
98 +We have placed the speakup configuration options in make config just
99 +after the vga console choice. For the DoubleTalk PC driver included
100 +by Jim Van Zandt. I recommend you say no to that option. I have not
101 +tried configuring them both in, but I wouldn't be at all surprised if
102 +it didn't work.
103 +
104 +If all goes well up to this point you can continue with the compiling
105 +process by doing:
106 +
107 +make dep >dep.file 2>&1 &
108 +make bzImage >cc.file 2>&1 &
109 +make modules >mod.file 2>&1 &
110 +
111 +I always redirect output to the files dep.file and cc.file so I can
112 +look over the compilation record to make sure there are no errors and
113 +warnings.
114 +
115 +Okay, you are ready to install the newly compiled kernel. Make sure
116 +you make an linux.old entry in your lilo.conf file so you can recover
117 +if it blows up. next as root run "make modules_install" to install
118 +whatever modules you compiled and move the bzImage from
119 +/usr/src/linux/arch/i386/boot to wherever your kernel lives. Also
120 +move the System.map from /usr/src/linux to where your System.map
121 +lives. On our systems we use debian so we create an vmlinuz-speakup
122 +and System.map-speakup in our /boot directory and set the symbolic
123 +links vmlinuz and System.map in the root (/) directory to point to the
124 +images. Now type lilo to tell lilo to build the new booter file and
125 +install it.
126 +
127 +As of version 0.07, the keymap for speakup is automatically built in
128 +at compile time. If you have other keymaps installed at boot time,
129 +you might want to consider removing them before you reboot the system.
130 +
131 +If everything has gone OK up until now, cross your fingers and type:
132 +
133 +shutdown -r now
134 +
135 +Your system should start talking to you as soon as it starts booting.
136 +It will talk and talk and ... well, you might want to hit the
137 +keypad-enter key to tell it to shut up. You should also read the
138 +DefaultKeyAssignments file to learn the various review functions
139 +available.
140 +
141 +As of v-0.10 the speakup configuration options are in the
142 +/proc/speakup subtree. The individual options should be fairly
143 +obvious by their names such as rate, volume, punc_level and so forth.
144 +You can manipulate them by cat'ing or echoing new values to them such
145 +as:
146 +
147 +echo 9 >/proc/speakup/rate
148 +
149 +You can see what the current values are by cat'ing those files to the console:
150 +
151 +cat /proc/speakup/rate
152 +
153 +I have probably managed to overlook a whole whack of things because
154 +this is the, enter version number here, draft. Don't worry we'll get
155 +it right eventually. If you like the package you really should get on
156 +the mailing list and start participating in it's development.
157 +
158 + Kirk
159 +
160 +email: kirk@braille.uwo.ca
161 +phone: (519) 679-6845 (home)
162 +
163 diff -ruN linux-2.6.0.old/Documentation/speakup/README linux-2.6.0/Documentation/speakup/README
164 --- linux-2.6.0.old/Documentation/speakup/README 1969-12-31 19:00:00.000000000 -0500
165 +++ linux-2.6.0/Documentation/speakup/README 2003-12-28 20:50:09.057841344 -0500
166 @@ -0,0 +1,98 @@
167 +Welcome to the speakup project for the Speakup speech package for Linux.
168 +
169 +Speakup is written by Kirk Reiser and Andy Berdan. It is licensed
170 +under the GPL. If you don't already know, the GPL stands for the GNU
171 +General Public License. Which basically states that this code is free to
172 +copy, modify and distribute to anyone interested in playing with it.
173 +The one thing you may not do is turn any part of it into proprietary
174 +or commercial code without the permission of the author. That's me.
175 +
176 +If you are interested in being involved with the development of speech
177 +output for Linux you can subscribe to the Speakup mailing list by
178 +sending a message to speakup-request@braille.uwo.ca with the line: subscribe. You can also subscribe by going to the speakup web page and following the links at http://www.linux-speakup.org.
179 +
180 +We are at a very early stage in the development of this package.
181 +Hopefully changes will happen often and many. The current files in
182 +this directory are:
183 +
184 +DefaultKeyAssignments # speakup's default review keys
185 +INSTALLATION # for installing speakup from the tar ball.
186 +README # this file
187 +keymap-tutorial # a tutorial on how to layout the keyboard
188 +
189 +Read the INSTALLATION file to learn how to apply the patches and the
190 +default.map for the keyboard. You should also read the Changes file.
191 +It really has any new things I've added since last time.
192 +
193 +There is no documentation in any of these files to instruct you what
194 +to do if something goes wrong with the patching or compilation. If
195 +you would like that information you will need to subscribe to the
196 +mailing list and ask for help, or write me kirk@braille.uwo.ca for
197 +help. I suggest the mailing list because I will probably tire quickly
198 +of answering the same questions over and over. You could always
199 +decide to dig-in and take on the task, and write documentation to help
200 +others.
201 +
202 +There also is a speakup reflector for the Speak Freely package, which
203 +many of us hang out on and discuss all sorts of topics from speakup
204 +problems to ALSA driver installation and just about anything else
205 +you'd like to talk about. The reflector is at lwl.braille.uwo.ca:4074
206 +with it's lwl page at lwl.braille.uwo.ca/speakup.html. Come and join
207 +us, it's fun!
208 +
209 +Acknowledgements:
210 +
211 +I am really very new at kernel hacking and screen review package
212 +writing, so I have depended heavily on other folks kindness to help me
213 +a long. No doubt I will continue to abuse them freely and others
214 +before this is a really good speech solution for Linux. (Oh Well!,
215 +somebody's got to do it.)
216 +
217 +Theodore Ts'o. He gave me a good discussion of unicode and UTF and
218 +the like. He doesn't even remember writing me about it.
219 +
220 +Alan Cox. He has answered many questions about scheduling and wait
221 +queues and timers along with code fragments and so on. I just wish I
222 +understood it all totally. He has also helped immensely in moving
223 +this package toward inclusion in the standard kernel tree. (Maybe next
224 +release!)
225 +
226 +Martin Mares. He pointed me in the right direction to figuring out
227 +the colour attributes and other useful tidbits.
228 +
229 +Paul McDermott. He really is the catalyst for me to actually get
230 +this all working. Besides I like seeing him bounce around and get all
231 +excited every time I have something new working.
232 +
233 +John Covici, He was the first person to actually attempt writing
234 +another synthesizer driver for speakup. It was the Speakout driver so
235 +it was also the first serial driver.
236 +
237 +Brian Borowski, he was the first person to actually write a speakup
238 +function other than Andy and I.
239 +
240 +Jim Danley, he has more or less become my main man in helping test
241 +code, add new features, bounce ideas off and generally become a good
242 +friend.
243 +
244 +Matt Campbell, he basically rewrote the drivers to be able to include
245 +all synths in the kernel at the same time. The distribution
246 +maintainers appreciate him a lot as well.
247 +
248 +Gene Collins, he was very helpful debugging the current release prior
249 +to its public showing. He has also worked hard educating others on
250 +the list and writing the ALSA mini howto.
251 +
252 +I would also like to really thank the folks that handle the
253 +distribution packages. I and many other people would not find access
254 +to speakup nearly so convenient without their efforts. They include
255 +Bill Acker, Tom Moore, Matt Campbell, Joe Norton and Joshua Lambert.
256 +
257 +There are probably many more I am forgetting right now. I guess I'll
258 +just have to add you all later.
259 +
260 +
261 +Happy Hacking!
262 +
263 + Kirk
264 +
265 diff -ruN linux-2.6.0.old/Documentation/speakup/keymap-tutorial linux-2.6.0/Documentation/speakup/keymap-tutorial
266 --- linux-2.6.0.old/Documentation/speakup/keymap-tutorial 1969-12-31 19:00:00.000000000 -0500
267 +++ linux-2.6.0/Documentation/speakup/keymap-tutorial 2003-12-28 20:50:09.058841192 -0500
268 @@ -0,0 +1,140 @@
269 + Speakup Keymap Tutorial
270 +
271 +This is meant to be a basic tutorial on how to change the Linux keymap
272 +file to assign speakup review functions to desired keys. It is not
273 +intended to be a replacement for the loadkeys(8) or keymap(5) man
274 +pages.
275 +
276 +The basic lay-out of the keymap file is a series of lines with the
277 +following fields. The keyword keycode indicates this is the start of
278 +a new key assignment. It is then followed by a number which
279 +represents the actual key on the keyboard. That number is followed by
280 +the equals '=' operator and finally a list of keywords representing
281 +key names such as keypad5. Each line can have quite a few key
282 +functions on it. They are interpreted by loadkeys in order and
283 +assigned to key shift states depending on the order they are
284 +encountered. So for example, the first value after the equals is the
285 +keys unshifted state, while the second is the keys shifted state. If
286 +you wish to learn the order they are interpreted in read the
287 +loadkeys(8) and keymap(5) man pages.
288 +
289 +You can have subsequent lines which are indented and start with
290 +another keyword for the various shifted states. This way you can
291 +assign some of the states without having to specify them all in order
292 +up until you get to the one you want to assign.
293 +
294 +In speakup, we have assigned the insert key on the number pad to the
295 +altgr keyword. This is not required; you could choose any other
296 +shifted state keyword. We used altgr because it typically represents
297 +the right hand alt key. In Linux each shift key is separate and
298 +independent, so the left shift and the right shift keys are not
299 +necessarily the same. The altgr key is not really used for anything
300 +important, so we steel it.
301 +
302 +Here are the default key assignments for the number eight on the
303 +keypad:
304 +
305 +keycode 72 = KP_8
306 + alt keycode 72 = Ascii_8
307 +
308 +As you can see, the first line starts with keycode followed by 72
309 +which is the actual number assigned to the key when the keyboard port
310 +is read. The KP_8 after the equal sign, is the symbolic representation
311 +of the function called when that key is hit.
312 +
313 +The second line is the same format except it starts with the keyword
314 +alt which is indented. That means that the function at the end of
315 +that line Ascii_8 is applied to the alt-shifted eight key.
316 +
317 +Now here are the speakup assignments for that key:
318 +
319 +keycode 72 = 0x0d0a
320 + altgr keycode 72 = 0x0d20
321 +#keycode 72 = KP_8
322 + alt keycode 72 = Ascii_8
323 +
324 +Notice that the only thing which has changed on the first line is the
325 +function called when the key is struck. It is a hexadecimal number
326 +identifying the function called in a look up table. It is not a
327 +symbolic representation yet because that means we need to change the
328 +loadkeys program to understand our symbolic names. We will do this in
329 +the future but for now it is more expedient to just use the table
330 +indices. You will find a table at the bottom of this document
331 +listing the review functions and their corresponding hex lookups.
332 +
333 +The 0x0d0a in the first line above is speakup's say line function.
334 +The second line ends with 0x0d20 which is speakup's read from top of
335 +screen to reading cursor line.
336 +
337 +The third line is the original key assignment commented out with a
338 +number-sign '#' at the beginning. I do that so I can easily find the
339 +keys I want to affect by symbolic name. Otherwise I would need to
340 +keep a look up table for all the keycodes. I recommend you do this as
341 +well or you'll be very sorry at some point in the future.
342 +
343 +The forth line is just the standard key assignment for the left hand
344 +alt key.
345 +
346 +Now let's say we want to design a different keyboard layout. I'll use
347 +an example for the JAWS style keypad because I've specifically been
348 +asked to help with that. JAWS uses the eight on the keypad to move up
349 +a line or the speakup function to read previous line. JAWS also uses
350 +the keypad_8 key in a shifted mode to read the current line. I
351 +apologize if these are not quite right. It has been a long time since
352 +I used JAWS. So we would have the following two lines:
353 +
354 +keycode 72 = 0x0d0b
355 + altgr keycode 72 = 0x0d0a
356 +
357 +The hex value 0x0d0b in the first line is speakup's SAY_PREVIOUS_LINE
358 +function. The 0x0d0a in the second line is the same say_line function
359 +as we had earlier. So when the number eight is hit on the keypad
360 +speakup will read the previous line and when the number eight is
361 +shifted with the insert key on the keypad it will read the current
362 +line.
363 +
364 +As you can tell, it is not really very difficult to reassign the keys
365 +to different review functions.
366 +
367 +Once you have carefully edited the keymap file, called default.map in
368 +the speakup distribution, you copy it into the /etc/kbd directory.
369 +Make sure you back up the original default.map from that directory
370 +first, if there is one. Then you run loadkeys to load the new map
371 +into the kernel:
372 +
373 +loadkeys /etc/kbd/default.map
374 +
375 +If you wish to build your new keyboard lay-out into the kernel, after
376 +testing it, copy the default.map file into the drivers/char directory,
377 +with the name defkeymap.map, of your Linux source tree. Then rm the
378 +defkeymap.c file and recompile the kernel. Because there is no
379 +defkeymap.c `make' will rebuild it on the next compile.
380 +
381 +Here is a list of the available speakup review functions at this point
382 +in time.
383 +
384 +SAY_CHAR 0x0d04 /* say this character */
385 +SAY_PREV_CHAR 0x0d05 /* say character left of this char */
386 +SAY_NEXT_CHAR 0x0d06 /* say char right of this char */
387 +SAY_WORD 0x0d07 /* say this word under reading cursor */
388 +SAY_PREV_WORD 0x0d08
389 +SAY_NEXT_WORD 0x0d09
390 +SAY_LINE 0x0d0a /* say this line */
391 +SAY_PREV_LINE 0x0d0b /* say line above this line */
392 +SAY_NEXT_LINE 0x0d0c
393 +TOP_EDGE 0x0d0d /* move to top edge of screen */
394 +BOTTOM_EDGE 0x0d0e
395 +LEFT_EDGE 0x0d0f
396 +RIGHT_EDGE 0x0d10
397 +SAY_PHONETIC_CHAR 0x0d11 /* say this character phonetically */
398 +SPELL_WORD 0x0d12 /* spell this word letter by letter */
399 +SAY_SCREEN 0x0d14
400 +SAY_POSITION 0x0d1b
401 +SPEECH_OFF 0x0d1c
402 +SAY_ATTRIBUTES 0x0d1d
403 +SPEAKUP_PARKED 0x0d1e
404 +SAY_FROM_TOP 0x0d20
405 +SAY_TO_BOTTOM 0x0d21
406 +SAY_FROM_LEFT 0x0d22
407 +SAY_TO_RIGHT 0x0d23
408 +
409 diff -ruN linux-2.6.0.old/MAINTAINERS linux-2.6.0/MAINTAINERS
410 --- linux-2.6.0.old/MAINTAINERS 2003-12-28 19:15:38.000000000 -0500
411 +++ linux-2.6.0/MAINTAINERS 2003-12-28 20:50:09.058841192 -0500
412 @@ -1855,6 +1855,13 @@
413 L: sparclinux@vger.kernel.org
414 S: Unmaintained - please send patches to mailing list
415
416 +SPEAKUP Console speech output
417 +P: Kirk Reiser
418 +M: kirk@braille.uwo.ca
419 +L: speakup@braille.uwo.ca
420 +W: http://www.linux-speakup.org
421 +S: Maintained
422 +
423 SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
424 P: Roger Wolff
425 M: R.E.Wolff@BitWizard.nl
426 diff -ruN linux-2.6.0.old/arch/alpha/Kconfig linux-2.6.0/arch/alpha/Kconfig
427 --- linux-2.6.0.old/arch/alpha/Kconfig 2003-12-28 19:15:38.000000000 -0500
428 +++ linux-2.6.0/arch/alpha/Kconfig 2003-12-28 20:50:09.059841040 -0500
429 @@ -654,6 +654,8 @@
430
431 source "drivers/video/Kconfig"
432
433 +source "drivers/char/speakup/Kconfig"
434 +
435 source "sound/Kconfig"
436
437 source "drivers/usb/Kconfig"
438 diff -ruN linux-2.6.0.old/arch/arm/Kconfig linux-2.6.0/arch/arm/Kconfig
439 --- linux-2.6.0.old/arch/arm/Kconfig 2003-12-28 19:15:38.000000000 -0500
440 +++ linux-2.6.0/arch/arm/Kconfig 2003-12-28 20:50:09.059841040 -0500
441 @@ -634,6 +634,7 @@
442 source "fs/Kconfig"
443
444 source "drivers/video/Kconfig"
445 +source "drivers/char/speakup/Kconfig"
446
447 if ARCH_ACORN || ARCH_CLPS7500 || ARCH_TBOX || ARCH_SHARK || ARCH_SA1100 || PCI
448
449 diff -ruN linux-2.6.0.old/arch/m68k/Kconfig linux-2.6.0/arch/m68k/Kconfig
450 --- linux-2.6.0.old/arch/m68k/Kconfig 2003-12-28 19:15:38.000000000 -0500
451 +++ linux-2.6.0/arch/m68k/Kconfig 2003-12-28 20:50:09.059841040 -0500
452 @@ -1132,6 +1132,7 @@
453 source "fs/Kconfig"
454
455 source "drivers/video/Kconfig"
456 +source "drivers/char/speakup/Kconfig"
457
458 menu "Kernel hacking"
459
460 diff -ruN linux-2.6.0.old/arch/mips/Kconfig linux-2.6.0/arch/mips/Kconfig
461 --- linux-2.6.0.old/arch/mips/Kconfig 2003-12-28 19:15:38.000000000 -0500
462 +++ linux-2.6.0/arch/mips/Kconfig 2003-12-28 20:50:09.060840888 -0500
463 @@ -1247,6 +1247,7 @@
464
465 source "drivers/video/Kconfig"
466
467 +source "drivers/char/speakup/Kconfig"
468
469 menu "Sound"
470
471 diff -ruN linux-2.6.0.old/arch/ppc/Kconfig linux-2.6.0/arch/ppc/Kconfig
472 --- linux-2.6.0.old/arch/ppc/Kconfig 2003-12-28 19:15:38.000000000 -0500
473 +++ linux-2.6.0/arch/ppc/Kconfig 2003-12-28 20:50:09.060840888 -0500
474 @@ -1113,6 +1113,8 @@
475
476 source "drivers/video/Kconfig"
477
478 +source "drivers/char/speakup/Kconfig"
479 +
480 source "drivers/cdrom/Kconfig"
481
482 source "drivers/input/Kconfig"
483 diff -ruN linux-2.6.0.old/arch/sparc/Kconfig linux-2.6.0/arch/sparc/Kconfig
484 --- linux-2.6.0.old/arch/sparc/Kconfig 2003-12-28 19:15:38.000000000 -0500
485 +++ linux-2.6.0/arch/sparc/Kconfig 2003-12-28 20:50:09.061840736 -0500
486 @@ -292,6 +292,8 @@
487
488 source "drivers/video/Kconfig"
489
490 +source "drivers/char/speakup/Kconfig"
491 +
492 source "drivers/mtd/Kconfig"
493
494 source "drivers/serial/Kconfig"
495 diff -ruN linux-2.6.0.old/arch/sparc64/Kconfig linux-2.6.0/arch/sparc64/Kconfig
496 --- linux-2.6.0.old/arch/sparc64/Kconfig 2003-12-28 19:15:38.000000000 -0500
497 +++ linux-2.6.0/arch/sparc64/Kconfig 2003-12-28 20:50:09.061840736 -0500
498 @@ -495,6 +495,8 @@
499
500 source "drivers/video/Kconfig"
501
502 +source "drivers/char/speakup/Kconfig"
503 +
504 source "drivers/serial/Kconfig"
505
506 source "drivers/sbus/char/Kconfig"
507 diff -ruN linux-2.6.0.old/drivers/Kconfig linux-2.6.0/drivers/Kconfig
508 --- linux-2.6.0.old/drivers/Kconfig 2003-12-28 19:15:38.000000000 -0500
509 +++ linux-2.6.0/drivers/Kconfig 2003-12-28 20:50:09.061840736 -0500
510 @@ -44,6 +44,8 @@
511
512 source "drivers/video/Kconfig"
513
514 +source "drivers/char/speakup/Kconfig"
515 +
516 source "sound/Kconfig"
517
518 source "drivers/usb/Kconfig"
519 diff -ruN linux-2.6.0.old/drivers/char/Makefile linux-2.6.0/drivers/char/Makefile
520 --- linux-2.6.0.old/drivers/char/Makefile 2003-12-28 19:15:38.000000000 -0500
521 +++ linux-2.6.0/drivers/char/Makefile 2003-12-28 20:50:09.061840736 -0500
522 @@ -72,6 +72,7 @@
523 obj-$(CONFIG_NWFLASH) += nwflash.o
524 obj-$(CONFIG_SCx200_GPIO) += scx200_gpio.o
525
526 +obj-$(CONFIG_SPEAKUP) += speakup/
527 obj-$(CONFIG_WATCHDOG) += watchdog/
528 obj-$(CONFIG_MWAVE) += mwave/
529 obj-$(CONFIG_AGP) += agp/
530 diff -ruN linux-2.6.0.old/drivers/char/keyboard.c linux-2.6.0/drivers/char/keyboard.c
531 --- linux-2.6.0.old/drivers/char/keyboard.c 2003-12-28 19:15:38.000000000 -0500
532 +++ linux-2.6.0/drivers/char/keyboard.c 2003-12-28 20:50:09.062840584 -0500
533 @@ -41,6 +41,13 @@
534 #include <linux/sysrq.h>
535 #include <linux/input.h>
536
537 +
538 +#include <linux/speakup.h>
539 +
540 +#ifdef CONFIG_SPEAKUP_MODULE
541 +spk_key_func addr_spk_key = NULL;
542 +#endif
543 +
544 static void kbd_disconnect(struct input_handle *handle);
545 extern void ctrl_alt_del(void);
546
547 @@ -66,6 +73,10 @@
548
549 #define KBD_DEFLOCK 0
550
551 +/* Key types processed even in raw modes */
552 +
553 +#define TYPES_ALLOWED_IN_RAW_MODE ((1 << KT_SPEC) | (1 << KT_SHIFT) | (1 << KT_SPKUP))
554 +
555 void compute_shiftstate(void);
556
557 /*
558 @@ -81,7 +92,7 @@
559 typedef void (k_handler_fn)(struct vc_data *vc, unsigned char value,
560 char up_flag, struct pt_regs *regs);
561 static k_handler_fn K_HANDLERS;
562 -static k_handler_fn *k_handler[16] = { K_HANDLERS };
563 +k_handler_fn *k_handler[16] = { K_HANDLERS };
564
565 #define FN_HANDLERS\
566 fn_null, fn_enter, fn_show_ptregs, fn_show_mem,\
567 @@ -102,15 +113,18 @@
568 const int max_vals[] = {
569 255, ARRAY_SIZE(func_table) - 1, ARRAY_SIZE(fn_handler) - 1, NR_PAD - 1,
570 NR_DEAD - 1, 255, 3, NR_SHIFT - 1, 255, NR_ASCII - 1, NR_LOCK - 1,
571 - 255, NR_LOCK - 1, 255
572 + 255, NR_LOCK - 1, 255, 255
573 };
574
575 const int NR_TYPES = ARRAY_SIZE(max_vals);
576
577 struct kbd_struct kbd_table[MAX_NR_CONSOLES];
578 -static struct kbd_struct *kbd = kbd_table;
579 +struct kbd_struct *kbd = kbd_table;
580 static struct kbd_struct kbd0;
581
582 +EXPORT_SYMBOL(kbd);
583 +EXPORT_SYMBOL(k_handler);
584 +
585 int spawnpid, spawnsig;
586
587 /*
588 @@ -255,12 +269,14 @@
589 }
590 }
591 }
592 - if (ticks)
593 - mod_timer(&kd_mksound_timer, jiffies + ticks);
594 + if (ticks)
595 + mod_timer(&kd_mksound_timer, jiffies + ticks);
596 } else
597 kd_nosound(0);
598 }
599
600 +EXPORT_SYMBOL(kd_mksound);
601 +
602 /*
603 * Setting the keyboard rate.
604 */
605 @@ -594,6 +610,7 @@
606 if (up_flag)
607 return;
608 if (value >= ARRAY_SIZE(fn_handler))
609 + if (up_flag || (value >= ARRAY_SIZE(fn_handler)))
610 return;
611 if ((kbd->kbdmode == VC_RAW ||
612 kbd->kbdmode == VC_MEDIUMRAW) &&
613 @@ -1101,6 +1118,13 @@
614 key_map = key_maps[shift_final];
615
616 if (!key_map) {
617 +#ifdef CONFIG_SPEAKUP
618 + if (speakup_key(vc, shift_final, keycode, K(KT_SHIFT,0), !down, regs ))
619 + return;
620 +#elif defined(CONFIG_SPEAKUP_MODULE)
621 + if ( addr_spk_key && (*addr_spk_key)(vc, shift_final,
622 + keycode, K(KT_SHIFT,0), !down, regs) ) return;
623 +#endif
624 compute_shiftstate();
625 kbd->slockstate = 0;
626 return;
627 @@ -1115,10 +1139,17 @@
628 }
629
630 type -= 0xf0;
631 -
632 - if (raw_mode && type != KT_SPEC && type != KT_SHIFT)
633 +#ifdef CONFIG_SPEAKUP
634 + if (speakup_key(vc, shift_final, keycode, keysym, !down, regs ))
635 return;
636 +#elif defined(CONFIG_SPEAKUP_MODULE)
637 + if ( addr_spk_key && (*addr_spk_key)(vc, shift_final,
638 + keycode, keysym, !down, regs) ) return;
639 +#endif
640
641 + if (raw_mode && type != KT_SPEC && type != KT_SHIFT )
642 + return;
643 +
644 if (type == KT_LETTER) {
645 type = KT_LATIN;
646 if (vc_kbd_led(kbd, VC_CAPSLOCK)) {
647 @@ -1127,7 +1158,6 @@
648 keysym = key_map[keycode];
649 }
650 }
651 -
652 (*k_handler[type])(vc, keysym & 0xff, !down, regs);
653
654 if (type != KT_SLOCK)
655 diff -ruN linux-2.6.0.old/drivers/char/selection.c linux-2.6.0/drivers/char/selection.c
656 --- linux-2.6.0.old/drivers/char/selection.c 2003-12-28 19:15:38.000000000 -0500
657 +++ linux-2.6.0/drivers/char/selection.c 2003-12-28 20:50:09.063840432 -0500
658 @@ -251,7 +251,8 @@
659 sel_end = new_sel_end;
660
661 /* Allocate a new buffer before freeing the old one ... */
662 - bp = kmalloc((sel_end-sel_start)/2+1, GFP_KERNEL);
663 + bp = kmalloc((sel_end-sel_start)/2+1, (user) ?
664 + GFP_KERNEL: GFP_ATOMIC);
665 if (!bp) {
666 printk(KERN_WARNING "selection: kmalloc() failed\n");
667 clear_selection();
668 @@ -310,3 +311,4 @@
669
670 EXPORT_SYMBOL(set_selection);
671 EXPORT_SYMBOL(paste_selection);
672 +EXPORT_SYMBOL(clear_selection);
673 diff -ruN linux-2.6.0.old/drivers/char/speakup/BUGS linux-2.6.0/drivers/char/speakup/BUGS
674 --- linux-2.6.0.old/drivers/char/speakup/BUGS 1969-12-31 19:00:00.000000000 -0500
675 +++ linux-2.6.0/drivers/char/speakup/BUGS 2003-12-28 20:50:09.063840432 -0500
676 @@ -0,0 +1,10 @@
677 +Well, there are probably just thousands to squash, but these are the
678 +ones I think of as bugs.
679 +
680 +There is a problem with speakup interrogating LiteTalks with rom
681 +versions of at least 3.22 and earlier. (kirk)
682 +
683 +I define bugs as things which aren't working correctly although
684 +they've been implemented. NOT features which haven't been added yet.
685 +
686 + Kirk
687 diff -ruN linux-2.6.0.old/drivers/char/speakup/COPYING linux-2.6.0/drivers/char/speakup/COPYING
688 --- linux-2.6.0.old/drivers/char/speakup/COPYING 1969-12-31 19:00:00.000000000 -0500
689 +++ linux-2.6.0/drivers/char/speakup/COPYING 2003-12-28 20:50:09.064840280 -0500
690 @@ -0,0 +1,358 @@
691 +
692 + NOTE! This copyright does *not* cover user programs that use kernel
693 + services by normal system calls - this is merely considered normal use
694 + of the kernel, and does *not* fall under the heading of "derived work".
695 + Also note that the GPL below is copyrighted by the Free Software
696 + Foundation, but the instance of code that it refers to (the Linux
697 + kernel) is copyrighted by me and others who actually wrote it.
698 +
699 + Linus Torvalds
700 +
701 +----------------------------------------
702 +
703 +This is included for completeness of GPL for the speakup project.
704 +Speakup is a screen review and speech synthesizer set of drivers and
705 +patches for the Linux kernel. (Kirk Reiser)
706 +
707 +------------------------------------------------------------------------
708 +
709 + GNU GENERAL PUBLIC LICENSE
710 + Version 2, June 1991
711 +
712 + Copyright (C) 1989, 1991 Free Software Foundation, Inc.
713 + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
714 + Everyone is permitted to copy and distribute verbatim copies
715 + of this license document, but changing it is not allowed.
716 +
717 + Preamble
718 +
719 + The licenses for most software are designed to take away your
720 +freedom to share and change it. By contrast, the GNU General Public
721 +License is intended to guarantee your freedom to share and change free
722 +software--to make sure the software is free for all its users. This
723 +General Public License applies to most of the Free Software
724 +Foundation's software and to any other program whose authors commit to
725 +using it. (Some other Free Software Foundation software is covered by
726 +the GNU Library General Public License instead.) You can apply it to
727 +your programs, too.
728 +
729 + When we speak of free software, we are referring to freedom, not
730 +price. Our General Public Licenses are designed to make sure that you
731 +have the freedom to distribute copies of free software (and charge for
732 +this service if you wish), that you receive source code or can get it
733 +if you want it, that you can change the software or use pieces of it
734 +in new free programs; and that you know you can do these things.
735 +
736 + To protect your rights, we need to make restrictions that forbid
737 +anyone to deny you these rights or to ask you to surrender the rights.
738 +These restrictions translate to certain responsibilities for you if you
739 +distribute copies of the software, or if you modify it.
740 +
741 + For example, if you distribute copies of such a program, whether
742 +gratis or for a fee, you must give the recipients all the rights that
743 +you have. You must make sure that they, too, receive or can get the
744 +source code. And you must show them these terms so they know their
745 +rights.
746 +
747 + We protect your rights with two steps: (1) copyright the software, and
748 +(2) offer you this license which gives you legal permission to copy,
749 +distribute and/or modify the software.
750 +
751 + Also, for each author's protection and ours, we want to make certain
752 +that everyone understands that there is no warranty for this free
753 +software. If the software is modified by someone else and passed on, we
754 +want its recipients to know that what they have is not the original, so
755 +that any problems introduced by others will not reflect on the original
756 +authors' reputations.
757 +
758 + Finally, any free program is threatened constantly by software
759 +patents. We wish to avoid the danger that redistributors of a free
760 +program will individually obtain patent licenses, in effect making the
761 +program proprietary. To prevent this, we have made it clear that any
762 +patent must be licensed for everyone's free use or not licensed at all.
763 +
764 + The precise terms and conditions for copying, distribution and
765 +modification follow.
766 +
767 + GNU GENERAL PUBLIC LICENSE
768 + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
769 +
770 + 0. This License applies to any program or other work which contains
771 +a notice placed by the copyright holder saying it may be distributed
772 +under the terms of this General Public License. The "Program", below,
773 +refers to any such program or work, and a "work based on the Program"
774 +means either the Program or any derivative work under copyright law:
775 +that is to say, a work containing the Program or a portion of it,
776 +either verbatim or with modifications and/or translated into another
777 +language. (Hereinafter, translation is included without limitation in
778 +the term "modification".) Each licensee is addressed as "you".
779 +
780 +Activities other than copying, distribution and modification are not
781 +covered by this License; they are outside its scope. The act of
782 +running the Program is not restricted, and the output from the Program
783 +is covered only if its contents constitute a work based on the
784 +Program (independent of having been made by running the Program).
785 +Whether that is true depends on what the Program does.
786 +
787 + 1. You may copy and distribute verbatim copies of the Program's
788 +source code as you receive it, in any medium, provided that you
789 +conspicuously and appropriately publish on each copy an appropriate
790 +copyright notice and disclaimer of warranty; keep intact all the
791 +notices that refer to this License and to the absence of any warranty;
792 +and give any other recipients of the Program a copy of this License
793 +along with the Program.
794 +
795 +You may charge a fee for the physical act of transferring a copy, and
796 +you may at your option offer warranty protection in exchange for a fee.
797 +
798 + 2. You may modify your copy or copies of the Program or any portion
799 +of it, thus forming a work based on the Program, and copy and
800 +distribute such modifications or work under the terms of Section 1
801 +above, provided that you also meet all of these conditions:
802 +
803 + a) You must cause the modified files to carry prominent notices
804 + stating that you changed the files and the date of any change.
805 +
806 + b) You must cause any work that you distribute or publish, that in
807 + whole or in part contains or is derived from the Program or any
808 + part thereof, to be licensed as a whole at no charge to all third
809 + parties under the terms of this License.
810 +
811 + c) If the modified program normally reads commands interactively
812 + when run, you must cause it, when started running for such
813 + interactive use in the most ordinary way, to print or display an
814 + announcement including an appropriate copyright notice and a
815 + notice that there is no warranty (or else, saying that you provide
816 + a warranty) and that users may redistribute the program under
817 + these conditions, and telling the user how to view a copy of this
818 + License. (Exception: if the Program itself is interactive but
819 + does not normally print such an announcement, your work based on
820 + the Program is not required to print an announcement.)
821 +
822 +These requirements apply to the modified work as a whole. If
823 +identifiable sections of that work are not derived from the Program,
824 +and can be reasonably considered independent and separate works in
825 +themselves, then this License, and its terms, do not apply to those
826 +sections when you distribute them as separate works. But when you
827 +distribute the same sections as part of a whole which is a work based
828 +on the Program, the distribution of the whole must be on the terms of
829 +this License, whose permissions for other licensees extend to the
830 +entire whole, and thus to each and every part regardless of who wrote it.
831 +
832 +Thus, it is not the intent of this section to claim rights or contest
833 +your rights to work written entirely by you; rather, the intent is to
834 +exercise the right to control the distribution of derivative or
835 +collective works based on the Program.
836 +
837 +In addition, mere aggregation of another work not based on the Program
838 +with the Program (or with a work based on the Program) on a volume of
839 +a storage or distribution medium does not bring the other work under
840 +the scope of this License.
841 +
842 + 3. You may copy and distribute the Program (or a work based on it,
843 +under Section 2) in object code or executable form under the terms of
844 +Sections 1 and 2 above provided that you also do one of the following:
845 +
846 + a) Accompany it with the complete corresponding machine-readable
847 + source code, which must be distributed under the terms of Sections
848 + 1 and 2 above on a medium customarily used for software interchange; or,
849 +
850 + b) Accompany it with a written offer, valid for at least three
851 + years, to give any third party, for a charge no more than your
852 + cost of physically performing source distribution, a complete
853 + machine-readable copy of the corresponding source code, to be
854 + distributed under the terms of Sections 1 and 2 above on a medium
855 + customarily used for software interchange; or,
856 +
857 + c) Accompany it with the information you received as to the offer
858 + to distribute corresponding source code. (This alternative is
859 + allowed only for noncommercial distribution and only if you
860 + received the program in object code or executable form with such
861 + an offer, in accord with Subsection b above.)
862 +
863 +The source code for a work means the preferred form of the work for
864 +making modifications to it. For an executable work, complete source
865 +code means all the source code for all modules it contains, plus any
866 +associated interface definition files, plus the scripts used to
867 +control compilation and installation of the executable. However, as a
868 +special exception, the source code distributed need not include
869 +anything that is normally distributed (in either source or binary
870 +form) with the major components (compiler, kernel, and so on) of the
871 +operating system on which the executable runs, unless that component
872 +itself accompanies the executable.
873 +
874 +If distribution of executable or object code is made by offering
875 +access to copy from a designated place, then offering equivalent
876 +access to copy the source code from the same place counts as
877 +distribution of the source code, even though third parties are not
878 +compelled to copy the source along with the object code.
879 +
880 + 4. You may not copy, modify, sublicense, or distribute the Program
881 +except as expressly provided under this License. Any attempt
882 +otherwise to copy, modify, sublicense or distribute the Program is
883 +void, and will automatically terminate your rights under this License.
884 +However, parties who have received copies, or rights, from you under
885 +this License will not have their licenses terminated so long as such
886 +parties remain in full compliance.
887 +
888 + 5. You are not required to accept this License, since you have not
889 +signed it. However, nothing else grants you permission to modify or
890 +distribute the Program or its derivative works. These actions are
891 +prohibited by law if you do not accept this License. Therefore, by
892 +modifying or distributing the Program (or any work based on the
893 +Program), you indicate your acceptance of this License to do so, and
894 +all its terms and conditions for copying, distributing or modifying
895 +the Program or works based on it.
896 +
897 + 6. Each time you redistribute the Program (or any work based on the
898 +Program), the recipient automatically receives a license from the
899 +original licensor to copy, distribute or modify the Program subject to
900 +these terms and conditions. You may not impose any further
901 +restrictions on the recipients' exercise of the rights granted herein.
902 +You are not responsible for enforcing compliance by third parties to
903 +this License.
904 +
905 + 7. If, as a consequence of a court judgment or allegation of patent
906 +infringement or for any other reason (not limited to patent issues),
907 +conditions are imposed on you (whether by court order, agreement or
908 +otherwise) that contradict the conditions of this License, they do not
909 +excuse you from the conditions of this License. If you cannot
910 +distribute so as to satisfy simultaneously your obligations under this
911 +License and any other pertinent obligations, then as a consequence you
912 +may not distribute the Program at all. For example, if a patent
913 +license would not permit royalty-free redistribution of the Program by
914 +all those who receive copies directly or indirectly through you, then
915 +the only way you could satisfy both it and this License would be to
916 +refrain entirely from distribution of the Program.
917 +
918 +If any portion of this section is held invalid or unenforceable under
919 +any particular circumstance, the balance of the section is intended to
920 +apply and the section as a whole is intended to apply in other
921 +circumstances.
922 +
923 +It is not the purpose of this section to induce you to infringe any
924 +patents or other property right claims or to contest validity of any
925 +such claims; this section has the sole purpose of protecting the
926 +integrity of the free software distribution system, which is
927 +implemented by public license practices. Many people have made
928 +generous contributions to the wide range of software distributed
929 +through that system in reliance on consistent application of that
930 +system; it is up to the author/donor to decide if he or she is willing
931 +to distribute software through any other system and a licensee cannot
932 +impose that choice.
933 +
934 +This section is intended to make thoroughly clear what is believed to
935 +be a consequence of the rest of this License.
936 +
937 + 8. If the distribution and/or use of the Program is restricted in
938 +certain countries either by patents or by copyrighted interfaces, the
939 +original copyright holder who places the Program under this License
940 +may add an explicit geographical distribution limitation excluding
941 +those countries, so that distribution is permitted only in or among
942 +countries not thus excluded. In such case, this License incorporates
943 +the limitation as if written in the body of this License.
944 +
945 + 9. The Free Software Foundation may publish revised and/or new versions
946 +of the General Public License from time to time. Such new versions will
947 +be similar in spirit to the present version, but may differ in detail to
948 +address new problems or concerns.
949 +
950 +Each version is given a distinguishing version number. If the Program
951 +specifies a version number of this License which applies to it and "any
952 +later version", you have the option of following the terms and conditions
953 +either of that version or of any later version published by the Free
954 +Software Foundation. If the Program does not specify a version number of
955 +this License, you may choose any version ever published by the Free Software
956 +Foundation.
957 +
958 + 10. If you wish to incorporate parts of the Program into other free
959 +programs whose distribution conditions are different, write to the author
960 +to ask for permission. For software which is copyrighted by the Free
961 +Software Foundation, write to the Free Software Foundation; we sometimes
962 +make exceptions for this. Our decision will be guided by the two goals
963 +of preserving the free status of all derivatives of our free software and
964 +of promoting the sharing and reuse of software generally.
965 +
966 + NO WARRANTY
967 +
968 + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
969 +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
970 +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
971 +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
972 +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
973 +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
974 +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
975 +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
976 +REPAIR OR CORRECTION.
977 +
978 + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
979 +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
980 +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
981 +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
982 +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
983 +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
984 +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
985 +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
986 +POSSIBILITY OF SUCH DAMAGES.
987 +
988 + END OF TERMS AND CONDITIONS
989 +
990 + How to Apply These Terms to Your New Programs
991 +
992 + If you develop a new program, and you want it to be of the greatest
993 +possible use to the public, the best way to achieve this is to make it
994 +free software which everyone can redistribute and change under these terms.
995 +
996 + To do so, attach the following notices to the program. It is safest
997 +to attach them to the start of each source file to most effectively
998 +convey the exclusion of warranty; and each file should have at least
999 +the "copyright" line and a pointer to where the full notice is found.
1000 +
1001 + <one line to give the program's name and a brief idea of what it does.>
1002 + Copyright (C) 19yy <name of author>
1003 +
1004 + This program is free software; you can redistribute it and/or modify
1005 + it under the terms of the GNU General Public License as published by
1006 + the Free Software Foundation; either version 2 of the License, or
1007 + (at your option) any later version.
1008 +
1009 + This program is distributed in the hope that it will be useful,
1010 + but WITHOUT ANY WARRANTY; without even the implied warranty of
1011 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1012 + GNU General Public License for more details.
1013 +
1014 + You should have received a copy of the GNU General Public License
1015 + along with this program; if not, write to the Free Software
1016 + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1017 +
1018 +
1019 +Also add information on how to contact you by electronic and paper mail.
1020 +
1021 +If the program is interactive, make it output a short notice like this
1022 +when it starts in an interactive mode:
1023 +
1024 + Gnomovision version 69, Copyright (C) 19yy name of author
1025 + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
1026 + This is free software, and you are welcome to redistribute it
1027 + under certain conditions; type `show c' for details.
1028 +
1029 +The hypothetical commands `show w' and `show c' should show the appropriate
1030 +parts of the General Public License. Of course, the commands you use may
1031 +be called something other than `show w' and `show c'; they could even be
1032 +mouse-clicks or menu items--whatever suits your program.
1033 +
1034 +You should also get your employer (if you work as a programmer) or your
1035 +school, if any, to sign a "copyright disclaimer" for the program, if
1036 +necessary. Here is a sample; alter the names:
1037 +
1038 + Yoyodyne, Inc., hereby disclaims all copyright interest in the program
1039 + `Gnomovision' (which makes passes at compilers) written by James Hacker.
1040 +
1041 + <signature of Ty Coon>, 1 April 1989
1042 + Ty Coon, President of Vice
1043 +
1044 +This General Public License does not permit incorporating your program into
1045 +proprietary programs. If your program is a subroutine library, you may
1046 +consider it more useful to permit linking proprietary applications with the
1047 +library. If this is what you want to do, use the GNU Library General
1048 +Public License instead of this License.
1049 diff -ruN linux-2.6.0.old/drivers/char/speakup/ChangeLog linux-2.6.0/drivers/char/speakup/ChangeLog
1050 --- linux-2.6.0.old/drivers/char/speakup/ChangeLog 1969-12-31 19:00:00.000000000 -0500
1051 +++ linux-2.6.0/drivers/char/speakup/ChangeLog 2003-12-28 20:50:09.066839976 -0500
1052 @@ -0,0 +1,2303 @@
1053 +2003-11-12 Wednesday 15:53 kirk
1054 +
1055 + Made the modifications for the Apollo synth in the Configure.help for
1056 + the 2.4.xx kernels. (kirk)
1057 +
1058 +2003-11-12 Wednesday 15:41 kirk
1059 +
1060 + Fixed the problem with the Speakout synth not getting detected on load
1061 + thanks to Steve Holmes. I over looked fixing Apolo to Apollo in
1062 + Config.in thanks to Bill Acker for noticing that. I still have to fix
1063 + it in Config.help but I'll do that shortly. Put fuzzy say_word
1064 + processing back in when say_word_ctl is not set thanks to John Covici
1065 + for that one. I also put cursor tracking on/off back in do to a cast
1066 + of thousands asking for it. Mostly at the instigation of Gene
1067 + Collins. You'll have to check to see if it actually works Gene.
1068 + (kirk)
1069 +
1070 +2003-11-11 Tuesday 09:51 david
1071 +
1072 + the keynote pc driver off the machine which had the working version, oops!
1073 +
1074 +2003-11-06 Thursday 14:00 kirk
1075 +
1076 + These are mostly maintenance fixes. I added the Keynote Gold PC
1077 + configuration information to Kconfig. I edited the keynote driver
1078 + speakup_keypc.c so it actually compiles. Someone else will have to
1079 + test this because I don't have a Keynote Gold PC. I removed the
1080 + serial_in functions which were not being used from the
1081 + speakup_acntsa.c and speakup_bns.c drivers. I actually finally got
1082 + around to fixing the Apollo driver and related other code to use
1083 + apollo with two 'l's like it should have been a long time ago. (kirk)
1084 +
1085 +2003-11-03 Monday 09:31 david
1086 +
1087 + fixed a multiplier bug in common so it would do negative multipliers.
1088 + also added prliminary keynote pc driver.
1089 +
1090 +2003-11-01 Saturday 17:45 kirk
1091 +
1092 + I moved the synth_alive setting to true up a number of lines. The
1093 + synths which depend on that variable were not receiving their
1094 + initialization strings because it wasn't set quite early enough. The
1095 + speakup_write() returns if synth_alive isn't set and so it wasn't
1096 + sending out the initialization strings. (kirk)
1097 +
1098 + I put a ten millisecond delay back in the probing code for the
1099 + speakout which I removed when updating last time. It may be the
1100 + reason the probe is failing on the Speakouts. (kirk)
1101 +
1102 +2003-10-28 Tuesday 11:15 david
1103 +
1104 + fixed volume command for j norton
1105 +
1106 +2003-10-24 Friday 14:20 david
1107 +
1108 + the EXPORT-OBJ is now fixed
1109 +
1110 +2003-10-24 Friday 14:00 david
1111 +
1112 + ok hopefully keyboard.c and char/Makefile will patch correctly
1113 +
1114 +2003-10-23 Thursday 10:14 david
1115 +
1116 + added delay for accent-sa.
1117 + also fixed bug where if word ended in col-80 and next line had word in col-1
1118 + next-word key would skip first workd on next line.
1119 +
1120 +2003-10-20 Monday 09:58 kirk
1121 +
1122 + Changed patch for architecture i386 from arch/i386/Kconfig to
1123 + drivers/Kconfig for kernels above 2.6.0-test7. I suspect this may
1124 + happen to many of the architecture files over time. Makes sense
1125 + really. (kirk)
1126 +
1127 +2003-10-10 Friday 16:08 kirk
1128 +
1129 + I have fixed the say_next_word bug which when moving to the next line
1130 + misses the partial word at the beginning of line caused by a wrap
1131 + around on the screen. I have also created a new
1132 + /proc/speakup/say_word_ctl option to allow a user to set whether they
1133 + have the old say word behavior or returns space if between words. The
1134 + default is the old way although not quite because I still have to fix
1135 + the way it used to check words. It will eventually have more control
1136 + options than just 0 return word or 1 return space on space. (kirk)
1137 +
1138 +2003-10-08 Wednesday 13:29 kirk
1139 +
1140 + Temporarily removing the MOD_INC_AND_DEC_USE_COUNT variables for now.
1141 + I am not sure they are particularly useful. (kirk)
1142 +
1143 +2003-10-08 Wednesday 11:02 kirk
1144 +
1145 + Made a couple of syntax changes to speakup_key_help and
1146 + speakup_acntsa.c. Also modified the Dectalk PC internal
1147 + driver. (kirk)
1148 +
1149 +2003-10-07 Tuesday 21:04 kirk
1150 +
1151 + Okay, I have modified all of the drivers except the Dectalk PC
1152 + internal. People are free to try them and let me know how they do or
1153 + don't work. (kirk)
1154 +
1155 +2003-10-07 Tuesday 16:02 kirk
1156 +
1157 + This is an experimental check in of speakup which has many changes and
1158 + fixes and most likely broken bits, in it. It is dangerous to use this
1159 + currently and unless you have an Apollo, Transport or LiteTalk it just
1160 + plain won't work.
1161 +
1162 + Now what I have done so far. Modified synth_request_region to steel
1163 + the tty's away from the operating system if we're being loaded as a
1164 + module or modules. Heavily modified the module sections of the code
1165 + to work properly under 2.6.x and 2.4.2? hopefully. Modified three
1166 + drivers so far to not pretend to be ready and available when they are
1167 + not. We get away with it under 2.4.x but not under 2.6.x. I don't
1168 + remember what else just now but a lot of changes. (kirk)
1169 +
1170 + When this is all finished you will be able to load or unload with
1171 + either modprobe or echo whichever you prefer. It will hopefully make
1172 + it easier for loading modules at boot time. (kirk)
1173 +
1174 +2003-09-19 Friday 10:03 kirk
1175 +
1176 + Just updating the ChangeLog before commensing to break things! (kirk)
1177 +
1178 +2003-09-19 Friday 10:01 kirk
1179 +
1180 + Updating the 2.6.0 tree based on 2.6.0-test5 which modified once again
1181 + how the arch Kconfig's are arranged. Also including the decpc driver
1182 + and fixing a Kconfig bug for the Audapter under 2.6.x kernels. (kirk)
1183 +
1184 +2003-08-18 Monday 13:02 gene
1185 +
1186 + Reverted from Jul 23 to Jul 16 LiteTalk driver because of a bad port test. (Gene)
1187 +
1188 +2003-08-08 Friday 14:15 david
1189 +
1190 + added punc level 4 for reading of extended characters above ascii 127
1191 + changed the say/spell word functions so that if not on a word say space
1192 + instead of dragging to the nearest word, prevented me from hearing
1193 + collumn misallignments.
1194 +
1195 +2003-08-02 Saturday 20:56 david
1196 +
1197 + fixed accent driver, forgot to set synth_alive (cuss cuss)
1198 + So it use to only talk when you pressed kill oops :-)
1199 +
1200 +2003-08-01 Friday 16:23 david
1201 +
1202 + fixed flush and some hanging issues. Also better board detection.
1203 +
1204 +2003-07-31 Thursday 11:27 david
1205 +
1206 + the dec_pc beta driver. You will also need dec_pc.tgz to init the
1207 + dec_pc board. The source for dtload is here.
1208 + the dec_pc.tgz contains dtload, a Readme and the dec_pc software.
1209 +
1210 +2003-07-30 Wednesday 14:50 david
1211 +
1212 + hmmm fixed help? darn thing didn't even compile. oops!!
1213 +
1214 +2003-07-30 Wednesday 14:45 david
1215 +
1216 + fixed help so it doesn't hang.
1217 + also removed the synthlist for modules. this means that new synth
1218 + can be loaded as modules without re-compiling speakup.
1219 + It now just looks for a module speakup_(name) with a valid check value
1220 + in the synth header.
1221 +
1222 +2003-07-28 Monday 18:48 david
1223 +
1224 + fixed dec to be more responsive after flush.
1225 + instead of waiting 100ms, wiat for receive ctl-a
1226 + from express, signals done flush.
1227 +
1228 +2003-07-23 Wednesday 14:26 david
1229 +
1230 + fixed bug in ltlk where if no synth kernel hung
1231 + waiting for input. Also made sure other
1232 + synths could not hang on startup.
1233 +
1234 +2003-07-22 Tuesday 17:17 kirk
1235 +
1236 + Checking in the 2.6.x changes to Makefile to support Davids new
1237 + makemapdata.c and makemapdata.h files. (kirk)
1238 +
1239 +2003-07-22 Tuesday 15:15 kirk
1240 +
1241 + Okay, I lied earlier as usual. This fix works and I know it! (kirk)
1242 +
1243 +2003-07-22 Tuesday 10:51 kirk
1244 +
1245 + Hopefully fixed once and for all the copy and paste call to
1246 + set_selection() for 2.4.x and 2.6.x kernels. Had to revert to using a
1247 + silly #if (linux_version_code) macro for a function argument which
1248 + gets bumped in 2.4.x kernels but is used as is in the 2.6.x
1249 + tree. (kirk)
1250 +
1251 +2003-07-21 Monday 08:26 david
1252 +
1253 + fixed keyhelp so speakup key is not announced twice as in
1254 + keypad 0, speakup keypad 0
1255 + the speakup mapping is required so speakup key is processed
1256 + when speakup bit is set.
1257 + also genmap now detects two functions mapped to same key combination.
1258 +
1259 +2003-07-18 Friday 10:08 david
1260 +
1261 + makemapdata.c creates mapdata.h which is used to
1262 + build genmap
1263 +
1264 +2003-07-18 Friday 10:07 david
1265 +
1266 + split genmap into two programs so includes do not
1267 + have to be available.
1268 + makemapdata constructs the tables which genmap uses
1269 + mapdata.h is compiled into genmap so it can be stand-alone
1270 +
1271 +2003-07-17 Thursday 16:24 david
1272 +
1273 + enlarged keytable was causing misread of say attributes,
1274 + also version #if on inc_mod_use_count was wrong
1275 +
1276 +2003-07-17 Thursday 09:46 david
1277 +
1278 + a script to load/save speakup configurations. run as speakupconf load/save
1279 + as root saves in /etc/speakup, as non-root saves in $HOME/.speakup
1280 +
1281 +2003-07-17 Thursday 08:09 kirk
1282 +
1283 + Checked in Kconfig-shared.patch which I forgot to check in yesterday.
1284 + Removed arch/mips/Kconfig which has been replaced with Kconfig-shared.
1285 + Fixed copy-and-paste which wasn't working in the 2.5.x and 2.6.x
1286 + kernel branches. (kirk)
1287 +
1288 +2003-07-16 Wednesday 20:50 kirk
1289 +
1290 + Rechecking in the 2.4.21 changes to speakup. I have also changed the
1291 + default punctuation delimeters to none and moved reading punc default
1292 + back to some. (kirk)
1293 +
1294 +2003-07-16 Wednesday 17:17 david
1295 +
1296 + long awaited keymap proc entry. use genmap to create the map.
1297 + as in genmap personal.map >/proc/speakup/keymap
1298 + or genmap personal.map >key_save
1299 + then at startup cat key_save >/proc/speakup/keymap
1300 +
1301 +2003-07-16 Wednesday 13:51 kirk
1302 +
1303 + Adding in initial support for Linux version 2.6.x. (kirk)
1304 +
1305 +2003-07-16 Wednesday 09:07 david
1306 +
1307 + added a check value to synth structure to validate on init.
1308 + added synth flags for synth speciffic processing.
1309 + added synth speciffic code for dectalk to insert a space between
1310 + puncs and alphas to stop dec from spelling urls etc when punc is not
1311 + spoken.
1312 +
1313 +2003-07-15 Tuesday 16:29 david
1314 +
1315 + added extended numeric processing to do $4.00 correctly.
1316 + no exnum chars are currently on, edit them is bound to speakup f9
1317 +
1318 +2003-07-11 Friday 08:43 david
1319 +
1320 + added a type 2 key echo for always speaking key even if system does not
1321 + echo, useful for validating visa numbers etc. in forms.
1322 +
1323 +2003-07-08 Tuesday 08:51 david
1324 +
1325 + fixed keyboard so works in raw mode and also prev hang bug fix from 2.4
1326 +
1327 +2003-07-08 Tuesday 08:35 david
1328 +
1329 + fixed keyboard hang, caused by shift_state pointing at null map
1330 + and I passed KT_SPKUP instead of KT_SHIFT which caused shift_state to not be computed
1331 +
1332 +2003-06-26 Thursday 14:32 kirk
1333 +
1334 + Modified Makefile to handle compiling of genmap and the speakupmap.h
1335 + dependency correctly once again in the 2.4.x tree. Also updated
1336 + ChangeLog because it hasn't been done for a while. (kirk)
1337 +
1338 +2003-06-26 Thursday 13:43 kirk
1339 +
1340 + These are mostly changes to try to get the modularization working with
1341 + the 2.5.x kernel tree. They may have had an unstablizing affect on
1342 + the 2.4.x tree so beware.
1343 +
1344 + Changes include modifying genmap.c to hopefully work in both the 2.4.x
1345 + and 2.5.x trees. This has not yet been tested on the 2.4.x tree
1346 + although it will be soon. The reason for it's changes are because the
1347 + 2.4.x kernels 'cd' into each directory and then run Makefile. In the
1348 + 2.5.x kernels all compiling is run from the tree root.
1349 +
1350 + Modified Makefile to also use the 2.5.x Makefile changes and reordered
1351 + the synth lines alphabetically.
1352 +
1353 + Modified a couple of drivers and the module include files to
1354 + incorporate Tom Stivers module licensing strings which will hopefully
1355 + stop the tainted kernel messages on module loading.
1356 +
1357 + Partially incorporated the modularization code into keyboard.c, vt.c
1358 + and I'm not sure what other patches. This is not complete. Speakup
1359 + works if built-in but I am getting all sorts of kernel oopses when
1360 + loading modules. There's something I don't have quite right just
1361 + yet. (kirk)
1362 +
1363 +2003-06-19 Thursday 09:41 kirk
1364 +
1365 + qUpdated files for 2.4.21 which will require using it. Files changed are arch/mips/config-share.in, drivers/char/Makefile, drivers/char/keyboard.c and removed the miscdevices.h patch which doesn't appear to be necessary any longer. (kirk)
1366 +
1367 +2003-06-18 Wednesday 16:29 david
1368 +
1369 + added module include
1370 +
1371 +2003-06-17 Tuesday 16:37 david
1372 +
1373 + fixes to makefiles in speakup and char so it actually builds :-)
1374 +
1375 +2003-06-16 Monday 16:55 david
1376 +
1377 + added hopefully all the exported symbols for
1378 + modular speakup
1379 +
1380 +2003-06-16 Monday 16:40 david
1381 +
1382 + added the patch for vt.c to export kd_mksound for spk module
1383 +
1384 +2003-06-16 Monday 16:38 david
1385 +
1386 + modularized speakup now works on 2.4.
1387 + loading any synth with modprobe should load spk.o and start talking
1388 +
1389 +2003-06-13 Friday 12:43 david
1390 +
1391 + added key exploring to help so they ident when pressed.
1392 + also took off the unsigned from the int currcons as
1393 + fg_console is an int so the called funcs ought to take an int
1394 +
1395 +2003-06-13 Friday 08:39 kirk
1396 +
1397 + A couple of small fixes I keep making and forgetting to check in. Fixed
1398 + CONFIG_SPEAKUP_APOLO in the Kconfig file. Placed a space after cap in
1399 + the caps_start string for the apolo. I can't remember what else
1400 + off-hand. (kirk)
1401 +
1402 +2003-06-12 Thursday 15:48 kirk
1403 +
1404 + A simple typo fix in ld_help although I like having hell in the middle
1405 + of help. (kirk)
1406 +
1407 +2003-06-12 Thursday 14:39 david
1408 +
1409 + keyinfo.h is #defines and enum formerly in include/linux/speakup.h
1410 + these are not kernel specific and might as well be here!
1411 +
1412 +2003-06-12 Thursday 14:37 david
1413 +
1414 + moved defines to keyinfo.h and 2.5 task scheduling stuff
1415 +
1416 +2003-06-12 Thursday 14:30 david
1417 +
1418 + moved defines for keys to keyinfo.h in speakup directory.
1419 + version 2.5 scheduling also
1420 +
1421 +2003-06-12 Thursday 12:07 david
1422 +
1423 + added speakup_keyhelp.c
1424 + key help module
1425 +
1426 +2003-06-12 Thursday 12:05 david
1427 +
1428 + added a rather nifty key help module currently speakup-f1
1429 + must do make modules and make modules_install to install it.
1430 +
1431 +2003-05-30 Friday 13:18 david
1432 +
1433 + changed special handlers to return int so -1 is error, 0 let system
1434 + do key, 1 we used the key.
1435 + also changed read_punc default to 3.
1436 + also goto can end with another goto press or enter,
1437 + I prefer enter to do the goto.
1438 +
1439 +2003-05-30 Friday 09:52 david
1440 +
1441 + moved the re-enable synth to speech_kill as this is the total speech off
1442 + also fixed a bug where if speakup_off it was reading when cursor keys pressed
1443 +
1444 +2003-05-27 Tuesday 21:19 david
1445 +
1446 + forgot to add speech_kill to speakupmap.map
1447 +
1448 +2003-05-27 Tuesday 11:20 kirk
1449 +
1450 + I believe I've fixed the 2.5.x speech output going away. It was
1451 + is_cursor never getting set back to zero because of an inverted test
1452 + in cursor_stop_timer(). Took one hell of a lot of work to hunt it
1453 + down though. I also fixed another bug which was passing a u_char in a
1454 + function header when the calling argument was actually an int, talk
1455 + about interesting results. (kirk)
1456 +
1457 +2003-05-23 Friday 11:04 david
1458 +
1459 + fixed a couple of missing parens in speakup.h and took out double setting
1460 + of $V in Makefile. It stays set from first test.
1461 +
1462 +2003-05-22 Thursday 19:35 kirk
1463 +
1464 + Okay, doesn't it figure that I couldn't get it right the first time
1465 + anytime. Moved the #if linux_version_code test block for the
1466 + #includes down to get around the voodoo compiler errors. Also had to
1467 + remove a line I missed having in a version check #ifdef in
1468 + speakup_drvcommon.c. (kirk)
1469 +
1470 +2003-05-22 Thursday 17:21 kirk
1471 +
1472 + This is the first preliminary check in of the new #if revisions for
1473 + the 2.4.x and 2.5.x kernels. The files affected are Makefile,
1474 + speakup.c, speakup_drvcommon.c and spk_priv.h. I have also removed
1475 + the speakupmap section of Kconfig and the char/Makefile related to the
1476 + speakupmap code. Hopefully this won't break anything but world peace
1477 + is probably just around the corner as well. (kirk)
1478 +
1479 +2003-05-21 Wednesday 16:40 david
1480 +
1481 + fixed keyboard.h and speakup.h for b2.5 kernels
1482 +
1483 +2003-05-21 Wednesday 16:21 david
1484 +
1485 + #ifdef versioned Kirk's changed for 2.5
1486 + added a version of Terry Cudney's keymap so laptop users will be happy
1487 + allowed multiple defs of the speakup key currently
1488 + caps_lock, left_meta and numpad_insert
1489 +
1490 +2003-05-16 Friday 18:20 kirk
1491 +
1492 + Okay, I've figured out what's wrong now I have to figure out how to
1493 + fix it. Here is a temporary fix though I think. I'm placing the
1494 + original 2.4.20 spk_priv.h back in place. (kirk)
1495 +
1496 +2003-05-16 Friday 18:07 kirk
1497 +
1498 + To weird, this is 2.4.x being fixed yet again. (kirk)
1499 +
1500 +2003-05-16 Friday 18:04 kirk
1501 +
1502 + Okay, trying this once again. this is the 2.5.x tree. (kirk)
1503 +
1504 +2003-05-16 Friday 17:44 kirk
1505 +
1506 + This is just getting to weird. This is another check in of Makefile,
1507 + speakup.c and speakup_drvcommon.c for the 2.4.20 tree. These seem to
1508 + keep getting overwritten when I checkin the 2.5.x tree. (kirk)
1509 +
1510 +2003-05-16 Friday 16:53 kirk
1511 +
1512 + cvs add'ing the new spk_priv.h file for 2.5.x. (kirk)
1513 +
1514 +2003-05-16 Friday 16:51 kirk
1515 +
1516 + Forgot to checkin a slightly modified spk_priv.h earlier. It seems
1517 + the timer_list structure has changed somewhat in 2.5.x kernels. The
1518 + member structure list has changed names to entry. (kirk)
1519 +
1520 +2003-05-16 Friday 15:40 kirk
1521 +
1522 + Okay, checking the proper 2.4.x Makefile, speakup.c and
1523 + speakup_drvcommon.c files hopefully. (kirk)
1524 +
1525 +2003-05-16 Friday 14:57 yue
1526 +
1527 + Still trying to clean up all of my screw-ups from the original checkin
1528 + of the 2.5.x material. (kirk)
1529 +
1530 +2003-05-16 Friday 14:04 yue
1531 +
1532 + Forgot to add the new patch files in diff-v25. Time to take a break I
1533 + think. (kirk)
1534 +
1535 +2003-05-16 Friday 13:20 yue
1536 +
1537 + Just removing the config.help which isn't needed under v2.5.x any
1538 + longer. (kirk)
1539 +
1540 +2003-05-16 Friday 12:43 yue
1541 +
1542 + This is the first checkin of the new 2.5.x speakup code. We have
1543 + created patches against the 2.4.x versions of speakup Makefile,
1544 + speakup.c speakup_drvcommon.c, as well as adding Kconfig which is the
1545 + new 2.5.x configuration system. (kirk really Yue)
1546 +
1547 +2003-05-13 Tuesday 13:05 david
1548 +
1549 + took out the console announce, added stuff for the soon coming help handler
1550 + add speakup.o to the objects that export symbols in Makefile
1551 +
1552 +2003-05-13 Tuesday 10:35 david
1553 +
1554 + moved the shift check in speakup_key so the spk key can be one
1555 + of the shift/ctrl/alts if someone wants that.
1556 + added announcement when switching consoles.
1557 + added flag to stop multiple misc_register from being done,
1558 + crashed kernel if called more than once.
1559 +
1560 +2003-05-13 Tuesday 09:51 kirk
1561 +
1562 + Okay, I fucked things up big time when I cleaned up the Makefile last
1563 + night. I kinda cleaned up to much. I think it's all better
1564 + now. (kirk)
1565 +
1566 +2003-05-12 Monday 21:48 kirk
1567 +
1568 + Fixed a couple of typos in checkout. BTW, everyone needs a new
1569 + checkout script. (kirk)
1570 +
1571 +2003-05-12 Monday 21:35 kirk
1572 +
1573 + Turning on the --silent flag in patch. (kirk)
1574 +
1575 +2003-05-12 Monday 21:28 kirk
1576 +
1577 + Adding in the new patch files in diff-v24. (kirk)
1578 +
1579 +2003-05-12 Monday 21:05 kirk
1580 +
1581 + Cleaning up the speakup Makefile and about to destroy checkin and
1582 + checkout. Hopefully not for long. I, if successful, am modifying the
1583 + files in diff-vxx to be relative to the root dir which is the top
1584 + directory of the kernel tree. Checkout will first look for a command
1585 + line argument pointing to the kernel tree. If none is given it will
1586 + check for the existence of a kernel and Documentation directory in the
1587 + current directory and if found will determine that it is in the root
1588 + directory and set ROOTDIR accordingly. if not we will fall back to
1589 + assuming the tree is in /usr/src/linux. (kirk)
1590 +
1591 +2003-05-12 Monday 19:36 david
1592 +
1593 + fixed edit punc/delim/repeats to allow shift.
1594 + Also allow alpha in delim/repeats
1595 +
1596 +2003-05-12 Monday 17:20 david
1597 +
1598 + added the shift states to thespeakup internam key_buf
1599 + required for help, coming soon.
1600 + also extened key_max to 128 so windows keys could be used.
1601 +
1602 +2003-05-12 Monday 11:38 david
1603 +
1604 + added more info to the keymap, also finished spk key now defineable.
1605 + added it to map as KEY_KP0. genmap just puts out numbers to speakupmap.h now.
1606 + working towards /proc/speakup/keymap loading.
1607 + using genmap to generate the proc stuff as well as the built-in map.
1608 + added error checking to set_key_info as well as pass in the buffer so we could
1609 + have console speciffic keymaps if we want too at a later time.
1610 +
1611 +2003-05-10 Saturday 18:36 david
1612 +
1613 + in the second call to speakup_key keysym was uninitialized and could have
1614 + inadvertantly called one of the handlers with bad data.
1615 +
1616 +2003-05-10 Saturday 14:45 david
1617 +
1618 + I put the fix in for keyboard.c so if no map speakup_key will
1619 + still be called. also the = in genmap.c
1620 +
1621 +2003-05-10 Saturday 13:33 kirk
1622 +
1623 + Okay, added an equal sign to the output loop condition in genmap.c
1624 + which was causing the speakupmap.h to be cut-off one entry to soon.
1625 + Removed a 'l' from the word coll in say_position() which was causing
1626 + some synths the Audapter in particular to mispronounce it. Removed
1627 + symbols.h because it appears we do not need it any longer. (kirk)
1628 +
1629 +2003-05-10 Saturday 00:00 david
1630 +
1631 + fixed a tolower bug in genmap.c as you can't downshift a quoted string.
1632 + also some module unloading code in speakup.c to restore the key_handlers.
1633 + Still more module stuff to be done.
1634 +
1635 +2003-05-09 Friday 15:17 david
1636 +
1637 + spk_con_module.h is include by ../console.c when speakup
1638 + is configured as a module.
1639 +
1640 +2003-05-09 Friday 15:16 david
1641 +
1642 + the new mappings generated from speakupmap.map
1643 +
1644 +2003-05-09 Friday 15:15 david
1645 +
1646 + now speakupmap.h is included in speakup to provide mappings
1647 +
1648 +2003-05-09 Friday 15:13 david
1649 +
1650 + changed genmap and speakupmap.map to be the new style of keymaps
1651 + key names are now from include/linux/input.h
1652 + no special default keymap anymore, speakup mappings are done in speakup itself.
1653 + many changes in speakup.c also for local keymapping and more moving towards being able to be a
1654 + module. the speakup key numpad 0 is currently hardcoded but may change soon.
1655 + the modifiers currently supported are shift, ctrl, alt, altgr, spk and double
1656 + the double press keys can now be anything which has a single press map.
1657 + Warning: this is relatively untested code and may not be extremely stable
1658 + although it has not crashed for me.
1659 +
1660 +2003-05-07 Wednesday 13:14 david
1661 +
1662 + more moving to a module version. fixed init so is module callable by moving
1663 + the code into speakup_open accept the initial alloc then module can alloc first console
1664 + and call open. Also changed KT_SPKUP to 14 so if null synth they will
1665 + be ignored.
1666 +
1667 +2003-05-05 Monday 09:56 kirk
1668 +
1669 + Starting the trashing of 2.2.x kernel support. We are moving toward
1670 + 2.4.x and 2.5.x. (kirk)
1671 +
1672 +2003-05-05 Monday 09:46 david
1673 +
1674 + start of modularizing speakup.
1675 + also fixed char/Makefile so in no speakup default keymap the kernel still
1676 + compiles. changed parms to speakup_key for mapping of speakup keys in speakup
1677 + itself to support 2.5 kernels.
1678 +
1679 +2003-05-03 Saturday 19:29 kirk
1680 +
1681 + Fixed bug in say_next_word which caused skipping over the entire next
1682 + word if you were on the space just before the word. (kirk)
1683 +
1684 +2003-05-02 Friday 20:10 kirk
1685 +
1686 + Moved spk_register_dev() into proc_init() and removed the main.c patch
1687 + to do the registration. That should fix the devfs hang problem. Also
1688 + took the \r out of the synth_interrogate() function in
1689 + speakup_ltlk.c. (kirk)
1690 +
1691 +2003-05-02 Friday 18:43 kirk
1692 +
1693 + Fixed the problem with writing back to a string file in /proc/speakup
1694 + by surrounding the string in quotes and prepending a \x before
1695 + unprintable characters. I think it's a bit of a kludge so if anyone
1696 + sees a more elligant solution to the problem please invoke
1697 + same. (kirk)
1698 +
1699 +2003-05-02 Friday 12:01 kirk
1700 +
1701 + Now that I've added the ChangeLog, maybe just maybe I should make sure
1702 + it's up to date. (kirk)
1703 +
1704 +2003-05-02 Friday 11:56 kirk
1705 +
1706 + Adding the correct tome offset from Steve Homes for the Speak Out
1707 + driver. Also adding the ChangeLog which I thought was already part of
1708 + it. Go figure. (kirk)
1709 +
1710 +2003-05-01 Thursday 10:52 david
1711 +
1712 + fixed a bug in phonetic char and also have it prefix digits with number.
1713 +
1714 +2003-04-30 Wednesday 22:33 david
1715 +
1716 + try to get the cvs to eat my tab mod in console.c so tabbed
1717 + columns read properly
1718 +
1719 +2003-04-30 Wednesday 22:27 david
1720 +
1721 + fixed a bug where punctuation allowed to synth when punct is off said
1722 + nothing but could announce repeats.
1723 + also suppress multiples so repeats don't give long pauses.
1724 + added a write of a space in the console for a tab so tabbed columns
1725 + read properly not run together.
1726 +
1727 +2003-04-30 Wednesday 19:14 kirk
1728 +
1729 + I've put a test in synth_interrogate() to break from the rom version
1730 + loop if i gets larger than 48. I'm trying to find out what could
1731 + cause some ltlks to hang the system. (kirk)
1732 +
1733 +2003-04-30 Wednesday 17:02 kirk
1734 +
1735 + Just checking in the latest cvs logs. We have been remiss in keeping
1736 + on top of it.. (kirk)
1737 +
1738 +2003-04-30 Wednesday 14:29 david
1739 +
1740 + forgot to append a space in speak_char, kind of sounds funny!
1741 +
1742 +2003-04-30 Wednesday 14:21 david
1743 +
1744 + fixed one line windows, forgot to set bottom.
1745 + also some optimization in synth_start and spkup_write.
1746 + took the ex_num handling for now as it was buggy
1747 +
1748 +2003-04-30 Wednesday 12:35 kirk
1749 +
1750 + Changed speakup_ltlk.c to support the newer chip set needing a \r the
1751 + interrogate command. This now works with the TrippleTalk serial ports
1752 + on the usb synths as well. (Kirk)
1753 +
1754 +2003-04-29 Tuesday 08:43 kirk
1755 +
1756 + Fix synth detection string in speakup_audptr.c from "0x05[q" to
1757 + "\x05[q". (kirk)
1758 +
1759 +2003-04-28 Monday 12:24 david
1760 +
1761 + fixed chars_write_proc a rather silly bug, well two of them,
1762 + a bad optimization, and cnt was not zero when going back to get_more
1763 +
1764 +2003-04-25 Friday 15:35 david
1765 +
1766 + fixed get_word so if on a space before a word, advances one char.
1767 + Also an odd bug insay_word where multiple words of one char the same would get counted
1768 + as repeats, append a space to the word to stop this behaviour.
1769 +
1770 +2003-04-24 Thursday 15:32 david
1771 +
1772 + speakup.h in include/linux needs updating
1773 +
1774 +2003-04-24 Thursday 13:40 david
1775 +
1776 + fixed the rate and voice keys in the map I got caught by cut and paste
1777 +
1778 +2003-04-24 Thursday 13:28 kirk
1779 +
1780 + Fixed lock_status[] array to remove the second 'n' in on. Rewrote the
1781 + probe routine for the Transport driver to get a more reliable probing
1782 + on module loads. (kirk)
1783 +
1784 +2003-04-24 Thursday 12:09 david
1785 +
1786 + added reading level punctuation on speakup 3-4 top row numbers, moved rate to speakup 5-6
1787 + and voice change on speakup 7-8 top row numbers
1788 + also took out the __init declarations on places that may be called
1789 + more than once such as synth init/probe code
1790 +
1791 +2003-04-23 Wednesday 21:03 kirk
1792 +
1793 + A small modification to the top_edge() function to try to correct the
1794 + move to top of screen problem. (kirk)
1795 +
1796 +2003-04-23 Wednesday 20:14 david
1797 +
1798 + fixed a bug where numlock also made cursor keys numeric
1799 + was passing scancode to speakup_key not the translated keycode.
1800 + also makes numeric + and / work too!
1801 +
1802 +2003-04-23 Wednesday 13:53 david
1803 +
1804 + fix to mod_code that should fix the null pointer problem
1805 + If a module was installed wile another synth was active the wrong pointer
1806 + was updated
1807 +
1808 +2003-04-22 Tuesday 22:13 david
1809 +
1810 + fixed prev and next word so they stop on lines containing only delimiters
1811 + hopefully right this time.
1812 +
1813 +2003-04-22 Tuesday 11:16 david
1814 +
1815 + turn off temp park on type KT_SPEC keys such as enter, locks etc.
1816 +
1817 +2003-04-22 Tuesday 11:06 david
1818 +
1819 + added window which can be set, cleared, silenced or read,
1820 + currently bound to speakup with f1-f4 respectively
1821 + added keyboard editing of punc/delimiter/repeat chars.
1822 + currently mapped as follows:
1823 + speakup f5, edit some. speakup f6, edit most.
1824 + speakup f7, edit delimiters. speakup f8, edit repeats.
1825 + also touched initial rates in dectlk, decext, dtlk and ltlk synth files.
1826 +
1827 +2003-04-21 Monday 14:03 kirk
1828 +
1829 + I've fixed a character misplacement in speakup_decext.c in serprobe().
1830 + I hope this fixes Genes problem. (kirk)
1831 +
1832 +2003-04-21 Monday 12:35 kirk
1833 +
1834 + Just changing grave to accent again in the characters array. This is
1835 + really a test to see how cvs logging to a mailing list works. (kirk)
1836 +
1837 +2003-04-21 Monday 12:28 kirk
1838 +
1839 + Just changing grave to accent again in the characters array. This is
1840 + really a test to see how cvs logging to a mailing list works. (kirk)
1841 +
1842 +2003-04-18 Friday 15:44 david
1843 +
1844 + fixed open brace function begins, added numlock on gives numbers, fixed bugs in next/prev word
1845 + bleeps for attrib and bleep now do: 0 nothing, 1 beep, 2 announce, 3 both
1846 + changed speakup_reset to speakup_key, better name.
1847 + changed temperary park so it goes on only you move the review cursor.
1848 + i.e. prev/next char, word, line, edges, first/last char.
1849 +
1850 +2003-04-16 Wednesday 14:04 kirk
1851 +
1852 + I've changed speakupmap.map keycode 14 back to Delete from Backspace.
1853 + Thank you David for finding that. I've also changed the grave accent
1854 + key back to accent from grave which I'm afraid blends into strings to
1855 + well. (kirk)
1856 +
1857 +2003-04-14 Monday 16:32 kirk
1858 +
1859 + I forgot to #include "cvsversion.h" in the last check in. This also
1860 + has David's new speakup_reset() function. I haven't tested it
1861 + yet. (kirk)
1862 +
1863 +2003-04-14 Monday 14:37 kirk
1864 +
1865 + Okay, this is the first check in of Dave Borowski's major revisions to
1866 + speakup. It includes automagic cursor tracking, synth driver
1867 + modularization a whole bunch of rewritten code and a whack of new bugs
1868 + as well. This is very unstable currently, use at your own
1869 + risk. (kirk)
1870 +
1871 +2003-03-18 Tuesday 16:11 kirk
1872 +
1873 + Put a key definition into speakupmap.map for ShiftR keycode 55 which I
1874 + forgot to include when I was modifying how the map worked. This
1875 + restores the speakup go to column and row with the insert cursoring
1876 + mode. (kirk)
1877 +
1878 +2002-12-13 Friday 20:15 kirk
1879 +
1880 + Okay, to fix the problem when there is no speakup map loaded and
1881 + numlock is turned on, I've renamed all altgr modifiers to Shiftr which
1882 + is not used. I also changed the key check in speakup_control to the
1883 + shiftr code. As far as I can tell this fixes the problem. I had to
1884 + define the keymaps = line to include the 32 weight for the shiftr
1885 + key. (kirk)
1886 +
1887 +2002-08-15 Thursday 20:00 gene
1888 +
1889 + Fix multiple quick_quiet definition for 2.2.x (Gene)
1890 +
1891 +2002-08-07 Wednesday 14:10 kirk
1892 +
1893 + Stupid me forgot to remove a plus sign. Sorry about that folks. (kirk)
1894 +
1895 +2002-08-07 Wednesday 12:27 kirk
1896 +
1897 + Just fixing the miscdev.h /dev/synth entry which was rejected because a new line added to the file. (kirk)
1898 +
1899 +2002-07-05 Friday 21:52 gene
1900 +
1901 + fixed 2.2.x numlock 0 bug (Gene)
1902 +
1903 +2002-07-05 Friday 14:01 kirk
1904 +
1905 + Checking numlock keyboard enter '0' fix for 2.4.18 in keyboard.c
1906 + (kirk)
1907 +
1908 +2002-07-05 Friday 13:51 kirk
1909 +
1910 + Added in David Borowski's patches with takes speakupmap.map with text
1911 + strings representing the functions and converts them to their hex
1912 + string values usable by loadkeys. This patch affects Makefile in
1913 + speakup, speakupmap.map and a new file genmap.c. (kirk)
1914 +
1915 + Fixed the bug which placed a '0' on the command line when hitting
1916 + 'enter' with numlock mode on. Speakup_control() was being called from
1917 + do_spec() with a bad value. (kirk)
1918 +
1919 +2002-06-14 Friday 15:55 gene
1920 +
1921 + Edited drivers/char/Makefile to elimate multiple keymap definition problem (Gene)
1922 +
1923 +2002-06-13 Thursday 17:43 kirk
1924 +
1925 + Removed the speakup/Makefile patch I added last week because I found a
1926 + cleaner way to handle the make build variable changes. (kirk)
1927 +
1928 +2002-06-13 Thursday 10:21 jim
1929 +
1930 + /usr/src/linux/drivers/char/Makefile:
1931 + truncated line to read:
1932 + KEYMAP =
1933 + (jim)
1934 +
1935 +2002-06-11 Tuesday 14:24 kirk
1936 +
1937 + Once again fixing changes to drivers/char/Makefile and speakup/Makefile. I think this will work better and more cleanly now. (kirk)
1938 +
1939 +2002-06-10 Monday 13:58 kirk
1940 +
1941 + Trying to fix speakup/Makefile so it is the original once again. (kirk)
1942 +
1943 +2002-06-04 Tuesday 15:00 kirk
1944 +
1945 + Adding the new speakup/Makefile.patch to the cvs repository. (kirk)
1946 +
1947 +2002-06-04 Tuesday 14:57 kirk
1948 +
1949 + Modified drivers/charMakefile to fix rejected speakup patch. I also
1950 + had to modify speakup/Makefile to use export-objs instead of O_OBJECTS
1951 + which was causing multiple symbol definitions from
1952 + speakupmap.o. (kirk)
1953 +
1954 +2002-04-30 Tuesday 13:25 kirk
1955 +
1956 + Updating speakup to 2.5.11 and fixing ppc architecture patch. Also
1957 + included the move to end of line function from 2.4.x and 2.2.x trees.
1958 + (kirk)
1959 +
1960 +2002-04-11 Thursday 09:31 gene
1961 +
1962 + Checked in nr_speakup changes for 2.2.x to fix load keys problem (Gene)
1963 +
1964 +2002-04-10 Wednesday 14:30 kirk
1965 +
1966 + Changed NR_SPKUP to 0x2a in keyboard.h which was causing an unable to
1967 + bind error when leading speakupmap.map with loadkeys in 2.4.x
1968 + kernels with the new control-kp1 key. (kirk)
1969 + ----------------------------------------------------------------------
1970 + speakupmap.map CVS:
1971 + diff-v24/^usr^src^linux^Documentation^Configure.help.patch CVS:
1972 + diff-v24/^usr^src^linux^Documentation^speakup^DefaultKeyAssignments.copy
1973 + diff-v24/^usr^src^linux^Documentation^speakup^keymap-tutorial.copy
1974 + diff-v24/^usr^src^linux^arch^alpha^config.in.patch CVS:
1975 + diff-v24/^usr^src^linux^arch^arm^config.in.patch CVS:
1976 + diff-v24/^usr^src^linux^arch^i386^config.in.patch CVS:
1977 + diff-v24/^usr^src^linux^arch^m68k^config.in.patch CVS:
1978 + diff-v24/^usr^src^linux^arch^mips^config.in.patch CVS:
1979 + diff-v24/^usr^src^linux^arch^ppc^config.in.patch CVS:
1980 + diff-v24/^usr^src^linux^arch^sparc64^config.in.patch CVS:
1981 + diff-v24/^usr^src^linux^arch^sparc^config.in.patch CVS:
1982 + diff-v24/^usr^src^linux^drivers^char^Makefile.patch CVS:
1983 + diff-v24/^usr^src^linux^drivers^char^console.c.patch CVS:
1984 + diff-v24/^usr^src^linux^drivers^char^keyboard.c.patch CVS:
1985 + diff-v24/^usr^src^linux^drivers^char^selection.c.patch CVS:
1986 + diff-v24/^usr^src^linux^fs^proc^root.c.patch CVS:
1987 + diff-v24/^usr^src^linux^include^linux^keyboard.h.patch CVS:
1988 + diff-v24/^usr^src^linux^include^linux^miscdevice.h.patch CVS:
1989 + diff-v24/^usr^src^linux^include^linux^proc_fs.h.patch CVS:
1990 + diff-v24/^usr^src^linux^include^linux^speakup.h.copy CVS:
1991 + diff-v24/^usr^src^linux^init^main.c.patch CVS:
1992 + ----------------------------------------------------------------------
1993 +
1994 +2002-04-04 Thursday 11:33 gene
1995 +
1996 + Updated DefaultKeyAssignments for 2.2.x kernels - Gene Collins
1997 +
1998 +2002-04-02 Tuesday 12:27 kirk
1999 +
2000 + Editted defaultKeyAssignments to reflect the new key combination
2001 + control keypad 1 for move to last character on line. (kirk)
2002 +
2003 +2002-04-02 Tuesday 10:45 kirk
2004 +
2005 + Added new function end_of_line() to move the reading cursor to the
2006 + last character on the current line. (kirk)
2007 +
2008 +2002-03-27 Wednesday 10:44 kirk
2009 +
2010 + Have modified speakup_shut_off() or whatever it's called to not sync
2011 + the reading cursor to the actual cursor when temporarily shutting off
2012 + speakup. It was a request from Geoff Shang and others. (kirk)
2013 +
2014 + I cleaned up the Todo file to remove recent changes in features.
2015 + (kirk)
2016 +
2017 +2002-03-03 Sunday 22:32 kirk
2018 +
2019 + Checking in changes for 2.4.18 which stop the two patch hunks from
2020 + failing on keyboard.c. As far as I can tell they are format changes
2021 + which don't have anything to do with speakup directly. (kirk)
2022 +
2023 +2002-02-19 Tuesday 11:12 kirk
2024 +
2025 + Checking in modifications to linux/init/main.c for 2.5.5pre1. I still
2026 + need to find a better place for that patch; it is very out of place
2027 + there now. (kirk)
2028 +
2029 +2002-02-05 Tuesday 22:31 gene
2030 +
2031 +
2032 + Updated 2.2 tree with the new numlock handling code. (Gene)
2033 +
2034 +2002-02-05 Tuesday 20:22 kirk
2035 +
2036 + Removed some duplicate #include lines in speakup.c (kirk)
2037 +
2038 +2002-02-05 Tuesday 11:15 kirk
2039 +
2040 + Made the changes to move numlock checking code out of keyboard.c into
2041 + speakup_control() in the 2.4.x tree. (kirk)
2042 +
2043 +2002-02-05 Tuesday 11:01 kirk
2044 +
2045 + Moved the numlock checking code into speakup_control() where it
2046 + belongs and out of keyboard.c in the 2.5.x tree. (kirk)
2047 +
2048 +2002-02-04 Monday 15:18 kirk
2049 +
2050 + Just adding the new Config.help copy file into cvs. (kirk)
2051 +
2052 +2002-02-04 Monday 15:16 kirk
2053 +
2054 + Modified speakup to work with linux 2.5.3 which intailed changing the
2055 + patch for linux/init/main.c and creating Config.help for the speakup
2056 + directory instead of the linuxDocumentation/Configure.help. The help
2057 + for each subdirectory is now maintained within that directory.
2058 +
2059 + Also hand patched keyboard.c to be compatible with the numlock changes
2060 + to the 2.4.x tree. Just dropped speakup.h from that distribution in
2061 + place it hasn't changed much yet. (Kirk)
2062 +
2063 +2002-01-25 Friday 10:48 gene
2064 +
2065 +
2066 + Updated 2.2 tree to work with new keypad numlock layout (Gene)
2067 +
2068 +2002-01-20 Sunday 17:46 kirk
2069 +
2070 + I've changed the #define's for TOP_EDGE, LEFT_EDGE and RIGHT_EDGE from
2071 + 0x4[def] which are out of range for nr speakup keys to values in
2072 + range. I hope this fixes the problem without breaking something
2073 + else. (kirk)
2074 +
2075 +2002-01-20 Sunday 16:13 kirk
2076 +
2077 + Removed a few double tab chars before altgr keycodes 71 and 73.
2078 + Hopefully this will correct the key binding problem when loading
2079 + speakupmap.map with loadkeys. (kirk)
2080 +
2081 +2002-01-11 Friday 14:43 gene
2082 +
2083 +
2084 + Checked in numlock feature for the 2.2 tree. (Gene)
2085 +
2086 +2002-01-11 Friday 11:11 kirk
2087 +
2088 + Modified the Apollo driver to allow chars above 0x80 through as an
2089 + experiment to see if foreign languages using those upper characters
2090 + will work correctly. (kirk)
2091 +
2092 +2002-01-10 Thursday 16:37 kirk
2093 +
2094 + Woops! Some how we lost cut and paste in our upgrades to numlock
2095 + control. Wouldn't that just make everyone happy! (kirk)
2096 +
2097 +2002-01-10 Thursday 15:41 kirk
2098 +
2099 + Checking in speakup.h again for the 2.4.x tree, it didn't take. (Kirk)
2100 +
2101 +2002-01-09 Wednesday 17:54 kirk
2102 +
2103 + For some reason speakup.h didn't get updated this morning. Should be
2104 + okay now. (kirk)
2105 +
2106 +2002-01-09 Wednesday 09:58 kirk
2107 +
2108 + Woops, the correct keyboard.c didn't get checked in. (kirk)
2109 +
2110 +2002-01-09 Wednesday 08:16 kirk
2111 +
2112 + Added numlock feature to allow the keypad to act as a normal number
2113 + pad when the numlock is on. (Yue)
2114 +
2115 +2001-12-21 Friday 10:49 kirk
2116 +
2117 + Just checking in for kernel 2.5.1 to stay sync'd with the code. (kirk)
2118 +
2119 +2001-12-07 Friday 11:55 kirk
2120 +
2121 + Updating speakup for kernel 2.5.1pre6. Seems to be something weird
2122 + going on. I think I'll have to edit some of the patches by
2123 + hand. (kirk)
2124 +
2125 +2001-12-05 Wednesday 14:33 kirk
2126 +
2127 + Cleaned up speakup.h and speakup.c which were giving warnings during
2128 + compile and moved stuff around to compile with 2.5.1pre5. (kirk)
2129 +
2130 +2001-11-23 Friday 14:44 kirk
2131 +
2132 + Hmmm, something went wrong with the first attempt at adding the
2133 + diff-v25 directory tree, so we're trying again. (kirk)
2134 +
2135 +2001-11-23 Friday 09:45 kirk
2136 +
2137 + Checking in changes to speakup.c to have the system bleep when a shift key is hit while the caps lock is on. (Yue)
2138 +
2139 +2001-11-23 Friday 09:41 kirk
2140 +
2141 + Opening a new branch of speakup for the new version 2.5.0 of
2142 + linux. (Kirk)
2143 +
2144 +2001-11-13 Tuesday 13:36 jim
2145 +
2146 + speakup.c:
2147 + Fixed the mixed case pitching bug.
2148 + The speech rates for upper and lower case chars when spelling a word
2149 + should now be the same.
2150 + (Jim Danley)
2151 +
2152 +2001-10-26 Friday 21:38 jim
2153 +
2154 + Fixed /usr/src/linux/drivers/char/Makefile patch to work with kernels
2155 + 2.4.12 and 2.4.13
2156 + (Jim)
2157 +
2158 +2001-10-18 Thursday 08:53 jim
2159 +
2160 + Removed the cut and paste bug description from the BUGS file. (Jim)
2161 +
2162 +2001-10-14 Sunday 15:28 jim
2163 +
2164 + Part two of the selection.c patch for 2.2. This process sure was fun! (Jim)
2165 +
2166 +2001-10-14 Sunday 15:21 jim
2167 +
2168 + Just adding the new patch file for selection.c in the diff-v22 patch
2169 + directory. (Jim)
2170 +
2171 +2001-10-14 Sunday 14:45 kirk
2172 +
2173 + Just adding the new patch file for selection.c in the diff-v24 patch
2174 + directory. (kirk)
2175 +
2176 +2001-10-14 Sunday 14:42 kirk
2177 +
2178 + Changed selection.c to test if call is coming from userspace or kernel
2179 + space and using GFP_ATOMIC if it is being called from kernel-space.
2180 + This works around kmalloc not returning and hanging the system in
2181 + set_selection for the block and paste function of speakup. (Jim)
2182 +
2183 +2001-10-12 Friday 12:10 jim
2184 +
2185 + speakup.c:
2186 + Removed statements which were appending 0x00 to buffers to be spoken
2187 + from functions say_curr_line and say_line_from_to.
2188 +
2189 + Inspected and modified all spkup_write() calls to be consistent,
2190 + that is, end in \n and count is correct.
2191 + (Jim Danley)
2192 +
2193 +2001-10-09 Tuesday 08:34 kirk
2194 +
2195 + Updated the BUGS and Todo list to reflect current speakup
2196 + states. (kirk)
2197 +
2198 +2001-10-07 Sunday 21:19 jim
2199 +
2200 + speakup.c:
2201 + Moved following variable declarations to top of function speakup_cut().
2202 + int ret;
2203 + unsigned char args[6*sizeof(short)];
2204 + unsigned short *arg;
2205 + static char *buf = "speakup_cut: set_selection failed: ";
2206 + (Jim Danley)
2207 +
2208 +2001-10-07 Sunday 17:11 jim
2209 +
2210 + Put speakup_dectlk.c back to its original state. Sorry about that!
2211 +
2212 + Also added a clear_selection() call to speakup.c when hitting the "mark"
2213 + key to remove (if any) hi-lighting of a previous mark/cut from the screen.
2214 + (Jim Danley)
2215 +
2216 +2001-10-05 Friday 09:14 kirk
2217 +
2218 + Checking in a slight change to speakupmap.map to uncomment alt-keypad
2219 + five to allow ascii five for extended character sets. (kirk)
2220 +
2221 +2001-10-02 Tuesday 12:34 kirk
2222 +
2223 + Modified installation and readme files for the version 1.0 release in
2224 + linux/Documentation/speakup. (kirk)
2225 +
2226 +2001-10-02 Tuesday 11:00 kirk
2227 +
2228 + Start of the check-ins for the official speakup v-1.00 release.
2229 + Modified checkin to change cvsversion format. Modified install to
2230 + remove reference to touching speakupmap.map. Modified speakup.c to
2231 + reflect version now moved to v-1.00. (kirk)
2232 +
2233 +2001-10-02 Tuesday 01:18 jim
2234 +
2235 + Modified the way that cut/paste variables are stored. No longer in spk_t
2236 + structure but stand-alone (one per speakup rather than one per console).
2237 +
2238 + speakup.c:
2239 + eliminated unsigned short mode = 0; /* char-by-char selection */
2240 + by assigning it directly.
2241 +
2242 + Added globals
2243 + char mark_cut_flag;
2244 + unsigned short mark_x, mark_y;
2245 +
2246 + /usr/include/linux/include/linux/speakup.h:
2247 + removed mark_x and mark_y from the spk_t structure and the associated
2248 + defines.
2249 + (Jim Danley)
2250 +
2251 +2001-09-17 Monday 19:58 jim
2252 +
2253 + speakup.c:
2254 + Added:
2255 + #define Mark_Cut_Bit 0x04
2256 + #define Mark_Cut_Bit_Mask 0xFB
2257 +
2258 + Changed from using bit 2 of spk_shut_up to bit 2 of spk_sound to
2259 + indicate mark/cut state.
2260 +
2261 + Removed statement that was assigning 2 to second byte of first short
2262 + in args array.
2263 + (Jim Danley)
2264 +
2265 +2001-09-14 Friday 15:43 kirk
2266 +
2267 + Removed the blank line at the bottom of drivers/char/Makefile which I
2268 + must have dreamed I removed in the last log. (kirk)
2269 +
2270 +2001-09-14 Friday 15:28 kirk
2271 +
2272 + Added a couple of missing key definitions in DefaultKeyAssignments.
2273 + Removed the blank line at the bottom of drivers/char/Makefile.
2274 + Rewrote spell_word() to use say_curr_char() and super stream line
2275 + it. (kirk)
2276 +
2277 +2001-09-14 Friday 14:11 jim
2278 +
2279 + speakup_dectlk.c:
2280 + Changed the valid pitch range from 0-99 to 50-350.
2281 + (Jim Danley)
2282 +
2283 +2001-09-14 Friday 01:28 jim
2284 +
2285 + Made similar changes to add cut and paste feature to 2.2 kernels. (Jim Danley
2286 +
2287 +2001-09-13 Thursday 23:13 jim
2288 +
2289 + diff-v2[24]/^usr^src^linux^Documentation^speakup^DefaultKeyAssignments.copy:
2290 + Added:
2291 + KeyPad-/ Mark and Cut screen region.
2292 + InsKeyPad-/ Paste screen region into any console.
2293 + (Jim Danley)
2294 +
2295 +2001-09-13 Thursday 21:41 jim
2296 +
2297 + Wrote mark/cut/paste feature.
2298 +
2299 + Usage:
2300 + 1. Move reading cursor to one end of the block of text you wish to cut
2301 + 2. Press the mark/cut key. You should hear "mark".
2302 + 3. Move reading cursor to other end of block of text to be cut.
2303 + 4. Press the mark/cut key. You should hear "cut".
2304 + 5. The cut buffer is now saved.
2305 + 6. Move to a program in any console where you wish to copy the cut buffer.
2306 + 7. Press the paste key. You should hear "paste" and text from
2307 + the cut buffer will be output just as if you had entered it
2308 + at the keyboard.
2309 +
2310 + Note: Trailing whitespace is stripped and newlines added where appropriate.
2311 +
2312 + speakup.c:
2313 + Added two new functions; speakup_cut() and speakup_paste()
2314 +
2315 + speakupmap.map:
2316 + Modified default keymap so that keypad divide toggles mark/cut and
2317 + insert-keypad divide is paste.
2318 +
2319 + /usr/src/linux/include/linux/speakup.h:
2320 + Added two new variables to the spk_t structure; unsigned long mark_x, mark_y
2321 + to store the coordinates of the beginning of the mark area to be cut.
2322 + Added:
2323 + #define spk_mx speakup_console[currcons]->mark_x
2324 + #define spk_my speakup_console[currcons]->mark_y
2325 + #define SPEAKUP_CUT 0x27
2326 + #define SPEAKUP_PASTE 0x28
2327 + Added two new prototypes:
2328 + extern void speakup_cut(unsigned int, struct tty_struct *);
2329 + extern void speakup_paste(struct tty_struct *);
2330 +
2331 + /usr/src/linux/drivers/char/keyboard.c:
2332 + In function do_spkup():
2333 + Added case blocks for SPEAKUP_CUT and SPEAKUP_PASTE.
2334 +
2335 + /usr/src/linux/include/linux/keyboard.h:
2336 + Added:
2337 + #define K_SPEAKUP_CUT K(KT_SPKUP,SPEAKUP_CUT)
2338 + #define K_SPEAKUP_PASTE K(KT_SPKUP,SPEAKUP_PASTE)
2339 + and modified: (was 27)
2340 + #define NR_SPKUP 0x29
2341 +
2342 + Also modified patch/copy files below in both diff-v22 and diff-v24 directories.
2343 + ^usr^src^linux^include^linux^keyboard.h.patch
2344 + ^usr^src^linux^drivers^char^keyboard.c.patch
2345 + ^usr^src^linux^include^linux^speakup.h.copy
2346 +
2347 +2001-09-08 Saturday 22:22 kirk
2348 +
2349 + Re-implementing the alpha patch for kernels 2.4.x which somehow keeps
2350 + getting lost. I also removed the bottom three lines of the checkout
2351 + script which are not needed anymore because we include a
2352 + speakupmap.c. (Kirk)
2353 +
2354 +2001-08-30 Thursday 17:25 kirk
2355 +
2356 + Modified drivers/char/Makefile to work with the new speakupmap.c
2357 + changes to 2.4.x. These changes include a portion of Shane's patch as
2358 + well as other rewrites by me. (kirk)
2359 +
2360 +2001-08-30 Thursday 16:17 kirk
2361 +
2362 + Modified drivers/char/Makefile and speakup/Makefile to accomodate the
2363 + new 2.4.9ac3 Makefile changes. This will also include a new
2364 + speakupmap.c moving towards Shane's Makefile patches for the 2.2.x
2365 + kernels, not included yet. (kirk)
2366 +
2367 +2001-08-29 Wednesday 21:26 kirk
2368 +
2369 + Just adding new patch against linux/init/main.c to cvs. (kirk)
2370 +
2371 +2001-08-29 Wednesday 21:23 kirk
2372 +
2373 + Rewrote speakup_init() to call a function speakup_register_devsynth()
2374 + which gets called from do_basic_setup in init/main.c. We need to do
2375 + this so that miscdevice will get called after the mm has been set up.
2376 + This should allow devfs to work with speakup. (kirk)
2377 +
2378 +2001-08-26 Sunday 13:54 kirk
2379 +
2380 + Removed an old comment line from console.c which prevent clean
2381 + patching against 2.4.8ac11. (kirk)
2382 +
2383 +2001-08-25 Saturday 18:46 kirk
2384 +
2385 + Modified keyboard.c, keyboard.h, speakup.c and speakup.h to conform with the standard kernel source tree under 2.4.x kernels. (Kirk)
2386 +
2387 +2001-08-25 Saturday 18:30 kirk
2388 +
2389 + Removing lxdialog patch files and removing their entries from
2390 + patchlist-22. These are now part of the standard 2.2.19+ kernel
2391 + tree. (Kirk)
2392 + ----------------------------------------------------------------------
2393 + patchlist-v22 speakupmap.map symbols.h CVS:
2394 + diff-v22/^usr^src^linux^Documentation^speakup^DefaultKeyAssignments.copy
2395 + diff-v22/^usr^src^linux^Documentation^speakup^keymap-tutorial.copy
2396 + Removed Files: CVS:
2397 + diff-v22/^usr^src^linux^scripts^lxdialog^menubox.c.patch CVS:
2398 + ----------------------------------------------------------------------
2399 +
2400 +2001-08-25 Saturday 18:15 kirk
2401 +
2402 + Changed keyboard.c, keyboard.h, speakup.c and speakup.h to conform to
2403 + the standard linux kernel tree code style for the 2.2.x
2404 + kernels. (Kirk)
2405 +
2406 +2001-08-18 Saturday 03:31 jim
2407 +
2408 + diff-v22/^usr^src^linux^drivers^char^keyboard.c.patch: Modified patch
2409 + to allow raw keyboard for version 2.2 kernels. (Jim Danley)
2410 +
2411 +2001-08-02 Thursday 13:47 kirk
2412 +
2413 + Adding \x20 to the flush string for the Audapter synths. (Kirk)
2414 +
2415 +2001-07-31 Tuesday 19:07 jim
2416 +
2417 + speakup_ltlk.c: appended \x20 to flush string of \x18 for litetalk driver.
2418 + This seems to fix the bug that was causing first chars to be dropped by
2419 + the double lt and litetalk synths for some users. (Jim Danley)
2420 +
2421 +2001-07-26 Thursday 20:12 kirk
2422 +
2423 + A few small clean ups trying to get 2.4.7 to work. (Kirk)
2424 +
2425 +2001-07-16 Monday 11:30 kirk
2426 +
2427 + Added KT_SPKUP to allowed_in_raw_mode macro so speakup's review
2428 + functions are available in raw mode for v-2.4.x kernels. (Kirk)
2429 +
2430 +2001-03-17 Saturday 15:40 jim
2431 +
2432 + speakup.c:
2433 + Added silent feature.
2434 + The print screen key kills and revives speakup. Sending specific values to
2435 + /proc/speakup/silent now allows the same control without having to press a key.
2436 + Valid settings are 0 through 3.
2437 + 0 and 2 turn on speakup if not already alive.
2438 + 1 and 3 turn off speakup if not already killed.
2439 + 0 and 1 announce the changes as the print screen key does,
2440 + 2 and 3 act silently.
2441 + (Jim Danley)
2442 +
2443 +2001-03-17 Saturday 08:45 jim
2444 +
2445 + speakup.c and symbols.h:
2446 + Added bell position feature.
2447 + When a letter is typed in column bell_pos, console beeps.
2448 + Valid settings are 0 through video_num_columns. Zero disables.
2449 + Get/set via /proc/speakup/bell_pos.
2450 + (Brian Borowski)
2451 +
2452 +2001-03-13 Tuesday 14:50 jim
2453 +
2454 + speakup.c:
2455 + Added code in say_screen() to insert a space at the end of full lines.
2456 + (Gene Collins)
2457 +
2458 +2001-03-13 Tuesday 14:40 jim
2459 +
2460 + speakup.c:
2461 + Found and fixed a couple of places where synth_write() was writing len of
2462 + string plus 1 which caused a NULL to be sent to the synth which causes
2463 + problems for the Doubletalk LT.
2464 +
2465 + speakup.c and keyboard.c for 2.2 and 2.4
2466 + Corrected the length parameter on several spkup_write() statements which
2467 + were also sending unnecessary NULLs.
2468 +
2469 + Corrected spelling of /proc/speakup/transport directory. (Jim Danley)
2470 +
2471 +2001-02-28 Wednesday 10:55 kirk
2472 +
2473 + Removing the make menuconfig patches for checklist.c and menubox.c
2474 + because they have been included in linux 2.4.2. (Kirk)
2475 +
2476 +2001-02-11 Sunday 14:05 kirk
2477 +
2478 + Checking support for alpha support in 2.4.x kernels. (Kirk)
2479 +
2480 +2001-01-30 Tuesday 20:55 kirk
2481 +
2482 + Fixed arch/ppc/config.in to source drivers/char/Config.in which had
2483 + gotten broken in the post 2.4.0 ac patches. (Kirk)
2484 +
2485 +2001-01-28 Sunday 23:53 jim
2486 +
2487 + Reduced duplicate code in proc_speakup_synth_init() by creating two arrays
2488 + of strings, read_only[] and root_writable[] and using these arrays in
2489 + for loops.
2490 + Bumped version numbers on remaining serial synth drivers. (Jim Danley)
2491 +
2492 +2001-01-28 Sunday 20:26 kirk
2493 +
2494 + Made modifications to speakup.h for v2.2 and the remainder of the
2495 + serial synth drivers to use the initialize_uart() function in
2496 + speakup_drvcommon.c. (Kirk)
2497 +
2498 +2001-01-28 Sunday 19:15 kirk
2499 +
2500 + Made changes to 2.4.0 to move uart initialization code into
2501 + speakup_drvcommon.c and modified speakup_dectlk.c to use that
2502 + change. (Kirk)
2503 +
2504 +2001-01-28 Sunday 00:26 jim
2505 +
2506 + Modified the serprobe() function in the Accent SA driver.
2507 + This should allow the Accent SA to start talking from a cold boot with
2508 + no help from the lilo serial= or speakup_ser= options.
2509 + Ran speakup_acntsa.c through Lindent.
2510 + Bumped speakup_acntsa.c version number. (Jim Danley)
2511 +
2512 +2001-01-27 Saturday 23:26 jim
2513 +
2514 + Modified the serprobe() function in the Dectalk Express driver.
2515 + My Dectalk Express now starts talking just fine from a cold boot with
2516 + no help from the lilo serial= or speakup_ser= options.
2517 + Ran speakup_dectlk.c through Lindent and cleaned up some comments.
2518 + Bumped Dectalk Express driver version number. (Jim Danley)
2519 +
2520 +2001-01-25 Thursday 17:58 jim
2521 +
2522 + Worked on the write handler for /proc/speakup/synth.
2523 + It error-checks new_synth_name, prints out msg if synth selected is
2524 + already in use, looks for new_synth_name in list of synths compiled into
2525 + kernel, and prepares to switch to new synth.
2526 + Ran speakup.c through Lindent and cleaned up some comments. (Jim Danley)
2527 +
2528 +2001-01-24 Wednesday 22:59 jim
2529 +
2530 +
2531 + Modified speakup_drvcommon.c so that those synth-specific /proc file
2532 + entries which are writable will now accept "" to trigger resetting of
2533 + the default value.
2534 + Ran speakup_drvcommon.c through Lindent and cleaned up some comments.
2535 + (Jim Danley)
2536 +
2537 +2001-01-24 Wednesday 12:33 kirk
2538 +
2539 + Made changes for Maintaners to v-24. (Kirk)
2540 +
2541 +2001-01-24 Wednesday 12:31 kirk
2542 +
2543 + Another typo fix in Configure.help and an update to the URL in Maintaners. (Kirk)
2544 +
2545 +2001-01-24 Wednesday 11:57 kirk
2546 +
2547 + Fixed clarification in Configure.help in v-24. (Kirk)
2548 +
2549 +2001-01-24 Wednesday 11:56 kirk
2550 +
2551 + Fixed spelling error in Config.in and modified Configure.help yet again. (Kirk)
2552 +
2553 +2001-01-24 Wednesday 11:47 kirk
2554 +
2555 + Fixed formatting in v-24 configure.help. (Kirk)
2556 +
2557 +2001-01-24 Wednesday 11:46 kirk
2558 +
2559 + Fixed indentation and spelling errors in configure.help. (Kirk)
2560 +
2561 +2001-01-24 Wednesday 10:49 kirk
2562 +
2563 + Fixing the v-2.4 version of the Configure.help file. (Kirk)
2564 +
2565 +2001-01-24 Wednesday 10:47 kirk
2566 +
2567 + Updated the Configure.help documentation and re-arranged the speakup
2568 + Config.in file. (Kirk)
2569 +
2570 +2001-01-23 Tuesday 15:45 jim
2571 +
2572 +
2573 + Modified speakup.c to handle input in either upper or lower case written
2574 + to the /proc file entries for those settings that accept a range of
2575 + values that includes alpha chars.
2576 + The value is forced to lower case before any comparisons.
2577 + Modified the synth driver range parameters to accept only lower case as follows:
2578 + rate in both speakup_acntpc.c and speakup_acntsa.c,
2579 + pitch and volume in speakup_apolo.c,
2580 + tone in speakup_txprt.c.
2581 + Bumped synth driver version numbers.
2582 + (Jim Danley)
2583 +
2584 +2001-01-23 Tuesday 11:58 jim
2585 +
2586 +
2587 + Fixed typo in speakup_dectlk.c.
2588 + (Jim Danley)
2589 +
2590 +2001-01-23 Tuesday 11:39 jim
2591 +
2592 +
2593 + Moved full_time into the spk_synth structure for all synths and created
2594 + /proc/speakup/synth-specific/full_time entry.
2595 + Modified /usr/include/linux/speakup.h and associated files in diff-v22 and diff-v24.
2596 + (Jim Danley)
2597 +
2598 +2001-01-23 Tuesday 01:14 jim
2599 +
2600 +
2601 + Added to the TODO list.
2602 + (Jim Danley)
2603 +
2604 +2001-01-23 Tuesday 00:42 jim
2605 +
2606 +
2607 + Moved delay_time, trigger_time, and jiffy_delta into the spk_synth
2608 + structure for all synths.
2609 + Modified /usr/include/linux/speakup.h and associated files in diff-v22 and diff-v24.
2610 + Assigned following default values for Accent SA and Audapter drivers:
2611 + delay_time = 400, trigger_time = 5, jiffy_delta = 3.
2612 + Bumped synth driver version numbers.
2613 + (Jim Danley)
2614 +
2615 +2001-01-22 Monday 21:32 jim
2616 +
2617 +
2618 + Moved INIT_STRING and REINIT_STRING into the spk_synth structure for all synths.
2619 + Modified /usr/include/linux/speakup.h and associated files in diff-v22 and diff-v24.
2620 + Commented out some unused driver code that caused compile warnings.
2621 + (Jim Danley)
2622 +
2623 +2001-01-22 Monday 17:44 jim
2624 +
2625 +
2626 + Test number 2.
2627 + (Jim Danley)
2628 +
2629 +2001-01-22 Monday 16:28 kirk
2630 +
2631 +
2632 + Testing my new CVS login.
2633 + (Jim Danley)
2634 +
2635 +2001-01-21 Sunday 19:48 kirk
2636 +
2637 + Wrote char *strlwr(char *) and now use it to be certain that the
2638 + synth_name (provided by the user in config or at boot time) is forced
2639 + to lower case.
2640 + (Jim Danley)
2641 +
2642 +2001-01-21 Sunday 13:53 kirk
2643 +
2644 + Added /proc/speakup/synth entry -- read-only so far.
2645 + Removed old ioctl functions from speakup.c
2646 + Wrote xlate function to translate escape chars in user provided strings.
2647 + Added synth_name to "unknown synthesizer" message at boot up.
2648 + Check for length of synth_name.
2649 + Made certain that synth_name is NULL terminated.
2650 + (Jim Danley)
2651 +
2652 +2001-01-21 Sunday 09:03 kirk
2653 +
2654 + Changed synth_write("\n", 2);
2655 + to synth_write("\n", 1);
2656 + when sending user provided synth settings via /proc to the synth.
2657 + This *might* fix the problem reported by litetalk users.
2658 + Cleaned up some comments and indenting.
2659 + (Jim Danley)
2660 +
2661 +2001-01-14 Sunday 21:05 matt
2662 +
2663 + Checking in 2.2.x patches for the last modification. (Matt)
2664 +
2665 +2001-01-14 Sunday 20:49 kirk
2666 +
2667 + Checking in Matt Campbells driver rewrite to include all the synths in
2668 + the kernel at the same time. (Kirk)
2669 +
2670 +2001-01-10 Wednesday 12:16 kirk
2671 +
2672 + Fixed bug when writing to /proc/speakup files caps_start, caps_stop,
2673 + punc_some, and punc_most.
2674 + Defined PUNC_CHARS and PUNC_CHARS_SIZE in symbols.h.
2675 + Added MULTI_CHAR to list of possible spk_variable.flags, necessary to
2676 + define a list of chars that must belong to another list of chars --
2677 + used for punc_some and punc_most.
2678 + Set arbitrary limit of 33 chars on caps_*.
2679 + Set PUNC_CHARS_SIZE char limit on user supplied value to punc_some and punc_most.
2680 + Fixed erroneous error strings.
2681 + #define'd error conditions to make code more clear.
2682 + Added STRING_TOO_LONG and CHAR_NOT_ONE_OF.
2683 + Added missing volume setting to DEFAULT_STATIC for Dectalk Express.
2684 + (Jim Danley)
2685 +
2686 +2001-01-08 Monday 19:08 kirk
2687 +
2688 + Made more changes to the cursoring. I got backspace working in and
2689 + out of cursoring. (Kirk)
2690 +
2691 +2001-01-08 Monday 16:25 kirk
2692 +
2693 + I have rewritten the cursoring routine speakup_check() to hopefully
2694 + improve it. We are not there yet! (Kirk)
2695 +
2696 +2001-01-07 Sunday 16:05 kirk
2697 +
2698 + Just fixing some indentation settings. (Kirk)
2699 +
2700 +2001-01-07 Sunday 13:37 kirk
2701 +
2702 + added a single line to the top of speakup.c for testing.
2703 + (Jim Danley)
2704 +
2705 +2001-01-07 Sunday 12:58 kirk
2706 +
2707 + Fixed char/Makefile to build depends which it wasn't doing for some
2708 + reason under 2.2.18. (Kirk)
2709 +
2710 +2001-01-07 Sunday 12:16 kirk
2711 +
2712 + Fixed char/Makefile to create the speakup/.depend correctly. I don't
2713 + know why it wasn't working before. Everything else did. (Kirk)
2714 +
2715 +2001-01-07 Sunday 12:05 kirk
2716 +
2717 + modified range checking code in speakup.c to handle negative numbers in
2718 + user provided parameter to /proc/speakup/* and also in spk_variable.valid.
2719 + (Jim Danley)
2720 +
2721 +2001-01-07 Sunday 09:02 kirk
2722 +
2723 + cleaned up and commented symbols.h.
2724 + re-wrote some of the range logic in symbols.h and speakup.c.
2725 + changed char valid[33] to char *valid in spk_variable struct.
2726 + dropped 0xff as char string terminator for spk_variable.valid member.
2727 + removed NUMERIC from rate flags for accents.
2728 + made /proc/speakup/tone read-only for dectalk express.
2729 + (Jim Danley)
2730 +
2731 +2001-01-06 Saturday 15:52 kirk
2732 +
2733 + Reorganized the Todo list and placed bugs in the bugs file. (Kirk)
2734 +
2735 +2001-01-05 Friday 21:19 kirk
2736 +
2737 + Made modifications to fix the make menuconfig bug in 2.4.0. (Kirk)
2738 +
2739 +2001-01-05 Friday 20:42 kirk
2740 +
2741 + Modified menubox.c in lxdialog to fix bug with initial menus not being
2742 + shown completely. (Kirk)
2743 +
2744 +2001-01-05 Friday 15:54 kirk
2745 +
2746 + merged symbols_*.h into symbols.h and removed symbols_*.h from CVS.
2747 + cleaned up the format a bit along the way.
2748 + (Jim Danley)
2749 +
2750 +2001-01-04 Thursday 18:33 kirk
2751 +
2752 + Modified the console.c, speakup.h and speakup.c for the 2.4.0 kernels.
2753 + I have also removed vt.c in preparation for just using the
2754 + /proc/speakup configuration system. (Kirk)
2755 +
2756 +2001-01-04 Thursday 12:11 kirk
2757 +
2758 + Starting major changes for merging into the kernel source tree. Files
2759 + updated are console.c speakup.c speakup.h and vt.c. I have built a
2760 + new set of functions to interact with the kernel which will be speakup
2761 + functions if speakup is configured in and null stubs if speakup is not
2762 + configured in. So far they include: speakup_allocate(), speakup_bs(),
2763 + speakup_con_update(), speakup_con_write() and speakup_init(). These
2764 + changes only affect the 2.2.18 tree currently. (Kirk)
2765 +
2766 +2001-01-03 Wednesday 10:04 kirk
2767 +
2768 + Fixed transport driver by giving the uart time to settle before
2769 + testing for the port. (Kirk)
2770 +
2771 +2001-01-02 Tuesday 20:18 kirk
2772 +
2773 + First attempt to change checkout to work with an installed tarball and
2774 + update it to cvs. (Kirk)
2775 +
2776 +2001-01-02 Tuesday 14:09 kirk
2777 +
2778 + Made tchanges to make v24 compatible with 2.4.0-prerelease. (Kirk)
2779 +
2780 +2001-01-02 Tuesday 09:50 kirk
2781 +
2782 + Added code to correctly parse range string for /proc file speech
2783 + parameters which use a range of chars.
2784 + Added a priority of KERN_ALERT to printk statements that need to be
2785 + displayed on user's console regardless.
2786 + Enhanced warning output if user attempts to assign a value out of range
2787 + to a /proc variable.
2788 + (Jim Danley)
2789 +
2790 +2000-12-31 Sunday 13:20 kirk
2791 +
2792 + Rewrote checkclean and changed semee to semi in the character
2793 + array. (Kirk)
2794 +
2795 +2000-12-31 Sunday 12:12 kirk
2796 +
2797 + Fixed syntax errors in speakup_txprt.c and modified the install
2798 + script. (Kirk)
2799 +
2800 +2000-12-31 Sunday 11:43 kirk
2801 +
2802 + Fixing typo's in the documentation files. (Kirk)
2803 +
2804 +2000-12-30 Saturday 23:33 kirk
2805 +
2806 + Rewrote install and INSTALLATION for a different installing
2807 + design. (Kirk)
2808 +
2809 +2000-12-30 Saturday 17:03 kirk
2810 +
2811 + We are officially version v-0.10. (Kirk)
2812 +
2813 +2000-12-30 Saturday 16:58 kirk
2814 +
2815 + Modified the installation file and created an install script. (Kirk)
2816 +
2817 +2000-12-30 Saturday 15:13 kirk
2818 +
2819 + Fixed a syntax problem with speakup_audptr.c. (Kirk)
2820 +
2821 +2000-12-30 Saturday 14:58 kirk
2822 +
2823 + Placed a length limit on reading of version number in
2824 + speakup_audptr.c. (Kirk)
2825 +
2826 +2000-12-30 Saturday 13:12 kirk
2827 +
2828 + Adding file changes for v22. (Kirk)
2829 +
2830 +2000-12-30 Saturday 13:10 kirk
2831 +
2832 + Removing files related to version changes. (Kirk)
2833 +
2834 +2000-12-30 Saturday 13:00 kirk
2835 +
2836 + Changed structure of Documentation/speakup and related files to remove
2837 + references to speakup version for ease in updating documentation.
2838 + (Kirk)
2839 +
2840 +2000-12-29 Friday 14:00 kirk
2841 +
2842 + echo "" > /proc/speakup/characters now resets to defaults for consistency.
2843 + wrote script to reset all speakup defaults
2844 + added key_echo toggle to speakup vars controllable by user
2845 + via /proc/speakup/key_echo
2846 + key_echo is not 100% -- keypad slash talks even if key_echo == 0
2847 + (Jim Danley)
2848 +
2849 +2000-12-24 Sunday 16:46 kirk
2850 +
2851 + finished ability to write to /proc files, changed some default char descs, added "direct" to /proc
2852 +
2853 +2000-12-22 Friday 15:04 kirk
2854 +
2855 + These are the cursoring fixes for the 2.4.0-testxx kernels. They also
2856 + include the requested changes I was experimenting with by Alan Cox in
2857 + preparation for kernel source tree inclusion. (Kirk)
2858 +
2859 +2000-12-22 Friday 13:54 kirk
2860 +
2861 + Fixed up some of the cursoring issues and have started making the
2862 + changes requested by Alan Cox in preparation for kernel source tree
2863 + inclusion. (Kirk)
2864 +
2865 +2000-12-21 Thursday 08:56 kirk
2866 +
2867 + rewrite of speakup_characters_write_proc() to handle fragmented buffers when called by dd, cp, or cat in kernel 2.4 (Jim Danley)
2868 +
2869 +2000-12-20 Wednesday 12:17 kirk
2870 +
2871 + Cleaned up some warnings. (Kirk)
2872 +
2873 +2000-12-20 Wednesday 11:32 kirk
2874 +
2875 + Fixed toggle for synth timeout to set it off when waking up the
2876 + synth. (Kirk)
2877 +
2878 +2000-12-19 Tuesday 19:31 kirk
2879 +
2880 + This is atest fix to see if I have helped eliminate the synth bleed
2881 + through problem with all of the synths. (Kirk)
2882 +
2883 +2000-12-19 Tuesday 16:29 kirk
2884 +
2885 + quick change to speakup_audptr.c to fix synth_ver typo for kernel 2.2.18 (Jim Danley)
2886 +
2887 +2000-12-19 Tuesday 15:35 kirk
2888 +
2889 + Checking in the 2.2.18 fixes for the synth hanging problems. (Kirk)
2890 +
2891 +2000-12-19 Tuesday 15:10 kirk
2892 +
2893 + Finally fixed the synth hanging problem on synth turn off. (Kirk)
2894 +
2895 +2000-12-18 Monday 14:44 kirk
2896 +
2897 + Just updating BUGS to put the backspace problem to bed. (Kirk)
2898 +
2899 +2000-12-18 Monday 14:40 kirk
2900 +
2901 + Checking in the backspace fix for 2.4.0-test11. Yeah! Finally
2902 + fixed. (Kirk)
2903 +
2904 +2000-12-18 Monday 14:14 kirk
2905 +
2906 + Fixed the backspace bug at last! In 2.2.18 so far. (Kirk)
2907 +
2908 +2000-12-18 Monday 10:03 kirk
2909 +
2910 + Checking in Jim Danleys changes again. When will I learn to checkout
2911 + before checking in?? (Kirk)
2912 +
2913 +2000-12-15 Friday 13:50 kirk
2914 +
2915 + Checking first draft of menubox.c and checklist.c for
2916 + v-2.4.0-testxx. (Kirk)
2917 +
2918 +2000-12-15 Friday 13:48 kirk
2919 +
2920 + Taking first diff of menubox.c and checklist.c for v2.4.0-test11 for
2921 + make menuconfig cursoring. (Kirk)
2922 +
2923 +2000-12-15 Friday 13:17 kirk
2924 +
2925 + Checking in the new diffs of menubox.c and checklist.c for the first
2926 + time. (Kirk)
2927 +
2928 +2000-12-15 Friday 13:14 kirk
2929 +
2930 + Taking first diff of the make menuconfig patches from checklist.c and
2931 + menubox.c. (Kirk)
2932 +
2933 +2000-12-12 Tuesday 18:56 kirk
2934 +
2935 + Fixed a spelling error added to Todo list and fix speakup.c to not
2936 + need the is_alive() function. (Kirk)
2937 +
2938 +2000-12-12 Tuesday 15:21 kirk
2939 +
2940 + Fixed speakup to patch correctly with 2.2.18. Unfortunately it won't
2941 + work with kernels less than 2.2.18 anymore. It was totally agreed
2942 + upon by the folks on the reflector. It's not my fault mom! (Kirk)
2943 +
2944 +2000-12-12 Tuesday 10:41 kirk
2945 +
2946 + Fix a problem with a conflict in cvsversion.h. (Kirk)
2947 +
2948 +2000-12-11 Monday 20:40 kirk
2949 +
2950 + Attempt to fix the Audapter driver by limiting how long it can stay in
2951 + kernel space. (Kirk)
2952 +
2953 +2000-12-11 Monday 17:37 kirk
2954 +
2955 + Made a slight fix to spk_reset() and moved it's call up a bit in
2956 + handle_scancodes(); (Kirk)
2957 +
2958 +2000-12-11 Monday 16:28 kirk
2959 +
2960 + Just checking in the cvs adds for the new diff-v24 patch files. (Kirk)
2961 +
2962 +2000-12-11 Monday 16:25 kirk
2963 +
2964 + Checking in the 2.4.0 kernel patches for Jim Danley's /proc file
2965 + system additions. (Kirk)
2966 +
2967 +2000-12-11 Monday 14:34 kirk
2968 +
2969 + Checking in added proc files. (Kirk)
2970 +
2971 +2000-12-11 Monday 14:31 kirk
2972 +
2973 + Added two new files to v22 kernel for /proc file system,
2974 + linux/include/linux/proc_fs.h and linux/fs/proc/root.c. (Kirk)
2975 +
2976 +2000-12-11 Monday 12:59 kirk
2977 +
2978 + Checking in Jim Danleys /proc file system additions to speakup. (Kirk)
2979 +
2980 +2000-12-09 Saturday 19:14 kirk
2981 +
2982 + Changed spk_control to test for zero specifically on say_control. (Kirk)
2983 +
2984 +2000-12-09 Saturday 18:29 kirk
2985 +
2986 + Changed spk_control to say capslock scroll_lock and num_lock even when
2987 + say_control isn't on. (Kirk)
2988 +
2989 +2000-12-08 Friday 16:21 kirk
2990 +
2991 + Removing the linux version 2.3.xx stuff again. (Kirk)
2992 +
2993 +2000-12-08 Friday 15:40 kirk
2994 +
2995 + patched Configure.help by hand from v2.4 and committing. (Kirk)
2996 +
2997 +2000-12-08 Friday 14:47 kirk
2998 +
2999 + Checked in diff-v22/^usr^src^linux^Documentation^Configure.help.patch
3000 + which seems to have been missed as well as the init/main.c stuff.
3001 + This is really weird (Kirk)
3002 +
3003 +2000-12-08 Friday 14:40 kirk
3004 +
3005 + Added the -d flag to updat in checkout to see if we get cleanup
3006 + improvement. (Kirk)
3007 +
3008 +2000-12-08 Friday 13:13 kirk
3009 +
3010 + Removing patchlist and the linux 2.3.xx support. (Kirk)
3011 +
3012 +2000-12-08 Friday 13:07 kirk
3013 +
3014 + Edited check.orig and fix.orig to use the new patchlist filename
3015 + convention. (Kirk)
3016 +
3017 +2000-12-07 Thursday 22:17 kirk
3018 +
3019 + Just checking in the new files, three to be exact. (kirk)
3020 +
3021 +2000-12-07 Thursday 22:14 kirk
3022 +
3023 + rewrote checkin, checkout and moved patchlist to patchlist-v22 and
3024 + patchlist-v24 because we were missing the linux/init/main.c patches
3025 + and we didn't have a way to handle different files for different
3026 + versions. (kirk)
3027 +
3028 +2000-12-06 Wednesday 19:06 kirk
3029 +
3030 + Added support for the codepage 437 extended character set. (Jim and Kirk)
3031 +
3032 +2000-11-29 Wednesday 11:30 kirk
3033 +
3034 + Fixed the 2.2.xx kernels to have the almost correct backspace code.
3035 + Also move the new character output in do_con_write() to lf(). I've
3036 + experimentally put a 'space' in to see if that helps the wrapping
3037 + during console output. (Kirk)
3038 +
3039 +2000-11-27 Monday 15:38 kirk
3040 +
3041 + Fix or partial to the backspace problem at least on 2.4.0-test11. I
3042 + probably broke cursoring.
3043 +
3044 +2000-11-22 Wednesday 20:12 kirk
3045 +
3046 + Fixed a stupid unused variable by deleting it.
3047 + Fixed speakup_file_write to send raw user data to the synth. (Thanx Matt)
3048 +
3049 +2000-11-21 Tuesday 15:10 kirk
3050 +
3051 + Adjusted console.c patch for test11 of 2.4.0.
3052 +
3053 +2000-11-16 Thursday 11:42 kirk
3054 +
3055 + Modified all drivers to test for no port when clearing the holding
3056 + register.
3057 +
3058 +2000-11-16 Thursday 07:56 kirk
3059 +
3060 + Fixed console.c patch to compensate for the line movement. in Test10.
3061 +
3062 +2000-10-24 Tuesday 11:10 kirk
3063 +
3064 + Fix to the LiteTalk driver to get around the hanging when the synth isn't
3065 + on.
3066 +
3067 +2000-10-23 Monday 12:15 kirk
3068 +
3069 + Fixed dtlk driver so non-valid ports are released correctly in
3070 + dev_probe. Also added externs for synth_request_region and
3071 + release. (Kirk)
3072 +
3073 +2000-08-28 Monday 13:29 kirk
3074 +
3075 + Fixed Makefile for 2.4.0-test7 in drivers/char.
3076 +
3077 +2000-08-17 Thursday 16:21 kirk
3078 +
3079 + Birth of cursoring for version 2.4.xx kernels.
3080 +
3081 +2000-08-17 Thursday 12:06 kirk
3082 +
3083 + Okay, I proclaim the birth of cursoring, at least in the 2.2.x kernels. Next we'll try the 2.3/4.x kernels.
3084 +
3085 +2000-08-17 Thursday 11:01 kirk
3086 +
3087 + Fixed CFLAGS to EXTRA_CFLAGS in Makefile to get speakup to compile
3088 + again. The break took place between 2.4.0-test4 and test5.
3089 +
3090 +2000-07-20 Thursday 10:43 kirk
3091 +
3092 + Changed krealloc to just use kfree instead of kfree_s. Kirk
3093 +
3094 +2000-07-03 Monday 14:19 kirk
3095 +
3096 + Fixed one line in keyboard.c and changes to cvs
3097 +
3098 +2000-06-29 Thursday 16:32 andy
3099 +
3100 + Fixed checkin / cvsversion.h
3101 +
3102 +2000-06-29 Thursday 16:26 andy
3103 +
3104 + v2.2.x keyboard.c + speakup_kill() fix
3105 +
3106 +2000-06-29 Thursday 16:00 andy
3107 +
3108 + v2.2 addition of speakup_kill() function (bound to sysreq key)
3109 +
3110 +2000-06-29 Thursday 15:56 andy
3111 +
3112 + v2.4 addition of speakup_kill() function (bound to sysrq key)
3113 +
3114 +2000-06-26 Monday 16:19 andy
3115 +
3116 + Added (very minimal) read() and ioctl() functions for /dev/synth.
3117 +
3118 +2000-06-23 Friday 11:16 andy
3119 +
3120 + Fixed miscdevice.h bad patch
3121 +
3122 +2000-06-22 Thursday 15:47 andy
3123 +
3124 + Fixed defkeymap.c not being built properly.
3125 +
3126 +2000-06-22 Thursday 15:17 andy
3127 +
3128 + Fixed v2.2.x zero-byte patch bug
3129 +
3130 +2000-06-22 Thursday 14:48 andy
3131 +
3132 + Checkout prunes now.
3133 +
3134 +2000-06-22 Thursday 12:48 andy
3135 +
3136 + Forgot to kill the old patch files... cleaning up.
3137 +
3138 +2000-06-22 Thursday 12:45 andy
3139 +
3140 + Changed checkin/checkout philosophy...
3141 + v2.2.x, v2.3.x, v2.4.x trees are all in this release
3142 +
3143 +2000-06-21 Wednesday 16:27 andy
3144 +
3145 + More checkin/checkout fixes.
3146 +
3147 +2000-06-21 Wednesday 16:19 andy
3148 +
3149 + Changed checkin/checkout philosophy, so 0-byte files aren't such a headache
3150 +
3151 +2000-06-21 Wednesday 14:13 andy
3152 +
3153 + New checkout script, fixing non-updating of previously patched files.
3154 +
3155 +2000-06-20 Tuesday 15:14 andy
3156 +
3157 + /dev/synth (MAJOR 10, MINOR 25) fix for v2.2.x tree
3158 +
3159 +2000-06-19 Monday 16:02 andy
3160 +
3161 + checkin script that fixes busted/nonexstant .orig files
3162 +
3163 +2000-06-19 Monday 13:08 andy
3164 +
3165 + cvsversion.h fix
3166 + speakup_decext.c fix for v2.2.x (no such member 'list' problem)
3167 +
3168 +2000-06-14 Wednesday 16:00 andy
3169 +
3170 + TODO update
3171 +
3172 +2000-06-14 Wednesday 15:25 andy
3173 +
3174 + Fixed:
3175 + checkin 'older than' bug
3176 + disabled <caps|num|scroll>-lock speech when spk_shut_up is set
3177 +
3178 +2000-06-14 Wednesday 13:15 andy
3179 +
3180 + Added a cvsversion.h and cvs date tracking into speakup.
3181 +
3182 +2000-06-14 Wednesday 12:44 andy
3183 +
3184 + Oops. Forgot these.
3185 +
3186 +2000-06-14 Wednesday 08:06 kirk
3187 +
3188 + Put SYNTH_MINOR #ifdefs in miscdevices.h for v2.2.x kernels.
3189 + Updated Todo file and temporarily incremented version number of speakup. (Kirk)
3190 +
3191 +2000-06-13 Tuesday 16:30 andy
3192 +
3193 + v2.4.x spanky checkin
3194 +
3195 +2000-06-13 Tuesday 15:36 andy
3196 +
3197 + v2.4.x checkin for /dev/synth stuff.
3198 +
3199 +2000-06-13 Tuesday 15:28 andy
3200 +
3201 + typo fix.
3202 +
3203 +2000-06-13 Tuesday 15:23 andy
3204 +
3205 + v2.2.x checkin for the new /dev/synth stuff.
3206 +
3207 +2000-06-13 Tuesday 15:17 andy
3208 +
3209 + Added a /dev/synth fops to speakup (MAJOR 10, MINOR 25), so that users can
3210 + use the synth without speakup (but why?). :)
3211 +
3212 + Also fixed a couple of issues with the check* scripts, and added a -p option
3213 + to checkin to just create patches.
3214 +
3215 +2000-06-12 Monday 14:36 andy
3216 +
3217 + Had a 0-byte defkeymap.c file...
3218 +
3219 +2000-06-12 Monday 14:26 andy
3220 +
3221 + Fixed the screwed up v2.2.x patch files, and added a fixorig script which
3222 + copies .orig files from /usr/src/linux.orig as stated in the
3223 + patchlist file
3224 +
3225 +2000-06-09 Friday 16:03 andy
3226 +
3227 + TODO change
3228 +
3229 +2000-06-09 Friday 14:21 andy
3230 +
3231 + added checkclean script
3232 +
3233 +2000-06-09 Friday 12:46 andy
3234 +
3235 + updates to the v2.2.x tree.
3236 +
3237 +2000-06-08 Thursday 14:59 andy
3238 +
3239 + Fixed v2.2.x diffs, and made a few changes to checkin/checkout/checkorig..
3240 +
3241 + Namely,
3242 + checkin:
3243 + fixed bailout on CVSROOT set
3244 + diffs only for new or files that have changed since last patch
3245 + cvs adds directories properly
3246 + checks exit values of cvs commands
3247 + checkout/checkorig:
3248 + zeroes out .orig files that should exist and should be zeroed
3249 + patchlist:
3250 + now specifies patchfiles in the form:
3251 + <0|1>,<file>
3252 + where the first number is a flag to copy the file to create
3253 + a <file>.orig, or create a zero-byte file (0) for <file>.orig
3254 +
3255 +2000-06-07 Wednesday 15:52 kirk
3256 +
3257 + [no log message]
3258 +
3259 +2000-06-07 Wednesday 14:15 andy
3260 +
3261 + checkin mod
3262 +
3263 +2000-06-07 Wednesday 14:14 andy
3264 +
3265 + date test added to ./checkin
3266 +
3267 +2000-06-07 Wednesday 14:11 andy
3268 +
3269 + test
3270 +
3271 +2000-06-07 Wednesday 14:09 andy
3272 +
3273 + test patch
3274 +
3275 +2000-06-07 Wednesday 13:02 kirk
3276 +
3277 + test of checkin on spanky
3278 +
3279 +2000-06-07 Wednesday 12:32 andy
3280 +
3281 + more checkin/checkout updates
3282 +
3283 +2000-06-07 Wednesday 12:19 andy
3284 +
3285 + quick print fix for checkin script
3286 +
3287 +2000-06-07 Wednesday 12:17 andy
3288 +
3289 + Fixed new tree commit/checkout/update bugs with checkin and checkout
3290 +
3291 +2000-06-07 Wednesday 12:10 kirk
3292 +
3293 + v24 tree added to cvs
3294 +
3295 +2000-06-07 Wednesday 11:30 andy
3296 +
3297 + logic error in ./checkin
3298 +
3299 + New diff-vXX directories are added now... just cp -a diff-vYY div-vXX, and
3300 + kill the CVS/ dir.
3301 +
3302 +2000-06-05 Monday 15:54 andy
3303 +
3304 + Fixed ./checkin to 'cvs add' created patch directories.
3305 +
3306 +2000-06-05 Monday 15:39 andy
3307 +
3308 + Added synth_release_region, and seperated out a speakup_drvcommon.c file,
3309 + which contains common driver stuff -- current just synth_release_region(),
3310 + and synth_request_region().
3311 +
3312 +2000-06-02 Friday 15:32 andy
3313 +
3314 + Final test??
3315 +
3316 +2000-06-02 Friday 14:11 andy
3317 +
3318 + bleah
3319 +
3320 +2000-06-02 Friday 13:58 andy
3321 +
3322 + another test.. *sigh*
3323 +
3324 +2000-06-02 Friday 13:57 andy
3325 +
3326 + foo
3327 +
3328 +2000-06-02 Friday 13:49 andy
3329 +
3330 + test 342.7
3331 +
3332 +2000-06-02 Friday 12:56 andy
3333 +
3334 + wrong checkout script.
3335 +
3336 +2000-06-02 Friday 12:51 andy
3337 +
3338 + Yet another test.
3339 +
3340 +2000-06-01 Thursday 15:45 andy
3341 +
3342 + test #2
3343 +
3344 +2000-06-01 Thursday 15:40 andy
3345 +
3346 + ./checkin script test
3347 +
3348 +2000-06-01 Thursday 15:38 andy
3349 +
3350 + Initial version of speakup in CVS.
3351 +
3352 +2000-06-01 Thursday 15:38 andy
3353 +
3354 + Initial revision
3355 +
3356 diff -ruN linux-2.6.0.old/drivers/char/speakup/Changes linux-2.6.0/drivers/char/speakup/Changes
3357 --- linux-2.6.0.old/drivers/char/speakup/Changes 1969-12-31 19:00:00.000000000 -0500
3358 +++ linux-2.6.0/drivers/char/speakup/Changes 2003-12-28 20:50:09.066839976 -0500
3359 @@ -0,0 +1,221 @@
3360 +version 0.09
3361 +
3362 +May.24.2000, fixed piles o' bugs, and patched speakup forward to kernel
3363 +2.3.99-pre8 (at least). (Andy)
3364 +
3365 +sometime before May 24th, 2000, wrote several new drivers. (Kirk)
3366 +
3367 +version 0.08
3368 +
3369 +18/11/1999, Finally nailed down and fixed a bug with the serial
3370 +drivers filling their buffer and causing the kernel to hang. Of
3371 +course, once again I've totally rewritten the serial drivers. (Kirk)
3372 +
3373 +10/11/1999, Fixed the end of buffer water mark so the kernel wouldn't
3374 +over run the buffer when a process was put to sleep but there was
3375 +already enough chars in the loop to over write end of buffer and trash
3376 +the system. (Kirk)
3377 +
3378 +29/10/1999, Added code to the drivers to test the kernel version, so
3379 +we could include the proper wait_queue tags for 2.2.x vs 2.3.x. (Kirk)
3380 +
3381 +27/10/1999, fix small bug which made the reading cursor not get stored
3382 +when switching between allocated consoles. (Kirk)
3383 +
3384 +08/10/1999, Totally rewrote all drivers to follow fixed format. No
3385 +more will we have drivers which don't look anything like the other
3386 +drivers. (Kirk)
3387 +
3388 +15/09/1999, Rewrote synth drivers and kernel to support command line
3389 +loading of synth ports at boot time. (Andy)
3390 +
3391 +14/09/1999, Rewrote portions of the speakup_ltlk.c driver to fix a
3392 +problem with the DoubleTalk LT losing the first character sent to it
3393 +after a null character. Seems to be a problem only with the LT, not
3394 +being able to deal with characters immediately following NULLs.
3395 +(Kirk)
3396 +
3397 +10/08/1999, Completed writing absolute go to function for speakup
3398 +reading cursor. (Andy)
3399 +
3400 +04/08/1999, Completed routines for speaking punctuation and
3401 +non-character assigned keys, such as shift/control/alt. (Andy)
3402 +
3403 +02/08/1999, Added routines to kernel.c and speakup to allow capturing
3404 +of keystrokes when they're hit. This allows us to speakup characters
3405 +which are typed for cursor control detection and pronouncing chars
3406 +which are not in the allowable punctuation set. (Andy)
3407 +
3408 +23/07/1999, Added routine speakup_check() to help track cursor
3409 +movement for cursor position pronunciation. It isn't working yet.
3410 +(Kirk)
3411 +
3412 +16/07/1999, Rewrote serial probe in ltlk driver to deal with autobaud
3413 +versions of the LiteTalk and DoubleTalk LT. (Andy)
3414 +
3415 +05/07/1999, Fixed a problem with characters like tick and dash which
3416 +don't get passed through to the synth even though they don't get
3417 +spoken. They are needed to get the synth to handle some words
3418 +correctly. (Kirk)
3419 +
3420 +25/06/1999, Fixed a bug I missed which caused speakup to not read the
3421 +last character on a line with say_curr_line(). (Kirk)
3422 +
3423 +25/06/1999, Fixed a bug which caused speakup to miss the end of
3424 +wrapped around words to the next line. (Kirk)
3425 +
3426 +
3427 +version 0.07
3428 +
3429 +18/06/1999, Rewrote the Speakout driver to make it more inline with
3430 +the current driver design. This driver hasn't been tested yet. An
3431 +exercise for John. (Andy)
3432 +
3433 +17/06/1999, Finished rewriting and testing the new version of load_spk
3434 +utilities to handle multiple synths. This intailed redesigning the
3435 +entire way synth control protocals are stored and passed back and
3436 +forth between configuration files and the ioctl() handler. (Andy)
3437 +
3438 +31/05/1999, Finished writing the driver for the Accent SA and
3439 +Transport external synthesizers. (Kirk)
3440 +
3441 +20/05/1999, Rewrote portions of the DTLK and LTLK drivers to fix slow
3442 +responce and choppiness of the output with say_curr_line and
3443 +say_screen. (Kirk)
3444 +
3445 +18/05/1999, Finished the make config changes to make it easier to
3446 +include various synths before compiling the kernel. This included a
3447 +lot of changes to make files and config.in files as well as the
3448 +config.hlp and maintainers documents. We have moved speakup to its
3449 +own subdirectory under linux/drivers/char and will place all future
3450 +files in there. (Kirk)
3451 +
3452 +17/05/1999, Placed newline characters at the end of all strings in
3453 +speakup.c to facilitate proper output with the Speakout driver. (Kirk)
3454 +
3455 +13/05/1999, Finished writing and testing the ACNTPC driver for the
3456 +Accent PC synthesizer. (Kirk)
3457 +
3458 +11/05/1999, Finished writing and testing the LTLK driver for the
3459 +LightTalk synthesizer. (Andy)
3460 +
3461 +version 0.06
3462 +
3463 +07/04/1999, Hunted down and squashed a bug which caused the system to
3464 +lock up when X11 allocated another console. Now, you want to talk
3465 +about weird bugs? (Kirk and Andy)
3466 +
3467 +05/04/1999, Fixed a small bug where the reading cursor structure was
3468 +floating when switching from console to console. (Kirk)
3469 +
3470 +05/03/1999, Finally got repeat function to work correctly. It didn't
3471 +want to give the proper repeat value on say_word and say_line. (Kirk)
3472 +
3473 +4/27/1999, Changed the two shut up functions to sync the reading
3474 +cursor with the console cursor. (Kirk)
3475 +
3476 +4/25/1999, Added a say hex and ASCII value function. (Brian)
3477 +
3478 +4/22/1999, Added our own punctuation handling. This will give us
3479 +consistancy across various synthesizers. It also allows us custom
3480 +punctuation sets. We have four levels currently, NONE, SOME, MOST,
3481 +ALL. The some and most can be user defined, this will eventually
3482 +become a configuration option with loadspk. (Kirk)
3483 +
3484 +4/19/1999, Added a repeat count function so that speakup doesn't read
3485 +all of a repeating sequence of characters like dashes or equal signs.
3486 +(Kirk)
3487 +
3488 +4/15/1999, Rewrote the synth driver to be smaller and utilize
3489 +buffering all the time. This entailed a total rewrite of the driver.
3490 +It works much better than the older style driver. We won't try to be
3491 +compatible with external drivers anymore. That caused us much grief!
3492 +(Kirk)
3493 +
3494 +Version 0.05
3495 +
3496 +03/01/1999, Modified the kernel code and wrote a number of functions
3497 +for loading and dumping speakups configuration settings. The two
3498 +client programs are loadspk and dumpspk, see the accompanying README
3499 +and INSTALLATION files for details. (Andy)
3500 +
3501 +Version 0.04
3502 +
3503 +12/23/1998, Added park reading cursor function. It toggles on and off
3504 +like the speakup off function. (Kirk)
3505 +
3506 +12/10/1998, added code to announce cursor function calls. This is to
3507 +help me try and figure out how and what to say when. (Kirk)
3508 +
3509 +12/08/1998, Added a check in say character to beep when the colour
3510 +attribute changes. (Kirk)
3511 +
3512 +12/08/1998, rewrote say previous and next word to wrap around at the
3513 +end of lines and beep when going from line to line. (Kirk)
3514 +
3515 +12/07/1998, Fixed a little bug which read the bottom half of a
3516 +character which was higher than 0x7f. It makes make menuconfig work a lot
3517 +nicer. (Kirk)
3518 +
3519 +12/07/1998, Added some new functions to read from reading cursor to
3520 +bottom of screen, read from top of screen, read from left edge of
3521 +screen to reading cursor and read from reading cursor to right edge of
3522 +screen. These are basically stub functions which call two general
3523 +purpose functions say_screen_from_to() and say_line_from_to(). (Kirk)
3524 +
3525 +version 0.03
3526 +
3527 +11/19/1998, Added say phonetic character function. I have temporarily
3528 +bound it to InsKeyPad-2. (Kirk)
3529 +
3530 +11/19/1998, Added pronunciation of caps, num and scroll lock on and
3531 +off in keyboard.c. (Andy)
3532 +
3533 +11/18/1998, Fixed the bug which made speakup say the entire current
3534 +word even if it wrapped over the end of line. I also made
3535 +say_curr_word read the word to the right if you have your reading
3536 +cursor on the space just to the left of the word. Makes it a little
3537 +nicer for reading links in lynx. (Kirk)
3538 +
3539 +version 0.02
3540 +
3541 +11/11/1998, fixed a little problem with the attr byte not being
3542 +correct when speakup_update() was called. (Kirk)
3543 +
3544 +11/11/1998, fixed consoles which are not the foreground console
3545 +speaking while they're updating their screens. (Kirk)
3546 +
3547 +11/11/1998, put in the GPL stuff and revised the documentation. (Kirk)
3548 +
3549 +11/10/1998, Rewrote the say_screen function to be super faster than it
3550 +was. (Kirk)
3551 +
3552 +11/10/1998, started to scratch in the soft parked system for reviewing
3553 +around the screen. This is mostly to prevent the reading cursor from
3554 +moving whenever the screen clock or something gets updated. (Kirk)
3555 +
3556 +11/09/1998, rewrote sections of dtlk.c to do away with writing out
3557 +inside cli()/sti() statements. Now we time out after 4 usec and
3558 +assume we missed the bit drop on the rdy bit because of an interrupt.
3559 +Seems to work pretty well except the damn thing reads garbage until
3560 +the bogomips line. Sure is more responsive normally though. (Kirk)
3561 +
3562 +11/05/1998, got the total shut_up routine to work correctly. In
3563 +vc_allocate() we were allocating a new structure every time it was
3564 +called. It was supposed to be everytime a new console was
3565 +successfully allocated. (Kirk)
3566 +
3567 +11/04/1998, Wrote colour attribute routine say_attrib(). I have
3568 +temporarily assigned it to the keypad-period. (Kirk)
3569 +
3570 +11/02/1998, vmalloc() didn't work, to early in the boot process. So
3571 +took our 8192 byte buffer directly by using kmem_start. (Kirk)
3572 +
3573 +10/29/1998, Increased dtlk buffer to 8192 bytes by moving to vmalloc()
3574 +and vfree() instead of get_free_page()/free_page(). We have moved
3575 +from one PAGE_SIZE to two. (kirk)
3576 +
3577 +10/29/1998, changed spk_shut_up to use bit 8 for total shut up instead
3578 +of a seperate variable. Works independantly for each console
3579 +now. (kirk)
3580 +
3581 diff -ruN linux-2.6.0.old/drivers/char/speakup/Config.in linux-2.6.0/drivers/char/speakup/Config.in
3582 --- linux-2.6.0.old/drivers/char/speakup/Config.in 1969-12-31 19:00:00.000000000 -0500
3583 +++ linux-2.6.0/drivers/char/speakup/Config.in 2003-12-28 20:50:09.066839976 -0500
3584 @@ -0,0 +1,26 @@
3585 +tristate 'Speakup console speech' CONFIG_SPEAKUP
3586 +if [ "$CONFIG_SPEAKUP" != "n" ]; then
3587 + comment 'Type "y" for each synthesizer you want built into the kernel.'
3588 + dep_tristate "Accent SA, acntsa" CONFIG_SPEAKUP_ACNTSA $CONFIG_SPEAKUP
3589 + dep_tristate "Accent PC, acntpc" CONFIG_SPEAKUP_ACNTPC $CONFIG_SPEAKUP
3590 + dep_tristate "Apollo, apollo" CONFIG_SPEAKUP_APOLLO $CONFIG_SPEAKUP
3591 + dep_tristate "Audapter, audptr" CONFIG_SPEAKUP_AUDPTR $CONFIG_SPEAKUP
3592 + dep_tristate "Braille 'n' Speak, bns" CONFIG_SPEAKUP_BNS $CONFIG_SPEAKUP
3593 + dep_tristate "DECtalk Express, dectlk" CONFIG_SPEAKUP_DECTLK $CONFIG_SPEAKUP
3594 + dep_tristate "DECtalk External (old), decext" CONFIG_SPEAKUP_DECEXT $CONFIG_SPEAKUP
3595 + dep_tristate "DECtalk PC (big ISA card), decpc" CONFIG_SPEAKUP_DECPC $CONFIG_SPEAKUP
3596 + if [ "$CONFIG_SPEAKUP_DECPC" = "y" ] ;then
3597 + comment 'warning: decpc can only be built as a module'
3598 + fi
3599 + comment 'In order to use this you will need'
3600 + comment 'the dtload program and DECPC software files '
3601 + comment 'Read the accompanying DECPC documentation for more details'
3602 + dep_tristate "DoubleTalk PC, dtlk" CONFIG_SPEAKUP_DTLK $CONFIG_SPEAKUP
3603 + dep_tristate "Keynote Gold PC, keypc" CONFIG_SPEAKUP_KEYPC $CONFIG_SPEAKUP
3604 + dep_tristate "DoubleTalk LT or LiteTalk, ltlk" CONFIG_SPEAKUP_LTLK $CONFIG_SPEAKUP
3605 + dep_tristate "Software synthesizers /dev/sftsyn, sftsyn" CONFIG_SPEAKUP_SFTSYN $CONFIG_SPEAKUP
3606 + dep_tristate "Speak Out, spkout" CONFIG_SPEAKUP_SPKOUT $CONFIG_SPEAKUP
3607 + dep_tristate "Transport, txprt" CONFIG_SPEAKUP_TXPRT $CONFIG_SPEAKUP
3608 + comment 'Enter the three to six character synth string from above or none.'
3609 + string "Default synthesizer for Speakup" CONFIG_SPEAKUP_DEFAULT "none"
3610 +fi
3611 diff -ruN linux-2.6.0.old/drivers/char/speakup/Kconfig linux-2.6.0/drivers/char/speakup/Kconfig
3612 --- linux-2.6.0.old/drivers/char/speakup/Kconfig 1969-12-31 19:00:00.000000000 -0500
3613 +++ linux-2.6.0/drivers/char/speakup/Kconfig 2003-12-28 20:50:09.067839824 -0500
3614 @@ -0,0 +1,210 @@
3615 +menu "Speakup console speech"
3616 +config SPEAKUP
3617 + tristate "Build speakup console speech"
3618 + ---help---
3619 +
3620 + This is the Speakup screen reader. Think of it as a
3621 + video console for blind people. If built in to the
3622 + kernel, it can speak evrything on the text console from
3623 + boot up to shutdown. For more information on Speakup,
3624 + point your browser at http://www.linux-speakup.org/.
3625 + There is also a mailing list at the above url that you
3626 + can subscribe to.
3627 +
3628 + Supported synthesizers are accent sa, accent pc, appollo
3629 + II., Auddapter, Braille 'n Speak, Dectalk external
3630 + (old), Dectalk PC (full length isa board), Dectalk
3631 + express, Doubletalk, Doubletalk LT or Litetalk,
3632 + Keynote
3633 + Gold internal PC, software synthesizers, Speakout, and transport.
3634 +
3635 + Speakup can either be built in or compiled as a module
3636 + by answering y or m. If you answer y here, then you
3637 + must answer either y or m to at least one of the
3638 + synthesizer drivers below. If you answer m here, then
3639 + the synthesizer drivers below can only be built as
3640 + modules.
3641 +
3642 + These drivers are not standalone drivers, but must be
3643 + used in conjunction with Speakup. Think of them as
3644 + video cards for blind people.
3645 +
3646 +
3647 + The Dectalk pc driver can only be built as a module, and
3648 + requires software to be pre-loaded on to the card before
3649 + the module can be loaded. See the decpc choice below
3650 + for more details.
3651 +
3652 + If you are not a blind person, or don't have access to
3653 + one of the listed synthesizers, you should say n.
3654 +
3655 +config SPEAKUP_ACNTSA
3656 + depends on SPEAKUP
3657 + tristate "Accent SA, acntsa"
3658 + ---help---
3659 +
3660 + This is the Speakup driver for the accent sa
3661 + synthesizer. You can say y to build it into the kernel,
3662 + or m to build it as a module. See the configuration
3663 + help on the Speakup choice above for more info.
3664 +
3665 +config SPEAKUP_ACNTPC
3666 + depends on SPEAKUP
3667 + tristate "Accent PC, acntpc"
3668 + ---help---
3669 +
3670 + This is the Speakup driver for the accent pc
3671 + synthesizer. You can say y to build it into the kernel,
3672 + or m to build it as a module. See the configuration
3673 + help on the Speakup choice above for more info.
3674 +
3675 +config SPEAKUP_APOLLO
3676 + depends on SPEAKUP
3677 + tristate "Apollo, apollo"
3678 + ---help---
3679 +
3680 + This is the Speakup driver for the Apollo II
3681 + synthesizer. You can say y to build it into the kernel,
3682 + or m to build it as a module. See the configuration
3683 + help on the Speakup choice above for more info.
3684 +
3685 +config SPEAKUP_AUDPTR
3686 + depends on SPEAKUP
3687 + tristate "Audapter, audptr"
3688 + ---help---
3689 +
3690 + This is the Speakup driver for the Audapter synthesizer.
3691 + You can say y to build it into the kernel, or m to
3692 + build it as a module. See the configuration help on the
3693 + Speakup choice above for more info.
3694 +
3695 +config SPEAKUP_BNS
3696 + depends on SPEAKUP
3697 + tristate "Braille 'n' Speak, bns"
3698 + ---help---
3699 +
3700 + This is the Speakup driver for the Braille 'n' Speak
3701 + synthesizer. You can say y to build it into the kernel,
3702 + or m to build it as a module. See the configuration
3703 + help on the Speakup choice above for more info.
3704 +
3705 +config SPEAKUP_DECTLK
3706 + depends on SPEAKUP
3707 + tristate "DECtalk Express, dectlk"
3708 + ---help---
3709 +
3710 + This is the Speakup driver for the DecTalk Express
3711 + synthesizer. You can say y to build it into the kernel,
3712 + or m to build it as a module. See the configuration
3713 + help on the Speakup choice above for more info.
3714 +
3715 +config SPEAKUP_DECEXT
3716 + depends on SPEAKUP
3717 + tristate "DECtalk External (old), decext"
3718 + ---help---
3719 +
3720 + This is the Speakup driver for the DecTalk External
3721 + (old) synthesizer. You can say y to build it into the
3722 + kernel, or m to build it as a module. See the
3723 + configuration help on the Speakup choice above for more
3724 + info.
3725 +
3726 +config SPEAKUP_DECPC
3727 + depends on SPEAKUP
3728 + tristate "DECtalk PC (big ISA card), decpc"
3729 + ---help---
3730 +
3731 + This is the Speakup driver for the DecTalk PC (full
3732 + length ISA) synthesizer. You can say m to build it as
3733 + a module. See the configuration help on the Speakup
3734 + choice above for more info.
3735 +
3736 + In order to use the DecTalk PC driver, you must download
3737 + the dec_pc.tgz file from linux-speakup.org. It is in
3738 + the pub/linux/goodies directory. The dec_pc.tgz file
3739 + contains the software which must be pre-loaded on to the
3740 + DecTalk PC board in order to use it with this driver.
3741 + This driver must be built as a module, and can not be
3742 + loaded until the file system is mounted and the DecTalk
3743 + PC software has been pre-loaded on to the board.
3744 +
3745 + See the README file in the dec_pc.tgz file for more
3746 + details.
3747 +
3748 +config SPEAKUP_DTLK
3749 + depends on SPEAKUP
3750 + tristate "DoubleTalk PC, dtlk"
3751 + ---help---
3752 +
3753 + This is the Speakup driver for the internal DoubleTalk
3754 + PC synthesizer. You can say y to build it into the
3755 + kernel, or m to build it as a module. See the
3756 + configuration help on the Speakup choice above for more
3757 + info.
3758 +
3759 +config SPEAKUP_KEYPC
3760 + depends on SPEAKUP
3761 + tristate "Keynote Gold PC, keypc"
3762 + ---help---
3763 +
3764 + This is the Speakup driver for the Keynote Gold
3765 + PC synthesizer. You can say y to build it into the
3766 + kernel, or m to build it as a module. See the
3767 + configuration help on the Speakup choice above for more
3768 + info.
3769 +
3770 +config SPEAKUP_LTLK
3771 + depends on SPEAKUP
3772 + tristate "DoubleTalk LT or LiteTalk, ltlk"
3773 +---help---
3774 +
3775 + This is the Speakup driver for the LiteTalk/DoubleTalk
3776 + LT synthesizer. You can say y to build it into the
3777 + kernel, or m to build it as a module. See the
3778 + configuration help on the Speakup choice above for more
3779 + info.
3780 +
3781 +config SPEAKUP_SFTSYN
3782 + depends on SPEAKUP
3783 + tristate "Software synthesizers, sftsyn"
3784 +---help---
3785 +
3786 + This is the software synthesizer device node. It will
3787 + register a device /dev/sftsyn which midware programs
3788 + and speech
3789 + daemons may open and read to provide kernel output to
3790 + software synths
3791 + such as festival, flite, tuxtalk and so forth. You
3792 + can select 'y' or
3793 + 'm' to have it built-in to the kernel or loaded as a module.
3794 +
3795 +config SPEAKUP_SPKOUT
3796 + depends on SPEAKUP
3797 + tristate "Speak Out, spkout"
3798 + ---help---
3799 +
3800 + This is the Speakup driver for the Speakout synthesizer.
3801 + You can say y to build it into the kernel, or m to
3802 + build it as a module. See the configuration help on the
3803 + Speakup choice above for more info.
3804 +
3805 +config SPEAKUP_TXPRT
3806 + depends on SPEAKUP
3807 + tristate "Transport, txprt"
3808 + ---help---
3809 +
3810 + This is the Speakup driver for the Transport
3811 + synthesizer. You can say y to build it into the kernel,
3812 + or m to build it as a module. See the configuration
3813 + help on the Speakup choice above for more info.
3814 +
3815 +if SPEAKUP != n
3816 + comment 'Enter the 3 to 6 character keyword from the list above, or none for no default synthesizer on boot up.'
3817 + depends on SPEAKUP
3818 +endif
3819 +
3820 +config SPEAKUP_DEFAULT
3821 + string "Choose Default synthesizer for Speakup"
3822 + default "none"
3823 +
3824 +endmenu
3825 diff -ruN linux-2.6.0.old/drivers/char/speakup/Makefile linux-2.6.0/drivers/char/speakup/Makefile
3826 --- linux-2.6.0.old/drivers/char/speakup/Makefile 1969-12-31 19:00:00.000000000 -0500
3827 +++ linux-2.6.0/drivers/char/speakup/Makefile 2003-12-28 20:50:09.067839824 -0500
3828 @@ -0,0 +1,62 @@
3829 +#
3830 +# Makefile for the speakup speech output system.
3831 +#
3832 +
3833 +V := $(shell awk '/UTS_RELEASE/ {print substr($$3,2,3)}' $(TOPDIR)/include/linux/version.h)
3834 +ifeq ($V,2.4)
3835 +# Note! Dependencies are done automagically by 'make dep', which also
3836 +# removes any old dependencies. DON'T put your own dependencies here
3837 +# unless it's something special (ie not a .c file).
3838 +#
3839 +# Note 2! The CFLAGS definitions are now inherited from the
3840 +# parent makes..
3841 +#
3842 +O_TARGET := spk.o
3843 +export-objs := speakup_drvcommon.o speakup.o
3844 +endif
3845 +obj-m = speakup_keyhelp.o
3846 +speakupmain-objs := speakup.o speakup_drvcommon.o
3847 +obj-$(CONFIG_SPEAKUP) += speakupmain.o
3848 +obj-$(CONFIG_SPEAKUP_ACNTPC) += speakup_acntpc.o
3849 +obj-$(CONFIG_SPEAKUP_ACNTSA) += speakup_acntsa.o
3850 +obj-$(CONFIG_SPEAKUP_APOLLO) += speakup_apollo.o
3851 +obj-$(CONFIG_SPEAKUP_AUDPTR) += speakup_audptr.o
3852 +obj-$(CONFIG_SPEAKUP_BNS) += speakup_bns.o
3853 +obj-$(CONFIG_SPEAKUP_DECEXT) += speakup_decext.o
3854 +obj-$(CONFIG_SPEAKUP_DECPC) += speakup_decpc.o
3855 +obj-$(CONFIG_SPEAKUP_DECTLK) += speakup_dectlk.o
3856 +obj-$(CONFIG_SPEAKUP_DTLK) += speakup_dtlk.o
3857 +obj-$(CONFIG_SPEAKUP_KEYPC) += speakup_keypc.o
3858 +obj-$(CONFIG_SPEAKUP_LTLK) += speakup_ltlk.o
3859 +obj-$(CONFIG_SPEAKUP_SFTSYN) += speakup_sftsyn.o
3860 +obj-$(CONFIG_SPEAKUP_SPKOUT) += speakup_spkout.o
3861 +obj-$(CONFIG_SPEAKUP_TXPRT) += speakup_txprt.o
3862 +
3863 +ifeq ($V,2.4)
3864 + include $(TOPDIR)/Rules.make
3865 +
3866 +speakupmap.h: speakupmap.map genmap
3867 + ./genmap speakupmap.map >$@
3868 +
3869 +genmap: genmap.c mapdata.h
3870 + cc -o genmap genmap.c
3871 +
3872 +mapdata.h: makemapdata.c keyinfo.h
3873 + cc -o makemapdata makemapdata.c
3874 + ./makemapdata >mapdata.h
3875 +
3876 +endif
3877 +speakupmain.o:speakup.o speakup_drvcommon.o
3878 + ld -r -o speakupmain.o speakup.o speakup_drvcommon.o
3879 +
3880 +$(obj)/speakupmap.h: $(src)/speakupmap.map $(src)/genmap
3881 + $(src)/genmap $(src)/speakupmap.map >$@
3882 +
3883 +$(obj)/mapdata.h: $(src)/keyinfo.h $(src)/makemapdata
3884 + $(src)/makemapdata >$@
3885 +
3886 +$(obj)/genmap: $(obj)/mapdata.h
3887 +
3888 +HOSTCFLAGS := -Iinclude -I/usr/include
3889 +host-progs := makemapdata genmap
3890 +
3891 diff -ruN linux-2.6.0.old/drivers/char/speakup/TODO linux-2.6.0/drivers/char/speakup/TODO
3892 --- linux-2.6.0.old/drivers/char/speakup/TODO 1969-12-31 19:00:00.000000000 -0500
3893 +++ linux-2.6.0/drivers/char/speakup/TODO 2003-12-28 20:50:09.067839824 -0500
3894 @@ -0,0 +1,66 @@
3895 +The format of this file is getting organized to help me keep track of
3896 +where we are going. I am organizing it into three sections.
3897 +Immediate things which need to be done I.E. code re-organization. New
3898 +features we are currently working on or at least in the near future.
3899 +Long term features which will move to the new features list as the new
3900 +features list empties.
3901 +
3902 +Immediate:
3903 +
3904 +Screen cursoring needs to become more reliable and consistant.
3905 +
3906 +New-Features:
3907 +
3908 +convert the individual synth drivers into modules (involves moving buffering
3909 + into speakup proper).
3910 +
3911 +synth_file fops need to be filled in and expanded such as some type of
3912 +ioctl function and a real synth_file_read() function.
3913 +
3914 +
3915 +Long-Term-Features:
3916 +
3917 +keyboard macros (ala ASAP/qedit)
3918 +
3919 +finding calling process, so per-program configurations can be loaded
3920 +
3921 +Check park status and store it before doing a console switch. (non-trivial)
3922 +
3923 +make numlock turn review pad to number pad.
3924 +
3925 +user defined scroll-back ala shift-pgup.
3926 +
3927 +insert as 'capslock-style'/'next-style' key -- have internalized speakup
3928 + variable, which tracks state of the insert key; each speakup bare-key
3929 + function checks the variable, and possibly calls the alternate
3930 + function and returns
3931 +
3932 +Expand phonetic spelling to toggle on and off and work with previous
3933 + and next and spell_word functions. Also shift pitch on phonetic words
3934 + for capitalized letters. [partially complete]
3935 +
3936 +Chuck wants a bleep if the shift key is hit and the capslock is on.
3937 +Here is his suggested test sequence:
3938 +1. check if the caps lock is set; if it is,
3939 +2. check if the char is alphabetic; if it is,
3940 +3. check if the shift key is pressed; if it is,
3941 +4. send a bell char to the console.
3942 +
3943 +Frank would like a fast way to go to the end of the word in addition
3944 +to moving to the beginning.
3945 +
3946 +I'd like a function to move the reading cursor to the last char on a
3947 +line in addition to the right edge of the screen.
3948 +
3949 +Gene thinks we should have a /proc function to store and show the rom
3950 +version of any synth currently operating.
3951 +
3952 +The items in each list have no connection with the order of
3953 +implementation. I just jotted them down as I thought of them.
3954 +
3955 +Bill Acker WB2FLW: When the final result is "none", then, no trace of
3956 +Speakup. and use default keymap otherwise business as usual plus use
3957 +"built-in" speakupmap.map
3958 +
3959 +Look at lilo routines which init the serial device and compare to speakup drivers.
3960 +
3961 diff -ruN linux-2.6.0.old/drivers/char/speakup/checkclean linux-2.6.0/drivers/char/speakup/checkclean
3962 --- linux-2.6.0.old/drivers/char/speakup/checkclean 1969-12-31 19:00:00.000000000 -0500
3963 +++ linux-2.6.0/drivers/char/speakup/checkclean 2003-12-28 20:50:09.067839824 -0500
3964 @@ -0,0 +1,13 @@
3965 +#!/bin/bash
3966 +
3967 +if [ "$1" == "" ]; then
3968 + echo "You forgot to include a path"
3969 + exit
3970 +fi
3971 +
3972 +cp -R /usr/src/linux/drivers/char/speakup $1/speakup
3973 +cd $1/speakup
3974 +
3975 +rm -rf checkin checkorig checkclean *.o *~ \
3976 + CVS diff-v22/CVS diff-v24/CVS cvsversion.h
3977 +
3978 diff -ruN linux-2.6.0.old/drivers/char/speakup/checkin linux-2.6.0/drivers/char/speakup/checkin
3979 --- linux-2.6.0.old/drivers/char/speakup/checkin 1969-12-31 19:00:00.000000000 -0500
3980 +++ linux-2.6.0/drivers/char/speakup/checkin 2003-12-28 20:50:09.067839824 -0500
3981 @@ -0,0 +1,75 @@
3982 +#!/bin/bash
3983 +
3984 +cd ../../..
3985 +ROOTDIR=`pwd`
3986 +VERSION=v`head -2 $ROOTDIR/Makefile | \
3987 + awk '{ printf "%s",$3 }'`
3988 +
3989 +DIR=$ROOTDIR/drivers/char/speakup
3990 +
3991 +echo "Checking in $VERSION"
3992 +
3993 +# check for CVSROOT stuff
3994 +if [ ! -d ${DIR}/CVS ] && [ "$CVSROOT" == "" ]; then
3995 + echo 'CVSROOT not set. Enter it below.'
3996 + read -p 'CVSROOT> ' CVSROOT
3997 + [ "$CVSROOT" == "" ] && exit
3998 + export CVSROOT
3999 + cvs login || exit
4000 +fi
4001 +
4002 +# do I have a new version to deal with?
4003 +CVS_ADD=n
4004 +if [ ! -d ${DIR}/diff-${VERSION}/CVS ]; then
4005 + CVS_ADD=y
4006 +fi
4007 +
4008 +# make patch files
4009 +echo -n 'Creating CVS files ['
4010 +for i in `cat ${DIR}/patchlist-${VERSION}`; do
4011 + patch=`echo $i | cut -f 1 -d ,`
4012 + filebase=`echo $i | cut -f 2 -d ,`
4013 +
4014 + mkdir -p ${DIR}/diff-${VERSION}
4015 + fname="${DIR}/diff-${VERSION}/${filebase//\//^}"
4016 +
4017 + if [ "$patch" == "0" ]; then
4018 + # Just copy it
4019 + if [ $fname.copy -ot $filebase ] || [ ! -e $fname.copy ]; then
4020 + echo -n c
4021 + cp $ROOTDIR/$filebase $fname.copy
4022 + else
4023 + echo -n .
4024 + fi
4025 + else
4026 + # Make a patch
4027 + if [ -e $ROOTDIR/$filebase.orig ]; then
4028 + if [ $fname.patch -ot $filebase ] || [ ! -e $fname.patch ] ; then
4029 + echo -n p
4030 + diff -urN $ROOTDIR/$filebase.orig $filebase > $fname.patch
4031 + else
4032 + echo -n .
4033 + fi
4034 + else
4035 + # can't patch w/o .orig
4036 + echo !
4037 + echo Error: $ROOTDIR/$filebase.orig doesn\'t exist!
4038 + exit
4039 + fi
4040 + fi
4041 +done
4042 +echo '] done.'
4043 +
4044 +[ "$1" == "-p" ] && exit
4045 +
4046 +cd ${DIR}
4047 +
4048 +echo 'Creating cvsversion.h'
4049 +echo '#define CVSVERSION " CVS:' `date` '"' > cvsversion.h
4050 +
4051 +echo 'Sending to CVS...'
4052 +if [ "$CVS_ADD" == "y" ]; then
4053 + cvs add diff-${VERSION} || exit
4054 + cvs add diff-${VERSION}/* || exit
4055 +fi
4056 +cvs -Q ci || exit
4057 diff -ruN linux-2.6.0.old/drivers/char/speakup/checkout linux-2.6.0/drivers/char/speakup/checkout
4058 --- linux-2.6.0.old/drivers/char/speakup/checkout 1969-12-31 19:00:00.000000000 -0500
4059 +++ linux-2.6.0/drivers/char/speakup/checkout 2003-12-28 20:50:09.067839824 -0500
4060 @@ -0,0 +1,83 @@
4061 +#!/bin/bash
4062 +
4063 +ROOTDIR=/usr/src/linux
4064 +if [ "$1" != "" ]; then
4065 + ROOTDIR="$1"
4066 +else
4067 + if [ -d kernel -a -d Documentation ]; then
4068 + ROOTDIR=`pwd`
4069 + fi
4070 +fi
4071 +
4072 +VERSION=v`head -2 $ROOTDIR/Makefile | \
4073 + awk '{ printf "%s",$3 }'`
4074 +
4075 +DIR=$ROOTDIR/drivers/char/speakup
4076 +
4077 +echo "Patching version $VERSION"
4078 +
4079 +if [ ! -d ${DIR}/CVS ] && [ "$CVSROOT" == "" ]; then
4080 + echo 'CVSROOT not set. Enter it below. Hit enter for anonymous.'
4081 + read -p 'CVSROOT> ' CVSROOT
4082 + [ "$CVSROOT" == "" ] &&
4083 + CVSROOT=':pserver:anonymous@bumpy.braille.uwo.ca:/usr/src/CVS'
4084 + export CVSROOT
4085 + cvs login || exit
4086 +fi
4087 +
4088 +if [ "$1" != "-p" ]; then
4089 + # get new version
4090 + mkdir -p ${DIR%/speakup}
4091 + cd ${DIR%/speakup}
4092 + if [ -d speakup ] && [ -d ${DIR}/CVS ]; then
4093 + cd speakup
4094 + cvs update -d -P || exit
4095 + else
4096 + rm -fr ${DIR}
4097 + cvs co -P speakup || exit
4098 + cd speakup
4099 + fi
4100 +fi
4101 +
4102 +# make .orig files
4103 +echo -n 'Creating .orig files ['
4104 +for i in `cat ${DIR}/patchlist-${VERSION}`; do
4105 + patch=`echo $i | cut -f 1 -d ,`
4106 + filebase=`echo $i | cut -f 2 -d ,`
4107 +
4108 + mkdir -p `dirname $ROOTDIR/$filebase`
4109 + if [ "$patch" == "1" ]; then
4110 + if [ ! -e $ROOTDIR/$filebase.orig ]; then
4111 + echo -n .
4112 + cp $ROOTDIR/$filebase $ROOTDIR/$filebase.orig
4113 + fi
4114 + fi
4115 +done
4116 +echo '] done.'
4117 +
4118 +# apply patches
4119 +echo -n 'Patching files ['
4120 +for i in ${DIR}/diff-${VERSION}/*.patch; do
4121 + # skip dirs
4122 + [ -d $i ] && continue
4123 + echo -n p
4124 + writeloc=${i##$DIR\/diff-${VERSION}\/}
4125 + writeloc=${writeloc%.patch}
4126 + writeloc=${writeloc//^/\/}
4127 + patch --silent -f -p0 -o $ROOTDIR/$writeloc $ROOTDIR/$writeloc.orig $i
4128 +done
4129 +echo '] done.'
4130 +
4131 +# copy files
4132 +echo -n 'Copying files ['
4133 +for i in ${DIR}/diff-${VERSION}/*.copy; do
4134 + # skip dirs
4135 + [ -d $i ] && continue
4136 + echo -n c
4137 + writeloc=${i##$DIR\/diff-${VERSION}\/}
4138 + writeloc=${writeloc%.copy}
4139 + writeloc=${writeloc//^/\/}
4140 + cp $i $ROOTDIR/$writeloc
4141 +done
4142 +echo '] done.'
4143 +
4144 diff -ruN linux-2.6.0.old/drivers/char/speakup/cvsversion.h linux-2.6.0/drivers/char/speakup/cvsversion.h
4145 --- linux-2.6.0.old/drivers/char/speakup/cvsversion.h 1969-12-31 19:00:00.000000000 -0500
4146 +++ linux-2.6.0/drivers/char/speakup/cvsversion.h 2003-12-28 20:50:09.067839824 -0500
4147 @@ -0,0 +1 @@
4148 +#define CVSVERSION " CVS: Wed Dec 10 11:51:47 EST 2003 "
4149 diff -ruN linux-2.6.0.old/drivers/char/speakup/dtload.c linux-2.6.0/drivers/char/speakup/dtload.c
4150 --- linux-2.6.0.old/drivers/char/speakup/dtload.c 1969-12-31 19:00:00.000000000 -0500
4151 +++ linux-2.6.0/drivers/char/speakup/dtload.c 2003-12-28 20:50:09.068839672 -0500
4152 @@ -0,0 +1,554 @@
4153 +/*
4154 + * This is the DECtalk PC firmware loader for the Linux kernel, version 1.0
4155 + *
4156 + * Original 386BSD source:
4157 + * Copyright ( c ) 1996 Brian Buhrow <buhrow@lothlorien.nfbcal.org>
4158 + *
4159 + * Adapted for Linux:
4160 + * Copyright ( c ) 1997 Nicolas Pitre <nico@cam.org>
4161 + *
4162 + * Adapted for speakup:
4163 + * Copyright ( c ) 2003 David Borowski <david575@golden.net>
4164 + *
4165 + * All rights reserved.
4166 + *
4167 + * This program is free software; you can redistribute it and/or modify
4168 + * it under the terms of the GNU General Public License as published by
4169 + * the Free Software Foundation; either version 2 of the License, or
4170 + * ( at your option ) any later version.
4171 + *
4172 + * This program is distributed in the hope that it will be useful,
4173 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4174 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4175 + * GNU General Public License for more details.
4176 + *
4177 + * You should have received a copy of the GNU General Public License
4178 + * along with this program; if not, write to the Free Software
4179 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
4180 + *
4181 + */
4182 +
4183 +#include <stdio.h>
4184 +#include <stdlib.h>
4185 +#include <unistd.h>
4186 +#include <string.h>
4187 +#include <sys/types.h>
4188 +#include <sys/stat.h>
4189 +#include <fcntl.h>
4190 +#include <malloc.h>
4191 +#include <sys/errno.h>
4192 +#include <asm/io.h>
4193 +#include "dtload.h"
4194 +#include "dtpc_reg.h"
4195 +
4196 +#define dt_delay(x) usleep(x)
4197 +int verbose = 0, intest = 0,infd = -1;
4198 +int image_len, total_paras;
4199 +int dt_stat, dma_state = 0, has_kernel = 0;
4200 +struct dos_reloc fixups[512];
4201 +char *read_buff = NULL;
4202 +struct dos_exe_header header;
4203 +u_short iobase = 0x350;
4204 +
4205 +static inline int dt_getstatus( )
4206 +{
4207 + dt_stat = inb_p( iobase )|(inb_p( iobase+1 )<<8);
4208 + return dt_stat;
4209 +}
4210 +
4211 +static void dt_sendcmd( u_int cmd )
4212 +{
4213 + outb_p( cmd & 0xFF, iobase );
4214 + outb_p( (cmd>>8) & 0xFF, iobase+1 );
4215 +}
4216 +
4217 +static int dt_waitbit( int bit )
4218 +{
4219 + int timeout = 100;
4220 + while ( --timeout > 0 ) {
4221 + if( (dt_getstatus( ) & bit ) == bit ) return 1;
4222 + usleep( 1000 );
4223 + }
4224 + return 0;
4225 +}
4226 +
4227 +static int dt_sendcmd_wait( u_int cmd, int bit )
4228 +{
4229 + int timeout = 1000;
4230 + outb_p( cmd & 0xFF, iobase );
4231 + outb_p( (cmd>>8) & 0xFF, iobase+1 );
4232 + while ( --timeout > 0 ) {
4233 + if( (dt_getstatus( ) & bit ) == bit ) return 1;
4234 + usleep( 1000 );
4235 + }
4236 + return 0;
4237 +}
4238 +
4239 +static int dt_waitmode( int pattern )
4240 +{
4241 + int timeout = 1000;
4242 + while ( --timeout > 0 ) {
4243 + if( dt_getstatus( ) == pattern ) return 1;
4244 + usleep( 1000 );
4245 + }
4246 + fprintf( stderr, "waitmode p=%x s = %x\n", pattern, dt_stat );
4247 + return 0;
4248 +}
4249 +
4250 +static int dt_wait_dma( )
4251 +{
4252 + int timeout = 1000, state = dma_state;
4253 + if( !has_kernel ){
4254 + dt_delay( 500 );
4255 + return( dt_waitbit( STAT_dma_ready ) );
4256 + }
4257 + if( ! dt_waitbit( STAT_dma_ready ) ) return 0;
4258 + while ( --timeout > 0 ) {
4259 + if( (dt_getstatus()&STAT_dma_state) == state ) return 1;
4260 + usleep( 1000 );
4261 + }
4262 + dma_state = dt_getstatus( ) & STAT_dma_state;
4263 + return 1;
4264 +}
4265 +
4266 +dt_ctrl( u_int cmd )
4267 +{
4268 + while ( ! dt_waitbit( STAT_cmd_ready ) ) dt_delay( 100 );
4269 + outb_p( 0, iobase+2 );
4270 + outb_p( 0, iobase+3 );
4271 + dt_getstatus( );
4272 + dt_sendcmd( CMD_control|cmd );
4273 + outb_p( 0, iobase+6 );
4274 + dt_delay( 100 );
4275 + dt_sendcmd( CMD_null );
4276 + while ( ! dt_waitbit( STAT_cmd_ready ) ) dt_delay( 100 );
4277 +}
4278 +
4279 +int dt_flush( void )
4280 +{
4281 + dt_ctrl( CTRL_flush );
4282 + dt_waitbit( STAT_dma_ready );
4283 + outb_p( DMA_sync, iobase+4 );
4284 + outb_p( 0, iobase+4 );
4285 + dma_state ^= STAT_dma_state;
4286 + while( dt_getstatus( ) & STAT_flushing ) dt_delay( 100 );
4287 + return 0;
4288 +}
4289 +
4290 +static int dt_sendbuff( char *src, int len )
4291 +{
4292 + while( len-- ){
4293 + if( ! dt_wait_dma( ) ) return -1;
4294 + if( ! (dt_getstatus( ) & STAT_rr_char) ) break;
4295 + outb_p( DMA_single_in, iobase+4 );
4296 + outb_p( *src++, iobase+4 );
4297 + dma_state ^= STAT_dma_state;
4298 + }
4299 + return 0;
4300 +}
4301 +
4302 +unsigned long dt_allocmem( unsigned long paras )
4303 +{
4304 + unsigned long addr;
4305 + if( ! dt_wait_dma( ) ) return 0;
4306 + outb_p( DMA_control, iobase+4 );
4307 + outb_p( DT_MEM_ALLOC, iobase+4 );
4308 + dma_state ^= STAT_dma_state;
4309 + if( ! dt_wait_dma( ) ) return 0;
4310 + outb_p( paras & 0xFF, iobase+4 );
4311 + outb_p( (paras>>8) & 0xFF, iobase+4 );
4312 + dma_state ^= STAT_dma_state;
4313 + if( ! dt_wait_dma( ) ) return 0;
4314 + addr = inb_p( iobase+4 );
4315 + addr |= (inb_p( iobase+4 )<<8);
4316 + addr += (inb_p( iobase+4 )<<4);
4317 + addr += (inb_p( iobase+4 )<<12);
4318 + dma_state ^= STAT_dma_state;
4319 + return addr;
4320 +}
4321 +
4322 +static int testkernel( void )
4323 +{
4324 + dt_sendcmd( CMD_sync );
4325 + if( ! dt_waitbit( STAT_cmd_ready ) ) return -10;
4326 + has_kernel = ( dt_stat&0x8000 ) ? 1 : 0;
4327 + if ( verbose ) printf( "testkernel got %x\n", dt_stat );
4328 + if ( has_kernel ) return 0;
4329 + dt_delay( 100 );
4330 + return 1;
4331 +}
4332 +
4333 +static int dt_loadmem( int addr, int len, char *src )
4334 +{
4335 + char c;
4336 + int l;
4337 + if ( verbose ) printf( "dt_loadmem: addr = %08X size = %d\n", addr, len );
4338 + do {
4339 + l = len;
4340 + if ( l >= 0xc000 ) l = 0xc000;
4341 + len -= l;
4342 + if( ! dt_wait_dma( ) ) return -1;
4343 + outb_p( DMA_control, iobase+4 );
4344 + outb_p( DT_LOAD_MEM, iobase+4 );
4345 + dma_state ^= STAT_dma_state;
4346 + if( ! dt_wait_dma( ) ) return -2;
4347 + outb_p( addr & 0xFF, iobase+4 );
4348 + outb_p( (addr>>8) & 0xFF, iobase+4 );
4349 + outb_p( (addr>>16) & 0xFF, iobase+4 );
4350 + outb_p( (addr>>24) & 0xFF, iobase+4 );
4351 + outb_p( l & 0xFF, iobase+4 );
4352 + outb_p( (l>>8) & 0xFF, iobase+4 );
4353 + dma_state ^= STAT_dma_state;
4354 + if( ! dt_wait_dma( ) ) return -3;
4355 + addr += l;
4356 + while( l-- ){
4357 + c = *src++;
4358 + outb_p( c, iobase+4 );
4359 + }
4360 + dma_state ^= STAT_dma_state;
4361 + } while ( len > 0 );
4362 + return 0;
4363 +}
4364 +
4365 +unsigned int loadfile ( char *filename )
4366 +{
4367 + int i, header_size;
4368 + unsigned int total_paras;
4369 + long fix;
4370 + infd = open ( filename, O_RDONLY );
4371 + if ( infd == -1 ) {
4372 + perror ( "Opening file: " );
4373 + return 0;
4374 + }
4375 + read ( infd, &header, sizeof ( struct dos_exe_header ) );
4376 + if ( header.id != 0x5a4d ) {
4377 + fprintf ( stderr, "Invalid header file format\n" );
4378 + fprintf ( stderr, "Want 0x5a4d, got 0x%x\n", header.id );
4379 + return 0;
4380 + }
4381 + if ( header.relen > MAX_FIXUPS ) {
4382 + fprintf ( stderr, "Too many fixups\n" );
4383 + return 0;
4384 + }
4385 + lseek ( infd, ( long ) header.reloc, SEEK_SET );
4386 + read ( infd, fixups, sizeof ( struct dos_reloc ) * header.relen );
4387 + header_size = header.hsize * 16;
4388 + lseek ( infd, ( long )header_size, SEEK_SET );
4389 + image_len = ( ( header.pages-1 )*512 ) + ( header.rem- header_size );
4390 + total_paras = ( image_len >> 4 ) + header.hmin + 16;
4391 + read ( infd, read_buff, image_len );
4392 + close( infd );
4393 + return total_paras;
4394 +}
4395 +
4396 +static int loadkernel( char *filename )
4397 +{
4398 + int segfix = 0x40, fix, i;
4399 + int ipval, csval;
4400 + if ( has_kernel ) return 0;
4401 + if ( !loadfile( filename ) ) return -1;
4402 + header.csval += segfix;
4403 + header.ssval += segfix;
4404 + if ( verbose ) {
4405 + printf ( "Loading kernel of %ld bytes ( %d relocs )\n",
4406 + image_len, header.relen );
4407 + printf ( " cs:ip == %04x:%04x ss:sp == %04x:%04x\n",
4408 + header.csval, header.ipval, header.ssval, header.spval );
4409 + }
4410 + for ( i = 0; i < header.relen; i++ ) {
4411 + fix = ( fixups[i].segment << 4 ) + fixups[i].offset;
4412 + ( *( unsigned int * ) &read_buff[fix] ) += segfix;
4413 + }
4414 + csval = header.csval;
4415 + ipval = header.ipval;
4416 + dt_sendcmd_wait( MODULE_reset, MODULE_init );
4417 + dt_sendcmd( CMD_reset );
4418 + if( dt_getstatus( ) == MODULE_self_test ){
4419 + if( ! dt_waitmode( MODULE_init ) ) return -1;
4420 + }
4421 + if ( !dt_sendcmd_wait( CMD_reset, MODE_status ) ) return -2;
4422 + if ( !dt_sendcmd_wait( CMD_sync, MODE_error ) ) return -3;
4423 + if ( !dt_sendcmd_wait( CMD_reset, MODE_status ) ) return -4;
4424 + if ( verbose ) printf( "card is ready\n" );
4425 + dt_sendcmd( CMD_dma );
4426 + if( ! dt_waitbit( STAT_dma_ready ) ) return -5;
4427 + if( ( i = dt_loadmem( 0x00000400, image_len, read_buff ) ) ) {
4428 + fprintf( stderr, "kernel load failed, status %d\n", i );
4429 + return -6;
4430 + }
4431 + dt_delay( 100 );
4432 + /* the kernel is loaded, start it */
4433 + if ( !dt_sendcmd_wait( CMD_reset, MODE_status ) ) return -7;
4434 + dt_sendcmd( CMD_dma+1 ); /**xxx**/
4435 + dt_delay( 100 );
4436 + if( ! dt_waitbit( STAT_dma_ready ) ) return-8;
4437 + outb_p( DMA_control, iobase+4 );
4438 + outb_p( DT_START_TASK, iobase+4 );
4439 + dt_delay( 100 );
4440 + outb_p( ipval & 0xFF, iobase+4 );
4441 + outb_p( (ipval>>8) & 0xFF, iobase+4 );
4442 + outb_p( csval & 0xFF, iobase+4 );
4443 + outb_p( (csval>>8) & 0xFF, iobase+4 );
4444 + if( ! dt_waitmode( 0xc001 ) ) return -9;
4445 + if ( verbose ) {
4446 + printf( "done loading kernel\n" );
4447 + }
4448 + return testkernel( );
4449 +}
4450 +
4451 +int loaddict ( char *filename, char *name, int type )
4452 +{
4453 + int i, read_index, read_size, act_size;
4454 + unsigned short *index_fix, seg_fix;
4455 + unsigned long entries, index, dic_bytes, dic_addr;
4456 + unsigned int total_paras;
4457 + unsigned long param, l;
4458 + infd = open ( filename, O_RDONLY );
4459 + if ( infd == -1 ) {
4460 + perror ( filename );
4461 + return -1;
4462 + }
4463 +/* read in the entry count and the actual entry size excluding the
4464 + * index table ( which is entries * 4 ) ... */
4465 + read ( infd, &entries, 4 );
4466 + read ( infd, &dic_bytes, 4 );
4467 + if ( verbose )
4468 + printf ( "Loading %s dictionary of %lu entries, %lu bytes.\n",
4469 + name, entries, dic_bytes );
4470 + total_paras = ( ( ( entries * 4 ) + dic_bytes ) >> 4 ) + 2;
4471 + if ( verbose )
4472 + printf ( "Allocating %d paragraphs of free ram ...\n", total_paras );
4473 + l = dt_allocmem( total_paras );
4474 + if ( l == 0 ) {
4475 + perror ( "Error requesting memory from speech device" );
4476 + return -1;
4477 + }
4478 + seg_fix = ( l >> 4 ) & 0xffff;
4479 + dic_addr = l;
4480 + index = entries;
4481 + index_fix = ( unsigned short * ) &read_buff[0];
4482 + if ( verbose )
4483 + printf ( "Index table starts at %lx\n", l );
4484 + read_index = index*4;
4485 + act_size = read ( infd, read_buff, read_index );
4486 + if ( act_size != read_index ) {
4487 + fprintf ( stderr, "\nError reading indexes\n" );
4488 + fprintf ( stderr, " exp : %d act : %d\n", read_index * 4, act_size );
4489 + return -1;
4490 + }
4491 + for ( i = 1; i < index * 2; i += 2 )
4492 + index_fix[i] += seg_fix;
4493 + if( ( i = dt_loadmem( l, read_index, read_buff ) ) ) {
4494 + fprintf ( stderr, "\nError loading indexes at 0x%lX: i %d\n",
4495 + l, i );
4496 + return -1;
4497 + }
4498 + l += read_index;
4499 +/* now, load up the dictionary bytes ... */
4500 + if ( verbose )
4501 + printf ( "Dictionary text starts at %lx\n", l );
4502 + read_size = dic_bytes;
4503 + if ( ( act_size = read ( infd, read_buff, read_size ) ) != read_size ) {
4504 + fprintf ( stderr, "\nError reading dictionary text!\n" );
4505 + fprintf ( stderr, "asked : %d actual : %d\n", act_size, read_size );
4506 + return -1;
4507 + }
4508 + if( ( i = dt_loadmem( l, read_size, read_buff ) ) ) {
4509 + fprintf ( stderr, "\nError loading dictionary at 0x%lX: status %d\n",
4510 + l, i );
4511 + return -1;
4512 + }
4513 + if( ! dt_wait_dma( ) ) return -1;
4514 + outb_p( DMA_control, iobase+4 );
4515 + outb_p( DT_SET_DIC, iobase+4 );
4516 + dma_state ^= STAT_dma_state;
4517 + if( ! dt_wait_dma( ) ) return -1;
4518 + l = dic_addr;
4519 + l = ((l << 12) & 0xFFFF0000) + (l & 0x0000000F);
4520 + outb_p( l & 0xFF, iobase+4 );
4521 + outb_p( (l>>8) & 0xFF, iobase+4 );
4522 + outb_p( (l>>16) & 0xFF, iobase+4 );
4523 + outb_p( (l>>24) & 0xFF, iobase+4 );
4524 + l = entries;
4525 + outb_p( l & 0xFF, iobase+4 );
4526 + outb_p( (l>>8) & 0xFF, iobase+4 );
4527 + outb_p( (l>>16) & 0xFF, iobase+4 );
4528 + outb_p( (l>>24) & 0xFF, iobase+4 );
4529 + l = type;
4530 + outb_p( l & 0xFF, iobase+4 );
4531 + outb_p( (l>>8) & 0xFF, iobase+4 );
4532 + dma_state ^= STAT_dma_state;
4533 + close ( infd );
4534 + if ( verbose ) printf( "dictionary load complete\n" );
4535 + return 0;
4536 +}
4537 +
4538 +int loadexe ( char *filename )
4539 +{
4540 + unsigned int load_addr = 0, seg_fix;
4541 + int i, read_size;
4542 + int ipval, csval;
4543 + long fix;
4544 + unsigned long total_paras;
4545 + total_paras = loadfile ( filename );
4546 + if ( total_paras == 0 ) return -1;
4547 + load_addr = dt_allocmem( total_paras );
4548 + if ( load_addr == 0 ) {
4549 + fprintf ( stderr, "Error allocating memory on card: " );
4550 + return -1;
4551 + }
4552 + seg_fix = ( load_addr >> 4 ) & 0xffff;
4553 + if ( verbose ) {
4554 + printf ( "Loading %s %ld bytes ( %d relocs )\n",
4555 + filename, image_len, header.relen );
4556 + printf ( "Allocating %ld bytes of free ram at %05x\n",
4557 + ( long ) header.hmin * 16, load_addr );
4558 + printf ( "Total memory taken is %ld bytes\n", ( long ) total_paras * 16 );
4559 + printf ( " cs:ip == %04x:%04x ss:sp == %04x:%04x\n",
4560 + header.csval + seg_fix, header.ipval, header.ssval + seg_fix, header.spval );
4561 + }
4562 + for ( i = 0; i < header.relen; i++ ) {
4563 + fix = ( ( long ) fixups[i].segment << 4 ) + ( long ) fixups[i].offset;
4564 + ( *( unsigned int * ) &read_buff[fix] ) += seg_fix;
4565 + }
4566 + if( ( i = dt_loadmem( load_addr, image_len, read_buff ) ) ) {
4567 + fprintf ( stderr, "Error loading speech device at 0x%lX: status %d\n",
4568 + load_addr, i );
4569 + return -1;
4570 + }
4571 + csval = header.csval + seg_fix;
4572 + ipval = header.ipval;
4573 + if( ! dt_wait_dma( ) ) return -1;
4574 + outb_p( DMA_control, iobase+4 );
4575 + outb_p( DT_START_TASK, iobase+4 );
4576 + dma_state ^= STAT_dma_state;
4577 + if( ! dt_wait_dma( ) ) return -1;
4578 + outb_p( ipval & 0xFF, iobase+4 );
4579 + outb_p( (ipval>>8) & 0xFF, iobase+4 );
4580 + outb_p( csval & 0xFF, iobase+4 );
4581 + outb_p( (csval>>8) & 0xFF, iobase+4 );
4582 + dma_state ^= STAT_dma_state;
4583 + return 0;
4584 +}
4585 +
4586 +void release_io( void )
4587 +{
4588 + ioperm( (long)iobase, 8, 0 );
4589 + ioperm( (long)0x0080, 1, 0 );
4590 + if ( read_buff ) free( read_buff );
4591 +}
4592 +
4593 +parseparm( char *parm, char *value )
4594 +{
4595 + char *cp = parm+strlen( parm );
4596 + while ( --cp > parm ) if ( *cp > ' ' ) break;
4597 + cp[1] = '\0';
4598 + if ( !strcmp( parm, "io" ) ) {
4599 + long io = strtol( value, 0, 0 );
4600 + if ( io >= 0x100 && io <= 0x350 ) {
4601 + iobase = (u_short)io;
4602 + return;
4603 + }
4604 + fprintf( stderr, "invalid io value %s\n", value );
4605 + exit( 1 );
4606 + } else if ( !strcmp( parm,"verbose" ) ) {
4607 + verbose = atoi( value );
4608 + }
4609 +}
4610 +
4611 +do_test( void )
4612 +{
4613 + char buffer[512];
4614 + int len;
4615 + dma_state = dt_getstatus( ) & STAT_dma_state;
4616 + while ( fgets( buffer, 510, stdin ) ) {
4617 + len = strlen( buffer );
4618 + if ( len == 1 ) dt_flush( );
4619 + else {
4620 + if ( buffer[len-1] == '\n' ) buffer[len-1] = '\013';
4621 + dt_sendbuff( buffer, len );
4622 + }
4623 + }
4624 + *buffer = '\013';
4625 + dt_sendbuff( buffer, 1 );
4626 +}
4627 +
4628 +int main ( int argc, char **argv )
4629 +{
4630 + char name[80], *cp;
4631 + char *dirname = 0, *confname = "dec_pc.conf";
4632 + char *init_msg = "[:ra 360] dec pc initialized\011";
4633 + FILE *confile;
4634 + struct stat statbuf;
4635 + int maxsize = 0, status = 0;
4636 + while ( --argc > 0 ) {
4637 + argv++;
4638 + if ( !strcmp( *argv, "-v" ) ) verbose = 1;
4639 + else if ( !strcmp( *argv, "-t" ) ) intest = 1;
4640 + else dirname = *argv;
4641 + }
4642 + if ( !dirname ) dirname = "/usr/local/lib/dec_pc";
4643 + if ( chdir( dirname ) != 0 ) {
4644 + fprintf( stderr, "cannot chdir to %s\n", dirname );
4645 + exit( 1 );
4646 + }
4647 + if ( !( confile = fopen( confname, "r" ) ) ) {
4648 + fprintf( stderr, "could not open %s", confname );
4649 + exit( 1 );
4650 + }
4651 + while ( fgets( name, 80, confile ) ) {
4652 + cp = strchr( name, '\n' );
4653 + if ( cp ) *cp = '\0';
4654 + if ( ( cp = strchr( name, '=' ) ) ) {
4655 + *cp++ = '\0';
4656 + parseparm( name, cp );
4657 + continue;
4658 + }
4659 + if ( stat( name, &statbuf ) != 0 ) {
4660 + fprintf( stderr, "cannot stat %s\n", name );
4661 + exit( 1 );
4662 + }
4663 + if ( statbuf.st_size > maxsize ) maxsize = statbuf.st_size;
4664 + }
4665 + rewind( confile );
4666 + if ( ioperm( (long)0x0080, 1, 1 ) || ioperm( (long)iobase, 8, 1 ) ) {
4667 + fprintf( stderr, "could not get ioperm\n" );
4668 + exit( 1 );
4669 + }
4670 + atexit( release_io );
4671 + if ( testkernel( ) == 0 ) {
4672 + if ( intest ) do_test( );
4673 + else fprintf( stderr, "kernel already loaded\n" );
4674 + exit( 0 );
4675 + }
4676 + read_buff = malloc( maxsize );
4677 + if ( !read_buff ) {
4678 + fprintf( stderr, "cannot malloc %d bytes\n", maxsize );
4679 + exit( 1 );
4680 + }
4681 + while ( fgets( name, 80, confile ) && !status ) {
4682 + cp = strchr( name, '\n' );
4683 + if ( cp ) *cp = '\0';
4684 + if ( strchr( name, '=' ) ) continue; /* a parameter */
4685 + if ( !( cp = strchr( name, '.' ) ) ) continue;
4686 + cp++;
4687 + if ( !strcmp ( cp, "dic" ) ) {
4688 + status = loaddict ( name, "primary", PRIMARY_DIC );
4689 + } else if ( !strcmp ( cp, "dtu" ) ) {
4690 + status = loaddict ( name, "user", USER_DIC );
4691 + } else if ( !strcmp ( cp, "dta" ) ) {
4692 + status = loaddict ( name, "abbreviation file", ABBREV_DIC );
4693 + } else if ( !strcmp ( cp, "exe" ) ) {
4694 + status = loadexe ( name );
4695 + } else if ( !strcmp ( cp, "sys" ) ) {
4696 + status = loadkernel ( name );
4697 + }
4698 + }
4699 + if ( status ) fprintf( stderr, "status %d\n", status );
4700 + fclose( confile );
4701 + if ( status ) exit( status );
4702 + dt_sendbuff( init_msg, strlen( init_msg ) );
4703 + sleep( 1 );
4704 + if ( intest ) do_test( );
4705 + exit( 0 );
4706 +}
4707 diff -ruN linux-2.6.0.old/drivers/char/speakup/dtload.h linux-2.6.0/drivers/char/speakup/dtload.h
4708 --- linux-2.6.0.old/drivers/char/speakup/dtload.h 1969-12-31 19:00:00.000000000 -0500
4709 +++ linux-2.6.0/drivers/char/speakup/dtload.h 2003-12-28 20:50:09.068839672 -0500
4710 @@ -0,0 +1,57 @@
4711 +/*
4712 + * This is the DECtalk PC firmware loader for the Linux kernel, version 1.0
4713 + *
4714 + * Original 386BSD source:
4715 + * Copyright (c) 1996 Brian Buhrow <buhrow@lothlorien.nfbcal.org>
4716 + *
4717 + * Adapted for Linux:
4718 + * Copyright (c) 1997 Nicolas Pitre <nico@cam.org>
4719 + *
4720 + * Adapted for speakup:
4721 + * Copyright (c) 2003 David Borowski <david575@golden.net>
4722 + *
4723 + * All rights reserved.
4724 + *
4725 + * This program is free software; you can redistribute it and/or modify
4726 + * it under the terms of the GNU General Public License as published by
4727 + * the Free Software Foundation; either version 2 of the License, or
4728 + * (at your option) any later version.
4729 + *
4730 + * This program is distributed in the hope that it will be useful,
4731 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4732 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4733 + * GNU General Public License for more details.
4734 + *
4735 + * You should have received a copy of the GNU General Public License
4736 + * along with this program; if not, write to the Free Software
4737 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
4738 + *
4739 + */
4740 +
4741 +#define MAX_FIXUPS 512 /* maximum fixups per exe */
4742 +/*
4743 + * msdos .exe files will look like ...
4744 + */
4745 +
4746 +struct dos_exe_header {
4747 + unsigned short id; /* Linker's signature, must be 0x5a4d */
4748 + unsigned short rem; /* length of image mod 512 */
4749 + unsigned short pages; /* length of image in pages of 512 bytes */
4750 + unsigned short relen; /* number of relocation items */
4751 + unsigned short hsize; /* header size in paragraphs of 16 bytes */
4752 + unsigned short hmin; /* min # of paragraphs above prog end */
4753 + unsigned short hmax;
4754 + unsigned short ssval;
4755 + unsigned short spval; /* to be loaded in sp */
4756 + unsigned short checksum;
4757 + unsigned short ipval; /* to be loaded in ip */
4758 + unsigned short csval; /* segment offset to code */
4759 + unsigned short reloc; /* location of relocation items */
4760 + unsigned short ovrlay; /* overlay number */
4761 +};
4762 +
4763 +/* a dos relocation element looks like */
4764 +
4765 +struct dos_reloc {
4766 + short int offset, segment;
4767 +};
4768 diff -ruN linux-2.6.0.old/drivers/char/speakup/dtpc_reg.h linux-2.6.0/drivers/char/speakup/dtpc_reg.h
4769 --- linux-2.6.0.old/drivers/char/speakup/dtpc_reg.h 1969-12-31 19:00:00.000000000 -0500
4770 +++ linux-2.6.0/drivers/char/speakup/dtpc_reg.h 2003-12-28 20:50:09.068839672 -0500
4771 @@ -0,0 +1,132 @@
4772 +/*
4773 + * This is the DECtalk PC register constants (from DEC's DOS driver)
4774 + *
4775 + * Original code:
4776 + * Copyright (c) by Digital Equipment Corp.
4777 + *
4778 + * 386BSD DECtalk PC driver:
4779 + * Copyright (c) 1996 Brian Buhrow <buhrow@lothlorien.nfbcal.org>
4780 + *
4781 + * Linux DECtalk PC driver:
4782 + * Copyright (c) 1997 Nicolas Pitre <nico@cam.org>
4783 + *
4784 + * speakup DECtalk PC driver:
4785 + * Copyright (c) 2003 David Borowski <david575@golden.net>
4786 + *
4787 + * All rights reserved.
4788 + *
4789 + * This program is free software; you can redistribute it and/or modify
4790 + * it under the terms of the GNU General Public License as published by
4791 + * the Free Software Foundation; either version 2 of the License, or
4792 + * (at your option) any later version.
4793 + *
4794 + * This program is distributed in the hope that it will be useful,
4795 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
4796 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4797 + * GNU General Public License for more details.
4798 + *
4799 + * You should have received a copy of the GNU General Public License
4800 + * along with this program; if not, write to the Free Software
4801 + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
4802 + *
4803 + */
4804 +
4805 +/*
4806 + * port interface defs ... used by dtpc.c
4807 + */
4808 +
4809 +#define MODULE_init 0x0dec /* module in boot code */
4810 +#define MODULE_self_test 0x8800 /* module in self-test */
4811 +#define MODULE_reset 0xffff /* reinit the whole module */
4812 +
4813 +#define MODE_mask 0xf000 /* mode bits in high nibble */
4814 +#define MODE_null 0x0000
4815 +#define MODE_test 0x2000 /* in testing mode */
4816 +#define MODE_status 0x8000
4817 +#define STAT_int 0x0001 /* running in interrupt mode */
4818 +#define STAT_tr_char 0x0002 /* character data to transmit */
4819 +#define STAT_rr_char 0x0004 /* ready to receive char data */
4820 +#define STAT_cmd_ready 0x0008 /* ready to accept commands */
4821 +#define STAT_dma_ready 0x0010 /* dma command ready */
4822 +#define STAT_digitized 0x0020 /* spc in digitized mode */
4823 +#define STAT_new_index 0x0040 /* new last index ready */
4824 +#define STAT_new_status 0x0080 /* new status posted */
4825 +#define STAT_dma_state 0x0100 /* dma state toggle */
4826 +#define STAT_index_valid 0x0200 /* indexs are valid */
4827 +#define STAT_flushing 0x0400 /* flush in progress */
4828 +#define STAT_self_test 0x0800 /* module in self test */
4829 +#define MODE_ready 0xc000 /* module ready for next phase */
4830 +#define READY_boot 0x0000
4831 +#define READY_kernel 0x0001
4832 +#define MODE_error 0xf000
4833 +
4834 +#define CMD_mask 0xf000 /* mask for command nibble */
4835 +#define CMD_null 0x0000 /* post status */
4836 +#define CMD_control 0x1000 /* hard control command */
4837 +#define CTRL_mask 0x0F00 /* mask off control nibble */
4838 +#define CTRL_data 0x00FF /* madk to get data byte */
4839 +#define CTRL_null 0x0000 /* null control */
4840 +#define CTRL_vol_up 0x0100 /* increase volume */
4841 +#define CTRL_vol_down 0x0200 /* decrease volume */
4842 +#define CTRL_vol_set 0x0300 /* set volume */
4843 +#define CTRL_pause 0x0400 /* pause spc */
4844 +#define CTRL_resume 0x0500 /* resume spc clock */
4845 +#define CTRL_resume_spc 0x0001 /* resume spc soft pause */
4846 +#define CTRL_flush 0x0600 /* flush all buffers */
4847 +#define CTRL_int_enable 0x0700 /* enable status change ints */
4848 +#define CTRL_buff_free 0x0800 /* buffer remain count */
4849 +#define CTRL_buff_used 0x0900 /* buffer in use */
4850 +#define CTRL_speech 0x0a00 /* immediate speech change */
4851 +#define CTRL_SP_voice 0x0001 /* voice change */
4852 +#define CTRL_SP_rate 0x0002 /* rate change */
4853 +#define CTRL_SP_comma 0x0003 /* comma pause change */
4854 +#define CTRL_SP_period 0x0004 /* period pause change */
4855 +#define CTRL_SP_rate_delta 0x0005 /* delta rate change */
4856 +#define CTRL_SP_get_param 0x0006 /* return the desired parameter */
4857 +#define CTRL_last_index 0x0b00 /* get last index spoken */
4858 +#define CTRL_io_priority 0x0c00 /* change i/o priority */
4859 +#define CTRL_free_mem 0x0d00 /* get free paragraphs on module */
4860 +#define CTRL_get_lang 0x0e00 /* return bit mask of loaded languages */
4861 +#define CMD_test 0x2000 /* self-test request */
4862 +#define TEST_mask 0x0F00 /* isolate test field */
4863 +#define TEST_null 0x0000 /* no test requested */
4864 +#define TEST_isa_int 0x0100 /* assert isa irq */
4865 +#define TEST_echo 0x0200 /* make data in == data out */
4866 +#define TEST_seg 0x0300 /* set peek/poke segment */
4867 +#define TEST_off 0x0400 /* set peek/poke offset */
4868 +#define TEST_peek 0x0500 /* data out == *peek */
4869 +#define TEST_poke 0x0600 /* *peek == data in */
4870 +#define TEST_sub_code 0x00FF /* user defined test sub codes */
4871 +#define CMD_id 0x3000 /* return software id */
4872 +#define ID_null 0x0000 /* null id */
4873 +#define ID_kernel 0x0100 /* kernel code executing */
4874 +#define ID_boot 0x0200 /* boot code executing */
4875 +#define CMD_dma 0x4000 /* force a dma start */
4876 +#define CMD_reset 0x5000 /* reset module status */
4877 +#define CMD_sync 0x6000 /* kernel sync command */
4878 +#define CMD_char_in 0x7000 /* single character send */
4879 +#define CMD_char_out 0x8000 /* single character get */
4880 +#define CHAR_count_1 0x0100 /* one char in cmd_low */
4881 +#define CHAR_count_2 0x0200 /* the second in data_low */
4882 +#define CHAR_count_3 0x0300 /* the third in data_high */
4883 +#define CMD_spc_mode 0x9000 /* change spc mode */
4884 +#define CMD_spc_to_text 0x0100 /* set to text mode */
4885 +#define CMD_spc_to_digit 0x0200 /* set to digital mode */
4886 +#define CMD_spc_rate 0x0400 /* change spc data rate */
4887 +#define CMD_error 0xf000 /* severe error */
4888 +
4889 +enum { PRIMARY_DIC = 0, USER_DIC, COMMAND_DIC, ABBREV_DIC };
4890 +
4891 +#define DMA_single_in 0x01
4892 +#define DMA_single_out 0x02
4893 +#define DMA_buff_in 0x03
4894 +#define DMA_buff_out 0x04
4895 +#define DMA_control 0x05
4896 +#define DT_MEM_ALLOC 0x03
4897 +#define DT_SET_DIC 0x04
4898 +#define DT_START_TASK 0x05
4899 +#define DT_LOAD_MEM 0x06
4900 +#define DT_READ_MEM 0x07
4901 +#define DT_DIGITAL_IN 0x08
4902 +#define DMA_sync 0x06
4903 +#define DMA_sync_char 0x07
4904 diff -ruN linux-2.6.0.old/drivers/char/speakup/genmap.c linux-2.6.0/drivers/char/speakup/genmap.c
4905 --- linux-2.6.0.old/drivers/char/speakup/genmap.c 1969-12-31 19:00:00.000000000 -0500
4906 +++ linux-2.6.0/drivers/char/speakup/genmap.c 2003-12-28 20:50:09.069839520 -0500
4907 @@ -0,0 +1,204 @@
4908 +#include <stdlib.h>
4909 +#include <stdio.h>
4910 +#include <libgen.h>
4911 +#include <string.h>
4912 +#include <linux/version.h>
4913 +#include <ctype.h>
4914 +
4915 +int get_define(void);
4916 +
4917 +#define MAXKEYS 512
4918 +#define MAXKEYVAL 160
4919 +#define HASHSIZE 101
4920 +#define is_shift -3
4921 +#define is_spk -2
4922 +#define is_input -1
4923 +typedef struct st_key_init t_key_init;
4924 +struct st_key_init {
4925 + char *name;
4926 + int value, shift;
4927 +};
4928 +typedef struct st_key t_key;
4929 +struct st_key {
4930 + char *name;
4931 + t_key *next;
4932 + int value, shift;
4933 +};
4934 +unsigned char key_data[MAXKEYVAL][16], *kp;
4935 +
4936 +#include "mapdata.h"
4937 +t_key key_table[MAXKEYS];
4938 +t_key *extra_keys = key_table+HASHSIZE;
4939 +char buffer[256], filename[256];
4940 +FILE *infile;
4941 +char delims[] = "\t\n ";
4942 +char *def_name, *def_val, *cp;
4943 +int map_ver = 119; /* an arbitrary number so speakup can check */
4944 +int lc, shift_table[17];
4945 +int max_states = 1, flags = 0;
4946 +/* flags reserved for later, maybe for individual console maps */
4947 +
4948 +void open_input( char *name )
4949 +{
4950 + strcpy( filename, name );
4951 + if ( ( infile = fopen( filename, "r" ) ) == 0 ) {
4952 + fprintf( stderr, "can't open %s, version %d\n", filename, LINUX_VERSION_CODE );
4953 + exit( 1 );
4954 + }
4955 + lc = 0;
4956 +}
4957 +
4958 +int
4959 +oops( char *msg, char *info )
4960 +{
4961 + if ( info == NULL ) info = " ";
4962 + fprintf( stderr, "error: file %s line %d\n", filename, lc );
4963 + fprintf( stderr, "%s %s\n", msg, info );
4964 + exit( 1 );
4965 +}
4966 +
4967 +t_key *hash_name( char *name )
4968 +{
4969 + u_char *pn = (u_char *)name;
4970 + int hash = 0;
4971 + while ( *pn ) {
4972 + hash = ( hash * 17 ) & 0xfffffff;
4973 + if ( isupper( *pn ) ) *pn = tolower( *pn );
4974 + hash += ( int )*pn;
4975 + pn++;
4976 + }
4977 + hash %= HASHSIZE;
4978 + return &key_table[hash];
4979 +}
4980 +
4981 +t_key *find_key( char *name )
4982 +{
4983 + t_key *this = hash_name( name );
4984 + while ( this ) {
4985 + if ( !strcmp( name, this->name ) ) return this;
4986 + this = this->next;
4987 + }
4988 + return this;
4989 +}
4990 +
4991 +t_key *add_key( char *name, int value, int shift )
4992 +{
4993 + t_key *this = hash_name( name );
4994 + if ( extra_keys-key_table >= MAXKEYS )
4995 + oops( "out of key table space, enlarge MAXKEYS", NULL );
4996 + if ( this->name != NULL ) {
4997 + while ( this->next ) {
4998 + if ( !strcmp( name, this->name ) )
4999 + oops( "attempt to add duplicate key", name );
5000 + this = this->next;
5001 + }
5002 + this->next = extra_keys++;
5003 + this = this->next;
5004 + }
5005 + this->name = strdup( name );
5006 + this->value = value;
5007 + this->shift = shift;
5008 + return this;
5009 +}
5010 +
5011 +int get_shift_value( int state )
5012 +{
5013 + int i;
5014 + for ( i = 0; shift_table[i] != state; i++ ) {
5015 + if ( shift_table[i] == -1 ) {
5016 + if ( i >= 16 )
5017 + oops( "too many shift states", NULL );
5018 + shift_table[i] = state;
5019 + max_states = i+1;
5020 + break;
5021 + }
5022 + }
5023 + return i;
5024 +}
5025 +
5026 +int
5027 +main( int argc, char *argv[] )
5028 +{
5029 + int value, shift_state, i, spk_val = 0, lock_val = 0;
5030 + int max_key_used = 0, num_keys_used = 0;
5031 + t_key *this;
5032 + t_key_init *p_init;
5033 +char *argpath, *argname, *argcopy;
5034 +
5035 + bzero( key_table, sizeof( key_table ) );
5036 + bzero( key_data, sizeof( key_data ) );
5037 + shift_table[0] = 0;
5038 + for ( i = 1; i <= 16; i++ ) shift_table[i] = -1;
5039 + if ( argc < 2 ) {
5040 + fputs( "usage: genmap filename\n", stderr );
5041 + exit( 1 );
5042 + }
5043 + for ( p_init = init_key_data; p_init->name[0] != '.'; p_init++ )
5044 + add_key( p_init->name, p_init->value, p_init->shift );
5045 + open_input( argv[1] );
5046 + while ( fgets( buffer, 250, infile ) ) {
5047 + lc++;
5048 + value = shift_state = 0;
5049 + cp = strtok( buffer, delims );
5050 + if ( *cp == '#' ) continue;
5051 + while ( cp ) {
5052 + if ( *cp == '=' ) break;
5053 + this = find_key( cp );
5054 + if ( this == NULL )
5055 + oops( "unknown key/modifier", cp );
5056 + if ( this->shift == is_shift ) {
5057 + if ( value )
5058 + oops( "modifiers must come first", cp );
5059 + shift_state += this->value;
5060 + } else if ( this->shift == is_input )
5061 + value = this->value;
5062 + else oops( "bad modifier or key", cp );
5063 + cp = strtok( 0, delims );
5064 + }
5065 + if ( !cp ) oops( "no = found", NULL );
5066 + cp = strtok( 0, delims );
5067 + if ( !cp ) oops( "no speakup function after =", NULL );
5068 + this = find_key( cp );
5069 + if ( this == NULL || this->shift != is_spk )
5070 + oops( "invalid speakup function", cp );
5071 + i = get_shift_value( shift_state );
5072 + if ( key_data[value][i] ) {
5073 + while ( --cp > buffer )
5074 + if ( !*cp ) *cp = ' ';
5075 + oops( "two functions on same key combination", cp );
5076 + }
5077 + key_data[value][i] = (char)this->value;
5078 + if ( value > max_key_used ) max_key_used = value;
5079 + }
5080 + fclose( infile );
5081 + this = find_key( "spk_key" );
5082 + if ( this ) spk_val = this->value;
5083 + this = find_key( "spk_lock" );
5084 + if ( this ) lock_val = this->value;
5085 + for ( lc = 1; lc <= max_key_used; lc++ ) {
5086 + kp = key_data[lc];
5087 + if ( !memcmp( key_data[0], kp, 16 ) ) continue;
5088 + num_keys_used++;
5089 + for ( i = 0; i < max_states; i++ ) {
5090 + if ( kp[i] != spk_val&& kp[i] != lock_val ) continue;
5091 + shift_state = shift_table[i];
5092 + if ( ( shift_state&16 ) ) continue;
5093 + shift_state = get_shift_value( shift_state+16 );
5094 + kp[shift_state] = kp[i];
5095 +/* fill in so we can process the key up, as spk bit will be set */
5096 + }
5097 + }
5098 + printf( "\t%d, %d, %d,\n\t", map_ver, num_keys_used, max_states );
5099 + for ( i = 0; i < max_states; i++ )
5100 + printf( "%d, ", shift_table[i] );
5101 + printf( "%d,", flags );
5102 + for ( lc = 1; lc <= max_key_used; lc++ ) {
5103 + kp = key_data[lc];
5104 + if ( !memcmp( key_data[0], kp, 16 ) ) continue;
5105 + printf( "\n\t%d,", lc );
5106 + for ( i = 0; i < max_states; i++ )
5107 + printf( " %d,", (unsigned int)kp[i] );
5108 + }
5109 + printf( "\n\t0, %d\n", map_ver );
5110 + exit( 0 );
5111 +}
5112 diff -ruN linux-2.6.0.old/drivers/char/speakup/install linux-2.6.0/drivers/char/speakup/install
5113 --- linux-2.6.0.old/drivers/char/speakup/install 1969-12-31 19:00:00.000000000 -0500
5114 +++ linux-2.6.0/drivers/char/speakup/install 2003-12-28 20:50:09.069839520 -0500
5115 @@ -0,0 +1,56 @@
5116 +#!/bin/bash
5117 +
5118 +VERSION=v`head -2 /usr/src/linux/Makefile | \
5119 + awk '{ printf "%s",$3 }'`
5120 +
5121 +DIR=/usr/src/linux/drivers/char/speakup
5122 +
5123 +echo "Patching version $VERSION"
5124 +
5125 +if [ "$1" != "--debug" ]; then
5126 + SILENT=--silent
5127 +fi
5128 +
5129 +cp -R speakup /usr/src/linux/drivers/char/
5130 +
5131 +# make .orig files
5132 +echo -n 'Creating .orig files ['
5133 +for i in `cat ${DIR}/patchlist-${VERSION}`; do
5134 + patch=`echo $i | cut -f 1 -d ,`
5135 + filebase=`echo $i | cut -f 2 -d ,`
5136 +
5137 + mkdir -p `dirname $filebase`
5138 + if [ "$patch" == "1" ]; then
5139 + if [ ! -e $filebase.orig ]; then
5140 + echo -n .
5141 + cp $filebase $filebase.orig
5142 + fi
5143 + fi
5144 +done
5145 +echo '] done.'
5146 +
5147 +# apply patches
5148 +echo -n 'Patching files ['
5149 +for i in ${DIR}/diff-${VERSION}/*.patch; do
5150 + # skip dirs
5151 + [ -d $i ] && continue
5152 + echo -n p
5153 + writeloc=${i##$DIR\/diff-${VERSION}\/}
5154 + writeloc=${writeloc%.patch}
5155 + writeloc=${writeloc//^/\/}
5156 + patch $SILENT -f -p0 -o $writeloc $writeloc.orig $i
5157 +done
5158 +echo '] done.'
5159 +
5160 +# copy files
5161 +echo -n 'Copying files ['
5162 +for i in ${DIR}/diff-${VERSION}/*.copy; do
5163 + # skip dirs
5164 + [ -d $i ] && continue
5165 + echo -n c
5166 + writeloc=${i##$DIR\/diff-${VERSION}\/}
5167 + writeloc=${writeloc%.copy}
5168 + writeloc=${writeloc//^/\/}
5169 + cp $i $writeloc
5170 +done
5171 +echo '] done.'
5172 diff -ruN linux-2.6.0.old/drivers/char/speakup/keyinfo.h linux-2.6.0/drivers/char/speakup/keyinfo.h
5173 --- linux-2.6.0.old/drivers/char/speakup/keyinfo.h 1969-12-31 19:00:00.000000000 -0500
5174 +++ linux-2.6.0/drivers/char/speakup/keyinfo.h 2003-12-28 20:50:09.069839520 -0500
5175 @@ -0,0 +1,119 @@
5176 +/* spk_priv.h
5177 + review functions for the speakup screen review package.
5178 + originally written by: Kirk Reiser and Andy Berdan.
5179 +
5180 + extensively modified by David Borowski.
5181 +
5182 + Copyright (C ) 1998 Kirk Reiser.
5183 + Copyright (C ) 2003 David Borowski.
5184 +
5185 + This program is free software; you can redistribute it and/or modify
5186 + it under the terms of the GNU General Public License as published by
5187 + the Free Software Foundation; either version 2 of the License, or
5188 + (at your option ) any later version.
5189 +
5190 + This program is distributed in the hope that it will be useful,
5191 + but WITHOUT ANY WARRANTY; without even the implied warranty of
5192 + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5193 + GNU General Public License for more details.
5194 +
5195 + You should have received a copy of the GNU General Public License
5196 + along with this program; if not, write to the Free Software
5197 + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5198 +*/
5199 +
5200 +enum { /* var_ids */
5201 + VERSION = 0, SYNTH, SILENT, SYNTH_DIRECT,
5202 + KEYMAP, CHARS,
5203 + PUNC_SOME, PUNC_MOST, PUNC_ALL,
5204 + DELIM, REPEATS, EXNUMBER,
5205 + DELAY, TRIGGER, JIFFY, FULL, /* all timers must be together */
5206 + BLEEP_TIME, CURSOR_TIME, BELL_POS,
5207 +SAY_CONTROL, SAY_WORD_CTL, NO_INTERRUPT, KEY_ECHO,
5208 + SPELL_DELAY, PUNC_LEVEL, READING_PUNC,
5209 + ATTRIB_BLEEP, BLEEPS,
5210 + RATE, PITCH, VOL, TONE, PUNCT, VOICE, FREQ, LANG,
5211 + CAPS_START, CAPS_STOP,
5212 + MAXVARS
5213 +};
5214 +
5215 +#define FIRST_SYNTH_VAR RATE
5216 +/* 0 is reserved for no remap */
5217 +#define SPEAKUP_GOTO 0x01
5218 +#define SPEECH_KILL 0x02
5219 +#define SPEAKUP_QUIET 0x03
5220 +#define SPEAKUP_CUT 0x04
5221 +#define SPEAKUP_PASTE 0x05
5222 +#define SAY_FIRST_CHAR 0x06
5223 +#define SAY_LAST_CHAR 0x07
5224 +#define SAY_CHAR 0x08
5225 +#define SAY_PREV_CHAR 0x09
5226 +#define SAY_NEXT_CHAR 0x0a
5227 +#define SAY_WORD 0x0b
5228 +#define SAY_PREV_WORD 0x0c
5229 +#define SAY_NEXT_WORD 0x0d
5230 +#define SAY_LINE 0x0e
5231 +#define SAY_PREV_LINE 0x0f
5232 +#define SAY_NEXT_LINE 0x10
5233 +#define TOP_EDGE 0x11
5234 +#define BOTTOM_EDGE 0x12
5235 +#define LEFT_EDGE 0x13
5236 +#define RIGHT_EDGE 0x14
5237 +#define SPELL_PHONETIC 0x15
5238 +#define SPELL_WORD 0x16
5239 +#define SAY_SCREEN 0x17
5240 +#define SAY_POSITION 0x18
5241 +#define SAY_ATTRIBUTES 0x19
5242 +#define SPEAKUP_OFF 0x1a
5243 +#define SPEAKUP_PARKED 0x1b
5244 +#define SAY_LINE_INDENT 0x1c
5245 +#define SAY_FROM_TOP 0x1d
5246 +#define SAY_TO_BOTTOM 0x1e
5247 +#define SAY_FROM_LEFT 0x1f
5248 +#define SAY_TO_RIGHT 0x20
5249 +#define SAY_CHAR_NUM 0x21
5250 +#define EDIT_SOME 0x22
5251 +#define EDIT_MOST 0x23
5252 +#define SAY_PHONETIC_CHAR 0x24
5253 +#define EDIT_DELIM 0x25
5254 +#define EDIT_REPEAT 0x26
5255 +#define EDIT_EXNUM 0x27
5256 +#define SET_WIN 0x28
5257 +#define CLEAR_WIN 0x29
5258 +#define ENABLE_WIN 0x2a
5259 +#define SAY_WIN 0x2b
5260 +#define SPK_LOCK 0x2c
5261 +#define SPEAKUP_HELP 0x2d
5262 +#define TOGGLE_CURSORING 0x2e
5263 +#define SPKUP_MAX_FUNC 0x2f /* one greater than the last func handler */
5264 +
5265 +#define SPK_KEY 0x80
5266 +#define FIRST_EDIT_BITS 0x22
5267 +
5268 +#define FIRST_SET_VAR SPELL_DELAY
5269 +#define VAR_START 0x40 /* increase if adding more than 0x3f functions */
5270 +
5271 +/* keys for setting variables, must be ordered same as the enum for var_ids */
5272 +/* with dec being even and inc being 1 greater */
5273 +#define SPELL_DELAY_DEC VAR_START+0
5274 +#define SPELL_DELAY_INC SPELL_DELAY_DEC+1
5275 +#define PUNC_LEVEL_DEC SPELL_DELAY_DEC+2
5276 +#define PUNC_LEVEL_INC PUNC_LEVEL_DEC+1
5277 +#define READING_PUNC_DEC PUNC_LEVEL_DEC+2
5278 +#define READING_PUNC_INC READING_PUNC_DEC+1
5279 +#define ATTRIB_BLEEP_DEC READING_PUNC_DEC+2
5280 +#define ATTRIB_BLEEP_INC ATTRIB_BLEEP_DEC+1
5281 +#define BLEEPS_DEC ATTRIB_BLEEP_DEC+2
5282 +#define BLEEPS_INC BLEEPS_DEC+1
5283 +#define RATE_DEC BLEEPS_DEC+2
5284 +#define RATE_INC RATE_DEC+1
5285 +#define PITCH_DEC RATE_DEC+2
5286 +#define PITCH_INC PITCH_DEC+1
5287 +#define VOL_DEC PITCH_DEC+2
5288 +#define VOL_INC VOL_DEC+1
5289 +#define TONE_DEC VOL_DEC+2
5290 +#define TONE_INC TONE_DEC+1
5291 +#define PUNCT_DEC TONE_DEC+2
5292 +#define PUNCT_INC PUNCT_DEC+1
5293 +#define VOICE_DEC PUNCT_DEC+2
5294 +#define VOICE_INC VOICE_DEC+1
5295 diff -ruN linux-2.6.0.old/drivers/char/speakup/makemapdata.c linux-2.6.0/drivers/char/speakup/makemapdata.c
5296 --- linux-2.6.0.old/drivers/char/speakup/makemapdata.c 1969-12-31 19:00:00.000000000 -0500
5297 +++ linux-2.6.0/drivers/char/speakup/makemapdata.c 2003-12-28 20:50:09.069839520 -0500
5298 @@ -0,0 +1,156 @@
5299 +#include <stdlib.h>
5300 +#include <stdio.h>
5301 +#include <libgen.h>
5302 +#include <string.h>
5303 +#include <linux/version.h>
5304 +#include <ctype.h>
5305 +
5306 +int get_define(void);
5307 +
5308 +#define MAXKEYS 512
5309 +#define MAXKEYVAL 160
5310 +#define HASHSIZE 101
5311 +#define is_shift -3
5312 +#define is_spk -2
5313 +#define is_input -1
5314 +typedef struct st_key t_key;
5315 +struct st_key {
5316 + char *name;
5317 + t_key *next;
5318 + int value, shift;
5319 +};
5320 +
5321 +t_key key_table[MAXKEYS];
5322 +t_key *extra_keys = key_table+HASHSIZE;
5323 +char buffer[256], filename[256];
5324 +FILE *infile;
5325 +char delims[] = "\t\n ";
5326 +char *dir_name, *def_name, *def_val, *cp;
5327 +int lc;
5328 +
5329 +void open_input( char *name )
5330 +{
5331 + sprintf( filename, "%s/%s", dir_name, name );
5332 + if ( ( infile = fopen( filename, "r" ) ) == 0 ) {
5333 + fprintf( stderr, "can't open %s\n", filename );
5334 + exit( 1 );
5335 + }
5336 + lc = 0;
5337 +}
5338 +
5339 +int
5340 +oops( char *msg, char *info )
5341 +{
5342 + if ( info == NULL ) info = " ";
5343 + fprintf( stderr, "error: file %s line %d\n", filename, lc );
5344 + fprintf( stderr, "%s %s\n", msg, info );
5345 + exit( 1 );
5346 +}
5347 +
5348 +int get_define( )
5349 +{
5350 + while ( fgets( buffer, 250, infile ) ) {
5351 + lc++;
5352 + if ( strncmp( buffer, "#define", 7 ) ) continue;
5353 + strtok( buffer, delims );
5354 + def_name = strtok( 0, delims );
5355 + def_val = strtok( 0, delims );
5356 + if ( def_val != NULL ) return 1;
5357 + }
5358 + fclose( infile );
5359 + infile = 0;
5360 + return 0;
5361 +}
5362 +
5363 +t_key *hash_name( char *name )
5364 +{
5365 + u_char *pn = (u_char *)name;
5366 + int hash = 0;
5367 + while ( *pn ) {
5368 + hash = ( hash * 17 ) & 0xfffffff;
5369 + if ( isupper( *pn ) ) *pn = tolower( *pn );
5370 + hash += ( int )*pn;
5371 + pn++;
5372 + }
5373 + hash %= HASHSIZE;
5374 + return &key_table[hash];
5375 +}
5376 +
5377 +t_key *find_key( char *name )
5378 +{
5379 + t_key *this = hash_name( name );
5380 + while ( this ) {
5381 + if ( !strcmp( name, this->name ) ) return this;
5382 + this = this->next;
5383 + }
5384 + return this;
5385 +}
5386 +
5387