What are the Software Tools? The programs on these disks are descendents of the RATFOR programs from the book, Software Tools, by Brian Kernighan and P. J. Plauger, published by Addison-Wesley in 1976. The publisher also made these programs available on computer tape. A group known as the Software Tools Users Group was formed to distribute, update and maintain the tools. The latest tape from the Software Tools Users Group is called the "Basic Tape" and it is from that tape that most of the files on these disks were taken. All of the programs on these disks are in the public domain. None of them are copyrighted. The basic tape contains 16 files which are fully described by the cookbook on the file named COOKBOOK on this disk. Read the cookbook after reading this file to get an overall picture of what is on these disks and what you may still need to do to. The original 16 files have been split into pieces which correspond to individual programs or, in the case of the spelling dictionary, to individual letters. This makes getting at the program you want much easier. A major constraint in putting the programs on disks was a lack of CP/M directory space. Do not assume that just because STAT tells you that space is available on a disk that you can PIP many programs to the disk. Bringing up the tools Please be aware that none of the RATFOR programs on these disks will work as is. You have essentially three choices: Path 1: You can use the tools in RATFOR without making any changes to them. This means that you will have to get a working FORTRAN compiler and adapt the primitives to fit your operating system. Boot the RATFOR preprocessor using RATFOR.FTN, then compile all the RATFOR programs. This is the "normal" way of making the tools work. If you choose this way then the primitives in BDS C will not do you much good except as a guide. Path 2: You can use the primitives in BDS C without making any (or any extensive) changes to them. You will have to transliterate all the tools from RATFOR to BDS C. This is no small job. Path 3: You can change the primitives in BDS C to make them look like the Unix I/O primitives (which are quite similar to the BDS C I/O routines.) Once again you will have to transliterate all the tools from RATFOR to C. The primitives in BDS C may form a good starting point for your efforts. If I were writing the primitives all over again I would choose path 3 instead of path 2. The problem with the approach I took is that the primitives are neither fish nor fowl: they are compatible neither with the RATFOR primitives (because it doesn't make sense to burden C programs with RATFOR calling conventions) nor with the Unix I/O primitives. Still, the BDS C primitives should make a good starting point if you want to follow path 3. The primitives show how easy it really is to do full I/O redirection. Also, there are many RATFOR primitives which, to my knowledge, do not correspond to any of the Unix primitives. An example are the symbol table primitives. For these primitives, one is essentially free to choose whatever form is most elegant and useful. Be sure to read all the .DOC files on on the disk labeled "Tools and primitives in BDS C." These files discuss topics of interest to implementors. Please send any comments, criticisms or improvements concerning the BDS C primitives to their author (me): Edward K. Ream 1850 Summit Avenue Madison, WI. 53705 (608) 231 - 2952 Table of Contents Here is what is on each disk: Disk 1: Cookbook, table of contents, .FTN files. You should have read the READ.ME file by now. You are now reading the table of contents. The cookbook is the primary documentation for people who want to bring up the tools. It tells in detail what you must do get the tools running on your system. The cookbook makes up all of file 1 of the Basic Tape. The .FTN files on this disk are the result of passing RATFOR programs through the RATFOR preprocessor. Use the file RATFOR.FTN to boot up the RATFOR preprocessor. You will need these files if (and only if) you plan to bring up the tools in RATFOR rather than transliterating them to C. The .FTN files make up all of files 2 and 3 on the Basic Tape. Disk 2: Tools and primitives in BDS C. Everything on this disk was written by Edward K. Ream. Do not blame the Software Tools Users Group. They had nothing to do with it. The BDS C disk contains the software tools primitives written in BDS C. It also contains a transliteration of the text formatter ROFF from RATFOR to BDS C. Use ROFF to format all .DOC files on these disks. See all the .DOC files on the BDS C disk for much handy information concerning the primitives. Disks 3, 4: Primitives. These two disks contain the RATFOR primitives from file 4 of the Basic Tape. The documentation for each primitive is now on a separate file. An easy way to print them all is to create a .SO file for ROFF using the files SINGLE1.SUB and SINGLE2.SUB as patterns. (The .SUB files were used to copy these disks.) Because of a lack of directory space, it was not possible to put the RATFOR code for each primitive on a separate file. Instead, the code is grouped alphabetically. The code for the primitives are on files PRIM-A through PRIM-W. The file LIBDEF contains definitions used by all the RATFOR primitives and tools. The primer for RATFOR and the primer for the editors appear on .PRM files on this disk. The primers are from file 14 of the Basic Tape. Disks 5, 6, 7, 8: Tools These disks contain the entire contents of files 5, 6, 7, 8, 9, 10, 11, 12, 13 and 14 from the Basic Tape. The documentation for each tool is on a separate .DOC file. Once again, you can use the files SINGLE?.DOC as a help in creating .SO files for ROFF. The code for each tool is on a separate .RAT file. The documentation and code is arranged alphabetically by the name of the tool. Disk 5 contains code and documentation for tools with names from A though D, and so on. Disks 9, 10: Spelling dictionary These disks contain the entire contents of file 16 of the Basic Tape, a 40,000 word spelling dictionary. The dictionary is used by the SPELL tool. The spelling dictionary has been split into 30 files, one or two for each letter of the alphabet. The dictionary contains one word per line so it would be very wasteful to print it using, say, the CP/M TYPE command, but it might be amusing to use ROFF. You will notice that the dictionary needs a lot of editing. It is presented just as it came from the Software Tools Users Group. Disks 11, 12: Extra Tools These disks contain the entire contents of file 15 from the Basic Tape. Once again, the documentation for each tool is on a separate .DOC file. Most of the code for the extra tools is on separate .RAT files. However, the files XXX-TOC, CTO-XXX and SET contain source for more than one tool. The files XXX-TOC and CTO-XXX contain conversion routines. The file SET contains set manipulation tools.