10  DIM J$[3]
12  DIM A1$[80]
13  SYSTEM A1$,"TIM"
14  IF A1$[1,4]="B000" THEN 16
15  GOTO 20
16  PRINT "B000 -- NOT ALLOWED"'7
17  STOP 
20  REM COPYRIGHT 1971 BY THE REGENTS OF THE UNIV. OF CALIF.
30  REM PRODUCED AT THE LAWRENCE HALL OF SCIENCE, BERKELEY
40  PRINT "THIS IS A BIORHYTHM CHART"
50  DIM A$[21],B$[36],C$[72],N$[10],A[12]
60  N$="0123456789"
70  MAT  READ A
80  DEF FNY()=29-SGN(/4-INT(/4))
90  DEF FNS()=INT(14*SIN((/P-INT(/P))*6.28318)+30.5)
100  DEF FNM()=7*(/7-INT(/7))
110  A$="SATSUNMONTUEWEDTHUFRI"
120  B$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC"
130  PRINT "DO YOU KNOW WHAT BIORHYTHM IS";
140  INPUT C$
150  IF C$[1,1]="Y" THEN 420
160  PRINT '10'10"    THE BIORHYTHM THEORY POSTULATES THAT THERE ARE CERTAIN META-"
170  PRINT "BOLIC RHYTHMS THAT HAVE A CONSTANT CYCLE TIME IN THE HUMAN BODY"
180  PRINT "AND ARE KNOWN AS INNER CLOCKS."
190  PRINT "    TWO PHYSICIANS, ONE A CONTEMPORARY OF FREUD, CONCURRENTLY"
200  PRINT "DESCRIBED A 23-DAY CYCLE THAT CORRELATED WITH PHYSICAL VITALITY,"
210  PRINT "ENDURANCE AND ENERGY, AND A 28-DAY CYCLE THAT CORRESPONDS TO"
220  PRINT "SENSITIVITY, INTUITION AND CHEERFULNESS.  A THIRD CYCLE WAS"
230  PRINT "OBSERVED BY A PROFESSOR AND OTHERS IN THE 1920'S AND 30'S AND IS"
240  PRINT "A 33-DAY COGNITIVE OR INTELLECTUAL CYCLE THAT RELATES TO MENTAL"
250  PRINT "ALERTNESS AND JUDGEMENT."
260  PRINT "    ALL THREE CYCLES START UP FROM BIRTH OR THE BEGINNING OF"
270  PRINT "INDEPENDENT LIFE."
280  PRINT "    THE DAYS ON WHICH THE MEDIAN (0) LINE IS CROSSED ARE CALLED"
290  PRINT "CRITICAL DAYS, ESPECIALLY FOR THE PHYSICAL AND SENSITIVITY CYCLES,"
300  PRINT "AND ARE DAYS WHEN ACCIDENTS ARE MOST LIKELY TO OCCUR.  THE HIGH"
310  PRINT "(+) PERIODS IN THE VARIOUS CYCLES ARE THE TIMES WHEN YOU SHOULD"
320  PRINT "HAVE THE MOST ENERGY, BE MOST CHEERFUL, OUTGOING AND MENTALLY"
330  PRINT "ALERT.  THE LOW (-) TIMES ARE REGARDED AS THE RECUPERATIVE PERIODS."
340  PRINT "    ALTHOUGH ALL CYCLES ARE SAID TO START FROM ZERO AT THE TIME"
350  PRINT "OF BIRTH, BIORHYTHM HAS NOTHING TO DO WITH ASTROLOGY."
360  PRINT "    A TOKYO TAXI COMPANY HAS REPORTED A 60% CUT IN ACCIDENTS BY"
370  PRINT "GIVING DRIVERS AN 'EXTRA-CAREFUL-TODAY' REMINDER ON CRITICAL DAYS."
380  PRINT '10"GRAPH SYMBOLS:"'13'10'10"    I : MEDIAN LINE        (0 LINE)"
390  PRINT "    P : PHYSICAL CYCLE     (23-DAY)"
400  PRINT "    S : SENSITIVITY CYCLE  (28-DAY)"
410  PRINT "    C : COGNITIVE CYCLE    (33-DAY)"
420  K=1
430  PRINT '10'10"BIRTHDAY  (MM,DD,YYYY)";
440  INPUT M,D,Y
450  Y=INT(100.1*(Y/100-INT(Y/100)))
460  A[2]=FNY(Y)
470  IF M<1 OR M>12 OR ABS(M)#INT(M) THEN 1380
480  IF D<1 OR D>A[M] OR INT(D)#ABS(D) THEN 1400
490  K=2
500  PRINT "PLOT STARTING DATE  (MM,DD,YYYY)";
510  INPUT M1,D1,Y1
520  Y1=INT(100.1*(Y1/100-INT(Y1/100)))
530  A[2]=FNY(Y1)
540  IF M1<1 OR M1>12 OR ABS(M1)#INT(M1) THEN 1380
550  IF D1<1 OR D1>A[M] OR INT(D1)#ABS(D1) THEN 1400
560  A[2]=FNY(Y)
570  IF Y#Y1 OR M#M1 THEN 610
580  S=D1-D
590  IF S<0 THEN 1420
600  GOTO 710
610  S=(A[M]-D)+1
620  M=M+1
630  IF M<13 THEN 670
640  M=1
650  Y=Y+1
660  A[2]=FNY(Y)
670  IF Y=Y1 AND M=M1 THEN 700
680  S=S+A[M]
690  GOTO 620
700  S=S+D1
710  D=D1
720  PRINT '10'10;TAB(20);"(-)     (0)     (+)"'10
730  C$=""
740  IF D#INT(D) THEN 910
750  M1=M
760  Y1=Y
770  IF M1>2 THEN 800
780  M1=M1+12
790  Y1=Y1-1
800  M1=M1-2
810  E=INT(FNM(INT(2.6*M1-.2)+D+Y1+(Y1/4)-32.95))+1
820  C$[1,3]=A$[3*E-2]
830  C$[4]=" "
840  E=D
850  GOSUB 1270
860  IF D#1 THEN 900
870  C$[LEN(C$)+1]=B$[3*M-2,3*M]
880  E=Y
890  GOSUB 1280
900  PRINT C$;
910  FOR X=LEN(C$)+1 TO 72
920  C$[X,X]=" "
930  NEXT X
940  FOR X=1 TO 3
950  P=5*X+18
960  X[X]=FNS(S)
970  NEXT X
980  C$[30,30]="I"
990  C$[X[1],X[1]]="P"
1000  IF X[1]#X[2] OR X[1]#X[3] OR X[2]#X[3] THEN 1030
1010  C$[X[1],X[1]]="*"
1020  GOTO 1120
1030  IF X[1]#X[2] THEN 1060
1040  C$[X[3],X[3]]="C"
1050  GOTO 1070
1060  IF X[2]#X[3] THEN 1090
1070  C$[X[2],X[2]]="*"
1080  GOTO 1120
1090  C$[X[2],X[2]]="S"
1100  IF X[1]=X[3] THEN 1010
1110  C$[X[3],X[3]]="C"
1120  FOR X=15 TO 72
1130  IF C$[X,X]=" " THEN 1150
1140  PRINT TAB(X-1);C$[X,X];
1150  NEXT X
1160  PRINT 
1170  S=S+.5
1180  D=D+.5
1190  IF D<A[M]+1 THEN 730
1200  D=1
1210  M=M+1
1220  IF M<13 THEN 730
1230  M=1
1240  Y=Y+1
1250  A[2]=FNY(Y)
1260  GOTO 730
1270  P=0
1280  C$[LEN(C$)+1]=" "
1290  FOR X=1 TO 0 STEP -1
1300  K=INT(E/10^X)-10*INT(E/10^(X+1))+1
1310  IF P+K=1 THEN 1350
1320  P=1
1330  C$[LEN(C$)+1]=N$[K,K]
1340  GOTO 1350
1350  NEXT X
1360  C$[LEN(C$)+1]=" "
1370  RETURN 
1380  PRINT '10'7"IMPROPER MONTH"
1390  GOTO 1410
1400  PRINT '10'7"IMPROPER DAY"
1410  GOTO K OF 430,500
1420  PRINT '10'7"PLOT STARTING DATE EARLIER THEN BIRTHDAY"
1430  GOTO 500
1440  DATA 31,28,31,30,31,30,31,31,30,31,30,31
1450  END 
