& FROM ISSUE #20&F : NIBSHOW 1.1 by Stuart T. Wyss-Gallifent&: incorporating the NIB COMPRESSION SYSTEM by Rick Cooper&: NIBSHOW 1.1 (C) 1993&(: A few commands are duplicated within the program due to NIB interaction.' 2 80: 0,0: 8,63:1''<8:500:FL$(26):370'pF&HF09D,0:&HF09E,2:&HF09F,0:&HF014,0::DRIVE,HSCREEN,LINES,BORDER'P&HF010,0:&HF011,0:&HF012,0:&HF013,0::COUNT,SS,SSK,DELAY'Z&HF016,1:&HF015,1:&HF017,0:&HF018,1(d: LOAD NIBLOADR.BIN FROM DRIVE 0( n0(-x65496,0:M"NIBLOADR":65497,0(\(&HCFC3)&H8D &HE76,&HCE:&HE77,&HE7(f380(:CHECK DISK FOR NIB EXTENTIONS(9,55(A219:0,A::A(1,0:28,12:"Reading directory"(K0(ȀS311)Ғ65496,0: (&HF09D),17,S,A$,B$:65497,0)$܀A1(A$)32)f(A$,A8,3)"NIB"((A$,A,1))0KK1:FL$(K)(A$,A,8)){K26K26:300)A)A1(B$)32)(B$,A8,3)"NIB"((B$,A,1))0KK1:FL$(K)(B$,A,8))K26K26:300)"A:S*,28,12:0,0:" "*&6A1K*S@(FL$(A))8FL$(A)FL$(A)(32):320*ZJA*T&HF010,K:&HF018,1:: SET NUMBER OF ENTRIES*^A1K:B18:&HF019A8B,((FL$(A),B,1)):B:A*h390*r500:FL$(26):370+|0::0,0:0,0:8,63:9,54:10,19:11,53+?&HF011,0::SET SLIDE SHOW TOGGLE OFF+0,0:"Current drive:"(&HF09D):28,0:1,0:"N I B S H O W 1.1":60,0:0,0:"Default Hscreen:"(&HF09E):"Vertical lines:";+L2(&HF09F):L20"192":L21"200":L22"225",F66,1:"Border:";:(&HF014)0"black";:(&HF014)63"white";,t(&HF016)1&HF016,0:A219:0,A::A,(&HF017)1&HF017,0:470:(&HF017)2&HF017,0:79,22:480,…(&HF010)0470,́930-օ(445728)650,21:"Arrows:move Space:load D:directory C:change drive number B:border swap H:hscreen swap L:192/200/225 lines select S:slide show X:exit"-A$:A$""480-A$"X"65496,0:500:0:1:.mA$"S"(&HF010)00,21:(160,32);:0,21:"Time delay between frames (in seconds, minimum=3): ";A$:(A$)3(A$)900380:&HF013,((A$)):850.A$"H"(&HF09E)2&HF09E,4:&HF017,2:400:(&HF09E)4&HF09E,2:&HF017,2:400/_A$"C"0,21:(160,32);:0,21:"New drive: ";A$:(A$)0(A$)3&HF017,1:400:&HF09D,((A$)):(&HF09D):&HF010,0:&HF016,1:400/A$"L"&HF09F,(&HF09F)1:(&HF09F)3&HF09F,0:&HF017,2:400:&HF017,2:4000A$"B"(&HF014)0&HF014,63:&HF017,2:400:(&HF014)63&HF014,0:&HF017,2:4000(&A$"D"1500>0(&HF010)04700X:A$(32)ASL:5900cD10300NF1$"":B18:F1$F1$((&HF019A8B)):B0X6100b:ACTUALLY LOAD THE PICTURE AND DISPLAY0lX0(F1$)11v&HE92X,((F1$,X1,1)):X1&HE6E4,&HE61!(&HF09E)191:FL$(26):3701F65496,01Q&HF001^65497,01x500:FL$(26):3701 QZ0 3:DP(QZ)(&HFFBBQZ)64: QZ1ƒ&HFF9A,(&HF014):(&HF09E)47402L2(&HF09F):L20&HFF99,158:L21&HFF99,190:L22&HFF99,1262!ځ7602kL2(&HF09F):L20&HFF99,157:L21&HFF99,189:L22&HFF99,1252u7602(&HF011)18902I$:I$""(&HE92)421110:7702 I$"1"12I$"2"2:(&HF09E)27102 I$"3"33*I$"4"4:(&HF09E)47103X4I$"L"&HF09F,(&HF09F)1:(&HF09F)3&HF09F,0:710:7103>I$"B"(&HF014)0&HF014,63:&HFF9A,63:770:(&HF014)63&HF014,0:&HFF9A,0:7703H7703R:SLIDE SHOW3\&HF011,1::SET SLIDE SHOW FLAG4f&HF012,14VpF1$"":B18:F1$F1$((&HF019(&HF012)8B)):B:P015:P,0:P:6104_z04(&HF013)60910:""910:(&HE92)421110:9004&HF012,(&HF012)1:(&HF012)(&HF010)870:88043804:MENU5A1(&HF010)5-HS(A1)(((A1)4)4):VS((A1)4)5=HS20,VS35F3,05nԀB18:((&HF019A8B));:B:A5SL(&HF018):OLSL5HS(SL1)(((SL1)4)4):VS((SL1)4):HS20,VS350,0:B18:((&HF019SL8B));:B54706$A$(10)SLSL4:SL(&HF010)SLSL46IA$(94)SLSL4:SL1SLSL46mA$(8)SLSL1:SL1SLSL16$A$(9)SLSL1:SL(&HF010)SLSL16.SLOL 1080 : 102068HS(OL1)(((OL1)4)4):VS((OL1)4):HS20,VS37B3,0:B18:((&HF019OL8B));:B77LOLSL:&HF018,SL:10007EV:ANIMATE7QeHDP(3)7zf QZ3 1 1:DP(QZ)DP(QZ1): QZ7gDP(0)H7h QZ0 3: 11QZ,DP(QZ): QZ7jT1(((&HE93)))15: T:(&HF011)1900:770HS20,VS37B3,0:B1When all three files have been entered, press break to return to the main menu where you will see that 3 entries are now recorded as being on file. Press "R" and see that the original number has been reduced by three. Return to the menu. 12. Let's scan the files. Press "S" and select field 1. A list of the data in field 1 from all the files will appear. Obviously, when you have a large number of files, you will have to use the pause feature with the scan option so that the data will not scroll off the screen before you've had a chance to read it. Return to the menu. 13. Now let's look at the files in detail. Press "L" to look through all the fields in the files. Pressing the spacebar will advance through the fields. Stop when you get to the second field under Johnson, where it says, "Dr. Elizabeth". Press "A" for add. Add a space and the intial "S" followed by a period. Press enter. Use the spacebar to advance through all the files and return to the main menu. 14. Now let's organize the files. Press "O" and then "A" for alphabetize. Select field 1, "last name" and press enter. Watch as the 3 files are put into perfect alphabetical order. Press spacebar. Press "S" to scan again and select field 1. Verify that, indeed, the files are in alphabetical order. Return. 15. Do you want to see how much has been collected in dues? Press "T" and indicate field 8. Press "Y" in response to the "ADD NUMBERS?" prompt. Then indicate that you want a total of all the files. The database will quicky figure the total and display it for you. Return. 16. Is there anyone who is not paid up-to-date? Press "S" again and this time look at field 9, "dates paid". Yes, there is one member whose last payment was 01/01/88. Return to the menu and (F)ind the file with 01/01/88 in field 9. If you've done this correctly, the database will display the Smith file. 17. Let's suppose Smith has just paid his dues. Advance to "Amount paid to date" and press "E" to edit. Type 50.00 to replace the 25.00. Then Advance to the "dates paid" field, press "A", and add today's date to the data. When this updated data has been entered, press break to return to the menu. 18. We need a mailing/telephone list of our members, so press "P" to print. If you need to set the baud rate, do so now. Select #5 "Custom print" and indicate that you want to print 3 lines. Line 1 will have 3 fields, field 2 in position 1, field 1 in position 2, and field 7 in position 3. Line 2 will have one field, field 3. Line 3 will have 3 fields in the order: 4, 5, 6. Select all fields, ready your printer, and press the spacebar. When the list has been printed, return to the print menu by pressing any key. 19. Press "7" and return to the main menu. This time, let's say we want to delete a file. Press "L". When the first file appears, press "E" and then "enter" to delete the data from the first field. Delete the data from all nine fields. When the the second file appears, press break. You will return to the main menu and see that now there are only 2 entries on file. You can also scan to verify the files which are still there. Files can be deleted either through the "Look" or the "Find" option. 20. Try out some of the other features of the database. When you are ready to quit, press "Q". This sequence of instructions guides you through the basic operation of your database. As you become more familiar with its operation, you will want to study the instructions which precede the tutorial and describe the operation of all the features of "DATA FORM III". I hope that this program is very useful to you. If there are any ques- tions or problems, please do not hesitate to write me. I appreciate hearing from you. Jim Bennett 118 Corlies Avenue Poughkeepsie, NY 12601 please do not hesitate to write me. I appreciate hearing from you. Jim Bennett s once it has begun. To back-up, indicate whether you are using a single or double disk drive. Then simply follow the on-screen instructions for inserting which disk in which drive. The original disk is called the source disk and the back-up disk will be called the destination disk. (Q)uit: This makes it possible to end the program. When you are finished using the database, you should always exit the program by using this option. Never use the reset button or the power button to leave the program. This could result in a loss of valuable data! A DATA FORM III TUTORIAL This tutorial will show you step-by-step how to begin using "DATA FORM III". Go through the instructions listed below to see the basic operation of the database. 1. Let's set-up a typical database as an example. Have a blank, format- ted disk ready. Put your back-up copy of the program disk in drive 0 and RUN "DF3". Wait for the title to appear and scroll off the screen. At this point, if you are using a double drive, put the blank disk in the other drive. Otherwise, remove the program disk and replace it with the blank disk. Press 0, 1, 2, or 3 for the appropriate drive. Remember, a single drive is drive 0. If you should get an error message, check the disk and the drive. Correct whatever is wrong. Press the correct drive number. 2. Give the database the title,"Club Membership". 3. Indicate that you want 9 fields. 4. Name the fields as follows: field 1=last name, 2=title/first name/initial, 3=street address, 4=city, 5=state (abbrev.), 6=zip code, 7=tel. number, 8=Amount paid to date, 9=dates paid. 5. Enter the maximum lengths of the fields as follows: last name=20, title/first name/initial=40, street address=80, city=30, state=2, zip code=5, tel. number=45, amount paid to date=6, dates paid=80. 6. Now press enter to save the set-up. Name the database program "MEMBERS" and press enter again. When this has been saved, the message, "YOUR DATABASE IS COMPLETE", will appear on the screen. 7. At this point, you would normally make your back-up copy of the database disk. However, a back-up is not necessary for this tutorial. 8. Simply enter the command, RUN. When the prompt appears, press 0, 1, 2, or 3 to indicate in which drive the database disk is operating. In seconds, the main menu should appear. There will be 0 entries on file. 9. How many files will the disk hold? Press "R" to see. Press the spacebar to make another selection from the main menu. 10. Let's input 3 files as an illustration. Press "I" and type and enter the following data for each of the fields: FIELD NAME: DATA TO INPUT Last name: Smith Title/first name/initial: Mr. John C. street address: 123 Grand Avenue city: Winston-Salem state (abbrev.): NC zip code: 27102 tel. number: (704) 486-2218 amount paid to date: 25.00 dates paid: 01/01/88 Last name: Johnson Title/first name/initial: Dr.Elizabeth street address: 52 Beacon Street city: North Palm Beach state (abbrev.): FL zip code: 33408 tel. number: (302) 654-0018 amount paid to date: 25.00 dates paid: 03/15/89 Last name: Brown Title/first name/initial: Mr. Arnold V. street address: 76 Quaker Lane city: York state (abbrev.): PA zip code: 17402 tel. number: (204) 918-4121 amount paid to date: 50.00 dates paid: 04/01/88 03/28/89 11. lected from club members within a specific time period or a count of all club members who are up-to-date with their dues. (P)rint: When you select print, a new menu will appear which lists the 7 print options. These options are initiated by pressing the appropriate number key. (1) Print all files: This means exactly what it says. Select this option and you can produce a print-out of all the files. Make certain that your printer is ready and the paper is positioned correctly. The printing process may be paused by pressing "P" or ended by pressing the BREAK key. (2) Print select files: If you don't want to print all the files but only a few specific files, choose this option. After pressing "2", input the key data which will be in the files you want printed. Then indicate the field in which this key data is located. For example, if you want a print-out of all the new club member files, you would indicate that the key data is the year which is to be found in a "DATE JOINED" field. Again, make certain that your printer and paper are ready. The printing process may be paused by pressing "P" or ended by pressing the BREAK key. (3) Look & Print: This option will enable you to look through the files one by one and indicate which ones you want printed. Each complete file (all fields) will appear on screen. Then you may choose to (P)rint or go on to the next file. When you have printed all the files you want to print, press BREAK to end. (4) Print Labels: Select this option if you want to print standard 5 line labels. For each line you will be asked how many fields you want to print and which fields they are. For example, line 1 might have two fields: first name & last name. If you want nothing printed on a particular line, simply press ENTER in response to the prompts for that line. Also, be careful not to print more on the line than there is space on your label. You will then be asked if you want the labels printed from "(A)LL OR (S)ELECTED FILES?". This is asking if you want the labels printed for all the files on record or just a select few. If you press "S" for select, you will then have to input the key data that distinguishes the select files from other files and also input the specific field in which the key data is located. (5) Custom Print: This is one of the most powerful of the print options. With Custom Print you design exactly what you want printed. It works similar to printing labels; however, youare not restricted to just 5 lines. You can specify as many lines as you wish. For each line you will be asked how many fields you want to print and which fields they are. For example, line 1 might have two fields: first name & last name. You can indicate that you want a field printed more than once if you wish. Also, if you want nothing printed on a particular line, simply press ENTER in response to the prompts for that line. You will then be asked if you want to print from "(A)LL OR (S)ELECTED FILES?". This is asking if you want a print-out for all the files on record or just a select few. If you press "S" for select, you will then have to input the key data that distinguishes the select files from other files and also input the specific field in which the key data is located. As with the other print options, make certain that your printer and paper are ready. The printing process may be paused by pressing "P" or ended by pressing the BREAK key. (6) Baud Rate POKE: Select this option to ENTER the correct POKE for your printer if it operates at a baud rate other than 600. Baud rate refers to the speed at which information is transmitted by the computer and received by your printer. If it has not been necessary for you to indicate a baud rate change for any previous printing operation with your computer, you are probably operating at 600 baud. (7) Return to Main Menu: This does exactly what it says. Choosing option 7 will return you to the main menu of the database. (R)oom for Files: If you select this option from the main menu, the database will print on the screen how much room there is left on the disk for additional files. (B)ack-up: This makes it possible for you to make back-up copies of your files as insurance against losing your data. If you press "B", you will first be asked to verify that, indeed, you do want to make a back-up copy. Note that you should not try to abort the back-up procesn the disk for the original file. "DATA FORM 3" works with only one file at all times, thereby allowing you to utilize all the available space on the disk for storage of data. (F)ind - Update: This is one of the most useful and powerful options in the database. This option makes it possible for you to search through the files for anything you want to find. Press "F" to begin and then type and enter exactly what you want the computer to search for. Next, you can tell the computer to search all the fields or search only in one field. As soon as the computer locates a file which contains the item being searched for, it will display the file on the screen. The file will be displayed by fields. When a field is presented on the screen, there will be a prompt underneath instructing you to press the space bar to continue, press 'E' to Edit, or 'A' to Add more data. Press- ing the space bar will bring up the next field or, when all the fields have been shown, go to the next file. When you press "E" for edit, you can retype all the data or type nothing and simply press enter to delete all data from a field. If you press "E" and then press ENTER for all the fields, you will delete the entire file. This is the only method by which a file can be deleted. This procedure functions as a safeguard against your accidentally deleting an entire file. The "A"dd option will make it possible for you to add more data onto the data which is already there. After you have pressed "A", the data which is already on file will be printed with the cursor at the end. Then you can simply type the additional data. This allows you to add more data without changing what is already in the file. When you have gone through all the fields in a file, the computer will continue to search again for other files that have the item you want it to find. If another is found, it will be displayed in exactly th same manner as the previous file.It will do this until there are no more files, at which point you can return to the main menu by pressing any key. If the item that is being searched for does not occur in any file, the computer will still print "NO MORE FILES" which indicates that all the files have been searched. When you enter the item which you want the database to find, you must type it exactly the way it appears in the files, with the same capital letters, spacing, etc. If you are not exact, the computer will be unable to find what you want. Also, if you indicate that you want the database to find "Mac", it will not only find all instances where just "Mac" appears, but it will also find "MacDonald", etc. where "Mac" is a part of another word. (L)ook - Update: Press "L" and you can look through all the files. The files will be displayed in exactly the same manner as with the "Find - Update" option. Files will be displayed by fields. When a field is pre- sented on the screen, there will be a prompt underneath instructing you to press the space bar to continue, press 'E' to Edit, or 'A' to Add more data. Pressing the space bar will bring up the next field or, when all the fields have been shown, go to the next file. (S)can: This option will make it possible for you to view a list of a single field from all files. This is a simple and fast way to scan all the files. For example, you could scan "NAME" and be able to view a list of all the names in the database. Press "S" and indicate which field you want to see. As the list appears on the screen, you may press "P" to pause or BREAK to end the scanning process. (T)otal/Count: This option will enable you to add up the total of numeri- cal data and also to count the number of times specific non-numerical data occurs in the files. Press "T" and then select the field in which the data is to be totaled or counted. The next question asks, "ADD NUMBERS? (Y/N)". If you want to add numbers, press "Y"; if you want to count the number of times an item occurs, press "N". If you choose to count, you will then be prompted to input the item that you want to count. After you have indicated whether you want to total or count, the program will ask if you want "(A)LL OR (S)ELECTED FILES?". This is asking if you want to the Total/Count of all the files on record or just a select few. If you press "S" for select, you will then have to input the key data that distinguishes the select files from other files and also input the specif- ic field in which the key data is located. For example, this option will make it possible to do things with the files such as obtaining a total of all the dues colge to an 80 column display or back to a 40 column display. This enables you to use the display which you prefer. (I)nput data: Press "I" and the prompt, "ENTER DATA - PRESS BREAK TO END", will appear with the name of the first field underneath. Type and enter the data that goes in that field. Similarly, you will be prompted to enter the data for each of the other fields. It is perfectly okay to leave a fields blank if you want. When all the fields have been covered, the original "ENTER DATA" prompt will reappear with the first field listed underneath again. You may continue by inputting another file or stop by pressing the break key which will take you back to main menu. Note: If you want the data that you have entered to go into the file, you should press the break key only when the "ENTER DATA - PRESS BREAK TO END" prompt appears. Otherwise, if you press the break key in the middle of putting data into a file, that particular file will not be recorded. A file is recorded only when you have gone through all the fields (even if you have entered nothing in some of the fields). For example, if you have entered data in the first field but then press break when you're asked to enter data into the second field, the data which you entered for field 1 will not go into the file. Even if you only want to put data into the first field and you have no data currently to go into the other fields, you must still go through every one of the other fields by pressing enter for each field as it comes up on the screen. This is useful in the situation where you realize that the data that you are entering is not correct. Just press break before you have entered the last field and the whole file will be erased. Data put into previous files will not be lost, only the current file will be dropped. This means that when you have entered several files, pressing the break key in the middle of inputting the last file, will only erase the last file. All the previous entries will still be saved. As you are inputting data, there will be a notation with each field iden- tifying the field by name and also giving the maximum length. You will need to remain aware of the limits on the length of data that may be in- put. There will be no warning if you happen to type past the limit. The only thing that will happen is that the database will save only up to the maximum limit; everything else that runs over the limit will be cut off. The next time you call up this particular file, you will see that the "run over" data got chopped off! With careful planning in setting up the num- ber of fields and the length of the fields, together with care in entering the data, "data run over" should not be any real problem. In most cases it makes no difference in what form the data is input. You can use just about any form, including abbreviations, dashes, commas, periods, slashes, etc. that you feel is appropriate. There are two excep- tions, however. If a particular field is set-up for numerical data and you want the database to understand that it is numerical data (for total- ling and/or arranging numerically), this data must be input as numbers only. Decimal points and minus signs are accepted as parts of numbers but not dollar signs or percent signs. Nothing but numerical values may be used. If any characters, words, or symbols are used with the numbers (such as a dollar sign), the database will not understand that the data is numerical. The other exception has to do with capital and lower case letters. In alphabetizing, the database will put all the capital letters (A - Z) ahead of the lower case letters. Therefore, names, etc. should be entered ac- cordingly. (O)rganize: This option will enable you to organize your files either alphabetically or numerically. Press "O" and then either "A" for alpha- betical or "N" for numerical. Next, identify which field is to be the key in setting-up the organization. The database will then go to work sorting and organizing your files. The results of this work will be displayed on the screen item by item in the order you chose. When the organization is complete, you can press any key to return to the main menu. It should be mentioned that the simplest way to organize a file is for the program to set up a second file into which the newly organized data is put and then the old file is killed. "DATA FORM 3" does not set-up any second files, because a second file would require empty space on the disk equal at least to the first file. The second file method does not allow us to use all the space oto indicate the drive where the blank disk is located. If you are operating only a single drive 0, you must remove the program disk and replace it with the blank disk. If a blank disk is not in the drive that you have indicated, you will be told either that the disk is not blank or there is some other problem. If this happens, check the disk and then press the correct drive number. The next question will be, "What is the full title of this database?" The title you select should be no more than 38 letters in length. Type and ENTER an appropriate title for the database. Next, indicate how many fields you want (see above for explanation of fields). Then you will be asked to supply a suitable name for each of the fields. Naming the fields will help make your database user friendly. For example, it will be easier for you to know what is needed if your database asks you to input "NAME" than if it asks you simply to input "FIELD 1". The number of fields you decide to use and how long you choose to make the fields depend upon how you will want to use the database. You will need enough fields to do the job, but you don't want any unnecessary fields which will take up excess space. The rule is: too few fields restricts the use of the database; too many fields only take up excess space and will slow down the operation. For example, if you want to be able to alphabetize your files by last name and also print mailing labels, it would be advisable to have separate fields for first and last names. Otherwise, you may only need to use one field for the name and that would do the job perfectly well. Will one field work for address or will you need more than one field? This is the kind of question you will need to ask yourself as you plan your database. It is important to decide just exactly how many fields it will take to do the best job for you. Then make each field only as long as it needs to be. After the fields have been named, you will be asked to type and ENTER what you want to set as the maximum length for each field. How many spaces should be allocated per field? For example, 20 spaces would be more than adequate for a "LAST NAME" field. Remember, there is a maximum of 249 spaces for an individual field and a 1000 space maximum for the total of all the fields. By indicating the maximum length, you are telling the computer to set aside a specific amount of space for this field. You are saying that you will never need to put into this field any data which is longer than the maximum length you have indicated. Choose a number which will be large enough to accommodate the kind of data you want to enter. However, don't make the number so excessively large that a big amount of space is wasted. When all the questions about fields have been answered, the complete set-up will be displayed on the screen and you will have the option of saving this to disk or doing the set-up over again. If the set-up is correct, it will be saved as your database index. You will then be asked to give a title for the database program which has been custom-designed. This program title, like all program titles, should be no longer than 8 letters. It will also be saved automatically to the disk. When this is complete, your custom-designed database will be on disk and also in the computer. By simply typing RUN, your new database will start. To operate the database in the future, simply use the new file disk to LOAD and RUN the database program which you named. It is a good idea to have a back-up disk for your database. A back-up will be insurance against the possibility that you could lose your data if your database disk happens to crash. To make a back-up disk, simply use the "BACKUP" command to back-up your database disk. (See your disk opera- ting manual for instructions on using this command). OPERATION: USING YOUR CUSTOM-DESIGNED DATABASE The first thing your database will do is ask which drive you are using. When the file drive has been indicated, the program will quickly read the index and then open the data file. When this has been done, the main menu will appear on the screen. At the top of the menu is the full title of your database. Below the title is a line which tells how many entries (files) are already on file on the disk. This line will always display the current total of the files which are on record. The main menu offers you a choice of 11 options! The options are initiat- ed by simply pressing the first letter key of your choice. (D)isplay: Press the "D" key and you can chan DATA FORM III Instructions INTRODUCTION A database is a computer filing system. Using the computer to keep track of data is far superior to old-fashioned filing systems. The computer makes everything simpler, easier, and faster. Complex operations such as searching for specific items in the file, even when you can't remember their locations, can be done quickly and easily with the computer. A database will enable you to store, retrieve, and manipulate large quanti- ties of data in ways that were virtually impossible before the age of the computer. Generally, when people hear the word, database, they tend automatically to think of business applications. Indeed, the management of business accounts is perhaps where a database is used most frequently. A database will keep an up-to-date record of all accounts and inventory of the busi- ness. However, a database can be used for many other purposes. It can be used for keeping track of household finances, keeping an up-to-date mail- ing and/or telephone list (for Christmas cards, etc.), managing an organi- zation's membership roster, cataloging virtually any kind of item (books, magazines, records, tapes, disks, equipment, etc.), keeping a file of recipes, and innumerable other uses. A database will enable you to input new data, as well as update and delete old data. Data can be retrieved, reorganized, and printed out in various forms. For example, you could have the database print a list of all the names of club members who are behind in the payment of dues; or, if you have a recipe database, you could have the database locate and display on the screen and/or give you a quick print out of all the recipes which use a particular ingredient or take a certain amount of time to prepare. "DATA FORM III" meets the requirements of the average person who needs a small, inexpensive, multi-purpose, and easy-to-use database. "DATA FORM III" can handle the job because it is not just a database but a powerful utility which will actually create databases which meet your specifica- tions! This makes it possible for you to custom-design different data- bases for different purposes. Each database that you create using this software will utilize the full capacity of the disk in the most efficient way possible. FILES & FIELDS A field is the name for an individual item in a file. If, for example, you want to set-up a file which allows you to input the last name, first name, street, city, state, and zip code, that would be six categories or six fields. In designing a database, you specify how many fields you want to use per file and how much space you want to allocate per field. "DATA FORM III" will enable you to choose as many as 17 fields per file! An individual field can be as big as 249 spaces and the total of all the fields can be as much as 1000 spaces! If this happens to be your first attempt at using a database, "DATA FORM III" will make the learning process quick and easy for you. "DATA FORM III" will enable you to gain valuable experience in the design and use of databases. The more experience you have, the more tasks you will be able to get the database to do for you. Eventually, you might even get to the point where you wonder how you were able at one time to get along without a database! SYSTEM REQUIREMENTS "DATA FORM III" requires a 128 k CoCo 3, and disk drive. The program can be used with either a single or double disk drive. To utilize the print- ing options, a printer is also required. Virtually all printers will work, even those which operate at non-standard baud rates. The program disk is not copy protected. This is so you can make a back-up copy for your use. Keep the original disk in a safe place and use for back-up only. "DATA FORM III" also requires that you have a separate blank, formatted disk on which to set-up your database and file. This disk should be of the highest quality, certified error-free. Although, "DATA FORM III" will enable you to make additional back-up copies of your files as insurance against losing your data, it is also prudent to use extra high quality disks for your database files. OPERATION: THE DATABASE SET-UP LOAD and RUN "DF3". After the title has scrolled off screen, the first prompt will ask in which drive you have placed a blank, formatted disk. Press 0 - 3 &$:#==========================#&G:# THE SUBSCRIPTION CONTEST #&j:# BROUGHT TO YOU BY RICK & #&:# THE ANONYMOUS FRIENDS! #&:#==========================#& 0,0:2:I015: I,0:I:2,8:3,11:4,29:5,31:6,59:7,63:65497,0'mA$"CoCo Friends Disk Magazine":L24:40:A$"presents":L27:40:A$"The SUBSCRIPTION Contest":L212:40:50'A$"presents":L27:40'(L(A$):L120(L2):I1 L:K07: K,0:(L1,L2),(A$,I,1):J145:J,K:L1L11:I:(2I131:"V=I;O3T12L12BA":I(=<40:2500:S43: D$(S),P(S)::0,0:8,27:0,0:1(JF 210(aPI1 S: D$(I):I(Z3,0:"PASSWORD:";::0,0: A$(dJ(A$)1 2 1:F0:I1 J:LI1(n(A$,I,1)(A$,L,1) 130)(xT$(A$,I,1):(A$,I,1)(A$,L,1):(A$,L,1)T$:T$D$(I):D$(I)D$(L):D$(L)T$:F1)9I:F0 150)@J)q5,0:"ENCODED TEXT";::3,0: T$:0,0:F1)NK65:L(T$):I1L:P(I)(D$(I),(T$,I,1)):I:NN1:RNS(NS))R0 R1*RSR:I1L:P(I)P(I)R:P(I)S P(I)P(I)S:I :I*15,0:I1L: (D$(I),P(I),1);:I:0,0*?ȇ::150*`Ғ65496,0:32:@237,"OH NO!";*ܠ (200),1:13,(63):220*"G:.F WM35HPOTU-NC2,XS;0DBQJ6IY/KE9LVA817RZ4"*"OBLQNJY73/C, A8G0P-.RFXD5;1E2IWUTZ:K9VS4M6H"+";34RPVG9:1M ,JOTSZU6DABNEX2K/-C508IWYFL7.HQ"+M"3.KNW7;UM/L Q290F4GACZSEJV81:6HBR,I5XP-TOYD"+"OSJ:THY-B0/6NA4IGM1 DFWC9EPVX72;RL3,K58UQZ."+"XGKIOBDQT-LH6V.C/J7,A1 3RS29EWZNF8UY:P;4M05"+"",T6Y2NJ4XUA.WDQ;MHF:CS9L/38EIPZ1 O7-G5KRBV0",,"0YPM4F.G/1ITWHJRNK7C-:,LOAZBEVQ8;S6 2359XDU",L6"8DQ/4 .KH591BEILW0F,GYAUX7T6JP-RV:SOMNZ;2C3",@"TO VQP54-8,GFYAXHM0ZCBRJIE;3176N.:SDK/W29UL",J"UXA0R93.-SQFZ:GD2ONHYKW147TJL8PVIC,6B 5/;EM",T"VLG9ERF:N /HC,8J7265WB4ZAST.;X10PM3IYOUDKQ-"-^"9EJBN4-Z8/3QKW6TVDCL;5PMUHYAR:X7O 02.,ISGF1"-Kh"74;AKYGF:. MRSTDW,UB/V-J02ONX653PL8QHZCEI19"-~r"YX ./4L02SK;NG51O3,Z9RPEW:JICFH8DUMATVB-Q67"-|"OTL6PZCWN1XE5J-,S:U; KMY8H7420G9A.DRVI3Q/BF"-",RQY8NO7T;9I05L1W24BVG. :CX3-/SHJ6EAUZDMPFK"."ENK5MI82YX1-URPC/:SWJV Z.0L7;HDAO,G3TF964QB".J"L,VHEF;Q35BJ:M6XAKGW1ZI9C-0US2YD.N4OT/P87R ".}"RIC,1BX2F 8UHEMD.95SY4;TKWQL6-N/3P7V0AZJGO:".".L3RTSV IGYK-ZDAB427XCW1U/J,OFMP:;HN905E86Q"."GLZV.R,XD5016-N2FWMY:T8CO9KPE;4Q7/ J3SBUIAH"/†"TZRVF:A40O36IM597JY W1NXG.EBKC2,;HD/Q-UPS8L"/Ĭ"/I0Y9:3EM JTS4XH1,K6N;BV.ZGO-FAPQL75C2RWDU8"/|ֆ"N;PJ85V1/O6TXRE.W2AKIBHY4CSF:,G7UZ D3Q-ML09"/".YJ6LNBGETAMS5WU,DP2O83-VR;ZK/07X1:CI49 FQH"/"CTB7ZW5S/HLEXKDP6F,UAG-23: VN0QJR;98.IOYM41"0"S6GIABNZ0Y1 M:54TJP;CRDHLQ-2/8XF7OEW,3VUK.9"0H"M/VWN-73SI26.LUKPFDRG, 1CYZAXHEJB5980:4;QTO"0{"ST39.D5/VKZ8BHUNJW2714EM:GI60,QL;A F-RCXPYO"0"6UTQ8Z,MX1S5GB/AEFV2NY;W :CR30LD-4IHPKO79J."0"5XPS 4T,NCMRULADJWI83:Z7-9B2FQ1E/HO6YG.K0;V"1&"5-0;4QIPJG B21RO8EH:YLV6KZ9F7AXS,DUTM3N.WC/"1G0"HI.54382EB7UFWZX0Q1PGV,CJ NDTY:OAS96LM;/-KR"1z:"DVY1XPOW3UC97NL/ 6ISE0BFMZ,2A:5TGQ.;HK-R8J4"1D"JYE7CIKW60FXO/ B9RSN8G,1:DZ2TH3;-5M4PULQVA."1N"DZVY,G5O3JTEX2HF .U:K8-4R/S;BN0WLP7A6CM9I1Q"2X"7LC/O1BY;:Q8MEVNDAT.WS3JG645FXI,20 KURP-ZH9"2Fb"SZHBAY 6NV;WIO3-4DC9UJM5,P2KE1:TL8G0.7Q/XFR"2yl"CFD0AT;QS2BVW-N417JKY9L8O3I.HR5MZ,U:/XE G6P"2v"C4,ZU S/LGKV;RQ6FXW02-A:NEH7M351DIP.Y98TOJB"2"OBVNTR-WUXYLFIP9.6E,SCA7DQ8GZ41KJM2/0:H;35 "3"HFYQ1R5B68DSM/KIEXV,27T0 U;O3:Z.94J-GPACLNW"Fb"SZHBAY 6NV;WIO3-4DC9UJM5,P2KE1:TL8G0.7Q/XFR"2yl"CFD0AT;QS2BVW-N417JKY9L8O3I.HR5MZ,U:/XE G6P"2v"C4,ZU S/LGKV;RQ6FXW02-A:NEH7M351DIP.Y98TOJB"2"OBVNTR-WUXYLFIP9.6E,SCA7DQ8GZ41KJM2/0:H;35 "3"HFYQ1R5B68DSM/KIEXV,27T0 0G'0(3,16),"ENTER text under X-axis."G6:P1$"":H1GaDVP22:X1CV:130:DNDN1:NM$(DN)V$GnNHHDV8GtXGbUP16:LO128:LL24:RR311:280GlA2990:X15:Y174:K$GvCL0:Z1 NVCVHH10:VP0:P1$"ENTER Value No."(Z)":":(H,VP),P1$H 130H@V0VMX (PB88,VP8)(P8,VP87),1:640HRZ1Y174BVHDNDN1:NM$(DN)V$:OV:NNNNO:O1720:OO(10YS)H11:(X,174)(XIV,1740),,BH720HY175OHXXIVH(200,0)(P8,VP87),1:ZI:(80,0)(263,7),1:15:(0,0),"Title here. Press any key to clear space."I44539:K$:(0,0)(319,7),1:P1$"":H0:VP0:130:DNDN1:NM$(DN)V$:(0,0)(319,7),1:(20(V$)2,0),V$IT$"Total="IA$"Average="JH NN$((NN),(((NN)))3):NN$(NN$,(NN$)1):AV$((NNNVCV),(((NNNVCV)))3):AV$(AV$,(AV$)1)JR$T$NN$":"A$AV$:(20(R$)2,1),R$:XA$((XA),((XA))1)J F39:G3:PR$"PRESS ANY KEY":D1(PR$):PA$(PR$,D,1):(F,G),PA$:GG1:J*44539:K$K4(0,88)(312,111),2:(0,88)(312,111),1K>(0,12),"Save your values and texts as a file.":H0:VP13:P1$"ENTER filename:":(H,VP),P1$:130:F$V$KH65496,0:"O",#1,F$KR#1,"2000 DN="((DN),((DN))1)":DV="((DV),((DV))1)LV\#1,"2010 CV="((CV),((CV))1)":NV="((NV),((NV))1)":BV="((BV),((BV))1)Lf#1,"2020 YS="((YS),((YS))1)":XA="XA$LpX1DNLzNM$(X)(34)NM$(X)(34)","LI1(NM$(X)):C((NM$(X),I,1)):P$P$(C):MX10(X10)XDN 920:940M9AA10:W$((A),((A))1)MiP$W$" DATA "P$:#1,(P$,(P$)1):P$""MoM~#1:128,5MF$"/DAT",RMDN17:DV72MCV4:NV3:BV0MYS3:XA303M380MYS 310,330,350MH2M T1CV:NM$(T)N5(H,22),NM$(T):NM$(T)""(H8,176)(H87,183),1NB HHDV8NH*N\4IVDVNV::CL=0N>X15:Y174:T1 NVCV:NM$(T):BV T1Y174BVNH(NM$(T))12140:NNNN(NM$(T)):O(NM$(T))(YS10)NR11:(X,174)(XIV,174O),,BN\XXIVOfO1pNM$(DN):15:(20(NM$(DN))2,0),NM$(DN)OzAVNNNVCV:TL$(NN):AV$((AV),(((AV)))3):R$"Total"TL$" : Average"AV$:(20(R$)2,1),R$P2(0,88)(312,111),2:DL11000::(0,88)(312,111),1:(0,12),"PRESS ANY KEY TO SAVE GRAPH AS CM3 FILE":44539:(0,88)(312,111),2:"CM3SAVER"Pd65496,0::32:@128,"ERROR #""IN LINE":P65496,0::32:: :next line 3000P "1st Qtr","2nd Qtr","3rd Qtr","4th Qtr","3386","4187","3975","2987","2768","2416"Q6 † "2205","2167","2997","2999","3876","4128","Gas Use (,000 cub. meters) 1992"Q| ̆ "2220","3060","1195","4111","Monthly Gas Use (100 cub. meters)"Q ֆ "JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT"R "NOV","DEC","2786","3217","4265","3921","2978","2012","2345","1904"RT "1827","1602","1721","1984","2122","2467","3211","3678","3798","1421"R "2145","2208","3478","4321","4456","3214","Half-Monthly Sales (,00s) - 1992"L","AUG","SEP","OCT"R "NOV","DEC","2786","3217","4265","3921","2978","2012","234 0nfffffffe?3o𻰰  03lUUUU 33333333333p?3n着 0ow  UffffffffffffsW   fffffffffffp3  ٙj0|fffffffffffff| ; ̀,UUUUUUU  3333333333333>着 wwh Uffffffffffffff{m  fffffffffffffowww3  ٙj ffffffffffffffeU_ fg_ffffffffffffffeU_>7:BLKWTGRF: GENERATE A BLACK AND WHITE GRAPH>p:KEIRAN KENNY FOR COCO FRIENDS DISK MAGAZINE 1993>v >65497,0>1500:L$(57),NM$(333)>(0,63:11,7:15,0?`2L$(48)"BRHU4ER2FBGNG2BED4GNL2BR":L$(49)"R4L2U6NG2BR2BD6":L$(50)"BU5ER2FDGL2GD2R4":L$(51)"BU5ER2FDGNL2FDGL2NHBR3":L$(52)"BR3U6G3R4BD3":L$(53)"BRNHR2EU2HL3U2R4BD6"?  {3,   wx   UV    Vx( .Ͷۀ  $  Ͷ@  www0e𻰰< ?8ff#໿ y໰  ~m 3338 ffgjx 36m ffff|m fffg 0Tٙj fffffco` j UU]m 3333`ffg mh fffffom@  ffffx U@ٙ j fffffwvm  j xUUV 3333>333`  `9 fffffc ffffgx;  ٙ=j8  `=ffffffx 333`;p? 03`=UUUp 33333?3`  0`wt uffffff_  fffffpl| ٙjU< 0`ffffffv?x  ?3`?* 03aUUULX  33333<?3aU@ 0a͠ fffffff  fffffg  ٙjU@ 0cffffffg ?3g3 03cUUU] 333333`?3g着P 0gw  Ufffffffv?Uǀ   ffffff|3?  ٙj ?6 $-&5 7,"?~3^$UUUUUUUUUUUUݻwݻwDDDDDDDD""""3333Dݎݸp?9w?3_߿8}Ur'R T0EuDpc033 86*:  ~h߮[[ ~]ܫ ~ʀ(1f D D <j p G@@ x=8n={m`8+`> =v-Z ~~>w]|  (ճ 8dz= f (" P s6wv@  6@p:0 >B nۀ=f }ww';7?x+3Bx {`xPf  D@X]B7n  2  >`b? 𻰰 @ / m]j o{ do38  `mqH  llw  p ?; ?  ̀ {?7 :`?W >? 33`?뀰s3`p j0* {0 l08𻰰 `0 ꪰ0? 0 300p  380:\ ꪸ0*0? p `ꪸ5Q  `838{5j  >:Lm޶2C`f0 _>ݿ}023>0 *  0*~[ø~ M !"#%&'()*+,-./012334566788999:::;;;;;;;;;;;;:::99887766544322100/.-,,+*)(('&%%$##"!!  !!"""###$$$$%%%%%%&&&&&&&%%%%%%$$$##""!!   7J^r +Lo?qV(v!J/ 0 P C s_X`w&+ "$&)@+.M1L?#P0jßƟɟ0991PϦѦӦ՟9ΦLëLƩLɩL̷ 1& ' Ǧ 9u&O9 <,$<.(<0*<2,<2,D$TNDTNDTN@TN@.TN@2F@6F@6F6TN@TN@TN@(TN@,RJ@.RJ@.P.RF@RD< RD<*RD<,D<2D<2:.<,$<.(<0*<2,<2,D2,JD$ND$R"RJ:"RH6"RD2"RD2"P,RJD"RJDR: RH6 RD2 RB0 RB0 PB0 RB0" RD:2 :.<,$<.(<0*<2,<2,D$TNDTNDTN@TN@.TN@2F@6F@6F6TN@TN@TN@(TN@,RJ@.RJ@.P.RF@RD< RD<*RD<,D<2D<2D<F<F<$F<.F6F6J6F<4D<2D2B<0B<0NB<0ND<2J2F:6F:6D:2 <,$ NT^T(^R(^P(^R(^R:2^P:2^P:2^R^T(^R(^P(^R(^R:2^P:2^R:2\R$ \N$ \L$ \N,\N<2\N2\N \N*\N,\N6\N6ND6ND&JD&JDF@D>F@(F@:.D<:.D<2"F@2"JD" F@" D>" F@(F:.D:.D:FF@$ D<$ F@$ JD,JD<2JD<"JD JD*JD,JD2JD2NT^T(^R(^P(^R(^R:2^P:2^P:2^R^T(^R(^P(^R(^R:2^P:2^R:2\R$ \N$ \L$ \N,\N<2\N2\N \N*\N,\N6\N6\J6TJ<,PJ<,NF<.TF<.NF<.TB<0TB<0TB<0TB<0NB<0ND<2TD<2ND<2JD<8JD<8TF<6TF<6VF4\J<2ZH<2\J<2JD<2JD<2D:2D:2@. <,$<,$<.(<0*<2,<2,D$TNDTNDTN@TN@.TN@2F@6F@6F6TN@TN@TN@(TN@,RJ@.RJ@.P.RF@RD< RD<*RD<,D<2D<2:.<,$<.(<0*<2,<2,D2,JD$ND$R"RJ:"RH6"RD2"RD2"P,RJD"RJDR: RH6 RD2 RB0 RB0 PB0 RB0" RD:2 :.<,$<.(<0*<2,<2,D$TNDTNDTN@TN@.TN@2F@6F@6F6TN@TN@TN@(TN@,RJ@.RJ@.P.RF@RD< RD<*RD<,D<2D<2D<F<F<$F<.F6F6J6F<4D<2D2B<0B<0NB<0ND<2J2F:6F:6D:2 <,$ NT^T(^R(^P(^R(^R:2^P:2^P:2^R^T(^R(^P(^R(^R:2^P:2^R:2\R$ \N$ \L$ \N,\N<2\N2\N \N*\N,\N6\N6ND6ND&JD&JDF@D>F@(F@:.D<:.D<2"F@2"JD" F@" D>" F@(F:.D:.D:FF@$ D<$ F@$ JD,JD<2JD<"JD JD*JD,JD2JD2NT^T(^R(^P(^R(^R:2^P:2^P:2^R^T(^R(^P(^R(^R:2^P:2^R:2\R$ \N$ \L$ \N,\N<2\N2\N \N*\N,\N6\N6\J6TJ<,PJ<,NF<.TF<.NF<.TB<0TB<0TB<0TB<0NB<0ND<2TD<2ND<2JD<8JD<8TF<6TF<6VF4\J<2ZH<2\J<2JD<2JD<2D:2D:2@. <,$TJD<N^P:2^R^T(^R(^P(^R(^R:2^P:2^R:2\R$ \N$ \L$ \N,\N<2\N2\N \N*\N,\N6\N6\J6TJ<,PJ<N&4M"ERRS":&HFFA2,&H37:M"ERRORMS":&HFFA2,&H3A&&HAC46,&H57:&HAC47,&H7E:&HAC48,&HDF:&HAC49,&H5C:&HAC4A,&H12:&HAC4A,&H12&:RESET PATCH'&H148,&HB7:&H149,&HFF:&H14A,&HDF:&H14B,&H7E:&H14C,(&H72):&H14D,(&H73):&H72,&H01:&H73,&H47:&H147,&H12'):MAKE 'IN' LOWER CASE'G$&HABE9,&H69:&HABEA,&H6E'M.7E:&HAC48,&HDF:&HAC49,&H5C:&HAC4A,&H12:&HAC4A,&H12&:RESET PATCH'&H148,&HB7:&H149,&HFF:&H14A,&HDF:&H14B,&H7E:&H14C,(&H72):&H14D,(&H73):&H72,&H01:&H73,&& X&HDF5C &HDFBE&.A$:X,("&H"A$)&F:X&HDFBF &HDFFF&Q(X,0:&n2M"ERRS",&HDF5C,&HDFFF,0&creen or

rinter?":44539:(135)80 (135)112 DV0:DV2&DV0TM0:BM0:PL20:DV2TM6:BM6:PL54&150,18:2400 BAUD&:POKE150,88'600 BAUD&(:POKE150,41'1200 BAUD&2"I",#1,"ASSEM7.TXT"&AD33 DF5F B6 C004 00030 LDA >C004 DF62 34 04 00040 PSHS B DF64 81 D7 00050 CMPA #D7 DF66 27 08 00060 BEQ ERRS01 DF68 BD D1E5 00070 JSR >D1E5 DF6B BD CA3B 00080 JSR >CA3B DF6E 20 06 00090 BRA ERRS02 DF70 BD D2D2 00100 ERRS01 JSR >D2D2 DF73 BD CAE9 00110 JSR >CAE9 DF76 35 04 00120 ERRS02 PULS B DF78 BD A7E9 00130 JSR >A7E9 DF7B BD A974 00140 JSR >A974 DF7E 0F 6F 00150 CLR <6F DF80 BD B95C 00160 JSR >B95C DF83 5C 00170 INCB DF84 B6 FFA2 00180 LDA >FFA2 DF87 34 02 00190 PSHS A DF89 86 37 00200 LDA #37 DF8B B7 FFA2 00210 STA >FFA2 DF8E 8E 4000 00220 LDX #4000 DF91 5A 00230 ERRS03 DECB DF92 27 06 00240 BEQ ERRS05 DF94 A6 80 00250 ERRS04 LDA ,X+ DF96/cy FC 00260 BPL ERRS04 DF98 20 F7 00270 BRA ERRS03 DF9A FF DFBF 00280 ERRS05 LDU #ERRBUF DF9D A6 84     "#$()+-./023458:<=BASSEM7 BAS ASSEM7 TXT!BFR BIN9 BLKWTGRFBASBRDRCLRSBAS&uCM3SAVERBAS;hDF3 BAS1DF3*DOCSBAS6DF3*DOCSTXToERRORS BASERRSINSTBASQEZACES BAS7aGASGRAPHCM3,MINILOD+BAS*PRNTSHELCM3SNOOPREDBAS>SOLACE BAS%SOLACE BINSTRING8 BAS'_SUBSCRIPBAS 00290 ERRS06 LDA ,X DF9F 84 7F 00300 ANDA #7F DFA1 A7 C0 00310 STA ,U+ DFA3 6D 80 00320 TST ,X+ DFA5 2A F6 00330 BPL ERRS06 DFA7 6F C4 00340 CLR ,U DFA9 35 02 00350 PULS A DFAB B7 FFA2 00360 STA >FFA2 DFAE 8E DFBE 00370 LDX #ERRBUF-1 DFB1 BD B99C 00380 JSR >B99C DFB4 96 68 00390 LDA <68 DFB6 4C 00400 INCA DFB7 27 03 00410 BEQ ERRS07 DFB9 BD BDC5 00420 JSR >BDC5 DFBC 7E AC73 00430 ERRS07 JMP >AC73 DFBF 00440 ERRBUF RMB 65 0000 00450 END Do not be alarmed by the length. This code actually works; I have tested it. Lines 20-160 do the preliminaries which BASIC does in various ROMs. These can be uncovered by tracing the error processor from $AC46. Since there is a discrepancy between disk 2.0 and 2.1, I have used a check to discover which routines to call; I have Disk 2.1 but my DECB Unravelled provided the proper numbers for 2.0. The next chunk of code (170-220) set up for the search through the table of error messages. MMU block $37 is moved to loaction $4000 in logical address space and X is loaded with this location. Accumulator B is incremented by one to compensate for the search routine (the first error # in BASIC is 0 but this routine requires 1--the error number must also be divided by two before entering the routine if it is coming from BASIC.) The next chunk of code (230-270) points X to the proper text entry (the end of a text entry is signalled by bit 7 being set.) Lines 280-340 move the message from the text table to a temporary buffer. This is to prevent conflicts with the memory. Each byte has bit 7 masked off, is stored, then the original is tested. If it was set, a zero is written at the end of the buffer to signify the end of the text. Lines 350 & 360 get the origingal value from the MMU register and put it back. Lines 370-380 set the X register to one before the buffer and then print it on the screen. The remaining lines display the IN XXXX message if necessary and go to BASIC's direct mode. Now we must find a way to interface this routine with BASIC. First, we must load our machine code into memory. We also have to load in the Error Message table. The program ERRORS.BAS included will create the M/L in a file called ERRS.BIN and the error messages in ERRORMS.BIN. You may not understand how the latter part works, but I assure you that it does. You must run this program first. To change what an error message displays, locate the appropriate message in the DATA statements and change the entry (entries can be a MAXIMUM of 64 characters long). What's this UNTIL without REPEAT you ask? This program is compatable with BASIC+ by GEOFF FRIESEN. We must get ERRORMS into MMU block $37 and our ERRS program into memory. We could use a line as follows: 1010 LOADM"ERRS":POKE&HFFA2,&H37:LOADM"ERRORMS":POKE&HFFA2, &H3A Now we must divide the error number by two since on entry to the error routine, BASIC's number is multiplied by two. We'll use an ASRB or $57. We then must JMP to our new error processor--JMP $DF5C. We may also NOP out the extra bytes of the original instruction: 1020 POKE&HAC46,&H57:POKE&HAC47,&H7E:POKE&HAC48,&HDF:POKE&H AC49,&H5C:POKE&HAC4A,&H12:POKE&HAC4A,&H12 We also do not wish to lose our modification on pressing RESET. To prevent this, a common patch is as follows: ORG $148 RESET NOP STA $FFDF JMP XXXX where XXXX is the system reset address. The following basic code will install a reset patch: 1030 'RESET PATCH 1040 IFPEEK(&H72)=1ANDPEEK(&H73)=&H48THEN1060 DO NOT INSTAL L IF ALREADY THERE. 1050 POKE&H148,&H12:POKE&H149,&HB7:POKE&H14A,&HFF:POKE&H14B &HDF:POKE&H14C,&H7E:POKE&H14D,PEEK(&H72):POKR&H14E,PEEK(&H7 3):POKE&H72,&H01:POKE&H73,&H48 1060 rest of program We also do not want IN in upper case if our messages are in lower case. We change this by pokeing $69 and $6E into $ABE9 and $ABEA respectively. We can make our installation program erase itself after it is installed as well by adding a NEW statement at the end of the program. The program we built here is included as ERRSINST.BAS (actually, it is a similar program--the one above will not allow a reinstallination; the one on the disk will. See if you can spot the difference.) This wraps up my series on assembly language programming. If you have any questions, please write to me. Please enclose a money order for $1.00 CDN if you wish a reply directly otherwise, I will try to respond in CFDM. (There is no guarantee I will be able to answer your question, but I will give it a try. My address in included in the Magazine/Side of this issue.) I hope you enjoy this modification to BASIC. I may write a few other patches if time permits. tches if time permits. %Ľ;&5ަ4@59O' t" 5g4; zdP=+ |un{tmga[VQLGC?;741.+(&#!4ŸսVT ~5'' '𽛘;'''N& B& X'&9:BASIC DRIVER FOR MUSIC3+ BY GEORGE QUELLHORST&B 32&U12,63:13,0:&g@108,"SOLACE&v@174,"BY"&@233,"SCOTT JOPLIN"&#@323,"TRANSCRIBED BY: ROY ATKINS"&(@422,"PRESS ANY KEY TO PLAY":44539&-M"SOLACE/BIN":&HFF40,0'265497,0::65496,0R MUSIC3+ BY GEORGE QUELLHORST&B 32&U12,63:13,0:&g@108,"SOLACE&v@174,"BY"&@233,"SCOTT JOPLIN"&#@323,"TRANSCRIBED BY: ROY ATKINS"&(@422,"PRESS ANY KEY TO PLAY":44539&-M"SOLACE/BIN":&HFF40,0'r&:BORDER PALETTES&9:WRITTEN BY KEIRAN KENNY FOR&Z:COCO FRIENDS DISK MAGAZINE&{ :0,63:4,18:15,0:5100&2&0:1,256:(0,0)(31,7),1:2,256&((160,96),60,1&2:CHOOSE A BLUE PALETTE FOR SLOT 8 AND PAINT THE CIRCLE'<8,9:(160,96),8,1'DF1:(16,11),"PALETTE 9":(16,13),"IN SLOT 8"'_P(60,10)(260,181),,B'Z:CHOOSE A BLUE PALETTE NO FOR SLOT 9. PAINT THE RECTANGLE.'d9,15:(160,180),9,1'n(10,2),"PALETTE 15 IN SLOT 9"(x:CHOOSE ANOTHER BLUE FOR SLOT 10. FILL THE SCREEN.(410,25:(160,191),10,1(Y(10,23),"PALETTE 25 IN SLOT 10"(~&HFF9A,32 :FOR A RED BORDER(K$:K$(94)K$(10)5000(15((341)247BRBR1((342)247BRBR1(BR63BR0)BR0BR63)Ē&HFF9A,BR)C(0,0)(31,7),2:(0,0)(31,7),1:(0,0),(BR))U(0,0),(BR))`⁥5020)q32::4999 BORDER(K$:K$(94)K$(10)5000(15((341)247BRBR1((342)247BRBR1(BR63BR0)BR0BR\& :***** STRING8 *****&4:BY NORMAN BARSON&H:7 RIDGE COURT&g(:EAST BRUNSWICK, NJ 08816&o232&}< 690&F :2&P1,55:2,32:3,24:4,1:5,42:6,63:7,44:7,0:10,17&Z:TITLEPAGE&d1:2,1'n(10,185)(40,5),:(10,155),:(70,5),:(10,125),'Mx(100,5),:(10,95),:(130,5),:(10,65),'(160,5),:(10,35),:(190,5),:(10,5),:(10,185),'3,1'(310,5)(285,185),:(310,35),:(250,185),:(310,65),((220,185),:(310,95),:(190,185),:(310,125),(Z(160,185),:(310,155),:(130,185),:(310,185),:(310,5),(|7,1:(13,9),"STRINGART VIII(2,1:(19,12),"by(5,1:(14,14),"Norman Barson(Ҁ T1 1500:(:SET DOTS FOR NAILS OF CENTER(2:6,2)(114,35):(116,38):(118,42):(121,45):(123,48):(125,51):(128,54):(130,58):(132,61):(135,64):(137,67):(139,71):(142,74):(144,77):(146,80):(149,84):(151,87):(153,90)*i(155,94):(158,97):(160,100):(163,103):(165,107):(167,110):(170,113):(172,116):(174,119):(177,123):(179,126):(181,129):(184,132):(186,135):(188,139):(191,142):(193,145)*(196,148):(198,152):(200,155):(202,158):(204,161):(206,164)+g(206,35):(204,38):(202,42):(200,45):(198,48):(196,51):(193,54):(191,58):(188,61):(186,64):(184,67):(181,71):(179,74):(177,77):(174,80):(172,84):(170,87):(167,90),$(165,94):(163,97):(160,100):(158,103):(155,107):(153,110):(151,113):(149,116):(146,119):(144,123):(142,126):(139,129):(137,132):(135,135):(132,139):(130,142):(128,145),j"(125,148):(123,152):(121,155):(118,158):(116,161):(114,164)-!,(66,60):(66,64):(66,68):(66,72):(66,76):(66,80):(66,84):(66,88):(66,88):(66,92):(66,96):(66,100):(66,104):(66,108):(66,112):(66,116):(66,120):(66,124):(66,128)-6(66,132):(66,136):(66,140):(254,60):(254,64):(254,68):(254,72):(254,76):(254,80):(254,84):(254,88):(254,92):(254,96):(254,100):(254,104):(254,108):(254,112):(254,116).$@(254,120):(254,124):(254,128):(254,132):(254,136):(254,140).4J T1500:.HT:STRING CENTER.Q^7,2.h(114,35)(163,97),:(116,38),:(165,94),:(118,42),:(167,90),:(121,45),:(170,87),:(123,48),:(172,84),:(125,51),:(174,80),:(128,54),/r(177,77),:(130,58),:(179,74),:(132,61),:(181,71),:(135,64),:(184,67),:(137,67),:(186,64),:(139,71),:(188,61),:(142,74),09|(191,58),:(144,77),:(193,54),:(146,80),:(196,51),:(149,84),:(198,48),:(151,87),:(200,45),:(153,90),:(202,42),:(155,94),0(204,38),:(158,97),:(206,35),:(160,100),:(114,35),0 T1500:16(114,164)(163,103),:(116,161),:(165,107),:(118,158),:(167,110),:(121,155),:(170,113),:(123,153),:(172,116),:(125,148),:(174,119),1(128,145),:(177,123),:(130,142),:(179,126),:(132,139),:(181,129),:(135,135),:(184,132),:(137,132),:(186,135),:(139,129),2r(188,139),:(142,126),:(191,142),:(144,123),:(193,145),:(146,119),:(196,148),:(149,116),:(198,152),:(151,113),:(200,155),2(153,110),:(202,158),:(155,107),:(204,161),:(158,103),:(206,164),:(160,100),:(114,164),2€ T1500:3 :STRING LEFT SIDE3(66,140)(114,35),:(66,136),:(116,38),:(66,132),:(118,42),:(66,128),:(121,45),:(66,124),:(123,45),:(66,120),:(125,51),:(66,116),4S(128,54),:(66,112),:(130,58),:(66,108),:(132,61),:(66,104),:(135,64),:(66,100),:(137,67),:(66,96),:(139,71),:(66,92),4(142,74),:(66,88),:(144,77),:(66,84),:(146,80),:(66,80),:(149,84),:(66,76),:(151,87),:(66,72),:(153,90),:(66,68),51(155,94),:(66,64),:(158,97),:(66,60),:(160,100),5A T1500:5(66,60)(114,164),:(66,64),:(116,161),:(66,68),:(118,158),:(66,72),:(121,155),:(66,76),:(123,152),:(66,80),:(125,148),6~(66,84),:(128,145),:(66,88),:(130,142),:(66,92),:(132,139),:(66,96),:(135,135),:(66,100),:(137,132),:(66,104),:(139,129),7(66,108),:(142,126),:(66,112),:(144,123),:(66,116),:(146,119),:(66,120),:(149,116),:(66,124),:(151,113),:(66,128),7y&(153,110),:(66,132),:(155,107),:(66,136),:(158,103),:(66,140),:(160,100),70:STRING RIGHT SIDE7: T1500:8BD(254,140)(206,35),:(254,136),:(204,38),:(254,132),:(202,42),:(254,128),:(200,45),:(254,124),:(198,48),:(254,120),:(196,51),8N(254,116),:(193,54),:(254,112),:(191,58),:(254,108),:(188,61),:(254,104),:(186,64),:(254,100),:(184,67),:(254,96),9mX(181,71),:(254,92),:(179,74),:(254,88),:(177,77),:(254,84),:(174,80),:(254,80),:(172,84),:(254,76),:(170,87),9b(254,72),:(167,90),:(254,68),:(165,94),:(254,64),:(163,97),:(254,60),:(160,100),9l T1500::v(254,60)(206,164),:(254,64),:(204,161),:(254,68),:(202,158),:(254,72),:(200,155),:(254,76),:(198,152),:(254,80),:(196,148),;%(254,84),:(193,145),:(254,88),:(191,142),:(254,92),:(188,139),:(254,96),:(186,135),:(254,100),:(184,132),:(254,104),;(181,129),:(254,108),:(179,126),:(254,112),:(177,123),:(254,116),:(174,119),:(254,120),:(172,116),:(254,124),:(170,113),<7(254,128),:(167,110),:(254,132),:(165,107),:(254,136),:(163,103),:(254,140),:(160,100),"CM3"THEN160ELSEPRINTNAM$(N)+"/"+EXT$(N), 150 C=C+1:IFC=CL THENC=0:PRINT 160 NEXTN 170 NEXTX 180 CLOSE#1 190 IFPEEK(1035)<>115THENPRINT@230,"NO CM3 FILES ON DISK":END 200 PRINT@481,"ARROWS SELECT : SPACEBAR LOADS"; 210 PV=60:PY=PV+2:PP=1036:PX=PP 220 POKEPP,PV 230 K$=INKEY$:IFK$=""THEN230 240 IFK$=CHR$(32)THEN330 250 IFK$=CHR$(94)AND(PP=1036ORPP=1039)THEN230ELSEIFK$=CHR$(94)THEN310 260 IFK$=CHR$(8)THENPOKE(PP),143:PP=PX:POKEPP,PV 270 IFK$=CHR$(10)AND(PEEK(PP)=60ANDPEEK(PP+28)<>111)OR(PEEK(PP)=62ANDPEEK(PP+41)<>111)THEN230 280 IFK$=CHR$(10)THENPL=PEEK(PP):POKEPP,143:PP=PP+32:POKEPP,PL 290 IFPK>26ANDPK<32THENPK=PK+64 300 IFK$=CHR$(9)THENPOKEPP,143:PP=PX+3:POKEPP,PY 310 IFK$=CHR$(94)THENPL=PEEK(PP):POKEPP,143:PP=PP-32:POKEPP,PL 320 GOTO230 330 OG=&H7000 340 IFPEEK(OG+1)=86THEN360 350 POKE65497,0:FOR A=OG TO OG+511:READ B:POKEA,B:NEXT:POKE65496,0 360 IFPEEK(PP)=PV THENZZ=PP-12ELSEIFPEEK(PP)=PY THENZZ=PP+1 370 FORT=ZZ TOZZ+7:PK=PEEK(T) 380 IFPK>90THENPK=PK-64 390 IFPK<27THENPK=PK+96 400 IFPK>26ANDPK<32THENPK=PK+64 410 N$=N$+CHR$(PK) 420 NEXT 430 OPEN"I",#1,N$+"/CM3" 440 HSCREEN2 450 EXEC OG 460 ON BRK GOTO 480 470 GOTO 470 480 CLOSE:EXEC OG+2 490 K$=INKEY$:WIDTH32:RGB:PRINT@232,"ANOTHER? Y/N" 500 K$=INKEY$:IFK$<>"Y"ANDK$<>"N"THEN500 510 IFK$="Y"THENCLS:GOTO30 520 IFK$="N"THENCLS:END 530 DATA 32,86,32,74 540 DATA 48 550 DATA 7,7,0,26,195,255,3,0,5,2,0 560 DATA 0,0,112,7,1,7,0,0,0,0,0,0,0,0,0,183 570 DATA 255,216,134,60,23,0,136,15,111,48,141,0,53,188,1,13 580 DATA 39,25,190,1,13,175,141,0,116,48,141,0,37,191,1,13 590 DATA 48,140,196,175,140,204,48,8,175,140,210,28,175,57,174,141 600 DATA 0,91,39,3,191,1,13,57,141,197,23,0,131,23,0,183 610 DATA 32,189,109,140,170,39,29,106,140,170,38,24,166,140,150,167 620 DATA 140,162,182,255,190,190,255,188,191,255,189,246,255,187,247,255 630 DATA 188,183,255,187,109,140,137,39,35,106,140,137,38,30,166,141 640 DATA 255,116,167,140,128,174,141,255,121,166,128,172,141,255,126,37 650 DATA 4,48,141,255,98,183,255,186,175,141,255,102,126,0,0,142 660 DATA 255,164,167,128,76,167,128,76,167,128,76,167,132,57,52,18 670 DATA 26,80,134,60,141,233,183,255,216,28,175,53,146,52,18,26 680 DATA 80,166,141,255,47,141,216,183,255,223,183,255,217,53,146,57 690 DATA 198,1,215,111,23,0,178,167,141,0,43,111,141,255,32,206 700 DATA 255,176,198,16,141,23,51,141,255,11,198,12,141,15,109,141 710 DATA 0,20,46,219,198,243,23,0,144,90,38,250,57,23,0,137 720 DATA 167,192,90,38,248,57,0,111,141,254,252,141,124,77,16,39 730 DATA 0,118,129,200,35,2,134,200,167,141,254,234,167,141,254,225 740 DATA 142,128,0,134,128,167,141,254,223,167,141,254,220,23,0,109 750 DATA 23,0,95,51,141,0,131,49,141,0,149,198,160,109,141,254 760 DATA 201,43,52,104,196,52,1,100,141,254,189,36,6,102,141,254 770 DATA 183,51,65,53,1,37,6,166,141,254,172,32,28,104,164,52 780 DATA 1,100,141,254,164,36,6,102,141,254,158,49,33,53,1,37 790 DATA 6,166,137,255,96,32,2,141,16,167,128,167,141,254,136,90 800 DATA 38,187,106,141,254,128,38,155,57,23,255,34,189,161,118,22 810 DATA 255,43,51,141,0,58,230,141,254,112,42,16,57,141,234,51 820 DATA 141,0,23,167,141,254,99,42,1,57,198,20,141,219,167,192 830 DATA 17,131,127,255,34,3,90,38,243,57,73,76,69,49,50,56 840 DATA 32,66,73,78,2,0,52,7,95,0,0,0,0,0,0,0 850 DATA 0,0,0,0,0,0,0,0,0,73,67,79,78,49,67,32 860 DATA 32,66,73,78,2,0,49,0,139,0,0,0,0,0,0,0 1,0,23,167,141,254,99,42,1,57,198,20,141,219,167,192 830 DAT?6 $?-&?~3^BUUUUUUUUUUUUݻwݻwDDDDDDDD""""3333Dݎݸp?9w?3_߿8}Ur'R T0EuDpc033p0wpwp`+ Pp` ~{S04RmP ` wp,>cl6 p` s3+B" 0f 63.iRX up6wpw w|wnѶFlw wvm0}նխlcp ~vwcP?WVb V6yvfs:滣 fV6 f@!`Q, V6\|l0@Iك wwWwwg7|6pzxf~ o<nxy{   T>T" 6T  UP h ? 8?   8c?P   >    ? 8?U@ h g   6AT 3@ 7?g 8?U@ h f  f٘U@  ??3U 80??0      gUGU  g ?ٚU@  8n 7?fuTwwUP  ?h ̀j    ـ6  :  h  ?f6U  8g[p ?:  @ ;&j    ǀuTU  ǀ@ ?5U m  8  ?gU@T  gh 5UU   * 5L9U@  ? ̀?jl?P  ̀8  ??:WwUP  L@  f37   g  o: _  fo ?3?T  o83? Wp ??9U*  3m      gU@T  g37h {?5Uf  8? Wp ??U*  g& gj3   !ꫀ UUP  37h  ?fLU  8gn o??:WwUP  @ j3   o3?W y6uTU@  y3 ?5Uf  8n  ??gU@   gL@ Tf?P    uTU@  3 ?3U@  8  ??uT  L@  f37   g  PjU    ?3U@  8jۀ ??uT   j3     gU@T  g37h ?T   8  ??Pz   h4      uTU@  37h  ?fLU  8gn ??=_U@   Fj3   p uTU@  3 `v`0vl`+FkEZ``p0l`#8c p+ɠlŐl `ooo pL ` lo l I p||| 2&@d  pw|pw|7ma @pw|7ma @'1:10000:1,1000"28/65497,0]40:10,11:1,59:0,11:15,59:4,59:9,63?7,7,5,7,3,7,3,8,3,9,3,10,5,10,7,10,9,10,9,9,9,8,9,7,9,6,9,5,9,4,14,10,12,10,12,9,12,8,12,7,14,7,16,7,18,7,18,8,18,9,18,10,23,5,23,6,23,7,23,8,23,9,23,10,21,6,25,6,30,10,28,10,28,9,28,8,28,7,30,7,32,7,34,7,34,8,34,9,34,109,12,7,12,5,12,3,12,3,13,3,14,3,15,3,16,3,17,3,18,5,15,7,15,11,15,11,16,11,17,11,18,13,18,15,18,15,17,15,16,15,15,13,15,19,18,19,17,19,16,19,15,21,15,23,15-27,18,27,17,27,16,27,15,29,15,31,16,31,17,33,15,35,15,35,16,35,17,35,187,0::" E.Z.Friendly Software Proudly Presents":7,5:2,1,U:X185:H,V:VV2:H,V:" ";: H15234:V1922:H,V:" ";:V,H 65496,0 0,23:7,0:DL11600::P123::w 0,0:9)"DATA FORM III SET-UP":7,0,U:(40,32);:7,0::"ANSWER THE QUESTIONS AND CREATE YOUR OWN";:7)"CUSTOMIZED SMALL DATABASE" 7,0,U::7,02,8:"BLANK FORMATTED DISK IN DRIVE# 0-3?";:44539:DD$:("0123",DD$)014)2,8:" NOW CHECKING DISK IN DRIVE "DD$:16:((DD$))6718:17e2,8:"CHECK DISK IN DRIVE - PRESS ANY KEY":44539:142,8:"DISK IS NOT BLANK - PRESS ANY KEY":44539:14F$(17),LF(17),X$(17):"O",#1,"INDEX.DAT:"DD$:"WHAT IS THE FULL TITLE OF THIS DATABASE (MAX. 38 LETTERS & SPACES) ":F$::"HOW MANY FIELDS (ITEMS) DO YOU WANT TO BE ABLE TO PUT INTO EACH FILE (MAX. 17) ";:LXLX1719X1LX::"NAME OF FIELD";X:F$(X):::X1LX6"WHAT IS THE MAXIMUM LENGTH OF FIELD";X:"CALLED "(34)F$(X)(34)" (MAX.249)";:LF(X)::LF(X)250:22TL0::(40(F$))2)F$:7,0,U::" FIELD# NAME MAX. LENGTH":7,0::X1LX:5)X;F$(X);LF(X):TLTLLF(X)::TL1000"TOTAL TOO BIG!":44539:19::"IF EVERYTHING IS OKAY, PRESS ENTER AND YOUR DATABASE WILL BE SET-UP ON DISK. IF IT'S NOT OKAY, PRESS ANY OTHER KEY TORE-DO THE SET-UP. PRESS BREAK TO END.":44539I$:I$(13)#1,F$:#1,LX:X1LX:#1,F$(X):#1,LF(X):::27:1944539:"TITLE FOR DISK PROGRAM (8 LETTERS MAX.) ";T$:P8367:X1LX:PI::PPI,58:PPI1,131:25,30:26,155:(T$,8)"/BAS:"DD$::"YOUR DATABASE IS COMPLETE":28::32::1:10000:1,100040:0,11:15,59:4,59:9,637,0,U:X112:(40," "):` 6,10:7,0:"File disk is in which drive?";:13,11:"(Press Number)";:44539:DD$:("0123",DD$)032!:9,10:7,0,B:"Now opening the file...":34:"I",#1,"INDEX.DAT:"DD$:#1,F$:#1,LX:F$(LX),LF(LX),X$(LX):50:35 "14,8:1,0,B:"Disk error!!":32 8#X1LX:#1,F$(X):#1,LF(X):TBTBLF(X)::#1 [$"D",#1,"FILEDATA/DAT:"DD$,TB %0,13,26,39,52,65,78,91,104,119,134,149,164,179,194,209,224!,LF(1)X$(1),LF(2)X$(2),LF(3)X$(3),LF(4)X$(4),LF(5)X$(5),LF(6)X$(6),LF(7)X$(7),LF(8)X$(8),LF(9)X$(9),LF(10)X$(10),LF(11)X$(11),LF(12)X$(12),LF(13)X$(13),LF(14)X$(14),LF(15)X$(15),LF(16)X$(16),LF(17)X$(17):!(SW40:FF$(LX),SF$(LX)"0282,255:48:SW::1,0:F$""((SW(F$))2," ")F$::SW22,0:"FILE"" 158",2:"INPUT ERROR":44539:48"_:7,0,U:(SW," "):SW25,2:"MAIN MENU":7,0"lDAZ098"N(1)098:SW211)"NOW CHECKING FILE DATA""XAZ0:A1(1):#1,A:458:A"b0,3:SW212)AZ;"ENTRIES ON FILE"#l:TSW28:T)"(D)isplay 40/80":T)"(I)nput data":T)"(O)rganize file":T)"(F)ind - Update":T)"(L)ook - Update":T)"(S)can":T)"(T)otal/count":T)"(P)rint"#mT)"(R)oom for files":T)"(B)ack-up":T)"(Q)uit"$v44539:I$:SW28,17:"<<<"I$" PRESSED>>>":120,1$dK("DIOFLSTPQBR",I$):K0118:K 518,148,208,4000,358,5000,6000,7000,7800,7900,8000$s"ERROR":$48:$((DD$))0AZ(1)"THIS FILE IS FULL":44539:48$468:0,4:282,0:"ENTER DATA";:7,0:" PRESS BREAK TO END"% X1LX%Y:"TYPE AND ENTER "F$(X):"MAX."LF(X)" SPACES:":Q$:X$(X)Q$:X:#1,FP%mAZAZ1::148%О:"(A)LPHABETICAL OR (N)UMERICAL ORDER?":44539:I$:("AN",I$)0208%ڇ:"WHICH FIELD?":X1LX:X;F$(X):X:F:F1FLX 218&:"NOW WORKING - PLEASE WAIT"&+A1(1)1&M#1,A:B1LX:FF$(B)X$(B):B&_ CA1 (1)&#1,C:B1LX:SF$(B)X$(B):B&I$"N"290' FF$(F)SF$(F)B1LX:X$(B)SF$(B):B:#1,A:B1LX:X$(B)FF$(B):B:#1,C:B1LX:FF$(B)SF$(B):B:298's"(FF$(F))(SF$(F))B1LX:X$(B)SF$(B):B:#1,A:B1LX:X$(B)FF$(B):B:#1,C:B1LX:FF$(B)SF$(B):B'z*C'4FF$(F)'>A:X$(F)'H 348'\:"COMPLETE - PRESS ANY KEY":44539:48'f48:X1(1)(p#1,X::(X$(1),1)(255)408(zL0(HY1LX:Q$X$(Y):F$(Y)":":Q$:428:LL(Q$):Y(yL0AZAZ1:Y1LX:X$(Y)(255):Y:#1,X(X(:"END OF FILE":44539:48(7,0,U:"PRESS SPACE FOR NEXT, (E)DIT, OR (A)DD":7,0:44539:I$(I$"A"438)4Q$X$(Y):Z(Q$)11:(Q$,1)" "Q$(Q$,Z1):Z)"ADD TO (MAX."LF(Y)(Q$)" MORE SPACES):":Q$;:282,0:QN$:Q$Q$QN$:X$(Y)Q$:#1,X)I$"E"282,0:"INPUT NEW "F$(Y)" (MAX."LF(Y)" SPACES)":Q$:X$(Y)Q$:#1,X)282,255:*ʅ(X$(1),1)(255)AZAZ1::*FԅAZ(1)FP(1)1:508::X1(1)*p#1,X:(X$(1),1)(255)FPX:508*v*FP(1)1**SW40SW80:SW40*48+H48:282,0::"SEARCH FOR?";SF$:282,255:"(A)LL FIELDS OR (S)ELECT FIELD":44539:A$:A$"S"X1LX:X;F$(X)::"WHICH FIELD";F:FLX F14000+X1(1)::"LOOKING...":#1,X:Q$X$(1):(Q$,1)(255)4100+A$"S"4021:4040+Q$X$(F):(Q$,SF$)04050:4100+4100,ȀY1LX:Q$X$(Y):(Q$,SF$)04050:Y, ́4100,W0,0:"FOUND:":L0:Y1LX:Q$X$(Y):F$(Y)":":Q$:428:LL(Q$):Y,܅L0AZAZ1:Y1LX:X$(Y)(255):Y:#1,X,X,"NO MORE FILES":44539:48,48::"WHICH FIELD?":X1LX:X;F$(X)::F:FLX F15000-(1)0"NO FILES":5200-X:"PRESS 'P' FOR PAUSE - BREAK TO END":DL1200:DL:X1(1)-|#1,X:(X$(1),1)(255)5050--Q$X$(F):Q$:DL1100:DL-"P""<<>>":44539-X::"END OF FILES"-P44539:48.Ap48::"TOTAL ITEMS FROM WHICH FIELD?":X1LX:X;F$(X)::F:F0FLX 6000.r"ADD NUMBERS? (Y/N)":44539:TN$:TN$"Y"282,0:"ITEM TO BE COUNTED? ";IC$:282,255.u(1)0"NO FILES":6100/aw"(A)LL OR (S)ELECTED FILES?":44539:I$:I$"S"282,0:"SELECT FILES CONTAINING WHAT DATA? ";D$:282,255:"LOCATED IN WHICH FIELD";KF:KFLX KF16007/vz:"NOW WORKING"/~T0/X1(1):#1,X::"NOW WORKING"/I$"S"I(X$(KF),D$):I06028/C10&TN$"Y"C(X$(F))Q$X$(F):CC(C,Q$,IC$):CC0TT1:CCC(IC$):60240GTN$"Y"Q$X$(F):TT(Q$)0M0:TN$"Y""TOTAL NUMBER OF "IC$"=";T::"PRESS ANY KEY":"TOTAL OF "F$(F)"=";T::"PRESS ANY KEY"0Ԣ44539:481}X:7000:((SW15)2,32)"PRINT OPTIONS":7,0,U::7,0::TSW212:T)"1 - Print all files":T)"2 - Print select files":T)"3 - Look and print":T)"4 - Print labels"1YT)"5 - Custom print":T)"6 - Baud rate POKE":T)"7 - Return to main menu"2$b44539:I$:I("1234567",I$):I07010:I 7100,7200,7300,7400,7500,7600,482r"READY PRINTER & PAPER - PRESS SPACE TO BEGIN, 'P' = PAUSE, BREAK = END2}Ƣ445392ЀX1(1):#1,X:(X$(1),1)(255)71902څ"P""<<>>":445393Y1LX:Q$X$(Y):#2,F$(Y)": ";:#2,Q$:Y:#23/X:"ALL FILES PRINTED":44539:70003 :"PRINT ONLY FILES WITH WHAT DATA? ":282,0:D$:282,255:"CONTAINED IN WHICH FIELD":X1LX:X;F$(X)::FF:FF1FFLX 720041!"READY PRINTER AND PAPER":"PRESS SPACE TO BEGIN, P=PAUSE, BREAK=END":44539:X1(1):#1,X:(X$(1),1)(255)72804I%:"NOW WORKING..."4i*Q$X$(FF):(Q$,D$)072804/"P""<<>>":4453944Y1LX:Q$X$(Y):#2,F$(Y)": ";:#2,Q$:Y4>#24pX5z"ALL FILES WITH "D$" PRINTED":44539:70005/X1(1):#1,X:(X$(1),1)(255)7380555QY1LX:Q$X$(Y):Q$:Y57,0,U:"TO PRINT PRESS 'P', SPACE TO CONTINUE":7,0:44539:"P"Y1LX:Q$X$(Y):#2,F$(Y)": ";:#2,Q$:Y5ԋX:"END OF FILES":44539:70006:"LABELS HAVE 5 LINES":4200,5:P4200:N56&遥75056`L:"NUMBER OF LINES YOU WANT PRINTED";N:P4199:75996Q:7,0,U:"DATA FIELDS":7,0:X1LX:X;F$(X):6VNNN:X1NN:"HOW MANY FIELDS ON LINE";X;:N:75997XN2N:Y1N2:"NO. OF FIELD PLACED";Y;"ON LINE";X;:N:7599:Y7[X7`:"(A)LL OR (S)ELECTED FILES?":44539:I$:I$"S""FILES WHICH CONTAIN WHAT DATA? ":282,0:D$:282,255:"LOCATED IN WHICH FIELD";F:F1FLX 75208e:"READY PRINTER & PAPER. PRESS SPACE TO BEGIN, P=PAUSE, BREAK=END":445398f:"NOW WORKING..."8NjX1(1):#1,X:(X$(1),1)(255)75808qk"P""<<>>":445398~lQ$X$(F)8oI$"S"(Q$,D$)075808rOQ09tP4200:Y1(4200):PP1:PPP:OO0:Z1(PP):PP1:7595:(Q$)0#2,Q$" ";:OO19~Z:OO1#2:OQOQ19$Y9BI4R0OQ:#2::#29IX9p"ALL FILES PRINTED":44539:70009Q$X$((P)):ZZ1(Q$):(Q$,1)" "Q$(Q$,(Q$)1):99PP1:P,N:::"WHAT IS THE NUMBER TO POKE 150";:P:150,P:7000:44539:48:hx:SW216)"QUIT SELECTED - VERIFY (Y/N)?":44539:"Y":113,0:40999::48;܇:"BACK-UP? (Y/N)":44539:"Y"48:"DO NOT USE BREAK KEY":::"(S)INGLE OR (D)OUBLE DISK DRIVE?":44539:Q$:("SD",Q$)07900:Q$"S"DV$"0":SD$DV$::7999;h݈9000:9000:"INSERT BACK-UP DISK IN DRIVE "DV$:"PRESS ENTER":44539;ޚ:"D",1,"FILEDATA/DAT:"DV$,TB::"FILEDATA/DAT:"DV$:ڈ:"SOURCE DISK IN DRIVE "SD$" - PRESS ENTER":44539:Q$"S""FILEDATA/DAT:0"<,߅Q$"D""FILEDATA/DAT:"SD$ "FILEDATA/DAT:"DV$1210G0,4:4,8:8,63:80:5:22,10:"*** DATA FORM III INSTRUCTIONS ***":24,12:"Print on (S)creen or (P)rinter?"44539:I$:I$"S"DV0:5:1090::I$"P"DV2:10301220$80:5:0,10:"Make certain printer baud rate is set correctly and your printer is on line. Position paper so printer head is at top edge of paper. Keep disk in drive 0 andpress the space bar to begin printing. "; ."Press BREAK to set baud rate.":44539584,36:5:28,12:"PRINTING DOCUMENT";JB:BEGIN PRINTINGWL1210rV"I",#1,"DF3*DOCS.TXT"~`P126jDV2X14:#DV::L158:L122t(1)11190~#1, L$(L)#DV," "L$(L)>L:DV0:26,23:0,2:" <>";:44539:5:0,4::X14:#DV:EP::23,23:0,2:" << PRESS BREAK TO EXIT DISPLAY >>";1200:200,32767:32::Ğ:"ENTER CORRECT POKE 150 TO SET BAUD RATE. THEN ENTER RUN.":DV0:26,23:0,2: ^&j500: :1:0,64:1,37:2,0:3,17:0:2,0:P$(13),U(13),E(35),O(52),C(52),H(54),Q(28),P(9): 37&"BM10,8C1R5FL7GR3DL3D4RNU3EREUREUR3DFREUE2R5FL6FDL2ELD3FREUREUR3D5GDGDG8LH8UHU":(20,20),1,1'A"BM298,8C2G8RERNFLENDERNFLENDERFDGLDGLDGLHULDGDFDF2R2E2R2D2G3LDR9ULNL6HNL4HNL2HU2R2F2R2E2UEUHUH8":(298,17),2,2'"BM18,160G2DFREUHUR3FRFD4G2DFRE2R2F2D4G3L3H2LGDF4L9ENR6ENR4ENR2EUHLG2L3H3U4E2R2D4L3U3R4FREUH2U4ER":(20,171),2,2("BM298,160C1G9DF9RE9UH9":(298,170),1,1:"C0BD4LDNRNEGLFLGDLUC2":(40,40)(279,141),,B(X1:(16,9),"EZ ACES":2:(18,12),"By":(12,14),"H. Allen Curtis(&HFFA2,&H74:M"BFR":&HFFA2,&H7A:35:34,1500(&HFFD9,0:31(V$:V$""8:NG0:SA0:V$"E"3:9:V$"Q"37:8) (16,2),"EZ ACES":I09:P(I)0:) "BM51,48RFD4GL2HNE3U4EBM75,48NGD6LR2BM98,48NGR2FDGL2GD2R4BM122,48NGR2FDGFDGL2HBM148,48ND6G3DR4BM170,48NR4D2R3FD2GL2HBM194,48NR2GD2R3FDGL2HU2BM218,48R4DG4DBM243,48RFDGNLFDGL2HUEHUEBM266,48R2FDGL2HUDFR2FDGL2*4 H$"":J113:C(J)100J:C(J13)200J:C(J26)300J:C(J39)400J::I152:H(I)C(O(I)):*a I09:(44I24,58)(59I24,88),33,:* (3,15),"SCORE:":SV25:(4,17),SV:"BM18,114C0R56D34L56U34C2":N51:(27,13),N:(224,114)(239,144),31,:(27,19),"HAND":(16,16),"COMMAND:"+NCH(52):TC:B26:32:(272,114)(287,131),A,:(272,132)(287,144),B,:(33,19),"PLAY"+(9,22),"0 - 9 PILE HAND QUIT":0:(9,22),"0 9 H Q":2,V$:V$""16:(200,128)(207,135),32,:V(V$):(25,16),V$:V$"H"24:V$"Q"17:VV48:V1 V1027:23,;G$:G$""17:G$"Q"18:230,2:16,3:34:NGNG1:SASASV:(7,5),"Your":(11,5),NG:(15,5),"game SCORE is":(29,5),SA:0:(15,8),"S":(15,10),"Q":2:(16,8),"HUFFLE":(16,10),"UIT",V$:V$""19-V$"S"3:31:9:V$"Q"21:19-B(2,15),"ARE YOU SURE YOU WANT TO QUIT? (Y,N)"-xK$:K$""22:K$"Y"0:36:8:3:31:9-230,2:16-N023:I09:P(I)025::23. CH(N):P(I)C:B26:32:(44I24,58)(59I24,75),A,:(44I24,76)(59I24,88),B,.43:(27,13),N:NN1:2:(27,13),N:16.P(V)023:CT:B26:32:T1C:T2TC:CP(V):B26:32:CT1 T2P(V)C C1 28:23.TP(V):(272,114)(287,131),A,:(272,132)(287,144),B,:P(V)0:(44V24,58)(59V24,88),33,/xP(0)P(1)P(2)P(3)P(4)P(5)P(6)P(7)P(8)P(9)03:(4,17),SV:2:SVSV10:(4,17),SV:N0 SV2430:16:16:1616:16/3:(4,17),SV:SVSV40:2:(4,17),SV:(13,12),"YOU'VE WON!!":&HFFD8,0:"T2O3L16CEGL8O4CL16O3GL4O4C":&HFFD9,0:0IQ():J152:O(J)J::J152:R(53J):QO(53J):O(53J)O(R):O(R)Q:::SHUFFLE0| CC100:BB1:C10032:B28AC2:A12C0!0"(96,40)(111,48),32,:(192,40)(215,48),32,:(216,40)(239,48),32,:0#(80,48)(238,132),,BF1M$(14,8),"Type E or Q for:":1:(16,11),"E":(16,13),"Q":2:(17,11),"Z ACES":(17,13),"UIT":1]%&HFFD8,0:0032:B28AC2:A12C0!0"(96,40)(111,48),32,:(192,40)(215,48),32,:(216,40)(239,48),32,:0#(80,48)(238,132),,BF1M$(14,8),"Type E@94 "*( *r4 "** * *4@PQTETUUUTUTP@4PQ@UE@UU@UUUUUTP@1H**  * *  ~HPUTP@@TP@TPPUUUUH* ***   **HUUUU@@TP@PT@@PUTPeH( (*(((((²HTTTTTPUU@UU@U@U@ H*   **L HUUUU@@@UPUT@@PUTPÙ H** *    ** HPUTP@@UPUTP@@@@PUTP3 H *( ĀHUUUU@@PP@@H**  **   **HPUTP@@PUTUPP@@@PUTPgH**    **  **ŴHPUTP@@@@PUUU@PUTPH   NHUU@APPPPPPPPPPAPU@UƛH HUUPPPPPPPP@P@P@PUPU@5H* ** ǂHTUUPPPPPPPPPPQEUUTH******HT@T@PPTQPU@UTUU@QPPTPT@T@iH *((((  **ȶH@@PPPPPUTUU@@TUPTUP;UURUU@EQFFFFFFFFDDDDDDDDDEQ@UUUUR !?????????????????????????????se&;:CM3SAVER: HSCREEN2 FILES FROM BASIC TO COCO MAX 3&:ADAPTED FROM COLORWARE'S 'TRANSLAT' FOR COCO FRIENDS DISK MAGAZINE&:BY KEIRAN KENNY - 1993& &HE6E4,&HE6:40&0,0:0,12:"PLEASE WAIT. READING DATA.";& 50'( 70'28: 40'! 0,1,7,7,7,189,198,63,254,0,126,51,94,0,0,1249H 53,134,48,26,80,189,120,3,142,128,0,49,137,0,159,1669R 132,230,164,231,128,167,164,49,63,52,32,172,225,37,240,489\ 136,80,140,248,0,37,228,142,128,0,166,132,72,72,72,72:;f 52,2,166,132,68,68,68,68,170,224,167,128,140,248,0,37:|p 233,134,60,126,120,3,198,1,215,111,189,121,233,206,255,176:z 198,16,189,120,142,189,121,233,189,121,233,183,124,219,198,30; 189,121,233,90,38,250,189,121,233,189,121,233,142,128,0,125;C 124,219,39,13,189,121,233,167,128,140,253,0,37,246,126,123; 253,189,121,233,77,39,17,31,137,189,121,233,167,128,140,253; 0,36,5,90,38,246,32,233,126,123,253,0,204,128,64,32; 3,204,0,128,183,125,104,38,3,240,127,255,247,125,105,198<@ 1,215,111,127,125,106,142,128,15,182,125,105,115,125,106,42  120,3,142,128,0,99,128,140,253,0,37,249,134,60,126,120>d 3,249,252,250,171,250,230,249,189,249,188,252,111,252,163,25206= 228,38,193,53,18,122,125,104,38,159,134,60,126,120,3,106= 228,39,240,189,121,233,32,247,0,0,0,134,48,26,80,189>  120,3,142,128,0,99,12:(106,145),:(168,170),:(104,142),:(164,170),:(102,138),:(160,170),:(100,135),:(156,170),?(98,131),:(152,170),:(96,127),:(148,170),:(94,124),:(144,170),:(92,121),:(140,170),:(90,117),:(136,170),@x(88,114),:(132,170),:(86,110),:(128,170),:(84,107),:(124,170),:(82,103),:(120,170),:(80,100),@ T1500:A*(80,100)(120,30),:(82,97),:(124,30),:(84,93),:(128,30),:(86,90),:(132,30),:(88,86),:(136 &65497,0: 8& 2:5: &;(84,77),30,,1,.30,.73&M(92,48),9,,1&_(92,48),6,,1&p#(92,48),4,8&$(114,58,8)&%(113,58,8)&&(112,57,8)&((72,76),6,,1.25&)(72,76)&-(85,55)(74,70),&2(90,54)(77,72),' 7(96,48),9,,1,.75,.03'%<(88,76),32,,1,.80,.90'?A(128,84),28,,1,.78,0'[F(122,76),20,,1,.70,.80'xK (122,69),38,,1,.08,.20'P(136,142),38,,1,.68,.75'U(74,116),12,,1,.80,.10'Z(118,120),12,,1,.46,.75'_(148,112),66,,1,.52,.67(d(159,82),5,,1,.63,.38(i "BM162,81L6"('n(159,83)(9s"BM114,72D2"(Kt"BM115,72D2"(gx (114,72),6,,1,.50,.66(} (116,112),8,,1,.58,.80((84,118)(76,162),((62,164),14,,.45( (82,164),6,,1,.25,.50("BM84,170R40((18,140),110,,1,.99,.05)(21,159),113,,1,.96,.03)6(118,129),8,,1,.50,.0)Q(110,129)(106,150),)l (99,152),8,,1,.0,.22) "BM107,124F2")(89,145),10,,1,.0,.50)(98,144)(96,128),)"BM86,149D4")"BM90,149D4") (84,108)(110,114),* (108,116)(44,122),*((108,118)(44,124),*C (108,120)(44,126),*X "BM18,171R170"*l "BM18,171G17"* "BM188,171F17"*(129,57,8)*(128,57,8)*"BM2,188R204"*(18,175)*"BM127,134L5"*"BM127,142L5"+ (122,130),9,,1,.78,.99+"BM130,136L2"+*"BM132,147L2"+9(81,48,8)+H(86,48,8)+Z(65,165),1,8+j(83,107,8)+{(118,110,8)+(100,75),1,8+(160,79),7,8+(133,170,8)+ (130,150),1,8+!(107,123,8)+"(110,126,8)+'(110,140),1,8, ((128,128),1,8,)(100,115),1,8,-*(80,49,8),<+(82,48,8),M,(65,65),7,8,^-(79,65),9,8,o.(90,41),9,8,/(98,41),9,8,0(95,118),6,8,1(95,120),6,8,2(88,121),6,8,3(88,119),6,8,4(105,117),6,8,5(105,119),6,8-6"BM44,122D4"-7(46,125),6,8-$8(46,123),6,8-69(53,122),6,8-H:(56,124),6,8-Z;(63,121),6,8-l<(63,123),6,8-~=(74,120),6,8->(74,122),6,8-?(83,119),6,8-@(82,121),6,8-A(250,15),15,,1-B(250,15),1,8-J 1,71: 2,71.T"BM3,32C7F3R6F2E1L8U4".Y(0,32)(15,39),1.C^(0,32)(15,40),,BF:(0,32),5,5.Yc(0,32)(15,39),2.mh X0 304 2.m(X,32)(X15,39),1.r"L250O1G".w(X,32)(X15,39),2.| X.}(20,12),"GADS! THE RED BARON!".~(20,14),"AND I LEFT MY GUNS"/] N:v          @@P@P@P@P@  @@N     P@@  @ P@ P       @ P@P@     @PĄ  . @   @PPP.Ą PPPH@       PP^ @K PP@   @PP    @@PPPP.   @P[ PP_    PPP                          pp    ( @ @ @D( @@@P BD  @I P( $@  D  Q@ PPEH"PL@ U A@0 R!R@ 1@D,%@A$ A$  @ B$H p!xc <d`L(  2@& P@ `h@ @0Z` ,P0Y   YC  .W pD0` ;p@f }8P`8f~xΆy0c H{ye?F s`ǼPD f|V³ D@ V WC:P @ 8 fuXP0$`x i l0h B`4 8Xpl @@ ǮH 0 `!(Z *0!@hEIw@`l & $`H2 @@@ i@PPnTH "  $ .PDa4 @@CH(@H@"H !@D A@@H @$A  B`B @@ , @D* ( A$" 0   @D @Ę !! H@@@TP@P@@  @ P( I I @  @@@@ @  @D@@@@@ P @@@@@D@ B @ H$ $  H@` @B @@H(@@" 2$ @H0DP@8@  (3 @$h j@ P ~P"T!@`d@ y0` aE xyݣv >8g01u0sA9w?8- A`J4mf=݀|  9spp(1?<pP|0x+xp@p08< >p>vv033;9<߿߯ϰ߃cݿ{??7wogoccπ 8pp0`op0ð008<|``|<`p8x<`pp88  `xgs; l||<?;<3Ì37< ?7 8? ???D0dIN:?;<3Ì37< P\'0 ٽB@@;Z$  TӾVս5R׾Tӽ5NӾPս55a5}L'59/&95 ;%K990123>0123=>0$\ 405"9$\ ݝ9"SCREEN /NIB" !5%9o 1?@% o1?0 0@%9' &䆀1! ܎1?@$09o1?0 ~5@ˌ%9'5Öͧ٦'5Ö̪ &ֆ1! 'XXXX  TTTT 9@@%9 (20,16),"BACK AT THE 'DROME!"/0 X0 304 2/H(X,32)(X15,39),1/W"L250O1G"/o(X,32)(X15,39),2/w X/ X0 304 2/(X,32)(X15,39),1/"L250O1G"/(X,32)(X15,39),2/ X/ X0 304 2/(X,32)(X15,39),10 "L250O1G"0#(X,32)(X15,39),20+ X0> X0 304 20V(X,32)(X15,39),10e"L250O1G"0}(X,32)(X15,39),20 X0 X0 304 20(X,32)(X15,39),10"L250O1G"0(X,32)(X15,39),20 X0:65496,0:15,39),10