File WEEKDA.30 (OMSI 30 basic source file)

Directory of image this file is from
This file as a plain text file

100 PRINT
110 Y1=1970
120 P1=27
130 P2 =12
140 PRINT "ENTER TODAY	S DATE IN THIS FORM:MO,DAY,YR.";
150 INPUT M1,D1,Y1
160 IF Y1>100 THEN 180
170 Y1 =Y1+1900
180 DEF FNA(A)=INT(A/4)
190 DIM T(12)
200 DEF FNB(A)=INT(A/7)
210 FOR I=1 TO 12
220 READ T(I)
230 NEXT I
240 B=7
250 PRINT
260 PRINT "THIS WILL TELL SOME IMPORTANT FACTS ABOUT YOU."
270 PRINT
280 PRINT " WHAT DAY WOULD YOU LIKE TO KNOW ABOUT?"
290 PRINT " ENTER DATE AS BEFORE MO,DAY,YEAR.";
300 INPUT M,D,Y
310 IF M=0 THEN 1550
320 PRINT CHR$(P1);CHR$(P2)
325 PRINT "  TODAY IS";M1;"/";D1;"/";Y1
326 PRINT
327 PRINT
330 IF Y>100 THEN 350
340 Y=Y+1900
350 I1=INT((Y-1500)/100)
360 IF Y-1582<0 THEN 1300
370 A =I1*5+(I1+3)/4
380 I2=INT(A-FNB(A)*7)
390 Y2=INT(Y/100)
400 Y3=INT(Y-Y2*100)
410 A=Y3/4+Y3+D+T(M)+I2
420 B= INT(A-FNB(A)*7)+1
430 IF M>2 THEN 540
440 IF Y3=0 THEN 510
450 T1=INT(Y-FNA(Y)*4)
460 IF T1<>0 THEN 540
470 IF B<>0 THEN 490
480 B=6
490 B=B-1
500 GOTO 540
510 A =I1-1
520 T1= INT(A-FNA(A)*4)
530 IF T1 =0 THEN 470
540 IF B<>0 THEN 560
550 B=7
560 IF (Y1*12+M1)*31+D1 < (Y*12+M)*31+D THEN 620
570 IF (Y1*12+M1)*31 +D1= (Y*12+M)*31+D THEN 600
580 PRINT M;"/";D;"/";Y;" WAS A ";
590 GOTO 630
600 PRINT M;"/";D"/";Y;" IS A ";
610 GOTO 630
620 PRINT M;"/";D;"/";Y;" WILL BE A ";
630 IF B<>1 THEN 650
640 PRINT "SUNDAY"
650 IF B<>2 THEN 670
660 PRINT "MONDAY"
670 IF B<>3 THEN 690
680 PRINT "TUESDAY"
690 IF B<>4 THEN 710
700 PRINT "WEDNESDAY"
710 IF B<>5 THEN 730
720 PRINT "THURSDAY"
730 IF B<>6 THEN 750
740  GO TO 1250
750 IF B<>7 THEN 770
760 PRINT "SATURDAY"
770 IF (Y1*12+M1)*31+D1 <= (Y*12+M)*31+D THEN 1180
780 PRINT
790 I5 =Y1-Y
800 PRINT
810 I6=M1-M
820 I7=D1-D
830 IF I7>=0 THEN 860
840 I6=I6-1
850 I7=I7+30
860 IF I6>=0 THEN 890
870 I5=I5-1
880 I6=I6-1
890 IF I5<0 THEN 1330
900 IF I7<>0 THEN 930
910 IF I6<>0 THEN 930
920 PRINT "**********HAPPY BIRTHDAY ! ! ! !*******"
930 PRINT " "," ","YEARS","MONTHS","DAYS"
940 PRINT " YOUR AGE IS ",,I5,I6,I7
950 A8=(I5*365)+(I6*30)+I7+INT(I6/2)
960 K5=I5
970 K6=I6
980 K7=I7
990 E=Y+65
1000 F=.35
1010 PRINT " YOU HAVE SLEPT ",
1020 GOSUB 1350
1030 F=.1
1040 PRINT " YOU HAVE EATEN ",
1050 GOSUB 1350
1060 F=.23
1070 IF K5>3 THEN1100
1080 PRINT " YOU HAVE PLAYED ",
1090 GOTO 1140
1100 IF K5>9 THEN 1130
1110 PRINT " YOU HAVE PLAYED/STUDIED  ",
1120 GOTO 1140
1130 PRINT " YOU HAVE WORKED/STUDIED ",
1140 GOSUB 1350
1145 GO TO 1500
1150 PRINT " YOU HAVE RELAXED ",K5,K6,K7
1160 PRINT
1170 PRINT ,"***** YOU MAY RETIRE IN";E;" *****"
1180 PRINT
1190 PRINT 
1200 FOR Q=1 TO 2
1210 PRINT
1220 NEXT Q
1230 PRINT
1240 GO TO 250
1250 IF D=13 THEN 1280
1260 PRINT "FRIDAY "
1270 GOTO 780
1280 PRINT "FRIDAY THE THIRTEENTH ***** BEWARE!"
1290 GOTO 780
1300 PRINT " I AM NOT PREPARED TO GIVE DAY OF WEEK"
1310 PRINT " PRIOR TO THE YEAR MDLXXXII. THE CURRENT CALENDER"
1320 PRINT " DID NOT EXIST BEFORE THAT DATE."
1330 GOTO 1200
1340 DATA 0,3,3,6,1,4,6,2,5,0,3,5
1350 K1=INT(F*A8)
1360 I5=INT(K1/365)
1370 K1=K1-(I5*365)
1380 I6=INT(K1/30)
1390 I7=K1-(I6*30)
1400 K5=K5-I5
1410 K6=K6-I6
1420 K7=K7-I7
1430 IF K7 >=0 THEN 1460
1440 K7=K7+30
1450 K6=K6-1
1460 IF K6>0 THEN 1485
1470 K6=K6 +12
1480 K5=K5-1
1485 PRINT I5,I6,I7
1490 RETURN
1500 IF K6=12 THEN 1520
1510 GOTO 1150
1520 K5=K5+1
1530 K6=0
1540 GOTO 1150
1550 PRINT "GOOD BYE !"
1560 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search