10 PRINT CHR$(26) 20 'COPYRIGHT [C] 1977 BY W.A.BURTON. ALL RIGHTS RESERVED 30 'ORIGINALLY CALLED BIO-FF FROM CPMUG VOL,5 40 'TARTED UP(& NOW WORKING) FOR MBASIC 5.2 BY TONY STEVENS JULY 1982 50 DIM A(12),M$(12),STONE$(12) 60 DATA 0,31,59,90,120,151,181,212,243,273,304,334 70 FOR I=1 TO 12: READ A(I): NEXT 80 PI=3.14159:P1=1:P2=0:QP=0 90 PRINT "ARE INSTRUCTIONS REQUIRED ?" 100 YN$=INKEY$:IF YN$="" THEN 100 110 IF YN$<>"Y" AND YN$<>"N" THEN 100 120 PRINT CHR$(26):IF YN$="Y" THEN 1390 130 IF Z$="Y" THEN PRINT CHR$(26):GOTO 1390 140 PRINT CHR$(26) 150 INPUT"FOR HOW MANY DAYS DO YOU WANT THIS CHART";DL 160 DL=DL-1 170 INPUT"STARTING DATE OF YOUR ANALYSIS (DAY,MONTH,YEAR)";D,M,Y 180 INPUT"WHAT IS THE DATE OF YOUR BIRTH (DAY,MONTH,YEAR)";DB,MB,YB 190 INPUT "WHAT IS YOUR NAME ? (17 CHAR. MAX.) ",A$ 200 GAP=INT(40-(25+LEN(A$)))/2 210 DEF FNI(X)=INT(25*SIN(2*PI*X/33)+.5) 220 DEF FNE(X)=INT(25*SIN(2*PI*X/28)+.5) 230 DEF FNP(X)=INT(25*SIN(2*PI*X/23)+.5) 240 T=INT(D+365.25*Y+A(M)+.01*M-.03) 250 TB=INT(DB+365.25*YB+A(MB)+.01*MB-.03) 260 X=T-TB 270 RB=TB-1-INT((TB-1)/7)*7 280 DATA MON,TUE,WED,THU,FRI,SAT,SUN 290 FOR I=0 TO 6:READ D$(I):NEXT 300 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC 310 FOR I=1 TO 12:READ M$(I):NEXT 320 DATA GARNET,AMETHYST,AQUAMARINE,DIAMOND,EMERALD,MOONSTONE,RUBY, SARDONYX,SAPPHIRE,OPAL,TOPAZ,TURQUIOSE 330 FOR I= 1 TO 12: READ STONE$(I):NEXT 340 LPRINT CHR$(27)+"G"; 350 LPRINT CHR$(27)+"S"; 360 FOR I=0 TO GAP:GAP$=GAP$+CHR$(32):NEXT I 370 LPRINT GAP$;"BIORHYTHM ANALYSIS FOR ";A$ 380 LPRINT:LPRINT:LPRINT 390 LPRINT CHR$(27)+"T"; 400 LPRINT CHR$(27)+"E"; 410 LPRINT:LPRINT 420 R=T-1-INT((T-1)/7)*7 430 LE=21+LEN(DAY$(R))+LEN(M$(M))+LEN(STR$(D))+LEN(RIGHT$(STR$(V),2)) 440 PRINT "STARTING DATE: ";D$(R)", ";M$(M)STR$(D);", 19"; 450 LPRINT"STARTING DATE: ";D$(R)", ";M$(M) STR$(D);", 19"; 460 PRINT RIGHT$(STR$(Y),2), 470 YEAR=Y:GOSUB 1900 480 LPRINT YEAR$, 490 PRINT "BIRTH DATE: "D$(RB)", "M$(MB)STR$(DB)", 19"; 500 LPRINT"BIRTH DATE: "D$(RB)", "M$(MB) STR$(DB)", 19"; 510 ON RB+1 GOTO 1610,1620,1630,1640,1650,1660,1670 520 PRINT RIGHT$(STR$(YB),2) 530 YEAR=YB:GOSUB 1900 540 LPRINT YEAR$ 550 LPRINT CHR$(27)+"4" 560 GOTO 1690 570 LPRINT 580 LPRINT "`";QUOTE$;"'" 590 LPRINT 600 LPRINT CHR$(27)+"5"; 610 LPRINT "YOUR ASTROLOGICAL SIGN IS ";ZOD$;" AND YOUR BIRTH STONE IS "; STONE$(MB) 620 LPRINT CHR$(27)+"@"; 630 LPRINT:LPRINT 640 GOSUB 1550 650 PRINT D$(R);D;M$(M);TAB(12)":"; 660 LPRINT D$(R);D;M$(M);TAB(12)":"; 670 C$=":" 680 F(0)=42:F$(0)=C$ 690 F(1)=42+FNI(X):F$(1)="I" 700 F(2)=42+FNE(X):F$(2)="E" 710 F(3)=42+FNP(X):F$(3)="P" 720 FOR I=0 TO 2 730 FOR J=I+1 TO 3 740 IF F(I)":"THEN GOSUB 1270 820 NEXT 830 FOR I=0 TO 3 840 PRINT TAB(F(I));F$(I); 850 LPRINT TAB(F(I));F$(I); 860 NEXT 870 PRINT:X=X+1 880 LPRINT 890 IF P2>52 THEN 1340 900 P2=P2+1 910 IF Z=DL THEN 1020 920 R=R+1:IF R=7 THEN R=0 930 D=D+1:IF M=4 OR M=6 OR M=9 OR M=11 THEN L=30:GOTO 970 940 IF M=2 AND Y/4=INT(Y/4) THEN L=29:GOTO 970 950 IF M=2 THEN L=28:GOTO 970 960 L=31 970 IF D>L THEN D=D-L:M=M+1:GOTO 1000 980 PRINT D$(R);D;TAB(10)":"; 990 LPRINT D$(R);D;TAB(12)":";:Z=Z+1:GOTO 680 1000 IF M=13 THEN M=1:Z=Z+1:GOTO 650 1010 Z=Z+1:GOTO 650 1020 QP=2:GOTO 1340 1030 CLEAR:GOTO 10 1040 PRINT 1050 GOSUB 1310 1060 PRINT"TO DETERMINE WHICH DAYS ARE CRITICAL FOR YOU, EXAMINE THE" 1070 LPRINT"TO DETERMINE WHICH DAYS ARE CRITICAL FOR YOU, EXAMINE THE" 1080 PRINT"THREE CURVES (P,E, AND I); WHENEVER A CURVE CROSSES THE CRITICAL" 1090 LPRINT"THREE CURVES (P,E,AND I);WHENEVER A CURVE CROSSES THE CRITICAL" 1100 PRINT"LINE I.E. GOES FROM 'UP' TO 'DOWN' OR VICE-VERSA, THEN THAT" 1110 LPRINT"LINE GOING FROM `UP' TO `DOWN' OR VICE-VERSA, THEN THAT" 1120 PRINT"WILL BE ONE OF YOUR CRITICAL DAYS." 1130 LPRINT"WILL BE ONE OF YOUR CRITICAL DAYS." 1140 LPRINT 1150 PRINT 1160 PRINT" I=INTELLECTUAL 33 DAY CYCLE" 1170 LPRINT" I=INTELLECTUAL 33 DAY CYCLE" 1180 LPRINT 1190 PRINT" E=EMOTIONAL 28 DAY CYCLE" 1200 LPRINT" E=EMOTIONAL 28 DAY CYCLE" 1210 LPRINT 1220 PRINT" P=PHYSICAL 23 DAY CYCLE" 1230 LPRINT" P=PHYSICAL 23 DAY CYCLE" 1240 PRINT 1250 LPRINT 1260 GOTO 1030 1270 FOR WB=0 TO 3 1280 IF F$(WB)=":"THEN F$(WB)="" 1290 NEXT 1300 RETURN 1310 FOR I=1 TO 72:PRINT "-";:NEXT 1320 FOR I=1 TO 72:LPRINT "-";:NEXT 1330 PRINT:LPRINT:RETURN 1340 P1=P1+1:P2=0 1350 FOR LI=1 TO 100:WL=WL+1:NEXT 1360 LPRINT:LPRINT:GOTO 1040 1370 GOSUB 1310 1380 IF QP>1 THEN 1040 ELSE 910 1390 PRINT"THIS PROGRAM IS PRESENTLY CONFIGURED TO OPERATE WITH 8-1/2 BY" 1400 PRINT"11 INCH PAPER IN A HARDCOPY PRINTER EQUIPPED WITH AUTOMATIC TOP" 1410 PRINT"OF FORM OPTION. TO USE THIS FEATURE PROPERLY, YOU MUST REPLY" 1420 PRINT"TO ALL OF THE INPUT PROMPTS, HOWEVER !! WHEN YOU HAVE TYPED IN" 1430 PRINT"'YOUR NAME' -DO NOT- HIT CARRIAGE RETURN. MANUALLY ADVANCE THE" 1440 PRINT"PAPER IN YOUR PRINTER SO THAT THE PRINTHEAD IS ABOUT 3/4 INCH" 1450 PRINT"FROM TOP OF PAPER. THEN SET TOP OF FORM IN YOUR PRINTER, THEN" 1460 PRINT"HIT CARRIAGE RETURN.":PRINT 1470 PRINT"TO RE-CONFIGURE THIS PROGRAM FOR PRINTERS OR TELETYPES WITH NO" 1480 PRINT"TOP OF FORM OPTION, OR CRT'S: LINES 520 - 530 WILL HAVE TO BE" 1490 PRINT"MODIFIED; ALSO THE ROUTINE AT 880 WILL HAVE TO BE CHANGED. IN" 1500 PRINT"PARTICULAR THE COMMAND 'PRINT CHR$(12)' IN LINE 890 MUST BE" 1510 PRINT"CHANGED (USUALLY TO 'PRINT' STATEMENTS IN FOR-NEXT LOOP).":PRINT 1520 PRINT"TO RUN PROGRAMME ------ HIT ANY KEY" 1530 KEY$=INKEY$:IF KEY$="" THEN 1530 1540 CLEAR:GOTO 140 1550 GOSUB 1310 1560 PRINT TAB(20)"DOWN",TAB(38)"CRITICAL",TAB(61)"UP" 1570 LPRINT TAB(20)"DOWN",TAB(38)"CRITICAL",TAB(61)"UP" 1580 GOSUB 1310 1590 RETURN 1600 ' S/R TO PRINT RHYME 1610 QUOTE$="MONDAY'S CHILD IS FAIR OF FACE":GOTO 1680 1620 QUOTE$="TUESDAY'S CHILD IS FULL OF GRACE":GOTO 1680 1630 QUOTE$="WEDNESDAY'S CHILD IS FULL OF WOE":GOTO 1680 1640 QUOTE$="THURSDAY'S CHILD HAS FAR TO GO":GOTO 1680 1650 QUOTE$="FRIDAY'S CHILD IS LOVING AND GIVING":GOTO 1680 1660 QUOTE$="SATURDAY'S CHILD WORKS HARD FOR ITS LIVING":GOTO 1680 1670 QUOTE$="A CHILD THAT'S BORN ON THE SABBATH DAY 1S FAIR AND WISE AND GOOD AND GAY" 1680 GOTO 520 1690 'S/R TO FIND ZODIAC SIGN 1700 ZOD=ZOD+1 1710 DATA 0120,0219,0320,0420,0521,0621,0723,0823,0923,1023,1122,1221,1231 1720 READ ZODATE 1730 IF ZODATE >=(100*MB+DB) THEN 1750 1740 GOTO 1700 1750 IF ZOD=13 THEN ZOD=1 1760 ON ZOD GOTO 1770,1780,1790,1800,1810,1820,1830,1840,1850,1860,1870,1880 1770 ZOD$="CAPRICORN":GOTO 1890 1780 ZOD$="AQUARIUS":GOTO 1890 1790 ZOD$="PISCES":GOTO 1890 1800 ZOD$="ARIES":GOTO 1890 1810 ZOD$="TAURUS":GOTO 1890 1820 ZOD$="GEMINI":GOTO 1890 1830 ZOD$="CANCER":GOTO 1890 1840 ZOD$="LEO":GOTO 1890 1850 ZOD$="VIRGO":GOTO 1890 1860 ZOD$="LIBRA":GOTO 1890 1870 ZOD$="SCORPIO":GOTO 1890 1880 ZOD$="SAGITTARIUS":GOTO 1890 1890 GOTO 570 1900 'TO PRODUCE THE CORRECT "YEAR" FORMAT 1910 YEAR$=RIGHT$(STR$(YEAR),(LEN(STR$(YEAR))-1)) 1920 YEAR$=RIGHT$(YEAR$,2) 1930 IF LEN(YEAR$)<2 THEN YEAR$="0"+YEAR$:GOTO 1930 1940 RETURN STR$(YEAR),(LEN(STR$(YEAR))-1)) 1920 YEAR$=RIGHT$(YEAR$,2) 1