100 DIM A$(20)
110 CLS: PRINT@5,"MAILING LABEL PROGRAM"
120 NL=1: LB=6: LM=0
130 PRINT@32,"SPCL CODE SEQUENCE, Y OR N";: INPUT S$
140 IF (S$<>"Y") AND (S$<>"N") THEN PRINT@54,"": GOTO 130
150 IF S$="N" THEN 250
160 GOSUB 440
170 PRINT@64,"ENTER CODE SEQUENCE,"+CHR$(13)+"END BY -1"
180 PRINT@105,"":PRINT:PRINT
190 PRINT@105,"";:INPUT 5: IF S-I THEN 230
200 IF (S<0) OR (S>255) THEN PRINT@448,"INVALID CODE": GOSUB 450:GOTO 180
210 A$=CHR$(S):GOSUB 490
220 GOTO 180
230 PRINT@64,"":PRINT:PRINT
240 GOSUB 520
250 PRINT@64,"# OF LABELS EACH";:INPUT NL
260 IF (NL<1) OR (NL>1000) THEN PRINT@80,"": GOTO 250
270 PRINT@96,"# OF LINES PER LABEL";:INPUT LB
280 IF (LB<1) OR (LB>100) THEN PRINT@116,"": GOTO 270
290 PRINT@128,"LEFT MARGIN, 0-60";: INPUT LM
300 IF (LM<0) OR (LN>60) THEN PRINT@145,"": GOTO 290
310 PRINT@160,"TEST RUN, Y OR N";: INPUT T$
320 IF (T$<>"Y") AND (T$<>"N") THEN PRINT@176,"": GOTO 310
330 RESTORE: GOSUB 440
340 I=1
350 READ A$(I): IF A$(I)="*****" THEN 110
360 IF A$(I)="*" THEN 380
370 I=I+1: GOTO 350
380 I=I-1: FOR J=1 TO NL
390 GOSUB 540
400 IF T$<>"Y" THEN 420
410 PRINT@176,"": GOTO 310
420 NEXT J
430 GOTO 340
440 PRINT@448,"READY PRINTER"
450 FOR I=1 TO 1000: NEXT I
460 PRINT@448,"
470 RETURN
480 REM***CHANGE NEXT "PRIMT#-2," TO "LPRINT" FOR MC-10***
490 PRINT#-2,A$;
500 RETURN
510 REM***CHANGE NEXT "PRINT#-2," TO "LPRINT" FOR MC-10***
520 PRIMT#-2
530 RETURN
540 FOR K=1 TO I
550 FOR L=1 TO LM: A$=" ": GOSUB 490: NEXT L
560 A$=A$(K): GOSUB 490: GOSUB 520
570 NEXT K
580 M=LB-I: IF M<0 THEN PRINT@448,"TOO MANY LINES IN LABEL":GOSUB 450: GOTO 600
590 FOR K=1 TO M: GOSUB 520: NEXT K
600 RETURN
610 DATA "WM. BARDEN, JR.", "250 N.S. MEMORY LANE"
620 DATA "MICRO CITY, CA 99999","*"
630 DATA "FORREST MIMS III","987 TEXAN FOREVER DRIVE"
640 DATA "LITTLE SPRING, TX 77777","*"
650 DATA "DENNIS KITZ","ARKHAM CORNERS","MISKATONIC CITY, MA 03333","*"
660 DATA "Wm. Barden","*"
670 DATA "*****"