100  REM ***  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
110  REM
120  REM         LETTER:  GENERATES LARGE LETTERS
130  REM
140  REM         36124 (A904) REV A -- 7/71
150  REM
160  REM ***  CONTRIBUTED PROGRAM  **************************************
170  REM
180  REM  DATE WRITTEN  3/10/70
190  PRINT "THIS PROGRAM PRINTS MESSAGES IN LARGE LETTERS"
200  DIM C[50]
210  LET A4=0
220  LET S1=1
230  MAT C=ZER
240  LET M=Q=V=U1=0
250  LET U=D=O1=1
260  LET S=2.8
270  LET Q9=0
280  DIM D$[72],L$[72],B$[50],C$[39],Y$[3]
290  LET C$="ABCDEFGHIJKLMNOPQRSTUVWXYZ.?"
300  PRINT "DO YOU WANT INFORMATION";
310  INPUT Y$
320  IF Y$#"YES" THEN 370
330  PRINT "FULL SIZE LETTERS TAKE ABOUT 2.5 MINUTES TO PRINT"
340  PRINT "HALF SIZE LETTERS TAKE ABOUT 35 SECONDS"
350  PRINT " HALF-SIZE LETTERS ARE OBTAINED BY USING A DASH(-)"
360  PRINT "AS THE FIRST CHARACTER OF YOUR MESSAGE"
370  PRINT "LETTERS(NOT WORDS) MAY BE PRINTED IN ONE OF THREE TEXTS"
380  PRINT "1. PRINTED IN THE LETTER THEY REPRESENT"
390  PRINT "2. PRINTED IN A TEXT OF YOUR CHOISE"
400  PRINT "3. PRINTED IN A CHARACTER OF YOUR CHOICE"
410  PRINT "WHICH METHOD DO YOU PREFER(1,2 OR 3)";
420  INPUT N1
430  PRINT 
440  IF N1=1 THEN 600
450  IF N1#2 THEN 570
460  PRINT "THE TEXT MAY CONTAIN UP TO 72 CHARACTERS"
470  PRINT "WHAT IS YOUR TEXT"
480  LET D$="                                                          "
490  INPUT D$
500  FOR I=1 TO 72
510  LET H=73-I
520  IF D$[H,H]#" " THEN 540
530  NEXT I
540  LET H=H+1
550  LET Q7=1
560  GOTO 600
570  IF N1#3 THEN 370
580  PRINT "WHAT IS THE CHARACTER";
590  INPUT T$
600  PRINT 
610  PRINT "THE FOLLOWING CHARACTERS MAY BE USED IN MESSAGES"
620  PRINT C$
630  PRINT "WHAT IS YOUR MESSAGE"
640  INPUT B$
650  PRINT 
660  FOR Z=1 TO 50
670  LET N=51-Z
680  IF B$[N,N]#" " THEN 700
690  NEXT Z
700  FOR W=U TO N
710  IF B$[W,W]="-" THEN 730
720  GOTO 750
730  LET R[D]=W
740  LET D=D+1
750  NEXT W
760  IF D=1 THEN 780
770  LET S=S/(D+.3)
780  FOR I=1 TO N
790  FOR X=1 TO 28
800  IF B$[I,I]=C$[X,X] THEN 860
810  NEXT X
820  FOR T=1 TO 10*S
830  PRINT 
840  NEXT T
850  GOTO 1670
860  REM THIS PROGRAM WAS DONE BY 224-72-3402
870  LET P=0
880  READ A
890  IF A#-1 THEN 880
900  LET P=P+1
910  IF P=X THEN 930
920  GOTO 880
930  READ A
940  IF V#0 THEN 980
950  FOR K=1 TO 72
960  LET L$[K,K]=" "
970  NEXT K
980  IF A=0 THEN 1290
990  IF A=-1 THEN 1630
1000  IF A4=0 THEN 1040
1010  LET B=C[S1]
1020  LET S1=S1+1
1030  GOTO 1090
1040  READ B
1050  LET C[S1]=A
1060  LET S1=S1+1
1070  LET C[S1]=B
1080  LET S1=S1+1
1090  FOR J=INT(A*S)+M+1 TO B*S+M
1100  IF N1#1 THEN 1120
1110  LET L$[J,J]=B$[I,I]
1120  IF N1#3 THEN 1150
1130  LET L$[J,J]=T$
1140  GOTO 1200
1150  IF N1#2 THEN 1200
1160  LET L$[J,J]=D$[Q7,Q7]
1170  LET Q7=Q7+1
1180  IF Q7 <= H THEN 1200
1190  LET Q7=1
1200  IF J <= Q THEN 1220
1210  LET Q=J
1220  NEXT J
1230  IF A4=0 THEN 1270
1240  LET A=C[S1]
1250  LET S1=S1+1
1260  GOTO 1280
1270  READ A
1280  IF A>B THEN 980
1290  IF D=1 THEN 1340
1300  LET V=V+1
1310  LET M=Q+S*5
1320  IF V=D-1 THEN 1330
1330  LET V=M=0
1340  FOR Z=1 TO 72
1350  LET Y=73-Z
1360  IF L$[Y,Y]#" " THEN 1380
1370  NEXT Z
1380  FOR J=1 TO 1+S/2
1390  FOR R=1 TO Y
1400  PRINT L$[R,R];
1410  NEXT R
1420  PRINT 
1430  IF A4=0 THEN 1450
1440  RETURN 
1450  LET S1=1
1460  IF S/2<1 THEN 1560
1470  IF N1#2 THEN 1560
1480  IF Q9=1 THEN 1570
1490  LET Q9=1
1500  LET B=-90
1510  LET A4=7
1520  LET X4=A
1530  GOSUB 1230
1540  LET A=X4
1550  GOTO 1570
1560  NEXT J
1570  LET Q9=0
1580  LET A4=0
1590  LET S1=1
1600  MAT C=ZER
1610  IF A=0 THEN 930
1620  GOTO 950
1630  FOR K=1 TO 1+2.5*S
1640  PRINT 
1650  NEXT K
1660  RESTORE 
1670  NEXT I
1680  PRINT 
1690  DATA -1
1700  REM A
1710  DATA 1,25,1,25,1,25,1,25,6,11,18,25,6,11,18,25,6,11,18,25
1720  DATA 6,11,18,25,1,25,1,25,1,25,1,25,-1
1730  REM B
1740  DATA 1,25,1,25,1,25,1,25,1,5,13,17,22,25,1,5,12,17,22,25
1750  DATA 1,5,11,17,22,25,1,5,10,17,22,25,1,5,9,17,22,25
1760  DATA 1,5,8,11,13,25,1,10,13,25,1,9,13,25
1770  DATA -1
1780  REM C
1790  DATA 1,25,1,25,1,25,1,25
1800  DATA 1,5,20,25,1,5,20,25
1810  DATA 1,5,20,25,1,5,20,25,1,5,20,25,1,5,20,25,1,5,20,25
1820  DATA -1
1830  REM D
1840  DATA 2,5,21,24,1,5,21,25,1,25,1,25,1,25
1850  DATA 1,5,21,25,1,5,21,25,1,5,21,25,1,25,1,25
1860  DATA 2,24,3,23,-1
1870  REM E
1880  DATA 1,25,1,25,1,25,1,25,1,5,12,16,21,25,1,5,12,16,21,25
1890  DATA 1,5,12,16,21,25,1,5,12,16,21,25,1,5,12,16,21,25
1900  DATA 1,5,21,25,1,5,21,25,1,5,-1
1910  REM F
1920  DATA 1,25,1,25,1,25,1,25,12,16,21,25,12,16,21,25
1930  DATA 12,16,21,25,12,16,21,25,12,16,21,25
1940  DATA 21,25,21,25,21,25,-1
1950  REM G
1960  DATA 1,25,1,25,1,25,1,25,1,5,21,25
1970  DATA 1,5,8,11,21,25,1,5,8,11,21,25,1,11,18,25
1980  DATA 1,11,18,25,1,11,18,25,1,11,18,25
1990  DATA -1
2000  REM H
2010  DATA 1,25,1,25,1,25,1,25,11,14,11,14
2020  DATA 11,14,11,14,1,25,1,25,1,25,1,25
2030  DATA -1
2040  REM I
2050  DATA 1,5,21,25,1,5,21,25,1,25,1,25,1,25,1,25,1,5,21,25
2060  DATA 1,5,21,25,-1
2070  REM J
2080  DATA 6,10,4,10,2,10,21,25,1,5,21,25
2090  DATA 1,4,21,25,1,5,21,25,2,25,3,25,5,25,21,25,21,25,21,25
2100  DATA 21,25,-1
2110  REM K
2120  DATA 1,25,1,25,1,25,1,25,11,17,9,19,6,12,15,20
2130  DATA 4,10,17,22,2,8,19,23,1,6,20,24,1,5,21,25,1,4,22,25
2140  DATA -1
2150  REM L
2160  DATA 1,25,1,25,1,25,1,25,1,5,1,5,1,5,1,5,1,5,1,5,1,5,1,5
2170  DATA -1
2180  REM M
2190  DATA 1,25,1,25,1,25,16,23,13,20,11,16
2200  DATA 11,16,13,20,16,23,1,25,1,25,1,25
2210  DATA -1
2220  REM N
2230  DATA 1,25,1,25,1,25,17,22,14,19,11,16
2240  DATA 9,14,6,11,3,8,1,25,1,25,1,25
2250  DATA -1
2260  REM O
2270  DATA 1,25,1,25,1,25,1,25,1,5,20,25,1,5,20,25
2280  DATA 1,5,20,25,1,5,20,25,1,25,1,25,1,25,1,25
2290  DATA -1
2300  REM P
2310  DATA 1,25,1,25,1,25,1,25,11,15,20,25,11,15,20,25
2320  DATA 11,15,20,25,12,16,19,24,13,23,15,22
2330  DATA -1
2340  REM Q
2350  DATA 10,18,6,22,3,23,2,6,20,24,1,5,21,24
2360  DATA 1,3.4,22,25,1,5,8,10,22,25,2,9,21,24
2370  DATA 2,7,20,24,1,23,1,3,6,22,1,2,10,18
2380  DATA -1
2390  REM R
2400  DATA 1,25,1,25,1,25,1,25,11,15,19,25,11,15,19,25,11,15,19,25
2410  DATA 8,15,19,25,6,15,19,25,5,12,14,25,3,11,15,25,1,9,16,25,-1
2420  DATA 1,5,11,25
2430  REM S
2440  DATA 1,5,11,25,1,5,11,25,1,5,11,25,1,5,11,15,21,25,1,5,11
2450  DATA 15,21,25,1,5,11,15,21,25,1,15,21,25,1,15,21,25,1,15,21
2460  DATA 25,-1
2470  REM T
2480  DATA 21,25,21,25,21,25,21,25,1,25,1,25,1,25,1,25
2490  DATA 21,25,21,25,21,25,21,25
2500  DATA -1
2510  REM U
2520  DATA 1,25,1,25,1,25,1,25,1,5,1,5
2530  DATA 1,5,1,5,1,25,1,25,1,25,1,25
2540  DATA -1
2550  REM V
2560  DATA 21,25,18,25,14,25,9,16,5,14,1,10,1,10
2570  DATA 5,14,9,16,14,25,18,25,21,25
2580  DATA -1
2590  REM W
2600  DATA 1,25,1,25,1,25,3,10,6,13,10,15
2610  DATA 10,15,6,13,3,10,1,25,1,25,1,25
2620  DATA -1
2630  REM X
2640  DATA 1,5,21,25,1,7,19,25,3,10,17,23,5,11,15,21
2650  DATA 7,18,9,16,9,16,7,18,5,11,15,21,3,10,17,23
2720  REM Z
2730  DATA 1,6,21,25,1,7,21,25,1,9,21,25,1,11,21,25
2740  DATA 1,5,7,13,21,25,1,5,9,15,21,25
2750  DATA 1,5,11,17,21,25,1,5,12.5,19,21,25
2770  DATA -1
2790  DATA 2,4,1,5,2,4,-1
2800  REM ?
2810  DATA 15,18,15,21,15,22,19,23
2820  DATA 1,3,6,11,21,24,1,3,6,13,21,24
2830  DATA 1,3,6,15,21,24,12,16,21,24,13,23,15,22.4
2840  DATA 17,19.4,-1
2850  END 
