(tm) PC-FILE A Database Manager Program For the Osborne Computer Copyright(c) 1983 by Jim Button Version 8.4 Jim Button P.O. Box 5786, Dept.OZ Bellevue, WA 98006 Source: CL2925 Compuserve: 71435,2012 PC-FILE Table of Contents General Information...............................3 Getting started...................................3 Use of the "Esc" key..............................4 Defining your file................................4 The Master Menu screen............................5 Adding Records to your Database...................6 Modifying a Record................................6 Deleting a Record.................................7 Displaying a Record (by using the 'key')..........7 Finding a Record..................................8 Listing the Records...............................8 Cloning (outputting a new database)..............11 Sorting the Database Index.......................12 Seeing the Record Layout.........................13 Altering a Field Name............................13 Ending the program / changing to a new database..13 Backing up the Database..........................13 Using PC-File Data with Mailmerge................13 Using PC-File Data With Other Programs...........14 Importing Other Files into PC-File...............14 Some Maximums and Minimums.......................15 Calculating the Size of Database Disk Storage....15 Disclaimer.......................................16 The User Supported concept.......................16 GENERAL INFORMATION: PC-File is a general purpose "Data Base Manager" program. It was written with one overriding goal in mind: Ease of use. With PC-File, it's very easy for the casual or professional user to create and maintain data files on the computer, and to create simple printed reports based on that data. You can use PC-File for all kinds of tasks: Maintain mailing lists and print labels, Maintain price lists, Maintain telephone directories, Keep various types of inventory records, Build personnel files, Keep customer lists, Build and maintain files to be used by other programs, like Mailmerge, and many other tasks which only you can dream up. PC-File will allow you to sort your data into almost any sequence. It allows rapid access to any record in the file, with a sophisticated search technique allowing comparison searches on any field in the record. For example, you can display all employees over a certain age, or all clients in a certain state, or all items that are not in a certain category. You can print out reports from your database, listing all or some of the fields, from all or some of the records, in many different sequences, with totals on the numeric fields. Reports can be sent directly to your video screen, to a printers, or they can also be sent to disk for later use with your word processing programs. You can create entire new databases from existing databases. The new database can be in a different format, and can be a subset of the database from which it was "cloned". You can export your database files for use with "MailMerge" files. But above all else, PC-File is EASY! Most people can use it with no training or instructions. You need read the documentation only to pick up some extra 'fine points' of the program. The author has steadfastly refused to make any additions to PC- File which would make it harder to use. Any suggestions which you have for improving this program will be greatly appreciated. GETTING STARTED. To start the program, put the PC-File disk in the "A:" drive and press the "Reset" button. When prompted with the question "Which drive (A or B) for the Data:", enter the letter corresponding to the disk drive where your files will be stored. USE OF THE "Esc" KEY. Sometimes you will get into a part of the program which you have decided you wish you weren't in! (You may have pushed the wrong function key, for example). At these times, you may push the "Esc" key to get back to the master menu screen. You should not in general rely heavily on the "Esc" key, because overuse of it will gradually nibble away at your available main memory. Use this key only when you can figure no other convenient way out of a situation. DEFINING YOUR FILE. PC-File will show you a screen with the message "These files are already defined:", and will then ask "FILE NAME:". If this is the first time you have run the program, there will be no file names displayed. Type in the name of the file you will want to define. This should be a one to eight character name, starting with the characters A to Z. The only other characters allowed in the name are the numerals 0 to 9, but do not include a numeral as the first character in the file name. Do not include a file suffix (a period followed by three more characters), because PC-File will supply standard suffixes for your files. Your next prompt will be "KEY FIELD NAME:". The first data field in your record is known as the "Key" field. This is the data which most uniquely defines the data contained in the record. For example, 'employee number' in an employee file, or 'part number' in an inventory. It is not necessary for each key in your file to be unique. The only significance of this field is that, by specifying it correctly, you will be allowed somewhat quicker access to the data records in your file. You will still be able to get at all the data in the file if you specify this incorrectly, so don't fret too much about it. In choosing a field name, any valid character can be used. However, you will find it convenient to choose relatively short names, just long enough so you understand and can remember what the name stands for each time you see it. It is best to choose a name that's not longer than the number of characters actually in the field itself, because the name will be truncated to the data length when printing titles for the printed reports. For example, if an employee number is six digits long and you name the field "EMPLOYEE", the title for that field on your output reports will be "EMPLOY". Sometimes you have to choose longer names, so let your own judgment and taste be your guide. Just be careful not to use this same name for any other field in the record. If the field will contain numeric data, such as price, or quantity, give the name a "#" at the end. Example: "PRICE#". This will cause PC-File to keep totals for that data when printing reports, and will also cause the data to be printed "right-justified" on the output reports. Don't worry if you select an inappropriate name for a field. You will be allowed to change the field names any time you wish after the file has been completely defined. You'll be prompted for "FIELD LENGTH:". Enter the number of characters which are required to contain the data for that field. Field lengths should be 99 characters or less. If your database has more than 19 fields, then field length should be kept to 25 characters or less if it is one of the first 19 fields. You will continue to be prompted for "FIELD NAME:", followed each time by "FIELD LENGTH:". Continue to supply the data until you have defined all the fields in your data record. Then, when prompted again with "FIELD NAME:", simply press the (enter) key. Since no data was entered, PC-File will know that you have finished with record definition. The maximum number of fields which you will be allowed to define is 37. The minimum is one. The total of all field lengths may not exceed 254. After you have finished with record definition, PC-File will take you to the Master Menu screen. THE MASTER MENU SCREEN. It looks like this: FILE:xxxxxxx (1) ADD a record (2) MODify a record (3) DELete a record (4) DISplay a record (5) FINd a record (6) LISt or clone (7) SORt the index (8) see the record LAYout (9) alter a field NAMe (0) END or change database Your Command:___ You may perform any of the functions on the master menu screen by pushing the appropriate number key at the top of the keyboard. You can accomplish the same thing by typing the three-character function code (indicated by the three capitalized letters in each command). For example, to alter a field name, you could either push (9),or you could type NAM followed by the (return) key. Some people like number keys, some learn the names of the commands more easily and so prefer to type the three characters. PC-file lets you suit yourself! Now that you have defined your database, the first thing that you will want to do is put some data into it. ADDING RECORDS TO YOUR DATABASE. To add records to your file, push (1) or type ADD when viewing the master menu screen. PC-file will then find an empty spot for your new record to go into. If there has been a record deleted previously from the file, that location will be reused for the added record. If there are no deleted records in the file, the new record will be added to the end of the file. In either case, PC- File will tell you at the top of the screen which location it has found for adding your record. You will then be prompted to enter your data, one field at a time. PC-File will print out the name of the field and will prompt you to fill in the data. On data entry, if you enter a single quote or a single apostrophe, PC-File will duplicate the data from the previously added record into this field. After you have entered all the data for one record, it will be added to the file. PC-File will then prompt you to add another record. If there are no further records to add at this time, just press (return) when asked for the data for the first field of the record. You will be returned to the master menu screen. There is a maximum of 1500 records allowed in this version of PC-File. Depending on the layout of the record you've defined, you may not be able to sort the entire maximum number of records. You will be able to enter as many records as can fit on one diskette (even exceeding the 1500 limit), and to print reports and do all the other functions provided by PC-File; but the number of records that can be sorted is dependent on main memory available, and cannot exceed 1500. See the section titled "Sorting The Database" for more information on this topic. MODIFYING A RECORD. To modify a record in your file, push (2) or type "MOD" while viewing the master menu screen. You will be asked "KEY or #n,*,+,-,\ ". If you know the key (the data in the first field) of the record to be modified, enter it at this time. Alternatively, you can enter the record number of the record in the file. The first record is number 1, the second is 2, and so on. To modify record number 120, you would enter "#120". Entering an "*" will allow you to modify the most recently retrieved record. This is handy when you have just used "FINd" to locate a record, and now you are using "MODify" to change it. Instead of having to enter the record # of the found record, just enter an "*". It's also handy for making another modification to the same record that you just finished modifying. A fourth way to specify the record to be modified is to enter "+", meaning to modify the next record after the one which you just modified. You can also enter a "-", meaning to modify the record just prior to the one you just modified. If you enter a "\", you will be presented with the last record in the file and allowed to modify it. PC-File will retrieve the record to be modified and ask you which field to modify. Enter as much of the field name as required to uniquely identify the field. You will then be prompted to enter the new data. After you have modified the record, you will be prompted to enter the KEY value for another record to be modified. If you have no other modifications to make at this time, just press (enter) and you will be returned to the master menu screen. DELETING A RECORD. To delete a record, press (3) or type "DEL" while viewing the master menu screen. You will be asked "KEY or #n,*,+,-,\ ". You should then enter the Key value of the first field in the record to be modified, or the record number in the file (preceded by a #), or an "*" to delete the most recently retrieved record, or a "+" to delete the next record in sequence, or a "-" to delete the previous record in sequence, or a "\" to delete the last record in the file. (Read the above section "Modifying A Record" for a longer explanation of this prompt.) PC-File will retrieve the record and display it for you and then ask you to "Type 'DELETE', or press (enter)". If you decide that you really do wish to delete the record, type "DELETE" and press (return). If you decide not to delete this record, just press (return). You will then be prompted for the next record KEY to be deleted. When you have finished with all your deletions, just press (return) when asked for the next record KEY. You will be returned to the master menu. DISPLAYING A RECORD (by using the 'KEY'). To display a record, press (4) or type "DIS" while viewing the master menu screen. You will be asked "KEY, or #n,+,-,\ ". You should then enter the Key value of the first field in the record to be displayed, or the record number in the file (preceded by a #), or a "+" to display the next record in sequence, or a "-" to display the previous record in sequence, or a "\" to display the last record in the file. PC-File will retrieve and display the record for you, and then prompt you for the next record to be displayed. When you are through displaying records, just press (return) and you will be returned to the master menu screen. FINDING A RECORD. To find a record, press (5) or type "FIN" while viewing the master menu screen. You will be shown a list of all the field names in the database, and asked "FIELD TO SEARCH". You should type in the name of the field which you wish to search on. (You only need to enter as much of the field name as required to uniquely identify the field. PC-File will next prompt you with: '>xxx' scans full field. (slow) Look for:__________ You should now type in the data which you would like to search for. If you precede the data with a ">" character, PC-File will look for an occurrence of that data anywhere in the field. For example, if you type ">mit", records will be returned which have "Smith", or "transmit", or "miter", etc. If you type "mit" (without the ">" in front) records will be retrieved which start out "mit" in the field, such as "miter", "mitten", etc. The second type of search will proceed much faster than the first type, because to do a "full field scan", PC-File must look at every record in the file. To do the second type of search, PC-File can take advantage of its index file for very rapid retrieval. Note that the search is fully "generic": that is, all records will be retrieved when the data field "begins with" the search data. You can, for example, find all records with last names that start with "S", or find all records with zip codes starting with "980". Each record found will be displayed in its entirety, followed by this prompt: "S to stop, or press (enter)". If you want to find more records which match this search criterion, just press (return). The next record will be found and displayed. If you wish to stop searching for this data, type "S" and then push (return). LISTING THE RECORDS. The listing capabilities of PC-File are very powerful indeed. You will be allowed to search for data based on "equal", "unequal", "greater than", or "less than" relationships. The data can be displayed in any format which you specify. And you can list the report on your printer, on your screen, or to disk. To list the records, press (6) or type "LIS" while viewing the master menu. You will be shown the names of all the report formats which you have previously defined and asked "Which format, or press (enter)". If this is the first time you've ever created this particular report format, just press (return). You will be shown all of the field names in this database, and prompted with: "Column=0. Field to List:". You should type in the name of the field which you would like to see first on your report (at the far left). You don't need to type in the whole field name; only enough so that PC-File can uniquely identify it. As you continue to be prompted to enter field names, PC-File will keep you informed, at the bottom of the screen, about the number of print columns which you have used up. If the report will go to your screen, you should not let this number go beyond 132. If the report will go to your printer, you should not let the number go beyond the maximum width of a print line. PC-File will list your fields side by side on the output report, with one space inserted between each field. If you would like some extra spaces to print between each field, you can specify this by responding ">nn" (where nn is the number of spaces to be inserted) when asked for the "Field to list". For example, to cause a field five blanks wide to appear in the output list, reply: >5 . This is also handy for creating new (empty) fields in cloned databases. See the section entitled "Cloning (outputting a new database)". If you would like to have a backspace printed, which will result in printing the two adjacent fields side by side with no space between, enter a "<" when asked for the field to list. Note that some printers can't handle the backspace character. If you are defining a "Mailing Labels" list you should enter a "/" instead of a field name at the times when you would want a carriage-return/line feed to occur. In this case, you must cause at least one blank line to appear between each label (a "/" as the only field defined on the last line of the report). When you have entered all of the fields to appear on the listing, just push (return). You will be asked "Save this report format?". Reply "Y" if you will ever want to print this report again, or "N" if this is a one-time-only report. If you replied "Y", you will then be asked "Name for this format:". Just type in a 1 to 8 character name by which you would like to remember this report format. You will next be asked: "List on Printer, Screen, or disk(P,S,D)". Type "P" to get a printed list, or "S" to get the listing on your video screen. If you are "cloning" (creating a new database) or printing to disk, reply "D". See the section on Cloning a new database. If this is not a mailing labels list, you will be asked "Title of Report:". Enter any title up to 99 characters long. You will then be asked "List All records or Selected records (A or S):". If you want to see all the records in your report, answer "A". If you only want to list some of the records, answer "S". In this case, you will be shown all of the field names and asked "Field to Select on:". PC- File wants to know which field will determine whether or not the record will be printed. Enter enough of the field name to uniquely identify it (watching out for upper and lower case). You will then be asked "Compare how? >,<,=,<> ". The field which you have selected will later be compared to some value which you will also later enter. PC-File is asking how it should compare the field to the value. If you will want them to be equal, enter "=". If you will want to see records which have the field less than some value, enter "<". For a "greater than" comparison, enter ">". For "unequal", enter "<>". Now you will be asked for the value which your field will be compared to. PC-File asks: "Compared to value:". Enter the value. Example: To list all records with zip codes greater than "980", you would respond as follows: "Field to select on:" ZIPCODE "Compare how? " > "Compared to value: " 980 If you are using a printer for output, PC-File will now pause with a message to allow you to set up the printer. Now is when PC-File really goes to work for you. Here's a peek at what's going on behind the scene: PC-File will select or reject each record based on your selection criteria. It will automatically print your titles, column headings, and page numbers for a report, or omit them for labels. It will automatically format your output list, sending it to the screen or printer, pausing the screen at the right moments. For labels, it automatically compresses the output lines and data to make nice looking labels. It accumulates final totals for all field names ending with a "#". To stop the listing and abort it early, you may press (Esc) at any point in time. CLONING: (OUTPUTTING A NEW DATABASE). You can create an entirely new database from an existing database. You may want to do this to create a subset of the original database (with less records), or to change the way your database was defined (with fewer fields, or with the fields in a different order, or with extra fields which will later have data added to them.) To do this, press (6) or type "LIS" while viewing the master menu. You will be asked "Which format, or press (enter)". Press (return). You will be shown all the field names in your database and asked "Field to list:". Specify the name of the first field for your new database. You can specify these field names in any sequence you desire, and you do not have to specify all of them. In this manner, you can create a new database with the fields in a different order from their original, and possibly leave some of the data out of the new database. You can also insert blank fields in your new database by replying ">nn" (where nn is the size of the blank field which you would like to insert). This is like specifying an output report format, except that PC-File will not put a blank between each column as it would if it were printing a report. See the section on "Listing The Records". When asked: "List on Printer,Screen,or Disk (P,D,S):", reply "D". When asked "Clone or Report", reply "C". At this time, you will be allowed to specify which disk drive will contain the newly created database. You can put it onto a different drive than the one you are currently using for data, or on the same drive. You will also be asked to specify the name for the new database. Be careful not to give it the same name as some other database already on the output drive. If you do the old one will be deleted. When asked: "List All records or Selected records", reply appropriately. If you reply "A", the new database will contain the same number of records as the original from which it was cloned. If you reply "S", you'll be allowed to specify a selection sequence which will give you a subset of the records in the original database. After your new database has been created, you will be reminded that it must still be sorted before you do anything else with it. This is so that an index can be created for it. You will be returned to the master menu screen, still working with your original database. If you wish to change over to the new database at this time, see the section entitled: "Ending The Program / Changing to a new Database". Don't forget to sort the new database as your first activity with it. SORTING THE DATABASE INDEX. You can cause your records to be placed in a different sequence by using the sort feature. To sort the records, press (7) or type "SOR" while viewing the master menu screen. PC-File will load a special sort program into the computer, print out all the field names, and ask: "Sort field #1:". You should enter the name of the field which you would like to use to sequence the file. (Just enter enough of the name to uniquely identify it.). If the sequence will depend on multiple fields, you should give the name of the most primary field in the sort sequence. You will be allowed to enter up to ten field names in the sort sequence. After each field name, you will be shown the length of the field and asked "Length?". Sometimes you don't have to sort on the full length of the field, and the sort would run more efficiently in these cases. For example, to sort on a last-name field that is 15 characters long, it may be sufficient to sort on only the first 6 characters. You be the judge. Enter any number from 1 to the full length of the field. If you enter nothing, it will default to the number shown. When you have finished identifying all the sequence fields, just push (return). You will then be asked "Ascending or Descending (A or D):". This is your chance to tell whether you want the file to be sorted into ascending or descending sequence based on the sort fields that you specified. The sort will now proceed and keep you informed of its status as it progresses. During the main part of the sort, you will see the message "Sorting xxx Records" and a number appearing centered under that line. The number will decrease by 1 each time it changes. This is an attempt to give you a feeling for how long the sort will take. When the number reaches zero, the sort phase is complete. During the index rebuild, the countdown to 1 may appear several times, because the rebuild phase reinvokes the sort routine once for each 350 records in the file. The sort is quite fast, sorting the full 1500 records in under one minute. However, the index rebuild phase is much slower. You can plan on a total sort/rebuild time of 200 records per minute, average. When the sort is finished, it will reload the main program and take you back to the starting point of PC-File. A technical note for those who are so inclined: The sort is a "Shell" sort and takes place entirely in main memory. The data file itself is not sorted. The Index file, which contains pointers to the data records, is sorted. This permits very large files to be sorted at high speed. The sort program has been defined with a maximum of 1500 records to be sorted. This number is somewhat arbitrary and may be changed in future releases of PC-File as more experience is gained. If you ever run out of memory during the sort, try sorting with a smaller number and size of sort fields. SEEING THE RECORD LAYOUT. To see the record layout as it was originally defined, press (8) or type "LAY" while viewing the master menu. You will be shown a list of all the field names defined for the record, along with the corresponding length defined for each field. Pressing (return) will return you to the menu. ALTERING A FIELD NAME. You can change the name of any field defined in your database. You might want to do this, for example, to change a field from numeric to character, or to shorten the field name. Press (9) or type "NAM" while viewing the master menu screen. You will be shown a list of all the field names and asked "Which Name to Change:". Type the name of the field you wish to change. You will then be asked to "Enter the New Name:". Type the name that you would like to use for the new name of the field. You will then be allowed to change the name of another field, or just press (return) to return to the master menu screen. ENDING THE PROGRAM / CHANGING TO A NEW DATABASE. To end the program and return to the CPM operating system, or to change to a different database, press (0) or type "END" while viewing the master menu. PC-File will ask: "Quit, Change file, or Resume?(Q,C,R)". Answer "Q" if you have completed processing with PC-File. Answer "C" if you would like to keep using PC-File, but wish to process a different database. Answer "R" if you didn't really mean to push (0), in which case you'll be returned to the master menu screen. BACKING UP THE DATABASE. From time to time, it's a good idea to make a backup copy of an important database. In order to back up your PC-File database, use the "COPY" program provided on your CPM disk. USING PC-FILE DATA WITH MAILMERGE. You can export your files into a format which can be used with Mailmerge or other types of programs which require your fields to be separated by commas. This is handy for keeping a mailing labels database and then printing customized letters to each person on your mailing list. To do this, you must run (from CPM) the program "PCEXPORT". Answer the questions about the input and output drive and the database name. When the program is finished, your new file will have the name "filename.WS". USING PC-FILE DATA WITH OTHER PROGRAMS. PC-File makes an excellent "Front End" program for other systems which you might develop. You can use PC-File to handle the file maintenance functions and concentrate your efforts on the rest of the system. The file "filename.DTA" (where "filename" is the name you gave the database), is the data file which you will want to use. The file is laid out with each field of the record being fixed length (the length that you defined for it) and padded on the right if necessary with blanks. The fields are in the record in the same order in which you defined them. Deleted records which have not been re-used will be totally filled with the "/" (slash) character. There is a carriage return character (HEX 0D) added to the end of each record. The end of the file is marked with a "\" (backslash) in the far left position (Byte 1). All records in the file will be the same length. The sequence of the records in the file is the same sequence in which they were originally entered (ADDed), except that deleted records are re-used when another ADD takes place. The sort program does not resequence the data portion of the database, only the index. You might also consider using PCEXPORT to output your database into Wordstar format before you try to use it. This way, it will be in the most recent sort sequence. IMPORTING OTHER FILES INTO PC-FILE. This section is not for the novice. Please skip it if you don't think of yourself as a programmer. It is possible to use files created by other systems, defining them to PC-File as your own database. To do this: 1. Start up PC-File and define the file as a new file on your system, so that the "filename.HDR" file will be established. If your file contains more than just a carriage-return at the end of each record, you must either remove the extra characters, or account for them in your file definition. Example: text editor programs commonly put a line-feed and a carriage return after each record. You can account for this extra character by giving it a name and a length of 1. 2. Erase "filename.DTA" from your PC-File data disk (it should be empty anyway at this point.) 3. Copy the file to be converted, onto your PC-File data disk, giving it the name "filename.DTA". 4. Your file must be in fixed-length record format, and contain a "\" (backslash) as the first character in the last record of the file. You may have to use a special program, or an editor program to get your file into this format. 5. Now you have everything that you need except "filename.INX". Create an empty file for this, with a "\" as the only record. Start up PC-File again, specifying your filename as the file you'll be working with. Select the "SORT" option, and sort your file in whatever sequence you desire. Since the sort program builds a fresh index from scratch, you'll have a complete database going for you after you finish the sort. SOME MAXIMUMS AND MINIMUMS. Minimum RAM Memory required.................64K Minimum Disk Drives required..................1 Maximum Disk Drives supported.................2 (Drives A through B, but all the programs must be on one drive, and all the data must be on one drive.) Maximum Field length.........................99 (25 if greater than 18 fields in the record) Minimum Field length..........................1 Maximum Field Name length....................12 Minimum Field Name length.....................1 Maximum Fields per Database..................37 Maximum Records per Database...............1500 (More, if you don't need to sort.) Maximum Number of Sort Control Fields........10 CALCULATING THE SIZE OF DATABASE DISK STORAGE. You can calculate the amount of disk space your database will consume. The filename.HDR file for each database takes 2K. For the filename.INX file, take the number of fields defined and multiply this by 2. To that answer, add 4. The answer is the number of characters in an index record. Multiply this by the number of records in the file, and round up to the nearest 2048 bytes. For the filename.DTA file, add together the length of each field defined. To that answer, add 1. This gives the number of characters in a data record. Multiply this by the number of records in the file and round up to the nearest 2048 bytes. For each ".RPT" (report specification) file, use 2048 bytes. Adding all these numbers together gives the total disk space required for your database. DISCLAIMER. In no event will the Author be liable to you for any damages, including any lost profits, lost savings or other incidental or consequential damages arising out of the use of or inability to use these programs, even if the Author has been advised of the possibility of such damages, or for any claim by any other party. THE USER-SUPPORTED CONCEPT. "User-Supported Software" If you are using this program and find it to be of value, your contribution ($25 is suggested) will be appreciated. Jim Button P.O. Box 5786, Dept.OZ Bellevue, WA 98006 Regardless of whether you make a contribution, you are encouraged to copy & share this program. Clubs and other non-profit organizations are granted permission by the author to freely copy this program and share it with their members, so long as: 1. No price is charged for the software or documentation. However, a distribution cost may be charged for the cost of the diskette, so long as it is not more than $5 total. 2. Club members are informed of the user-supported concept and encouraged to support it with their donations. 3. The program and documentation are not modified in any way, and are distributed together. User-supported software is an experiment in distributing computer programs, based on three beliefs: 1. That the quality and utility of software is best assessed by the user on his/her own system. 2. That the creation of personal computer software can and should be supported by the computing community. 3. That copying of programs should be encouraged rather than restricted. Anyone may request a copy of a user-supported program by sending a blank, formatted disk to the author of the program. An addressed, postage-paid return mailer must accompany the disk (no exceptions, please). A copy of the program, with documentation, will be sent by return mail. The program will carry a notice suggesting a contribution to the program's author. Making a contribution is completely voluntary on the part of the user. Free distribution of software and voluntary payment for its use would eliminate advertising costs and copy protection schemes. Users could obtain quality software at reduced cost. And the best programs would survive, based purely on their quality and usefulness. The entire computing community is indebted to Andrew Fluegelman of The Headlands Press, Inc. for initial development of the user-supported concept. Please join the experiment. If you believe in these ideals your contribution is solicited to help make them work.