/[linux-patches]/genpatches-2.6/trunk/2.6.12-pre/4900_speakup-20050303.patch
Gentoo

Contents of /genpatches-2.6/trunk/2.6.12-pre/4900_speakup-20050303.patch

Parent Directory Parent Directory | Revision Log Revision Log


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