Listing of file='BIORYTHM' on disk='vmedia/more_games.wvd.zip'
# Sector 113, program filename = 'BIORYTHM'
0010 REM *BIORYTHM*
: LOAD DC T#6,"GAMES"
0020 REM ******************* B I O S I N E ******************** MICHIGAN
DATASYSTEMS,INC - GRAND RAPIDS, MICHIGAN 3/25/76
0030 DIM Q$(2)64,Q5$64,Q6$64,Q7$1
: DIM U9$8,U8$64
: DIM W$8,W3$3,W4$1,W$(3)8,Q4(3),Q5(3)
: DIM P$1
: DIM B4(1)
: DIM B5(1)
: DIM B6(1)
: DIM D4(1)
: DIM D5(1)
: DIM D6(1)
: SELECT D
: DIM N$30
: DIM S$61
: DIM B$1
: DIM A$30
0040 PRINT HEX(03)
: SELECT P6
: PRINT
: PRINT
: PRINT "DID YOU EVER NOTICE THAT SOME DAYS ARE BETTER THAN OTHERS?"
: PRINT
: PRINT "A * B I O S I N E * CHART MAY HELP TO EXPLAIN WHY"
: SELECT P0
: INPUT "KEY 'RETURN' TO CONTINUE",B$
: PRINT HEX(03)
0050 Q6$="TYPE YOUR NAME"
: GOSUB '243(Q6$,30)
: N$=Q6$
: U8$="ENTER YOUR BIRTH DATE IN THE FORM MM/DD/YY"
: GOSUB '220(U8$)
: D5$=U9$
: D9=U9
: Q5$="HOW MANY DAYS DO YOU WISH TO CHART? ( 1-730 )"
0060 Q3$="1"
: Q4$="730"
: Q3=3
: Q4=0
: Q5=1
: GOSUB '200(Q3$,Q4$,Q3,Q4,Q5$,Q5)
: N6=Q9
: U8$="ENTER TODAY'S DATE IN THE FORM MM/DD/YY"
: GOSUB '220(U8$)
: D6$=U9$
: D6=U9
: STR(P$,1,1)="Y"
: D=0
: U1=D9
: U2=D6
0070 GOSUB '225(U1,U2)
: D=U3
: IF D6-(INT(D6/1000))*1000+N6<=999THEN 80
: Q9=(INT(D6/1000))*1000+999
: GOSUB '224(Q9)
: N6=D6-(INT(D6/1000))*1000+N6-999
: D6=Q9
0080 Q9=D6+N6-1
: GOSUB '224(Q9)
: GOSUB '223(Q9)
: D4$=U9$
: D4=U9
: Q6=10
: Q7=0
: Q8=3
: GOSUB '248(Q6,Q7,Q8)
: PRINT "**** CONGRATULATIONS ON BEING";D;"DAYS OLD ****"
: A$=" "
: B$="^"
0090 P1=D/23.0
: X=INT(D/23)
: P1=(P1-X)*360.0
: S=D/28.0
: X=INT(D/28)
: S=(S-X)*360.0
: C=D/33.0
: X=INT(D/33)
: C=(C-X)*360.0
: PRINT " *** ALIGN FORM TO TOP OF PAGE *** "
0100 PRINT " *** HIT RETURN KEY TO INITIATE PRINTOUT *** "
: INPUT Z9
: SELECT PRINT 215(80)
: N1=0
: GOTO 120
0110 PRINT HEX(0C)
0120 L=16
: N1=N1+1
: PRINT
: PRINT
: PRINT
: PRINT "******************"
: PRINT "******************"
: PRINT
: PRINT "BIO-RHYTHM CHART FOR ",N$
: PRINT "PAGE",N1,D5$
: PRINT D6$, "THROUGH",D4$
: PRINT "******************"
: PRINT "******************"
: PRINT
: PRINT
0130 IF STR(P$,1,1)="Y"THEN 140
: GOTO 150
0140 GOSUB 440
0150 PRINT " DATE ----------------------------- 0 +++++++++++++++++++++
++++++++"
: PRINT
: PRINT
0160 IF L>56THEN 110
: STR(S$,1,30)=STR(A$,1,30)
: STR(S$,31,1)=STR(B$,1,1)
: STR(S$,32,30)=STR(A$,1,30)
: S1=31+SIN(P1)*30
: N=INT(S1)
: STR(S$,N,1)="P"
: S1=31+SIN(S)*30
: N=INT(S1)
: IF STR(S$,N,1)="P"THEN 170
: STR(S$,N,1)="S"
: GOTO 180
0170 STR(S$,N,1)="*"
0180 S1=31+SIN(C)*30
: N=INT(S1)
: IF STR(S$,N,1)="*"THEN 200
: IF STR(S$,N,1)="P"THEN 190
: IF STR(S$,N,1)="S"THEN 190
: STR(S$,N,1)="C"
: GOTO 200
0190 STR(S$,N,1)="*"
0200 CONVERT STR(D6$,1,2)TO B4
: CONVERT STR(D6$,4,2)TO B5
: CONVERT STR(D6$,7,2)TO B6
: GOSUB 290
: IF STR(D6$,1,5)<>STR(D5$,1,5)THEN 210
: PRINT " ***** HAPPY BIRTHDAY, ";
: Z=POS(N$=" ")-1
: PRINT STR(N$,1,Z);" ****"
0210 PRINT
: PRINT " ";S$
: L=L+2
: Q9=D6+1
: GOSUB '224(Q9)
: GOSUB '223(Q9)
: D6$=U9$
: D6=U9
: IF D6>D4THEN 280
: P1=P1+360/23.0
: IF P1>360THEN 220
: GOTO 230
0220 P1=P1-360
0230 S=S+360/28.0
: IF S>360THEN 240
: GOTO 250
0240 S=S-360
0250 C=C+360/33.0
: IF C>360THEN 260
: GOTO 270
0260 C=C-360
0270 GOTO 160
0280 SELECT PRINT 005(64)
: GOTO 20
0290 ON B4GOTO 300,310,320,330,340,350,360,370,380,390,400,410
0300 PRINT "JAN ";
: GOTO 420
0310 PRINT "FEB ";
: GOTO 420
0320 PRINT "MAR ";
: GOTO 420
0330 PRINT "APR ";
: GOTO 420
0340 PRINT "MAY ";
: GOTO 420
0350 PRINT "JUN ";
: GOTO 420
0360 PRINT "JUL ";
: GOTO 420
0370 PRINT "AUG ";
: GOTO 420
0380 PRINT "SEP ";
: GOTO 420
0390 PRINT "OCT ";
: GOTO 420
0400 PRINT "NOV ";
: GOTO 420
0410 PRINT "DEC ";
0420 IF B5>=10THEN 430
: PRINT " ";
0430 PRINT B5;B6;
: RETURN
0440 STR(P$,1,1)=" "
: PRINT " THE BIO-RHYTHM THEORY POSTULATES THAT THERE ARE CERTAIN"
: PRINT "METABOLIC RHYTHMS THAT HAVE A CONSTANT CYCLE IN THE HUMAN"
0450 PRINT "BODY THAT ARE CALLED BY SOME 'INNER CLOCKS'."
: PRINT " TWO PHYSICIANS, ONE A CONTEMPORARY OF FREUD, CONCURRENTLY "
0460 PRINT "DESCRIBED A 23-DAY CYCLE THAT CORRELATED WITH PHYSICAL VITALITY,"
: PRINT "ENDURANCE, AND ENERGY...AND A 28-DAY CYCLE THAT CORRESPONDS"
0470 PRINT "WITH SENSITIVITY, INTUITION, AND CHEERFULNESS."
: PRINT "A THIRD CYCLE WAS OBSERVED IN THE EARLY TWENTIETH CENTURY,"
0480 PRINT "AND IS A 33-DAY COGNITIVE OR INTELLECTUAL CYCLE THAT RELATES"
: PRINT "TO MENTAL ALERTNESS."
: PRINT " ALL THREE CYCLES START UP AT BIRTH -- THE TIME YOU ARE"
0490 PRINT "DETACHED FROM YOUR MOTHER AND HER 'CLOCKS'."
: PRINT " THE DAYS ON WHICH THE MEDIAN LINE (^) IS CROSSED ARE"
: PRINT "CRITICAL, ESPECIALLY FOR THE PHYSICAL AND SENSITIVITY CYCLES,"
0500 PRINT "AND ARE WHEN ACCIDENTS ARE MOST LIKELY TO OCCUR. THE HIGH"
: PRINT "PERIODS (+) ARE THE TIMES WHEN YOU SHOULD HAVE THE MOST "
0510 PRINT "ENERGY, BE MOST CHEERFUL, OUT-GOING, AND MENTALLY ALERT."
: PRINT "THE LOW TIMES (-) ARE REGARDED AS RECUPERATIVE PERIODS."
0520 PRINT " IN A STUDY OF 700 RANDOM ACCIDENTS, IT WAS FOUND THAT"
: PRINT "NEARLY 60% OF THEM HAPPENED ON CRITICAL DAYS -- EVEN THOUGH"
: PRINT "ONLY 20% OF YOUR DAYS ARE 'CRITICAL'."
0530 PRINT "CERTAIN BUS COMPANIES SCHEDULE THEIR DRIVERS IN RELATION TO"
: PRINT "THEIR BIO-RHYTHMS, AND HAVE NOTICED A MARKED REDUCTION IN"
: PRINT "ACCIDENTS."
0540 PRINT " ALTHOUGH ALL CYCLES ARE SAID TO START AT BIRTH, BIO-RHYTHMS"
: PRINT "HAVE NOTHING TO DO WITH ASTROLOGY."
: PRINT " THIS PROGRAM WAS ADAPTED FROM ONE PREPARED AT THE"
0550 PRINT "UNIVERSITY OF CALIFORNIA AT BERKELEY. THIS PRESENT VERSION "
: PRINT "IS WRITTEN IN B A S I C , A PRODUCT OF WANG LABORATORIES."
0560 PRINT " P = PHYSICAL ( 23 DAYS )"
: PRINT " S = SENSITIVITY ( 28 DAYS )"
0570 PRINT " C = COGNITIVE ( 33 DAYS )"
: PRINT " AN ASTERISK MEANS THAT MORE THAN ONE CYCLE HAS THE SAME VALUE
"
: PRINT "THAT DAY."
: PRINT
: PRINT
: PRINT
: L=L+38
: RETURN
0580 DEFFN'220(U8$)
0590 GOSUB '243(U8$,8)
: GOSUB '221(Q6$)
: IF Q6$= "E"THEN 590
: GOSUB '223(U9)
: GOSUB '248(1,0,3)
: PRINT "IS DATE OK? (Y/N)",U9$,U9
0600 GOSUB '244(1)
: IF Q6$= "N"THEN 580
: IF Q6$<> "Y"THEN 600
: RETURN
0610 DEFFN'221(Q6$)
: U9$=Q6$
: IF Q6$= " "THEN 760
: IF NUM(Q6$)=0THEN 760
: IF POS(Q6$="/")-1<>NUM(Q6$)THEN 760
: CONVERT STR(Q6$,1,NUM(Q6$))TO U8
: IF U8<1THEN 760
: IF U8>12THEN 760
: STR(Q6$,1)=STR(Q6$,POS(Q6$="/")+1)
: IF NUM(Q6$)=0THEN 760
: IF POS(Q6$="/")-1<>NUM(Q6$)THEN 760
0620 CONVERT STR(Q6$,1,NUM(Q6$))TO U6
: IF U6<1THEN 760
: IF U6>31THEN 760
: STR(Q6$,1)=STR(Q6$,POS(Q6$="/")+1)
: IF NUM(Q6$)<>64THEN 760
: CONVERT Q6$TO U0
: U7=(1-SGN(U0-INT(U0/4)*4))*SGN((U8-1)*(U8-2))
0630 ON U8GOTO 750,740,730,720,710,700,690,680,670,660,650,640
0640 U7=U7+30
0650 U7=U7+31
0660 U7=U7+30
0670 U7=U7+31
0680 U7=U7+31
0690 U7=U7+30
0700 U7=U7+31
0710 U7=U7+30
0720 U7=U7+31
0730 U7=U7+28
0740 U7=U7+31
0750 U9=U7+U6+U0*1000
: RETURN
0760 Q6$= "E"
: RETURN
0770 DEFFN'222(U8$)
: GOSUB '245(U8$,5,0)
: GOSUB '223(Q9)
: GOSUB '221(U9$)
: GOSUB '248(1,0,3)
: PRINT "IS DATE OK? (Y/N)",U9$,U9
0780 GOSUB '244(1)
: IF Q6$= "N"THEN 770
: IF Q6$<> "Y"THEN 780
: RETURN
0790 DEFFN'223(U9)
: U1=INT(U9/1E3)
: U2=U9-U1*1E3
: U3=1-SGN(U1-INT(U1/4)*4)
: IF U2<=334+U3THEN 800
: U4=U2-334-U3
: U5=12
: GOTO 910
0800 IF U2<=304+U3THEN 810
: U4=U2-304-U3
: U5=11
: GOTO 910
0810 IF U2<=273+U3THEN 820
: U4=U2-273-U3
: U5=10
: GOTO 910
0820 IF U2<=243+U3THEN 830
: U4=U2-243-U3
: U5=9
: GOTO 910
0830 IF U2<=212+U3THEN 840
: U4=U2-212-U3
: U5=8
: GOTO 910
0840 IF U2<=181+U3THEN 850
: U4=U2-181-U3
: U5=7
: GOTO 910
0850 IF U2<=151+U3THEN 860
: U4=U2-151-U3
: U5=6
: GOTO 910
0860 IF U2<=120+U3THEN 870
: U4=U2-120-U3
: U5=5
: GOTO 910
0870 IF U2<=90+U3THEN 880
: U4=U2-90-U3
: U5=4
: GOTO 910
0880 IF U2<=59+U3THEN 890
: U4=U2-59-U3
: U5=3
: GOTO 910
0890 IF U2<=31THEN 900
: U4=U2-31
: U5=2
: GOTO 910
0900 U4=U2
: U5=1
0910 CONVERT U5TO STR(U9$,1,2),(##)
: CONVERT U4TO STR(U9$,4,2),(##)
: CONVERT U1TO STR(U9$,7,2),(##)
: STR(U9$,3,1),STR(U9$,6,1)="/"
: RETURN
0920 DEFFN'224(Q9)
: U2=INT(365.25*(INT(Q9/1E3)-1))+Q9-INT(Q9/1E3)*1E3
: Q9=INT(U2/365.25)-1+SGN((U2/365.25)-INT(U2/365.25))
: Q9=Q9*1E3+(U2-INT(365.25*Q9))+1E3
: RETURN
0930 DEFFN'225(U1,U2)
: U3=INT(365.25*(INT(U2/1E3)-1))+U2-INT(U2/1E3)*1E3
: U3=U3-(INT(365.25*(INT(U1/1E3)-1))+U1-INT(U1/1E3)*1E3)
: RETURN
0940 DEFFN'200(Q$(1),Q$(2),Q3,Q4,Q5$,Q5)
0950 SELECT PRINT 005(64)
: PRINT HEX(010A);Q5$;TAB(63)
: PRINT "? ";
: FOR Q8=1TO Q3
: PRINT "-";
: NEXT Q8
: IF Q5=2THEN 960
: PRINT "/";
: IF Q4=0THEN 960
: FOR Q8=1TO Q4
: PRINT "-";
: NEXT Q8
0960 PRINT TAB(63)
: PRINT HEX(010A0A0909);
: Q8=0
: INIT(20)Q6$
: Q7$= "0"
: Q6=0
0970 Q9$= " "
: KEYIN Q9$,980,970
: GOTO 970
0980 IF Q9$=HEX(0D)THEN 1030
: IF Q9$=HEX(08)THEN 1060
: IF Q9$=HEX(E5)THEN 950
: PRINT Q9$;
: IF Q5=2THEN 1100
: ON VAL(Q9$)-42GOTO 1000,990,1000,1010
0990 IF Q9$<HEX(30)THEN 1050
: IF Q9$>HEX(39)THEN 1050
: GOTO 1020
1000 IF Q8<>0THEN 1050
: Q6=1
: GOTO 1020
1010 IF POS(Q6$=".")=0THEN 1020
: IF POS(Q6$=".")<>Q8+1THEN 1050
1020 Q8=Q8+1
: STR(Q6$,Q8,1)=Q9$
: GOTO 970
1030 PRINT HEX(070D0A)
: PRINT TAB(63)
: IF Q5=2THEN 1110
: IF Q8=0THEN 1050
: IF Q8>13THEN 1050
: IF Q8>Q3+Q4THEN 1050
: Q7=POS(Q6$= ".")
: IF Q7=0THEN 1040
: IF Q7>Q3+Q6+1THEN 1050
: IF Q8-Q7>Q4THEN 1050
1040 CONVERT STR(Q6$,1,Q8)TO Q9
: CONVERT Q$(1)TO Q6
: CONVERT Q$(2)TO Q7
: IF Q9<Q6THEN 1050
: IF Q9<=Q7THEN 1120
1050 PRINT HEX(07)
: PRINT HEX(010A0A0A);"INVALID. RE-ENTER"
: GOTO 950
1060 Q8=Q8-1
: IF Q8<0THEN 1050
: STR(Q6$,Q8+1,1)= " "
: IF Q8=Q3THEN 1090
: IF Q8<=Q3+Q4THEN 1080
1070 PRINT HEX(082008);
: GOTO 970
1080 PRINT HEX(082D08);
: GOTO 970
1090 IF Q5<>1THEN 1070
: PRINT HEX(082F08);
: GOTO 970
1100 IF Q9$<HEX(20)THEN 1050
: IF Q9$>HEX(7F)THEN 1050
: GOTO 1020
1110 IF Q8>Q3THEN 1050
: IF Q6$<Q$(1)THEN 1050
: IF Q6$>Q$(2)THEN 1050
1120 RETURN
1130 DEFFN'242(W0,Q6$)
: IF W0<=0THEN 1150
: IF W0=1THEN 1140
: STR(Q6$,2)=STR(Q6$,1,W0-1)
1140 PRINT Q6$;
1150 RETURN
1160 DEFFN'243(Q6$,Q0)
: GOSUB 1280
1170 SELECT CO 205
: Q6$=" "
: INPUT Q6$
: IF Q0=0THEN 1310
: IF LEN(Q6$)<=Q0THEN 1310
: GOSUB 1270
1180 DEFFN'244(Q0)
: GOSUB 1300
: GOSUB 1290
: GOTO 1170
1190 DEFFN'245(Q6$,Q2,Q3)
: Q0=ABS(Q2)+Q3+1
: GOSUB 1280
1200 IF ABS(Q2)+ABS(Q3)=0THEN 1210
: GOSUB '242(ABS(Q2)+2,HEX(09))
: PRINT "/"
: GOTO 1220
1210 PRINT ,," "
1220 GOSUB 1300
: SELECT CO 205
: Q9,W0=-1E-99
: INPUT Q9
: IF W0=Q9THEN 1230
: IF ABS(Q2)+Q3=0THEN 1260
: IF Q9>=0THEN 1250
: IF Q2<=0THEN 1250
1230 GOSUB 1270
1240 DEFFN'246(Q2,Q3)
: Q0=ABS(Q2)+Q3+1
: GOSUB 1300
: GOSUB 1290
: GOTO 1200
1250 IF ABS(Q9)>=10^ABS(Q2)THEN 1230
: W0=ABS(Q9*10^Q3)
: IF INT(W0)<>W0THEN 1230
1260 GOSUB '248(3,0,1)
: RETURN
1270 GOSUB '248(3,0,1)
: PRINT "RE-ENTER"
: RETURN
1280 SELECT PRINT 005(64),CO 005
: PRINT HEX(010A);STR(Q6$,1);
1290 SELECT PRINT 005(64),CO 005
: GOSUB '242(Q0+2,"-")
: PRINT TAB(64)
1300 PRINT HEX(010A0A)
: RETURN
1310 PRINT HEX(0A);TAB(64)
: SELECT PRINT 005(64),CO 005
: RETURN
1320 DEFFN'248(Q6,Q7,Q8)
: GOSUB 1340
: IF Q8<1THEN 1330
: GOSUB 1330
: SELECT PRINT 205
: Q6$=" "
: PRINT STR(Q6$,Q7+1)
: IF Q8<2THEN 1330
: FOR W0=2TO Q8
: PRINT HEX(0A);STR(Q6$,1)
: NEXT W0
1330 PRINT HEX(01)
: GOSUB '242(Q7,HEX(09))
: GOSUB '242(Q6,HEX(0A))
1340 SELECT PRINT 005(64),CO 005
: RETURN