10REM"
20REM"
40REM"
60REM" This program will print a year
ly
70REM" calendar one page for one mont
h,
80REM" with a large box for each day
.
90REM" Hang it on the wall and scribb
le
100REM" reminders on it. To use the
110REM" program answer three simple
120REM" questions:
130REM" Enter the quantity required
.
140REM" Enter the year to be printe
d.
150REM" Enter the first day of the ye
ar.
160REM" The program is for EPSON FX
170REM" compatible printers.
180REM" ----------------------------
--
190REM" This program is Public domai
n.
200REM" Please do not alter it in a
ny
210REM" way. If you use any of t
he
220REM" routines, please mention
me
230REM" in the titles. Thanks, CJ
R.
240REM" ----------------------------
--
250DEFFNS:="Monthpl"
260ONERROR VDU3:REPORT:PRINTERL:END
270PROCDES
280DAY$=" MON TUE WED THU FRI
SAT SUN"
290MODE128:PRINT"CALENDAR PRINTER"'"By
C.J.Richardson"'
300INPUT"Number of calendars required?
"numberwanted%
310INPUT"ENTER YEAR ";YEAR$:A%=VALYEAR
$:IFA%MOD4=0leapyear%=1:ELSEleapyear%=0
320PRINT'"ENTER FIRST DAY OF YEAR?"'"1
. Monday"'"2. Tuesday"'"3. Wednesday"'"4
. Thursday"'"5. Friday"'"6. Saturday"'"7
. Sunday":REPEAT:A%=VALGET$:UNTILA%>0AND
A%<8
330FORcalendars%=1TOnumberwanted%
340VDU2
350leaveblank%=-(A%-2)
360RESTORE
370VDU1,27,104
380FORyearloop%=1TO12:PRINT'''''''''':
READMONTH$,Daysinmonth%:VDU1,27,1,104:PR
INT"! ";MONTH$;" ";YEAR$;'':IFyearloop%=
2:IFleapyear% Daysinmonth%=29
390daymonth%=leaveblank%
400VDU1,27,1,117
410PRINTDAY$
420PRINT"
"
430FORmonthloop%=1TO6
440FORweekloop%=1TO7
450IF daymonth%<1 OR daymonth%>Daysinm
onth% PRINT" ";
460IF daymonth%>0 IF daymonth%<10 PRIN
T" ";STR$daymonth%;
470IF daymonth%>9 IF daymonth%<=Daysin
month% PRINT" ";STR$daymonth%;
480PRINT" ";
490daymonth%=daymonth%+1:IFdaymonth%=D
aysinmonth%:leaveblank%=-weekloop%:IFlea
veblank%=-7leaveblank%=0ELSEIFleaveblank
%=-6leaveblank%=1
500NEXT weekloop%:PRINT" ":PROCDOTS:I
Fdaymonth%>Daysinmonth%:monthloop%=6
510IFmonthloop%<6:PROCLINE ELSE PRINT"
":VDU1,12
520NEXTmonthloop%
530NEXTyearloop%
540NEXTcalendars%:VDU3:END
550DEFPROCDOTS
560FORL=1TO11
570PRINT"
"
580NEXT
590ENDPROC
600DEFPROCLINE
610PRINT"
"
620ENDPROC
630DEFPROCDES
640OSCLI"FX225,128":OSCLI"FX226,138":V
DU23,128,24,24,24,255,24,24,24,24,23,129
,24,24,24,255,0,0,0,0,23,130,0,0,0,255,2
4,24,24,24,23,131,24,24,24,248,24,24,24,
24
650VDU23,132,24,24,24,31,24,24,24,24,2
3,133,0,0,0,255,0,0,0,0,23,134,24,24,24,
24,24,24,24,24,23,135,0,0,0,31,24,24,24,
24,23,136,0,0,0,248,24,24,24,24,23,137,2
4,24,24,31,0,0,0,0,23,138,24,24,24,248,0
,0,0,0
660FORL%=0TO9:OSCLI"K."+STR$L%+CHR$(12
8+L%):NEXT:REM FOR EDIT. USE CURSOR EDIT
ING MODE ALL CODES BUT BOTTOM RIGHT CORN
ER WORK. IF TO BE USED A LOT RE-DEFINE A
KEY
670VDU2
680VDU1,27,1,64:REM CLEAR
690VDU1,27,1,58,1,0,1,0,1,0,1,27,1,37,
1,1,1,0,1,27,1,38,1,0,1,33,1,33,1,128,1,
248,1,6,1,136,1,2,1,0,1,126,1,0,1,63,1,0
,1,36,1,27:REM LOGO=!
700VDU1,27,1,109,1,4:REM GRAPHICS ON
710REM VDU1,27,1,71:REMDOUBLE STRIKE
720VDU1,27,1,69:REM EMPH
730VDU1,27,1,49:REM 1/8 LINESPACE
740VDU1,27,1,85,1,1:REM UNIDIRECTIONAL
750VDU1,27,108,1,2:REM LEFT MARGIN
760VDU1,27,1,87,1,1:REM EXPANDED
770VDU1,27,1,77:REM ELITE
780REM REST OF PRINTER OPTIONS HERE
790VDU3
800ENDPROC
810DATAJANUARY,31,FEBRUARY,28,MARCH,31
,APRIL,30,MAY,31,JUNE,30,JULY,31,AUGUST,
31,SEPTEMBER,30,OCTOBER,31,NOVEMBER,30,D
ECEMBER,31