10HOME
20POKE 17059, 6:POKE 17115, 25:TEXT
30VTAB 10:HTAB 11:? "BIORHYTHM"
40?:HTAB 9:? "by BOB EBERLY"
50FOR hold=1 TO 3000
60NEXT hold
100REM :Biorhythm
110REM :Modified for ADAM Bob Eberly  6/84
120 l=0: z=.99999: t=14: p=3.14159265
130TEXT:HOME:? TAB(11); "BIORHYTHM"
140GOSUB 1200:?:?
143INPUT "ENTER YOUR NAME: "; nm$
150? "ENTER BIRTH DATE: "
160GOSUB 500
162 dd=d
164 yy=y
165GOSUB 1300
170GOSUB 600
180 jb=jd
190?:? "ENTER START DATE FOR CHART  "
200GOSUB 500
210GOSUB 600
220 jc=jd
230IF jc>=jb THEN 270
240? "CHART DATE CAN'T BE EARLIER"
250? "THAN BIRTH DATE. TRY AGAIN."
260GOTO 140
270FOR j=1 TO 1000:NEXT
280GOSUB 700
300 n=jc-jb
310 v=23:GOSUB 800:GOSUB 850
320 v=28:GOSUB 800:GOSUB 850
330 v=33:GOSUB 800:GOSUB 850
340GOSUB 1000
350? TAB(1); c$; TAB(9); l$
360 jc=jc+1: l=l+1:IF l<18 THEN 300
370?:? "E = Emotions":? "P = Physical"
371? "I = Intellect":? "* = Two or more of the above combined"
372?:?:?:?:?
373PR #0
375?:? "PRESS 'E' TO END, OR SPACE TO  CONTINUE. "; 
380GET chr$:IF chr$="e" OR chr$="E" THEN END
390IF chr$=" " THEN 120
395GOTO 380
400 l=0:GOTO 280
500?
505INPUT "MONTH(1 to 12)? "; m
510 m=INT(m):IF m<1 OR m>12 THEN 505
520INPUT "DAY  (1 to 31)? "; d
530 d=INT(d):IF d<1 OR d>31 THEN 520
540INPUT "YEAR? "; y
550 y=INT(y):IF y<0 THEN 540
560IF y>99 THEN 580
570 y=y+1900:? y; " ASSUMED."
580RETURN
600 w=INT((m-14)/12+z)
610 jd=INT(1461*(y+4800+w)/4)
620 b=367*(m-2-w*12)/12
630IF b<0 THEN  b=b+z
640 b=INT(b): jd=jd+b
650 b=INT(INT(3*(y+4900+w)/100)/4)
660 jd=jd+d-32075-b
670RETURN
700HOME
705PR #1
707? "This Chart For "; nm$:?
709? "Birthdate "; m$; " "; dd; " "; yy:?
710? TAB(10); "BIORHYTHM"
720?:? TAB(1); "--DATE--"; TAB(12); 
730? "D O W N"; TAB(23); "0"; TAB(29); "U P"
740? TAB(9); u$
750RETURN
800 w=INT(n/v): r=n-w*v
810RETURN
850IF v<>23 THEN 900
855 l$=CHR$(32):FOR j=1 TO 4
860 l$=l$+l$:NEXT
870 l$=l$+LEFT$(l$, 13)
880 l$=LEFT$(l$, t)+CHR$(33)+RIGHT$(l$, t)
890IF v=23 THEN  c$="P"
900IF v=28 THEN  c$="E"
910IF v=33 THEN  c$="I"
920 w=r/v: w=w*2*p
930 w=t*SIN(w): w=w+t+1.5
940 w=INT(w): a$=MID$(l$, w, 1)
950IF a$="P" OR a$="E" OR a$="*" THEN  c$="*"
955IF w=1 THEN 980
957IF w=t+t+1 THEN 990
960 l$=LEFT$(l$, w-1)+c$+RIGHT$(l$, t+t+1-w)
970RETURN
980 l$=c$+RIGHT$(l$, t+t):RETURN
990 l$=LEFT$(l$, t+t)+c$:RETURN
1000 w=jc+68569: r=INT(4*w/146097)
1010 w=w-INT((146097*r+3)/4)
1020 y=INT(4000*(w+1)/1461001)
1030 w=w-INT(1461*y/4)+31
1040 m=INT(80*w/2447)
1050 d=w-INT(2447*m/80)
1060 w=INT(m/11): m=m+2-12*w
1070 y=100*(r-49)+y+w
1080 a$=STR$(m)
1090 c$=a$+"/"
1100 a$=STR$(d)
1110 c$=c$+a$+"/"
1120 a$=STR$(y): w=LEN(a$)
1130 c$=c$+MID$(a$, w-1, 2)
1140RETURN
1200 u$="-":FOR j=1 TO 4
1210 u$=u$+u$:NEXT
1220 u$=u$+LEFT$(u$, 13)
1230RETURN
1300IF m=1 THEN  m$="January"
1310IF m=2 THEN  m$="February"
1320IF m=3 THEN  m$="March"
1330IF m=4 THEN  m$="April"
1340IF m=5 THEN  m$="May"
1350IF m=6 THEN  m$="June"
1360IF m=7 THEN  m$="July"
1370IF m=8 THEN  m$="August"
1380IF m=9 THEN  m$="September"
1390IF m=10 THEN  m$="October"
1400IF m=11 THEN  m$="November"
1410IF m=12 THEN  m$="December"
1420RETURN
1430REM   LAST LINE
