Moonstone BasHelp

BasHelp is a memory-resident help program for the Amstrad PCW, designed
to add pop-up help screens to Mallard BASIC. When launched, it relocates
itself to the top of memory and loads BASIC.COM. It will not work if BASIC.COM
has RSXs attached.

When the user presses ALT+F1, the help index is displayed. If they press
SHIFT+ALT+F1, the word immediately to the left of the cursor is used as a
search term. An exact match takes the user to the appropriate topic;
otherwise, the page of the index starting with the first letter of the topic
is displayed.

Text storage

The help text is stored in the file BASHELP.DAT, in an obfuscated form. The
following C code will deobfuscate it:

The BASHELP.COM utility expects the first topic to be the table of
contents, and to consist entirely of links to all the other topics.

Utilities

I have written a pair of utilities that can convert a BASHELP.DAT file to
plain text, and vice versa. They are supplied as COM files (for CP/M) and
C source, suitable for compiling on a modern UNIX or Windows system.