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
/
SIMTEL
/
CPMUG
/
CPMUG003.ARK
/
BIOPRINT.BAS
< prev
next >
Wrap
BASIC Source File
|
1984-04-29
|
7KB
|
184 lines
REM BIORHYTHMS ADAPTED BY W.A.BURTON FROM 'ANONYMOUS' PROGRAM
REM WRITTEN FOR 11 INCH (66 LINE) HARDCOPY PAPER
REM INITIALIZE
PAGE.NUMBER=1 : COUNTER=0
DATA JAN,FEB,MAR,APR,MAY,JUN
DATA JUL,AUG,SEP,OCT,NOV,DEC
DATA SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY
DATA SUN,MON,TUE,WED,THU,FRI,SAT,EXTRA.DAY
DATA 33,28,23
DATA I,E,P
DATA 31,28,31,30,31,30,31,31,30,31,30,31
DIM DATE(12),F(3),F$(3),MONTH$(12),LONG.DAY$(7),SHORT.DAY$(8)
FOR I=1 TO 12: READ MONTH$(I): NEXT I
FOR I=1 TO 7: READ LONG.DAY$(I): NEXT I
FOR I=1 TO 8: READ SHORT.DAY$(I): NEXT I
FOR I=1 TO 3: READ F(I): NEXT I
FOR I=1 TO 3: READ F$(I): NEXT I
FOR I=1 TO 12: READ DATE(I): NEXT I
DEF FNCYCLE(X,J)=INT(20*SIN(6.28318*X/J)+0.5)+42
DEF FNFIN(X$)=66-LEN(X$)
DEF FNSTAR(X$)=INT((64-LEN(X$))/2)
DEF FNYEAR$(Y)="19"+LEFT$(STR$(Y),2)
DEF FNSTRING$(LAST$,FIG$,POSITION)=LEFT$(LAST$,POSITION-1) \
+FIG$+MID$(LAST$,POSITION+1,1000)
INPUT "WHAT IS YOUR NAME";SUBJECT$
INPUT "BIRTHDATE (MO,DAY,Y)";BM,BD,BY
BM=INT(BM): BD=INT(BD): BY=INT(BY)
M=BM: D=BD: Y=BY: GOSUB 1000
BW=W
BT=JD
INPUT "CHART START (MO,DAY,YR)";SM,SD,SY : PRINT
PRINT " *** INSTRUCTIONS ***" : PRINT
PRINT "THIS PROGRAM IS FORMATTED TO PRINT ON 11 INCH (66 LINE) PAPER." : PRINT
PRINT "THE NEXT QUESTION YOU WILL BE ASKED WILL BE: CHART DAYS ?"
PRINT "THIS MEANS 'HOW MANY DAYS SHALL WE PLOT'..."
PRINT "KEY IN YOUR RESPONSE, BUT DON'T HIT RETURN UNTIL YOU HAVE :"
PRINT " 1 - ADVANCED THE PAPER IN YOUR PRINTER TO VERY TOP OF PAGE"
PRINT " 2 - SWITCHED FROM 'LOCAL' TO 'LINE' MODE"
PRINT "WHEN NOS. 1 & 2 ARE DONE, HIT CARRIAGE RETURN"
INPUT "CHART DAYS";CHART.DAYS
FOR PRINT.LOOP=1 TO 4 : PRINT : NEXT PRINT.LOOP
SM=INT(SM): SD=INT(SD): SY=INT(SY)
M=SM: D=SD: Y=SY: GOSUB 1000
SW=W
ST=JD
REM TIMES TO BIRTH & START
ELAPSED.DAYS=ST-BT
REM PART 1
HEADING$="BIO-RHYTHM ANALYSIS FOR "+SUBJECT$
PART.1$=" "
STAR=FNSTAR(HEADING$)
FOR I=1 TO STAR: PART.1$=PART.1$+" ": NEXT I
PART.1$=PART.1$+HEADING$
FIN=FNFIN(PART.1$)
FOR I=1 TO FIN: PART.1$=PART.1$+" ": NEXT I
PRINT PART.1$
REM PART 2
HEADING$="STARTING DATE: "+LONG.DAY$(SW)+", "+MONTH$(SM)+" " \
+STR$(SD)+", "+FNYEAR$(SY)
PART.2$=" "
STAR=FNSTAR(HEADING$)
FOR I=1 TO STAR: PART.2$=PART.2$+" ": NEXT I
PART.2$=PART.2$+HEADING$
FIN=FNFIN(PART.2$)
FOR I=1 TO FIN: PART.2$=PART.2$+" ": NEXT I
PRINT PART.2$
REM PART 3
HEADING$="BIRTHDATE: "+LONG.DAY$(BW)+", "+MONTH$(BM)+" "+STR$(BD) \
+", "+FNYEAR$(BY)
PART.3$=" "
STAR=FNSTAR(HEADING$)
FOR I=1 TO STAR: PART.3$=PART.3$+" ": NEXT I
PART.3$=PART.3$+HEADING$
FIN=FNFIN(PART.3$)
FOR I=1 TO FIN: PART.3$=PART.3$+" ": NEXT I
PRINT PART.3$
FOR PRINT.LOOP=1 TO 8 : PRINT : NEXT PRINT.LOOP
PRINT " *** BIORHYTHM THEORY ***" : PRINT
PRINT "AT THE TIME WHEN EACH OF US IS BORN, WE ARE GOVERNED BY THE CYCLES"
PRINT "OF SEVERAL PREDICTABLE RHYTHMS WHICH AFFECT OUR BEHAVIOUR, FORTUNE,"
PRINT "AND HAPPINESS THROUGHOUT OUR LIFETIMES." : PRINT
PRINT "BIORHYTHM ANALYSIS ASSERTS THAT THERE ARE THREE PRIMARY RHYTHMS"
PRINT "WHICH MOST CERTAINLY AFFECT ONE'S ENTIRE LIFE, BUT WHICH CAN BE"
PRINT "ACCURATELY FORECAST, KNOWING ONLY A SUBJECT'S BIRTHDATE." : PRINT
PRINT "IT IS ASSUMED THAT AT BIRTH (A CRISIS TIME) THE THREE MAJOR RHYTHMS:"
PRINT "1) PHYSICAL, 2) EMOTIONAL AND 3) INTELLECTUAL START AN 'UPWARD'"
PRINT "TREND. THE PERIODS OF THESE RHYTHMS ARE AS FOLLOWS:" : PRINT
PRINT " PHYSICAL (P) 23 DAY CYCLE"
PRINT " EMOTIONAL (E) 28 DAY CYCLE"
PRINT " INTELLECTUAL (I) 33 DAY CYCLE" : PRINT
PRINT "THESE THREE CYCLES EXHIBIT THE FORM OF A PURE SINE WAVE; THAT IS TO"
PRINT "SAY THAT EACH WILL BE IN A POSITIVE (UP) POSITION FOR NEARLY HALF"
PRINT "A FULL CYCLE, AND LIKEWISE EACH FULL CYCLE WILL EXHIBIT NEGATIVE"
PRINT "(DOWN) QUALITIES DURING ALMOST HALF OF ITS DUTY-CYCLE." : PRINT
PRINT "FOR EXAMPLE: LET US ASSUME THAT A PHYSICAL (23 DAY) CYCLE STARTED"
PRINT "AT A POINT THAT WAS NEITHER POSITIVE NOR NEGATIVE (UP NOR DOWN),"
PRINT "THE CYCLE WOULD START DURING SUCH A 'NEUTRAL' (CRISIS) DAY."
PRINT "HALF WAY THRU THE 23 DAY CYCLE ANOTHER SUCH DAY WILL OCCUR, AND FI-"
PRINT "NALLY, THE PHYSICAL CYCLE WILL END ON A THIRD SUCH DAY. THIS LEAVES"
PRINT "APP. 20 DAYS WHICH ARE EITHER 'UP' OR 'DOWN'." : PRINT
PRINT "IT CAN BE SAID THAT WHEN ANY OF A PERSON'S THREE BIORHYTHMS"
PRINT "ARE 'UP', THEN THE PORTION OF THEIR LIFE GOVERNED BY THAT RHYTHM IS"
PRINT "GOING WELL. WHEN ANY RHYTHM'S ARE 'DOWN', THAT IS A TIME WHEN THE"
PRINT "CORRESPONDING PART OF THEIR LIFE HAS 'SLOWED DOWN FOR REST & RECHARGE'."
PRINT
PRINT "THE CRITICAL DAYS OCCUR WHEN ANY CURVE MAKES A TRANSITION FROM 'UP'"
PRINT "TO 'DOWN' OR VICE-VERSA. DURING THESE CRISES, A PERSON MAY WELL"
PRINT "BE BETRAYED BY THE RHYTHM(S) IN TRANSITION. THE CRISIS IS GREATLY"
PRINT "MAGNIFIED IF MORE THAN ONE RHYTHM IS IN A CRISIS PERIOD. SEVERAL"
PRINT "TIMES DURING A NORMAL LIFETIME, THREE SIMULTANEOUS CRISES WILL OCCUR"
PRINT "ON A SINGLE DAY! THESE ARE VERY,VERY BAD DAYS. THE WORST CASE POSSIBLE"
PRINT "OCCURS WHEN THREE RHYTHMS PASS FROM THEIR 'UP' CYCLES TO THEIR 'DOWN'"
PRINT "CYCLES ON THE SAME DAY..."
PRINT "EXAMPLE: PLOT YOUR BIORHYTHM CHART FOR APP. A MONTH BEFORE YOUR THIRTY-"
PRINT "FIFTH BIRTHDAY."
FOR PRINT.LOOP=1 TO 8 : PRINT : NEXT PRINT.LOOP
REM PART 4
BLANK$=" "
PART.4$=" "+BLANK$+"DOWN"+BLANK$+"CRITICAL"+BLANK$+"UP"
PRINT TAB(60); "PAGE "; PAGE.NUMBER
PAGE.NUMBER=PAGE.NUMBER+1
PRINT: PRINT PART.4$
FOR PRINT.LOOP=1 TO 68 : PRINT "-"; : NEXT PRINT.LOOP : PRINT
IF Y/4 = INT(Y/4) THEN LY=1 ELSE LY=0
OUTPUT$=SHORT.DAY$(SW)+" "+STR$(SD)+MONTH$(SM)
REM SET UP STARTING POSITIONS
DUMMY$=" : "
REM START CYCLE
FOR J=1 TO CHART.DAYS
START$=SHORT.DAY$(W)+" "+STR$(D)
IF J = 1 OR D = 1 THEN START$=START$+" "+MONTH$(M)
OUTPUT$=START$+MID$(DUMMY$,LEN(START$)+1,1000)
FOR I=1 TO 3
POSIT=FNCYCLE(ELAPSED.DAYS,F(I))
OUTPUT$=FNSTRING$(OUTPUT$,F$(I),POSIT)
NEXT I
PRINT OUTPUT$
COUNTER=COUNTER+1
IF COUNTER > 55 THEN GOSUB 2000
IF J = CHART.DAYS THEN 600
L=DATE(M)
IF M = 2 AND LY = 1 THEN L=29
D=D+1
IF D LE L THEN 300
D=1
M=M+1
IF M > 12 THEN M=1
L=DATE(M)
300 ELAPSED.DAYS=ELAPSED.DAYS+1
W=W+1
IF SHORT.DAY$(W)="EXTRA.DAY" THEN W=1
320 NEXT J
600 FOR PRINT.LOOP=1 TO 20 : PRINT : NEXT PRINT.LOOP
FOR PRINT.LOOP=1 TO 10 : PRINT.LOOP=PRINT.LOOP-1 : NEXT PRINT.LOOP
1000 IF M > 2 THEN 1010
MM=M+13
Y=Y-1
GO TO 1020
1010 MM=M+1
1020 JD=INT(365.25*Y)+INT(30.6001*MM)+D
Q=(JD)/7
W=7*(Q-INT(Q))+1
RETURN
REM 'PAGINATE IT ALL'
2000 COUNTER=0
FOR PRINT.LOOP=1 TO 6 : PRINT : NEXT PRINT.LOOP
PRINT TAB(60); "PAGE "; PAGE.NUMBER
PRINT : PAGE.NUMBER=PAGE.NUMBER+1
PRINT PART.4$
FOR PRINT.LOOP=1 TO 68 : PRINT "-"; : NEXT PRINT.LOOP : PRINT
RETURN