10  REM--LEFONT KAO, JAN. 21ST, 1982.
15  PRINT "BIORHYTM - WRITTEN BY LEFONT KAO, BHS"
20  PRINT CHR$(26)
30  IF  ERROR  THEN 1270
40  DIM Y$[10],A$[25]
50  PRINT "THIS PROGRAMME WILL GRAPH YOUR BIORHYTHM."
60  PRINT 
70  PRINT "WHAT IS YOUR NAME";
80  INPUT A$
90  PRINT "ENTER YOUR BIRTHDAY(MM,DD,YYYY)";
100  REM--DAYS COUNTING ROUTINE STARTS
110  INPUT A,B,C
120  PRINT "ENTER THE MONTH, DATE, AND YEAR THE GRAPH SHOULD START.(MM,DD,YYYY)"
130  INPUT M,D1,F
140  IF F-C>120 OR F-C<0 THEN 1210
150  IF M<0 OR M>12 THEN 1270
160  PRINT 
170  PRINT "BIORHYTHM FOR "A$
180  PRINT 
190  PRINT 
200  PRINT "E=EMOTIONAL, P=PHYSICAL, *=INTELLECTUAL."
210  PRINT 
220  PRINT "DATE";
230  PRINT TAB(20)"MONTH                   YEAR"
240  PRINT TAB(22);M;
250  PRINT TAB(43);F
260  LET G=H=H1=H2=Q=0
270  FOR Y=C TO F-2
280  LET H=H+365
290  NEXT Y
300  IF F/4 <> INT(F/4) THEN 370
310  IF M <> 2 THEN 330
320  LET G=1
330  IF M >= 3 THEN 350
340  GOTO 370
350  LET H1=INT((F-C)/4+.25)
360  GOTO 380
370  LET H1=INT((F-C)/4)
380  LET H=H+H1
390  FOR Y1=1 TO A
400  READ S
410  NEXT Y1
420  LET D=S-B
430  FOR Y2=1 TO 12-A
440  READ S
450  LET H2=H2+S
460  NEXT Y2
470  LET H=H+H2+D
480  RESTORE 
490  FOR Y3=1 TO M-1
500  READ S
510  LET H=H+S
520  NEXT Y3
530  DATA 31,28,31,30,31,30,31,31,30,31,30,31
540  REM--DAYS COUNTING ROUTINE ENDS
550  LET E1=(H/28-INT(H/28))*28+.3
560  LET P1=(H/23-INT(H/23))*23+.3
570  LET I1=(H/33-INT(H/33))*33+.3
580  GOSUB 1150
590  READ S
600  FOR N=D1 TO S+G
610  LET Q=Q+1
620  IF Q<D1 THEN 610
630  PRINT N;
640  LET E=25*SIN((E1+Q)/28*3.14159*2)
650  LET P=25*SIN((P1+Q)/23*3.14159*2)
660  LET I=25*SIN((I1+Q)/33*3.14159*2)
670  LET A[1]=E+35
680  LET A[2]=P+35
690  LET A[3]=I+35
700  LET A[4]=35
710  FOR X=1 TO 3
720  FOR J=X+1 TO 4
730  IF A[X]<A[J] THEN 770
740  LET T=A[X]
750  LET A[X]=A[J]
760  LET A[J]=T
770  NEXT J
780  NEXT X
790  FOR K=1 TO 4
800  IF A[K]=E+35 THEN 860
810  IF A[K]=P+35 THEN 890
820  IF A[K]=I+35 THEN 920
830  IF A[K]=35 THEN 950
840  NEXT K
850  GOTO 970
860  LET V1=35+INT(E)
870  PRINT TAB(V1)"E";
880  GOTO 840
890  LET V2=35+INT(P)
900  PRINT TAB(V2)"P";
910  GOTO 840
920  LET V3=35+INT(I)
930  PRINT TAB(V3)"*";
940  GOTO 840
950  PRINT TAB(35)"I";
960  GOTO 840
970  PRINT 
980  NEXT N
990  GOSUB 1150
1000  PRINT "CONTINUE (YES/NO)";
1010  INPUT Y$
1020  IF Y$="YES" THEN 1070
1030  IF Y$="NO" THEN 1320
1040  PRINT 
1050  PRINT "I DON'T UNDERSTAND THAT RESPOND, PLEASE REPLY AGAIN.";
1060  GOTO 1010
1070  LET D1=1
1080  IF M=13 THEN 1110
1090  LET M=M+1
1100  GOTO 1130
1110  LET M=1
1120  LET F=F+1
1130  RESTORE 
1140  GOTO 210
1150  PRINT 
1160  PRINT TAB(17)"(-)";
1170  PRINT TAB(35)"0";
1180  PRINT TAB(53)"(+)"
1190  PRINT 
1200  RETURN 
1210  PRINT 
1220  PRINT "THIS PROGRAMME IS INTENDED FOR HUMANS WHO GENERALLY DO NOT"
1230  PRINT "LIVE TO BE"F-C", "A$"."
1240  PRINT "IF YOU AREN'T HUMAN, THEN LOG OFF!!"
1250  PRINT 
1260  GOTO 120
1270  PRINT 
1280  PRINT "THE DATA YOU HAVE GIVEN ARE IN ERROR!"
1290  PRINT "PLEASE REDO THE FOLLOWING:"
1300  PRINT 
1310  GOTO 90
1320  PRINT 
1330  PRINT "CATCH YOU LATER, "A$
1340  END 
