10 '	BIO - RHYTHMUS
20 '
30 'VERSION 1.1  08.09.84
40 '
100 DIM L1%(12),L2%(12),L3%(12)
110 DIM A%(12),B%(12),C%(12)
120 DIM FW%(64),PW%(64),IW%(64)			'F=K\RPER, P=SEELE, I=GEIST
130 DIM M$(12),T$(7)				'MONATE,TAGE
160 '
170 DATA "Januar","Februar","M{rz","April","Mai","Juni"
172 DATA "Juli","August","September","Oktober","November","Dezember"
174 DATA "Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Sonnabend"
178 '
180 DATA 31,334,  0, 28,306, 31, 31,275, 59, 30,245, 90, 31,214,120, 30,184,151
182 DATA 31,153,181, 31,122,212, 30, 92,243, 31, 61,273, 30, 31,304, 31,  0,334
190 '
200 FP%=23 : PP%=28 : IP%=33			'PERIODENLAENGEN
210 ZWOPI = 2 * 3.14159 : AMPL=10!		'AMPLITUDE
220 FF$=CHR$(&HC) : ESC$=CHR$(&H1B) : AT$=ESC$+"F"
230 RESTORE : FOR K%=1 TO 12 : READ M$(K%) : NEXT K%
240 FOR K%=1 TO 7 : READ T$(K%) : NEXT K%
250 TAG%=PEEK(&HFEFD) : MONAT%=PEEK(&HFEFE) : JAHR%=PEEK(&HFEFF)
252 STD%=PEEK(&HFEFC) : MINUT%=PEEK(&HFEFB)
290 '
300 PRINT FF$;ESC$;"H";CHR$(34);		'DT.ZEICHENSATZ
302 PRINT AT$;CHR$(44);CHR$(52);"Bitte irgendeine Taste dr}cken...";
304 M4%=1984 : M5%=9				'KALENDERJAHR UND -MONAT
310 C$=INPUT$(1)
320 IF C$=CHR$(3) GOTO 3000
400 PRINT FF$;TAB(30);"G u t e n  T a g !" : PRINT
410 PRINT "   Das 'Institut f}r Angewandte Rhythmik' hei~t Sie ganz herzlich willkommen." : PRINT
412 SEC%=2 : GOSUB 2100
420 PRINT "   Es bietet Ihnen hier die M|glichkeit, sich Ihren pers|nlichen Biorhythmus"
422 PRINT "   ausdrucken zu lassen." : PRINT : GOSUB 2100
424 PRINT "   Haben Sie Interesse ?  Wenn ja, dr}cken Sie die Taste J, sonst N : ";
425 C$=INPUT$(1) : IF INSTR("JjNn",C$)=0 GOTO 425
426 IF ASC(C$)>&H61 THEN C$=CHR$(ASC(C$)-&H20)
427 PRINT C$ : IF C$="J" GOTO 430
428 PRINT : PRINT "Schade." 
429 PRINT "Das 'Institut f}r Angewandte Rhythmik' w}nscht Ihnen noch einen angenehmen Tag." : GOTO 2022
430 PRINT : PRINT "Fein." 
432 PRINT "Um Ihr Rhythmik-Profil erstellen zu k|nnen, ben|tige ich Ihr Geburtsdatum."
434 PRINT "Bitte tippen Sie es ein und dr}cken Sie anschlie~end die 'RETURN'-Taste."
436 PRINT "(Das ist die gro~e Taste rechts mit dem geknickten Pfeil drauf.)" : PRINT
438 SEC%=5 : GOSUB 2100 : PRINT "Jetzt also bitte Ihr Geburtsdatum (z.B. 1.10.53) : ";
440 LINE INPUT D$
442 I%=INSTR(D$,".") : IF I%=0 GOTO 460
444 M1%=VAL(MID$(D$,1,I%-1)) : IF M1%<1 OR M1%>31 GOTO 460
446 J%=INSTR(I%+1,D$,".") : IF J%=0 GOTO 460
448 M2%=VAL(MID$(D$,I%+1,J%-I%)) : IF M2%<1 OR M2%>12 GOTO 460
450 M3%=VAL(MID$(D$,J%+1)) : M4%=1984 
452 IF M3%>M4% GOTO 460
454 IF M3%<1900 THEN M3%=M3%+1900 : GOTO 452
456 GOTO 480
460 PRINT : PRINT "Tut mir leid,  d i e s e s  Datum macht keinen Sinn f}r mich."
462 PRINT "Versuchen Sie es nochmal."
464 GOTO 434
480 PRINT : PRINT "Und Ihr Geschlecht? - Bitte dr}cken Sie M f}r m{nnlich, W f}r weiblich: ";
482 G$=INPUT$(1) : IF INSTR("MmWw",G$)=0 GOTO 482
484 IF ASC(G$)>&H61 THEN G$=CHR$(ASC(G$)-&H20)
486 PRINT G$
500 PRINT : PRINT "Verraten Sie mir jetzt noch Ihren Namen, bitte."
502 PRINT "(Wieder eintippen und anschlie~end RETURN-Taste dr}cken)"
504 PRINT : PRINT "Vor- und Zuname: "; : LINE INPUT NAM$
506 NNAM$=NAM$ : IF LEN(NNAM$)=0 GOTO 600
508 '
510 I%=INSTR(NNAM$," ") 
512 IF I%>0 THEN NNAM$=MID$(NNAM$,I%+1) : GOTO 510
514 I%=ASC(MID$(NNAM$,1,1))
516 IF I%>&H60 THEN MID$(NNAM$,1,1)=CHR$(I%-&H20)
520 PRINT : PRINT "Ahh, ";
522 IF G$="M" THEN PRINT "Herr "; ELSE PRINT "Frau ";
524 PRINT NNAM$;". Ich freue mich, Sie hier begr}~en zu k|nnen!" : PRINT
600 PRINT "Bitte haben Sie ein Momentchen Geduld...";
1000 L1%=INT(M3%/4) : L2%=INT(M4%/4)
1010 IF L1%*4<>M3% THEN P1%=0 ELSE P1%=1
1020 IF L2%*4<>M4% THEN P2%=0 ELSE P2%=1
1030 RESTORE 180
1040 FOR K%=1 TO 12 : READ L1%(K%),L2%(K%),L3%(K%)
1042 IF K%>2 THEN L3%(K%)=L3%(K%)+P1%
1044 NEXT K%
1048 '
1050 L1%(2)=28+P2% : L2%(1)=334+P2%
1060 L8%=(M4%-M3%-1)*365 + L2%-L1% + L2%(M2%)+L1%(M2%) - M1%
1062 L9%=28+P1% 
1100 FOR K%=1 TO 12				'START-INDIZES
1110 A%(K%) = ABS((L8%+L3%(K%)) MOD FP%) + 1
1112 B%(K%) = ABS((L8%+L3%(K%)) MOD PP%) + 1
1114 C%(K%) = ABS((L8%+L3%(K%)) MOD IP%) + 1
1116 NEXT K%
1120 '
1130 FOR I%=1 TO 64				'SINUS-WERTE
1132 FW%(I%)=CINT(AMPL*SIN(I%/FP% * ZWOPI))
1134 PW%(I%)=CINT(AMPL*SIN(I%/PP% * ZWOPI))
1136 IW%(I%)=CINT(AMPL*SIN(I%/IP% * ZWOPI))
1138 NEXT I%
1200 T1%=20 : T2%=45 : T3%=69
1202 PRINT "Hier kommt Ihr pers|nlicher Biorhythmus f}r den Monat ";M$(M5%);M4%;".";
1210 LPRINT "'Institut f}r Angewandte Rhythmik'",TAB(58);"Langenhagen,";
1212 LPRINT USING "##.";TAG%; : LPRINT USING "##.";MONAT%; : LPRINT USING "##";JAHR%
1214 LPRINT "Frau Dr.rer.nat. Franziska Wollnik" : LPRINT : LPRINT : LPRINT
1216 LPRINT : LPRINT : LPRINT
1220 LPRINT TAB(30);"B I O R H Y T H M U S" : LPRINT
1221 IF LEN(NNAM$)=0 GOTO 1230
1222 LPRINT TAB(39);"von" : IF G$="M" THEN C$="Herrn" ELSE C$="Frau"
1224 C$=C$+" "+NAM$ : I%=LEN(C$) : LPRINT TAB(40-I%/2);C$
1226 C$="geb. am"+STR$(M1%)+"."+STR$(M2%)+"."+STR$(M3%)
1227 IF G$="W" THEN MID$(C$,LEN(C$)-1,2)="**"
1228 I%=LEN(C$) : LPRINT TAB(40-I%/2);C$
1230 LPRINT : LPRINT TAB(39);"f}r"
1232 C$=M$(M5%)+STR$(M4%) : I%=LEN(C$)
1234 LPRINT TAB(40-I%/2);C$ 
1236 LPRINT : LPRINT : LPRINT : LPRINT : LPRINT
1240 LPRINT "Tag";TAB(T1%-3);"K|rper";TAB(T2%-2);"Seele";TAB(T3%-2);"Geist"
1250 FOR I%=1 TO 79 : LPRINT "-"; : NEXT I% : LPRINT
1290 '
1300 FOR K%=1 TO L1%(M5%)
1310 LPRINT USING "##.";K%;
1320 I%=A%(M5%)-1+K%
1322 IF FW%(I%)<0 THEN LPRINT TAB(T1%+FW%(I%));"-";TAB(T1%);":"; : GOTO 1330
1324 IF FW%(I%)=0 THEN LPRINT TAB(T1%);"#"; : GOTO 1330
1326 IF FW%(I%)>0 THEN LPRINT TAB(T1%);":";TAB(T1%+FW%(I%));"+";
1330 I%=B%(M5%)-1+K%
1332 IF PW%(I%)<0 THEN LPRINT TAB(T2%+PW%(I%));"-";TAB(T2%);":"; : GOTO 1340
1334 IF PW%(I%)=0 THEN LPRINT TAB(T2%);"#"; : GOTO 1340
1336 IF PW%(I%)>0 THEN LPRINT TAB(T2%);":";TAB(T2%+PW%(I%));"+";
1340 I%=C%(M5%)-1+K%
1342 IF IW%(I%)<0 THEN LPRINT TAB(T3%+IW%(I%));"-";TAB(T3%);":"; : GOTO 1350
1344 IF IW%(I%)=0 THEN LPRINT TAB(T3%);"#"; : GOTO 1350
1346 IF IW%(I%)>0 THEN LPRINT TAB(T3%);":";TAB(T3%+IW%(I%));"+";
1350 LPRINT
1360 NEXT K%
1370 LPRINT FF$
1380 '
1400 PRINT FF$;"Wenn Sie Ihren Biorhythmus f}r einen weiteren Monat w}nschen, geben Sie"
1402 PRINT "bitte Monat und Jahr ein; sonst dr}cken Sie einfach nur die RETURN-Taste." : PRINT
1410 PRINT "RETURN-Taste bzw. Monat und Jahr (z.B. 10.84) : ";
1412 LINE INPUT C$ : IF LEN(C$)=0 GOTO 2000
1414 I%=INSTR(C$,".") : IF I%>0 GOTO 1420
1416 PRINT "Bitte verwenden Sie den Punkt im Datum." : GOTO 1410
1420 IF I%>1 GOTO 1430
1422 PRINT "Sie haben den Monat vergessen." : GOTO 1410
1430 M5%=VAL(MID$(C$,1,I%-1)) : IF M5%<1 OR M5%>12 GOTO 1410
1440 IF I%<LEN(C$) GOTO 1450
1442 PRINT "Sie haben das Jahr vergessen." : GOTO 1410
1450 M4%=VAL(MID$(C$,I%+1)) : IF M4%<1900 THEN M4%=M4%+1900
1460 GOTO 600
2000 PRINT FF$;AT$;CHR$(40);CHR$(32);
2002 PRINT "      Bitte rei~en Sie das Blatt mit Ihrem Biorhythmus nach vorn hin ab."
2004 PRINT : PRINT
2010 PRINT "  Das 'Institut f}r Angewandte Rhythmik' bedankt sich f}r Ihr Interesse und" : PRINT TAB(20);
2020 PRINT "w}nscht Ihnen noch einen angenehmen Tag."
2022 PRINT : PRINT TAB(25);"A u f  W i e d e r s e h e n !"
2030 SEC%=10 : GOSUB 2100			'10 SEC WARTEN
2040 GOTO 300
2090 '
2100 SEC0%=60-PEEK(&HFA35)
2110 SEC1%=60-PEEK(&HFA35) : IF SEC1%<SEC0% THEN SEC1%=SEC1%+60
2120 IF SEC1%<SEC0%+SEC% GOTO 2110
2130 RETURN
2990 '
3000 END
