Keywords
                                  ========

   A utility to view which S*BASIC keywords are contained in a binary file

Load any (binary) file such as toolkits, compiled programs or, indeed, ROMs and
QL-compatible operating systems, and list any keywords they contain. The list
can be dumped to a file.

New: If youre updating from versions prior to V0.16 you should check out
     Configure/fsel, below!


Contents
--------

        Requirements and limitations
        Usage
        Configure
        Trouble
           Program hangs
        Excuses
        Software status


Requirements and limitations
============================
Keywords is a Pointer Environment program. The compiled version should run on
any PE-capable QL platform *, provided the following facilities are available:

Qdos: ptr_gen (V2.06+), Wman (V2.08+), hot_rext (V2.31+), TK2 (V2.32+) and,
optionally, home_bin (V1.02+).

Note: If you dont have home_bin under Qdos you MUST configure the Home
Directory manually. You can use Config or MenuConfig for this.

Qdos & SMSQ/E: Qlib_run (V2.36+), ptrmen_cde (4.10+), Qmenu (V8.05+).

(Earlier versions of any of the above may also work, but if you experience
any problems: Upgrade!)

FSEL V10+ - the file selector (included)

The SBASIC source code would need some modification to run under the
SuperBASIC interpreter.

The program is not compilable with Turbo.

A few toolkits, particularly some linked to compiled programs, do not have the
standard initialisation code, and cannot be parsed by this program.

* Note: Q-emulator from V3.22 only.


Usage
=====
Fire up the program with EX <path>Keywords_obj and select the file to view.

HIT   the resize button to change the program window size (height only). Any
      keyword list of subsequently loaded binaries will be displayed in the
      same-sized window. (Or use the traditional CF3)
DO    the resize button to resize the window to the optimal size for the list
      (within the bounds of possibility). The window will hereafter adjust to
      optimal for any subsequently loaded binaries, until manually adjusted (as
      above) again.
HIT   and DRAG the titlebar to move the window (WM_MOVEMODE 3). Pressing SPACE
      on the tiltlebar or using the traditional CF4 should also work.
DO    the titlebar to exit the program
CLICK (ie, HIT or DO) the first display line to summon the file selector to
      select another file to view.
PRESS the first letter of any visible item to jump to the first item with that
      letter.
CTR+P prints the list to a pre-configured file.

The remaining controls, scroll, split list, etc, are as per standard Wman
controls.

Alternatively, put the file you wish to scan on the command line, thus:

        EX <prog path>Keywords_obj; '<data path>Binary_bin'

This also means that Keywords can be used with FileInfo2 to directly
execute the target file and have its keywords listed.


Configure
=========
Use the standard (Menu)Config program to configure the Home Directory
(sometimes called root directory), if required. This is only needed if your
file manager or other utility doesnt recognise the Home Thing, or if the
Home Thing is not available. (Under Qdos you need to load this as a
separate toolkit, available from the "usual suspects" - see below). You
also need to configure the Home Directory if you put Keywords on a Hotkey
(applicable to all except HOT_LOAD).

If left blank Keywords will always try to use the Home Directory; if set to
some directory it will always use that. Ie, if your system doesnt have the
Home Thing you MUST configure or the program will crash.

All the remaining configuration items are found in the Keyw_cfg file, which may
look something like this:

KWCF01

*       Keywords configuration file
fsel    = -                location of FSEL (* => home, - => Thing)
defd    = win1_rxt_        default start directory
outf    = ram1_keyw_txt    default output file
width   = 500              FSEL width
hight   = 240              FSEL height
palette = 0                user palette 0..3
asleep  = asleep           E: asleep  D: schlafend, F: dormant,..

This is an ordinary text file that may be modified with a text editor.

The first item is an identifier. It should not be changed, and should be the
only item on the line. Blank lines, and lines starting with a * are considered
comments and are ignored.

fsel     - Specify the location of the file selector program FSEL. A copy of
           FSEL is found in Keywords' home directory, but you may already have a
           copy of FSEL stored elsewhere. Note FSEL V0.10+ is required, as
           earlier versions are incompatible with this program. If you use the
           FSEL found in the home directory, you should be ok.

           * An asterisk may be used to indicate the Home Directory (or
           configured root). Otherwise, a full path must be specified.

           - A dash - instead of * implies that FSEL is loaded as a Thing,
           and to use that instead of executing the file. New in V0.16.
           See the FSEL manual for how to load FSEL as a Thing.

           Note: There is no fallback: Using the dash option, if FSEL is
           not loaded as a Thing the program will unceremonously (but
           otherwise harmlessly) crash!

defd     - The default directory for binary files you may wish to view.

           NB the use of * is not valid here!

outf     - The default output file name for keyword lists. This name is
           automatically incremented to keyw0_txt, keyw1_txt, etc up to a
           maximum of 9).

           NB the use of * is not valid here!

width    - Set the width of FSEL, the file selector, window in pixels.

hight    - Set the height of FSEL, the file selector, window in pixels.

palette  - Set the palette: 0..3.

asleep   - This is a job's sleep name suffix. Only needed if you should put
           the file selector to sleep. The setting depends on your Qpac2
           language. (Dont ask me why this was ever thought to be a Good
           Idea!)

Trouble
=======

Program hangs
-------------

Sometimes the program just hangs on some files. Try as I may, I cant find
the cause of the problem. This only occurs with the Qlib-compiled version;
the SBASIC program runs just fine on the same file.

Solution: RJOB the program when it hangs. Apparently it does no damage to
the system. Under SMSQ/E you could just try to EXecute the BASIC source
file. This always seems to work. Under Qdos, Im afraid youre stuck!


Excuses
=======

I tried to make Keywords more Qdos/Mode 0 friendly. However, the
application menu border gets messed up whatever I try, so it aint pretty.
However, one day, no doubt, I'll figure out how to fix it.


Software status
===============
To find Qmenu, The Home Thing, etc, see my Contacts page at
www.knoware.no/htm/contact.htm.

The remaining code, including the included toolkit, is

©pjw, 2023 Jun 26+, unless otherwise stated.

The S*BASIC source code is included with this distribution; the source
code for the various toolkit commands can be found at
www.knoware.no/htm/toolkits.htm

V0.17, pjw, 2024 Nov 15, Improved engine. See History_txt

               Conditions of use and DISCLAIMER as per Knoware.no

Generated by QuickHTM, 2023 Jul 29