home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / OSBORNE / OSBN-BIO.BQS / OSBN_BIO.BAS
BASIC Source File  |  2000-06-30  |  5KB  |  119 lines

  1. 10      REM * BIORHYTHM PROGRAM *
  2. 20      REM FROM INTERFACE AGE, AUGUST, 1976
  3. 30      REM EDITED & TESTED BY JIM PETERSEN ON 9/27/78
  4. 40    REM MODIFIED FOR OSBORNES BY JOE JANULES 9/14/83
  5. 50      REM %% PROGRAM COMPUTES HOW CERTAIN PERSON WILL FEEL PHYSICALLY,
  6. 60      REM    EMOTIONALLY AND INTELLECTUALLY ON ANY DAY %%
  7. 70      DIM A(12),M$(12)
  8. 80      DATA 0,31,59,90,120,151,181,212,243,273,304,334
  9. 90      FOR I=1 TO 12:READ A(I):NEXT
  10. 100     PI=3.14159
  11. 110    PRINT CHR$(26):REM Screen clear character
  12. 120     PRINT:PRINT
  13. 130     PRINT "This program will print out your personal BIO-RHYTHM"
  14. 140     PRINT "analysis for any number of days you select."
  15. 150     PRINT "Dates should be entered in numerical form with the"
  16. 160     PRINT "MONTH, DAY and YEAR separated by commas. I. E."
  17. 170     PRINT "July 4, 1976 would be entered as 7,4,76."
  18. 180     PRINT
  19. 190     INPUT "How many days do you want plotted";S
  20. 200     IF S<=0 THEN 190
  21. 210    PRINT : PRINT
  22. 220     PRINT "What is the date at which you would like the";S;"day"
  23. 230     INPUT "analysis to start";M,D,Y
  24. 240     S=S-1
  25. 250    PRINT : PRINT
  26. 260     M=INT(M):D=INT(D):Y=INT(Y)
  27. 270     INPUT "What is the date of your birth";MB,DB,YB
  28. 280     MB=INT(MB):DB=INT(DB):YB=INT(YB)
  29. 290    PRINT : PRINT
  30. 300     INPUT "What is your name";A$
  31. 310    PRINT : PRINT
  32. 320    X1=14:IF PEEK(3)=3 THEN X1=2:GOTO300:REM STATUS port
  33. 330     INPUT "Do you want it on hard copy";HC$
  34. 340    PRINT : PRINT : PRINT
  35. 350    PRINT : PRINT : PRINT
  36. 360     REM IF LEFT$(HC$,1)="Y" THEN LPRINT : REM Turn on hard copy
  37. 370    IF HC$="Y" THEN POKE 57613!,63
  38. 380    IF HC$="N" OR HC$="n" THEN GOTO 390
  39. 390     DEF FNI(X)=INT(20*SIN(2*PI*X/33)+.5)
  40. 400     DEF FNE(X)=INT(20*SIN(2*PI*X/28)+.5)
  41. 410     DEF FNP(X)=INT(20*SIN(2*PI*X/23)+.5)
  42. 420     T=INT(D+365.25*Y+A(M)+.01*M-.03)
  43. 430     TB=INT(DB+365.25*YB+A(MB)+.01*MB-.03)
  44. 440     X=T-TB
  45. 450     V=INT((40-LEN(A$))/2)
  46. 460     RB=TB-1-INT((TB-1)/7)*7
  47. 470     DATA MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY
  48. 480     FOR I=0 TO 6:READ DAY$(I):NEXT
  49. 490     DATA MON,TUE,WED,THU,FRI,SAT,SUN
  50. 500     FOR I=0 TO 6:READ D$(I):NEXT
  51. 510     DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST
  52. 520     PRINT:PRINT
  53. 530     DATA SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
  54. 540     FOR I=1 TO 12:READ M$(I):NEXT
  55. 550     PRINT SPC(2):FOR I=1 TO V:PRINT "*";:NEXT
  56. 560     PRINT "BIO-RHYTHM ANALYSIS FOR ";A$;
  57. 570     PRINT "*";:IF POS(0)<66 THEN 570
  58. 580     PRINT:PRINT
  59. 590     R=T-1-INT((T-1)/7)*7
  60. 600     LE=21+LEN(DAY$(R))+LEN(M$(M))+LEN(STR$(D))+LEN(RIGHT$(STR$(Y),2))
  61. 610     V2=INT((64-LE)/2)
  62. 620     PRINT SPC(2):FOR I=1 TO V2:PRINT "*";:NEXT
  63. 630     PRINT "STARTING DATE: ";DAY$(R);", ";M$(M);STR$(D);", 19";
  64. 640     PRINT RIGHT$(STR$(Y),2);
  65. 650     PRINT "*";:IF POS(0)<66 THEN 650
  66. 660     PRINT:PRINT
  67. 670     LL=LEN(DAY$(RB))+LEN(M$(MB))+LEN(STR$(DB))+LEN(RIGHT$(STR$(YB),2))
  68. 680     LB=LL+18
  69. 690     VB=INT((64-LB)/2)
  70. 700     PRINT SPC(2):FOR I=1 TO VB:PRINT "*";:NEXT
  71. 710     PRINT "BIRTH DATE: ";DAY$(RB);", ";M$(MB);STR$(DB);", 19";
  72. 720     PRINT RIGHT$(STR$(YB),2);
  73. 730     PRINT "*";:IF POS(0)<66 THEN 730
  74. 740     PRINT:PRINT:PRINT
  75. 750     PRINT TAB(20);"DOWN",TAB(39);"CRITICAL",TAB(62);"UP"
  76. 760     PRINT D$(R);D;M$(M);
  77. 770     F(0)=42:F$(0)="*"
  78. 780     F(1)=42+FNI(X):F$(1)="I"
  79. 790     F(2)=42+FNE(X):F$(2)="E"
  80. 800     F(3)=42+FNP(X):F$(3)="P"
  81. 810     FOR I=0 TO 2
  82. 820     FOR J=I+1 TO 3
  83. 830     IF F(I)<F(J) THEN 880
  84. 840     IF F(I)=F(J) THEN F(I)=0:F$(I)="":F$(J)="X":GOTO 880
  85. 850     Q=F(I):Q$=F$(I)
  86. 860     F(I)=F(J):F$(I)=F$(J)
  87. 870     F(J)=Q:F$(J)=Q$
  88. 880     NEXT J:NEXT I
  89. 890     FOR I=0 TO 3
  90. 900     PRINT TAB(F(I));F$(I);
  91. 910     NEXT
  92. 920     PRINT:X=X+.5:IF INT(X)<>X THEN 770
  93. 930     IF Z=S THEN 1030
  94. 940     R=R+1:IF R=7 THEN R=0
  95. 950     D=D+1:IF M=4 OR M=6 OR M=9 OR M=11 THEN L=30:GOTO 990
  96. 960     IF M=2 AND Y/4=INT(Y/4) THEN L=29:GOTO 990
  97. 970     IF M=2 THEN L=28:GOTO 990
  98. 980     L=31
  99. 990     IF D>L THEN D=D-L:M=M+1:GOTO 1010
  100. 1000    PRINT D$(R);D;:Z=Z+1:GOTO 770
  101. 1010    IF M=13 THEN M=1:Z=Z+1:GOTO 760
  102. 1020    Z=Z+1:GOTO 760
  103. 1030    PRINT:PRINT
  104. 1040    IF X1=14 THEN POKE 57613!,56
  105. 1050    INPUT "Do you want another Biorhythm";A$
  106. 1060    IF A$="N" OR A$="n" THEN GOTO 1080
  107. 1070    IF A$="Y" OR A$="y" THEN RUN ELSE RUN "DIR"
  108. 1080    POKE 57613!,56
  109. 1090    PRINT : PRINT : PRINT
  110. 1100    PRINT : PRINT : PRINT
  111. 1110    PRINT : PRINT : PRINT
  112. 1120    PRINT : PRINT : PRINT
  113. 1130    PRINT "THANK YOU -- COME BACK AGAIN SOMETIME!"
  114. 1140    PRINT : PRINT : PRINT
  115. 1150    PRINT : PRINT : PRINT
  116. 1160    PRINT : PRINT : PRINT
  117. 1170    PRINT : PRINT : PRINT
  118. 1180    END
  119. E!"