A NBASNBAMSAASAGNA  REM *********************** CZ REM * TM.ADDRESSES *OZ REM * BY ALEXANDER LAIRD *b`Z( REM * COPYRIGHT(C) 1989 *SZ2 REM * MINDCRAFT PUBL. CORP.* fZ< REM * CONCORD, MA 01742 *OZF REM *********************BZK]DX$ ="........................":D2$="..":D3$="....." : REM DX$=25 DOTS D2$=2 DOTS D3$=5 DOTS؜}9'IDX........................9 bD2..9) D3.....Z8%P GOTO 1410 #,  Z REM ENTER NAME & ADDRESSSZdREMZnMCLS: VTAB 3: PRINT"ADD A NEW NAME/ADDRESS TO FILE. THIS WILL BE RECORD #";R+1(o{ @SO @5ADD A NEW NAME/ADDRESS TO FILE. THIS WILL BE RECORD #? $x VTAB 5: PRINT "NAME ";:HTAB10:PRINTDX$: PRINT "STREET";:HTAB10:PRINTDX$: PRINT "CITY";:HTAB10:PRINT DX$:PRINT "STATE";:HTAB10:PRINT D2$: PRINT "ZIP";:HTAB10:PRINTD3$ɜ HS{ @S NAME / $@S DX S )STREET/ 9$@S @DX S J CITY/ X$@S _ DX S iSTATE/ x$@S  =D2 S ZIP/ $@S D3 (7 FOR F = 1 TO 5:A$(F) = "": NEXT : REM CLEAR LAST ENTRYmj'#E?@?9  MAGZ#@.Y VTAB 12: PRINT "DO NOT USE COMMAS, COLONS, OR": PRINT "QUOTATION MARKS IN YOUR ADDRESS."{ (@S% %DO NOT USE COMMAS, COLONS, OR S(1( QUOTATION MARKS IN YOUR ADDRESS. L VTAB 5:CT = 0: FOR F = 1 TO 5: REM GO BACK TO 1ST LINE & RESET CHAR COUNTERs,{ @9HCT'#?@?Z ,HTAB 8: INPUT "" ;F$*(91/  @2 F- IF F$ < > "" THEN A$(F) = F$4OK02)3F J9  ;ABF~O VTAB F + 4: HTAB 8: PRINT A$(F):CT = CT + LEN (A$(F)): REM CT= CHARACTER COUNT{ F@/  @S  NA` 9+!iCTqCT yAFZ8 NEXT : IF CT > (82 + 5) THEN VTAB 20: PRINT "ADDRESS TOTALS MORE THAN 82 CHARACTERS."; PRINT "RE-DO THE ENTRIES TO SHORTEN THEM,";: INPUT " TO RE-DO;";XX$: VTAB 20: GOTO 150$G0D|CTT@@{ 4@'82! TO RE-DO;XX{ 4@, 2n VTAB 20: INPUT " = ACCEPT.. R = RE-ENTER:";XX$: IF XX$ < > ""AND XX$ < > "R" AND XX$ < > "r" THEN 2009,R{ 4@20 -! = ACCEPT.. R = RE-ENTER:eXX0D95rXX XXR XXr , kky IF XX$ = "R" THEN VTAB 20:PRINT "PRESS ENTER TO ACCEPT EXISTING DATA": PRINT"OR ENTER CHANGES AND PRESS RETURN":GOTO 150^0x+XXR { 4@S++#PRESS ENTER TO ACCEPT EXISTING DATA S)H(!OR ENTER CHANGES AND PRESS RETURN , qv  RETURNbrem?Zrem?ZF : REM SAVE ADDRESS TO DISK: THE 'R1' RECORD CONTAINS THE RECORD COUNTH|ZCX - OPEN "ADDRESSES.DAT" FOR RANDOM AS #1 LEN=87=AN(, ADDRESSES.DAT?U@G9 FIELD #1,26 AS AA$,26 AS BB$,26 AS CC$,3 AS DD$,6 AS EE$L.%j8?:@AAA:@TBB:@gCC@zDD@EE?R= LOF(1): REM RECORD COUNT]]:)9 ?HZ ]"R=R+1&29 ?aD,OLSET AA$=A$(1):LSET BB$=A$(2): LSET CC$=A$(3): LSET DD$= A$(4): LSET EE$= A$(5)B!AA <A?BDBB _A@BgCC A@B/DD A@B@EE A@?46PUT #1,R$)#V?h0@CLOSE #1% ?(J RETURNbTrem?Z^rem?Zh : REM SETUPZ r HOME : VTAB2+{ @b|$ HTAB 10: PRINT "NIBBLE TINY MAILER"E/ $@S NIBBLE TINY MAILER }8]DX$ ="........................":D2$="..":D3$="....." : REM DX$=25 DOTS D2$=2 DOTS D3$=5 DOTS؜}9'IDX........................9 bD2..9) D3.....Z8%b PRINT : PRINT "THIS PROGRAM LETS YOU ENTER NAMES AND": PRINT "ADDRESSES INTO A RANDOM DISK FILE,"MS S- -%THIS PROGRAM LETS YOU ENTER NAMES AND S*8*"ADDRESSES INTO A RANDOM DISK FILE, }PRINT : PRINT "YOULL ENTER OR EDIT:": PRINT:PRINT " NAME:": PRINT " STREET:": PRINT " CITY:": PRINT " STATE:": PRINT " ZIP:"x_S SYOULL ENTER OR EDIT: S' S- NAME: S= STREET: SO CITY: S_ STATE: S p  ZIP: {h PRINT : PRINT "THEN YOULL HAVE THE CHANCE TO RE-ENTER": PRINT "AND CORRECT ANY MISTAKES BEFORE SAVING"BgS S/ /'THEN YOULL HAVE THE CHANCE TO RE-ENTER S.:.&AND CORRECT ANY MISTAKES BEFORE SAVING t6 PRINT "THE NAME AND ADDRESS TO THE DISK FlLE.": PRINTrRS..&THE NAME AND ADDRESS TO THE DISK FlLE. S1 REM CHECK WHETHER FILE EXISTSypZrem?ZREM VERIFY ("ADDRESSES")JZ- OPEN "ADDRESSES.DAT" FOR RANDOM AS #1 LEN=87=AN(, ADDRESSES.DAT?U@GR= LOF(1): REM RECORD COUNT]]:)9 ?HZ ]CLOSE #1% ?(1PRINT "THERE ARE CURRENTLY ";R;" RECORDS ON FILE">)Q4S81THERE ARE CURRENTLY  RECORDS ON FILE [6IF PG$="P" or PG$="p"or PG$="E" or PG$="e" THEN RETURNqd0K6[)PGP 9PGp IPGE PGe cb0+PRINT: INPUT"PRESS RETURN TO CONTINUE:";XX$4LCS 2($PRESS RETURN TO CONTINUE:XXREM ***********}Z&REM ADD RECORD MAINSTREAMsSZ0 GOSUB 110: REM ENTER ADDRESSVk++  nZ W : GOSUB 260: REM SAVE ADDRESSh++  Z D{ HOME : VTAB 10: INPUT " = ENTER ANOTHER... E = END:";XX$: IF XX$ < > "" AND XX$ < > "E" AND XX$ < > "e" THEN 580Wh^{ $@241% = ENTER ANOTHER... E = END:qXX0DE6~XX XXE XXe , xDxFuN>IF XX$ = "E" OR XX$="e" THEN PRINT "END OF ADDRESS ENTRY": ENDh0O>;)XXE XXe gSEND OF ADDRESS ENTRY ;әX GOTO 560: REM ENTER ANOTHERKe+, 0Z 6bREM ************Zl REM RETRIEVE ADDRESS BY RECORD #}Z @v- OPEN "ADDRESSES.DAT" FOR RANDOM AS #1 LEN=87=AN(, ADDRESSES.DAT?U@G9 FIELD #1,26 AS AA$,26 AS BB$,26 AS CC$,3 AS DD$,6 AS EE$L.%j8?:@AAA:@TBB:@gCC@zDD@EE? GET #1,N)#)? -9 A$(1)= AA$: A$(2)= BB$: A$(3)=CC$: A$(4)= DD$: A$(5)=EE$j89  -A?@AA9  SA@fBB9  yA@CC9$  A@DD90  A@EE8CLOSE #1% ?(RETURNbREM *************ZREM RETRIEVE BY NAMEp2ZD- OPEN "ADDRESSES.DAT" FOR RANDOM AS #1 LEN=87=AN(, ADDRESSES.DAT?U@G9 FIELD #1,26 AS AA$,26 AS BB$,26 AS CC$,3 AS DD$,6 AS EE$L.%j8?:@AAA:@TBB:@gCC@zDD@EE?NN= LOF(1): FOR I=1TO NNC_,9 =NN?H'" L?NN?@ GET #1,I)#)?U,9 A$(1)= AA$: A$(2)= BB$: A$(3)=CC$: A$(4)= DD$: A$(5)=EE$j89  -A?@AA9  SA@fBB9  yA@CC9$  A@DD90  A@EE8$IF LEFT$(A$(1),L)= N$ THEN N=I: I=NNt20[$D -A?9 ENN s9T d9 jNNyNEXT IGt CLOSE #1% ?(RETURNb REM *************************BZ*REM EDIT MAINSTREAM[0Z/4bCLS: PRINT "THE EDIT PROGRAM LETS YOU EDIT NAMES AND": PRINT "ADDRESSES IN YOUR RANDOM DISK FILE."qS00(THE EDIT PROGRAM LETS YOU EDIT NAMES AND S+7+#ADDRESSES IN YOUR RANDOM DISK FILE. >PRINT : PRINT "YOULL RETRIEVE AN ADDRESS RECORD BY": PRINT "ITS RECORD NUMBER OR BY THE NAME OF THE": PRINT "PERSON. THEN YOU CAN CHANGE ANY ITEM"H S S,,$YOULL RETRIEVE AN ADDRESS RECORD BY S/6/'ITS RECORD NUMBER OR BY THE NAME OF THE S,g,$PERSON. THEN YOU CAN CHANGE ANY ITEM t HsPRINT "IN THE ADDRESS AND WRITE THE CORRECTED": PRINT "ADDRESS BACK INTO ITS PROPER POSITION": PRINT "IN THE FILE."S..&IN THE ADDRESS AND WRITE THE CORRECTED S-0-%ADDRESS BACK INTO ITS PROPER POSITION S_ IN THE FILE. .aRgPRINT : PRINT "YOULL ALSO HAVE THE CHANCE TO RE-ENTER": PRINT "AND CORRECT ANY MISTAKES BEFORE SAVING"OS S//'YOULL ALSO HAVE THE CHANCE TO RE-ENTER S.9.&AND CORRECT ANY MISTAKES BEFORE SAVING Hr\5PRINT "THE NAME AND ADDRESS TO THE DISK FlLE.": PRINT)eRS..&THE NAME AND ADDRESS TO THE DISK FlLE. S0 $ f/INPUT"PRESS ENTER TO CONTINUE :";XX$: GOTO 1080SI82($PRESS ENTER TO CONTINUE :XX, & 8+9pREM *****************"ZYz" : REM SAVE EDITED ADDRESS TO DISKZd- OPEN "ADDRESSES.DAT" FOR RANDOM AS #1 LEN=87=AN(, ADDRESSES.DAT?U@G9 FIELD #1,26 AS AA$,26 AS BB$,26 AS CC$,3 AS DD$,6 AS EE$L.%j8?:@AAA:@TBB:@gCC@zDD@EE?OLSET AA$=A$(1):LSET BB$=A$(2): LSET CC$=A$(3): LSET DD$= A$(4): LSET EE$= A$(5)B!AA <A?BDBB _A@BgCC A@B/DD A@B@EE A@?4PUT #1,N)#V? /CLOSE #1% ?( RETURNbREM ********************-ZREM EDIT THE RETRIEVED RECORD*oZCLS:VTAB3: PRINT "RECORD #";N: VTAB5:PRINT"NAME";:HTAB10:PRINTA$(1):PRINT"STREET";:HTAB10:PRINTA$(2):PRINT"CITY";:HTAB10:PRINTA$(3):PRINT"STATE";:HTAB10:PRINTA$(4):PRINT"ZIP";:HTAB10:PRINTA$(5)XB{ @S RECORD # { @S % NAME/ 2$@S9  A? S DSTREET/ S$@SZ  A@ S e CITY/ r$@Sy  ZA@ S STATE/ $@S  A@ S ZIP/ $@S  A@ XUL VTAB 5:CT = 0: FOR F = 1 TO 5: REM GO BACK TO 1ST LINE & RESET CHAR COUNTERs,{ @9HCT'#?@?Z ,HTAB 8: INPUT "" ;F$*(91/  @2 F- IF F$ < > "" THEN A$(F) = F$4OK02)3F J9  ;ABF~NVTAB F + 4: HTAB 8: PRINT A$(F):CT = CT + LEN (A$(F)): REM CT= CHARACTER COUNT{ F@/  @S  NA` 9+ iCTqCT yAFZ7 NEXT : IF CT > (82 + 5) THEN VTAB 20: PRINT "ADDRESS TOTALS MORE THAN 82 CHARACTERS."; PRINT "RE-DO THE ENTRIES TO SHORTEN THEM,";: INPUT " TO RE-DO;";XX$: VTAB 20: GOTO 150$G0D|CTT@@{ 4@'82! TO RE-DO;XX{ 4@, 2n VTAB 20: INPUT " = ACCEPT.. R = RE-ENTER:";XX$: IF XX$ < > ""AND XX$ < > "R" AND XX$ < > "r" THEN 2009,R{ 4@20 -! = ACCEPT.. R = RE-ENTER:eXX0D95rXX XXR XXr , kky IF XX$ = "R" THEN VTAB 20:PRINT "PRESS ENTER TO ACCEPT EXISTING DATA": PRINT"OR ENTER CHANGES AND PRESS RETURN":GOTO 990d0x+XXR { 4@S++#PRESS ENTER TO ACCEPT EXISTING DATA S)H(!OR ENTER CHANGES AND PRESS RETURN , qv^ $RETURNb.REM *****************"ZY8REM MAIN CONTROL LOOP:ZY9GOSUB470: REM GET RECORD COUNTt++ Z b*BHOME : VTAB 8: PRINT "ENTER: RECORD #(1-";R;") OR ": PRINT "NAME (FULL OR PARTIAL) OR": PRINT "Q TO QUIT": PRINT:INPUT "ENTER: ";N$:N = VAL (N$): IF LEN(N$) = 0 THEN 1090 L{  @S+$ENTER: RECORD #(1-) OR S!5!NAME (FULL OR PARTIAL) OR SX Q TO QUIT Sk 2qENTER: N9  N00 NF , BL/IF N$ = "Q" OR N$ = "q" THEN 1170: REM TEST ENDlTB0;/9(NQ Nq S, Z# V|IF N > 0 AND N > R THEN PRINT "THAT RECORD NUMBER IS LARGER THAN THE": INPUT "FILE CONTENTS. PRESS :";XX$: GOTO 1090E0|;+ 0 S--%THAT RECORD NUMBER IS LARGER THAN THE 2-G*FILE CONTENTS. PRESS :XX, s Bx `6IF N > 0 THEN GOSUB 630: GOTO 1140: REM RETRIEVE REC #"XZ60A6- Y+  vH,  tZ$vjMIF N = 0 THEN L = LEN (N$): GOSUB 700: IF N > 0 THEN 1150: REM SEARCH ON NAMEUD0}M-7  9 = iNF+  "0/'&{ , 5~5Z;tnIF N = 0 THEN PRINT : PRINT "A NAME MATCH WAS NOT FOUND.": INPUT "PRESS TO TRY AGAIN:";XX$: GOTO 10900n-  S S##A NAME MATCH WAS NOT FOUND. 2+;(PRESS TO TRY AGAIN:XX, e Bj8~GOSUB980: REM EDIT ADDRESSV++ Z )GOSUB890: REM SAVE ADDRESSxV++ zZ  HOME :VTAB 10:INPUT " = ENTER ANOTHER EDIT... A= ADD A NEW RECORD... E = END:" ;XX$: IF XX$ < >"" AND XX$ < > "E" AND XX$ < > "e" AND XX$<>"A" AND XX$<>"a" THEN 1170 y{ $@2OM@ = ENTER ANOTHER EDIT... A= ADD A NEW RECORD... E = END:XX0d]PXX XXE XXe XXA XXa , 4IF XX$="A" OR XX$="a" THEN 540: REM GO TO ADD RECORDCVD0=4;)XXA XXa U, Z BIF XX$ = "E" or XX$="e"THEN PRINT "END OF ADDRESS EDIT":HOME : ENDeo0VB;)XXE XXe nSEND OF ADDRESS EDIT 8?ЕGOTO 1090: REM ENTER ANOTHERd+, BZ 0REM *************ZREM PRINT LABELS OR LISTKZ OPEN PRINTER[ u  FOR I=1TONN\;'" (?NN?<IF LA$="1"THEN X=1:FOR F=1TO5: LPRINT P$(I,F):NEXT F: LPRINT0<+5LA1 9N?'# z?@? P G.6 U<IF LA$="2"THEN X=1:FOR F=1TO5: LPRINT P$(I,F);:NEXT F:LPRINT0<+5LA2 9N?'# z?@? PG/6 MNEXT IGt CLOSE PRINTER ( RETURNbREM *****************"ZY  REM MAIL LISTZ ,GOSUB 470:DIM P$(R+1,5):REM GET RECORD COUNTtW++ $ 3P?@Z:PRINT"YOU CAN PRINT TO PRESSSURE SENSITIVE 1-UP LABELS... OR AS A LIST":PRINT "1= LABELS":PRINT"2= LIST":INPUT"SELECT 1 OR 2:";LA$ SHG@YOU CAN PRINT TO PRESSSURE SENSITIVE 1-UP LABELS... OR AS A LIST SH 1= LABELS SZ2= LIST 2iSELECT 1 OR 2:LA" (,OPEN "ADDRESSES.DAT" FOR RANDOM AS #1 LEN=87GAN(, ADDRESSES.DAT?U@429 FIELD #1,26 AS AA$,26 AS BB$,26 AS CC$,3 AS DD$,6 AS EE$L.%j8?:@AAA:@TBB:@gCC@zDD@EE?<NN= LOF(1): FOR I=1TO NNC_,9 =NN?H'" L?NN?@F GET #1,I)#)?U,PC P$(I,1)= AA$: P$(I,2)= BB$: P$(I,3)=CC$: P$(I,4)= DD$: P$(I,5)=EE$9$  "P3?FAA9$  NP_@rBB9$  zP@CC9$*  P@DD9$8  P@EEZNEXT IGtdCLOSE #1% ?(nGOSUB 1210: REM PRINTY6++ Z &xPRINT"END":END1,S END  (CLS: PRINT" THE TINY MAILER LETS YOU CREATE A MAILING LIST FILE,":PRINT"MAINTAIN/EDIT IT, AND PRINT LABELS.":PRINT:PRINT"SELECT YOUR OPTION:"F S=<5 THE TINY MAILER LETS YOU CREATE A MAILING LIST FILE, S+B*#MAINTAIN/EDIT IT, AND PRINT LABELS. Sm SsSELECT YOUR OPTION: ) XPRINT "A)DD NEW RECORDS":PRINT"E)DIT RECORDS IN THE FILE.":PRINT"P)RINT MAILING LABELS."0SA)DD NEW RECORDS S"!E)DIT RECORDS IN THE FILE. S;P)RINT MAILING LABELS. 7PRINT: INPUT"SELECT A)DD E)DIT P)RINT LABELS:";PG$`XOS 240%SELECT A)DD E)DIT P)RINT LABELS:PGsLIF PG$="A" OR PG$="a"THEN 370\ND05;)PGA PGa M, rIF PG$="E" OR PG$="e"THEN 1080aND05;)PGE PGe M, 8IF PG$="P" OR PG$="p"THEN 1280*cND05;)PGP PGp M, GOTO1420(#, 0