100 REM BIRTHDAY UPDATED 5-5-77 TO "MITS" BY D. NIXON 110 DIM Z$(12),L(12),N(60),Y$(7) 120 DIM G$(12),H$(32) 130 FOR I=1 TO 12:READ Z$(I):NEXT 140 FOR I=1 TO 12:READ L(I):NEXT 150 FOR I=1 TO 7:READ Y$(I): NEXT 160 FOR I=1 TO 12:READ G$(I):NEXT 170 FOR I=1 TO 32:READ H$(I):NEXT 180 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST: 190 DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER: 200 DATA 31,28,31,30,31,30,31,31,30,31,30,31: 210 DATA THURS,FRI,SATUR,SUN,MON,TUES,WEDNES: 220 DATA THE MOON,THE SUN,THE EARTH,THE PLANET MERCURY,VENUS,MARS: 230 DATA JUPITER,SATURN,THE PLANET URANUS,THE PLANET NEPTUNE: 240 DATA THE PLANET PLUTO,PEANUT BUTTER: 250 DATA JUXTAROTATION,CONTRAPOSITION,CONTRASTING PHASES,TRANSPOSITION: 260 DATA SATISFIED,HAPPY,INTERESTING,TOLERANT: 270 DATA OFTEN,OCCASIONALLY,SOMETIMES: 280 DATA TEND TO BE,ARE,ARE INCLINED TO BE: 290 DATA SHORT OF PATIENCE,UNEASY,AT ODDS: 300 DATA OTHERS.,CLOSE FRIENDS.,YOUNGER PEOPLE.,THOSE IN AUTHORITY.: 310 DATA ": BEWARE OF "," AVOID " 320 DATA APPLE PIE,BEING ALONE,DARK PLACES,STRANGERS,UNUSUAL SITUATIONS: 330 DATA BE TAKING A TRIP YOU HAVE NOT MADE BEFORE. 340 DATA BE MEETING SOMEONE YOU WILL KNOW FOR THE REST OF YOUR LIFE. 350 DATA MAKE SEVERAL IMPORTANT DECISIONS INVOLVING OTHERS. 360 DATA BECOME ILL IF YOU DO NOT LESSEN YOUR UNUSUAL ACTIVITIES. 370 PRINT "TYPE IN TODAY'S DATE NUMERICALLY: MO,DAY,YEAR"; 380 INPUT X1,Y1,Z1 390 IF Z1>99 GOTO 410 400 Z1=Z1+1900 410 XF=X1:YF=Y1:ZF=Z1:GOSUB 1220:U=ND 420 PRINT "TODAY IS ";Y$(U-7*INT(U/7)+1);"DAY (I HOPE)" 430 PRINT 440 PRINT "HI, I'M A MICROPROCESSOR." 450 PRINT "TELL ME YOUR NAME"; 460 INPUT N$ 470 I=INSTR(N$," ")-1 480 IF I<0 THEN 580 490 K$=LEFT$(N$,I) 500 PRINT "ARE YOU USUALLY CALLED ";K$; 510 INPUT A$ 520 GOSUB 1140 530 ON NA GOTO 540,560,510 540 PRINT "WHAT DO YOU LIKE TO BE CALLED"; 550 INPUT K$ 560 PRINT "SO YOUR FULL NAME IS ";N$;", BUT YOU" 570 PRINT "LIKE TO BE CALLED ";K$;"." 580 PRINT "HOW OLD ARE YOU, ";K$; 590 INPUT A 600 A=INT(A) 610 IF INT((A-5)/95)=0 GOTO 640 620 PRINT "COME ON, ";K$;", YOU'RE PULLING MY LEG." 630 GOTO 580 640 PRINT "SO YOU ARE";A;"YEARS OLD." 650 PRINT "DO YOU KNOW, OFF HAND, HOW MANY DAYS OLD YOU ARE"; 660 INPUT A$ 670 GOSUB 1140 680 ON NA GOTO 720,690,660 690 PRINT "OK, SMARTY, HOW MANY?" 700 PRINT "SORRY, ";K$;", YOU'LL HAVE TO BE FASTER THAN THAT!" 710 GOTO 1600 720 PRINT "OK, I'LL TELL YOU." 730 PRINT "IN WHAT MONTH WERE YOU BORN"; 740 INPUT M$ 750 FOR X=1 TO 12 760 IF M$=Z$(X) GOTO 800 770 NEXT X 780 PRINT K$;", YOU MAY BE NICE BUT YOU CAN'T SPELL." 790 GOTO 730 800 PRINT "ON WHAT DAY"; 810 INPUT Y 820 Z=Z1-A 830 IF INT((Y-1)/L(X))=0 GOTO 870 840 IF (X-1)*(Y-28)*(Z-4*INT(Z/4)+1)=1 GOTO 870 850 PRINT "COME ON, ";N$;", YOU'RE GIVING ME A HARD TIME." 860 GOTO 800 870 REM 880 XF=X1:YF=Y1:ZF=Z:GOSUB 1220:W=ND 890 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND 900 IF W=> V GOTO 920 910 Z=Z-1 920 IF ABS(W-V)>30 GOTO 990 930 ON SGN(W-V)+2 GOTO 940,980,960 940 PRINT "YOU HAVE A BIRTHDAY COMING UP IN ONLY";V-W;"DAYS!" 950 GOTO 990 960 PRINT "YOUR BIRTHDAY WAS ONLY";W-V;"DAYS AGO. CONGRATULATIONS!" 970 GOTO 990 980 PRINT "HAPPY BIRTHDAY, DEAR ";K$;", HAPPY BIRTHDAY TO YOU." 990 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND 1000 PRINT "YOU WERE BORN ON ";Y$(V-7*INT(V/7)+1);"DAY, ";Z$(X);Y;",";Z 1010 PRINT "WHICH MAKES YOU";U-V;"DAYS OLD." 1020 PRINT "YOU WERE BORN ON THE DAY";V;"AD, AND ON JAN. 1, 2000" 1030 PRINT "YOU WILL BE";730480!-V;"DAYS OLD." 1040 PRINT "HOW ABOUT THAT!!!" 1050 PRINT 1060 GOSUB 1350 1070 PRINT "WELL, ";N$; 1080 IF N$=K$ GOTO 1100 1090 PRINT " (ALIAS ";K$;")" 1100 PRINT " IT HAS BEEN NICE CHATTING WITH YOU. DO COME AGAIN." 1110 PRINT "GOOD BYE" 1120 GOTO 1600 1130 REM SUBROUTINE FOR YES NO REQUEST 1140 NA=1 1150 IF A$="NO" GOTO 1210 1160 IF A$="N0" GOTO 1210 1170 NA=2 1180 IF A$="YES" GOTO 1210 1190 NA=3 1200 PRINT "A SIMPLE YES OR NO WILL DO! " 1210 RETURN 1220 REM SUBROUTINE TO SOLVE FOR NUMBER OF DAYS 1230 ND=YF-1 1240 FOR I1=1 TO XF-1 1250 ND=ND+L(I1) 1260 NEXT I1 1270 I1=INT(ZF/100) 1280 IF ZF<>4*INT(ZF/4) GOTO 1330 1290 IF ZF/100=I1 GOTO 1330 1300 IF ND>59 GOTO 1330 1310 IF XF=3 GOTO 1330 1320 ND=ND-1 1330 ND=ND+36524!*I1+INT(365.25*(ZF-100*I1)) 1340 RETURN 1350 REM GENERATE RANDOM HOROSCOPE 1360 R1=INT(12*RND(1))+1 1370 R2 = INT(12*RND(1))+1 1380 IF R1=R2 GOTO 1370 1390 R=1 1400 X=4:GOSUB 1570 1410 PRINT "YOU WERE BORN UNDER THE ";H$(NR);" OF ";G$(R1) 1420 X=4:GOSUB 1570 1430 PRINT "AND ";G$(R2);". YOU ARE A BASICALLY ";H$(NR) 1440 X=3:GOSUB 1570 1450 PRINT "PERSON BUT ";H$(NR); 1460 GOSUB 1570 1470 PRINT " YOU ";H$(NR) 1480 GOSUB 1570:N1=NR:X=4:GOSUB 1570:N2=NR:X=2:GOSUB 1570 1490 PRINT H$(N1);" WITH ";H$(N2);H$(NR) 1500 X=5:GOSUB 1570 1510 PRINT H$(NR);" FOR THE NEXT WEEK. I PREDICT YOU WILL SOON" 1520 X=4:GOSUB 1570 1530 PRINT H$(NR) 1540 PRINT 1550 RETURN 1560 REM SUBROUTINE TO SELECT RANDOM WORDS 1570 NR=INT(X*RND(1))+R 1580 R=R+X 1590 RETURN 1600 END