10  FILES *
20  DIM A$[255],B$[255],B1$[255]
30  DIM M[12],C[6,21]
40  PRINT LIN(20)
50  FOR Z9=1 TO 22
55  B$="*"
60  READ A$,B$[2]
70  ASSIGN B$,1,R
80  IF  END #1 THEN 170
90  READ #1;A$
100  B$=""
110  FOR X=1 TO LEN(A$)
120  B$[LEN(B$)+1]=A$[X,X]
130  B$[LEN(B$)+1]=A$[X,X]
140  NEXT X
150  PRINT B$;LIN(1);B$
160  GOTO 90
170  PRINT LIN(50)
180  NEXT Z9
190  STOP 
200  DATA "WOODSTOCK","PINUPA"
210  DATA "LINUS","PINUPB"
220  DATA "CHUCK 1","PINUPC"
230  DATA "CHUCK 2","PINUPD"
240  DATA "CHUCK 3","PINUPE"
250  DATA "SNOOPY 1","PINUPF"
260  DATA "SNOOPY 2","PINUPG"
270  DATA "SNOOPY 3","PINUPH"
280  DATA "SNOOPY 4","PINUPI"
290  DATA "SNOOPY 5","PINUPJ"
300  DATA "SNOOPY 6","PINUPK"
310  DATA "SNOOPY 7","PINUPL"
320  DATA "MICKEY","PINUPM"
330  DATA "ANDY CAPP","PINUPN"
340  DATA "VIKING","PINUPO"
350  DATA "BUNNY","PINUPP"
360  DATA "SEXY","PINUPQ"
370  DATA "ENTERPRISE","PINUPR"
380  DATA "JAWS","PINUPS"
390  DATA "NIXON","PINUPT"
400  DATA "MARY","PINUPU"
410  DATA "PEACE","PINUPV"
420  DATA "",""
430  END 
440  REM CALENDAR SUBROUTINE
450  PRINT LIN(5)
460  RESTORE 480
470  MAT  READ M
480  DATA 31,0,31,30,31,30,31,31,30,31,30,31
490  X=INT(Y/100)
500  Z=Y-X*(100)
510  L=(SGN(INT(Y/4)-Y/4)+1)*SGN(Z)+SGN(INT(Y/(20^2))-Y/(20^2))+1
520  D=INT(5/4*Z)+6-(X/4-INT(X/4))*8+2-L
530  D=D-INT((D-1)/7)*7-1
540  M[2]=28+L
550  L=1
560  PRINT TAB(14)"****    CALENDAR FOR THE YEAR"Y"****"LIN(2)
570  N=1
580  MAT C=ZER
590  FOR X=1 TO 3
600  FOR A=1 TO 6
610  D=D*(D#7)
620  FOR B=X*7-6+D TO X*7
630  C[A,B]=N
640  N=N+1
650  IF N>M[L] THEN 690
660  NEXT B
670  D=0
680  NEXT A
690  L=L+1
700  D=B-INT((B-1)/7)*7
710  N=1
720  NEXT X
730  GOSUB 1040
740  FOR A=1 TO 3
750  GOSUB 1100
760  IF A#2 THEN 780
770  READ A$[7,15],A$[31,39],A$[55,63]
780  PRINT A$
790  NEXT A
800  GOSUB 1040
810  GOSUB 1100
820  A$[3,21]="S  M  T  W  T  F  S"
830  A$[27,45]=A$[3]
840  A$[51]="S  M  T  W  T  F  S*"
850  PRINT A$
860  FOR A=1 TO 6
870  GOSUB 1100
880  FOR B=1 TO 21
890  C=B*3+3*SGN(1+SGN(B-8))+3*SGN(1+SGN(B-15))
900  IF C[A,B]=0 THEN 920
910  CONVERT C[A,B] TO A$[C-(C[A,B]>9),C]
920  NEXT B
930  PRINT A$
940  GOSUB 1100
950  NEXT A
960  GOSUB 1040
970  IF L-13 THEN 570
980  DATA " JANUARY "," FEBRUARY","   MARCH ","   APRIL ","    MAY  "
990  DATA "   JUNE  ","   JULY  ","  AUGUST ","SEPTEMBER","  OCTOBER"
1000  DATA " NOVEMBER"," DECEMBER"
1010  PRINT LIN(5)
1020  RETURN 
1030  STOP 
1040  A$[1,72]=" "
1050  A$[1,22]="**********************"
1060  A$[25,46]=A$[1,22]
1070  A$[49,70]=A$[1,22]
1080  PRINT A$
1090  RETURN 
1100  A$[1,72]=" "
1110  A$[1,1]="*"
1120  A$[22,25]="*  *"
1130  A$[46,49]="*  *"
1140  A$[70]="*"
1150  RETURN 
1160  END 
