10 REM  ********************************
20 REM  *                              *
30 REM  *    PROGRAMME CALENDRIER      *
40 REM  *                              *
50 REM  *    P.Lecerf  09/09/1987      *
60 REM  ********************************
90 MODE 2
200 PRINT
210 PRINT TAB(20);"passe,present et futur"
220 FOR I=1 TO 1000:NEXT
230 PRINT:PRINT
240 PRINT TAB(8);"vous pouvez selectionner une annee a partir de l'an  ....1585"
250 FOR I=1 TO 2000:NEXT 
260 CLS
270 DIM YEAR$(12,37),FIRST(12),LAST(12)
280 ESC$=CHR$(27):VERT$="X":LINES$=VERT$+STRING$(55,"X")+VERT$
290 '
300 PRINT TAB(25);"PROGRAMME CALENDRIER"   
310 PRINT TAB(25);"====================":PRINT:PRINT
320 PRINT
330 INPUT "  QUELLE ANNEE DESIREZ-VOUS ";CURRENT%
340 PRINT
350 IF CURRENT%<1585 THEN 330
360 PRINT "  Veuillez inserer 1 feuille dans l'imprimante"
370 PRINT "  puis appuyez sur une touche "
380 CALL &BB06
390 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT TAB(25);" Veuillez patienter...."  
400 monthS$="X      JAN FEV MAR AVR MAI JUN JUL AUG SEP OCT NOV DEC  X"
410 DAYS$="dimlunmarmerjeuvensam"
420 noleaps$="31,28,31,30,31,30,31,31,30,31,30,31"
430 leaps$="31,29,31,30,31,30,31,31,30,31,30,31"
440 fact1=365*(CURRENT%)+1+INT((CURRENT%-1)/4)
450 fact2=INT(0.75*(INT(((CURRENT%-1)/100))+1))
460 factor=FACT1-FACT2:DAY%=FACTOR-(INT(FACTOR/7))*7
470 IF DAY%=0 THEN DAY%=7
480 C$=RIGHT$(STR$(CURRENT%),2):D%=VAL(MID$(STR$(CURRENT%),2,2))
490 IF C$="00" THEN C%=D% ELSE C%=CURRENT%
500 B%=C%ç 4 : IF C%=B%*4 THEN THIS$=LEAPS$ ELSE THIS$=NOLEAPS$
510 F$="&  &  &  &  &  &  &  &  &  &  &  &"
520 FIRST(1)=DAY%:LAST(1)=DAY%+30
530 FOR I=2 TO 12
540 FIRST(I)=(LAST(I-1)+1) MOD 7:IF FIRST(I)=0 THEN FIRST(I)=7
550 LAST(I)=FIRST(I)+VAL(MID$(THIS$,(I-2)*3+4,2))-1
560 NEXT
570 FOR I%=1 TO 12:M=0
580 FOR J%=1 TO 37
590 IF FIRST(I%)>J% OR J%>LAST(I%) THEN YEAR$(I%,J%)=" .":GOTO 620
600 M=M+1:A$=STR$(M)
610 IF LEN(A$)=3 THEN YEAR$(I%,J%)=RIGHT$(A$,2) ELSE YEAR$(I%,J%)=A$
620 NEXT
630 NEXT
640 PRINT #8,ESC$+"à";ESC$+"G";
650 PRINT #8,LINES$:PRINT #8,VERT$;TAB(26) CURRENT%;TAB(57) VERT$:PRINT #8,LINES$
660 PRINT #8,VERT$;TAB(57) VERT$:PRINT #8,MONTHS$:PRINT #8,VERT$;TAB(57) VERT$
670 FOR I=1 TO 37
680 K=(I-2)*3+4:J=K: IF K>19 THEN J=K MOD 21
690 D$=MID$(DAYS$,J,3):PRINT #8,VERT$;" ";D$;"   ";
700 FOR T=1 TO 12
710 PRINT #8, USING F$;YEAR$(T,I);
720 NEXT
730 PRINT #8,VERT$
740 NEXT
750 PRINT #8,LINES$
760 CLS
770 PRINT:PRINT:PRINT
780 PRINT TAB(12);"Voulez-vous une autre edition PRINT"
790 PRINT:PRINT
800 PRINT TAB(26);"O = OUI ..... N = NON"
810 INPUT R$
820 IF R$="O" THEN 280
830 IF R$="N" THEN 890 ELSE 760
890 END