[RU]   EN

How To's

How to create javabook
  • Run TCBR shell (MS Windows program)
  • Select model of your phone or similar model
  • Add e-books stored on computer disk
  • Split text to chapters if needed
  • Choose fonts (Windows fonts or standard phone fonts), colors and rotation
  • Configure javabook options
  • Define result folder and name of the javabook
  • Build javabook (jar and jad files)
  • Install created javabook to the phone - it contains both the reader program and the e-book text
  • Run installed javabook in phone and enjoy reading
For details on how to use TCBR Shell, see TCBR Shell manual.

If your phone is modern and is middle/high end, it probably can read text files stored in phone' own memory or on its flash card. This is called "JSR-75" support or File access.

Your phone can read text files off phone/flash card, if it is
  • Siemens
  • Motorola supporting Proprietary File API, e.g. С650/С380, В180/В220, V300/V500/V600, V625/635, V3 Razr.
    Use MotoMidletManager to unlock File API for these phones.
  • phone supporting JSR-75
Most modern SE, Nokia, Motorola and Samsung phones allow file access.

To check if your phone can access files, check out the Java info ("Info>Show Java info"). If the book info contains File access:YES string, you're lucky - there's no need to create new JAR for each book. Just configure and install "empty" BookReader once, and open book files with it.

For such phones,
  • Run TCBR shell (MS Windows program)
  • Select phone model that supports file access (has flash card icon in model list)
  • Create JAR as usual, but do NOT add e-books in shell
  • Install created JAR to the phone, it contains no books, only BookReader program
  • Copy some books to phone memory or flash card (plain text and FB2 books are supported)
  • Run installed javabook application in phone, find stored books using file browser via "Books>Open file..." and enjoy.
Dealing with file books is explained in details in How to read books from files chapter.
How to install a JavaBook to a phone
Java book can be installed to any compatible mobile phone via WAP download. This is not very convenient, so there are other ways for most phones.

Many phones readily accept and install Java programs received via BlueTooth, IrDA or cable connection (e.g. Siemens, SE, Motorola). For some brands, Java books should be installed specifically:
  • Nokia: use Nokia PC Suite
  • Samsung: use specific 3rd party tools written by the user community. Russian site SGH.ru hosts tools allowing unrestricted Samsung phones access.
How to read javabook
When javabook app is installed and started (in phone), it displays e-book text right away, or lists included e-books (if several books have been added in shell). Select book (if needed), and it will be displayed on the screen.

Use joystick or direction buttons to scroll through the text, press Select button to bring up menu (see How to scroll text, How to use menu).

You can open another books (from the same javabook) via "Books>Open book...". If a book contains several chapters you may jump between them via "Goto>Jump to chapter".

Exit javabook by selecting "Exit" from javabook menu. Next time javabook will start at the position you left it.
When reading process is interrupted by incoming call or SMS, the position is stored also.

TequilaCat BookReader can do many things, every action and most settings can be accessed via javabook menu, and every menu item can be bound to your phone keys (or sensor screen tap).

You can
  • select between several fonts (see How to change fonts), including rotated fonts to fit your screen dimensions best,
  • search through text and in the internet (see How to search in book)
  • add bookmarks (see Bookmarks)
  • control backlight (if your phone supports this feature)
  • auto-scroll text with adjustable delay (see How to auto-scroll text)
  • configure almost every setting of the BookReader
Explore this document to see what you can do.

How to scroll text
There are lot of phones of different design, having different controls and navigation in menus. But they all have direction keys (or joystick or D-pad or jog wheel) to move between items, and Dial key aka Big Green Button aka joystick center button, used to activate highlighted items.
Below they are referred as Direction keys (LEFT/RIGHT/UP/DOWN) and SELECT button.

By default the SELECT button opens menu and direction buttons (arrows, joystick, D-pad, jogdial wheel) scroll text.

One key pair (left-right) scroll by page, other key pair (up/down) scroll by line.
To suit personal tastes or design of a specific phone, scrolling keys can be swapped: One can quickly swap "by page/by line" scrolling between up/down and left/right key pairs. This is done in "Settings>Scrolling>Scroll by page/line".

The "Settings>Scrolling>" menu allows to configure text scrolling:
  • "Settings>Scrolling>While key pressed" if activated scrolls text while scrolling keys are pressed and held.
  • "Settings>Scrolling>Show incomplete line" specifies if JavaBook should display bottom line even it does not fit the screen entirely.
  • "Settings>Scrolling>Leave one line" defines how many lines are scrolled in page. If enabled, the bottom line becomes 1st visible line on next page, when page is scrolled down.
Please note: The last 2 options can give effect of "missing line" when scrolling by page (see A line is "missing" when scrolling by page).
Using phone keys
By default book reader keys are bound as follows:
  • 1 - show book info and position
  • 2 - show scrollbar/status line (used if it's hidden, see Configuring position indicator)
  • 5 - toggle autoscroll
  • 7 - find in text
  • 9 - find next
  • 0 - show bookmarks menu
  • * - toggle backlight
  • # - show next font
You can redefine keys to activate features or menus you use frequently (see Redefining JavaBook keys).
If your phone has sensor screen, you can also bind actions to tapping of 9 screen sections (3x3 matrix).
How to use menu
By default pressing a SELECT key brings up the main BookReader menu
In menu, use
  • UP/DOWN buttons to move between menu items,
  • LEFT button to leave current menu and return to previous menu or back to text (from main menu),
  • RIGHT button or SELECT to enter submenu
  • RIGHT button to activate menu item like checkboxes, while keeping the menu shown
  • SELECT to activate menu item and return to book
You can assign a button to open last used menu, pressing it will bring you to last menu item you activated.
Also you can swap "open main menu" and "open last menu" buttons via "Settings>Keys>Open last/main menu".
How to change fonts
Java Book can include several fonts each having different face, size, rotation, color and interline space.
E.g. for daytime reading you can use dark letters on lighter background, and for night time - inverse colors, like green on black.

In Shell:
Add and configure all fonts you need. Fonts can be Windows fonts and phone built-in fonts.
  • Windows fonts can be rotated, can be ClearType (look better on phone screens, ClearType should be enabled in Windows when creating JAR).
    Please note: they take a lot of space in JAR file. Also they don't allow for reading hieroglyphic texts like chinese.
  • Phone fonts can display all languages supported by the phone. They take very little space but cannot be rotated.
In JavaBook:
Press # to cycle through all included fonts.

Menu "Settings>View>Fonts>" allows to configure currently selected font.
Some properties apply to all types of fonts, some (size, bold, italic, colors) affect only phone fonts.
How to adjust text display
You can define how text paragraphs are displayed:

"Settings>View>Paragraphs>Left offset" defines left offset of 1st line in a paragraph.

When Off, left offset equals to white space width in current font on current line (it's slightly faster but not so beautiful).
When On, you define offset in points, where 20 points equal to current line height. By default it's 20 (equals to line height)

"Settings>View>Paragraphs>Spacing>" menu defines how paragraphs are separated, i.e. spacing between text paragraphs:
  • "Settings>View>Paragraphs>Spacing>As in text"
    all empty lines in text are preserved (default one)
  • "Settings>View>Paragraphs>Spacing>None"
    all paragraphs are displayed one after one, without empty lines
  • "Settings>View>Paragraphs>Spacing>Single line"
    paragraphs are separated by single empty line
  • "Settings>View>Paragraphs>Spacing>Specified"
    you specify (in 1/20 points of line height) spacing between paragraphs. By default it's 20 (equals to line height)
Current version (beta) has minor bugs if spacing differs from default one ("Settings>View>Paragraphs>Spacing>As in text"). Page up/Page down distance can slightly differ, and there are jerks and visual glitches during smooth autoscroll.

You can define margins around text, in menu "Settings>View>Margins>".
There you can define margins in pixels separately for all screen sides, and specify whether to display those margins or not.
Displaying rotated text
To display a text in vertical orientation (top to bottom or vice versa), add specific font in Shell and set its orientation using direction buttons near the font list.
In the Java BookReader, select this font and the text will be shown rotated.

Functions assigned to 1-9 buttons are "rotated" too, keeping assigned keys under same fingers, following phone orientation.

So far it's possible for Windows fonts only, not for phone fonts (to be fixed in next versions).
How to auto-scroll text
BookReader can scroll text without touching phone buttons.

Text can be scrolled:
  • By page
  • By line
  • By pixel
To start or stop scrolling, press "5" button. During autoscroll, "3" and "9" buttons change speed of autoscroll.
Autoscroll type and speed can also be changed in JavaBook "Settings>Autoscroll>" menu.
You can add bookmarks to the book:
  • "Bookmarks>Add bookmark": First line on page is proposed as bookmark label
  • "Bookmarks>Add quickly": First line on page is used as label, no questions asked
  • "Bookmarks>Store position", "Bookmarks>Restore position":
    Quickly store current position, in order to return back to it later
List of bookmarks is shown via "Bookmarks>Go to bookmark...".

Bookmarks can be removed using "Bookmarks>Remove bookmark"
How to search in book
You can search book for text.

By default "7" asks for a string to search, and "9" searches for its next occurrance in the text.

You can restrict search using options in menu "Search>": case sensitive or not, always start from beginning of book, wrap search.

Also you can search internet. The "Search>Find in Web" command asks for a string and sends it to preconfigured web search engine (by default answers.com is used). Its web page is open using phone builtin web browser.
"Search>Find in Web" option lets you enter search engine:
Default value is http://answers.com/%s, the %s is replaced by the string you provide.

Please note: the phone web browser is used to display this page. Depending on phone software, the BookReader application may be closed when the web browser is started. On some phones web browsers may not be able to display the web site used to search for the string.
Configuring text wrap and justification
BookReader supports several wrap modes:
  • No wrap:
    Long lines are not wrapped, so far can't scroll to see end of lines (consider it a bug)
  • Wrap by character
  • Wrap by word
  • Russian hyphenation
  • TiBR hyphenation:
    TiBR is PalmOS book reader. It wraps words longer than specified limit
BookReader can display text width-justified, it's controlled by "Settings>View>Wrap>Justify by width" option.

Wrap modes can be preconfigured in Shell and later changed in "Settings>View>Wrap>" JavaBook menu.
Configuring position indicator
BookReader has several ways of showing your progress in a book.

It can display thin (one pixel wide) lines below or at right side of text, or it can display informative status line below the text, including percent of read text and current time.

Position indication is defined in "Settings>View>Scroll bars>" menu.

Position indicator can be always visible or can be shown only while you press some preconfigured button. This is controlled by the "Settings>View>Scroll bars>Hidden" checkbox. To display hidden position indicator, bind a button to "Settings>View>Scroll bars>Show hidden" menu command.

Format of status line can be configured in shell or via "Settings>View>Scroll bars>Status line format" menu item.
Format line can include symbols
  • t - for current time
  • % - for percent of the text you have read
  • -(minus) - for position gauge
E.g. %-t displays percentage and time, with position gauge between them.

Also while pressing "1" key the position in book, book name, current chapter and other info are shown on full screen. This information can be shown (or bound to another button) via "Info>Show Book info" menu item.
Redefining JavaBook keys
To adapt your phone to your typical reading habits, you can always redefine keys to menu items you use the most. It can be done in Shell, or later in JavaBook.

You can bind a phone key to text scrolling, menu navigation or any menu item.

To bind a key in Shell

Right-click a standard action or menu item (on "Redefine keys" page) and select a key in popup menu. Keys can be standard (existing in most phones) or keys specific to exact model. For a specific key you enter its key code as shown by your phone (use "Info>Show keycodes" BookReader menu item to find out codes for your keys).

You can bind a key in the very JavaBook

Go to "Settings>Keys>Assign key>" menu and select an action to bind to a key. Then as phone prompts for a key, press chosen button.
To cancel key binding process, exit menu when selecting an action, or press # when asked for a key.

To reset key bindings in JavaBook

If things went messy, activate "Settings>Keys>Reset keys" menu item. This will reset key bindings to those defined in Shell when the book was created.
How to read books from files
For phones supporting phone folder access, reading books is significantly simpler - you don't have to create JARs for each book.

Find and open a book file using "Books>Open file...". The book is then added to list of books and you сan switch between books you've opened using "Books>Open book..." item.

When you read up number of books, the list becomes big and unconvenient.
To empty the list or to clean it from complete/obsolete/removed books, use menu "Books>Purge book list>". Books stored in JAR are not affected, this menu only purges books read from files.
  • "Books>Purge book list>All" purges all books that were open from phone files. By default current book is not purged.
  • "Books>Purge book list>Complete" purges all books completely read. By default current book is not purged.
  • "Books>Purge book list>Removed files" purges books whose files were removed from the phone
  • "Books>Purge book list>Current book" purges current book and brings up file open dialog
Additional checkbox "Books>Purge book list>Purge current" specifies to remove a book even if it's currently displayed. Removed files are always purged from the list.

When you upgrade a Java book reader or just reinstall it, you can save list of books with their positions to file, using menu item "Books>Save book list". You'll be prompted for a file name in folder of current book. Modify its name and location if needed, but be sure to keep its .props extension.

After the Java book reader is reinstalled fresh, open this file with Java book reader like any other book. All saved books (existing on this moment) and positions in them will be imported, added to the book list, and then the book list will be shown.


JAR Book can not install
Incorrect model is selected in shell, or JAR book size exceeds maximal size allowed for the phone.
If you're not sure about model to select, try MIDP1 for older phones, MIDP2 for new ones.

Try these safe settings (must work for most phones):
  • Model: MIDP1 for older phones, MIDP2 for new ones.
  • Max JAR size: 64.000
  • Max text block size: 30.000
  • No Windows fonts, only phone build-in fonts
  • Enter book and JAR names in latin-only letters, no longer than 8 characters.
Playing with these settings, find out what exactly causes installation failure. Then, in Shell set the parameter to safe value, and select other parameters fitting your taste.
JAR Book installs OK, but can not be open
Most likely your phone lacks free memory to hold both font and text. Principal setting of interest is text block size, a parameter configured in shell. Also using Windows font affects the memory consumption.
Text block size is an amount of text held in memory. The bigger the block size, the more text can fit into the JAR file, the less frequently BookReader freezes (when it reads next piece of text).
But alas, the less memory is available for Windows fonts and BookReader internal bookkeeping.
Windows fonts take quite an amount of memory, and to use them on older phones the text block size may have to be decreased (compared to using phone font).

Most phones must support text block size 20.000 - 30.000 with Windows fonts. Most MODERN phones must (likely) support text block size about 60.000 - 100.000 with Windows fonts.
Nokia 6230 cannot install JAR book
Installation error occurs since you've created book for Nokia 6230i model.
Nokia 6230 is not Nokia 6230i, it's very different (simpler) phone.
For Nokia 6230, select Nokia S40 model.
Installed JARs show no text, cannot open book
Never ever install JARs from shell\jars folder, they are NOT valid JAR books.
Run MS Windows TCBR Shell on PC computer, use it to create JAR books on the PC and then install them into your phone.
FB2, PDF, MS Word and other formats
BookReader Shell can create JavaBooks (JAR books) from several text formats: FB2, HTML, MS Office, PDF, PDB and others.

Whatever is the original book format, JavaBooks can display plain text only. Color-highlighted text, multiple font sizes or bold/italic styles are currently not supported.
Pictures can be shown if JavaBook is created from HTML file saved with images on computer.

Also, images are shown in FB2 books open from flash card, if "Books>File options>FB2 options>Extract pictures" option was checked before 1st time it's open. Please note, if your phone requires file access confirmation, the confirmation dialog will pop up when displaying such images.

When opening books stored on the phone, only TXT and FB2 formats are supported.

Reading FB2 books stored on phone

When FB2 file is open from file first time, it is converted into plain text. It takes some time depending on Java performance and book size. E.g. on SE K750 a 500k book was converted during 30 seconds.
The plain text version of the FB2 book is stored in same folder, and is used to display book text. After the book is open, the FB2 file can be safely removed from phone to save space.
If the "Books>File options>FB2 options>Extract pictures" option was checked prior to conversion, the .bin file will be created in same folder, with same name as FB2 book. It contains image data from the FB2 XML file.
Creation of JavaBook in Shell from various text formats is done by plugins. Some plugins are not included into distribution to keep its size low or because of their licensing details.
Check plugins page of the Shell to see which plugins are available.

If a plugin is not available, in can be downloaded from links below:

RAR archives support (Unrar.dll)
(c) Alexander Roshal
Built-in, no need to download
ZIP archives support: ZipBuilder
(c) InfoZip group, Roger Aelbrecht
Built-in, no need to download
Recode - Automatic cyrillic encoding recognition
(c) Algorithm by S.Znamenskii, Interface by W.Zudilin, 09.04.98
Built-in, no need to download
GetText: hlp,html,pdf,rtf,wpd,xls,doc,ppt -> TXT
(c) Kryloff Technologies, Inc. www.kryltech.com
URL: http://www.kryltech.com/download/gettext.zip
Files: Filters\ folder
TCR for Win32: TCR convertor (Psion, Symbian)
(c) (c) UK Andrew Giddings 2000
URL: http://tequilacat.org/dev/br/plugins/untcr.zip
Files: TCR.exe
Makedoc7: PDB/PRC convertor (Palm)
(c) Pat Beirne
URL: http://tequilacat.org/dev/br/plugins/Makedoc.exe
Files: Makedoc.exe
ARJ archives support
(c) ARJ Software, Inc. http://www.ARJSOFTWARE.com
URL: http://mysite.verizon.net/vze3nqpn/files/unarj265.exe
Files: unarj32.EXE
HA archives support
(c) 1995 Harri Hirvola
URL: ftp://sac-ftp.gratex.sk/pack/ha_nt.zip
Files: ha.exe
LIT E-Books format (by Microsoft)
(c) http://www.convertlit.com
Ссылка: EXE file for BookReader Shell (clit.exe)
Source files
Download from official site
Файлы: clit.exe
FB2 format (FictionBook)
(c) Dmitry Gribov
Ссылка: FB2Any.exe (installer) (download from official site)
FB2Any.exe (installer)
Install to Shell/Plugins directory
Файлы: installation folder

Please note: some of these links can be "dead", if so use google to find appropriate converter.

To install a plugin,
  • download an archive or EXE file from an URL listed above
  • copy (or unpack) plugin file(s) or folder(s) to the plugins subfolder of the shell installation folder. Or, copy them to the folder included in PATH variable.
  • restart shell, the convertor should be listed in the "Plugins" page of the shell.
Middle East text display
In current version the texts in middle-east languages (right to left scripting) should show somehow, if following options are set:
  • Phone font is chosen
  • "Settings>View>Wrap>Justify by width" option is OFF
A line is "missing" when scrolling by page
BookReader has 2 options that may cause such effect:
"Settings>Scrolling>Leave one line" (show last page line at the top of next page)
и "Settings>Scrolling>Show incomplete line" (show last line even if it does not fit the screen entirely).

When scrolling by page, incomplete line is considered "shown" even if only its topmost pixel has been shown. So when the "Settings>Scrolling>Show incomplete line" is ON and the "Settings>Scrolling>Leave one line" is OFF, the line will look like "skipped" since only its topmost pixel is shown.

Try enabling "Settings>Scrolling>Leave one line" or disabling "Settings>Scrolling>Show incomplete line" or both.
On SE, screen blacks out during autoscroll
If phone screen blacks out or screensaver pops up during autoscroll, enable "Settings>Backlight>_ No screensaver" option
On touchphones, direction buttons take a lot of screen space
To hide direction buttons, put following code to manifest field of the Java book setup in the shell:


Nokia-MIDlet-On-Screen-Keypad: no


MIDlet-Scaleup-Support: false
MIDlet-Touch-Support: true


MIDlet-Touch-Support: True
LGE-MIDlet-TargetLCD-Height: 400
LGE-MIDlet-TargetLCD-Width: 240

Specify the actual dimensions of your phone screen.
When reading files, phone asks too many confirmations
Some phones like SE and Nokia ask too many questions before letting a midlet to read from a file. Each time BookReader reads a piece of text from file, such phones requrest a confirmation from user.

There are several ways to fix that:
  • User should "sign" a JAR before installing - there are instructions on that in the Net.
    Signed JAR does not asks for confirmations, but signing a JAR is tedious process, it requires some skills and it must be done for each JAR before installing.
  • User can "hack" the phone, removing phone vendor restrictons for installed Java software. Again, refer to internet resources.
    Confirmations are gone, but you should have some skills to hack the phone, and this may (possibly) ruin phone software
  • In the Shell, chooze phone model with file caching (model description contains ConfirmFiles) and enable caching in midlet properties in the Shell. SE and Nokia models already include file caching, just enable it.
    This approach does not remove confirmation entirely, it just decreases number of confirmations when you browse phone folders.
There are number of ways to hack phones of popular vendors:
  • SE: There's so called Halmer certificate. Install it to the phone and sign the TCBR JAR with this certificate before installation.
  • Nokia:There's specific software called beHappy
  • Samsung: There's specific software called TKFileExplorer
    Using TKFileExplorer enter the folder of the application, then /apps subfolder, and delete settings.bin file. Should work with all models supported by the TKFE
Please google for more details.
Messages in Shell or Java Books are not translated
If translation of user interface for your language is declared, but all messages are displayed in English, it means the country of your computer differs from language configured in Windows. This happens when MS Windows is configured for different country and language, e.g. when you live in Germany or Ukraine and use Russian MS Windows.

To specify exact language to use, modify shortcut to Shell.exe, adding a parameter like

-lang RUS
After SMS or incoming call, Java book takes some time to be shown
When a JavaBook is interrupted by SMS or incoming call, it unloads itself from the memory. When you're back to reading, the text should be reloaded again. It is especially annoying if your phone asks confirmations for file access - it will be asked as you return to reading.

If you own middle or high end phone with lot of memory, you may keep midlet from unloading text by enabling "Settings>Misc settings>No reload aft. call" option.

Please note, this option works as intented only if there's enough memory. If phone finds out it needs all the memory during incoming call etc, it will unload or even kill the BookReader program.