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

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