10  REM  "BIOSUM" : ADAPTED FROM LAWRENCE HALL OF SCIENCE'S BIOSIN
20  REM  REVISED BY JOHN J. STEFANI, 400 MANSELL ST., SF/CA. 94134
22  DIM P0$[72]
23  SYSTEM P0$[1,4],"TIM"
24  IF P0$[1,4]="B000" THEN 26
25  GOTO 30
26  PRINT "B000 --  NOT ALLOWED"'7
27  STOP 
30  PRINT "** NOTE **  THERE IS A 50 CENT SUR-CHARGE PER CHART"'7
40  PRINT '10"DO YOU WANT TO CONTINUE ";
50  PRINT " (YES OR NO)";
60  DIM J$[3]
70  INPUT J$
80  IF J$="YES" THEN 100
90  GOTO 2930
100  SYSTEM X,"MES-$ .50    BIOSUM"'7
110  DIM A$[25],B$[36],L$[72],M$[72],N$[10],Z$[72]
120  DIM M[12],Z[72]
130  DEF FNA()=1-SGN(-100*INT(/100))
140  DEF FNB()=SGN(-4*INT(/4))
150  DEF FNC()=SGN(-400*INT(/400))
160  DEF FND()=7*(/7-INT(/7))
170  DEF FNE()=SIN((/P-INT(/P))*P2)+SIN(((-H)/P-INT((-H)/P))*P2)
180  DEF FNF()=INT(37+22*FNE()/2)
190  DEF FNG()=29-FNC()*SGN(FNA()+FNB())
200  A$="ThuFriSatSunMonTueWed"
210  B$="JanFebMarAprMayJunJulAugSepOctNovDec"
220  N$="0123456789"
230  K=J=1
240  L0=0
250  P2=6.28318
260  MAT  READ M
270  DATA 31,28,31,30,31,30,31,31,30,31,30,31
280  REM
290  REM  INTRODUCTION
300  REM
310  PRINT "BIORHYTHM ANALYSIS"
320  PRINT 
330  PRINT "DO YOU KNOW WHAT BIORHYTHM IS";
340  INPUT Z$
350  IF Z$[1,1]="Y" THEN 740
360  IF Z$[1,1] <> "N" THEN 330
370  PRINT 
380  PRINT "     THE BIORHYTHM THEORY POSTULATES THAT THERE ARE"
390  PRINT "CERTAIN METABOLIC RHYTHMS THAT HAVE A CONSTANT CYCLE"
400  PRINT "TIME IS THE HUMAN BODY, AND ARE KNOWN AS INNER CLOCKS."
410  PRINT 
420  PRINT "     TWO PHYSICIANS, ONE A CONTEMPORARY OF FREUD,"
430  PRINT "CONCURRENTLY DESCRIBED A 23-DAY CYCLE THAT CORRELATED"
440  PRINT "PHYSICAL VITALITY, ENDURANCE, AND ENERGY; AND A 28-DAY"
450  PRINT "CYCLE THAT CORRESPONDES TO SENSITIVITY, INTUITION, AND"
460  PRINT "CHEERFULNESS.  A THIRD CYCLE WAS OBSERVED BY A PROFESSOR"
470  PRINT "AND OTHERS IN THE 1920'S AND 1930'S AND IS A 33-DAY"
480  PRINT "COGNITIVE, OR INTELLECTUAL CYCLE THAT RELATES TO MENTAL,"
490  PRINT "ALLERTNESS, AND JUDGEMENT."
500  PRINT 
510  PRINT "     ALL THREE CYCLES START UP FROM BIRTH, OR THE"
520  PRINT "BEGINNING OF INDEPENDENT LIFE.  THE DAYS ON WHICH THE"
530  PRINT "MEDIAN (0) LINE IS CROSSED ARE CALLED CRITICAL DAYS,"
540  PRINT "ESPECIALLY FOR THE PHYSICAL AND SENSITIVITY CYCLES, AND"
550  PRINT "ARE DAYS WHEN ACCIDENTS ARE MOST LIKELY TO OCCUR.  THE"
560  PRINT "HIGH (+) PERIODS IN THE VARIOUS CYCLES ARE THE TIMES"
570  PRINT "WHEN YOU SHOULD HAVE THE MOST ENERGY, BE MOST CAREFULL,"
580  PRINT "OUTGOING, AND MENTALLY ALERT.  THE LOW (-) TIMES ARE"
590  PRINT "REGARDED AS THE RECUPERATIVE PERIODS.  ALTHOUGH ALL"
600  PRINT "CYCLES ARE SAID TO START FROM ZERO (0) AT THE TIME OF"
610  PRINT "BIRTH, BIORHYTHM HAS NOTHING TO DO WITH ASTROLOGY.  A"
620  PRINT "TOKYO TAXI COMPANY HAS REPORTED A 60% CUT IN ACCIDENTS"
630  PRINT "BY GIVING DRIVERS AN 'EXTRA-CAREFUL-TODAY' REMINDER ON"
640  PRINT "CRITICAL DAYS."
650  PRINT 
660  PRINT "GRAPH SYMBOLS:"
670  PRINT 
680  PRINT "    : : MEDIAN LINE (0 LINE)"
690  PRINT "    P : PHYSICAL CYCLE     (23-DAY)"
700  PRINT "    S : SENSITIVITY CYCLE  (28-DAY)"
710  PRINT "    I : INTELLECTUAL CYCLE (33-DAY)"
720  PRINT "    * : TWO OR MORE CYCLES AT THE SAME POINT"
730  PRINT 
740  PRINT "DO YOU KNOW ABOUT BIOSUM";
750  INPUT Z$
760  IF Z$[1,1]="Y" THEN 920
770  IF Z$[1,1] <> "N" THEN 740
780  PRINT 
790  PRINT "     BIOSUM IS A MODIFIED VERSION OF BIORHYTHM, AND NEEDS"
800  PRINT "TWO PEOPLE (OR YOURSELF TWICE) TO USE.  THE SUM OF THE"
810  PRINT "TWO PERSONS BIORHYTHMS IS CALCULATED AS AN INDICATION"
820  PRINT "OF THEIR COMPATABILITY.  THE AMPLITUDE OF EACH BIORHYTHM"
830  PRINT "GIVES THE OVERALL COMPATABILITY FOR THAT CYCLE WHERE "'1"AS"
840  PRINT "THE VALUE AT ANY DAY GIVES THEIR COMPATABILITY FOR THAT"
850  PRINT "DAY."
860  PRINT 
870  PRINT "LARGE AMPLITUDE: COMPATABLE"
880  PRINT "SMALL AMPLITUDE: CONFLICT!"'7'7'7
890  PRINT 
900  PRINT "60% OR GREATER IS CONSIDERED GOOD."
910  REM
920  REM  FIND NAMES AND BIRTH DATES
930  REM
940  PRINT 
950  PRINT "ENTER FIRST PERSONS NAME";
960  INPUT L$
970  PRINT 
980  PRINT "SECOND PERSONS NAME";
990  INPUT M$
1000  PRINT 
1010  PRINT "ENTER "L$"'S BIRTHDATE (MM,DD,YYYY)";
1020  INPUT M,D,Y
1030  M[2]=FNG(Y)
1040  IF M<1 OR M>12 OR M <> INT(M) THEN 2670
1050  IF D<1 OR D>M[M] THEN 2690
1060  IF Y>1880 THEN 1090
1070  PRINT "ENTER ALL FOUR DIGITS OF YEAR"
1080  GOTO 1010
1090  K=2
1100  PRINT 
1110  PRINT "ENTER "M$"'S BIRTHDATE (MM,DD,YYYY)";
1120  INPUT M1,D1,Y1
1130  M[2]=FNG(Y1)
1140  IF M1<1 OR M1>12 OR M1 <> INT(M1) THEN 2670
1150  IF D1<1 OR D1>M[M] THEN 2690
1160  IF Y1>1880 THEN 1290
1170  PRINT "ENTER ALL FOUR DIGITS OF YEAR"
1180  GOTO 1110
1190  J=2
1200  PRINT 
1210  PRINT "PLOT STARTING DATE  (MM,DD,YYYY)";
1220  INPUT M1,D1,Y1
1230  M[2]=FNG(Y1)
1240  IF M1<1 OR M1>12 OR M1 <> INT(M1) THEN 2670
1250  IF D1<1 OR D1>M[M] THEN 2690
1260  IF Y1>1880 THEN 1290
1270  PRINT "ENTER ALL FOUR DIGITS OF YEAR"
1280  GOTO 1210
1290  M[2]=FNG(Y)
1300  GOTO 2730
1310  IF Y <> Y1 THEN 1360
1320  IF M <> M1 THEN 1360
1330  S=D1-D
1340  IF J=1 THEN 1480
1350  GOTO 1500
1360  S=(M[M]-D)+1
1370  M=M+1
1380  IF M<13 THEN 1420
1390  M=1
1400  Y=Y+1
1410  M[2]=FNG(Y)
1420  IF Y <> Y1 THEN 1440
1430  IF M=M1 THEN 1460
1440  S=S+M[M]
1450  GOTO 1370
1460  S=S+D1
1470  IF J=2 THEN 1500
1480  H=S
1490  GOTO 1190
1500  D=D1
1510  PRINT 
1520  PRINT "HOW MANY PLOT DAYS";
1530  INPUT D8
1540  D9=D8*2
1550  PRINT 
1560  REM COMPATABILITY CALCULATION
1570  Z1=ABS(COS((H/46-INT(H/46))*P2))
1580  Z2=ABS(COS((H/56-INT(H/56))*P2))
1590  Z3=ABS(COS((H/66-INT(H/66))*P2))
1600  PRINT "POSITION PAPER, PRESS RETURN"
1610  ENTER 255,T,C$
1620  PRINT "====="
1630  PRINT 
1640  PRINT TAB(12);"BIOSUM CHART FOR ";L$;" & ";M$
1650  PRINT 
1660  Z1=Z1*100
1670  Z2=Z2*100
1680  Z3=Z3*100
1690  PRINT "PERCENT COMPATABILITY BY CYCLE"
1700  PRINT 
1710  PRINT "Physical: ";
1720  PRINT  USING 1770;INT(Z1+.5)
1730  PRINT "Sensitivity: ";
1740  PRINT  USING 1770;INT(Z2+.5)
1750  PRINT '9'9"Intellectual: ";
1760  PRINT  USING 1770;INT(Z3+.5)
1770  IMAGE 3D,"%"
1780  PRINT 
1790  Z0=(Z1+Z2+Z3)/3
1800  PRINT  USING 1810;INT(Z0+.5)
1810  IMAGE 17X,"TOTAL COMPATABILITY:",X,3D,"%"
1820  PRINT 
1830  PRINT TAB(26)"(-)      (0)      (+)"
1840  PRINT 
1850  L0=L0+13
1860  FOR Q=1 TO D9
1870  IF L0<60 THEN 1920
1880  PRINT LIN(L0-65)"====="
1890  PRINT LIN(-2);TAB(26)"(-)      (0)      (+)"
1900  PRINT 
1910  L0=4
1920  REM-PRINT ROUTINE
1930  Z$=""
1940  IF D#INT(D) THEN 2110
1950  M1=M
1960  Y1=Y
1970  IF M1>2 THEN 2000
1980  M1=M1+12
1990  Y1=Y1-1
2000  M1=M1-2
2010  E=INT(FND(INT(2.6*M1-.2)+D+Y1+(Y1/4)-32.95))+1
2020  Z$[1,3]=A$[3*E-2]
2030  Z$[4]=" "
2040  E=D
2050  GOSUB 2560
2060  IF D#1 THEN 2100
2070  Z$[LEN(Z$)+1]=B$[3*M-2,3*M]
2080  E=Y
2090  GOSUB 2570
2100  PRINT Z$;
2110  FOR Z=LEN(Z$)+1 TO 72
2120  Z$[Z,Z]=" "
2130  NEXT Z
2140  FOR Z=1 TO 3
2150  P=5*Z+18
2160  Z[Z]=FNF(S)
2170  NEXT Z
2180  Z$[37,37]=":"
2190  Z$[Z[1],Z[1]]="P"
2200  IF Z[1]#Z[2] OR Z[1]#Z[3] OR Z[2]#Z[3] THEN 2230
2210  Z$[Z[1],Z[1]]="*"
2220  GOTO 2330
2230  IF Z[1]#Z[2] THEN 2260
2240  Z$[Z[3],Z[3]]="I"
2250  GOTO 2270
2260  Z$[Z[2],Z[2]]="S"
2270  IF Z[2]#Z[3] THEN 2300
2280  Z$[Z[2],Z[2]]="*"
2290  GOTO 2330
2300  Z$[Z[3],Z[3]]="I"
2310  IF Z[1]#Z[3] THEN 2330
2320  Z$[Z[3],Z[3]]="*"
2330  FOR Z=12 TO 72
2340  IF Z$[Z,Z]="*" THEN 2400
2350  IF Z$[Z,Z]=":" THEN 2400
2360  IF Z$[Z,Z]="P" THEN 2400
2370  IF Z$[Z,Z]="S" THEN 2400
2380  IF Z$[Z,Z]="I" THEN 2400
2390  GOTO 2420
2400  IF Z$[Z,Z]=" " THEN 2420
2410  PRINT TAB(Z-1);Z$[Z,Z];
2420  NEXT Z
2430  PRINT 
2440  S=S+.5
2450  D=D+.5
2460  IF D<M[M]+1 THEN 2530
2470  D=1
2480  M=M+1
2490  IF M<13 THEN 2530
2500  M=1
2510  Y=Y+1
2520  M[2]=FNG(Y)
2530  L0=L0+1
2540  NEXT Q
2550  GOTO 2920
2560  P=0
2570  Z$[LEN(Z$)+1]=" "
2580  FOR Z=1 TO 0 STEP -1
2590  K=INT(E/10^Z)-10*INT(E/10^(Z+1))+1
2600  IF P+K=1 THEN 2630
2610  P=1
2620  Z$[LEN(Z$)+1]=N$[K,K]
2630  NEXT Z
2640  Z$[LEN(Z$)+1]=" "
2650  RETURN 
2660  REM-DATE VALIDITY CHECK
2670  PRINT '10'7"IMPROPER MONTH"
2680  GOTO 2700
2690  PRINT '10'7"IMPROPER DAY"
2700  GOTO K OF 1010,1110
2710  PRINT '10'7"PLOT STARTING DATE EARLIER THEN BIRTHDAY"
2720  GOTO 1190
2730  REM PUTS YOUNGEST FIRST
2740  IF Y1>Y THEN 1310
2750  IF Y1<Y THEN 2810
2760  IF M1>M THEN 1310
2770  IF M1<M THEN 2810
2780  IF D1>D THEN 1310
2790  IF D1<D THEN 2810
2800  GOTO 1310
2810  IF J=2 THEN 2710
2820  T=Y1
2830  Y1=Y
2840  Y=T
2850  T=M1
2860  M1=M
2870  M=T
2880  T=D1
2890  D1=D
2900  D=T
2910  GOTO 1310
2920  PRINT LIN(L0-65)"====="
2930  END 
