5 REM"ADDR v1.6 02/14/85, 73146,2627" 6 CLS:PRINT@90,"ADDRESS PROCESSOR, v1.5":PRINT@210,"BY MARTIN HUYETT":PRINT@135,"12/08/84":CLEAR 3000 7 MAXFILES=2:DIM F$(100,10):FOR I=0 TO 100:F$(I,1)="XX":NEXT I 10 GOSUB 300 15 CLOSE #1:CLOSE #2:MENU 20 CLS:REM"ADDR ENTRY" 30 A$="NAME: ":GOSUB 1500 47 IF A=0 THEN RETURN 50 F$(B,1)=B$ 60 REM"GET ST & #" 65 A$="STREET & NUMBER: ":GOSUB 1500 72 IF A=0 THEN RETURN 75 F$(B,2)=B$ 80 REM"GET CITY" 85 A$="CITY ONLY: ":GOSUB 1500 92 IF A=0 THEN RETURN 95 F$(B,3)=B$ 100 REM"GET STATE" 105 A$="STATE: ":GOSUB 1500 112 IF A=0 THEN RETURN 115 F$(B,4)=B$ 125 A$="ZIP: ":GOSUB 1500 132 IF A=0 THEN RETURN 135 F$(B,5)=B$ 140 REM"GET CNTRY" 145 A$="COUNTRY: ":GOSUB 1500:IF A=0 THEN RETURN 155 F$(B,6)=B$ 160 REM"GET SALUTA" 165 A$="SALUTATION: ":GOSUB 1500:IF A=0 THEN RETURN 175 F$(B,7)=B$ 180 REM"GET PH #" 185 A$="PHONE, AREA + #: ":GOSUB 1500:IF A=0 THEN RETURN 200 F$(B,8)=B$ 210 REM"GET CODES" 215 A$="SELECTION CODES (4): ":GOSUB 1500:IF A=0 THEN RETURN 225 F$(B,9)=B$ 227 REM 228 REM"DISPLAY RECORD" 229 REM 230 CLS:PRINT"RECORD JUST ENTERED:":PRINT:GOSUB 233:GOTO 260 233 PRINT F$(B,1);TAB(25);F$(B,7):PRINT F$(B,2);TAB(25);F$(B,8) 234 PRINT F$(B,3);", ";F$(B,4);" ";F$(B,5);TAB(25);F$(B,9):PRINT F$(B,6):PRINT:RETURN 260 INPUT"IS IT OK? (ENTER/n): ";C$:IF C$="n" THEN GOTO 30 270 RETURN 299 REM 300 REM"MAIN LOOP" 301 REM 305 CLS:GOSUB 1480 320 IF A=1 THEN GOSUB 500 325 IF A=2 THEN GOSUB 700 330 IF A=4 THEN MENU 350 IF A=3 THEN GOSUB 6300 355 IF A=0 THEN RETURN 357 IF A=10 THEN GOSUB 4500 360 GOTO 300 399 REM 400 REM"OPENS F$ WITH TITLE RECORD" 401 REM 405 GOSUB 6700 410 INPUT"OUTPUT FILE :";F$:IF F$="00" THEN A=100:RETURN 415 F$(0,2)=F$:F$(0,3)=DATE$:F$(0,4)=TIME$:GOSUB 5010 420 FOR J=1 TO 10:PRINT#1,F$(0,J):NEXT J:GOSUB 5015:RETURN 449 REM 450 REM"APPENDS RECORD IN F$(1,J) TO F$" 451 REM 455 GOSUB 5012:FOR J=1 TO 10:PRINT#1,F$(1,J):NEXT J 460 GOSUB 5015:RETURN 497 REM 498 REM"CALL ADDR ENTRY" 499 REM 500 GOSUB 400:CLS:B=1 501 IF A=100 THEN RETURN 502 GOSUB 20:GOSUB 450:CLS:IF C$="n" THEN CLS 512 PRINT"WHAT DO YOU WANT TO DO?":PRINT 514 PRINT"1=EXIT PROGRAM":PRINT"2=GET NEW ADDRESS":PRINT"3=RETURN TO MENU":PRINT 518 INPUT"TYPE YOUR CHOICE: ";A:IF A=3 THEN A=100:RETURN 530 GOTO 502 599 REM 600 REM"REV & CHNG FILENAME" 601 REM 605 GOSUB 6700:INPUT"INPUT FILE :";F1$:IF F1$="00" THEN A=100:RETURN 610 INPUT"OUTPUT FILE :";F$:IF F$="00" THEN A=100:RETURN 615 GOSUB 4600:RETURN 699 REM 700 REM "EDIT LOOP" 701 REM 705 CLS:PRINT"EDIT OPTIONS:":PRINT:PRINT"1=REVIEW":PRINT"2=CHANGE":PRINT"3=ADD":PRINT"4=TOP MENU":PRINT 720 INPUT"TYPE YOUR CHOICE: ";A 730 ON A GOSUB 800,6000,900,770 740 IF A=100 THEN RETURN 760 GOTO 705 770 A=100:RETURN 799 REM 800 REM"REVIEW F$(I,J)" 801 REM 805 GOSUB 6700:INPUT"REVIEW FILE :";F1$:IF F1$="00" THEN GOTO 830 807 GOSUB 4600:B=0 810 A=0:CLS:PRINT:PRINT"'n' FOR NEXT ADDR":PRINT"'#' FOR SPECIFIC ADDR":PRINT"'00' FOR EDIT MENU":PRINT 812 INPUT "TYPE CHOICE";C$ 815 IF C$="n" THEN I=B+1:GOSUB 850 817 IF A=50 THEN GOTO 810 820 IF C$="00" THEN RETURN 825 I=VAL(C$):GOSUB 850:GOTO 810 830 A=100:RETURN 849 REM 850 REM"DISPLAY F$(I,J)" 851 REM 855 CLS:PRINT"ADDRESS # ";I;TAB(30);F$(0,2) 860 PRINT:B=I:GOSUB 233 870 B=I:A=50:INPUT"HIT 'RETURN KEY' TO CONTINUE";C$:RETURN 899 REM 900 REM"NEW ENTRIES" 901 REM 910 B=1:GOSUB 6700:INPUT"APPEND FILE :";F$:IF F$="00" THEN A=100:RETURN 915 GOSUB 20:GOSUB 450 920 INPUT"ANOTHER ADDRESS(y/n)? ";C$:IF C$="y" THEN: GOTO 915 925 RETURN 1479 REM 1480 REM"MAIN MENU" 1481 REM 1485 PRINT"ADDRESS LIST OPTIONS":PRINT:PRINT"1=BUILD NEW LIST":PRINT"2=EDIT EXISTING LIST":PRINT"3=PRINT":PRINT"4=EXIT PROGRAM":PRINT 1495 INPUT"TYPE CHOICE ";A:RETURN 1499 REM 1500 REM"STRING DATA INPUT FOR BUILD" 1501 REM 1504 CLS:B$=" ":PRINT"ADDR # ";B:PRINT:PRINT A$:INPUT B$:PRINT 1515 INPUT"CORRECT? (ENTER/n/'bye'): ";C$:IF C$="n" THEN GOTO 1500 1522 IF C$="bye" THEN A=0 1525 CLS:RETURN 4499 REM 4500 REM"SAVE IN RAM" 4501 REM 4505 GOSUB 6700 4510 INPUT"OUTPUT FILE :";F$:IF F$="00" THEN A=100:RETURN 4525 F$(0,2)=F$:CLS:PRINT@90,"WRITING ";F$;" TO RAM":GOSUB 5010:FOR I=0 TO 100:FOR J=1 TO 10:PRINT #1,F$(I,J):NEXT J:IF F$((I+1),1)="XX" THEN GOTO 4550 4530 NEXT I 4550 GOSUB 5015:RETURN 4599 REM 4600 REM"READS F1$ FROM I/O INTO F$(I,J)" 4601 REM 4605 CLS:GOSUB 5020:FOR J=1 TO 10:INPUT #2,F$(0,J):NEXT J:PRINT@90,"READING ";F$(0,2) 4620 FOR I=1 TO 100:FOR J=1 TO 10:INPUT #2,F$(I,J):IF EOF(2) THEN GOSUB 5025:RETURN 4625 NEXT J:NEXT I 4999 REM 5000 REM"UTILITIES" 5001 REM 5010 OPEN F$ FOR OUTPUT AS #1:RETURN 5012 OPEN F$ FOR APPEND AS #1:RETURN 5015 CLOSE #1:RETURN 5020 OPEN F1$ FOR INPUT AS #2:RETURN 5025 CLOSE #2:RETURN 5999 REM 6000 REM"REVIEW & EDIT LOOP" 6001 REM 6005 GOSUB 600:IF A=100 THEN RETURN 6010 CLS:PRINT"REVIEW & EDIT";TAB(30);F$(0,2):INPUT "TYPE ADDRESS #: ";I:GOSUB 850 6020 CLS:PRINT:PRINT"1=DELETE":PRINT"2=DELETE & REPLACE":PRINT"3=NO CHANGE":PRINT:INPUT"TYPE CHOICE" ;A 6030 ON A GOSUB 6100,6200,6090 6032 CLS:INPUT"SAVE ON TAPE? (y/n): ";C$:IF C$="y" THEN GOSUB 6050 6040 RETURN 6050 GOSUB 4525:A=100:RETURN 6090 RETURN 6099 REM 6100 REM"delete & exit" 6101 REM 6105 FOR J=1 TO 9:F$(I,J)="0":NEXT J:RETURN 6199 REM 6200 REM"DELETE AND REPLACE" 6201 REM 6205 GOSUB 6100:B=I:GOSUB 20:A=0:RETURN 6299 REM 6300 REM"PRINT LOOP" 6301 REM 6302 GOSUB 6700:INPUT"PRINT FILE :";F1$:IF F1$="00" THEN GOTO 830 6305 GOSUB 4600:CLS:PRINT"PRINT OPTIONS:":PRINT:PRINT"1=PRINT LIST":PRINT"2=PRINT LABLES":PRINT"3=EXIT":PRINT:INPUT"TYPE CHOICE: ";C 6320 ON C GOSUB 6400,6400,6350 6325 IF A=100 THEN RETURN 6330 GOTO 6305 6350 A=100:RETURN 6399 REM 6400 REM"PRINT" 6401 REM 6402 CLS:IF C=1 THEN PRINT"LIST PRINT":IF C=2 THEN PRINT"LABLE PRINT" 6405 PRINT:INPUT"IS PAPER READY? (y/n/bye): ";C$:IF C$="bye" THEN A=100:RETURN 6415 IF C$<>"y" THEN GOTO 6405 6420 CLS:INPUT"STARTING ADDR #: ";I:INPUT"ENDING ADDR #: ";I1:INPUT"CORRECT? (y/n/bye): ";C$ 6430 IF C$="bye" THEN GOTO 6410 6435 IF C$<>"y" THEN GOTO 6420 6440 B=5:ON C GOSUB 6500,6600 6445 A=10:RETURN 6499 REM 6500 REM"LIST" 6501 REM 6505 LPRINT TAB(10);"LISTING OF ";F1$;" ";DATE$;" ";TIME$:LPRINT" ":GOSUB 6590:GOSUB 6590 6510 IF F$(I,1)="0" THEN I=I+1:IF I<=I1 THEN GOTO 6510 6515 LPRINT"#";I;TAB(5);F$(I,1);TAB(40);"#";I+1;TAB(45);F$((I+1),1):GOSUB 6590 6520 FOR J=2 TO 10:LPRINT TAB(5);F$(I,J);TAB(45);F$(I+1,J):GOSUB 6590:NEXT J 6535 LPRINT" ":GOSUB 6590:LPRINT" ":GOSUB 6590:I=I+2:IF I<(I1+2) AND B<61 THEN GOTO 6515 6545 FOR A=1 TO 4:LPRINT" ":GOSUB 6590:NEXTA:B=5:IF I>I1 THEN GOTO 830 6550 CLS:INPUT"CONTINUE PRINTING? (y/n) ";C$ 6555 IF C$<>"n" THEN GOTO 6505 6560 IF C$="bye" THEN GOTO 830 6590 B=B+1:RETURN 6599 REM 6600 REM"LABLE" 6601 REM 6602 IF F$(I,1)="0" THEN I=I+1:IF I<=I1 THEN GOTO 6600 6603 FOR I=I TO I1:LPRINT TAB(5);F$(I,1):LPRINT TAB(5);F$(I,2) 6610 LPRINT TAB(5);F$(I,3);", ";F$(I,4);" ";F$(I,5):LPRINT TAB(5);F$(I,6) 6625 FOR A=1 TO F:LPRINTCHR$(10):NEXT A:NEXT I:RETURN 6700 CLS:FILES:PRINT:PRINT"TYPE 00 FOR MENU":PRINT:RETURN