-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy path05_Kalender.bc2
More file actions
252 lines (251 loc) · 6.43 KB
/
05_Kalender.bc2
File metadata and controls
252 lines (251 loc) · 6.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
1000 A=500:GOTO20:REM KALENDER
1010 Z=0:LJ=0:GOSUB100:REM WISSEN
1020 GOTO3140:REM INITIALISATIES
1030 REM
1040 REM ** HOOFDPROGRAMMA **
1050 REM
1060 GOSUB2140:REM UITLEG
1070 GOSUB2590:REM UITLEG(2)+KEUZE
1080 IFZ=1 THENEND
1090 GOSUB1500:REM SCHRIKKELJAAR?
1100 M(2)=M(0)+S
1110 DE=0
1120 FORT=1 TOM:DB=DE:DE=DB+M(T):NEXTT
1130 A$="":B$=""
1140 FORT=1 TO31:A$(T)=" ":NEXTT
1150 IFJ=LJ THEN1180
1160 GOSUB1600:REM PAASDATUM
1170 LJ=J
1180 I=J-1
1190 U=J+INT(I/4)-INT(I/100)+INT(I/400)
1200 T=U+DB:N=7:GOSUB1380
1210 Y=-R
1220 FORN=0 TO5:K(N)=0:NEXTN
1230 IFM>6 THEN1250
1240 GOSUB1760:REM FEESTDAGEN?
1250 IFM<>12 THEN1270
1260 GOSUB1410:REM KERSTDAGEN
1270 GOSUB100:PRINT" ";B$(M);" ";J:PRINT
1280 PRINT"--------------------------------------"
1290 GOSUB2450:REM PRINTEN
1300 PRINT
1310 PRINT"--------------------------------------"
1320 PRINT:PRINTA$;" ";B$:PRINT
1330 GOSUB2690:REM KEUZE
1340 GOTO1080
1350 REM **BEPALING QUOTIENT +
1360 REM **REST VAN DE BREUK
1370 REM
1380 Q=INT(T/N):R=T-Q*N:RETURN
1390 REM **KERSTDAGEN
1400 REM
1410 A$="K = Kerstmis"
1420 A$(25)=":K"
1430 A$(26)=":K"
1440 T=24-Y:N=7:GOSUB1380
1450 K(Q)=1:T=25-Y:GOSUB1380
1460 K(Q)=1
1470 RETURN
1480 REM **SCHRIKKELJAAR ?
1490 REM
1500 S=0:T=J:N=4:GOSUB1380
1510 IFR<>0 THEN1570
1520 S=1:N=100:GOSUB1380
1530 IFR<>0 THEN1570
1540 S=0:N=400:GOSUB1380
1550 IFR<>0 THEN1570
1560 S=1
1570 RETURN
1580 REM **PAASDATUM ?
1590 REM
1600 T=J:N=19:GOSUB1380
1610 A=R:T=J:N=100:GOSUB1380
1620 B=Q:C=R:T=B:N=4:GOSUB1380
1630 D=Q:E=R:T=B+8:GOSUB1380
1640 F=Q:T=B-F+1:N=3:GOSUB1380
1650 G=Q:T=19*A+B-D-G+15:N=30:GOSUB1380
1660 H=R:T=C:N=4:GOSUB1380
1670 I=Q:K=R:T=32+E+E+I+I-H-K:N=7:GOSUB1380
1680 L=R:T=A+11*H+22*L:N=451:GOSUB1380
1690 O=Q:T=H+L-7*O+114:N=31:GOSUB1380
1700 MA=Q:DA=R+1:RETURN
1710 REM **BEPALING CARNAVAL-,
1720 REM **PAAS-, HEMELVAART-
1730 REM **OF PINKSTERDAG IN DE
1740 REM **AF TE DRUKKEN MAAND
1750 REM
1760 C(4)=59+S+DA+(MA-3)*31
1770 C(1)=C(4)-49:C(2)=C(4)-48
1780 C(3)=C(4)-47:C(5)=C(4)+1
1790 C(6)=C(4)+39:C(7)=C(4)+49
1800 C(8)=C(4)+50
1810 FORT=1 TO3:X=C(T)-DB
1820 IFX<1 THEN1860
1830 IFX>M(M) THEN1860
1840 A$(X)=":C"
1850 A$="C = Carnaval"
1860 NEXTT
1870 FORT=4 TO5:X=C(T)-DB
1880 IFX<1 THEN1920
1890 IFX>M(M) THEN1920
1900 A$(X)=":P"
1910 A$="P = Pasen"
1920 NEXTT
1930 X=C(6)-DB
1940 IFX<1 THEN1980
1950 IFX>M(M) THEN1980
1960 A$(X)=":H"
1970 A$="H = Hemelvaart"
1980 FORT=7 TO8
1990 X=C(T)-DB
2000 IFX<1 THEN2040
2010 IFX>M(M) THEN2040
2020 A$(X)=":P"
2030 B$="P = Pinksteren"
2040 NEXTT
2050 REM *FEESTDAG IN KOLOM?
2060 REM
2070 FORX=1 TOM(M)
2080 IFA$(X)=" " THEN2110
2090 T=X-Y-1:N=7:GOSUB1380
2100 K(Q)=1
2110 NEXTX:RETURN
2120 REM **SUBR.UITLEG
2130 REM
2140 PRINT"****************************"
2150 PRINT"* *"
2160 PRINT"* KALENDER *"
2170 PRINT"* *"
2180 PRINT"****************************"
2190 PRINT
2200 PRINT:PRINT"Dit programma geeft steeds"
2210 PRINT:PRINT"per maand een kalenderblad."
2220 PRINT:PRINT"Carnaval, Pasen, Hemelvaart,"
2230 PRINT:PRINT"Pinksteren en Kerstmis wor-"
2240 PRINT:PRINT"den hierbij aangegeven."
2250 PRINT
2260 PRINT
2270 GOSUB3100
2280 GOSUB100:REM *WISSEN
2290 PRINT"U moet eerst de maand en het"
2300 PRINT:PRINT"jaar opgeven."
2310 PRINT:PRINT"Daarna kunt U een volgende"
2320 PRINT:PRINT"maand kiezen met een enkele"
2330 PRINT:PRINT"toets, te weten:"
2340 PRINT
2350 PRINT:PRINT"'N' als U een nieuwe maand wilt"
2360 PRINT:PRINT"'T' als U terug wilt (vorige)"
2370 PRINT:PRINT"'V' als U verder wilt"
2380 PRINT:PRINT"'S' als U wilt stoppen"
2390 PRINT
2400 PRINT
2410 GOSUB3100
2420 RETURN
2430 REM **PRINTEN
2440 REM
2450 CT=2:CN=0
2460 FORA=1 TO7
2470 PRINT:PRINTD$(A)
2480 NEXTA
2490 VE=2-2*Y:HO=4
2500 FORSR=1 TOM(M)
2510 VE=VE+2
2520 IFVE>17 THENVE=VE-14:HO=HO+6
2530 GOSUB110:GOSUB310:PRINTSR$;A$(SR)
2540 NEXTSR
2550 VE=17:HO=0:GOSUB110
2560 RETURN
2570 REM **SUBR. UITLEG(2)
2580 REM
2590 GOSUB100:REM *WISSEN
2600 PRINT"Geef maandnummer ";:INPUTM
2610 PRINT
2620 PRINT"Geef jaar ";:INPUTJ
2630 PRINT
2640 M=INT(M):IFM>12 ORM<1 THEN2750
2650 J=INT(J)
2660 IFJ>9999 THEN2790
2670 IFJ<1583 THEN2830
2680 RETURN
2690 PRINT" N , V , T , S : ";:GOSUB210
2700 GOSUB100
2710 IF(IN$="T") OR(IN$="t") THEN2900
2720 IF(IN$="V") OR(IN$="v") THEN2970
2730 IF(IN$="S") OR(IN$="s") THEN3040
2740 IF(IN$="N") OR(IN$="n") THEN2590
2750 PRINT
2760 PRINT"FOUTIEVE INVOER !!!!!!"
2770 PRINT:PRINT:PRINT
2780 GOTO2600
2790 PRINT:PRINT"Jaartallen boven 9999 worden"
2800 PRINT:PRINT"NIET verwerkt !"
2810 FORT=1 TO4000:NEXTT
2820 GOTO2590
2830 PRINT:PRINT"Tot 1582 gold de Juliaanse"
2840 PRINT:PRINT"kalender. Schrijf het programma"
2850 PRINT:PRINT"daarvoor maar zelf !"
2860 FORT=1 TO4000:NEXTT
2870 GOTO2590
2880 REM **TERUG
2890 REM
2900 M=M-1
2910 IFM>0 THEN2660:REM *INPUT(2)
2920 M=12
2930 J=J-1
2940 GOTO2660:REM *INPUT(2)
2950 REM **VOLGENDE
2960 REM
2970 M=M+1
2980 IFM<13 THEN2660:REM *INPUT(2)
2990 M=1
3000 J=J+1
3010 GOTO2660:REM *INPUT(2)
3020 REM **STOPPEN
3030 REM
3040 GOSUB100:REM *WISSEN
3050 PRINT:PRINT"U Koos voor stoppen"
3060 PRINT:PRINT"Voor opnieuw beginnen 'RUN' intypen"
3070 Z=1:RETURN
3080 REM **WACHT OP INPUT
3090 REM
3100 PRINT" >RETURN";
3110 GOSUB210:RETURN
3120 REM **INITIALISATIES
3130 REM
3140 DIMA$(31),B$(12),D$(7),C$(8),M(12),K(5),C(8)
3150 FORT=1 TO12:READB$(T):NEXTT
3160 FORT=1 TO7:READD$(T):NEXTT
3170 FORT=0 TO12:READM(T):NEXTT
3180 GOTO1060
25000 DATA"Januari","Februari","Maart"
25010 DATA"April","Mei","Juni","Juli"
25020 DATA"Augustus","September","Oktober"
25030 DATA"November","December"
25040 DATA"Zo","Ma","Di"
25050 DATA"Wo","Do","Vr","Za"
25060 DATA28,31,00,31,30,31,30
25070 DATA 31,31,30,31,30,31
30000 REM ********************
30010 REM * *
30020 REM * KALENDER *
30030 REM * *
30040 REM * INCL.FEESTDAGEN *
30050 REM * *
30060 REM * MAKER:E. IVENS, *
30070 REM * DOETINCHEM *
30080 REM * *
30090 REM ********************
30100 REM
30110 REM GEMAAKT OP APPLE II
30120 REM
30130 REM VERSIE: 17-5-1982
30140 REM
30150 REM AANGEPAST VOOR BASICODE-2
30160 REM
30170 REM
30180 REM ZIE VOOR DE BEPALING
30190 REM VAN DE PAASDATUM:
30200 REM HEMEL EN DAMPKRING,
30210 REM APRIL 1973; OF HET
30220 REM BOEK VAN J. MEEUS.
30230 REM