10 'COPYRIGHT [C] 1977 BY W.A.BURTON. ALL RIGHTS RESERVED
20 DIM A(12), M$(12)
30 DATA 1,31,59,90,120,151,181,212,243,273,304,334
40 FOR I=1 TO 12: READ A(I): NEXT
50 PI=3.14159:P1=1:P2=0:QP=0
60 INPUT" INSTRUCTIONS (Y OR N)";Z$
70 IF Z$="Y"THEN GOSUB 660
80 INPUT"FOR HOW MANY DAYS DO YOU WANT THIS CHART";DL
90 INPUT"STARTING DATE OF YOUR ANALYSIS   ";M,D,Y
100 INPUT"WHAT IS THE DAY OF YOUR BIRTH  ";MB,DB,YB
110 INPUT"WHAT IS YOUR NAME  "; A$
120 DEF FNI(X)=INT(25*SIN(2*PI*X/33)+.5)
130 DEF FNE(X)=INT(25*SIN(2*PI*X/28)+.5)
140 DEF FNP(X)=INT(25*SIN(2*PI*X/23)+.5)
150 T=INT(D+365.25*Y+A(M)+.01*M-.03)
160 TB=INT(DB+365.25*YB+A(MB)+.01*MB-.03)
170 X=T-TB
180 RB=TB-1-INT((TB-1)/7)*7
190 DATA MON,TUE,WED,THU,FRI,SAT,SUN
200 FOR I=0 TO 6:READ D$(I):NEXT
210 DATA JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC
220 FOR I=1 TO 12:READ M$(I):NEXT
230 GOSUB 1090
240 R=T-1-INT((T-1)/7)*7
250 LE=21+LEN(DAY$(R))+LEN(M$(M))+LEN(STR$(D))+LEN(RIGHT$(STR$(V),2))
260 LPRINT"STARTING DATE:  ";D$(R)", ";M$(M)STR$(D);", 19";
270 LPRINT RIGHT$(STR$(Y),2),
280 LPRINT"BIRTH DATE:  "D$(RB)", "M$(MB)STR$(DB)", 19";
290 LPRINT RIGHT$(STR$(YB),2)
300 GOSUB 1110
310 LPRINT D$(R)D;M$(M);TAB(10)":";
320 C$=":"
330 F(0)=42:F$(0)=C$
340 F(1)=42+FNI(X):F$(1)="I"
350 F(2)=42+FNE(X):F$(2)="E"
360 F(3)=42+FNP(X):F$(3)="P"
370 FOR I=0 TO 2
380 FOR J=I+1 TO 3
390 IF F(I)<F(J)THEN 440
400 IF F(I)=(J)THEN F(I)=0:F$(I)="":F$(J)="X":GOTO 440
410 Q=F(I):Q$=F$(I)
420 F(I)=F(J):F$(I)=F$(J)
430 F(J)=Q:F$(J)=Q$
440 NEXT J:NEXT I
450 FOR I=0 TO 3
460 IF F(I)=42 AND F$(I)<>":"THEN GOSUB 820
470 NEXT
480 FOR I=0 TO 3
490 LPRINT TAB(F(I));F$(I);
500 NEXT
510 LPRINT:X=X+1
520 IF P2>52 THEN 880
530 P2=P2+1
540 IF Z=DL THEN 640
550 R=R+1:IF R=7 THEN R=0
560 D=D+1:IF M=4 OR M=6 OR M=9 OR M=11 THEN L=30:GOTO 600
570 IF M=2 AND Y/4=INT(Y/4) THEN L=29:GOTO 600
580 IF M=2 THEN L=28:GOTO 600
590 L=31
600 IF D>L THEN D=D-L:M=M+1:GOTO 620
610 LPRINT D$(R);D;TAB(10)":";:Z=Z+1:GOTO 330
620 IF M=13 THEN M=1:Z=Z+1:GOTO 310
630 Z=Z+1:GOTO 310
640 QP=2:GOTO 880
650 END
660 PRINT"ENTER DATES AS FOLLOWS: MM,DD,YY - IGNORE LEADING ZEROS"
670 PRINT"EXAMPLE: ENTER PEARL HARBOR DAY AS - 12,7,41"
680 PRINT
690 PRINT"FOR FURTHER INFO TYPE 'GOTO 940', OTHERWISE 'GOTO 80'"
700 END
710 LPRINT
720 LPRINT"TO DETERMINE WHICH DAYS ARE CRITICAL FOR YOU, EXAMINE THE"
730 LPRINT"THREE CURVES (P,E, AND I); WHENEVER A CURVE CROSSES THE CRITICAL"
740 LPRINT"LINE I.E. GOES FROM 'UP' TO 'DOWN' OR VICE-VERSA, THEN THAT"
750 LPRINT"WILL BE ONE OF YOUR CRITICAL DAYS."
760 LPRINT
770 LPRINT"      I=INTELLECTUAL   33 DAY CYCLE"
780 LPRINT"      E=EMOTIONAL      28 DAY CYCLE"
790 LPRINT"      P=PHYSICAL       23 DAY CYCLE"
800 LPRINT
810 GOTO 650
820 FOR WB=0 TO 3
830 IF F$(WB)=":"THEN F$(WB)=""
840 NEXT
850 RETURN
860 FOR I=1 TO 72:LPRINT"-";:NEXT
870 LPRINT:RETURN
880 P1=P1+1:P2=0
890 LPRINT CHR$(12)
900 FOR LI=1 TO 100:WL=WL+1:NEXT
910 GOSUB 1090
920 GOSUB 1110
930 IF QP>1 THEN 710 ELSE 540
940 PRINT"THIS PROGRAM IS PRESENTLY CONFIGURED TO OPERATE WITH 8-1/2 BY"
950 PRINT"11 INCH PAPER IN A HARDCOPY PRINTER EQUIPPED WITH AUTOMATIC TOP"
960 PRINT"OF FORM OPTION. TO USE THIS FEATURE PROPERLY, YOU MUST REPLY"
970 PRINT"TO ALL OF THE INPUT PROMPTS, HOWEVER !! WHEN YOU HAVE TYPED IN"
980 PRINT"'YOUR NAME' -DO NOT- HIT CARRIAGE RETURN. MANUALLY ADVANCE THE"
990 PRINT"PAPER IN YOUR PRINTER SO THAT THE PRINTHEAD IS ABOUT 3/4 INCH"
1000 PRINT"FROM TOP OF PAPER. THEN SET TOP OF FORM IN YOUR PRINTER, THEN"
1010 PRINT"HIT CARRIAGE RETURN.":PRINT
1020 PRINT"TO RE-CONFIGURE THIS PROGRAM FOR PRINTERS OR TELETYPES WITH NO"
1030 PRINT"TOP OF FORM OPTION, OR CRT'S: LINES 520 - 530 WILL HAVE TO BE"
1040 PRINT"MODIFIED; ALSO THE ROUTINE AT 880 WILL HAVE TO BE CHANGED. IN"
1050 PRINT"PARTICULAR THE COMMAND 'PRINT CHR$(12)' IN LINE 890 MUST BE"
1060 PRINT"CHANGED (USUALLY TO 'PRINT' STATEMENTS IN FOR-NEXT LOOP).":PRINT
1070 PRINT"TO RUN PROGRAM, TYPE 'GOTO 80'.......":PRINT:PRINT
1080 END
1090 LPRINT"BIORHYTHM ANALYSIS FOR ";A$;:LPRINT TAB(60)"PAGE  ";P1
1100 IF QP>1 THEN 710 ELSE RETURN
1110 GOSUB 860
1120 LPRINT TAB(20)"DOWN",TAB(38)"CRITICAL",TAB(61)"UP"
1130 GOSUB 860
1140 RETURN
>1 THEN 710 ELSE RETURN
1110 GOSUB 860
1120 LPRINT TAB(20)"DOWN",TAB(38)"CRITICAL",TAB(61)