forked from robhagemans/basicode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathB12_Kerstkaart.bc3
261 lines (260 loc) · 7.09 KB
/
B12_Kerstkaart.bc3
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
253
254
255
256
257
258
259
260
261
1000 A=1000:GOTO20:REM KERSTKAART/XMASCARD
1010 XO=8:YO=16
1020 CN=0:GOSUB600
1030 GOSUB2020:REM SURROUND
1040 GOSUB2810:REM TREES
1050 GOSUB3210:REM DRAWN TEXT
1060 GOSUB3810:REM PRINTED TEXT
1070 GOSUB4010:REM TUNE
1080 GOSUB3900:GOTO950:REM END
1090 HO=H/256:RETURN
1100 VE=V/192:RETURN
1999 REM ++++++++++
2000 REM ===DRAW LEAVES===
2010 REM
2020 T$="ENENENNNACEEBNNNNCCEBBNNCEEEEEEBEE"
2030 S$="DDDSDSSCAWWDDDSAWWWDDCAWAW"
2040 FORI=0 TO8
2050 V=YO+15:GOSUB1100
2060 H=XO+I*24:GOSUB1090
2070 GOSUB2310
2080 H=XO+9*24:GOSUB1090
2090 V=YO+15+I*16:GOSUB1100
2100 GOSUB2310
2110 J=9-I
2120 V=YO+15+9*16:GOSUB1100
2130 H=XO+J*24:GOSUB1090
2140 GOSUB2310
2150 J=9-I
2160 H=XO:GOSUB1090
2170 V=YO+15+J*16:GOSUB1100
2180 GOSUB2310
2190 NEXTI
2200 RETURN
2299 REM ++++++++++
2300 REM PREPARE P$
2310 GOSUB620
2320 P$=T$:GOSUB2410
2330 P$=S$:GOSUB2410
2340 RETURN
2399 REM ++++++++++
2400 REM DRAW LEAF
2410 FORJ=0 TOLEN(P$)
2420 Z$=MID$(P$,J+1,1)
2430 IFZ$="N" THEN2600
2440 IFZ$="E" THEN2610
2450 IFZ$="S" THEN2620
2460 IFZ$="W" THEN2630
2470 IFZ$="A" THEN2640
2480 IFZ$="B" THEN2660
2490 IFZ$="C" THEN2680
2500 IFZ$="D" THEN2700
2510 NEXTJ
2520 RETURN
2599 REM ++++++++++
2600 V=V-1:GOSUB1100:GOSUB620:GOTO2510
2610 H=H+1:GOSUB1090:GOSUB620:GOTO2510
2620 V=V+1:GOSUB1100:GOSUB620:GOTO2510
2630 H=H-1:GOSUB1090:GOSUB620:GOTO2510
2640 H=H-1:GOSUB1090:V=V-1:GOSUB1100
2650 GOSUB620:GOTO2510
2660 H=H+1:GOSUB1090:V=V-1:GOSUB1100
2670 GOSUB620:GOTO2510
2680 H=H+1:GOSUB1090:V=V+1:GOSUB1100
2690 GOSUB620:GOTO2510
2700 H=H-1:GOSUB1090:V=V+1:GOSUB1100
2710 GOSUB620:GOTO2510
2799 REM ++++++++++
2800 REM TREE
2810 DIMV(13),H(13),XM(12),YM(12):RESTORE
2820 FORI=0 TO12:READV(I),H(I):NEXTI
2830 FORI=0 TO10 STEP2
2840 XM(I)=H(I)+INT(ABS(H(I)-H(I+1))/2)
2850 XM(I+1)=H(I+2)+INT(ABS(H(I+2)-H(I+1))/2)
2860 YM(I)=V(I)-(INT(ABS(V(I+1)-V(I))/2))-1
2870 YM(I+1)=V(I+2)-(INT(ABS(V(I+1)-V(I+2))/2))-1
2880 NEXTI
2890 K1=XO+48:L1=YO+144:GOSUB3010
2900 K1=K1+144:GOSUB3010
2910 RETURN
2999 REM ++++++++++
3000 REM DRAW TREE
3010 H=K1:GOSUB1090:V=L1:GOSUB1100:GOSUB620
3020 FORI=0 TO10 STEP2
3030 H=K1-H(I):X0=H+2*H(I):GOSUB1090:GOSUB620
3040 V=L1-V(I):Y0=V:GOSUB1100:GOSUB630
3050 H=K1-XM(I):X1=H+2*XM(I):GOSUB1090
3060 V=L1-YM(I):Y1=V:GOSUB1100:GOSUB630
3070 H=K1-H(I+1):X2=H+2*H(I+1):GOSUB1090
3080 V=L1-V(I+1):Y2=V:GOSUB1100:GOSUB630
3090 H=K1-XM(I+1):X3=H+2*XM(I+1):GOSUB1090
3100 V=L1-YM(I+1):Y3=V:GOSUB1100:GOSUB630
3110 H=K1-H(I+2):X4=H+2*H(I+2):GOSUB1090
3120 V=L1-V(I+2):Y4=V:GOSUB1100:GOSUB630
3130 H=X0:GOSUB1090:V=Y0:GOSUB1100:GOSUB620
3140 H=X1:GOSUB1090:V=Y1:GOSUB1100:GOSUB630
3150 H=X2:GOSUB1090:V=Y2:GOSUB1100:GOSUB630
3160 H=X3:GOSUB1090:V=Y3:GOSUB1100:GOSUB630
3170 H=X4:GOSUB1090:V=Y4:GOSUB1100:GOSUB630
3180 NEXTI
3190 RETURN
3199 REM ++++++++++
3200 REM DRAWN TEXT
3210 A1$="SEBNBNBNNBNBBBCCSSDSS"
3220 A2$="SDSDSNNBNAWWDCCEEBEBB"
3230 M1$="SEBNNNBNNNBNESSSSSSSDSSSNBBBBE"
3240 M2$="BNBNNNADSSDSDSSSSSCEBNW"
3250 E1$="EEEEBBNAWWDDSSSCEEEBB"
3260 R$="BBBCEBDSDDCEBB"
3270 Y1$="BBBDSSDSSEBBBNNBDSSDSDSDSSDD"
3280 Y2$="ANBBBBBBBE"
3290 C1$="EBEBBBBBESEBBBANWWWDDDDDDSSSSSCSS"
3300 C2$="CEEEEBBNAADBCCBBEBBEBBBEBNBNAWS"
3310 H1$="DDSDSDSDSSDSDSDBNBBBECDDSSEBBB"
3320 J1$="BBBESDDDSEBBBEBEBESDSSDWACEBBBBBBBBBB"
3330 J2$="BDSSDSDSSDDSNBBNADSCBEEBBECDSDSNBNBEB"
3340 J3$="CDSDSNBNBEBCDSDSEEBBBBBEEEWWDDSSCEBN"
3350 J4$="BNNSSSSCBBBEBEBESDSSDWACEBBBBEE"
3360 H=XO+112:V=YO+47
3370 H=H-8:GOSUB1090:V=V-3:GOSUB1100:GOSUB620
3380 GOSUB620:P$=A1$:GOSUB2410
3390 P$=A2$:GOSUB2410
3400 H=XO+48:GOSUB1090
3410 V=YO+67:GOSUB1100:GOSUB620
3420 P$=M1$:GOSUB2410
3430 P$=M2$:GOSUB2410
3440 H=XO+59:GOSUB1090
3450 V=YO+66:GOSUB1100:GOSUB620
3460 P$=E1$:GOSUB2410
3470 H=XO+67:GOSUB1090
3480 V=YO+66:GOSUB1100:GOSUB620
3490 P$=R$:GOSUB2410
3500 H=XO+75:GOSUB1090
3510 V=YO+66:GOSUB1100:GOSUB620
3520 P$=R$:GOSUB2410
3530 H=XO+83:GOSUB1090
3540 V=YO+66:GOSUB1100:GOSUB620
3550 P$=Y1$:GOSUB2410
3560 P$=Y2$:GOSUB2410
3570 H=XO+116:GOSUB1090
3580 V=YO+64:GOSUB1100:GOSUB620
3590 P$=C1$:GOSUB2410
3600 P$=C2$:GOSUB2410
3610 P$=H1$:GOSUB2410
3620 P$=R$:GOSUB2410
3630 P$=J1$:GOSUB2410
3640 P$=J2$:GOSUB2410
3650 P$=J3$:GOSUB2410
3660 P$=J4$:GOSUB2410
3670 H=XO+148:GOSUB1090:V=YO+61:GOSUB1100
3680 GOSUB620
3690 RETURN
3799 REM ++++++++++
3800 REM PRINTED TEXT
3810 H=XO+98:GOSUB1090:V=YO+88:GOSUB1100
3820 SR$="TO ALL":GOSUB650
3830 H=XO+86:GOSUB1090:V=YO+120:GOSUB1100
3840 SR$="BASICODERS":GOSUB650
3850 RETURN
3899 REM ++++++++++
3900 SR$="HAPPY NEW YEAR!!"
3910 V=YO+168:GOSUB1100
3920 H=XO+72:GOSUB1090
3930 GOSUB650:CN=1:HO=0.95:VE=0.95
3940 SR$=".":GOSUB650
3950 GOSUB20010
3960 RETURN
3999 REM ++++++++++
4000 REM TUNE
4010 DIMP(255):SV=7:SD=2
4020 KM=0:AA=0:L$=""
4030 GOSUB4710
4040 A$="We wish you a merry Christmas"
4050 B$="And a happy new year"
4060 C$="Good tidings we bring"
4070 D$="To you and your kin"
4080 L$="2DG1GaG+F2EC"
4090 SR$=A$:GOSUB4310
4100 L$="Ea1abaG2+FD"
4110 SR$=A$:GOSUB4310
4120 L$="+Fb1bcba2GE"
4130 SR$=A$:GOSUB4310
4140 L$="1DD2Ea+F4G"
4150 SR$=B$:GOSUB4310
4160 L$="2DGGG4+F"
4170 SR$=C$:GOSUB4310
4180 L$="2+FG+FE4D"
4190 SR$=D$:GOSUB4310
4200 L$="2ab1aaGG2dD"
4210 SR$=A$:GOSUB4310
4220 L$="1DD2Ea+F4G"
4230 SR$=B$:GOSUB4310
4240 RETURN
4299 REM ++++++++++
4300 REM DISPLAY
4310 V=YO+168:GOSUB1100:H=XO:GOSUB1090:GOSUB650:GOSUB4410
4320 CN=1
4330 GOSUB650:CN=0
4340 RETURN
4399 REM ++++++++++
4400 REM PLAY
4410 KM=0:FORN=1 TOLEN(L$)
4420 P$=MID$(L$,N,1)
4430 IF(P$<"0")OR(P$>"9") THENAA=0:GOTO4450
4440 SD=AA+ASC(P$)-48:AA=10*SD:GOTO4590
4450 IFP$="." THENKM=KM+12:GOTO4590
4460 IFP$="=" THENKM=KM-12:GOTO4590
4470 IFP$="+" THENKM=KM+1:GOTO4590
4480 IFP$="-" THENKM=KM-1:GOTO4590
4490 IFP$="R" THENSV=0:GOSUB400:SV=7:GOTO4590
4500 IFP$="H" THENSV=15:GOTO4590
4510 IFP$="M" THENSV=7:GOTO4590
4520 IFP$="Z" THENSV=3:GOTO4590
4530 IF(P$=">")AND(SV=1) THEN4590
4540 IFP$=">" THENSV=SV-1:GOTO4590
4550 IF(P$="<")AND(SV=15) THEN4590
4560 IFP$="<" THENSV=SV+1:GOTO4590
4570 IFP$="" THEN4590
4580 SP=P(ASC(P$))+KM:GOSUB400:KM=0
4590 NEXTN
4600 RETURN
4700 REM NOTE CODES
4710 A=ASC("A"):P(A)=57:P(A+1)=59
4720 P(A+2)=60:P(A+3)=62:P(A+4)=64
4730 P(A+5)=65:P(A+6)=67
4740 A=ASC("a"):P(A)=69:P(A+1)=71
4750 P(A+2)=72:P(A+3)=74:P(A+4)=76
4760 P(A+5)=77:P(A+6)=79
4770 RETURN
4799 REM ++++++++++
20000 REM PRINTER?
20010 SD=500:GOSUB450
20020 RETURN
24999 REM ++++++++++
25000 REM TREE DATA
25010 DATA9,0,2,24,15,6,10,20,29,5,22,16
25020 DATA41,4,33,15,50,3,46,11,57,2,54,9,63,0
29999 REM ++++++++++
30000 REM MET DANK AAN DE HEER
30010 REM BREDERODE VOOR ZIJN
30020 REM PROGRAMMA 'SPEELDOOS'
30030 REM WAARUIT SPEELROUTINES
30040 REM 4000-4770 VAN DIT
30050 REM PROGRAMMA
30999 REM ++++++++++
32000 REM EEN LUCHTHARTIG VERZETJE
32010 REM OP EEN SPECTRUM
32020 REM IN BASICODE-3
32030 REM OCTOBER 1987
32040 REM
32050 REM L.PAYNE
32060 REM HIGH VIEW
32070 REM SHAWCROSS ROAD
32080 REM WEST RUNTON
32090 REM CROMER
32100 REM NORFOLK
32110 REM NR27 9NA
32120 REM
32130 REM GROOT BRITTANNIE
32140 REM
32150 REM TROS-RADIO dd 871223