These internal files let WinHelp find topics by context name, keyword or title. Most are B+ trees. A topic offset is explained on the |TOPIC page.
|CONTEXT
A B+ tree (structure L4) from the hash of a context name to a topic offset.
Jumps in Windows 3.1 and later files carry only the hash, so a name cannot be recovered
from the file.
The hash is built character by character, multiplying by 43 and adding a value for the character from a fixed table. HELPDECO’s notes give the table.
|KWBTREE, |KWDATA, |KWMAP
The keyword index for K footnotes. Other letters use files named in the same
way, such as |AWBTREE for A footnotes.
| File | Holds |
|---|---|
|KWBTREE | A B+ tree. Each leaf entry is a keyword, a 16-bit count and a 32-bit offset into |KWDATA |
|KWDATA | An array of topic offsets. A keyword’s entry starts at its offset and runs for its count |
|KWMAP | Six-byte entries: a 32-bit keyword number and a 16-bit leaf page number |
|TTLBTREE
A B+ tree from topic offset to title (structure Lz), used to name topics in the
search dialog.
|TOMAP
Windows 3.0 only. An array of topic positions, indexed by topic number, which starts at 16 in the files checked for this page. Jumps hold the topic number.
|CTXOMAP
A 16-bit count, then entries of a 32-bit map number (from the project’s
[MAP] section) and a topic offset. Programs use it to open a topic by number.
Other tables
| File | Holds |
|---|---|
|Viola | A B+ tree from topic offset to the number of its default window |
|Rose | A B+ tree from a keyword hash to a macro and a title, for macros attached to search terms |
|Petra | A B+ tree from topic offset to the name of the source file |
|CF0, |CF1 … | NUL-terminated macros, one file for each configuration section |