MediaWiki:Sitenotice:
2025-12-29: I have restored the wiki to a backup from the end of November. Starting in September 2025, accesses went form the 800MB-1.2GB range per month to 26GB in September, 42GB in October, and 70GB in November with most accesses originating from China. As soon as I realized what was causing all the access problems in November, I shut it down (it had reached 36GB by then) behind a password/login screen. The database had gotten corrupted, and I tried a restore from just before the spike in access but that didn't work. Thus, end of November. I still have the other daily backups so if there were any important additions in December, let me know and maybe they can be recovered. - Allen H.

CALPGM

From CoCopedia - The Tandy/Radio Shack Color Computer Wiki
Jump to navigation Jump to search
100 DIM M$(12)
110 DATA JANUARY,FEBRUARY,MARCH,APRIL,MAY,JUNE
120 DATA JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER
130 FOR I=1 TO 12
140 READ M$(I)
150 NEXT I
160 CLS
170 PRINT@3,"PERPETUAL CALENDAR PROGRAM"
180 PRINT@64,"ENTER CURRENT MONTH(1-12)";: INPUT MM
190 PRINT@106,"YEAR(1601-2399)";: INPUT YY
200 IF (MM>0) AND (MM<13) THEN 230
210 PRINT@160,"M0NTH ";MM;" INVALID--TRY AGAIN"
220 FOR T=1 TO 400: NEXT T: GOTO160
230 IF (YY>1600) AND (YY<2400) THEN 260
240 PRINT@224,"YEAR ";YY;" INVALID--TRY AGAIN"
250 FOR T=1 TO 400: NEXT T: GOTO16O
260 REM COMPUTE LEAP YR, DAYS OF MO AND WEEK
270 OF=6
280 IF YY>2000 THEN OF=0
290 OF=(OF+(YY-1600))+INT((YY-1600-1)/4)+1-INT((YY-1600-1)/100)
300 OF=OF-INT(OF/7)*7
310 LY=O
320 IF YY=INT(YY/4)*4-O THEN LY=1
330 IF YY=INT(YY/100)*100=0 THEN LY=0
340 IF YY=2000 THEN LY=1
350 IF MM=2 THEN OF=OF+3
360 IF MM=3 THEN OF=OF+3+LY
370 IF MM=4 THEN OF=OF+6+LY
380 IF MN=5 THEN OF=OF+8+LY
390 IF HM=6 THEN OF=OF+11+LY
400 IF MM=7 THEN OF=OF+13+LY
410 IF MM=8 THEN OF=OF+16+LY
420 IF HM=9 THEN OF-OF+19+LY
430 IF MM=10 THEN OF=OF+21+LY
440 IF MM=11 THEN OF=OF+24+LY
450 IF MM=12 THEN OF=OF+26+LY
460 OF=OF-INT(OF/7)*7
470 DM=31
480 IF MM=2 THEN DM=28+LY
490 IF (MM=4) OR (MM=6) OR (MM=9) OR (MN=11) THEN DM=30
500 REM DRAW LINES AND PRINT DAYS OF WEEK
510 CLS
520 PRINT@34,"SUN MON TUE WED THU FRI SAT"
530 FOR I=65 TO 93
540 PRINT@I,CHR$(131);
550 NEXT I
560 FOR I=93 TO 477 STEP 32
570 J=138
580 IF I=93 THEN J=130
590 PRINT@I,CHR$(J);
600 NEXT I
610 FOR I=477 TO 449 STEP -1
620 J=140
630 IF I=477 THEN J=136
640 PRINT@I,CHR$(J);
650 NEXT I
660 FOR I=449 TO 65 STEP -32
670 J=133
680 IF I=449 THEN J=132
690 IF I=65 THEN J=129
700 PRINT@I,CHR$(J);
710 NEXT I
720 REM PRINT CURR MONTH,YEAR
730 ML=LEN(M$(MM))
740 PRINT@496-(ML+5)/2,M$(MM);",";YY;
750 REM PRINT CALENDAR DAYS
760 PP=0
770 FOR I=1 TO DM
780 IF I=1 THEN PP=99+(OF*4):GOTO840
790 IF (PP=187) AND (I>9) THEN PP=PP+39: GOTO840
800 IF (PP=123) OR (PP=186) OR (PP=187) THEN PP=PP+40: GOTO840
810 IF (PP=250) OR (PP=314) OR (PP=378) THEN PP=PP+40: GOTO840
820 IF I=10 THEN PP=PP+3: GOTO840
830 PP=PP+4
840 B$=STR$(I)
850 PRINT@PP,B$;
860 NEXT I
870 REM MONITOR KEYBOARD FOR RESTART
880 A$=INKEY$
890 IF A$="" THEN 880
900 SOUND 220,3
910 GOTO160