10 ! BASIC PROGRAM TO PRINT POSTERS, MAR.7,79 20 ! WRITTEN BY ALAN R. MILLER 30 ! NEW MEXICO TECH, SOCORRO 87801 50 ! 60 ! FOR XITAN VERSION DELETE LINE 110 70 ! CHANGE LPRINT TO PRINT #LU, 80 ! CHANGE LINE INPUT TO INPUT LINE #0, 90 ! 92 MAP1 SI$(9),S,14 !ARRAY FOR LARGE LETTER POSTER 94 DIM AL$(7,63) !ARRAY FOR LETTER DATA 96 MAP1 SM$(15),S,132 !ARRAY FOR SMALL LETTER MESSAGE 98 MAP1 IZ(9),F 100 MAP1 IY(15),F 102 MAP1 E1$,S,40 !ERROR MESSAGE STRING 120 LU=2 ! LOGICAL-UNIT FOR LIST,XITAN VERSION 130 !OPTION #LU,"W",132'MAXIMUM NUMBER OF LINES 140 ! 145 OPEN #2,"POSTER.DAT",OUTPUT 150 CR$=CHR$(13) 160 MC=14 !MAXIMUM CHARACTERS PER LINE 170 !MC=8:REM FOR MARROW PAPER 180 MP=MC*9+5:ML=9!MAXIMUM NUMBER OF LINES 190 MS=15 !MAX NUMBER OF SMALL LINES 200 ! 220 ! 230 E1$="ERROR:TO MANY CHARACTERS TRY AGAIN" 240 ! 250 FOR J=1 TO 59:FOR I=1 TO 7:READ AL$(I,J):NEXT I:NEXT J 270 ! 280 INPUT "PAGE LENGHT, IN INCHES ";YP:LP=YP*6 290 INPUT "NUMBER OF COPIES ";NC 300 PRINT "ENTER MESSAGE OF LARGE LETTERS,UP TO"; 310 PRINT MC;" LETTERS PER LINE." 320 PRINT "TWO SUCCESSIVE CARRIAGE RETURNS SIGNIFY END." 322 FOR I=1 TO 9:SI$(I)="":IZ(I)=0:NEXT I 324 FOR I=1 TO 15:SM$(I)="":IY(I)=0:NEXT I 330 ! 340 I=O 350 I=I+1:IZ(I)=0 360 PRINT "LINE"+STR$(I);":"; 370 INPUT LINE SI$(I) !INPUT A LINE OF LARGE LETTERS 380 LN=LEN(SI$(I)) 390 IF LN>MC THEN PRINT E1$:GOTO 360 400 IF LN=MC THEN 460 410 IF LN=0 THEN NL=I-1:GOTO 480 420 N1=MC-LN:N2=INT(N1/2):N3=N1-N2 430 IF N1=1 THEN 450 440 FOR J=1 TO N2:SI$(I)=" "+SI$(I):NEXT J 450 IF N2<>N3 THEN IZ(I)=1!SET HALF-SPACE FLAG 460 IF IMP-6 THEN PRINT E1$:GOTO 510 560 IF LN0 THEN PRINT #2 SPACE$(4); 760 ! 770 ! SELECT A NEW CHARACTER IN LINE 780 ! 790 SP$="A":GOSUB 1080 800 PRINT #2 CR$;:SP$="W" 810 IF LS=MC THEN ? #2, SPACE$(3);ELSE ? #2, SPACE$(4); 820 IF IZ(J)<>0 THEN PRINT #2 " "; 830 GOSUB 1080 840 IF LS>=MC THEN 880 850 IF MC-LS<=1 THEN GOTO 870 860 FOR L=LS+2 TO MC:PRINT #2 SPACE$(9);:NEXT L 870 IF IZ(J)<>0 THEN PRINT #2 SPACE$(4);ELSE PRINT #2 SPACE$(8); 880 PRINT #2 "**" 890 NEXT I 900 NEXT J 910 GOSUB 1060 920 IF NS=0 THEN 960 930 FOR J=1 TO NS:PRINT #2, "** ";:LT=LT+1 940 PRINT #2,SM$(J); TAB (MP-2); "**" 950 NEXT J 960 GOSUB 1020 !PUT 2 ROWS OF * AT BOTTOM 970 LT=INT(LP*(LT-INT(LT/LP))+.001) 980 IF LT+1-LP<> 0 THEN FOR J=LT+1 TO LP: ?#2 : NEXT J 985 ?#2,CHR$(12) 990 NEXT K 994 INPUT "DO YOU HAVE ANOTHER POSTER YOU WANT TO DO ";C1$ 996 IF C1$="Y" OR C1$="YES" THEN 322 1000 GOTO 2440 !DONE 1010 ! 1020 FOR L=1 TO MP:PRINT #2 "*";:NEXT L:PRINT #2 1030 FOR L=1 TO MP:? #2, "*";:NEXT L:? #2 1040 RETURN 1050 ! 1060 PRINT #2 "**";SPACE$(MP-4);"**" 1070 PRINT #2 "**";SPACE$(MP-4);"**":RETURN 1080 ! 1090 ! SELECT A CHARACTER FOR S SINGLE LINE 1100 ! 1110 FOR L=1 TO LS 1120 LL=ASC(MID$(SI$(J),L,1))-31 1130 ! CONVERT NON-PRINTING CHARACTER TO A BLANK 1140 IF LL<1 THEN LL=1 1150 IF LL>64 THEN LL=LL-32 ! MAKE LOWER CASE 1160 AS$=AL$(I,LL) 1170 FOR M=1 TO 7 ! CHECK EACH SPOT 1180 IF MID$(AS$,M,1)=" " THEN PRINT #2 " "; ELSE PRINT #2 SP$; 1190 NEXT M:PRINT #2 " "; 1200 NEXT L 1210 RETURN 1220 ! 1230 ! CHARACTER DATA 1240 ! 1250 DATA " "," "," "," "," " 1260 DATA " "," " 1270 DATA " ! "," ! "," ! "," ! "," ! " 1280 DATA " "," ! " 1290 DATA " "," XX XX "," XX XX "," XX XX "," " 1300 DATA " "," " 1310 DATA " # # "," # # ",#######," # # ",####### 1320 DATA " # # "," # # " 1330 DATA " $$$$$$","$$ $ ","$$ $ "," $$$$$ "," $ $$" 1340 DATA " $ $$","$$$$$$ " 1350 DATA " %% %"," %% % "," % "," % "," % " 1360 DATA " % %% ","% %% " 1370 DATA " & "," & & "," & "," & & ","& & &" 1380 DATA "& & "," &&&& &" 1390 DATA " "," '' "," '' "," ' "," " 1400 DATA " "," " 1410 DATA " ("," ( "," ( "," ( "," ( " 1420 DATA " ( "," (" 1430 DATA ") "," ) "," ) "," ) "," ) " 1440 DATA " ) ",") ", 1450 DATA "* * *"," * * * "," *** ","*******"," *** " 1460 DATA " * * * ","* * *" 1470 DATA " + "," + "," + ","+++++++"," + " 1480 DATA " + "," + " 1490 DATA " "," "," "," "," " 1500 DATA " , "," , " 1510 DATA " "," "," "," ___ "," " 1520 DATA " "," " 1530 DATA " "," "," "," "," " 1540 DATA " . . "," . . " 1550 DATA " /"," / "," / "," / "," / " 1560 DATA " / ","/ " 1570 DATA " 00000 ",0 0,0 0,0 0,0 0 1580 DATA 0 0," 00000 " 1590 DATA " 1 "," 11 "," 1 1 "," 1 "," 1 " 1600 DATA " 1 "," 11111 " 1610 DATA " 2222 "," 2 2"," 2 "," 2 "," 2 " 1620 DATA " 2 "," 222222" 1630 DATA " 33333 ",3 3," 3"," 33 "," 3" 1640 DATA "3 3"," 33333 " 1650 DATA " 44 "," 4 4 "," 4 4 ","444444 "," 4 " 1660 DATA " 4 "," 4 " 1670 DATA "555555 ","5 ","5 ","55555 "," 5 " 1680 DATA " 5 ","55555 " 1690 DATA " 6666 ","6 ","6 ","66666 ","6 6 " 1700 DATA "6 6 "," 6666 " 1710 DATA 7777777," 7 "," 7 "," 7 "," 7 " 1720 DATA " 7 ","7 " 1730 DATA " 8888 "," 8 8"," 8 8"," 8888 "," 8 8" 1740 DATA " 8 8"," 8888 " 1750 DATA " 9999 "," 9 9"," 9 9"," 99999"," 9" 1760 DATA " 9"," 9999 " 1770 DATA " "," :: "," :: "," "," :: " 1780 DATA " :: "," " 1790 DATA " "," ;; "," ;; "," "," ; " 1800 DATA " ; "," " 1810 DATA " < "," < "," < "," < "," < " 1820 DATA " < "," < " 1830 DATA " "," ===== "," ===== "," "," ===== " 1840 DATA " ===== "," " 1850 DATA " > "," > "," > "," > "," > " 1860 DATA " > "," > " 1870 DATA " ??? "," ? ? "," ? "," ? "," ? " 1880 DATA " "," ? " 1890 DATA " "," "," "," "," " 1900 DATA " "," " 1910 DATA " AAAAA ",AA AA,AA AA,AAAAAAA 1920 DATA "AA AA","AA AA","AA AA" 1930 DATA "BBBBBB ",BB BB,BB BB,"BBBBBB " 1940 DATA BB BB,BB BB,"BBBBBB " 1950 DATA " CCCCC ","CC CC","CC ","CC ","CC " 1960 DATA CC CC," CCCCC " 1970 DATA "DDDDDD ",DD DD,DD DD,DD DD 1980 DATA DD DD,DD DD,"DDDDDD " 1990 DATA EEEEEEE,"EE ","EE ","EEEEE ","EE " 2000 DATA "EE ",EEEEEEE 2010 DATA FFFFFFF,"FF ","FF ","FFFF ","FF " 2020 DATA "FF ","FF " 2030 DATA " GGGGG ",GG GG,"GG ","GG ",GG GGG 2040 DATA GG GG," GGGGG " 2050 DATA HH HH,HH HH,HH HH,HHHHHHH,HH HH 2060 DATA HH HH,HH HH 2070 DATA " IIII "," II "," II "," II "," II " 2080 DATA " II "," IIII " 2090 DATA " JJ"," JJ"," JJ"," JJ"," JJ" 2100 DATA " JJ JJ"," JJJJ " 2110 DATA KK KK,"KK KK ","KK KK ","KKKK ","KKKKK " 2120 DATA "KK KK ",KK KK 2130 DATA "LL ","LL ","LL ","LL ","LL " 2140 DATA "LL ",LLLLLLL 2150 DATA M M,MM MM,MMM MMM,MM M MM,MM MM 2160 DATA MM MM,MM MM 2170 DATA N NN,NN NN,NNN NN,NN N NN,NN NNN 2180 DATA NN NN,NN N 2190 DATA " OOOOO ",OO OO,OO OO,OO OO,OO OO 2200 DATA OO OO," OOOOO " 2210 DATA "PPPPPP ",PP PP,PP PP,"PPPPPP " 2220 DATA "PP ","PP ","PP " 2230 DATA " QQQQQ ",QQ QQ,QQ QQ,QQ QQ 2240 DATA QQ QQ,QQ QQQ," QQQQQQ" 2250 DATA "RRRRRR ",RR RR,RR RR,"RRRRRR ","RRRR " 2260 DATA "RR RR ","RR RR " 2270 DATA " SSSSSS","SS ","SS "," SSSSS "," SS" 2280 DATA " SS","SSSSSS " 2290 DATA "TTTTTT "," TT "," TT "," TT "," TT " 2300 DATA " TT "," TT " 2310 DATA UU UU,UU UU,UU UU,UU UU,UU UU 2320 DATA UU UU," UUUUU " 2330 DATA " V V"," V V"," VV VV"," V V "," VVVV " 2340 DATA " VV "," VV " 2350 DATA WW WW,WW WW,WW WW,WW WW,WW W WW 2360 DATA WWW WWW," W W " 2370 DATA XX XX," XX XX "," XXX "," XXX "," XXX " 2380 DATA " XX XX ",XX XX 2390 DATA YY YY," YY YY "," YYY "," YY "," YY " 2400 DATA " YY "," YY " 2410 DATA ZZZZZZZ," Z "," Z "," Z "," Z " 2420 DATA " Z ",ZZZZZZZ, , , , , 2430 ! 2440 CLOSE #2 2450 END