The easiest way to create a custom browser for your specific data files is to copy the existing BROWSE.NAMES program and modify it as necessary, since BROWSE.NAMES already supports three B-trees per data file and displays six different attribute fields. (Consult the BROWSE.NAMES listing during the following discussion.)
To quickly make BROWSE.NAMES work with different files and B-trees, just change the numbers in lines 002 to 006 to the attributes you wish to browse, change the names in lines 009 to 011 to the names of your B-trees, and change the names in lines 013 and 014 to the names of your data and B-tree files. You can then recompile and recatalog and begin browsing your own files.
Note that AMC$LNAME, AMC$COMP and AMC$ZIP in BROWSE.NAMES are the primary sort fields for the three B-trees referenced by root1, root2, and root3, so you should change those three attribute numbers to the numbers of the primary fields in your B-trees.
To further improve your browser, adjust the various format settings in lines 048 to 060 and the output of individual items in lines 181 to 186. You may want to keep only one choice of format settings, and drop the W commands and any references to the WIDTH.SET variable.
You can also avoid the tricky ZIP code tests in BROWSE.NAMES by changing line 159 to CASE COMMAND[1,1]=".", and changing line 161 to CURR.ID=COMMAND[2,50], so that a period is always the prefix for an item identifier.