home *** CD-ROM | disk | FTP | other *** search
/ Loadstar 38 / 038.d81 / calendar maker (.txt) < prev    next >
Encoding:
Commodore BASIC  |  1987-01-01  |  4.3 KB  |  147 lines

  1. 200 GOSUB60100:CLR
  2. 210 DIM D(42),MO$(12),M$(12,8),DM(12),FD(12)
  3. 220 FOR X = 1 TO 12 : READ MO$(X) : NEXT
  4. 230 DATA JANUARY,FEBRUARY,MARCH,APRIL
  5. 240 DATA MAY,JUNE,JULY,AUGUST,SEPTEMBER
  6. 250 DATA OCTOBER,NOVEMBER,DECEMBER
  7. 260 FOR X = 1 TO 12 : READ DM(X) : NEXT
  8. 270 DATA 31,28,31,30,31,30,31,31,30,31,30,31
  9. 280 FOR X = 1 TO 12 : READ FD(X) : NEXT
  10. 290 DATA 0,3,3,-1,1,4,-1,2,5,0,3,5
  11. 300 SP$="                        ":REM 24 SPACES
  12. 310 DN$=" SU MO TU WE TH FR SA   "
  13. 320 DL$="---------------------":REM 21 DASHES
  14. 330 PRINT "[147]             CALENDAR MAKER "
  15. 335 PRINT"            BY  BRUCE JEAGER"
  16. 340 PRINT
  17. 345 PRINT"ENTER  Q [146] TO QUIT."
  18. 350 PRINT "ENTER STARTING YEAR:";:GOSUB60500:Y1=VAL(B$)
  19. 355 IFB$="Q"THENGOSUB60000:GOTO345
  20. 360 IF Y1<1752 THEN GOSUB 62000:GOTO 330
  21. 370 PRINT
  22. 380 PRINT "( RETURN ALONE =" Y1 ")"
  23. 390 Y2=Y1
  24. 400 PRINT
  25. 410 PRINT "ENTER ENDING YEAR:     [157][157][157][157][157]";:GOSUB60500:Y2=VAL(B$):IFB$=""THENY2=Y1
  26. 411 IFB$="Q"ORB$="[209]" THEN 330
  27. 412 IFB$=""THENY2=Y1
  28. 415 IFY2<Y1 THEN GOSUB 62100:GOTO 410
  29. 420 IF Y2<1752 THEN GOSUB62000:GOTO330
  30. 425 GOSUB9000:IFNOT(OK)THENRUN210
  31. 430 PRINT
  32. 440 PRINT : PRINT"CALCULATING..."
  33. 450 CLOSE4 : OPEN4,4
  34. 460 FOR YR = Y1 TO Y2
  35. 470 PRINT : PRINTCHR$(18)YR
  36. 480 Z=(YR/100) : C=INT(YR/100) : A=Z-C
  37. 490 IF A=0 THEN 530
  38. 500 Z=(YR/4) : C=INT(YR/4) : A=Z-C
  39. 510 IF A=0 THEN XD=1 : GOTO 560
  40. 520 GOTO 550
  41. 530 Z=(YR/400) : C=INT(YR/400) : A=Z-C
  42. 540 IF A=0 THEN XD=1 : GOTO 560
  43. 550 XD=0
  44. 560 F=INT(YR/4) : G=INT(YR/400) : H=INT(YR/100)
  45. 570 J=F+G-H
  46. 580 L=(YR+J)/7 : M=INT((YR+J)/7)
  47. 590 Q=(L-M)*7 : YS=INT(Q) : R=Q-YS
  48. 600 IF R>0.9 THEN YS=YS+1
  49. 610 YS=YS-XD
  50. 620 IF YS<0 THEN YS=YS+7
  51. 630 FOR MH=1 TO 12
  52. 640 MN$=MO$(MH) : PRINT LEFT$(MN$+SP$,20);
  53. 650 DM = DM(MH) : IF MH=2 THEN DM=DM+XD
  54. 660 FD=YS+FD(MH)+XD : IF MH=1 THEN FD=YS
  55. 670 IF MH=2 THEN FD=YS+3
  56. 680 IF FD>6 THEN FD=FD-7
  57. 690 IF FD<0 THEN FD=FD+7
  58. 700 W=20
  59. 710 YR=INT(YR)
  60. 720 M$(MH,0)=LEFT$(MN$+SP$,24)
  61. 730 M$(MH,1)=DN$
  62. 740 M$(MH,2)=DL$
  63. 745 FOR I=3TO8:M$(MH,I)="":NEXT
  64. 750 FOR X = 1 TO 42 : D(X)=0 : NEXT
  65. 760 Y=1 : Z=Y : FOR X = FD+1 TO 42 : D(X)=Z
  66. 770 Y=Y+1 : Z=Y : IF Z>DM THEN Z=0
  67. 780 NEXT : WE=0 : Y=0
  68. 790 FOR X = 1 TO 42 : Y=Y+1 : IF Y>6 THEN Y=0
  69. 800 IF D(X)=0 THEN M$(MH,WE+3)=M$(MH,WE+3)+"   " : GOTO820
  70. 810 M$(MH,WE+3) = M$(MH,WE+3) + RIGHT$( "    "+ STR$(D(X)),3)
  71. 820 IF Y=0 THEN WE=WE+1
  72. 830 NEXT X
  73. 840 NEXT MH
  74. 850 PRINT#4:PRINT#4,YR
  75. 860 PRINT#4:PRINT#4:LN=4
  76. 870 FOR X = 0 TO 12 : FOR Y = 0 TO 8
  77. 880 M$(X,Y) = LEFT$(M$(X,Y)+SP$,24)
  78. 890 NEXT Y : NEXT X
  79. 900 FOR X=0TO8:PRINT#4,"   "M$(1,X)M$(2,X)M$(3,X):NEXT:PRINT#4:PRINT#4
  80. 910 FOR X=0TO8:PRINT#4,"   "M$(4,X)M$(5,X)M$(6,X):NEXT:PRINT#4:PRINT#4
  81. 920 FOR X=0TO8:PRINT#4,"   "M$(7,X)M$(8,X)M$(9,X):NEXT:PRINT#4:PRINT#4
  82. 930 FOR X=0TO8:PRINT#4,"   "M$(10,X)M$(11,X)M$(12,X):NEXT:PRINT#4:PRINT#4
  83. 940 FOR X = 1 TO 18 : PRINT#4 : NEXT
  84. 950 NEXT YR : CLOSE4
  85. 960 RUN210
  86. 9000 OK=-1:OPEN15,4,15:CLOSE15:IFST=.THENRETURN
  87. 9010 OK=.:PRINT"     ERROR: PRINTER NOT ONLINE!"
  88. 9015 FORA=1TO50:POKE54296,15:POKE54296,.:NEXT
  89. 9020 FORA=1TO3000:NEXT:RETURN
  90. 60000 PRINT"[145][145]                                      "
  91. 60010 PRINT"  ARE YOU SURE YOU WANT TO QUIT? (Y/N)"
  92. 60020 A=PEEK(203):IFA<>25ANDA<>39THEN60020
  93. 60030 IFA=39THENPRINT"[145]                                      [145][145]":RETURN
  94. 60040 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15
  95. 60050 IFER<>63THENEND
  96. 60060 LOAD"HELLO CONNECT",8
  97. 60100 POKE53280,1:POKE53281,1
  98. 60110 PRINTCHR$(142)"[147][149][213][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][201]";
  99. 60120 FORA=1TO23:PRINT"[221]"SPC(38)"[221]";:NEXT
  100. 60130 PRINT"[202][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][203][157][148][192]"
  101. 60140 FORA=217TO242:POKEA,PEEK(A)OR128:NEXT
  102. 60150 PRINT"          LOADSTAR PRESENTS:"
  103. 60160 PRINT"                              "
  104. 60170 PRINT"           CALENDAR  MAKER    [155] "
  105. 60180 PRINT"                              [155] "
  106. 60190 PRINT"           BY BRUCE JEAGER    [155] "
  107. 60200 PRINT"                              [155] "
  108. 60210 PRINT"           COPYRIGHT  1987    [155] "
  109. 60220 PRINT"                              [155] "
  110. 60230 PRINT"                               "
  111. 60240 PRINT"        PRESS SPACE TO CONTINUE"
  112. 60250 IFPEEK(203)<>60THEN60250
  113. 60260 RETURN
  114. 60500 B$="":PRINT"[164]";:FORA=1TO5
  115. 60510 GETA$:IFA$=""THEN60510
  116. 60520 IFA$=CHR$(13)THENPRINT"[157] ":RETURN
  117. 60530 IFA$=CHR$(20)ANDA>1THENPRINT"[157][157]  [157][157][164]";:A=A-1:B$=LEFT$(B$,A-1):GOTO60510
  118. 60535 IF(A=5)THEN60510
  119. 60540 IFA$="Q"ORA$="[209]"THEN60560
  120. 60550 IFA$<"0"ORA$>"9"THEN60510
  121. 60560 PRINT"[157]"A$"[164]";:B$=B$+A$:NEXT
  122. 62000 PRINT""
  123. 62010 PRINT"                  "
  124. 62011 PRINT"  STARTING DATE   [152] "
  125. 62012 PRINT" SHOULD BE LARGER [152] "
  126. 62015 PRINT"    THAN 1751     [152] "
  127. 62020 PRINT"                  [152] "
  128. 62021 PRINT" [152]                  "
  129. 62025 FORX=1TO2500:NEXT
  130. 62030 RETURN
  131. 62100 PRINT""
  132. 62110 PRINT"                  "
  133. 62111 PRINT"   ENDING  DATE   [152] "
  134. 62112 PRINT" SHOULD BE LARGER [152] "
  135. 62115 PRINT"    THAN "STR$(Y1)"    [152] "
  136. 62120 PRINT"                  [152] "
  137. 62121 PRINT" [152]                  "
  138. 62125 FORX=1TO2500:NEXT
  139. 62130 PRINT""
  140. 62131 PRINT"                  "
  141. 62132 PRINT"                   "
  142. 62133 PRINT"                   "
  143. 62134 PRINT"                   "
  144. 62135 PRINT"                   "
  145. 62136 PRINT"                     "
  146. 62140 RETURN
  147.