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