P i ġįA-A PRO/FILE PLUS FIVE Virtually every Pro/File enhancement Known by Robert C. Fischer; Rt 2 Arizona St; Emerson, Ga 30137
The enclosed tape includes the improvements from the manual, Tom Woods’ Breakthrough newsletter, and all my own improvements. The changes required for a full size printer are included for the TASMAN interface but the Basic command is omitted in case you don’t have a full-size printer. Check the manual for the necessary Basic adjustment and also for the changes necessary for other interfaces.
Changes applying to the Spectrum conversion and microdrive must be entered by the customer as described later.
Keep copies of old versions with data for a while in case an error occurred when loading the changes or adding other changes listed here.
There are 500 fewer bytes available to hold your data because of the many new routines in this version. If you Spectrumize PRO/FILE, you will return to full capacity.
First, break into the program (just press BREAK immediately after the program is ready to use) and make a backup tape by entering RUN 9990. When the beep sounds, press a Key to save the machine code. When the next beep sounds you are done and the program will wait for you to rewind the tape and play it back for verification.
You can now break in again and RUN ¢990 to make more master copies or CREATE a new file (you can’t LOAD a previous file until we properly transfer the data). New master copies can be made at any time.
HOW TO TRANSFER DATA TO THIS VERSION If you already have my improvements up through EXTENSIONS issue #4, your data tapes are compatible with this version so skip the following instructions for transferring data. If your files are larger than 27529 bytes, you will have to reduce their size first. There are 2 other different ways your data may presently be stored in Pro/File: 1= The original version, or the one found in EXTENSIONS #3 and Pro/File Plus 3. 2= The method found in EXTENSIONS #1. Please notice the differences for each situation in the instructions below. First load in your previous version of PRO/FILE with any data and then:
1. Break into the program.
2. If you have the first selection above then as a direct command type in SAVE FSCODE PEEK 23627+256*PEEK 234628+26,P-20
3. If using the second selection then as a direct command type in SAVE FSCODE PEEK 23627+256*PEEK 23628+32,P-20
4. Start your recorder and press ENTER to save the data.
3. Verify the save by entering VERIFY ““CODE and play back the tape.
é. Type PRINT P-20 and ENTER. Write the answer down!
7. Repeat the process for each of your file tapes.
You can move data from programs having different lengths for D to your new program. The only requirement is that P not exceed the length of D$ (27520 bytes). After all your files have been thus saved, load in the new PRO/FILE PLUS 5. Then:
i. Choose the CREATE option and input the name of the first file to transfer.
2. At the main menu, break into the program and enter LOAD "“CODE PEEK 23627+256*PEEK 23628+35. Now play in the first data tape.
3. When loading is complete, enter LET P=P+ whatever you wrote down for this data. We have now assigned the proper file name, transferred the data, and reset the value of P.
That’s all we need sa:
4. Enter GO TO 1.
5. From the main menu enter SAVE and follow the instructions to save to a new tape and verify. You will only save the data space actually filled so the process will be pretty quick usually.
é. Break into the program again and enter RUN 99964 and go back to the first instruction to transfer another data tape.
IMPROVEMENTS, FIXES, NEW ROUTINES Improvements which are exactly as found in the manual are simply listed. Manual routines changed or fixed or any new routines are explained.
MEMORY SAVINGS: Just putting the improvements in from the manual used to cost you 1000 bytes of storage. Now, with many new capabilities added, you get 500 of those back.
BACKUPS: Described previously
DATA SAVE: Now you just save the data actually used to save time and you can move data between programs having different lengths of D$. The only requirement is that the length of the file space actually used (variable P) not exceed the lenth of D$. If you wanted to transfer a file from a program having D$ set for 28000 bytes into one having just 27000 bytes, you could do so as long as P is not greater than 27000.
VERIFY FEATURE: Verifies data used.
MERGE: To combine two or more files, just enter MERGE instead of LOAD. Be sure that the combined values of P do not exceed the length of D$ or you will crash the program and have to start over. After merging, you will need to delete the extra file which used to say “SEARCH IS COMPLETE". However, this has been altered to hold the name of the last file loaded followed by the value of P. Just search for the name of the file you loaded and delete the file. Your two files are now merged with the garbage removed. Please note that the new combined file retains the date from the first file loaded and the name of the last file loaded. Use NN or DATE to change these items.
PRINTING OUT: With a full size printer, you can print out more than ane file line ta one line of that printer. Just use a period instead of a slash to separate format lines. This will print the 32 characters of one line immediately followed by the next on the same line as long as there is room.
PRINTING STATS: The information available at the bottom of the screen is now treated as line 16, so to print it out, just use 16 in the print format command.
DEFP FILES: If you use several print formats often and don’t like typing them in each time, try this. Add a file which has the first 5 characters in line 1 as follows: #DEFP. Anything after that on the same line won’t matter. Now, on each even line write the number of the format (line 2 would be #1, line 4 #2 etc) and describe the purpose of the
format. On each odd line (beginning with the third) put the actual format. It may look like this:
#DEFP
l=address format
1/2/3/4/0
2=name and phone number 1/5/0
name, sex, age, year hired 1/6/7/8/0
Now you can search for this file and when it is on screen enter i to get the address format, 2 for the names and phone numbers, etc. Note: only 7 formats are possible on each screen and each format line cannot exceed one line in length. Be sure a format line is entered correctly.
poser
DON’T LPRINT BLANK FILE LINES: FRO/FILE PLUS corrects an error in the manual. GO DIRECTLY TO LPRINT FROM THE EDIT MODE WITHOUT GOING TO THE MAIN MENU
FULL SIZE PRINTER MODIFICATION: You just need ta reinsert line 1 land 2 if using the Byte-Back interface) as described below:
1 POKE VAL "26703" VAL "167: POKE VAL "26704" ,VAL "248°
2 GUT VAL "14255",0: QUT VAL “16255",0: OUT VAL "16255" ,0: OU T VAL "16255" VAL "é4": QUT VAL "16255" VAL "204": OUT VAL "1625 3" VAL "55"
For those using the Byte-Back interface, the "Q" in line 2 is a letter, not the number zero!
If using an Aerco or Byte-Back interface, make the necessary machine code changes beginning at address 63756. See the manual, page 118 or 121 as appropriate.
Create a new master copy to make this change permanent.
AVOID PRINTING "SEARCH IS COMPLETE" OR SPECIAL FILES: Doing an auto search with printout will no longer result in "SEARCH 1S COMPLETE" being printed. Also, any other files you don’t want printed during an auto search should have ## as the first two characters on line 1 of the file. å regular COPY command from the display menu will print them out.
GO FROM EDIT TO THE NEXT ENTRY WITHOUT GOING TO THE MAIN MENU: The original routine never actually did this, although in some situations it would seem to. This has been improved so now you will always go to the next actual file that matches the search command. Just close an editted file with "STEP" instead of "STOP".
AUTOSEARCH IMPROVEMENT BLOCK DELETE
TALLY: This routine would not work properly with the machine code sort in certain situations. The problem has been corrected. Also, just before the search begins, you will be asked what line of the file the Tally should work on. The same versatility is found on the SUM routine described next.
SUM: This is like TALLY, but an entire line is treated as one value instead of half and half. The total of each record would be shown in SUM2. SUM1 would show the combined total of all found files. Activate the routine with the reverse slash followed by S.
COMPACT MENUS: The display and edit menus now show more options at one time. Also, a long search command (two lines long), will no longer cause a problem with the screen SCROLL. Please note that you now use "G" to return from the display menu to the main menu instead of "N"!
NAME REVERSAL: This routine will take a name which is listed last name first for
alphabetizing purposes and print it out in normal order if you wish. The screen will not change and your files will be unaltered as long as you do no further editting at that time. If you want to edit it after printing, call it up again first. Only the printout is affected if handled this way.
Some guidelines to remember are that the routine will take anything up to the first space to be the last name and anything from there to the second space to be the first name. Any data after the second space will not be printed when the routine is activated. Also, since the routine looks for spaces, do not use commas to separate the names or it
will appear after the last name on the printout. Some examples fallow. The first column shows what is on the first line on the screen and the second shows the resulting printout when activated:
SMITH JOHN JOHN SMITH DOE, JOHN JOHN DOE, REAGAN RONALD (PRESIDENT) RONALD REAGAN JONES Jr BILL Jr JONES
To activate the routine, just hold down the ENTER Key when entering "C" for copy or starting an auto search with printout routine until the printer starts copying, then you can release the Key. If you don’t want the routine activated you better release the key quickly. On an auto search the routine will copy all files the same way once activated. When editting, if you press "THEN" for a printout, the name reverse is not activated. To cancel the command as the computer does an auto-search, hold down the space bar.
As written, the routine only works on line 1. To make it operate elsewhere you will need ta change lines 7207, 720%, 7210, and 7211. In each of these lines you will notice a reference to E$(U}. There may be something after the "U" such as ES(U,X), but it doesn’t matter. The "U" refers to line #1 so just change every "U" in that position to the line number you prefer. When done, make a new master copy to make the changes permanent.
SPACING FILES: When the print format is ALL, a blank line will be printed first to avoid files running together. If you don’t want the space, then enter the format as 142/3/4/5/6/7/ etc
CAPS LOCK SET: When loaded, the program starts in caps mode. CHANGE A FILE NAME RESTART GR CLEAR A FILE OF DATA
ADD A TICK FOR AUDIELE FEEDBACK WHEN YOU ADD DATA: This is switchable and works on any Keypress, not just when editting. At the main menu just enter "T" to turn it on or off.
DISABLE AUTO REPEAT IN EDIT MODE: I didn’t include this. If you want it, just make the following change: 3103 GO TO 50104+(93*(COBE INKEY? >13))
BETTER EDITTING: You may have noticed that when editting a file the letters sometimes don’t appear on screen. This has been corrected. Also, the cursor now wraps around the screen when using the cursor keys UP, DOWN, LEFT, and RIGHT. Finally, deleting information within a line will no longer cause a character in position 32 to be deleted as well. `
EDIT PHRASE: If you need to put the same information in many files such as the present date an order is received, you can create a one line edit phrase which you can put ina file with just two key presses. At the main menu enter the word "EDIT" and then follow the prompt to put in your edit phrase (32 characters maximum). Once entered, it is retained until you UPDATE or save the data.
Whenever you add or edit a file, just place the cursor where you want the phrase to begin and then press SYMBOL SHIFT - I (the AT token) and the entire phrase will appear. If in OVER mode, the phrase will cover anything in its way. If you try to put a 20 character phrase in starting at position 28, then most of the phrase will be cut off. When in INSERT mode, the phrase will move any existing data to the right (cutting off the end if necessary).
UPDATE: When at the main menu, enter a search command that ends with the reverse slash and the letter "U". The program will then ask what line you wish to change followed by what data will be changed, and then ask for the new data. When all that information has been entered, the program will find the first file that fits your search command and
©
display it on the screen. It then checks the line number you input ¢i-i5) and if it starts with the data you input it will change the line to hold the new data. It will then continue on to the next match until all appropriate files have been corrected. Please note that all files displayed, whether changed or not, are deleted from the program and then added back on to the end. Therefore your files are no longer in the same order (you could do this deliberately to group certain files together).
You can change any data you wish on a line from nothing to all 32 characters but the data to be changed must begin at the start of the line! If you wish to change "STUDENT FILE NUMBER: " to be “STUDENT RECORD NUMBER: " you would input the data to change to be "STUDENT FILE" and the new data to be “STUDENT RECORD" because you must start with the first character. Remember this when you set up your data. The new data can be shorter or longer than the original. Just remember that anything you type in for data ta be changed will be completely deleted and then the new data will be inserted. Any other data on that line will be moved left or right as necessary. If the new data length combined with the remaining data is greater than 32, the ending characters of the old data will be cut off permanently.
One use is to update information. I use this to alter my student’s records each year. I go through my files checking for all students in 12th grade and changing "12th" to "GRADUATED", "iiith" to “12th", *10th* to “lith", etc. Consider carefully the order you change things in. If I started with the 10th grade first and made them iiith and then changed the 11th grade to 12th I would actually end up with all 12th graders!
As the program runs you can pause it by holding down the space bar. When a file appears wait until you see some instructions flashing at the bottom of the screen. Now you can release the space bar. To continue press another Key (but not space). To stop the routine press BREAK.
This is a very powerful routine but also dangerous. You may think you are only going to change the grade a student is in for example, but if you happen to have some files with a 12th street in that same line and position it will be changed as well! Careful planning of file organization helps as well as the use of codes.
I suggest you practice on a file tape which is safely backed up until you get used to it.
MIDDLE SEARCH: This allows you to do a search and then begin a new search from the next file. The new search can be set up as an auto search which prints the file or a normal search which stops at each found file.
When you are at the appropriate file you enter ">" to allow for a normal search from that point or ">=" for an auto search with printout. The lower screen will then prompt you to enter a new search command.
EDIT TO ADD or ADD TO ADD: When adding or editting a file you can close it using the token " TO " and you will go to a blank screen where you can add another file instead of returning ta the menu.
MACHINE CODE SORT: Besides the problem with the tally routine there is one situation when this routine will lock up the computer. Suppose you sort by a line which will be the last line of some files but in other cases there will be more lines. The program will crash when the last line of one file is compared to a line which is not the last line of another and the information in the lines is identical. In one case the routine will eventually come to an end of line marker (code 1) and in the other it will find the start of a new file marker (code 42). The routine locks up when this happens. I do not Know enough about the routine to fix it, but it can be avoided. Either don’t allow any identical information to be on the last line of any files, or put dummy information such as a period in a later line so the last line is found later.
For those who don’t have this sort from Tom’s Breakthrough newsletter, here is a very brief summary of how to use it. This routine actually rearranges your files. First
enter AUTO for an auto search, select printout or not, choose which line to order by (or
zero if ordering is not required). if you choose to order the files, the computer takes over and begins alphabetizing. If you chose to printout, then every file will be put in proper order and printed out according to the present format. If you want to order your files quickly without printing them, you must turn the printer off. To maximize speed, make the print format a single zero. Long print formats slow things down whether the
printer is off or net.
If you selected no printout, the routine will stop at each file it has put in order. You can then press ENTER to put the next file in order or EDIT, DELETE, etc. However, if you do anything besides press ENTER, the alphabetize routine will cancel at that point. To print out only certain files, first alphabetize all the files with the printer turned off. When done, go back to the menu and do an auto search, but enter zero as the line to sort by. Now you can input a regular search command and only those matching the command will be found and printed (in order). Be sure your printer is turned back on first. Files remain in order until you ADD, EDIT, or use UPDATE.
Files which have no data on the selected line or use fewer lines than the line you select to sort by will usually be put first, but sometimes the short files will be last.
Remember that numbers come before letters and uppercase before lowercase, and then there are spaces and punctuation to account for. Since numbers are treated as characters the number “S" comes after "2000". If numerical order is important, all numbers must have the same number of digits. If the highest number has 4 digits, then the number “i" should be written as "0001".
EDITTING HINT: To save time when editting many files at about the same screen location, do this: In line 5002 the variables L (for line) and C (for column) are set to zero, which means the upper left corner of the screen. That’s why the cursor always starts there when editting. If, for example, you will be doing a lot of editting on line 5 and column 10, you can temporarily change line 5002 to make L = 4 (line 5 to the computer screen) and C = (column 10 to the computer screen).
DUPLICATING FILES: If you will be making a lot of new files which will have some information identical to each other, here is a way to make just one and then duplicate it as often as you wish: If you clase the file with the token AND, you will hear a BEEP which means the file was saved, but the file will remain on screen where you can save it again as often as you like. Later you can go back and fill in any other data.
LONGER SEARCH COMMANDS: Search commands can now be up to fifty characters long instead of 32.
DATED FILES: The first file ("SEARCH IS COMPLETE") now has a second line used to hold the date that you last updated your records. It can hold up to 8 chacters for dates such as 12/25/84. This is seen every time you complete a search and also on the main menu. When a file is created, the screen will say SET DATE as a reminder. To do so, just enter DATE at the main menu and follow the prompt.
THE INCREDIBLE OR/NOT SEARCH: In spite of the fact that it is buried way down here in the documentation, the new search capabilities are one of the greatest gains in PLUS 5. It works the same as Tom’s cartridge version of PRO/FILE.
The "AND" search is exactly as in the original, but now you can also use "NOT" and "OR" - even in combination.
The "NOT" token is the exact opposite of "AND". If you search for “SMITH NOTNEW JERSEY" (that’s not a misprint; no space will appear after the token NOT), the computer will find SMITH and only display the file if the file DOES NOT also include NEW JERSEY. You can use more than one "AND" and "NOT" token in a search command if you wish.
You can not just search for "NOT NEW JERSEY". A search command must first search for something and then use NOT.
The use of "OR" is best thought of as a separator. It is ALMOST the same as doing two or more searches with just one command. For example, instead of searching for "SMITH" and when done doing another search for "JONES", you could just search for "SMITH OR JONES". The computer will first find every file containing SMITH and then go through the unmatched files to find each one containing JONES. That’s the one difference to doing an OR search rather than a separate search. A separate search would find every SMITH and then every JONES even if a file which contained JONES was already found when looking for SMITH (such as a SMITH who lived in JONESBORO). There are advantages to both methods. As with the other tokens, multiple use of "OR" is okay. .
You can also combine "OR" with the other tokens. "SMITH AND TEXAS NOTDALLAS OR
JONES NOTMAINE" would first find every SMITH from Texas except those from Dallas and then find every JONES except those from Maine. Experiment, this capability can get “ confusing sometimes (Keep back-ups of data).
Use special care when using the block delete function on an "OR" search. A search for "* NOTTEXAS OR * NOTMAINE\D" would not, as you might think, delete everyone except those from MAINE or TEXAS. It would first delete every file which did not contain TEXAS and then delete any which did not cantain MAINE. The only files that would remain would be those which contained both TEXAS and MAINE! The correct way to do the search would be “* NOTTEXAS NOTMAINE\D" thus avoiding the "OR" token completely. Like I said before, experiment and Keep back-ups!
SPECTRUM COMPATIBILITY!
If you purchased a Spectrum emulator like myself you may prefer to use PRO/FILE in Spectrum mode. I use the ROM Switch but I assume this should work with any emulator or a reqular Spectrum. If you have added Sinclair microdrives, I have added routines for their use as well.
First POKE 63666,0 and POKE 63467,0 Now change the following lines:
5 IF INKEY$=" " THEN PRINT AT VAL "21",0; FLASH U;"STOP TO EX IT/ENTER TO CONTINUE ": PAUSE 0: GO TO F+U+(VAL "9395" AND INKEY $=" STOP ")
60 DELETE THIS LINE 3007 DELETE THIS LINE
90146 IF Y$>=" AND ° AND Y#<>" TH EN " THEN FLASH 0: GO TO 4000
9222 IF VAL 2$>=0 AND VAL Z$<=J THEN GO TO VAL "35230"
3230 IF VAL 2% THEN LET S=VAL Z$ : CLS : GO TO VAL "35240"
8000 DELETE THIS LINE
6205 CLS : LET D$(H TO G+F)=F$:
LET D$(K+H TO J+UD=STR$ P: SAVE
FS$CODE PEEK VAL "23627"+R*PEEK V AL "23628°+G-U,P
8220 BEEP U/H,J+J: PRINT AT K+K, G;"REWIND TO VERIFY“
7400 PAUSE K+K: LET Y#=" STOP ": GO TO U
9996 Just dimension D$ back up to 28029
Since we have eliminated some error checking, take reasonable care in using the program. For example, don’t press BREAK when editting a file and make sure you actually input a number rather than other characters when telling the program what line to sort by!
It is assumed that you will always verify any saved data. If the data fails to
verify ar you press BREAK, the program will stop with an error report at the bottom of the screen. GO TO 1 will get you back to the menu where you can try again.
If you use a full size printer option there are some necessary changes needed. Delete line i (and 2 if using the Byte Back serial interface). I don’t Know what line i POKES if used on the Spectrum, but it isn’t what it’s supposed to be so we definately don’t want to activate thase commands! Line 2, if appropriate, may or may not be a problem, but let’s not take any chances. After we finish transferring this program to the Spectrum and have a master copy safely made, 1°11 show you how you can still use a full size printer.
The pause routine when using UPDATE requires you to press STOP instead of BREAK to exit. Finally, because of the machine code differences on the 2068-and Spectrum you can nat use the Spectrum version with the 2068 ROM or vice-versa (however, data tapes are completely compatible!>.
Make a master copy by entering RUN 9990.
To use the Sinclair microdrives, you must now load the new master copy just made into your computer in Spectrum mode with Interface I connected! Now change the following:
5507 CLS : PRINT AT K,Q;°T for T ape or 1-& for microdrive": PAUS E 0: LET FP#=INKEY#: GO TO VAL ‘5S 307°+(U AND P$="T" OR P$="t")4¢(Y) AL "293" AND P$>"O" AND PE<* 9")
3508 LET P=P-U: LOAD FSCODE PEEK VAL "23627"+R*PEEK VAL *23428*+ P+G_U: LET F&=D$(P+H TO P+G+F): LET F=P+VAL D$(P+K+H TO P+J+U): BEEP U/H,J+J: GO TO U
5600 LET X=VAL PS
3802 CLS : IF LEN F#<U OR LEN F$ >K THEN CLS : PRINT AT K,O;“INPU T FILE NAME TO LOAD": INPUT F$: GO TO VAL "5802"
5805 LET P=P-U: LOAD *"M";X;F$C0 DE PEEK VAL “23627"+R#PEEK VAL " 23628"+P+G-U: LET F$=D$(P+H TO P +G+F): LET P=P+VAL D$(P+K+H TO P +J+U): BEEP U/H,J+J: GO TO U
8200 CLS : PRINT AT K,O;"T for T ape or 1-8 for microdrive": PAUS E 0: LET P#=INKEY$: GO TO (VAL " 8300" AND P$>"O" AND P$<"9")+(VA L "8201" AND P#="T" OR P$="t")
8201 CLS : PRINT AT K,O;"PRESS A NY KEY TO SAVE ": PAUSE O
8300 LET X=VAL P$: CLS : LET D$( H TO G+F)=F$: LET D$(K+H TO J+U) =STR$ P: ERASE "M";X;F%: SAVE æ" M";X;F$CODE PEEK VAL *23627*+R#P EEK VAL "23628"+G-U,P: VERIFY æ" M";X;F$CODE PEEK VAL *23627"°+R#P EEK VAL "23628"°+G-U
8210 GO TO VAL "8230"
9900 CLEAR : ERASE "M";1;"PRO/FI LE": ERASE "M";1;"p/f": SAVE #°M "s1;"PRO/FILE" LINE VAL "9901":
SAVE *"M"s1s"p/4"CODE VAL "63488 "VAL "2046": VERIFY *"M";1;"PRO /FILE*: VERIFY *"M";{;"p/f"CODE
: BEEP VAL ".5",VAL "40": GO TO
VAL "9996"
9901 BORDER NOT PI: PAPER NOT PI
: INK VAL "7": CLEAR VAL "63487" : LOAD *"M";1;"p/#"CODE : CLS : POKE VAL "23658" ,VAL "8": GO TO VAL "9996"
Make a tape master with RUN 9990 or a microdrive master with RUN $900.
You can use one cartridge for your master and others for data but I prefer to save a master copy to each cartridge I will use. This will take about 90 seconds since the program will first try to erase any old copies on the cartridge. Since there isn’t one it takes longer. In the future, if you save a new version on the same cartridge, it is much quicker. The same thing happens when you save data. The first time you save data with a particular name, it takes longer. Also, be sure you never save different data with the same name to the same cartridge!
After a master copy has been placed on each cartridge you need, use NEW to clear the computer and type the following program:
10 LOAD *°M*;1;"PRO/FILE"
Save this program on each cartridge containing a master copy with SAVE e*m"siy"run* LINE 10
To load in a microdrive master just start with a newly turned on computer or one that just executed the NEW command and enter RUN. This will load the short program which will then load the master.
Now with that copy safely tucked away, let’s see if we can restore full size printer compatibility. First make line 1:
1 POKE VAL "23749" VAL "187": POKE VAL "23750" ,VAL "248"
If you have the Byte Back interface, you can restore line 2 as it originally was in the manual. 63698 63689
Now POKE G46@7,84 and POKE @e@6,31.
At this point save a master copy (but do not replace the previous 32 column printer copy in case this doesn’t work with your particular printer).
To restore the program to accept the 32 column printer, the pokes made in line 1 should be reset to 244 and 9 respectively.
GOOD LUCK!