10 REM Friendly Horoscope 20 REM Modified for Amstrad computers by Advantage Computer User Group 30 REM *** July 1986 *** V1.1 *** 40 clrs$=CHR$(27)+"E"+CHR$(27)+"H"+CHR$(12) 50 PRINT clrs$ 60 REM BIRTHDAY UPDATED 5-5-77 TO "MITS" BY D. NIXON 70 DIM Z$(12),L(12),N(60),Y$(7) 80 DIM G$(12),H$(32) 90 FOR I=1 TO 12:READ Z$(I):NEXT 100 FOR I=1 TO 12:READ L(I):NEXT 110 FOR I=1 TO 7:READ Y$(I): NEXT 120 FOR I=1 TO 12:READ G$(I):NEXT 130 FOR I=1 TO 32:READ H$(I):NEXT 140 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST 150 DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER 160 DATA 31,28,31,30,31,30,31,31,30,31,30,31 170 DATA THURS,FRI,SATUR,SUN,MON,TUES,WEDNES 180 DATA THE MOON,THE SUN,THE EARTH,THE PLANET MERCURY,VENUS,MARS 190 DATA JUPITER,SATURN,THE PLANET URANUS,THE PLANET NEPTUNE 200 DATA THE PLANET PLUTO,PEANUT BUTTER 210 DATA JUXTAROTATION,CONTRAPOSITION,CONTRASTING PHASES,TRANSPOSITION 220 DATA SATISFIED,HAPPY,INTERESTING,TOLERANT 230 DATA OFTEN,OCCASIONALLY,SOMETIMES 240 DATA TEND TO BE,ARE,ARE INCLINED TO BE 250 DATA SHORT OF PATIENCE,UNEASY,AT ODDS 260 DATA OTHERS.,CLOSE FRIENDS.,YOUNGER PEOPLE.,THOSE IN AUTHORITY. 270 DATA ": BEWARE OF "," AVOID " 280 DATA APPLE PIE,BEING ALONE,DARK PLACES,STRANGERS,UNUSUAL SITUATIONS 290 DATA BE TAKING A TRIP YOU HAVE NOT MADE BEFORE. 300 DATA BE MEETING SOMEONE YOU WILL KNOW FOR THE REST OF YOUR LIFE. 310 DATA MAKE SEVERAL IMPORTANT DECISIONS INVOLVING OTHERS. 320 DATA BECOME ILL IF YOU DO NOT LESSEN YOUR UNUSUAL ACTIVITIES. 330 PRINT" o o o o o o o o H o r o s c o p e o o o o o o o o " 340 PRINT" ================= 350 PRINT:PRINT:PRINT"TO GET STARTED I NEED SOME INFORMATION FROM YOU:-" 360 PRINT:PRINT "PLEASE TYPE IN TODAY'S DATE NUMERICALLY: MO,DAY,YEAR"; 370 INPUT X1,Y1,Z1 380 IF Z1>99 GOTO 400 390 Z1=Z1+1900 400 XF=X1:YF=Y1:ZF=Z1:GOSUB 1220:U=ND 410 PRINT:PRINT "TODAY IS ";Y$(U-7*INT(U/7)+1);"DAY (I HOPE)" 420 PRINT 430 PRINT "HI, I'M A MICROPROCESSOR." 440 PRINT:INPUT"TELL ME YOUR NAME";N$ 450 K$=N$ 460 PRINT "ARE YOU USUALLY CALLED ";K$; 470 INPUT A$ 480 GOSUB 1140 490 ON NA GOTO 500,520,470 500 PRINT "WHAT DO YOU LIKE TO BE CALLED"; 510 INPUT K$ 520 PRINT "SO YOUR FULL NAME IS ";N$;", BUT YOU" 530 PRINT "LIKE TO BE CALLED ";K$;"." 540 PRINT "HOW OLD ARE YOU, ";K$; 550 INPUT A 560 A=INT(A) 570 IF INT((A-5)/95)=0 GOTO 600 580 PRINT "COME ON, ";K$;", YOU'RE PULLING MY LEG." 590 GOTO 540 600 PRINT "SO YOU ARE";A;"YEARS OLD." 610 PRINT:PRINT "DO YOU KNOW, OFF HAND, HOW MANY DAYS OLD YOU ARE"; 620 INPUT A$ 630 GOSUB 1140 640 ON I GOTO 680,650,620 650 PRINT "OK, SMARTY, HOW MANY?" 660 PRINT "SORRY, ";K$;", YOU'LL HAVE TO BE FASTER THAN THAT!" 670 FOR T=1 TO 1000:NEXT 680 PRINT "OK, I'LL TELL YOU." 690 PRINT "IN WHAT MONTH WERE YOU BORN"; 700 INPUT M$ 710 FOR X=1 TO 12 720 IF M$=Z$(X) GOTO 760 730 NEXT X 740 PRINT K$;", YOU MAY BE NICE BUT YOU CAN'T SPELL." 750 GOTO 690 760 PRINT "ON WHAT DAY"; 770 INPUT Y 780 Z=Z1-A 790 IF INT((Y-1)/L(X))=0 GOTO 830 800 IF (X-1)*(Y-28)*(Z-4*INT(Z/4)+1)=1 GOTO 830 810 PRINT "COME ON, ";N$;", YOU'RE GIVING ME A HARD TIME." 820 GOTO 760 830 REM 840 XF=X1:YF=Y1:ZF=Z:GOSUB 1220:W=ND 850 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND 860 IF W>= V GOTO 880 870 Z=Z-1 880 IF ABS(W-V)>30 GOTO 960 890 ON SGN(W-V)+2 GOTO 910,950,930 900 PRINT 910 PRINT:PRINT "YOU HAVE A BIRTHDAY COMING UP IN ONLY";V-W;"DAYS!" 920 GOTO 960 930 PRINT:PRINT "YOUR BIRTHDAY WAS ONLY";W-V;"DAYS AGO. CONGRATULATIONS!" 940 GOTO 960 950 PRINT:PRINT "HAPPY BIRTHDAY, DEAR ";K$;", HAPPY BIRTHDAY TO YOU." 960 XF=X:YF=Y:ZF=Z:GOSUB 1220:V=ND 970 PRINT:PRINT "YOU WERE BORN ON ";Y$(V-7*INT(V/7)+1);"DAY, ";Z$(X);Y;",";Z 980 PRINT "WHICH MAKES YOU";U-V;"DAYS OLD." 990 PRINT "YOU WERE BORN ON THE DAY";V;"AD, AND ON JAN. 1, 2000" 1000 PRINT "YOU WILL BE";730480-V;"DAYS OLD." 1010 PRINT "HOW ABOUT THAT!!!" 1020 FOR T=1 TO 10000:NEXT 1030 PRINT:PRINT"NOW FOR YOUR HOROSCOPE ...." 1040 PRINT:FOR T=1 TO 2000:NEXT 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 FOR T=1 TO 3000:NEXT:PRINT:END fied for Amstrad computers by Advantage Computer User Group 30 REM *** July 1986 *** V1.1