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.

Keywords illustration
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+). Qdos & SMSQ/E: Qlib_run (V2.36+), ptrmen_cde (4.10+), Qmenu (V8.05+). (Earlier versions may also work, but if you experience any problems: Upgrade!) 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. Get the latest version here. 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 tradional 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, 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). If left blank it will always 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 probably 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 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 fist item is an identifier. It should not be changed, and should be the only thing 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. * may be used to indicate the Home Directory (or configured root). Otherwise, a full path must be specified. 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 the file selector window in pixels. hight - Set the height of 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!) Software status =============== To find Qmenu, the Home Thing, etc, see my Contacts page. The remaining code, including the toolkit commands, are ©pjw, 2019 Jul 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 under Toolkits Conditions of use and DISCLAIMER as per V0.14, pjw, 2019 Jul 30 V0.15, pjw, 2020 Apr 01, Increased stack size. No functional changes