Next Previous Contents

4. Feature Descriptions

4.1 Cursor Routing

When moving the braille window around the screen while examining the text, say, in an editor, you often need to bring the cursor to a specific character within the braille window. You'll probably find this to be a rather difficult task for a number of reasons. One is that you may not know where the cursor is, and that you may lose your place while trying to find it. Another is that the cursor may move unrpedictably as the arrow keys are pressed (some editors, for example, don't allow the cursor to be more to the right than the end of the line it's on). Cursor routing provides just such a capability by knowing where the cursor is, by simulating the same arrow-key presses which you'd have to enter manually, and by monitoring the progress of the cursor as it moves.

Some braille displays have a button, known as a routing key, above each cell. These keys use the ROUTE command to route the cursor right to the desired location.

Cursor routing, while very convenient and effective, is, strictly speaking, not completely reliable. One reason for this is that its current implementation assumes VT100 cursor key escape sequences. Another is that some applications do non-standard things in response to detecting that a cursor key has been pressed. A minor problem found within some editors (like vi), as already mentioned above, is that they throw in some unpredictable horizontal motion when vertical motion is requested because they don't allow the cursor to be to the right of the end of a line. A major problem found within some web browsers (like lynx) is that the up- and down-arrow keys are used to move among the links (which may skip lines and/or move the cursor horizontally, but which rarely just moves the cursor one line in the desired direction), and that the left- and right-arrow keys are used to select links (which has absolutely nothing to do with any form of cursor motion whatsoever, and which even totally changes the screen content).

Cursor routing may not work very well on a heavily loaded system, and definitely doesn't work very well when working on a remote system over a slow link. This is so because of all of the checks which must be made along the way in order to deal with unpredictable cursor motion and in order to ensure that any mistake has at least a fighting chance to be undone. Even though BRLTTY tries to be fairly clever, it must still essentially wait to see what happens after each simulated arrow-key press.

Once a cursor routing request has been made, BRLTTY keeps trying to route the cursor to the desired location until a timeout expires before the cursor reaches that location, the cursor seems to be moving in the wrong direction, or you switch to a different virtual terminal. An attempt is first made to use virtical motion to bring the cursor to the right line, and, only if that succeeds, an attempt is then made to use horizontal motion to bring the cursor to the right column. If another request is made while one is still in progress, then the first one is aborted and the second one is initiated.

A safer but less powerful cursor routing command, CSRJMP_VERT, uses just vertical motion to bring the cursor to anywhere on the top line of the braille window. It's especially useful in conjunction with applications (like lynx) wherein horizontal cursor motion must never be attempted.

4.2 Cut and Paste

This feature enables you to grab some text which is already on the screen and re-enter it at the current cursor position. Using it saves time and avoids errors when a long and/or complicated piece of text needs to be copied, and even when the same short and simple piece of text needs to be copied many times. It's particularly useful for things like long file names, complicated command lines, E-mail addresses, and URLs. Cutting and pasting text involves three simple steps:

  1. Mark either the top-left corner of the rectangular area or the beginning of the linear area on the screen which is to be grabbed (cut). If your display has routing keys, then move the braille window so that the first character to be cut appears anywhere within it, and then: by pressing the key(s) associated with it and then pressing the routing key associated with the character.
  2. Mark either the bottom-right corner of the rectangular area or the end of the linear area on the screen which is to be grabbed (cut). If your display has routing keys, then move the braille window so that the last character to be cut appears anywhere within it, and then by pressing the key(s) associated with it and then pressing the routing key associated with the character. Marking the end of the cut area appends the selected screen content to the cut buffer. Excess white-space is removed from the end of each line in the cut buffer so that unwanted trailing spaces won't be pasted back in. Control characters are replaced with blanks.
  3. Insert (paste) the text where it's needed. Place the cursor over the character where the text is to be pasted, and invoke the PASTE command. You can paste the same text any number of times without recutting it. This description assumes that you're already in some sort of input mode. If you paste when you're in some other kind of mode (like vi's command mode), then you'd better be aware of what the characters in the cut buffer will do.

The cut buffer is also used by the PRSEARCH and NXSEARCH commands.

4.3 Pointer (Mouse) Support via GPM

If BRLTTY is configured with the --enable-gpm build option on a system where the gpm application has been installed, then it'll interact with the pointer (mouse).

Moving the braille window moves the pointer (see the Pointer Follows Window preference). Any motion of the braille window (manual, cursor tracking, etc.), other than when it moves in response to pointer motion, moves the pointer to the character on the screen which corresponds to the upper-left corner of the braille window. This enables a sighted observer to see where the braille window is, and, therefore, to know what the braille user is reading. It also keeps the pointer within the braille window so that it can be found easily, and so that the pointer device can always be readily used as another way to move the braille window.

Moving the pointer drags the braille window (see the Window Follows Pointer preference). Whenever the pointer is moved beyond the edge of the braille window, the braille window is dragged along (one character at a time). This gives the braille user another two-dimensional way to inspect the screen content or to quickly move the braille window to a desired location. It also gives a sighted observer an easy way to move the braille window to something he'd like the braille user to read.

gpm uses reverse video to show where the pointer is. Underlining of highlighted characters (see the ATTRVIS command for details) should be turned on, therefore, when the braille user wishes to use the pointer.

This feature also gives the braille user access to gpm's cut-and-paste capability. Although you should read gpm's own documentation, here are some notes on how it works.

4.4 Alert Tunes

BRLTTY alerts you to the occurrence of significant events by playing short predefined tunes. This feature can be activated and deactivated with either the TUNES command or the Alert Tunes preference. The tunes are played via the internal beeper by default, but other alternatives can be selected with the Tune Device preference.

Each significant event is associated, from highest to lowest priority, with one or more of the following:

a tune

If a tune has been associated with the event, if the Alert Tunes preference (see also the TUNES command) is active, and if the selected tune device (see the Tune Device preference) can be opened, then the tune is played.

a dot pattern

If a dot pattern has been associated with the event, and if the Alert Dots preference is active, then the dot pattern is briefly displayed on every braille cell. Some braille displays don't respond quickly enough for this mechanism to work effectively.

a message

If a message has been associated with the event, then it is displayed for a few seconds (see the -M command line option).

These events include:

4.5 Preferences Settings

When BRLTTY starts, it loads a file which contains your preferences settings. The file doesn't need to exist, and is created the first time the settings are saved with the PREFSAVE command. The most recently saved settings can be restored at any time with the PREFLOAD command.

The default name for this file is /etc/brltty.conf. A system default for its name can be established with the preferences-file configuration file directive. Its name can be explicitly set at run-time with the -p command line option.

The Preferences Menu

The preferences settings are saved as binary data which, therefore, can't be edited by hand. BRLTTY, however, has a simple menu from which you can easily change them. This feature isn't available if the --disable-preferences-menu build option was specified.

The meny is activated by the PREFMENU command. The braille display briefly (see the -M command line option) shows the menu title, and then presents the current item and its current setting.

Navigating the Menu

See Menu Navigation Commands for the full list of commands which enable you to select items and change settings within the menu. For backward compatibility with old drivers, the window motion commands, which have modified meanings in this context, can also be used.

TOP, TOP_LEFT

Go to the first item in the menu (same as MENU_FIRST_ITEM).

BOT, BOT_LEFT

Go to the last item in the menu (same as MENU_LAST_ITEM).

LNUP, CURSOR_UP

Go to the previous item in the menu (same as MENU_PREV_ITEM).

LNDN, CURSOR_DOWN

Go to the next item in the menu (same as MENU_NEXT_ITEM).

WINUP, CHRLT, CURSOR_LEFT

Decrement the current menu item's setting (same as MENU_PREV_SETTING).

WINDN, CHRRT, CURSOR_RIGHT, HOME, RETURN

Increment the current menu item's setting (same as MENU_NEXT_SETTING).

Notes:

The Menu Items

Save on Exit

When exiting the preferences menu:

No

Don't automatically save the preferences settings.

Yes

Automatically save the preferences settings.

The initial setting is No.

Text Style

When displaying screen content (see the DISPMD command), show characters:

8-dot

With all eight dots.

6-dot

With only dots 1 through 6. If a contraction table has been selected (see the -c command line option and the contraction-table configuration file directive), then it is used.

This setting can also be changed with the SIXDOTS command.

Meta Mode

Enter a meta character by:

Escape Prefix

Prefixing it with an escape byte.

High-order Bit

Setting its high-order bit.

Use the setmetamode command to find out how your system has been configured. The initial setting is Escape Prefix.

Skip Identical Lines

When moving either up or down exactly one line with the LNUP and LNDN commands, as well as the line wrapping feature of the FWINLT, FWINRT, FWINLTSKIP, and FWINRTSKIP commands:

No

Don't skip passed lines which have the same content as the current line.

Yes

Skip passed lines which have the same content as the current line.

This setting can also be changed with the SKPIDLNS command.

Skip Blank Windows

When moving either left or right with the FWINLT and FWINRT commands:

No

Don't skip passed blank windows.

Yes

Skip passed blank windows.

This setting can also be changed with the SKPBLNKWINS command.

Which Blank Windows

If blank windows are to be skipped:

All

Skip all of them.

End of Line

Only skip those which are at the end (on the right side) of a line.

Rest of Line

Only skip those which are at the end (on the right side) of a line when reading forward, and at the beginning (on the left side) of a line when reading backward.

Sliding Window

If the cursor is being tracked (see the CSRTRK command), and the cursor moves too close to (or beyond) either end of the braille window:

No

Horizontally reposition the window such that its left end is a multiple of its width from the left edge of the screen.

Yes

Horizontally reposition the window such that the cursor, while remaining on that side of the window, is nearer the centre.

This setting can also be changed with the SLIDEWIN command.

Eager Sliding Window

If the braille window is to slide:

No

Reposition it whenever the cursor moves beyond either end.

Yes

Reposition it whenever the cursor moves too close to either end.

The initial setting is off.

Window Overlap

When moving either left or right with the FWINLT and FWINRT commands, this setting specifies how many characters horizontally adjacent braille windows should overlap each other by. The initial setting is 0.

Show Cursor

When displaying screen content (see the DISPMD command):

No

Don't show the cursor.

Yes

Show the cursor.

This setting can also be changed with the CSRVIS command.

Cursor Style

When showing the cursor, represent it:

Underline

With dots 7 and 8.

Block

With all eight dots.

This setting can also be changed with the CSRSIZE command.

Blinking Cursor

When the cursor is to be shown:

No

Leave it visible all the time.

Yes

Make it alternately visible and invisible according to a predefined interval.

This setting can also be changed with the CSRBLINK command.

Cursor Visible Period

When the cursor is to be blinked, this setting specifies the length of time (see the note on time settings below) during each cycle that it is to be visible. The initial setting is 10.

Cursor Invisible Period

When the cursor is to be blinked, this setting specifies the length of time (see the note on time settings below) during each cycle that it is to be invisible. The initial setting is 10.

Show Attributes

When displaying screen content (see the DISPMD command):

No

Don't underline highlighted characters.

Yes

Underline highlighted characters.

This setting can also be changed with the ATTRVIS command.

Blinking Attributes

When highlighted characters are to be underlined:

No

Leave the indicator visible all the time.

Yes

Make the indicator alternately visible and invisible according to a predefined interval.

This setting can also be changed with the ATTRBLINK command.

Attributes Visible Period

When the highlighted character underline is to be blinked, this setting specifies the length of time (see the note on time settings below) during each cycle that it is to be visible. The initial setting is 4.

Attributes Invisible Period

When the highlighted character underline is to be blinked, this setting specifies the length of time (see the note on time settings below) during each cycle that it is to be invisible. The initial setting is 12.

Blinking Capitals

When displaying screen content (see the DISPMD command):

No

Leave capital letters visible all the time.

Yes

Make capital letters alternately visible and invisible according to a predefined interval.

This setting can also be changed with the CAPBLINK command.

Capitals Visible Period

When capital letters are to be blinked, this setting specifies the length of time (see the note on time settings below) during each cycle that they're to be visible. The initial setting is 4.

Capitals Invisible Period

When capital letters are to be blinked, this setting specifies the length of time (see the note on time settings below) during each cycle that they're to be invisible. The initial setting is 2.

Window Follows Pointer

When moving the pointer device (mouse):

No

Don't drag the braille window.

Yes

Drag the braille window.

This preference is only presented if the --enable-gpm build option was specified.

Pointer Follows Window

When moving the braille window:

No

Don't move the pointer (mouse).

Yes

Move the pointer (mouse) to the character on the screen corresponding to the top-left corner of the braille window.

This preference is only presented if the --enable-gpm build option was specified.

Alert Tunes

Whenever a significant event with an associated tune occurs (see Alert Tunes):

No

Don't play the tune.

Yes

Play the tune.

This setting can also be changed with the TUNES command.

Tune Device

Play alert tunes via:

Beeper

The internal beeper (console tone generator). This setting is supported on Linux. It's always safe to use, although it may be somewhat soft. This device isn't available if the --disable-beeper-tunes build option was specified.

PCM

The digital audio interface on the sound card. This setting is supported on Linux (via /dev/dsp), and on Solaris (via /dev/audio). It doesn't work when this device is already being used by another application. This device isn't available if the --disable-pcm-tunes build option was specified.

MIDI

The Musical Instrument Digital Interface on the sound card This setting is supported on Linux (via /dev/sequencer). It doesn't work when this device is already being used by another application. This device isn't available if the --disable-midi-tunes build option was specified.

FM

The FM synthesizer on an AdLib, OPL3, Sound Blaster, or equivalent sound card. This setting is supported on Linux. It works even if the FM synthesizer is already being used by another application. The results are unpredictable, and potentially not very good, if it's used with a sound card which doesn't support this feature. This device isn't available if the --disable-fm-tunes build option was specified.

The initial setting is beeper on those platforms which support it, and PCM on those platforms which don't.

MIDI Instrument

If the Musical Instrument Digital Interface (MIDI) of the sound card is being used to play the alert tunes, this setting specifies which instrument is to be used (see the MIDI Instrument Table). The initial setting is Acoustic Grand Piano.

Alert Dots

Whenever a significant event with an associated dot pattern occurs (see Alert Tunes):

No

Don't display the dot pattern.

Yes

Briefly display the dot pattern.

If alert tunes are to be played (see the TUNES command and the Alert Tunes preference), if a tune has been associated with the event, and if the selected tune device can be opened, then, regardless of the setting of this preference, the dot pattern isn't displayed.

Status Style

This setting specifies the way that the status cells are to be used. You shuldn't normally need to play with it. It enables BRLTTY's developers to test status cell configurations for braille displays which they don't actually have.

None

Don't use the status cells. This setting is always safe, but it's also quite useless.

Alva

The status cells contain:

1

The location of the cursor (see below).

2

The location of the top-left corner of the braille window (see below).

3

A letter indicating BRLTTY's state. In order of precedence:

a

Screen attributes are being shown (see the DISPMD command).

f

The screen image is frozen (see the FREEZE command).

f

The cursor is being tracked (see the CSRTRK command).

blank

Nothing special.

The locations of the cursor and the braille window are presented in an interesting way. Dots 1 through 6 represent the line number with a letter from a (for 1) through y (for 25). Dots 7 and 8 (the extra two at the bottom) represent the horizontal braille window number as follows:
No Dots

The first (leftmost) window.

Dot 7

The second window.

Dot 8

The third window.

Dots 7 and 8

The fourth window.

In both cases, the indicators wrap: line 26 is represented by the letter a, and the fifth horizontal braille window is represented by no dots at the bottom.

Tieman

The status cells contain:

1-2

The columns (counting from zero) of the cursor (shown in the top half of the cells) and the top-left corner of the braille window (shown in the bottom half of the cells).

3-4

The rows (counting from zero) of the cursor (shown in the top half of the cells) and the top-left corner of the braille window (shown in the bottom half of the cells).

5

Each dot indicates if a feature is turned on as follows:

Dot 1

The screen image is frozen (see the FREEZE command).

Dot 2

Screen attributes are being displayed (see the DISPMD command).

Dot 3

Alert tunes are being played (see the TUNES command).

Dot 4

The cursor is being shown (see the CSRVIS command).

Dot 5

The cursor is a solid block (see the CSRSIZE command).

Dot 6

The cursor is blinking (see the CSRBLINK command).

Dot 7

The cursor is being tracked (see the CSRTRK command).

Dot 8

The braille window will slide (see the SLIDEWIN command).

PowerBraille 80

The status cells contain:

1

The row (counting from 1) corresponding to the top of the braille window. The tens digit is shown in the top half of the cell, and the units digit is shown in the bottom half of the cell.

Generic

This setting passes a lot of information to the braille driver, and the driver itself decides how to present it.

MDV

The status cells contain:

1-2

The location of the top-left corner of the braille window. The row (counting from 1) is shown in the top half of the cells, and the column (counting from 1) is shown in the bottom half of the cells.

Voyager

The status cells contain:

1

The row (counting from 0) corresponding to the top of the braille window (see below).

2

The row (counting from 0) whereon the cursor is (see below).

3

If the screen is frozen (see the FREEZE command), then the letter F. If it isn't, then the column (counting from 0) wherein the cursor is (see below).

Row and column numbers are shown as two digits within a single cell. The tens digit is shown in the top half of the cell, and the units digit is shown in the bottom half of the cell.

It's initial setting is braille display driver dependent.

Text Table

Select the text translation table. See section Text Translation for details. See the -t command line option for the initial setting. This preference isn't saved. It isn't presented if the --disable-table-selection build option was specified.

Attributesw Table

Select the attributes translation table. See section Attributes Translation for details. See the -a command line option for the initial setting. This preference isn't saved. It isn't presented if the --disable-table-selection build option was specified.

Contraction Table

Select the contraction table. See section Contracted Braille for details. See the -c command line option for the initial setting. This preference isn't saved. It isn't presented if the --disable-table-selection build option was specified.

Notes:

4.6 The Status Display

The status display is a summary of BRLTTY's current state which fits completely within the braille window. Some braille displays have a set of status cells which are used to permanently display some of this information as well (see the documentation for your display's driver). The data presented by this display isn't static, and may change at any time in response to screen updates and/or BRLTTY commands.

Use the INFO command to switch to the status display, and use it again to return to the screen. The layout of the information contained therein is dependent on the size of the braille window.

Displays with 21 Cells or More

Short pneumonics have been used, even though they're rather cryptic, in order to show the precise column layout.

wx:wy cx:cy vt tcmfdu
wx:wy

The column and row (counting from 0) on the screen corresponding to the top-left corner of the braille window.

cx:cy

The column and row (counting from 0) on the screen corresponding to the position of the cursor.

vt

The number (counting from 1) of the current virtual terminal.

t

The state of the cursor tracking feature (see the CSRTRK command).

blank

Cursor tracking is off.

t

Cursor tracking is on.

c

The state of the cursor visibility features (see the CSRVIS and CSRBLINK commands).

blank

The cursor isn't visible, and won't blink when made visible.

b

The cursor isn't visible, and will blink when made visible.

v

The cursor is visible, and isn't blinking.

B

The cursor is visible, and is blinking.

m

The current display mode (see the DISPMD command).

t

Screen content (text) is being displayed.

a

Screen highlighting (attributes) is being displayed.

f

The state of the frozen screen feature (see the FREEZE command).

blank

The screen isn't frozen.

f

The screen is frozen.

d

The number of braille dots being used to display each character (see the SIXDOTS command).

8

All eight dots are being used.

6

Only dots 1 through 6 are being used.

u

The state of the uppercase (capital letter) display features (see the CAPBLINK command).

blank

Uppercase letters don't blink.

B

Uppercase letters blink.

Displays with 20 Cells or Less

Short pneumonics have been used, even though they're rather cryptic, in order to show the precise column layout.

xxyys vt tcmfdu
xx

The columns (counting from 0) on the screen corresponding to the position of the cursor (shown in the top half of the cells) and to the top-left corner of the braille window (shown in the bottom half of the cells).

yy

The rows (counting from 0) on the screen corresponding to the position of the cursor (shown in the top half of the cells) and to the top-left corner of the braille window (shown in the bottom half of the cells).

s

The settings of some of BRLTTY's features. A feature is turned on if its corresponding dot is raised.

Dot 1

Frozen screen image (see the FREEZE command).

Dot 2

Display attributes (see the DISPMD command).

Dot 3

Alert tunes (see the TUNES command).

Dot 4

Visible cursor (see the CSRVIS command).

Dot 5

Block cursor (see the CSRSIZE command).

Dot 6

Blinking cursor (see the CSRBLINK command).

Dot 7

Cursor tracking (see the CSRTRK command).

Dot 8

Sliding window (see the SLIDEWIN command).

vt

The number (counting from 1) of the current virtual terminal.

t

The state of the cursor tracking feature (see the CSRTRK command).

blank

Cursor tracking is off.

t

Cursor tracking is on.

c

The state of the cursor visibility features (see the CSRVIS and CSRBLINK commands).

blank

The cursor isn't visible, and won't blink when made visible.

b

The cursor isn't visible, and will blink when made visible.

v

The cursor is visible, and isn't blinking.

B

The cursor is visible, and is blinking.

m

The current display mode (see the DISPMD command).

t

Screen content (text) is being displayed.

a

Screen highlighting (attributes) is being displayed.

f

The state of the frozen screen feature (see the FREEZE command).

blank

The screen isn't frozen.

f

The screen is frozen.

d

The number of braille dots being used to display each character (see the SIXDOTS command).

8

All eight dots are being used.

6

Only dots 1 through 6 are being used.

u

The state of the uppercase (capital letter) display features (see the CAPBLINK command).

blank

Uppercase letters don't blink.

B

Uppercase letters blink.

4.7 Command Learn Mode

Command learn mode is an interactive way to learn what the keys on the braille display do. It can be accessed either by the LEARN command or via the brltest utility. This feature isn't available if the --disable-learn-mode build option was specified.

When this mode is entered, the message command learn mode is written to the braille display. Then, as each key (or key combination) on the display is pressed, a short message describing its BRLTTY function is written. This mode exits immediately if the key (or key combination) for the LEARN command is pressed. It exits automatically, and the message done is written, if ten seconds elapse without any key on the display being pressed. Note that some displays don't signal the driver and/or some drivers don't signal BRLTTY until all the keys are released.

If a message is longer than the braille display is wide, then it's displayed in segments. The length of each segment but the last is one less than the display's width, with the rightmost character on the display being set to a minus sign. Each such segment remains on the display either for a few seconds (see the -M command line option) or until any key on the display is pressed.

4.8 Contracted Braille

BRLTTY can display in-line contracted braille. It does this if:

This feature isn't available if the --disable-contracted-braille build option was specified.

The following contraction tables are provided:

compress.ctb

Remove excessive white-space.

en-us-g2.ctb

Grade 2 American English.

File Format

Blank lines are ignored. Any leading and trailing white-space (any number of blanks and/or tabs) is ignored. Lines which begin with a number sign (#) are ignored, i.e. they're comments.

# This is a comment.
All other lines define table entries.

The general form of a table entry is an opcode followed by its operands. The opcode and its operands are separated from one another by white-space. Each opcode has a specific number of operands, and any text following its last operand is treated as a comment.

opcode operand ... comment

The opcode is a number which tells the translator how to interpret the operands. Opcode 0 can be used to assign a meaningful name to each needed opcode, e.g. opcode for 0 itself. If, for example, a table begins with:

0 0 opcode
then all the rest of the opcodes it needs can be defined like this:
opcode 1 include
This scheme, i.e. no built-in opcode names, was chosen in order to allow a table for some language's braille to be written solely in that language itself.

The following operand types are supported:

string

A sequence of characters other than white-space (which terminates the string) and backslashes (\). The following special representations are also supported:

\\

backslash

\f

form feed

\n

new line

\oooo

3-digit octal value

\r

carriage return

\s

blank (space)

\t

horizontal tab

\v

vertical tab

\xxx

2-digit hexadecimal value

number

An integer. It may be specified in any of the following ways:

decimal

A sequence of decimal digits (0-9), with the first digit being nonzero (1-9).

hexadecimal

A sequence of hexadecimal digits (0-9, and either a-f or A-F), preceded by either 0x or 0X.

octal

A sequence of octal digits (0-7), with the first digit being zero (0).

dots

A braille symbol. The braille dots must be specified via their standard numbers (see section Braille Dot Numbering Convention), and, for a multi-cell symbol, the cell specifications must be separated from one another by a dash (-). For example, the contraction for the English word lord (the letter l prefixed with dot 5) would be specified as 5-123. A space may be specified via the special dot number 0.

Opcode Summary by Number

First, here's a quick summary of all of the contraction table opcodes. For the details, see section Opcodes by Function.

0 opcode name

Name opcode.

1 path

Include file.

2 dots

Define capital sign.

3 dots

Define begin capitals sign.

4 dots

Define letter sign.

5 dots

Define number sign.

6 characters dots

Translate unconditionally.

7 characters dots

Translate unconditionally, remove repetitions.

8 characters dots

Translate if word.

9 characters dots

Translate if at beginning of word.

10 characters dots

Translate if in middle of word.

11 characters dots

Translate if at end of word.

12 characters dots

Translate if in middle or at end of word.

13 characters dots

Translate if in middle of number.

14 characters dots

Translate if white-space-bounded word.

15 characters dots

Translate unconditionally, join consecutive words of this type.

16 characters dots

Translate if word, join to next word.

17 characters

Translate whole white-space-bounded sequence unconditionally into computer braille.

18 characters

Prefix with letter sign if word.

19 characters

Ignore unconditionally.

20 characters dots

Translate if at end of number.

21 characters dots

Translate if at beginning of number.

22 characters dots

Translate if part of leading punctuation.

23 characters dots

Translate if part of trailing punctuation.

24 characters dots

Translate if word or at beginning of word.

25 dots

Define end capitals sign.

Opcodes by Function

Now for all of the details. The opcodes here are grouped by function rather than sorted by number. For a numerically sorted list, see section Opcode Summary by Number.

Table Administration

These opcodes make it easier to write contraction tables. They have no direct effect on the character translation.

0 opcode name

Assign a name to an opcode. The name must be defined before it's used.

1 path

Include the contents of another file. Nesting can be to any depth. Relative paths are anchored at the directory of the including file.

Special Symbol Definition

These opcodes define special symbols which must be inserted into the braille text in order to clarify it.

2 dots

The symbol which capitalizes a single letter.

3 dots

The symbol which begins a block of capital letters within a word.

25 dots

The symbol which ends a block of capital letters within a word.

4 dots

The symbol which marks a letter which isn't part of a word.

5 dots

The symbol which marks the beginning of a number.

Character Translation

These opcodes define the braille representations for character sequences. Each of them defines an entry within the contraction table. These entries may be defined in any order except, as noted below, when they define alternate representations for the same character sequence.

Each of these opcodes has a characters operand (which must be specified as a string), and a built-in condition governing its eligibility for use. The text is processed strictly from left to right, character by character, with the most eligible entry for each position being used. If there's more than one eligible entry for a given position, then the one with the longest character string is used. If there's more than one eligible entry for the same character string, then the one defined nearest to the beginning of the table is used (this is the only order dependency).

Many of these opcodes have a dots operand which defines the braille representation for its characters operand. It may also be specified as an equals sign (=), in which case it means one of two things. If the entry is for a single character, then it means that the currently selected computer braille representation (see the -t command line option and the text-table configuration file directive) for that character is to be used. If it's for a multi-character sequence, then the default representation for each character (see opcode 6) within the sequence is to be used.

Some special terms are used within the descriptions of these opcodes.

word

A maximal sequence of one or more consecutive letters.

Now, finally, here are the opcode descriptions themselves:

17 characters

Translate the entire white-space-bounded containing character sequence into computer braille (see the -t command line option and the text-table configuration file directive).

19 characters

Ignore the characters no matter where they appear.

6 characters dots

Translate the characters no matter where they appear. If there's only one character, then, in addition, define the default representation for that character.

7 characters dots

Translate the characters no matter where they appear. Ignore any consecutive repetitions of the same sequence.

15 characters dots

Translate the characters no matter where they appear. Remove white-space between consecutive words matched by this opcode.

8 characters dots

Translate the characters if they're a word.

16 characters dots

Translate the characters if they're a word. Remove the following white-space if the first character after it is a letter.

14 characters dots

Translate the characters if they're a white-space-bounded word.

18 characters

Prefix the characters with a letter sign (see opcode 4) if they're a word.

24 characters dots

Translate the characters if they're either a word or at the beginning of a word.

9 characters dots

Translate the characters if they're at the beginning of a word.

10 characters dots

Translate the characters if they're in the middle of a word.

12 characters dots

Translate the characters if they're either in the middle or at the end of a word.

11 characters dots

Translate the characters if they're at the end of a word.

22 characters dots

Translate the characters if they're part of punctuation at the beginning of a word.

23 characters dots

Translate the characters if they're part of punctuation at the end of a word.

21 characters dots

Translate the characters if they're at the beginning of a number.

13 characters dots

Translate the characters if they're in the middle of a number.

20 characters dots

Translate the characters if they're at the end of a number.


Next Previous Contents