1000 ' Program to create form letters and mailing lables 1010 CLS 1020 PRINT "----------------------------------------------" 1030 PRINT " " 1040 PRINT " MAIL - program to create form letters and mailing labels " 1050 PRINT " " 1060 PRINT " This program reads from a list of names, addresses and filenames" 1070 PRINT " to produce form letters. Alternately the program will read the" 1080 PRINT " same input file to produce mailing labels to go with the letters." 1090 PRINT " A sample input file, MAIL.TXT is included with the initial " 1100 PRINT " release of this program." 1110 PRINT " " 1120 PRINT " If you find this program or other texttools from RPSoft" 1130 PRINT " useful, a suggested donation of $25 to RPSoft, 1271 Palamos," 1140 PRINT " Sunnyvale, CA 94086 would be appreciated. Permission is" 1150 PRINT " granted to copy this program as long as this header is" 1160 PRINT " not removed." 1170 PRINT " " 1180 PRINT " Copyright 1983 by RPSoft" 1190 PRINT " " 1200 PRINT "----------------------------------------------" 1210 PRINT " " 1220 INPUT "enter input filename - ";FIN$ 1230 INPUT "select letter or mailing label mode (l or m) - ";MD$ 1240 INPUT "enter column for margin - ";MAR:IF MAR=0 THEN MAR=1 1250 OPEN "I",#1,FIN$ 1260 OPEN "O",#3,"lpt1:" 1270 ' 1280 ' read input file 1290 ' 1300 IF EOF(1) THEN STOP 1310 LL$=L$ 1320 LINE INPUT #1,L$:GOSUB 1580 1330 IF MID$(L$,1,1)="." THEN 1380 ' command line found 1340 PRINT#3,TAB(MAR);L$:NL=NL+1:GOTO 1300 1350 ' 1360 ' parce commands and process if necessary 1370 ' 1380 IF MD$="m" THEN GOTO 1530 ' mailing label option selected 1390 IF MID$(L$,1,4)<>".use" THEN 1300 1400 FMRG$=MID$(L$,6,LEN(L$)-5) 1410 IF LEN(FMRG$)=0 THEN PRINT "error in specifing .use file":GOTO 1300 1420 IF MID$(FMRG$,1,1)=" " THEN FMRG$=MID$(FMRG$,2,LEN(FMRG$)-1):GOTO 1420 1430 CLOSE#2 1440 OPEN "I",#2,FMRG$ 1450 IF EOF(2) THEN 1300 1460 LINE INPUT #2,L$:GOSUB 1580 1470 IF MID$(L$,1,3)=".bp" THEN PRINT #3,CHR$(12):GOTO 1450 1480 PRINT#3,TAB(MAR);L$ 1490 GOTO 1450 1500 ' 1510 ' put spaces between mailing addresses 1520 ' 1530 IF MID$(LL$,1,1)=MID$(L$,1,1) THEN 1300 ' skip duplicate commands 1540 FOR J=NL+1 TO 6 1550 PRINT#3," ":NEXT J:NL=0:GOTO 1300 1560 ' 1570 ' remove tabs 1580 P0=INSTR(1,L$,CHR$(9)) : IF P0=0 THEN RETURN 1590 NIN=9-(P0 MOD 8):L$=MID$(L$,1,P0-1)+STRING$(NIN," ")+MID$(L$,P0+1,LEN(L$)) 1600 GOTO 1580 ' any more tabs ? EN RETURN 1590 NIN=9-(P0 MOD 8):L$=MID$(L$,1