PDS*BASE DATA BASE - Version 3.22 YOU MUST HAVE DOS 2.0 OR HIGHER AS, THE HIGHER DISK CAPACITY IS REQUIRED TO CONTAIN THE ENTIRE SYSTEM AND MANUAL ON ONE DISK. Please keep the original single PDS*BASE System disk, as you received it, so that you will be able to make complete copies to give to someone else. PRO DEV Software could not fit the entire system on one disk such that room would be saved to install DOS at a later date. It was necessary to format a disk without DOS (9 Sectors/Track using the DOS 2.1 FORMAT.COM) to allow the entire system to fit on one disk. It is very important that your DOS "boot-up" disk contain a CONFIG.SYS file if you are going to have more than 2 files in your data base. The DOS default number of files that can be open at one time is 3. Your data base will also have 1 additional automatic file that keeps a running record of active record numbers, thus, this brings you up to 3. If you already have a CONFIG.SYS file on your boot-up disk, add the FILES and BUFFERS command. If you don't already have a CONFIG.SYS file, create it. The MANUAL.DOC file is 81 pages of detailed instructions for using the PDS*BASE System. PLEASE do not be afraid to send a contribution to PRO DEV Software($39.95) Add $10 more if you wish an up-to-date copy of the system disk. If you feel that it is worth more, don't be shy, we will accept more. This is "User Supported Software". It is not copy protected. You probably got your copy "free". If you don't like it, don't even consider paying for it. If it is useful to you, remember that it took the owner of PRO DEV Software (George Abbott) about 2,000 hours of midnight oil to develop this system. Don't send him money out of pity, as he is already pitiful enough. Send money because you appreciate his efforts. Enough commercial. IF THE MENU.BAS PROGRAM LOCKS UP YOUR COMPUTER The MENU.BAS graphics subroutine may lock up computers with certain monitor cards. A peek function performed at line 1010 attempts to RETURN without any graphics attempts if you have a standard IBM monochrome card. This peek doesn't work for all monitor cards, such as the Hercules monochrome card. In your working copy of the system, insert line "1005 RETURN", if you are having trouble. Please don't make this change on the original single disk copy of the PDS*BASE System master, as this change shouldn't be passed on to the next person to get a "free" copy of the system. Line 20 of the MENU.BAS program performs a poke to set Caps and Num lock. If this presents a problem with your computer, only remove this line from your working copy. CUSTOM PROGRAMS The PDS*BASE Data Base System is capable of creating custom random access data bases and the complete BASIC language programs to operate your data base system. However, a good BASIC programmer will probably wish to use the system to create only the data base and the operational subroutines to access the data base from within a BASIC language program. Then, the programmer will write his/her own main programs. The generated programs are trying to be all things to all people. A custom written main program will be more efficient and actually be quite easy to write. For this reason, be sure to read Section 7 of the manual entitled "Doing Your Own Thing". It will show you how to use the subroutines that the DBOPSUB program generator will create for your custom applications. COMPARISONS WITH OTHER DATA BASE SYSTEMS The following will compare the PDS*BASE Data Base with dBASE III PLUS by Ashton-Tate. Many of the other data base systems on the market are similar to dBASE III in many respects. PDS*BASE dBASE III PLUS >Type of data base Hiearchal (Master/Detail) Auto-Relational with AND Relational via SET RELATION TO flexible methods of command in DO program programming. Up to 9 files. Hierachal takes multi-record Detail files special programming. per each Master record. Closed Data Base Open Data Base Maximum number of Maximum number of records set at the records is dynamic time the data base is and usually limited defined. to disk space. >Random Access Hashing - Very fast Index files that and doesn't require must be open when index files. Sort key records are added, files created for deleted or modified reports. The key The index files are files only contain somewhat large as record numbers. they also contain the search strings. >Speed to create If the program is Fairly long time as Key or Index file compiled it compares the search strings favorably unless the are included in the file is over several index file. More thousand records and efficient for large the sort time becomes files. Creating a new a factor. Since BASIC index in a large only uses 64K, memory existing file is for larger sorts is a time consuming. problem. A compiled program with 2541 active masters sorted in 8 1/2 minutes. >Number of Open 10 - Can be 14 if you 10 files. However, Files modify the DIM lines Index files count in the generated toward the limit of programs. Only one 10 files. Program key file open even and format files also though 10 masters may count toward the limit be open. of 10 files. >Screen Input You can "Main" program May not be as easy Editing as complex editing as as BASIC, although you wish. You can check it can be done. The records in another format files allow Master or Detail while certain edits. posting to a file. In summary, the PDS*BASE Data Base is very fast when posting records as NO key or index file is used to "look up" the record number. The key files for reports are fairly compact as they only contain the record numbers. However, files over several thousand records may require longer sort times. Not all applications lend themselves to the closed architecture of the PDS*BASE system where you must pre-define the number of records in the files. You probably shouldn't use the PDS*BASE system over 5000 records as BASIC memory for sorts may be restrictive. (Try to find this type of honesty in anybody else's documentation). On the other hand, open architecture systems require larger index files. To post records, the index files are searched. Although the search is usually fast, hashing without an index file is often faster. The open systems can also grow with you if your file size requirements become larger than originally anticipated. Ashton Tate's dBASE III also has a very good ASSIST system that is more powerful than the question and answer PDS*BASE program generators. Systems like Ashton-Tate's dBASE III are EXPENSIVE compared to the PDS*BASE user supported public domain software. Lastly, THE PDS*BASE SOFTWARE IS UNPROTECTED. Some systems are "Protected" to the point where it is worrisome to depend on them to safely access your important records. Some of the expensive systems can be installed on your hard disk, BUT, they hide potentially nasty little files on your disk that may cause you problems during tape back-up after a disk crash. If you need an open architecture system that is unprotected, has a reasonable cost and you don't mind learning a new language take a look at the newer systems on the market that can be obtained for less than $100. COMPILING YOUR PROGRAM Microsoft's new QuickBASIC compiler can compile all of the PDS*BASE generated programs. You can even modify the generated programs to handle file and record locking for LAN applications if you use QuickBASIC along with MS-DOS 3.1 or higher. When compiled you can have 64K for your program AND another 64K for variables. This allows much larger sort arrays. If you use Summit Software Technology's BetterBasic, you have FULL use of available memory for large sorts. Prior to Version 2 you will have to modify the file opening subroutine (generated lines 300-400) as the BetterBasic system does not support the FIELD statement. They use a good structured approach to random files, however, the PDS*BASE program generators are only arranged for the FIELD statement. Version 2 of BetterBasic does now support the FIELD statement. HARD DISK OR LAN INSTALLATIONS You will need to modify generated line 320 to remove the disk drive letter from the file name, unless you selected the program generator option to do this for you. Changes for Version 3.1 The hashing Subroutine at line 500 was modified by multiplying the ASCII code by the FOR-Next indexer unless the length of the search string exceeds 12, in which case the ASCII code is divided by the indexer. Prior to Version 3.1, it was only multiplied. This change produces a better random spread for large search strings. Changes for Version 3.11 Version 3.11 corrected the hashing line at 522 to test for ASCII 32 (blank) before the the ASCII code is multiplied (or divided) by the FOR-NEXT indexer. ***** NOTE ***** If you have programs running under Version 3.1 and new programs are generated for the same random files with later versions, modify the generated hashing line 522 to be the SAME as in your programs that have been creating records under 3.1. Otherwise, you won't be able to random access the old records. Changes for Version 3.12 Pages 4 and 5 of this document were added along with Appendix D of the users manual. The DBMANAGE program now allows the user to enter a back slash if the same master is desired. One of the users suggested this. DBOPSUB had a bug that left out a generated line if a file was spread over more than one disk drive. Changes for Version 3.21 The PRIMES.BAS program was added to aid in calculating more effective file record quantities. The manual was extensively re-written to pick up the changes since Version 3.1 Changes for Version 3.22 The operational subroutines detect if the data base files have not been pre-created. The data base manage program displays percent data file fill. Don't hesitate to experiment with hashing subroutine line 522. Under certain applications of file size and search string length, you may get a better random spread. Poor spread is evidenced by excessive secondary masters (clumping below several calculated record numbers). Please see Sections 4.4 and 4.11 of the manual. Be sure that you hash the same for all programs that access the same files. It is suggested that you NOT modify line 530, as this is the line that converts the very large number produced in line 522 to a number somewhere between 1 and the total number of records in the random file. An excellent reference on the subject of data base systems is "Computer Data-Base Organization" by James Martin, published by Prentice Hall. If you have access to a Hewlett-Packard HP-3000 computer, read the documentation for their IMAGE data base system. They do a good job of explaining the Master-Detail data base relationships. GOOD PROGRAMMING!!!