1 REM ENVELOPE
5 CLEAR 1000
10 CLS
20 PRINT TAB(15); "ENVELOPE WRITING PROGRAM"
30 PRINT"THIS PROGRAM WILL GENERATE A PRINTED ENVELOPE ON A LINE
35 PRINT "PRINTER. UNLESS TRACTOR FED ENVELOPES ARE AVAILABLE A FRICTION
40 PRINT"FEED PRINTER MUST BE HOOKED UP TO THE SYSTEM. THE USER
45 PRINT"INPUTS A RETURN ADDRESS,AN ADDRESS, THE LENGTH OF THE ENVELOPE 
50 PRINT"IN LINES(6 LINES TO THE INCH), AND NUMBER OF COPIES. MANY
55 PRINT"OF THE INPUT VALUES MAY BE REPEATED ON SEVERAL ENVELOPES
60 PRINT"WITHOUT ADDITIONAL INPUT.
90 PRINT:INPUT"PRESS ENTER TO BEGIN";Z9$
190 GOSUB 600
195 GOTO 1000
200 CLS
210 INPUT"ENTER # OF TYPED LINES WHICH CAN FIT ON ENVELOPE";N
215 IF N<>INT(N) OR N<=0 THEN GOSUB 10000:GOTO 210
220 REM INPUT OF RETURN ADDRESS
222 PRINT"NO COMMAS IN THE FOLLOWING, PLEASE.":PRINT
225 CLS
226 PRINT"NO COMMAS IN THE FOLLOWING, PLEASE.":PRINT
227 FOR I=1 TO 4
230 PRINT"ENTER LINE #";I;" OF RETURN ADDRESS(-1 FOR EMPTY)"
240 INPUT L$(I+1)
245 IF L$(I+1)="-1" THEN L$(I+1)=" "
250 NEXT I
290 RETURN
300 REM ENTER MAIL TO ADDRESS
305 PRINT
307 CLS
308 PRINT"NO COMMAS IN THE FOLLOWING, PLEASE.":PRINT
310 FOR I=1 TO 4
320 PRINT"ENTER LINE #";I;" OF MAIL TO ADDRESS(-1 FOR EMPTY)"
330 INPUT L$(I+8)
340 IF L$(I+8)="-1" THEN L$(I+8)=" "
350 NEXT I
390 RETURN
400 REM PRINT ENVELOPE ON SCREEN
410 CLS
420 FOR I=1 TO 12:PRINT TAB(T(I)); L$(I):NEXT
430 PRINT:GOSUB 10100
490 RETURN
500 REM PRINT ENVELOPE ON PRINTER
505 CLS:INPUT"HOW MANY ENVELOPES DO YOU DESIRE";K
510 FOR JE=1 TO K
520 FOR I=1 TO N:LPRINT TAB(T(I)); L$(I):NEXT
530 GOSUB 10100
540 PRINT
550 NEXT
590 RETURN
600 REM NEW DATA
610 CLEAR 1000
620 DIM L$(100):DIM T(30)
625 FOR I = 1 TO 30:T(I)=1:NEXT
630 FOR I=1 TO 5:T(I)=2:NEXT
640 FOR I=7 TO 12:T(I)=30:NEXT
650 N=22:REM LENGTH OF ENVELOPE IN PRINTED LINES
655 FOR I = 1 TO 100:L$(I)="":NEXT
660 FOR I=1 TO 25:L$(I)=" ":NEXT
690 GOTO 1000
700 REM CHANGE PRINT TABS
710 CLS
720 PRINT"PRESENT RETURN ADDRESS TAB = ";T(3)
730 INPUT"NEW RETURN ADDRESS TAB";T(3)
735 FOR I=1 TO 5:T(I)=T(3):NEXT
740 PRINT
750 PRINT"PRESENT MAIL-TO ADDRESS TAB = ";T(10)
760 INPUT"NEW MAIL-TO TO ADDRESS TAB";T(10)
770 FOR I=7 TO 12:T(I)=T(10):NEXT
780 RETURN
800 CLS:PRINT"PRESENT NUMBER OF ENVELOPE LINES = ";N
810 PRINT:INPUT"NEW NUMBER OF LINES ";N
815 IF N<>INT(N) OR N<=0 THEN GOSUB 10000:GOTO 810
820 RETURN
1000 CLS:PRINT TAB(15); "MENU":PRINT
1005 PRINT "0. QUIT
1010 PRINT "1. INPUT RETURN ADDRESS
1020 PRINT "2. INPUT MAIL TO ADDRESS
1030 PRINT "3. PRINT ENVELOPE ON SCREEN
1040 PRINT "4. PRINT ENVELOPE ON PRINTER
1050 PRINT "5. CLEAR DATA:READY FOR NEW ENVELOPE
1060 PRINT "6. CHANGE PRINT TABS FOR RETURN ADDRESS OR MAIL TO ADDRESS
1070 PRINT"7. CHANGE # LINES ON ENVELOPE
1100 PRINT:INPUT"MAKE YOUR CHOICE";ZC
1105 IF ZC = 0 THEN END
1110 ON ZC GOSUB 220,300,400,500,600,700,800
1120 GOTO 1000
10000 PRINT"INPUT ERROR! TRY AGAIN!":FOR J=1 TO 300:NEXT J:RETURN
10100 INPUT"PRESS ENTER TO CONTINUE";Z9$:RETURN
