SQUASH

Tom Phillips   -   An Independent Computer Consultant

Solving problems with computers since 1972

                                              

As a means of introduction, I am making available to the "Pick" community a series of programmer tools.   Just click on the link, save the displayed page as a "text" item, "import" the text file to your "Pick" system, rename, compile, catalog, and run.   Enjoy.

These programs are supplied "as is".  As I have provided them free of charge, please feel free to use and distribute them as "freeware".   Thank you.

If you like any of the tools, then consider how much more you will like the work product that I’m paid to produce.  Consider "Out-Sourcing", right here in the good old U.S.A.

The tools are currently setup for "Pick" flavor Universe (and D3), but flags are available for MaVerick and Native Universe.   With feedback, options can/will be provided for other implementations.

Search tools

QSEARCH a simple search of any file for a list of arguments.
QDSEARCH search all dictionaries in an account for a list of arguments.
QDSEARCHA like “QDSEARCH”, but all arguments must be present.
QFIND a search for one or more arguments, and create an MD "list" of items keys "found".
QFINDA like "QFIND", but all arguments must be present for the item to be selected.
QFINDAL like “QFINDA”, but all arguments must be present in a line for item to be selected.
QNFIND a negative search.
QFORNOT a search "for" a list of arguments, and "not" a second list.
QLIST builds a list of the actual lines where the search argument was found.
QLISTA like “QLIST”, but all arguments must be present in item for line to be selected.
QLISTAL like “QLISTA”, but all arguments must be present in a line to be selected.
QFLIST uses the line where the search argument was found as a key into a temporary file.
QFLISTA like "QFLIST", but all arguments must be present in the item to be selected.
QFLISTAL like “QFLISTA”, but all arguments must be present in a line for item to be selected.

Compare tools

QCOMPARE compare two files, and create lists of items identical, different, and only present in one of the two files.
QCOMPAREL like "QCOMPARE", but assumes a prior selection list.

Editor

QED a line editor which emulates the functions and format of the standard R83 and Ultimate editors with enhancements.

      QED:  line commands   

      QED:  a features narrative

      QED:  pre-store command examples

QEDHELP a subroutine used by QED.   This subroutine handles “help”.
QEDLINE a subroutine used by QED.   This subroutine is a “line edit” utility.
QFOLD a subroutine used by QED.   This subroutine is a data variable “fold” utility.
QEDSWAP a subroutine used by QED.   This subroutine functions as CHANGE/SWAP.

File tools

QCOMPRESS compress out all trailing "am", "vm", and "svm" marks.
QTRIM a "trim" utility.
QFMAP a utility to create a file attribute characteristics “map”.
QDELETE a utility to delete items.

Prime Numbers

QPRIME a TCL utility to determine a prime number.
QPRIMECALC a subroutine used by QPRIME.   (  much improved - Thanks to an example from Lucian in the group: COMP.DATABASES.PICK  )
QPRIMECALC.SLOW older original QPRIMECALC

Miscellaneous Tools and Programs

QACCOUNT copy into the current master dictionary all non-existing items from another account.

This is a very fast way to setup a "user" account.

( I use this to populate a "system account" for user-coldstart.)

QFILES builds a series of "Q" pointers.
QKEYS builds a list of unique keys - this is useful for merging lists.
QSKEYS builds a sorted list of unique keys.
QMERGE creates “merge” list from two other “lists”.

can create a combined list, or a list of items on both, or a list of items not on both, or a  list of items on 2nd not on 1st, or a  list of items on 1st not on 2nd.

QHASH build a unique list of keys in "hashed" order.
QIDATE a data entry edit subroutine for dates - the “Mother of all date input edits”.
QNOF builds a list of unique "not-on-file" keys.
QOF builds a list of unique "on-file" keys.
QXLIST remove an “active select list”.
QPROC this one is only for experts.
QCALC a command line (multi-cell) calculator.
QHANGMAN The "hangman" game to satisfy an interview request.   Read "spec"
QCALLMAP builds an index file of BASIC program calls:  calls whom & who calls.
QCLEAN housecleaning: remove any MD/VOC items created by the other programs.
QRKN a program to re-key the program names (remove “.txt”) & copy to another file.
QPROCREAD a called subroutine to return the proc buffer as an attribute delimited item.
QPROCWRITE a called subroutine to update the proc buffer via an attribute delimited item.
QPARSE a called general purpose parsing subroutine (used by QPROCREAD).
QPROCPNBR a proc utility to place the user port number in a proc buffer designated attribute.

Required by most of the above

QEXIT the "exit"/"quit" subroutine used by the other tools.
QCMDLINE a subroutine to parse the run time command line; used by many other tools.
QGETDELIM a subroutine to prompt for the option 'B' delimiter; used by QLIST, QLISTA and QLISTAL
QNSUFFIX a subroutine to prompt for the option 'F' name suffix; used by many other tools.

 

Download pseudo file in T-DUMP format - executable zip file (Note: very old D3 build)     tools_t-dump.exe

Miscellaneous Topics

Some PROCs to assist using the MD/VOC items created via the tools:
If you have FTP capability then:
Some help for D3, Native Universe and MaVerick users:    
Some dictionary examples:
Some proposals for the MultiValue products:

Some notes and hopefully useful pointers concerning a conversion from a D3/NT environment to IBM’s Universe:    

       Page last updated:   August 7, 2008