CHAPTER 4: REVIEW/CONTROL MODE
In review mode, Tinytalk stops sitting in the background and becomes the
program you're running (the way pop-up programs like Sidekick temporarily
take over your machine when you activate them). Tinytalk "freezes" the
application you were running and takes over the keyboard; anything you type
is sent to Tinytalk, not the application program. You can issue commands
to change synthesizer settings, change Tinytalk settings, "navigate" around
the screen, set up windows, remap hotkeys, define key labels, and set up
You go into review mode by pressing Alt-ENTER when you're in application
mode. When you've done what you want to do, you can leave review mode and
go back to your application by pressing ENTER. Most of the application-
mode hotkeys are not available in review mode (though there are equivalent
commands for most of them).
SECTION 1: SYNTHESIZER CONTROL COMMANDS
These commands let you change the speech characteristics of your
synthesizer. Most of these commands are assigned to function keys F1
through F4. For settings like speed or pitch, there's a pair of keys: one
to increase the value of the setting and one to lower it. Not all
synthesizers support all options; Tinytalk will say "not available" if you
try to set an option that your synthesizer doesn't have. Each command will
read the current value of the setting back to you; note that these are
Tinytalk's own numbers for the setting rather than the synthesizer's.
You can raise the value of the tone setting by pressing F1, and lower it by
pressing Shift-F1. You can raise the volume with F2, and lower it with
Shift-F2. You can raise the pitch with F3 and lower it with Shift-F3. You
can increase the speed with F4, and decrease it with Shift-F4.
Some synthesizers have options for how to pronounce numbers; these are
called number processing modes. Different synthesizers have different
number processing options; Tinytalk refers to options 1, 2, and so on, with
lower-numbered options corresponding to less number processing (option 1
always means read numbers as individual digits). If your synthesizer
supports number processing, Control-F1 increases the level and Alt-F1
decreases it. The actual meaning of the option numbers depends on the
Although Tinytalk knows only about speed, pitch, tone, volume and number
processing, many synthesizers have other options which can be set by
sending commands to the synthesizer. For example, the Doubletalk can speak
in either inflected or non-inflected mode. Tinytalk lets you send direct
commands to your synthesizer by pressing the greater-than key, entering the
command (including any control characters needed) and pressing ENTER. For
example, if you wanted to put your Doubletalk into inflected mode, you
would press greater-than, control-A, E, and ENTER. You can also specify a
command string to be sent to the synthesizer each time you run Tinytalk
(actually, each time you load a configuration library--see Chapter 5); you
do this by pressing F5 and entering the command as before. You can re-
initialize the synthesizer by pressing Alt-I.
SECTION 2: OPTION-SETTING COMMANDS
As we've mentioned before, you can tell Tinytalk how to do certain things.
For example, we've already discussed keyboard echo, cursor movement
actions, automatic pop-up window reading and form filling. Most of these
settings are made from a menu of options, each of which has several
choices. For example, "keyboard echo" is one of these options; the
available choices are "words," "letters," "letters no interrupt," "none"
and "none with interrupt." A few Tinytalk settings, like the column for
the right margin bell, don't lend themselves to making choices from a menu;
you set them by pressing a letter key and then answering a prompt.
You bring up Tinytalk's option menu by pressing M. Each option has a
number or a letter (0 through 9, A through R). Whenever you come to an
option, Tinytalk will read its letter or number, its name, and the current
choice for the option. For example, when you come into the menu you'll be
on option 0, keyboard echo. Tinytalk will say "0 keyboard echo words"
(assuming that you haven't changed your choice from the default).
When you're on an option, you can change your choice by pressing the space
bar. Each time you press it, Tinytalk will read you another choice; when
you reach the end of the available choices, you'll go back to the first
one. Continuing our example, pressing the spacebar would read "letters,"
then "letters no interrupt" and so on.
When you're done setting one option, you can move to the next one by
pressing ENTER. For example, pressing ENTER when you're on the "keyboard
echo" option would take you to the "verbosity" option. When you get to the
last option (option R, typeover alert) and press ENTER, Tinytalk will say
"end menu" and put you back into regular review mode (where the spacebar
and ENTER keys have different meanings).
Often you'll want to change just one setting without having to step through
the whole list. When you're at a menu option, you can go directly to
another one by entering its letter or number. For example, if you wanted
to change option 4 (forms mode), you'd go into the menu (which would put
you at option 0 (keyboard echo)) and press 4. This would take you directly
to option 4. You can exit from the menu at any time by pressing ESCAPE.
When you're in the menu, most of the other review-mode commands aren't
available. Note that the menu options and choices are spoken, but not
displayed on the screen.
In Section 7, you'll learn how to define "shortcut" hotkeys that let you
change menu settings without having to go into review mode.
Here's a list of all the options. We've discussed some of them already;
others will be new. If we've already discussed an option, we'll just list
the available choices; refer back to the previous section to see what they
mean. Some of the new options relate to windows, which we'll be talking
about shortly; for now, you can skim over them.
OPTION 0: KEYBOARD ECHO
Choices are words (default), letters, letters with no interrupt, none and
none with interrupt. With "letters" each new letter typed flushes the
speech buffer. This may be annoying to users with the old model Echo
GP/PC, which squeaks obnoxiously when being flushed. "None with interrupt"
doesn't echo your keys, but does shut up the synthesizer each time you hit
a key. This is useful for things like long menus where you want to shut up
the synthesizer as soon as you make a selection, even though you haven't
heard the whole menu yet.
OPTION 1: VERBOSITY
This controls how "chatty" Tinytalk is. Choices are noisy (everything
spoken), quiet (everything but immediate (DOS/BIOS) output spoken) and
silent (nothing spoken unless in response to a hotkey or review command).
OPTION 2: PUNCTUATION
This controls what punctuation, if any, gets pronounced when reading text
in application mode; it does not affect keyboard echo or review mode.
Choices are all (default), some, user and none. When you set this option
to "user," Tinytalk will pronounce only those punctuation characters that
you specifically select (see Section 9).
Regardless of this setting, Tinytalk will pronounce all punctuation if
you're doing anything that reads a character at a time (otherwise you'd get
disconcerting "dead spots" as you moved the cursor).
OPTION 3: AUTOMATIC POP-UP WINDOW DETECTION
Choices are off (default), no repeat (window is read only once unless it
has lightbars), repeat (window is re-read if the text inside it changes)
and beep on repeat (window is read the first time it pops up or if it has
lightbars; subsequent changes result in a beep). This is off by default
because auto pop-up detection may slow some older computers down; this
should not be a problem except in some telecommunication programs where the
slowdown might cause incoming characters to be missed.
OPTION 4: FORMS MODE
Choices are off, left and right. Left is for applications that put the
cursor at the beginning of the field they move into (such as Dbase); right
is for applications that put the cursor at the end of the field (such as
OPTION 5: HORIZONTAL OUTPUT
This determines what Tinytalk will read when you use a horizontal cursor
movement key. Choices are:
Lines: read the entire line the cursor moves to.
Words: read the word the cursor moves to.
Characters: read the character the cursor lands on. This is the
Bars: if there's more than one video attribute on the line with the
cursor, read only the part of the line around the cursor that has the
same video attributes as the character under the cursor (note that this
won't always track lightbar menus, because many programs don't actually
move the cursor when drawing lightbars).
Window lines: if the cursor is between vertical lines drawn on the
screen, read only the text between those lines.
Paradox columns: this is intended for use with Borland's Paradox
database. Tinytalk will follow the lines up until it sees a column
title, read the title and then read the portion of the current line
between the lines.
Columns: Tinytalk will read the part of the line around the cursor,
stopping on either side if it sees two or more spaces. You'd use this
setting if, for example, you were in WordPerfect and editing a document
organized into columns.
If you select "window lines" or "columns" and you have a floating window
defined (see Section 4), Tinytalk will read the portion of the window above
the text before reading the text.
Regardless of this setting, Tinytalk will read a single character if a
horizontal move causes the cursor to move exactly one character to the left
OPTION 6: VERTICAL OUTPUT
This determines what Tinytalk will read when you use a vertical cursor
movement key. The choices are the same as for horizontal output, except
that the default is to read lines.
OPTION 7: BLANKS
This determines how Tinytalk reads blank lines when moving vertically or
reading portions of the screen (in review or via hotkeys). Choices are
off (default) and on. If this option is turned on, blank lines will be
announced as "blank"; otherwise they will be silent.
OPTION 8: PHONETICS
Choices are off (default) and on. If this option is turned on, operations
that read a character at a time will pronounce letters phonetically
("able," "baker," etc.).
OPTION 9: TIMEOUT
Determines how long Tinytalk will wait before forcing out the last word or
part of a word displayed. When a program uses immediate output (for
example, when your DOS prompt is displayed), the synthesizer has no way to
tell whether or not the last word sent out is actually finished.
Therefore, Tinytalk forces the synthesizer to speak the last word sent
after a delay. Normally this is a quarter-second, but sometimes (like when
chatting with someone in a terminal program) the delay is too short and
words get spelled out. Choices are quarter-second, half-second, one second
and two seconds.
OPTION A: STABILITY TIME
When Tinytalk automatically monitors windows, it waits for a window to stop
changing before reading it. This option controls how long Tinytalk will
wait; the only time you need to change it is if you find that Tinytalk is
trying to read windows before the application program has completely
updated them. The choices here are simply relative numbers.
OPTION B: SHUTUP TIME
Determines how long Tinytalk will wait when using the timed shutup command.
Choices are 1 second, 5 seconds (default), 20 seconds, 60 seconds and
indefinite. If you select "indefinite," immediate output will stay off
until you hit a key.
OPTION C: ACTION WHEN ENTER OR TAB IS PRESSED
If this option is turned on, Tinytalk will treat the tab, shift-tab and
ENTER keys as vertical cursor movement keys. Choices are off (default) and
OPTION D: KEYBOARD ECHO PUNCTUATION
Determines what punctuation, if any, is pronounced when echoing keystrokes.
The choices are the same as for the reading punctuation option. Tinytalk
maintains separate user-defined punctuation tables for text reading and
keyboard echo, so you can, for example, arrange to have some punctuation
symbols pronounced when you type them but not when reading text.
OPTION E: CAPS IDENTIFICATION
Setting this to "on" will cause Tinytalk to identify capitalization. If a
word begins with a capital, it will say "cap" before reading the word. If
the word has more than one letter and all of them are capitalized, it will
say "all caps" and if the word has capitals in the middle (as in some
trademarks) it will say "mixed case." If you set this option to "review
only," Tinytalk will identify capitalization when you're in review mode,
but ignore it when you're out of review. Caps identification is off by
OPTION F: SPELL WORDS WITH DIGITS
If this option is on, Tinytalk will spell out any word that contains both
letters and digits (such as ham radio callsigns). It is on by default.
OPTION G: WORD TERMINATOR
This option controls how Tinytalk determines the end of a word when you're
moving the cursor word-by-word. "Non-alpha" means that Tinytalk will read
up to anything other than a letter or digit (for example, it will stop at a
hyphen); "space" means that it will read up to the next space. You should
set this option to match the way your word processor or text editor moves
OPTION H: WINDOW ORDER
We've mentioned before that you can define up to 10 windows on the screen,
and hinted that Tinytalk can automatically monitor them. This option
controls what happens when you have more than one automatically monitored
window and two or more of them change at the same time. Choices are
"position" (Tinytalk will read the windows in top-to-bottom, left-to-right
order) and "number" (Tinytalk will read lower-numbered windows first). The
default is to read windows by position.
OPTION I: ATTRIBUTE CHANGE ANNOUNCEMENT
As we mentioned before, Tinytalk can tell you when video attributes like
color change in the middle of some text you're reading. This option lets
you set attribute-change announcements to off, on, and review only. If you
turn this option on, all text except for immediate BIOS output (which
normally doesn't use attributes) will be checked for attribute changes.
Whenever a change occurs, you'll hear it read as a color pair (for example
"white on blue" in the middle of the text.
OPTION J: GRAPHICS CODE ANNOUNCEMENT
This option determines whether or not Tinytalk will announce the 3-digit
ASCII codes for graphic characters. It is on by default.
OPTION K: REVIEW MODE PUNCTUATION
Determines what punctuation is pronounced in review mode. The choices are
the same as for the reading and keyboard echo punctuation options.
OPTION L: INDEPENDENT CURSOR TRACKING
If this is set to "on," Tinytalk will move the independent cursor to the
system cursor whenever the system cursor moves. It is off by default.
OPTION M: LOCK ANNOUNCMENT
If this is on, Tinytalk will announce changes in lock states whenever a key
like Caps Lock is pressed. It is off by default.
OPTION N: INDEXING
As we mentioned back in Chapter 3, some synthesizers have an "indexing"
feature that lets them tell Tinytalk how far along they've gotten when
speaking text. This option lets you tell Tinytalk whether to use indexing
and how much text makes up an "index unit." Available options are off
(don't use indexing), line (keep track of each line spoken) and word (keep
track of each word spoken). You'll probably want to set this option to
"word" unless you have a synthesizer that tends to pause between words if
you're using word-level indexing.
Tinytalk presently supports indexing on the following synthesizers: newer
models of the internal Doubletalk, all models of the Doubletalk LT, newer
models of the Litetalk, newer models of the Echo PC, the Audapter, all the
Accents, the internal Echo, the SoundBlaster, the Speech Thing, the Dectalk
PC, the Prose 4000 and the internal-speaker demonstration.
OPTION O: HIGHLIGHTING
This option turns text highlighting on or off. Highlighting requires
indexing; Tinytalk will highlight lines if Option N (indexing) is set to
"line" and will highlight words if it's set to "word." You can set the
foreground and background colors used for highlighting; see below.
OPTION P: WORDSTAR KEYS
If this option is turned off, Tinytalk doesn't treat the Wordstar-style
cursor keys (control-e, control-x, control-s, control-d, control-a,
control-f and control-y) as cursor movement keys. The option is normally
on; you only need to turn it off if you're using an application that uses
these keys for some other purpose.
OPTION Q: LIGHTBAR SCANNING
This controls whether Tinytalk looks only at background attributes
(default) or both foreground and background attributes when trying to guess
OPTION R: TYPEOVER ALERT
If this option is turned on, the speaker will beep when you type a
character and your cursor is within three characters of a non-blank
character. You would use this option if you had loaded a blank form into a
word processor and wanted to be sure you weren't typing over something.
You can set the right margin bell by pressing W, typing a column number,
and pressing ENTER. Anytime you cross the margin when typing, a bell will
ring. You can turn the bell off by entering a column number of zero.
To set the video attributes used for text highlighting, press Alt-H. You
can then set the foreground color by pressing F9 (each time you press it,
it will step to a new color) and set the background color by pressing
Shift-F9. When you have the color combination you want, press ENTER.
SECTION 3: NAVIGATION
These commands let you move around and read parts of the screen. When you
enter review mode, Tinytalk saves the video cursor's location. Navigation
commands will move the cursor (which helps if someone is watching over your
shoulder). When you leave review mode, the cursor goes back to its
original position unless you tell Tinytalk to "route" the cursor.
You can move the cursor up,down,left, or right by using the arrow keys or
their Wordstar equivalents (control-e, control-x, control-s and control-d).
As you move the cursor vertically, you'll hear the line under the cursor;
As you move horizontally, you'll hear the character under the cursor. You
can move the cursor forward one word with control-rightarrow or control-f
and you can move it backward one word with control-leftarrow or control-a.
You can go to the beginning of the current line with the home key, and to
the end of the current line with the end key. These two keys will read the
character the cursor lands on.
You can go to the top left corner of the screen (line 1, column 1) by
pressing the Page Up key, or to the bottom right corner (normally line 25,
column 80) with the Page Down key. You can go directly to any line by
pressing L, typing the line number (usually 1 through 25; if you have an
EGA or VGA video card, you may be able to display more than 25 lines) and
pressing ENTER. This will move the cursor to column 1 of the appropriate
line, and read the line. You can move the cursor to any column of the
current line by pressing H, typing the column number (1 through 80) and
pressing ENTER. This will read the character in the column you selected.
When using the L and H commands you can also specify relative cursor
movement by using a plus or minus sign before the line or column number.
For example, L +5 ENTER would move you down five lines and H - 10 ENTER
would move you left 10 columns.
You can search the screen for box corner graphic symbols (useful when
setting up windows) by using the T and B commands. Pressing T moves the
cursor to the next top-left-corner graphic symbol, and pressing B moves the
cursor to the next bottom-right-corner graphic symbol. Note that there may
be more than one of each such symbol on the screen at the same time.
You can search the screen for a word or phrase by pressing the forward
slash key, typing the word or phrase you want (each letter you type will be
echoed) and pressing ENTER. Tinytalk will begin its search with the
character after the current one (this makes repeat searches easier), move
the cursor to the first character of the word or phrase, and read the line
it's on. If the search is unsuccessful, the cursor won't move. Search
phrases will not be matched across lines. To search for the next
occurrence of the word or phrase, press the slash key immediately followed
You can find out what line and column the cursor is on by pressing A. You
can tell Tinytalk to warn you when you're moving over characters in a
certain color by putting the cursor on such a character and pressing X.
This is called "protected attribute alert" and is useful when you're
designing database screens or the like. Each time you move the cursor to a
character with the protected attribute (whether in review mode or in
application cursor tracking) Tinytalk will give a short buzz. You can turn
off protected attribute alert by pressing U.
You can move the cursor forward until it encounters an attribute change by
pressing Control-V. If there are no more changes, you'll hear "not found";
otherwise you'll hear the attribute the cursor landed on.
READING PARTS OF THE SCREEN
You can re-read the current line by pressing the space bar. You can read
from the cursor to the end of the current line by pressing E, or from the
start of the current line to the cursor by pressing S. You can read from
the current line to the bottom of the screen by pressing G, or read the
entire screen by pressing Z. You can read the word the cursor is on by
pressing the comma key, or read the character the cursor is on by pressing
the equal key; these work just like the corresponding hotkeys in
application mode. You can phonetically spell the character the cursor is
on by pressing the period key. You can force the next text you read to be
spelled by pressing the grave accent key
You can find out the exact ASCII value of the character under the cursor,
as well as its video attributes, by pressing V. The ASCII value will be
read as a decimal number; the attributes will be read as foreground color
on background color. (NOTE: many programs will use the full set of color
attributes even if the system has a monochrome display. Tinytalk
deliberately reads the color names because while two combinations of color
attributes may look the same on a mono monitor, they are distinct as far as
functions that read lightbars and the like are concerned. To save memory,
two "special case" colors are read a bit funny: gray comes out as "light
black" and yellow comes out as "light brown." Finally, background colors
with the intensity bit set are always announced as "blinking" even if you
have an EGA or VGA display that allows high-intensity background colors.
For example, if the actual color were gray on yellow, it would be read as
"light black on blinking brown").
You can read a defined window by pressing the appropriate number key, 0
through 9. Note that this is different from application mode, where you
use Alt along with the number. This is because Alt-0 through Alt-9 are
used for defining windows. We've been talking about defined windows for
quite some time now, and in the next section we're finally going to show
you how to define them.
SECTION 4: WINDOW DEFINITION COMMANDS
As we've mentioned earlier, windows are sections of the screen that mean
special things to your application. Each window is defined by the position
of its top left corner and its bottom right corner. When we talk about
"corners" we mean the corners of an imaginary rectangle you could draw on
the screen. Windows do not have to have corner graphic symbols (such as we
talked about earlier) displayed. Tinytalk lets you define up to 10 such
windows, which are numbered 0 through 9. Each configuration can have its
own set of 10 windows. You already know that you can read the contents of
a window by pressing a key in either application or review mode. You can
do a lot more with windows, but first, let's learn how to set them up.
SETTING UP A WINDOW
The first step in setting up a window is to select it. You do this by
holding down the Alt key and typing the window's number (Alt-0 through
Alt-9). When you do this, Tinytalk will tell you the window's current
dimensions and its settings. If, for example, you picked window 1 by
pressing Alt-1 and you had never set the window before, you'd hear "window
1 from line 1 column 1 to line 1 column 1 plain all." The line and column
numbers after the "from" are the top left corner, and the numbers after the
"to" are the bottom left corner. Since the window isn't presently in use,
both corners are in the same place. "Plain" and "all" are the window
settings; you'll learn what these mean shortly.
When you select a window, Tinytalk goes into "window definition mode." In
this mode, you set the window's boundaries by specifying the top left and
bottom right corners. You do this by moving the cursor to the top left
corner and pressing ENTER. Tinytalk will say "top left." Next you move
the cursor to the bottom right corner and press ENTER a second time.
Tinytalk will say "bottom right" and the window will be set; you'll be out
of window definition mode and the ENTER key will behave normally again.
Continuing our example, if you wanted to set window 1, which you just
selected, to read the first four lines of the screen, you'd move the cursor
to line 1, column 1, press ENTER, move the cursor to line 4, column 80, and
press ENTER again.
Tinytalk will say "illegal" if you try to set a bottom right corner that's
above or to the left of the top left corner. If this happens, select the
window again and define the corners properly. If you try to set the bottom
right corner the same as the top left corner, Tinytalk will say "window
deleted." Window definitions are stored in a portion of memory that's
shared between configurations; deleting a window frees up the memory that
the window took. If you ever get an "out of space" message when defining a
window, it means that there was no room to store it's definition. If this
happens, you should look for unneeded windows in all your configurations
and delete them.
Sometimes you want to hear how a window is set up, but you don't want to
change it. In this case you can get out of window definition mode by
pressing ESCAPE after selecting the window. If you press ENTER after
selecting a window without first moving the cursor, Tinytalk will announce
"entering window definition mode" and "swallow" the ENTER. This is to keep
you from inadvertently changing a window definition.
If you're reading this for the first time, now would be a good time to play
around with setting up and reading some windows.
WHAT YOU CAN DO WITH WINDOWS
Defined windows can be used for four different purposes: manual reading,
silencing, automatic reading and automatic configuration switching. You
already know how to read windows manually. As we mentioned earlier,
programs sometimes talk too much; for example, a text editor might insist
on telling you the row and column where the cursor is each time you type a
character. You can tell Tinytalk to treat any of the windows as silent
areas, which means that BIOS output and cursor movements within the window
will not be spoken. On the other hand, many programs don't talk enough
because they write things directly to screen memory rather than using BIOS
output. To get around this, you can tell Tinytalk to monitor any of the
windows and automatically read them to you when they change. Finally,
Tinytalk can look in a window for text that indicates that you've changed
to a different sub-screen of your application program, and change
configurations automatically (a good example is the editing and spell-
checking screens in WordPerfect).
The window settings that we talked about earlier determine how Tinytalk
uses a window. Each window has two settings. The first one, which was
"plain" in our example, tells Tinytalk WHEN to look at the window. We call
this setting the "when" setting, and we set it by pressing the F8 key after
defining the window. Each press of F8 selects another choice for this
setting (there are seven choices). For example, "plain" means that
Tinytalk should not automatically monitor the window; it's going to be used
for manual reading only.
The second setting, which was "all" in our example, tells Tinytalk WHAT to
read when reading the window. We call this, naturally enough, the "what"
setting and set it by pressing Shift-F8. There are ten choices for this
setting; "all" means to read the entire contents of the window.
In the following discussion, we're going to talk about a window being
"activated." This means that Tinytalk has detected a change in the window
that agrees with that window's WHEN setting and that Tinytalk is about to
read the window. Reading a window manually doesn't count as activation.
WHEN WINDOWS GET READ
There are seven choices for a window's WHEN setting:
1) "Plain" means that the window will not be monitored automatically; it
will be read only if you specifically ask to hear it by using a window-
reading hotkey in application mode or a window-reading command in review
mode. This is the default setting.
2) "Silent" means that BIOS output and cursor movements within the window's
boundaries will not be spoken.
3) "Watch" means that Tinytalk will automatically monitor the window and
read it whenever its contents change.
4) "Popup" is a special type of watch window. The window will not be read
unless there's a box drawn around it.
5) "One-shot" is also a special type of watch window. The window will not
be read unless it has a box, and it will not be read again if changes occur
within the box (this is needed if, for example, there's a clock being
displayed in the box).
6) "Triggered" means that the window will be read whenever ANOTHER window
that you specify activates. You use this setting when you want to read
part of the screen only when another part changes; for example, you may
want to hear an entire status line, but only if there's a message in the
first half of the line.
7) "Search" means the window will activate only when it changes and one of
its lines begins with a word or phrase that you specify. Search windows
are often used for automatic configuration switching.
Remember that you choose a window's "when" setting by pressing F8 after
setting up the window. If you pick "triggered" or "search," Tinytalk will
also need to know which window to trigger from or what text to search for.
If you choose "triggered", you will hear the prompt "triggered by." Type
the number of the window you wish to trigger from and press ENTER. If you
choose "search" you will be prompted "search for." Type in the text that
you want to look for and press ENTER. Tinytalk's matching process is case-
sensitive, so be sure that you use the same capitalization that the
application program uses when displaying the text.
If you need to change the trigger number or search string for a window,
press Alt-F8 and you will be prompted again.
You won't need to use the "popup" or "one-shot" settings very often because
automatic pop-up detection can handle most of those kinds of windows.
They're included in case you run into problems with non-standard border
characters or need to set up special conditions for reading pop-up windows.
Tinytalk won't read a watch window if the only changes in it were caused by
text that you typed being displayed. Regardless of the "when" setting, you
can always read a window manually.
WHAT GETS READ IN A WINDOW
Since applications can use windows in different ways, Tinytalk lets you
specify what should be read within an automatically monitored window when
it changes. There are eleven possible choices for a window's WHAT setting:
1) "All" means that the entire window will be read. This is the default
2) "Lightbar" means that only text with a certain video attribute will be
read. Remember that video attributes are properties like colors,
reverse/normal video and highlighting. We'll shortly talk about how to
select this attribute. The most common use of this setting is to read
lightbar menus, but it can be used any time you want to read selectively by
attribute. It's also a good way to read spreadsheets and database browse
screens, which usually highlight cells as you move through them.
3) "Scroll" is used for windows where lines of text scroll in and out of
the window. When text scrolls into the window, you'll hear only the new
text, not the old text that's just shifted in position. File readers and
communication program dialing directories frequently have scroll windows.
This setting should be used when you manually scroll text in a line at a
time by pressing keys; new text scrolling in will interrupt any previous
4) "C-scroll" (continuous scroll) is used for windows where text scrolls in
automatically. With this setting, new text scrolling in will not interrupt
speech, and Tinytalk will pause the application and read the window if an
unread line of text is about to scroll out of the window. You might use
this setting if you had a terminal program that scrolled text and wrote it
directly to the screen.
5) "Floating" is used for reading column titles, such as those found in
spreadsheets or database browse screens. You normally use it in a window
that's triggered by a lightbar window. When a floating window gets
triggered, Tinytalk looks at the lightbar window that triggered it and
reads the section of the floating window that "floats" over the lightbar.
As we mentioned earlier, a typical spreadsheet highlights the cell you're
currently working on, and you usually define a lightbar window to track
this highlight. If you set up a floating window on the line with the
column titles and trigger it from the lightbar window, you'll hear the
appropriate column title each time you move the cell pointer.
Floating windows can also be used together with cursor movement. If you
have one of your cursor movement options set to "window lines" or "columns"
and there's a floating window above where your cursor is, the window will
automatically trigger when you move the cursor. The check register in
Quicken is an example of a place where this is useful.
6) "None" means that the window won't be read at all when it activates.
You use this setting when you're using one window solely to trigger another
one; you'll see an example of this a little later on.
7) "Spell all" means that the entire contents of the window will be spelled
out when the window is read.
8) "Spell lightbar" means that only text with the appropriate video
attribute will be read, and it will be spelled out. You'll see an example
of this later on.
9) "Switch" means that when the window activates, Tinytalk will change to
another configuration that you specify. You normally use this with a
10) "Beep" means that Tinytalk will beep when the window changes, but will
not read any text.
11) "Beep and park" means that Tinytalk will beep when the window changes,
move the independent cursor to the top left corner of the window and
restrict the independent cursor to moving within the window. A typical use
of this option would be for a window where a spell checker shows suggested
spellings for a misspelled word; you might want to review the alternatives
Remember that you choose a window's "what" setting by pressing Shift-F8
after setting it up. You'll usually want to choose the "when" setting
first, but Tinytalk doesn't care which order you set them in.
If you chose the "switch" option, you will be prompted for the
configuration to switch to. You can enter a number, a name, or repeatedly
press the space bar until you hear the appropriate configuration. Press
ENTER when you've got the right one. If you need to change this later on,
press Control-F8 and you will be re-prompted.
The "what" setting normally affects only how a window is read
automatically; reading it manually will read the entire contents. However,
the "lightbar," "spell all" and "spell lightbar" choices affect the way the
window is read manually in application mode (the review-mode manual reading
commands will read the entire contents).
ATTRIBUTES FOR LIGHTBAR WINDOWS
If you choose "lightbar" or "spell lightbar" as a window's "what" setting,
Tinytalk needs to be told what video attribute it should read. One way to
do this is to have Tinytalk try to automatically determine the appropriate
video attribute the first time the window activates; it will do this if you
don't directly specify an attribute. Tinytalk usually does a fairly good
job of picking attributes when dealing with lightbar menus, but it
sometimes gets confused by windows that have text in lots of different
colors. If Tinytalk can tell that it's picked the wrong attributes (for
example, if the window's contents change but the text in the lightbar
attribute doesn't), it will make another choice.
As we mentioned before when we were talking about automatic pop-up windows,
Tinytalk looks only at background attributes when trying to guess lightbar
If Tinytalk picks the wrong attribute, or you know in advance what
attribute you want to read, you have two options. The first is to move the
cursor to a character that you know is displayed in the attributes you want
and press Control-F8. Tinytalk will say "bar" and announce the attributes
as a color pair. The second option is to directly set the attribute by
pressing F9 until you hear the foreground color you want, and pressing
Shift-F9 until you hear the background color you want. Each time you press
F9 or Shift-F9, Tinytalk will announce the current attributes as a color
pair. If you use either option to select the attributes, they'll be
"locked in" and Tinytalk will not try to guess or change them.
If two or more automatically-read windows activate at the same time,
Tinytalk will read them according to your window-order setting (option H in
the settings menu). Tinytalk normally shuts up the synthesizer before
reading a window (only the first one if there are multiple windows). In
some cases, you may need to stop this from happening. A good example is
the WordPerfect spell checking screen. People often like to set up two
windows there: a watch window set to "spell lightbar" to read the
misspelled word and another watch window set to "all" to read the suggested
alternatives. WordPerfect has a habit of pausing for a second or so while
it looks up alternative spellings, and the pause can be long enough that
Tinytalk decides that the windows have stopped changing and starts to read
them. When the second window starts changing again, Tinytalk shuts up and
starts reading it, even though you haven't heard all of the first window.
You can specify whether a window should shut up speech when it's read by
pressing Control-F9 after selecting it. This toggles between the two
choices "shutup" and "no shutup." This only affects what happens when the
window is read automatically; reading a window manually always shuts up
WINDOW SETUP SUMMARY
1) Select the window (Alt-0 through Alt-9).
2) Set the window boundaries by moving to the top left corner, pressing
ENTER, moving to the bottom right corner and pressing ENTER.
3) If all you want to do with the window is read it manually, you're done.
Otherwise press F8 repeatedly until you hear the appropriate "when"
setting. If you select "triggered" or "search," type in the extra
4) Press Shift-F8 repeatedly until you hear the appropriate "what" setting.
If you select "switch," specify the configuration to switch to.
5) If the "what" setting is "lightbar" or "spell lightbar" and you don't
want Tinytalk to guess the attributes, use Control-F8 or F9 and Shift-F9 to
directly set the attributes.
6) If you don't want the window to shut up before being read, press
If you need to change the "when" or "what" settings for a window after
setting it up, you can select the window and then use any of the F8 or F9
commands to change it. Any of these commands will take you out of window
definition mode, so the ENTER key will behave normally after using them.
These commands always act on the most recently selected window.
Pressing alt-C will reset the "when" setting for all 10 windows to "plain";
this is useful when you're experimenting with window setups. It's also
worth mentioning that things will sound a little strange if you have
automatically-monitored windows set up for an application, but you aren't
in that application. In particular, the DOS prompt may get "choked." It's
always a good idea to have a "DOS prompt" configuration with no
automatically-monitored windows, which leads us into the next topic.
SECTION 5: CONFIGURATION-SETTING COMMANDS
We've mentioned configurations a few times before. A configuration
consists of all your speech settings, option settings, window definitions,
hotkey definitions, key labels and punctuation settings (you'll learn how
to set up the latter three shortly). Tinytalk can store up to thirty of
these configurations in memory at once (and can store several groups of
configurations on disk; see chapter 5).
Each configuration has a number, ranging from 0 to 29, and can also have a
name that you give it. If you give a name to a configuration, Tinytalk
will automatically select that configuration when you run an application
program with the same name. Names also let you switch between
configurations without having to remember numbers.
To switch to a new configuration, press C. This command works just like
the Alt-right bracket hotkey. Tinytalk keeps track of whether or not
you've ever used a configuration before. If you pick it for the very first
time (meaning that it doesn't yet contain any settings), Tinytalk will copy
your current settings into it. If you have used it before, Tinytalk will
change your settings to the ones defined in the new configuration.
Once you've picked a configuration, any changes that you make to your
settings or window definitions will be stored in that configuration. For
example, if you pick configuration 1 and then define a window, that window
definition will become part of configuration 1. If you then pick
configuration 2 and define another window, that window will become part of
configuration 2. If you then pick configuration 1, the second window will
vanish and the first one will become defined.
You can give your current configuration a name by pressing N. Tinytalk
will read the current name (or the number if no name has been set) and say
"name." Type in the name and press ENTER (pressing ENTER by itself will
leave the name unchanged).
If you want Tinytalk to load a configuration automatically when you run an
application, make sure that the name you select is the same as the
program's name (without any command line arguments). Don't include an
extension (.COM or .EXE). Configuration names shouldn't contain any
spaces; if they do, you won't be able to load them by typing in the name.
NOTE: The auto-configuration feature works only when DOS loads an
executable program. Tinytalk has no way to detect when you run a batch
file or an internal command like DIR. Tinytalk will, however, detect a
program invoked from within a batch file or from another program (such as a
SECTION 6: A WINDOW AND CONFIGURATION EXAMPLE:
The most common question we get asked on the phone is "what's the best way
to set up a configuration for WordPerfect?" While there may not be any one
"best" way, we'll walk through creating a set of configurations that lots
of people have found useful. The file SAMPLE.TTK contains these
Before we get started with WordPerfect, we'll want to create a
configuration for ordinary, DOS-prompt stuff. Go into review (by pressing
Alt-Enter), press C to load a configuration, press 0 and hit enter. Set
your synthesizer parameters and other settings to your liking. Press N to
give the configuration a name, enter COMMAND and press enter. Naming this
configuration as COMMAND guarantees that if you shell out to DOS from
within a program, this configuration will be loaded.
The first thing to realize is that WordPerfect uses the screen in different
ways depending on what section of the program you're in, and you can't try
to shoehorn all the different screens into a single configuration. We'll
be creating separate configurations for the various screens and tying them
together with "search" and "switch" windows. For now, we'll concentrate on
the main editing screen and the spell-checker screen.
WordPerfect's main screen has 24 lines of text and a status line at the
bottom, so we'll want to set up two windows. As you'll see in a moment, a
complication involving the status line means we'll actually need three.
The first step is to choose a configuration number (we'll pick number one).
We enter C, hear "load config," press 1 and hit ENTER. We'll want to give
this configuration the name "WP" since it's the one you'll want to have
auto-loaded when you first come into WordPerfect. Press N and you'll hear
"1 name." The "1" is spoken because you haven't named the configuration
yet. Type "wp" and press ENTER.
We want to make our first window (window 1) cover the first 24 lines of the
screen. This means that the top left corner should be at line 1, column 1
and the bottom right corner should be at line 24, column 80. Press Alt-1
to select window 1. Tinytalk will say "window 1" and read you the current
settings for the window, which will probably be irrelevant. Remember that
you're now in window-setting mode and that the ENTER key will be used to
mark corners. Our first task is to get the cursor to the top left corner.
The quickest way to do this is to press the PgUp key, since that moves the
cursor to line 1, column 1. Next we press ENTER to mark the top left
corner; Tinytalk will say "top left" to confirm. Now we need to get the
cursor to line 24, column 80. Press L and Tinytalk will ask you "line."
Enter 24 and press ENTER. Tinytalk will move the cursor to line 24, column
1 and read the line. Note that pressing ENTER didn't mark the corner yet
because it was part of your response to the L command. The quickest way to
get over to column 80 is to press the END key. Now press ENTER and
Tinytalk will say "bottom right."
Since WordPerfect writes directly to the screen, we want to automatically
monitor this window so that we'll hear it when it changes. We do this by
setting its "when" type to "watch." Repeatedly press F8 until you hear
"watch." You'll also need to set the "what" type to "scroll" since you
won't want to hear the entire window repeated just because the text moved
up or down a line. Press Shift-F8 until you hear "scroll."
Now comes the tricky part. WordPerfect uses the bottom line of the screen
for two different purposes. When you're typing and editing, it has status
indicators like row and column counts that change whenever you type a
character. When you call up menus or press command keys, however, it
displays messages and prompts. You'll want to hear the prompts, but you
won't want to hear all the status indicators you every time you type a
It turns out that all the interesting messages start in the left half of
the line. When there's no message, the left half is blank and all the
status indicators are at the right end. To take advantage of this, we'll
set up two windows. Window 2 will activate when the left half of line 25
changes, but won't say anything. Window 3 will be triggered by window 2
and will read the entire line. The net effect will be that you'll hear the
entire bottom line if the left half changes, but not if the only changes
are in the right half.
Press Alt-2 to select window 2. Press L 25 ENTER to put the cursor on line
25, column 1 and press ENTER to mark the top left corner. Press H 40 ENTER
to move the cursor to column 40 and press ENTER again to mark the bottom
right corner. Now press F8 until you hear "watch," and press Shift-F8
until you hear "none," since you don't want the half-line to be read to
Now press Alt-3, put the cursor on line 25, column 1 (if you haven't moved
the cursor after setting up the second window, you can press HOME) and
press ENTER to mark it. Then press END to put the cursor on column 80 and
press ENTER. Now press F8 until you hear "triggered by," type 2 and press
ENTER. You don't need to do anything with Shift-F8 this time because the
default "what" setting is "all" which is exactly what you want to hear.
That wraps it up for the main editing screen. The spell-checking screen is
organized as follows: the first 11 lines show the text around the word in
question, with the word itself displayed in a different color from the rest
of the text. Line 12 has position indicators. Lines 15 to 24 show a list
of suggested spelling for the word, and line 25 presents various menus and
prompts. As you can see, this is a completely different layout from the
editing screen, and trying to make one set of windows work well with both
screens would be impossible.
When you come into the spell-checking screen, line 25 begins with "Not." To
detect this, we'll set up window 4 in our edit-screen configuration as a
search window to look for this. We'll make its action be to switch us to
configuration 2, which we'll set up for the spell checker. Press Alt-4,
put the cursor on line 25, column 1 (with HOME if you haven't moved the
cursor since setting up the previous window) and press ENTER. Now move the
cursor to column 3 (by pressing the right-arrow key twice) and press ENTER
again. Press F8 until you hear "search for" and type "Not" (make sure the
first letter is capitalized and the rest are in lower case, since search
windows require an exact match and that's the way WordPerfect displays it.
Now press Shift-F8 until you hear "switch to," type "2" and press ENTER.
Press C, 2, ENTER to get into configuration 2. We'll set up the first 11
lines of the screen as an automatically monitored spell lightbar window so
that you'll hear the questionable word spelled out. Press Alt-1 to select
window 1, PgUp to go to line 1, column 1, ENTER to mark the top left
corner, L 11 ENTER END to go to line 11, column 80, and ENTER to mark the
bottom left corner. Press F8 until you hear "watch" and Shift-F8 until you
hear "spell lightbar."
We'll set up lines 15 through 24 (the suggested words) as a regular watch
window so you'll hear all of them listed. Press Alt-2, L 15 ENTER ENTER L
24 ENTER END ENTER to size the window; press F8 until you hear "watch." You
don't need to use Shift-F8 because the default setting is "all." You do,
however, need to press Control-F9, at which point you'll hear "no shutup."
The reason for this is that WordPerfect has the somewhat annoying habit of
pausing for a few seconds while it searches for spelling suggestions. This
means that window 2 will often activate after window 1 does, and you don't
want that activation to shut up the synthesizer while it's reading the
We'll set up the bottom line as a watch window. Press Alt-3, L 25 ENTER
ENTER END ENTER and press F8 until you hear "watch." Now all we need is a
way to get back to configuration 1 when spell-checking is done and the
editing screen comes back. We'll do this by looking for the word "Pos" in
column 70 of line 25. Press Alt-4, L 25 ENTER H 70 ENTER ENTER, move the
cursor two characters to the right, press ENTER again, press F8 until you
hear "search for," type "Pos" (first character capitalized) and press
ENTER, press Shift-F8 until you hear "switch to," type "1" and hit ENTER.
SECTION 7: REMAPPING HOTKEYS
You can change the keystrokes for any of the hotkeys discussed in Chapter
3, Sections 4 and 5. This is called "remapping" a hotkey, and there are
two ways to do this. The first way, "global remapping" changes the key in
every configuration. The second way, "local remapping" changes the key
only in a single configuration. To remap a hot key, press R for global
remapping or Alt-R for local remapping. Tinytalk will say "remap key."
Press the hotkey you wish to change. Tinytalk will say "to." Press the key
combination you want to use in place of the old hotkey.
For example, let's say you don't like to use Alt-space to read the current
line and would rather use Control-L. However, one of your application
programs uses Control-L for its own purposes, so you want to use Alt-C
instead when you're running it. This means that you want to globally remap
Alt-space to Control-L, and then locally remap Control-L to Alt-C in the
configuration for that application. To do this, press R, Alt-space, and
Control-L. Then select the configuration for the application and press
Alt-R, Control-L and Alt-C.
If you pick the wrong key to remap, press ESCAPE when you're prompted for
the "to" key. If Tinytalk says "conflict" when you enter the "to" key, it
means that that key is already in use as a hotkey for something else (in
the above example, if you decided that you wanted to globally remap some
other hotkey to either control-L or Alt-L, you'd get a "conflict" message).
A hotkey can consist of one regular key and up to 4 modifier keys (left-
shift, right-shift, control and alt). On 101-key keyboards, the left and
right control keys are considered the same, as are the left and right alt
keys. You can make up a hotkey from modifier keys alone if you want.
Tinytalk treats each key on the numeric keypad as a pair of keys; one with
numlock on, and one with numlock off. This lets you assign hotkeys (such
as the independent cursor keys) to the numeric pad without interfering with
the regular cursor keys even if you have an 84-key keyboard. The separate
cursor keys on 101-key keypads are considered different from the numeric
pad keys; for example, you could remap one hotkey to the "4" key with
numlock off, another to the "4" key with numlock on, and still have the
separate leftarrow key work normally.
CREATING MENU SHORTCUTS
As we've mentioned several times before, you can create your own hotkeys
that enable to change options on Tinytalk's menu without having to go into
review mode. You do this by going into the menu, moving to the option you
want, and then pressing control-S (to define a global hotkey) or Alt-s (to
define a local hotkey). Tinytalk will prompt you with "shortcut"; press
the hotkey you want to use as the shortcut. Pressing ESCAPE will remove
any shortcut you've defined for this menu option.
Once you've created a menu shortcut hotkey, pressing it will step you
through the choices for the option, just as if you were in the menu.
SECTION 8: LABELLING KEYS
You can tell Tinytalk to read a "label" whenever you press a certain key.
For example, you could tell it to say "enter" every time you hit the ENTER
key, or you could tell it to announce the Shift, Control and Alt keys
whenever they're pressed. As with hotkey remapping, you can label keys
either globally or locally.
To label a key, press D for global labelling or Alt-D for local labelling.
Tinytalk will say "label key." Press the key you want to label. Tinytalk
will say "as." Type in the word or phrase you want to hear and press ENTER.
To delete a key label, press D or Alt-D, press the key, and then press
ENTER without typing anything at the "as" prompt. Tinytalk will say
The same rules about regular and modifier keys that were discussed under
hotkey remapping apply to key labelling.
SECTION 9: USER-DEFINED PUNCTUATION AND PRONUNCIATION
You can specify what punctuation characters will be pronounced when you
have reading punctuation set to "user" by pressing P. Initially, all the
punctuation characters are set to be pronounced. Pressing a punctuation
key will turn that symbol off if it was on and on if it was off. The other
review-mode commands aren't available while you're in punctuation-setting
mode. Pressing ENTER takes you out back to regular review mode. Setting
user-defined keyboard echo punctuation and review-mode punctuation works
the same way, except that you press control-P (for keyboard echo) or Alt-P
(for review mode) rather than P.
For example, if you wanted to hear all the punctuation symbols except the
period, comma and semicolon you'd press P, period (you'd hear "period
off"), comma, semicolon and ENTER. If you later decided you wanted to hear
the period, you'd press P, period (you'd hear "period on") and ENTER.
You can also specify how punctuation characters should be pronounced; this
specification applies regardless of whether you have punctuation set to
"user" and applies to keyboard, reading and review punctuation. You can
specify pronunciations globally or locally, just as you can for hotkeys or
key labels. For example, you might want to have the period read as "dot"
in most cases, but have it read as "period" when you're proofreading word-
processor text and "point" when you're working with figures in a
To specify how a punctuation character should be pronounced globally, press
O. Tinytalk will prompt you with "say" at which point you should press the
punctuation character you want to set. Tinytalk will then say "as"; type
in the word or phrase you want and press ENTER. For example, to have the
period pronounced as "dot," press O, press the period, type "dot" and press
ENTER. To specify a local pronunciation, use Alt-O instead of O.
SECTION 10: MISCELLANEOUS COMMANDS
You can find out the status of the caps lock, num lock, scroll lock and
insert keys by pressing K.
A while back we mentioned that you can give meaningful names to video
attributes. You do this by using the Alt-V command. When you press Alt-V,
Tinytalk will say "attribute," read the attributes for the character under
the cursor, and say "is." At this point you can type in whatever you want
to hear for that attribute and press ENTER. For example, if the cursor
were on text that was colored yellow-on-blue, Tinytalk would say "attribute
light brown on blue is." If you typed "italic" and pressed ENTER, Tinytalk
would say "italic" whenever it was announcing that particular attribute
(which makes sense if you're using WordPerfect). If you want to name an
attribute other than the one under the cursor, you can select it by using
F9 and Shift-F9 after pressing Alt-V but before pressing ENTER. These keys
will work the same way they do when you're setting window attributes.
Attribute names are local to your current configuration; the same
attributes can have different names in different configurations.
You can also pick your own names for graphic characters. Like punctuation
symbols, these names can be either global or local. To define one, press
Control-G for a global name or Alt-G for a local one. Tinytalk will say
"say," at which point you type in the ASCII code for the character (the
code that you hear after "graphic," "line draw" or "corner" and press
ENTER. Tinytalk will then say "as"; type in the name and press ENTER.
You can exit review mode and route the application's cursor to where the
review cursor is by pressing semicolon instead of ENTER. See the earlier
discussion on cursor routing in Chapter 3, Section 5 for more information
You can unload Tinytalk from memory by pressing Control-U. Don't do this
if you're not at the DOS prompt or if you've installed memory-resident
programs after running Tinytalk, since you may wind up "un-installing"
parts of these programs as well.