100 '******************************** 110 '* BIORHYTHM GENERATOR 120 '* BY SUE RATKOWSKI 70210,357 130 '* 140 '* THIS PROGRAM IS IN THE 150 '* PUBLIC DOMAIN -- 1983 160 '* 170 '* WRITTEN FOR THE RADIO SHACK 180 '* CGP-115 COLOR GRAPHICS PRINTER 190 '********************************* 200 CLEAR 1000:DEFSNG A-Z 210 MN$="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" 220 CLS:PRINT STRING$(39,"*") 230 PRINT"WHICH MONTH WOULD YOU LIKE A" 240 INPUT"BIORHYTHM FOR (1=JAN,12=DEC)";M 250 IF M<1 OR M>12 THEN 220 260 INPUT"OF WHICH YEAR (YYYY)";L 270 IF L<1900 OR L>2050 THEN 260 280 M$=MID$(MN$,((M-1)*3)+1,3) 290 PRINT STRING$(39,"*") 300 LPRINT CHR$(18):LPRINT"C0":LPRINT"S1":LPRINT CHR$(17) 310 LPRINT TAB(5) STRING$(25,"*") 320 LPRINT TAB(7) " BIORHYTHM FOR" 330 LPRINT TAB(14) M$;" ";L:LPRINT TAB(5) STRING$(25,"*") 340 N=1 350 GOSUB 1000 360 GOSUB 900 370 O=A 380 INPUT"WHO IS THE BIORHYTHM FOR";A$ 390 INPUT"YOUR BIRTH YEAR (YYYY)";L 400 INPUT"BIRTH MONTH (M)";M 410 M$=MID$(MN$,((M-1)*3)+1,3) 420 INPUT"BIRTH DAY (D) ";N 430 LPRINT TAB(5) "NAME - ";A$ 440 LPRINT TAB(5) "BIRTHDAY - ";M$;" ";N;",";L 450 GOSUB 900 460 P=A:A=O-P 470 LPRINT CHR$(18):LPRINT "C2":LPRINT CHR$(17) 480 LPRINT TAB(5) " -- PHYSICAL":LPRINT CHR$(11);CHR$(11) 490 LPRINT CHR$(18):LPRINT "C3":LPRINT CHR$(17) 500 LPRINT TAB(5) " -- EMOTIONAL":LPRINT CHR$(11);CHR$(11) 510 LPRINT CHR$(18):LPRINT "C1":LPRINT CHR$(17) 520 LPRINT TAB(5) " -- INTELLECTUAL" 530 '----- DRAW X AND Y AXES -------------------- 540 LPRINT CHR$(18):LPRINT "C0":LPRINT CHR$(17) 550 LPRINT " (-) (+)":LPRINT CHR$(11);CHR$(11) 560 LPRINT CHR$(18):LPRINT "A":LPRINT CHR$(18) 570 LPRINT "M240,0":LPRINT "I" ' SET ORIGIN IN MIDDLE OF PAGE 580 LPRINT "X1,-20,10":LPRINT "X1,20,20" 'DRAW AXIS ACROSS PAGE 590 LPRINT "H" 'HOME PEN TO ORIGIN 600 LPRINT "X";0;",";-20;",";I 'DRAW AXIS DOWN PAGE 610 LPRINT "X1,-20,10":LPRINT "X1,20,20":LPRINT "H" 620 '---- END OF DRAW AXES ROUTINE ----- 630 '----- CALCULATE CYCLE FACTORS ---------- 640 B=INT(A/23):B=A-(23*B) 650 C=INT(C/28):C=A-(28*C) 660 D=INT(D/33):D=A-(33*D) 670 FOR J=1 TO 3 680 '---- CHANGE COLORS -------------- 690 IF J=1 THEN LPRINT "C1" 700 IF J=2 THEN LPRINT "C2" 710 IF J=3 THEN LPRINT "C3" 720 FOR Y=0 TO I 730 '----- CALCULATE VALUE OF FUNCTION ------- 740 '----- NOTE: SIN REQUIRES ARG IN RADIANS! 750 IF J=2 THEN X=(B+Y)/23*360:X=X/57.3:X=SIN(X)*150 760 IF J=3 THEN X=(C+Y)/28*360:X=X/57.3:X=SIN(X)*150 770 IF J=1 THEN X=(D+Y)/33*360:X=X/57.3:X=SIN(X)*150 780 Z=Y*(-20) 790 IF Y=0 THEN LPRINT "M";X;",";Z 800 IF Y>0 THEN LPRINT "D";X;",";Z 810 NEXT Y 820 LPRINT "H" 830 NEXT J 840 LPRINT "M0,-750":LPRINT "C0":LPRINT CHR$(17) 850 END 900 IF M>2 THEN M=M+1:GOTO 920 910 L=L-1:M=13+M 920 A=INT(365.25*L)+INT(30.6*M)+N 930 RETURN 1000 IF (M=4) OR (M=6) OR (M=9) OR (M=11) THEN I=30:GOTO 1100 1010 'THE ABOVE LINE HANDLES APRIL,JUNE,SEPT, AND NOVEMBER 1020 IF (M=2) THEN 1040 'FEBRUARY 1030 I=31:GOTO 1100 'ALL THE OTHER MONTHS 1040 K=INT(L/4)-(L/4) 'YEAR DIVISIBLE BY 4? K=0 MEANS YES 1050 IF K<>0 THEN I=28: GOTO 1100 'YEAR IS NOT A LEAP YEAR 1060 K=INT(L/100)-(L/100) 'CENTURY YEAR? E.G. 1900? 1070 IF K<>0 THEN I=29:GOTO 1100 'NOT A CENTURY YEAR 1080 K=INT(L/400)-(L/400) 'IS CENTURY DIVISIBLE BY 400? 1090 IF K=0 THEN I=29 ELSE I=28 1100 RETURN