90 ON ERROR GOTO 19000 100 DIM X$(10%,10%),N$(10%),S$(10%),X1$(148%),T%(148%) \OPEN "KB:" AS FILE #2% \&"INPUT YOUR MESSAGE" \INPUT "HOW MANY LINES OF PRINTING? (/H FOR HELP)";X$ \IF LEFT (X$,2%)="/H" THEN 11500 ELSE L1%=VAL(X$) 110 &"NOW ENTER EACH LINE, OF UP TO 8 CHARACTERS LONG (COUNTING BLANKS)" \FOR X7%=1% TO L1% 120 INPUT X1$(X7%)\IF LEN(X1$(X7%))>8% THEN &"TOO MANY LETTERS---"\GOTO 120 130 NEXT X7% 150 INPUT "WHAT YEAR";A1$ \&"HERE ARE DIFFERENT PICTURES YOU CAN CHOOSE FROM:" \&\&TAB(10%);"SNOOPY (SNOOPY)" \ &TAB(10%);"DARTH VADER (DARTH)" \&\INPUT "ENTER THE NAME FOUND IN PARANTHESIS OF THE POSTER YOU WANT";P$ 160 Y%=FNA%(10%)\X1%=LEN(A1$)\X2%=((80%-(X1%*10%))/2%) \FOR X%=1% TO X1%\N$(X%)=MID(A1$,X%,1%)\NEXT X% 170 FOR D%=1% TO X1%\OPEN "NUMBER.DAT" AS FILE #1% \IF VAL(N$(D%))=0% THEN N$(D%)="10" 180 FOR D1%=1% TO ((VAL(N$(D%))-1%)*6%) \INPUT LINE #1%,S$\NEXT D1% \FOR D2%=1% TO 6%\INPUT LINE #1%,S$\S$=CVT$$(S$,4%) \L$(D%,D2%)=S$\NEXT D2% 190 CLOSE #1%\NEXT D% 200 FOR C1%=1% TO 6%\&TAB(X2%);\FOR C2%=1% TO X1%\&L$(C2%,C1%); \NEXT C2%\&\NEXT C1%\Y%=FNA%(5%) 210 OPEN P$+".DAT" AS FILE #1% 220 INPUT LINE #1%,S$\&S$;\GOTO 220 240 FOR S1%=1% TO 1000%\S2%=66% \IF (S2%*S1%)-INT((L1%*7%)+144%)<0% THEN 250 ELSE A3%=INT(((S2%*S1%)-144%)-(L1%*7%))/2%\GOTO 265 250 NEXT S1% 260 &"GREAT GOD! NOW BE REASONABLE..."\GOTO 32767 265 Y%=FNA%(A3%) 269 FOR I%=1% TO L1% \L%=LEN(X1$(I%)) \T%(I%)=((80%-(LEN(X1$(I%))*10%))/2%) 270 FOR I1%=1% TO L% \N1$(I1%)=MID((X1$(I%)),I1%,1%)\K=ASCII(N1$(I1%)) 280 if k>=32 and k<=47 then 10000 else if k>=58 and k<=64 then 10000 else if k>=48 and k<=57 then 10500 else if k>=65 and k<=90 then 11000 285 STOP 290 &"SORRY-THIS PROGRAM WON'T PRINT THE ";CHR$(K);" CHARACTER."\GOTO 110 300 NEXT I1% 310 FOR D%=1% TO 6%\&TAB(T%(I%)); 320 FOR D1%=1% TO L%\& X$(D%,D1%);\NEXT D1% 330 &\NEXT D% 340 &\NEXT I% 350 CLOSE #3%\Y%=FNA%(A3%)\GOTO 630 630 DIM X(12 ),Z(12 ) \Y =VAL(A1$) 640 N=INT(365.25*Y)+INT(Y/400)-INT(Y/100)+33 650 DEF FNA(X )=N+X -INT((N+X )/7 )*7 +1 660 A=INT(365.25*(Y-1))+INT((Y-1)/400)-INT((Y-1)/100)+372 670 X(3 )=FNA(33 )\X(4 )=FNA(64 )\X(5 )=FNA(94 )\X(6 )=FNA(125 ) \ X(7 )=FNA(155 )\X(8 )=FNA(186 )\X(9 )=FNA(217 )\X(10 )=FNA(247 ) \ X(11 )=FNA(278 )\X(12 )=FNA(308 ) 680 X(1 )=A-INT(A/7 )*7 +1 \ X(2 )=A+31 -INT((A+31 )/7 )*7 +1 690 IF Y -INT(Y /100 )*100 =0 THEN Z(2 )=28 700 IF Y -INT(Y /4 )*4 =0 THEN Z(2 )=29 ELSE Z(2 )=28 710 Z(1 ),Z(3 ),Z(5 ),Z(7 ),Z(8 ),Z(10 ),Z(12 )=31 720 Z(4 ),Z(6 ),Z(9 ),Z(11 )=30 730 S$=STRING$(80 ,35 )\&S$ 740 FOR C =1 TO 6 750 Y%=FNA%(2%) 760 GOSUB 1000 770 Y%=FNA%(2%) 780 G ,J =0 \A2$=STRING$(4 ,32 ) \ A$=" S"+A2$+"M"+A2$+"T"+A2$+"W"+A2$+"T"+A2$+"F"+A2$+"S" 790 &A$;TAB(36 );A$ 800 FOR O =X(C ) TO 7 \ G =G +1 \ &TAB(O *5 -5 );G ; 810 NEXT O 820 FOR U =X(C +6 ) TO 7 \ J =J +1 830 IF U=7 THEN 850 ELSE &TAB(U*5+31);J; 840 GOTO 860 850 &TAB(U *5 +31 );J 860 NEXT U 870 FOR W=1 TO 7\IF G=Z(C) THEN 900 880 G=G+1\&TAB(W*5-5);G; 890 NEXT W 900 IF J =Z(C +6 ) THEN 960 910 FOR L=1 TO 7\ IF J=Z(C+6) THEN 960 920 J=J+1\IF L=7 THEN &TAB(U*5+31);J\GOTO 940 930 &TAB(L*5+31);J; 940 NEXT L 950 GOTO 870 960 NEXT C 970 Y%=FNA%(3%)\&S$ 980 Y%=FNA%(30%)\INPUT "AGAIN";Z$ 990 IF LEFT(Z$,1%)="Y" THEN 100 ELSE 32767 1000 ON C GOTO 1010,1020,1030,1040,1050,1060 1010 &TAB(14 );"JANUARY";TAB(48 );"JULY"\GOTO 1070 1020 &TAB(13 );"FEBRUARY";TAB(47 );"AUGUST"\GOTO 1070 1030 &TAB(14 );"MARCH";TAB(46 );"SEPTEMBER"\GOTO 1070 1040 &TAB(14 );"APRIL";TAB(47 );"OCTOBER"\GOTO 1070 1050 &TAB(15 );"MAY";TAB(46 );"NOVEMBER"\GOTO 1070 1060 &TAB(13 );"JUNE";TAB(46 );"DECEMBER"\GOTO 1070 1070 RETURN 1080 DEF FNA%(X%) \ & FOR C%=1% TO X% \ FNEND 10000 !HERE HANDLES THE SPECIAL CHARACTERS 10010 IF K<48 THEN K=K-31% ELSE K=K-41% 10015 OPEN "SPECIAL.DAT" AS FILE #1% 10020 FOR D%=1% TO (K-1%)*6%\INPUT LINE #1%,A$\NEXT D% \ FOR D%=1% TO 6%\INPUT LINE #1%,A$ \ B$=CVT$$(A$,4%)\X$(D%,I1%)=B$\NEXT D% 10030 CLOSE #1%\GOTO 300 10500 ! HERE HANDLES THE NUMBERS 10510 K=K-48 10520 IF K=0 THEN K=10 10530 OPEN "NUMBER.DAT" AS FILE #1%\GOTO 10020 11000 ! HERE HANDLES THE LETTERS 11010 K=(26%-(90%-K)) \ OPEN "LETTER.DAT" AS FILE #1%\GOTO 10020 19000 IF ERR=11% THEN RESUME 240 32767 END