Braille Lite Driver for BRLTTY This is a beta driver for the Blazie Engineering Braille Lite. written by Nikhil Nair, with additions from Nicolas Pitre and Pete De Vasto, further modifications by Stéphane Doyon , starting August 2001. Both BrailleLite 18 and 40 should work, and there is now code that should auto-detect the display type. Edit braille.h to select baudrate and some features. On the BrailleLite, you should type 345-chord and p-chord to enter the "speech box mode" required by BRLTTY. You should type the same sequence to exit that mode whenever you wish to return to the BrailleLite internal functions. Be sure your BrailleLite's serial port baudrate and the value configured in the braille.h file are the same. The Braille Lite 40 has two advance bars on it. Brltty has been set up so that moving the display left or right works the same as it does when the unit is in its internal notetaker mode. See help.src for a description of the key bindings. History: Stéphane Doyon, April 2002, version 0.5.10: -Act as if kbemu was off in any context other than CMDS_SCREEN (in particular typing a key won't throw you out of preferences menu anymore). Stéphane Doyon, March 2002, version 0.5.9: -Added "kbemu" driver parameter, so can start with kbemu already active. Stéphane Doyon, February 2002, version 0.5.8: -Added CMD_LEARN, CMD_NXPROMPT/CMD_PRPROMPT and CMD_SIXDOTS. Several VAL_PASSKEY effects were done through special cases: moved them back into cmdtrans. Identified special/reserved and free bindings. Cleaned out some #if 0s. Stéphane Doyon, January 2002, version 0.5.7: -Added bindings for CR_CUTAPPEND and CR_CUTLINE. Replaced CMD_CUT_BEG, CMD_CUT_END and CMD_CSRJMP by CR_ equivalents. Added CR_SETMARK and CR_GOTOMARK. These are a bit nasty: they reuse existing command dot patterns from within o-chord. Well practically all the patterns are taken! Stéphane Doyon, January 2002, version 0.5.6: -Fixed dot combinations with dots 7-8 on BL40 (for typing caps and ctrl). Stéphane Doyon, December 2001, version 0.5.5: -META is back. Now use VPC modifiers on VALPASSCHAR when TEXTTRANS not defined. Fixed uppercase that always locked active. Sub-commands of 35-chord no longer need to be chorded. Stéphane Doyon, November 2001, version 0.5.4: -Now using new generic VAL_PASS* mechanism for typing in keys, rather than having the driver itself insert stuff into the console. We no longer have the META function though, but we have ESCAPE. Stéphane Doyon and Dave Mielke, September 2001, version 0.5.3: -closebrl: don't clear display, use TCSADRAIN. -Slight API and name changes for BRLTTY 3.0. Commands can no longer be assumed to be chars, changed type of cmdtrans. -Fixed binding for switching virtual terminal with o-chord... it was wrong. Stéphane Doyon, September 2001, version 0.5.2: -Added baudrate parameter. Fixed up initialization, in particular a bug with use of qbase buffer unitialized. Stéphane Doyon, September 2001, version 0.5.1: -Added bindings for CMD_BACK and CR_MSGATTRIB. Stéphane Doyon, August 2001 -Added a version number, as many people have been playing with this driver. Arbitrarily started at 0.5. -Made the help more compact, and remove the duplication of the key bindings list from README. -Use separate help files for BL18 and BL40, automatically generated from brltty_genhelp.txt. -Option USE_TEXTTRANS in braille.h, allows mapping of braille keyboard input to characters to be performed using the output text translation table (use definable) instead of the hardcoded US table. Useful if you don't use the US table or if you want to enter characters numbered >127 (such as accents for me). Obviously your output dot translation table must not have duplicate representations for characters you want to type. If that option is selected, dot 8 no longer generates a META key. -Added DOT8SHIFT for use with USE_TEXTTRANS: 26-chord means the next input char should be looked up with dot8 added. -Added bindings for search forward/backward (NXSEARCH), move by paragraphs (NXBLNKLN), switch to next/previous virtual terminal (SWITCHVT_NEXT). -Added a binding (246) for escape. Sometimes you want escape alone, or followed by delete... and the META key doesn't do it as it expects a character to combine the META to. -Made the "restart driver" command dangerous (required chord), as it tended to kill the driver for me if I continued typing while it resets... -Modified repeat count so that you can give the command right away, no need to do e-chord. You can do a one-digit repeat of a movement key in three strokes now. -Abused the repeat count function to allow switching directly to a VT given it's number: o-chord then VT number then s-chord or :-chord. NB: Changed to v-chord / #-chord. -Fixed a very nice little bug that caused the internal cursor to go off the display during g-chord with advance bar left. -Fixed a statement that caused a portability problem. -Fixed k-chord which activated but did not toggle off keyboard emulation. -Renamed brltty_genhelp.txt to help.src and brlttyhelp?.txt to help?.txt. Anecdotes on weird bugs: The code: for (i = 0; i < blitesz; rawdata[i++] = blitetrans[rawdata[i]]); can, in some (not yet quite clear) circumstances and under other processor architectures, not have the desired effect: all the text appears shifted by one cell. Supposedly the behavior for such a construct is undefined with gcc. So we put the i++ outside the assignment statement. The code: int_cursor = MAX (int_cursor - blitesz / 4, 1); did not have the intended effect. int_cursor was signed and blitesz unsigned. The compiler somehow decided to evaluate the comparison as if the first argument was unsigned, which caused the MAX strategy to fail and the cursor to go off the display. Declaring blitesz as signed fixed it.