'=========================================================================== ' Subject: ADDRESS LABEL GENERATOR Date: Unknown Date ' Author: John Rodgers Code: QB, QBasic, PDS ' Origin: Wizard Productions Packet: MISC.ABC '=========================================================================== 'XLABEL Version 1.0 'This is an Address Label Printer Program 'single column labels only DECLARE SUB displayheader () DECLARE SUB getMenuSelection (choice%) DECLARE SUB addRecords () 'by John Rodgers DECLARE SUB changeFilename () 'declare SUBS 'TCF DECLARE SUB searcH () DECLARE SUB printRecords () DECLARE SUB viewrecords () DECLARE SUB help () DECLARE SUB helPrint () DECLARE SUB prntrtadress () DECLARE SUB addretadres () DECLARE SUB returnaddress () DECLARE SUB retchoice () DECLARE SUB rviewrec () COMMON SHARED filename$ filename$ = "test.db" OPEN filename$ FOR APPEND AS #1: CLOSE #1 ' open or create file displayheader 'display program frame DO getMenuSelection choice% SELECT CASE choice% 'get user choice CASE 1 COLOR 14, 7 LOCATE 3, 47: PRINT " ADD " 'add to database file addRecords CASE 2 COLOR 14, 7 LOCATE 3, 47: PRINT " VIEW " 'view database file viewrecords CASE 3 COLOR 4, 7 LOCATE 3, 47: PRINT " PRINT " 'print labels COLOR 15 printRecords CASE 4 COLOR 14, 7 LOCATE 3, 47: PRINT " SEARCH " ' search for txt$ searcH CASE 5 COLOR 14, 7 LOCATE 3, 47: PRINT " CHOOSE " changeFilename 'change database file CASE 6 CLS SHELL COLOR 1, 7 displayheader CASE 7 'make and print COLOR 15, 1 'return address labels LOCATE 3, 47: PRINT " RETURN " returnaddress CASE 8 COLOR 15, 7 LOCATE 3, 47: PRINT " HELP " 'online help help CASE 9 COLOR 15, 1 LOCATE 3, 47: PRINT " QUIT " END SELECT 'quit program LOOP UNTIL (choice% = 9) FOR i% = 1 TO 20 SOUND (i% * 1000), 2 'sound NEXT i% CLS SCREEN 7 COLOR 4 LOCATE 8, 8 'end logo & music PRINT " PRESENTED BY " PRINT , , , , , , , , , , , , , , , , , , , , "" COLOR 13 CIRCLE (145, 115), 32, 14, , , 2 / 9 PAINT (140, 115), 14 CIRCLE STEP(4, -1), 9, 0 PAINT STEP(1, 2), 0 CIRCLE STEP(1, 1), 1, 12 COLOR 14 PRINT " 'WIZARD PRODUCTIONS'" COLOR 7 Music$ = "MBT180o2P2P8L8GGGL1E-P24P8L8FFFL1D" PLAY Music$ WHILE PLAY(0) > 1: WEND StartTime = TIMER WHILE TimePast < 13 TimePast = TIMER - StartTimer WEND FOR j% = 1 TO 500 'pause loops FOR k% = 1 TO 960 NEXT k% 'return to System NEXT j% '.bat file SYSTEM SUB addRecords 'gets and saves data from user FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% PRINT LOCATE 23, 1 COLOR 15, 1 PRINT " Type "; COLOR 14 PRINT "End "; COLOR 15, 1 PRINT "on the "; 'info in colors PRINT "Name "; COLOR 15, 1 PRINT "line to save file and quit"; LOCATE 24, 1: COLOR 1, 7 PRINT " Enter Address Type END for Name to quit... "; 'status line VIEW PRINT 5 TO 22 COLOR 15, 1 PRINT PRINT " Enter new address (without commas)" PRINT OPEN filename$ FOR APPEND AS #1 COLOR 7, 1 WHILE (UCASE$(name$) <> "END") 'end if no more records INPUT " Name: ", name$ IF (UCASE$(name$) <> "END") THEN INPUT " Address:", addres$ INPUT " City: ", city$ INPUT " State: ", state$ INPUT " Zip: ", zip$ WRITE #1, name$, addres$, city$, state$, zip$ 'write data to file END IF WEND CLOSE #1 END SUB SUB addretadres FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% CLS 2 COLOR 1, 7 VIEW PRINT LOCATE 3, 16: PRINT " ": LOCATE 3, 16: PRINT filename$ 'Header info LOCATE 24, 1: COLOR 1, 7 PRINT " Enter RETURN Address then press ENTER... "'status line VIEW PRINT 5 TO 22 COLOR 15, 1 PRINT " Enter new RETURN Address...(without commas)" PRINT OPEN filename$ FOR OUTPUT AS #1 INPUT " Name: ", name$ INPUT " Address:", addres$ INPUT " City: ", city$ INPUT " State: ", state$ INPUT " Zip: ", zip$ WRITE #1, name$, addres$, city$, state$, zip$ 'write data to file CLOSE #1 VIEW PRINT LOCATE 3, 16: PRINT " ": LOCATE 3, 16: PRINT filename$ 'Header info LOCATE 24, 1: COLOR 1, 7 PRINT "Press ENTER... " 'status line VIEW PRINT 5 TO 23 COLOR 15, 1 CLS 2 retchoice END SUB SUB changeFilename 'allows user to change database FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% COLOR 1, 7 LOCATE 24, 1: PRINT " TYPE ' name?.DB ' or Press ENTER... "; VIEW PRINT 5 TO 24 COLOR 15, 1 PRINT " Use this option to Create a new Label file or open an existing one." PRINT PRINT " The current directory contains the following label.db files:" PRINT 'view .db files FILES "*.DB" PRINT PRINT " What Label file would you like to work with?" 'default PRINT PRINT " Press ENTER... for default Label file LABEL.DB" 'database PRINT : COLOR 14 PRINT " You Must use a Valid filename with a .DB extention! " COLOR 9 INPUT " Filename: ", filename$ COLOR 7 IF (filename$ = "") THEN 'set default filename$ = "LABEL.DB " 'database ELSE filename$ = LTRIM$(RTRIM$(UCASE$(filename$))) END IF OPEN filename$ FOR APPEND AS #1 'make or check CLOSE #1 COLOR 7 END SUB SUB displayheader CLS 'displays program name and choices CLS 2 COLOR 1, 15 CLS PRINT : COLOR 4 PRINT "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XLABEL 1.0"; PRINT " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~": COLOR 1 PRINT "~~~~~~~~~~~~~~~~~~~ "; : COLOR 9 PRINT "The Wizard's "; 'program title COLOR 4 PRINT "MAGIC "; 'change color for 'MAGIC' COLOR 9 PRINT "Address Label Maker!"; : COLOR 1: PRINT " ~~~~~~~~~~~~~~~~~~~~": COLOR 9 PRINT "Current FILE: "; 'print display names PRINT "Current MODE: "; PRINT "Current TIME:" COLOR 1 PRINT STRING$(80, "~") COLOR 4 LOCATE 25, 1: PRINT STRING$(80, "~") FOR i% = 1 TO 20 'sound initilizer SOUND (i% * 500), 1 NEXT i% END SUB SUB getMenuSelection (choice%) FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% choice% = 0 VIEW PRINT ' prints current COLOR 1, 7 LOCATE 3, 16: PRINT " ": LOCATE 3, 16: PRINT filename$ 'Header info COLOR 14 LOCATE 3, 47: PRINT "SELECT " COLOR 12 LOCATE 3, 76: PRINT LEFT$(TIME$, 5) COLOR 1, 7 LOCATE 24, 1: PRINT " Type a number between 1 and 9 and press ENTER... "; VIEW PRINT 5 TO 23 COLOR 15, 1 CLS 2 PRINT PRINT PRINT " SELECT an option:" 'prompt user for PRINT 'choice PRINT " 1) ADD "; COLOR 14 PRINT " Addresses"; COLOR 15, 1 PRINT " Make Label file and save to disk" COLOR 15, 1 PRINT " 2) VIEW contents of a Label file on screen" PRINT " 3) PRINT contents of Label file to printer" PRINT " 4) SEARCH for a specific entry in Label file" PRINT " 5) CHOOSE Label files" PRINT " 6) EXIT temporarily to DOS... (type"; COLOR 14 PRINT " EXIT"; COLOR 15, 1 PRINT " to return)" PRINT " 7) RETURN make"; COLOR 14 PRINT " RETURN "; COLOR 15, 1 PRINT " Address Labels" PRINT " 8) HELP what do I do?" PRINT " 9) QUIT "; COLOR 9 PRINT " 'Wizard's "; : COLOR 4 PRINT "MAGIC "; : COLOR 9 PRINT "Address Label Maker'": COLOR 15 PRINT DO WHILE (choice% < 1) OR (choice% > 9) INPUT " Choice (1-9): ", choice% 'get choice LOOP CLS 2 VIEW PRINT END SUB SUB help prntHelp$ = "prnthlp.txt" errorHelp$ = "error.txt" bHelp$ = "bhlp.txt" editHelp$ = "edithlp.txt" pick% = 0 OPEN prntHelp$ FOR APPEND AS #2: CLOSE #2 OPEN errorHelp$ FOR APPEND AS #3: CLOSE #3 OPEN bHelp$ FOR APPEND AS #4: CLOSE #4 OPEN editHelp$ FOR APPEND AS #5: CLOSE #5 LOCATE 24, 1 COLOR 1, 7 PRINT "Enter number between 1 and 6 and press ENTER: "; : COLOR 14, 1 PRINT " < WHAT to do next " 'status line LOCATE 4, 1 COLOR 14, 1 PRINT " FILE you are using /\ now WHERE /\ you are TIME /\ " PRINT " ADRESSES are stored here What you are doing Military" VIEW PRINT 6 TO 22 CLS 2 COLOR 15, 1 PRINT PRINT PRINT " Choose a Help file" PRINT 'choice PRINT " 1) XLBL help " PRINT " 2) Printer Help " PRINT " 3) Error Messages " PRINT " 4) Edit LABEL files " PRINT " 5) Print Help Files" PRINT " 6) End HELP " PRINT DO WHILE (pick% < 1) OR (pick% > 6) INPUT " Choice (1-6): ", pick% 'get choice LOOP IF pick% = 1 THEN OPEN bHelp$ FOR INPUT AS #4 CLS 2 DO WHILE NOT EOF(4) LINE INPUT #4, REC$ 'read entries from the file PRINT REC$ 'print the entries on the screen LOOP VIEW PRINT LOCATE 23, 1: COLOR 1, 7 PRINT INPUT " Press ENTER to continue... ", dummy$ VIEW PRINT CLOSE #4 help END IF IF pick% = 2 THEN OPEN prntHelp$ FOR INPUT AS #2 CLS 2 DO WHILE NOT EOF(2) LINE INPUT #2, REC$ 'read entries from the file PRINT REC$ 'print the entries on the screen LOOP CLOSE #2 VIEW PRINT LOCATE 23, 1: COLOR 1, 7 PRINT INPUT " Press ENTER to continue... ", dummy$ VIEW PRINT help END IF IF pick% = 3 THEN OPEN errorHelp$ FOR INPUT AS #3 CLS 2 DO WHILE (NOT EOF(3)) LINE INPUT #3, REC$ 'read entries from the file PRINT REC$ 'print the entries on the screen. LOOP CLOSE #3 VIEW PRINT LOCATE 23, 1: COLOR 1, 7 PRINT INPUT " Press ENTER to continue... ", dummy$ VIEW PRINT help END IF IF pick% = 4 THEN OPEN editHelp$ FOR INPUT AS #5 CLS 2 DO WHILE NOT EOF(5) LINE INPUT #5, REC$ 'read entries from the file PRINT REC$ 'print the entries on the screen LOOP CLOSE #5 VIEW PRINT LOCATE 23, 1: COLOR 1, 7 PRINT INPUT " Press ENTER to continue... ", dummy$ VIEW PRINT help END IF IF pick% = 5 THEN helPrint END IF IF pick% = 6 THEN CLS 2 'exit help END IF END SUB SUB helPrint FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% SOUND (2 * 1000), 7 'sound for CLS 2 PRINT prntHelp$ = "prnthlp.txt" errorHelp$ = "error.txt" qbHelp$ = "bhlp.txt" editHelp$ = "edithlp.txt" OPEN prntHelp$ FOR APPEND AS #2: CLOSE #2 OPEN errorHelp$ FOR APPEND AS #3: CLOSE #3 'check files OPEN qbHelp$ FOR APPEND AS #4: CLOSE #4 OPEN editHelp$ FOR APPEND AS #5: CLOSE #5 VIEW PRINT 5 TO 22 PRINT COLOR 14 PRINT " BE SURE REGULAR PAPER IS IN PRINTER!" PRINT 'printer warning PRINT COLOR 1, 7 COLOR 4 PRINT " PRINT HELP FILES? Y/N " VIEW PRINT LOCATE 24, 1: COLOR 1, 7 INPUT " Check printer then press Y to print N to quit...", ans$ IF ans$ = "Y" OR ans$ = "y" THEN OPEN prntHelp$ FOR INPUT AS #2 DO WHILE (NOT EOF(2)) INPUT #2, REC$ LPRINT REC$ 'print all help files LOOP CLOSE #2 OPEN errorHelp$ FOR INPUT AS #3 DO WHILE (NOT EOF(3)) INPUT #3, REC$ LPRINT REC$ LOOP CLOSE #3 OPEN qbHelp$ FOR INPUT AS #4 DO WHILE (NOT EOF(4)) INPUT #4, REC$ LPRINT REC$ LOOP CLOSE #4 OPEN editHelp$ FOR INPUT AS #5 DO WHILE (NOT EOF(5)) INPUT #5, REC$ LPRINT REC$ LOOP LPRINT CHR$(12) CLOSE #5 ELSE END IF END SUB SUB printRecords 'prints data in label format (single column) FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% SOUND (2 * 1000), 7 'sound for VIEW PRINT 5 TO 23 'print page COLOR 15, 1 PRINT PRINT PRINT " This option sends the contents of "; COLOR 14 PRINT filename$; COLOR 15 PRINT " to your printer." PRINT PRINT " This version of the ": COLOR 9 PRINT " 'Wizard's "; : COLOR 4 PRINT "MAGIC "; : COLOR 9 PRINT "Address Label Maker'": COLOR 15 PRINT " will only print single columns!" 'info PRINT PRINT " Name and address format!" PRINT PRINT " Make sure your printer is "; : COLOR 14 'user prompt PRINT "on." COLOR 15 PRINT PRINT " USE "; COLOR 14 PRINT "TEST.DB "; COLOR 15 PRINT "to check printer!" VIEW PRINT LOCATE 24, 1: COLOR 1, 7 PRINT "Enter "; : COLOR 4 'status line PRINT "P "; : COLOR 1 INPUT "to print or R to return to main menu: ", reply$ VIEW PRINT 5 TO 24 IF (reply$ = "P") OR (reply$ = "p") THEN 'print command OPEN filename$ FOR INPUT AS #1 DO WHILE (NOT EOF(1)) INPUT #1, name$, addres$, city$, state$, zip$ LPRINT LPRINT " "; name$ LPRINT " "; addres$ LPRINT " "; city$; ","; state$ LPRINT " "; zip$ LPRINT LOOP CLOSE #1 END IF COLOR 7 END SUB SUB prntrtadress 'prints data in label format (single column) FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% SOUND (2 * 1000), 7 'sound for CLS 2 VIEW PRINT LOCATE 24, 1: COLOR 1, 7 'status line PRINT " Number of Labels to be Printed... "; VIEW PRINT 5 TO 23 PRINT COLOR 15, 1 PRINT PRINT " How many RETURN Address Labels would you like to Print?" PRINT COLOR 14 INPUT " ... ", lblNum% 'prompt user COLOR 15, 1 PRINT " This option sends the contents of "; COLOR 3 PRINT filename$; COLOR 15 PRINT " to your printer"; COLOR 14 PRINT " "; lblNum%; COLOR 15, 1 PRINT " times." PRINT PRINT " This version of the ": COLOR 9 PRINT " 'Wizard's "; : COLOR 4 PRINT "MAGIC "; : COLOR 9 PRINT "Address Label Maker'": COLOR 15 PRINT " will only print single columns!" 'info PRINT " Name and address format!" PRINT PRINT " Make sure your printer is "; : COLOR 14 PRINT "ON." COLOR 15 PRINT PRINT " Use "; COLOR 14 PRINT "TEST.DB "; COLOR 15 PRINT "to check printer!" VIEW PRINT LOCATE 24, 1: COLOR 1, 7 PRINT "Enter "; : COLOR 4 PRINT "P "; : COLOR 1 INPUT "to print or R to return to main menu: ", reply$ IF (reply$ = "P") OR (reply$ = "p") THEN DO OPEN filename$ FOR INPUT AS #1 INPUT #1, name$, addres$, city$, state$, zip$ FOR i% = 1 TO lblNum% LPRINT 'print return LPRINT " "; name$ 'address labels LPRINT " "; addres$ LPRINT " "; city$; ","; state$ LPRINT " "; zip$ LPRINT NEXT i% CLOSE #1 LOOP WHILE lblNum% > i% END IF IF (reply$ <> "P") OR (reply$ <> "p") THEN 'exit SUB retchoice END IF END SUB SUB retchoice FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% COLOR 1, 7 VIEW PRINT LOCATE 3, 16: PRINT " ": LOCATE 3, 16: PRINT filename$ 'header info LOCATE 23, 1 COLOR 1, 7 PRINT PRINT " Enter number between 1 and 5 and press ENTER "'status line VIEW PRINT 5 TO 23 COLOR 15, 1 CLS 2 PRINT PRINT " Would you like to..." PRINT 'choice PRINT " 1) VIEW this Label " PRINT " 2) CHANGE this Label " PRINT " 3) PRINT this Label " PRINT " 4) ANOTHER change to Another Label" PRINT " 5) QUIT to SELECT " PRINT DO WHILE (pick% < 1) OR (pick% > 5) INPUT " Choice (1-5): ", pick% 'get choice LOOP IF pick% = 1 THEN CLS 2 'view return address rviewrec END IF IF pick% = 2 THEN 'change return address addretadres END IF IF pick% = 3 THEN 'print return address prntrtadress END IF IF pick% = 4 THEN returnaddress END IF IF pick% = 5 THEN CLS 2 'exit help filename$ = "Test.DB" OPEN filename$ FOR APPEND AS #1 CLOSE #1 END IF END SUB SUB returnaddress 'allows user to print return address labels FOR i% = 2 TO 6 SOUND (i% * 1000), 1 'sound NEXT i% COLOR 1, 7 VIEW PRINT LOCATE 3, 16: PRINT " "; filename$ 'Header info LOCATE 24, 1: PRINT " TYPE ' name?.LBL ' or Press ENTER... " VIEW PRINT 5 TO 23 COLOR 1, 7 CLS 2 OPEN filename$ FOR APPEND AS #1 CLOSE #1 COLOR 15, 1 CLS 2 PRINT PRINT " Use this option to create a new RETURN Address Label or open an existing one." PRINT PRINT PRINT " The current directory contains the following .LBL files:" PRINT 'view .LBL files FILES "*.LBL" PRINT PRINT " What Return Address Label would you print? " 'prompt for new PRINT " Press ENTER for default database file RETURN.LBL" PRINT : COLOR 14 PRINT PRINT " You Must use a Valid filename with a .LBL extention! " PRINT : COLOR 9 INPUT " Filename: ", filename$ COLOR 1, 7 IF (filename$ = "") THEN 'set default filename$ = "RETURN.LBL " 'database OPEN filename$ FOR APPEND AS #1 CLOSE #1 ELSE VIEW PRINT LOCATE 24, 1: COLOR 1, 7 PRINT "Enter New RETURN Address the press ENTER... "'status line VIEW PRINT 5 TO 23 COLOR 15, 1 filename$ = LTRIM$(RTRIM$(UCASE$(filename$))) END IF OPEN filename$ FOR APPEND AS #1 'make or check CLOSE #1 'file CLS 2 retchoice END SUB SUB rviewrec FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% VIEW PRINT COLOR 1, 7 LOCATE 3, 16: PRINT " ": LOCATE 3, 16: PRINT filename$ 'Header info LOCATE 24, 1 COLOR 1, 7 PRINT " Press ENTER to continue..... " VIEW PRINT 5 TO 23 COLOR 15, 1 PRINT PRINT " This option lets you view your"; PRINT " RETURN Address Label"; PRINT " before you Print it." PRINT OPEN filename$ FOR INPUT AS #1 DO WHILE (NOT EOF(1)) INPUT #1, name$, addres$, city$, state$, zip$ PRINT " "; name$ PRINT " "; addres$ 'show label PRINT " "; city$; ", "; state$ 'format PRINT " "; zip$ LOOP CLOSE #1 COLOR 14 PRINT PRINT " 'This is how your Label should look when Printed'" PRINT INPUT "", dummy$ CLS 2 retchoice END SUB SUB searcH 'allows user to search data for any string FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% num% = 0 'sets or resets found$ found% = 0 'and number$ to 0 LOCATE 24, 1: COLOR 1, 7 PRINT " Enter search category and content... " 'status line VIEW PRINT 5 TO 23 'open view COLOR 15, 1 PRINT PRINT PRINT " Select a search category:" PRINT PRINT PRINT " 1)Search for Name" 'choice display PRINT " 2)Search for City" PRINT " 3)Search for Zipcode" DO WHILE (num% < 1) OR (num% > 3) PRINT INPUT " Category (1-3): ", num% LOOP PRINT COLOR 9 INPUT " Enter data to be searched for: ", searchStr$ PRINT PRINT " Search results:" 'prompt user for choice PRINT OPEN filename$ FOR INPUT AS #1 DO WHILE (NOT EOF(1)) INPUT #1, name$, addres$, city$, state$, zip$ SELECT CASE num% CASE 1 IF INSTR(UCASE$(name$), UCASE$(searchStr$)) THEN 'compares strings found% = -1 COLOR 2 PRINT " Name: "; name$: COLOR 15 'changes choice color PRINT " "; addres$ PRINT " "; city$ 'search by name PRINT " "; state$ PRINT " "; zip$ INPUT "", dummy$ END IF CASE 2 IF INSTR(UCASE$(city$), UCASE$(searchStr$)) THEN found% = -1 COLOR 15 PRINT " "; name$ PRINT " "; addres$ COLOR 2 PRINT " City: "; city$: COLOR 15 'search by city PRINT " "; state$ PRINT " "; zip$ INPUT "", dummy$ END IF CASE 3 IF INSTR(UCASE$(zip$), UCASE$(searchStr$)) THEN found% = -1 COLOR 15, 1 PRINT " "; name$ PRINT " "; addres$ 'search by zipcode PRINT " "; city$ PRINT " "; state$ COLOR 2 PRINT " Zipcode: "; zip$: COLOR 15 INPUT "", dummy$ END IF END SELECT LOOP CLOSE #1 IF (NOT found%) THEN COLOR 2: PRINT " ", searchStr$; 'not found COLOR 7: PRINT " not found in "; filename$; " database." END IF VIEW PRINT COLOR 1, 7 LOCATE 24, 1: INPUT "Press ENTER to return to main menu...", dummy$ END SUB SUB viewrecords 'allows user to view files in label format FOR i% = 1 TO 5 SOUND (i% * 1000), 1 'sound NEXT i% LOCATE 15, 1: COLOR 14, 1 'status line PRINT " This is how your "; COLOR 15, 1 PRINT "Label "; COLOR 14, 1 PRINT "will appear when printed " LOCATE 24, 1: COLOR 1, 7 'status line PRINT " Press ENTER to continue... " VIEW PRINT 8 TO 12 COLOR 15, 1 PRINT PRINT OPEN filename$ FOR INPUT AS #1 DO WHILE (NOT EOF(1)) ' INPUT #1, name$, addres$, city$, state$, zip$ PRINT " "; name$ PRINT " "; addres$ PRINT " "; city$; ", "; state$ PRINT " "; zip$ INPUT "", dummy$ LOOP CLOSE #1 COLOR 14 PRINT PRINT PRINT " **End of file reached**" INPUT "", dummy$ END SUB