-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathASSEN.BAS
725 lines (725 loc) · 21.2 KB
/
ASSEN.BAS
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
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
10 GOTO 1000:REM Basicode-2 subroutines
20 CLEAR:IN$=" ":SR=0:SR$="":CT=0:CN=0:OHT%=80:OVT%=24
22 KEY OFF:SCREEN 0:WIDTH OHT%:COLOR 7,0,0:CLS:RANDOMIZE TIMER*100
29 GOTO 1010
100 CLS:RETURN
110 GOSUB 111:LOCATE OVE%+1,OHO%+1:RETURN
111 OVE%=INT(VE):OHO%=INT(HO)
112 IF OVE%<0 THEN OVE%=0 ELSE IF OVE%>=OVT% THEN OVE%=OVT%-1
113 IF OHO%<0 THEN OHO%=0 ELSE IF OHO%>=OHT% THEN OHO%=OHT%-1
114 RETURN
120 HO=POS(0)-1:VE=CSRLIN-1:RETURN
200 IN$=INKEY$:RETURN
210 IN$=INPUT$(1):RETURN
250 BEEP:RETURN
260 RV=RND:RETURN
270 FR=FRE(""):RETURN
300 SR$=MID$(STR$(ABS(SR)),2):IF LEFT$(SR$,1)="." THEN SR$="0"+SR$
301 IF SR<0 THEN SR$="-"+SR$
302 RETURN
310 O#=ABS(SR)+.5*10^-CN:O!=INT(O#):O#=1+O#-O!:O$=""
311 IF CN THEN O$="."+STRING$(CN,48):IF O#>1 THEN MID$(O$,1)=MID$(STR$(O#),3)
312 O$=MID$(STR$(O!),2)+O$:IF VAL(O$)>0 AND SR<0 THEN O$="-"+O$
313 IF LEN(O$)<=CT THEN SR$=SPACE$(CT-LEN(O$))+O$:RETURN
314 SR$=STRING$(CT,42):RETURN
350 LPRINT SR$;:RETURN
360 LPRINT:RETURN
1000 A=200:GOTO 20:REM ASSENSTELSEL
1010 BS$="":MX=20:MY=10:CR$=CHR$(13)
1020 NL=ASC("0"):W=0
1030 GOSUB 20000
1040 DIM CX(16),CY(10)
1100 REM****> MENU <****
1110 GOSUB 100
1120 PRINT"*************************************"
1130 PRINT"* HET ASSENSTELSEL *"
1140 PRINT"*************************************"
1160 PRINT"* 1 HET PROGRAMMA. *"
1170 PRINT"* 2 DE ASSEN. *"
1180 PRINT"* 3 DE COORDINATEN. *"
1190 PRINT"* 4 VRAGEN COORDINATEN. *"
1200 PRINT"* 5 DE KWADRANTEN. *"
1210 PRINT"* 6 VRAGEN KWADRANTEN. *"
1220 PRINT"* 7 ZOEKSPEL. *"
1230 PRINT"* 8 STOPPEN. *"
1240 PRINT"* *"
1250 PRINT"* TYPE JE KEUZE IN. *"
1260 PRINT"* *"
1270 PRINT"*************************************"
1300 REM
1310 PRINT
1320 REM****> VERWERKEN KEUZE <****
1330 GOSUB 10110
1340 IF(IN$>="1") AND(IN$<="8") THEN 1360
1350 GOTO 1330
1360 IV=VAL(IN$)
1370 SR=IV:GOSUB 300
1380 PRINT" JE KEUZE IS : ";SR$:PRINT
1390 PRINT" IS DAT DE GOEDE KEUZE (J/N) ?"
1400 GOSUB 10110
1410 IF(IN$<>"J") AND(IN$<>"j") THEN 1110
1430 IF IV=8 THEN 1490
1440 IF IV>4 THEN 1470
1450 ON IV GOSUB 5600,1530,2030,2730
1460 GOTO 1110
1470 ON IV-4 GOSUB 3330,3730,4330
1480 GOTO 1110
1490 END
1500 REM------------------------
1510 REM****> UITLEG ASSEN <****
1520 REM------------------------
1530 GOSUB 100
1540 GOSUB 12110:GOSUB 12210
1550 HO=MX+2:VE=MY-2:GOSUB 110
1560 PRINT"HALLO, IK BEN DE"
1570 VE=MY+3:B$=" "
1580 C$="POSITIEVE X-AS"
1590 GOSUB 9000:REM KNIPPEREN
1610 GOSUB 12310:GOSUB 12410
1620 HO=1:VE=MY-2:GOSUB 110
1630 PRINT"EN IK BEN DE"
1640 VE=MY+3:B$=" "
1650 C$="NEGATIEVE X-AS"
1660 GOSUB 9000
1670 W=10:GOSUB 10010:REM SPATIEBALK
1680 GOSUB 100:GOSUB 12510:GOSUB 12610
1690 HO=23:VE=3:GOSUB 110:PRINT"IK BEN DE"
1700 VE=5:B$=" "
1710 C$="POSITIEVE Y-AS":GOSUB 9000
1730 GOSUB 12710:GOSUB 12810
1740 HO=23:VE=15:GOSUB 110:PRINT"EN IK BEN DE"
1750 VE=17
1760 B$=" "
1770 C$="NEGATIEVE Y-AS":GOSUB 9000
1780 HO=3:VE=17:GOSUB 110
1790 PRINT"AANGENAAM !"
1800 W=10:GOSUB 10010
1810 GOSUB 13110
1820 HO=24:VE=8:GOSUB 110:PRINT"POSITIEVE X-AS"
1830 HO=22:VE=3:GOSUB 110:PRINT"POSITIEVE Y-AS"
1840 HO=3:VE=12:GOSUB 110:PRINT"NEGATIEVE X-AS"
1850 HO=22:VE=18:GOSUB 110:PRINT"NEGATIEVE Y-AS"
1860 HO=0:VE=21:GOSUB 110
1870 PRINT"SAMEN VORMEN WIJ EEN ASSENSTELSEL."
1880 W=20:GOSUB 10010
1890 HO=0:VE=21:GOSUB 110
1900 PRINT" ";
1910 GOSUB 110
1920 PRINT"NEEM ONS OVER."
1930 GOSUB 10010
1940 RETURN
2000 REM------------------------------
2010 REM****> UITLEG COORDINATEN <****
2020 REM------------------------------
2030 GOSUB 13010
2040 X=0:Y=0:GOSUB 9110:GOSUB 9230
2050 B$=" ":C$="*":GOSUB 9000
2060 GOSUB 13730
2070 HO=0:VE=14:GOSUB 110
2080 PRINT"IK BEN DE OORSPRONG, ZE NOEMEN MIJ O."
2090 PRINT
2100 PRINT"MIJN CO-ORDINATEN ZIJN ";CO$;"."
2110 W=10:GOSUB 10010
2120 REM
2140 X=7:Y=4
2150 GOSUB 2405
2160 X=-7:Y=5
2170 GOSUB 2405
2180 X=-8:Y=-4
2190 GOSUB 2405
2200 X=6:Y=-5
2210 GOSUB 2405
2220 GOSUB 100
2230 PRINT"ONTHOUD DUS:"
2250 PRINT:PRINT"DE VOORSTE CO-ORDINAAT VERTELT HOEVEEL"
2260 PRINT:PRINT"JE NAAR LINKS OF NAAR RECHTS MOET."
2270 W=10:GOSUB 9430
2280 PRINT:PRINT"DAT IS DE X-CO-ORDINAAT !!"
2290 GOSUB 9430:PRINT:PRINT
2300 PRINT"DE ACHTERSTE CO-ORDINAAT VERTELT"
2310 PRINT:PRINT"HOEVEEL JE OMHOOG OF OMLAAG MOET."
2320 GOSUB 9430
2330 PRINT:PRINT"DAT IS DE Y-CO-ORDINAAT !!"
2340 GOSUB 10010
2350 RETURN
2360 REM
2400 REM***> HULP ROUTINE COOR <***
2405 GOSUB 13010
2410 GOSUB 9110:GOSUB 9230
2420 B$=" ":C$="*":GOSUB 9000
2430 SR=ABS(X):GOSUB 300:AX$=SR$
2440 SR=ABS(Y):GOSUB 300:AY$=SR$
2450 IF Y>0 THEN GOSUB 13730:GOTO 2470
2460 GOSUB 13830
2470 IF Y>0 THEN HO=0:VE=MY+3:GOTO 2490
2480 HO=0:VE=0
2490 GOSUB 110:PRINT"Mijn CO-ORDINATEN ZIJN ";CO$
2500 PRINT:PRINT"DAT BETEKENT DAT JE VANUIT O"
2505 W=5:GOSUB 9430:GOSUB 9505
2510 IF X<0 THEN 2540
2520 PRINT:PRINT"EERST ";AX$;" NAAR RECHTS EN DAN ";
2530 GOTO 2545
2540 PRINT:PRINT"EERST ";AX$;" NAAR LINKS EN DAN ";
2545 W=5:GOSUB 9430:GOSUB 9605
2550 IF Y<0 THEN 2580
2560 PRINT AY$;" OMHOOG"
2570 GOTO 2590
2580 PRINT AY$;" OMLAAG"
2590 PRINT:PRINT"MOET OM MIJ TE BEREIKEN."
2600 GOSUB 10010
2610 RETURN
2620 REM
2700 REM----------------------------
2710 REM***> VRAGEN COORDINATEN <***
2720 REM----------------------------
2730 GOSUB 100
2740 PRINT"OP HET SCHERM KOMT EEN KNIPPERENDE":PRINT
2750 PRINT"STER.":PRINT
2755 PRINT"ALS HET KNIPPEREN STOPT, MOET JE DE":PRINT
2760 PRINT"CO-ORDINATEN VAN DE STER OPGEVEN.":PRINT
2770 W=10:GOSUB 10010:PRINT
2780 PRINT"X EN Y ZIJN GEHELE GETALLEN.":PRINT
2790 PRINT"JE KRIJGT 10 BEURTEN.":PRINT:PRINT
2800 PRINT"SUCCES."
2810 GOSUB 10010
2820 GOSUB 6010:REM VERBETER TOETS VRAGEN
2830 GOSUB 6210:REM ARRAY'S VULLEN
2840 NX=16:NY=10:G1=0
2850 FOR BT=1 TO 10
2860 GOSUB 13010
2870 HO=0:VE=22:GOSUB 110
2880 SR=BT:GOSUB 300
2890 PRINT"BEURT ";SR$
2900 GOSUB 6310:REM COORDINATEN SCHUDDEN
2910 B$=" ":C$="*":GOSUB 9000
2920 HI=23
2930 IF X>0 THEN HI=0
2940 HO=HI:VE=MY+3:GL$="-8":GH$="+8"
2950 VR$="VOER X IN : ":GOSUB 10310
2960 AX=AW
2970 HO=HI:VE=MY+5:GL$="-5":GH$="+5"
2980 VR$="VOER Y IN : ":GOSUB 10310
2990 AY=AW
3000 IF(AX=X) AND(AY=Y) THEN 3040
3010 HO=HI+3:VE=VE+2:GOSUB 110:PRINT"FOUT !!"
3020 VE=VE+2:GOSUB 110:PRINT"HET IS ";CO$
3030 GOSUB 9505:GOSUB 9605:GOTO 3060
3040 G1=G1+1
3050 HO=HI+3:VE=VE+2:GOSUB 110:PRINT"GOED ZO!!"
3060 GOSUB 10010
3070 NEXT BT
3080 GOSUB 4210:REM SCORE
3090 RETURN
3300 REM---------------------------
3310 REM***> UITLEG KWADRANTEN <***
3320 REM---------------------------
3330 GOSUB 13010
3340 X=4:Y=5:GOSUB 3505
3350 X=-4:Y=5:GOSUB 3505
3360 X=-4:Y=-5:GOSUB 3505
3370 X=4:Y=-5:GOSUB 3505
3375 W=10:GOSUB 10010
3380 GOSUB 13110
3385 HO=24:VE=3:GOSUB 110:PRINT"EERSTE"
3390 HO=24:VE=5:GOSUB 110:PRINT"KWADRANT"
3395 X=8:Y=5:GOSUB 9110:GOSUB 9805
3400 HO=24:VE=7:GOSUB 110:PRINT"X>0 EN Y>0":GOSUB 10010
3405 HO=4:VE=3:GOSUB 110:PRINT"TWEEDE"
3410 HO=4:VE=5:GOSUB 110:PRINT"KWADRANT"
3415 X=-8:Y=5:GOSUB 9110:GOSUB 9805
3420 HO=4:VE=7:GOSUB 110:PRINT"X<0 EN Y>0":GOSUB 10010
3430 HO=4:VE=15:GOSUB 110:PRINT"DERDE"
3435 HO=4:VE=17:GOSUB 110:PRINT"KWADRANT"
3440 X=-8:Y=-5:GOSUB 9110:GOSUB 9805
3445 HO=4:VE=13:GOSUB 110:PRINT"X<0 EN Y<0":GOSUB 10010
3450 HO=24:VE=15:GOSUB 110:PRINT"VIERDE"
3455 HO=24:VE=17:GOSUB 110:PRINT"KWADRANT"
3460 X=8:Y=-5:GOSUB 9110:GOSUB 9805
3465 HO=24:VE=13:GOSUB 110:PRINT"X>0 EN Y<0"
3470 W=20:GOSUB 10010
3475 HO=0:VE=21:GOSUB 110
3480 PRINT"NEEM DIT OVER."
3485 GOSUB 10010
3490 RETURN
3495 REM
3500 REM****> HULP ROUTINE KWADRANTEN <****
3505 GOSUB 9110:GOSUB 9230
3510 B$=" ":C$="*":GOSUB 9000
3520 IF X>0 THEN HO=MX+3:GOTO 3540
3530 HO=0
3540 IF Y>0 THEN VE=0:GOTO 3560
3550 VE=12
3560 VE=VE+2:GOSUB 110:PRINT"IK BEN ";CO$;
3570 VE=VE+2:GOSUB 110
3580 PRINT"EN LIG IN HET"
3590 VE=VE+2:GOSUB 110
3600 IF(X>0) AND(Y>0) THEN C$="EERSTE KWADRANT."
3610 IF(X>0) AND(Y<0) THEN C$="VIERDE KWADRANT."
3620 IF(X<0) AND(Y>0) THEN C$="TWEEDE KWADRANT."
3630 IF(X<0) AND(Y<0) THEN C$="DERDE KWADRANT."
3640 B$=" ":GOSUB 9000
3660 RETURN
3670 REM
3700 REM-----------------
3710 REM<< KWADRANTEN VRAGEN >>
3720 REM-----------------
3730 GOSUB 100
3740 PRINT"OP HET SCHERM KOMEN DE CO-ORDINA-":PRINT
3750 PRINT"TEN VAN EEN PUNT.":PRINT:PRINT
3760 PRINT"JE MOET BEDENKEN IN WELK KWADRANT":PRINT
3765 PRINT"DAT PUNT LIGT.":PRINT
3770 W=10:GOSUB 10010:PRINT:PRINT
3775 PRINT"ER KOMEN 10 PUNTEN.":PRINT
3780 PRINT"DUS NA ELKE VRAAG STEEDS EEN 1 OF 2":PRINT
3790 PRINT"OF 3 OF 4 INVOEREN.":PRINT:PRINT
3800 PRINT"SUCCES !!!!"
3810 GOSUB 10010
3820 G1=0:K1=0:K2=0
3830 GOSUB 6010:GOSUB 100
3840 FOR VE=0 TO 18 STEP 2
3850 REM>>> RANDOM KWADRANTEN
3860 GOSUB 260:X=INT(RV*100)-50
3870 GOSUB 260:Y=INT(RV*100)-50
3880 IF(X=0) OR(Y=0) THEN 3860
3890 IF(X<0) AND(Y<0) THEN KW=3:GOTO 3930
3900 IF(X<0) AND(Y>0) THEN KW=2:GOTO 3930
3910 IF(X>0) AND(Y>0) THEN KW=1:GOTO 3930
3920 KW=4
3930 IF(KW=K1) OR(KW=K2) THEN 3860
3940 K2=K1:K1=KW
3950 GOSUB 9230
3960 REM
3970 HO=0:GOSUB 110:PRINT CO$;
3980 HO=9
3990 VR$="LIGT IN KWADRANT ? "
4000 GL$="1":GH$="4":HI=HO
4010 GOSUB 10310
4020 IF AW=KW THEN GOSUB 4100:G1=G1+1:GOTO 4050
4030 PRINT" FOUT!"
4040 GOSUB 9430
4050 NEXT VE
4060 W=1:GOSUB 10010
4070 GOSUB 4210
4080 RETURN
4085 REM
4090 REM>>> GOED ANTWOORD WEG
4100 PRINT" GOED!"
4110 HO=0:GOSUB 110:PRINT" "
4120 RETURN
4130 REM
4200 REM***> AANTAL PUNTEN <***
4210 GOSUB 100
4220 SR=G1:GOSUB 300
4230 PRINT"JE HAD ER ";SR$;" VAN DE 10 GOED."
4240 PRINT:PRINT
4250 IF G1<6 THEN PRINT"DAT KAN BETER."
4260 IF G1>=6 THEN PRINT"DAT GING AARDIG.":PRINT
4265 PRINT
4270 IF G1>=8 THEN PRINT"JE BENT EEN BOLLEBOOS."
4280 GOSUB 10010
4290 RETURN
4295 REM
4300 REM--------------
4310 REM<< ZOEKSPEL >>
4320 REM--------------
4330 GOSUB 100
4340 PRINT"IK HEB EEN PUNT IN MIJN GEDACHTEN.":PRINT
4345 PRINT
4350 PRINT"VOOR DE X-CO-ORDINAAT GELDT:-8<=X<=8":PRINT
4360 PRINT"VOOR DE Y-CO-ORDINAAT GELDT:-5<=Y<=5":PRINT
4365 PRINT
4370 PRINT"X EN Y ZIJN GEHELE GETALLEN.":PRINT:PRINT
4380 W=10:GOSUB 10010
4390 PRINT"JE KRIJGT NIET MEER DAN TIEN":PRINT
4400 PRINT"POGINGEN OM DE CO-ORDINATEN VAN":PRINT
4405 PRINT"DAT PUNT TE VINDEN.":PRINT:PRINT
4410 PRINT"SUCCES."
4420 GOSUB 10010
4430 GOSUB 6010
4440 GOSUB 6210
4450 PO=1:NX=16:NY=10
4460 GOSUB 6310
4470 GOSUB 13110
4480 X1=X:Y1=Y:C$=CO$
4490 HO=0:VE=1:GOSUB 110
4500 SR=PO:GOSUB 300
4510 PRINT"POGING ";SR$;" :";
4520 HO=0:HI=HO:VE=3:GL$="-8":GH$="+8"
4530 VR$="VOER X IN : "
4540 GOSUB 10310
4550 AX=AW
4560 HO=0:HI=HO:VE=5:GL$="-5":GH$="+5"
4570 VR$="VOER Y IN : "
4580 GOSUB 10310
4590 AY=AW
4600 X=AX:Y=AY
4610 IF(X=X1) AND(Y=Y1) THEN 4780
4620 HO=0:VE=MY+2:GOSUB 10200
4630 HO=0:VE=MY+2:GOSUB 110
4640 GOSUB 9230
4650 PRINT CO$;" IS FOUT."
4660 VE=VE+2:GOSUB 110
4670 PRINT"JE MOET"
4680 VE=VE+2:GOSUB 110
4690 IF X<X1 THEN PRINT"NAAR RECHTS";
4700 IF X>X1 THEN PRINT"NAAR LINKS";
4710 IF(X<>X1) AND(Y<>Y1) THEN PRINT" EN":PRINT
4720 IF Y<Y1 THEN PRINT"OMHOOG!"
4730 IF Y>Y1 THEN PRINT"OMLAAG!"
4740 HO=0:VE=2:GOSUB 10200
4750 W=20:GOSUB 9430
4760 PO=PO+1:IF PO<11 THEN 4490
4770 IF PO=11 THEN 4890
4780 GOSUB 100
4790 PRINT"GOED ZO! HET WAS ";C$
4800 PRINT:PRINT"JE HAD ";SR$;" POGINGEN NODIG."
4810 PRINT:PRINT:IF PO<2 THEN 4860
4820 IF(PO=2) OR(PO=3) THEN PRINT"DAT IS SUPER SNEL."
4830 IF(PO=4) OR(PO=5) THEN PRINT"DAT IS SNEL."
4840 IF PO>5 THEN PRINT"WAS DAT EVEN LASTIG ZEG."
4850 GOTO 4920
4860 PRINT"VOLGENS MIJ KUN JIJ GEDACHTEN LEZEN!!":PRINT
4880 GOTO 4920
4890 GOSUB 100
4900 PRINT"DAT WAS JE TIENDE BEURT.":PRINT
4910 PRINT"HET WAS ";C$
4920 PRINT:PRINT"WIL JE NOG EEN SPEL (J/N) ?"
4930 GOSUB 10110
4940 IF(IN$="J") OR(IN$="j") THEN 4450
4950 RETURN
5590 REM**> HET PROGRAMMA <**
5600 GOSUB 100
5610 PRINT"DIT PROGRAMMA IS BESTEMD VOOR LEER-"
5615 PRINT
5620 PRINT"LINGEN IN DE EERSTE KLAS VAN HET"
5625 PRINT
5630 PRINT"VOORTGEZET ONDERWIJS.":PRINT
5640 W=10:GOSUB 10010
5650 PRINT"HET KAN GEBRUIKT WORDEN ALS EEN"
5655 PRINT
5660 PRINT"HERHALINGSLES EN/OF OEFENLES."
5670 GOSUB 10010
5680 PRINT:PRINT"DE INVOER ROUTINE LAAT GEEN"
5690 PRINT
5700 PRINT"ONMOGELIJKE ANTWOORDEN DOOR."
5710 PRINT
5720 PRINT"WEL FOUTE."
5730 GOSUB 10010
5740 RETURN
6000 REM***> BS-TOETS <***
6010 IF BS$<>"" THEN 6110
6020 GOSUB 100
6030 PRINT"DRUK EVEN DE TOETS IN WAARMEE JE":PRINT
6040 PRINT"EEN TYPE-FOUT WEGDOET.":PRINT
6050 PRINT:PRINT"DUS DE VERBETER-TOETS.":PRINT
6060 GOSUB 10110
6070 IF IN$=CR$ THEN 6060
6080 IF(IN$>CHR$(31)) AND(IN$<CHR$(127)) THEN 6060
6085 BS$=IN$
6090 PRINT:PRINT"DANK U."
6100 GOSUB 10010
6110 RETURN
6120 REM
6200 REM***> X EN Y ARRAY VULLEN <***
6210 FOR I=0 TO 16
6220 CX(I)=(-8+I)
6230 NEXT I
6240 FOR I=0 TO 10
6250 CY(I)=(-5+I)
6260 NEXT I
6270 RETURN
6300 REM***> RANDOM COORDINATEN <***
6310 GOSUB 260:X=INT((RV*NX)+.5)
6320 CX=CX(X)
6330 CX(X)=CX(NX)
6340 NX=NX-1:X=CX
6350 GOSUB 260:Y=INT((RV*NY)+.5)
6360 CY=CY(Y)
6370 CY(Y)=CY(NY)
6380 NY=NY-1:Y=CY
6390 REM
6400 GOSUB 9230
6410 GOSUB 9110
6420 RETURN
8990 REM***> KNIPPERENDE TEKST <***
9000 FOR K=0 TO 7
9010 GOSUB 110:PRINT B$
9020 W=2:GOSUB 9430
9030 GOSUB 110:PRINT C$
9040 GOSUB 9430
9050 NEXT K
9060 RETURN
9100 REM***> POSITIE COORDINATEN <****
9110 HO=2*X+MX:VE=-2*Y+MY
9120 I=1:J=1:HT=HO:VT=VE
9130 IF X<0 THEN I=-1
9140 IF Y<0 THEN J=-1
9150 RETURN
9200 REM-------------------
9210 REM<< NOTATIE COORDINATEN >>
9220 REM-------------------
9230 SR=X:GOSUB 300:X$=SR$
9240 SR=Y:GOSUB 300:Y$=SR$
9250 CO$="("+X$+","+Y$+")"
9260 RETURN
9400 REM--------
9410 REM<< WACHTLUS >>
9420 REM--------
9430 FOR WA=1 TO W*50
9440 NEXT WA
9450 RETURN
9460 REM
9500 REM***> RECHTS OF LINKS <***
9505 IF X=0 THEN 9570
9510 GOSUB 120:HI=HO:VI=VE
9520 FOR HO=MX+I TO HT-I STEP I
9530 VE=MY:GOSUB 110:PRINT"X"
9540 W=5:GOSUB 9430
9550 NEXT HO
9555 HO=HT:GOSUB 110:PRINT"*"
9560 HO=HI:VE=VI:GOSUB 110
9570 RETURN
9580 REM
9600 REM***> OMHOOG OF OMLAAG <***
9605 GOSUB 120:HI=HO:VI=VE
9610 IF Y=0 THEN 9655
9620 FOR VE=MY-J TO VT+J STEP-J
9630 HO=HT:GOSUB 110:PRINT"Y"
9640 W=5:GOSUB 9430
9650 NEXT VE
9655 IF X=0 THEN 9690
9660 FOR HO=MX+I TO HT-I STEP I
9670 VE=VT:GOSUB 110:PRINT"-"
9680 NEXT HO
9690 HO=HI:VE=VI:GOSUB 110
9700 RETURN
9710 REM
9800 REM**> PLUSSEN OF MINNEN <**
9805 XA$="+":IF X<0 THEN XA$="-"
9810 YA$="+":IF Y<0 THEN YA$="-"
9815 REM>>>> BIJ DE X-AS
9820 FOR HO=MX+I TO HT STEP I
9825 VE=MY-J:GOSUB 110:PRINT XA$
9830 W=2:GOSUB 9430
9835 NEXT HO
9840 REM>>>> BIJ DE Y-AS
9850 FOR VE=MY-J*2 TO VT STEP-J
9855 HO=MX+I:GOSUB 110:PRINT YA$
9860 W=2:GOSUB 9430
9865 NEXT VE
9880 RETURN
9890 REM
10000 REM*****> SPATIEBALK <*****
10010 GOSUB 9430
10020 GOSUB 120:HS=HO:VS=VE
10030 VE=23:HO=0:GOSUB 110
10040 PRINT" ****> DRUK OP DE SPATIEBALK <**** ";
10050 GOSUB 10110:IF IN$<>" " THEN 10050
10060 VE=23:HO=0:GOSUB 110
10070 PRINT" ";
10080 HO=HS:VE=VS:GOSUB 110
10090 RETURN
10100 REM**> INPUT BUFFERLEEG <**
10110 GOSUB 200:IF IN$<>"" THEN 10110
10120 GOSUB 210
10140 RETURN
10200 REM***> SCHOON MAKEN <***
10210 FOR VE=VE TO VE+6
10220 GOSUB 110
10230 PRINT" "
10240 NEXT VE
10250 RETURN
10300 REM***> COORDINATEN INVOEREN <***
10310 AW$="":GL=VAL(GL$):GH=VAL(GH$):GT$=LEFT$(GL$,1)
10315 FL=0:IF(GT$="-") OR(GT$="+") THEN FL=1
10320 GOSUB 110:PRINT VR$;
10330 GOSUB 10110
10335 IF(AW$="") AND(FL=1) THEN 10400
10340 IF IN$=BS$ THEN 10600
10345 IF IN$=CR$ THEN 10650
10350 IF(VAL(IN$)=0) AND(IN$<>"0") THEN 10330
10355 IF(VAL(AW$)=0) AND(IN$="0") THEN 10330
10360 AW=VAL(AW$+IN$)
10365 IF(AW<GL) OR(AW>GH) THEN 10330
10370 AW$=AW$+IN$
10375 GOTO 10500
10380 REM
10390 REM>>> TEKEN OF EERSTE GETAL >>>
10400 IF(IN$="+") OR(IN$="-") THEN 10450
10410 AW=VAL(IN$)
10415 IF(AW=0) AND(IN$<>"0") THEN 10330
10420 IF(AW<GL) OR(AW>GH) THEN 10330
10425 AW$=" "+IN$
10430 GOTO 10500
10440 REM
10450 IF FL=0 THEN 10330
10460 AW$=IN$
10470 GOTO 10500
10480 REM
10490 REM>>> PRINT AW$ <<<
10500 HO=HI+LEN(VR$):GOSUB 110
10510 PRINT AW$;
10520 GOTO 10330
10530 REM
10590 REM>>> VERBETER-TOETS <<<
10600 IF AW$="" THEN 10330
10610 HO=HI+LEN(VR$):GOSUB 110:PRINT" ";
10620 AW$="":HO=HI
10630 GOTO 10320
10640 REM>>> INVOER-TOETS <<<
10650 AW=VAL(AW$)
10660 IF(AW=0) AND(RIGHT$(AW$,1)<>"0") THEN 10330
10670 RETURN
10680 REM> EINDE COORDINATEN INVOER <
12000 REM****> ASSEN <****
12010 REM
12100 REM****> + X-AS <****
12110 HO=MX:VE=MY:GOSUB 110:PRINT"O"
12120 FOR I=1 TO 16
12130 HO=MX+I:GOSUB 110:PRINT"+"
12140 NEXT I
12150 RETURN
12200 REM****> GETALLEN +X-AS <****
12210 FOR I=2 TO 8 STEP 2
12220 B$=CHR$(NL+I)
12230 HO=MX+2*I:VE=MY:GOSUB 110:PRINT"I"
12240 HO=MX-1+2*I:VE=MY+1:GOSUB 110:PRINT"+";B$
12250 NEXT I
12260 RETURN
12270 REM
12300 REM****> - X-AS <****
12310 FOR I=1 TO 16
12320 HO=MX-I:VE=MY:GOSUB 110:PRINT"+"
12330 NEXT I
12340 RETURN
12350 REM
12400 REM****> GETALLEN -X-AS <****
12410 FOR I=2 TO 8 STEP 2
12420 B$=CHR$(NL+I)
12430 HO=MX-2*I:VE=MY:GOSUB 110:PRINT"I"
12440 HO=MX-(2*I+1):VE=MY+1:GOSUB 110:PRINT"-";B$
12450 NEXT I
12460 RETURN
12470 REM
12500 REM****> + Y-AS <****
12510 HO=MX:VE=MY:GOSUB 110:PRINT"O"
12520 FOR I=1 TO 10
12530 HO=MX:VE=MY-I:GOSUB 110:PRINT"+"
12540 NEXT I
12550 RETURN
12560 REM
12600 REM****> GETALLEN +Y-AS <****
12610 FOR I=2 TO 10 STEP 4
12620 B$=CHR$(NL+I/2)
12630 HO=MX+1:VE=MY-I:GOSUB 110:PRINT"+";B$
12640 NEXT I
12650 RETURN
12660 REM
12700 REM****> - Y-AS <****
12710 FOR I=1 TO 10
12720 HO=MX:VE=MY+I:GOSUB 110:PRINT"+"
12730 NEXT I
12740 RETURN
12750 REM
12800 REM****> GETALLEN -Y-AS <****
12810 FOR I=2 TO 10 STEP 4
12820 B$=CHR$(NL+I/2)
12830 HO=MX-2:VE=MY+I:GOSUB 110:PRINT"-";B$
12840 NEXT I
12850 RETURN
12860 REM
13000 REM****> ASSENSTELSEL <****
13010 GOSUB 100
13020 GOSUB 12110:GOSUB 12210
13030 GOSUB 12310:GOSUB 12410
13040 GOSUB 12510:GOSUB 12610
13050 GOSUB 12710:GOSUB 12810
13060 RETURN
13070 REM
13100 REM****> LEEG ASSENSTELSEL <****
13110 GOSUB 100
13120 GOSUB 12110
13130 GOSUB 12310
13140 GOSUB 12510
13150 GOSUB 12710
13160 RETURN
13170 REM
13700 REM------------
13710 REM<< Y- AS WISSEN >>
13720 REM------------
13730 FOR VE=MY+1 TO 22
13740 HO=MX-2:GOSUB 110:PRINT" "
13750 NEXT VE
13760 RETURN
13800 REM------------
13810 REM<< Y+ AS WISSEN >>
13820 REM------------
13830 FOR VE=0 TO MY-1
13840 HO=MX:GOSUB 110:PRINT" "
13850 NEXT VE
13860 RETURN
20000 REM INSTELLEN LETTER-MODE EN
20010 REM MONOCHROME MONITOR C-64
20020 REM
20030 REM POKE 53272,23
20040 REM
20050 REM POKE 53280,0
20060 REM POKE 53281,0
20070 REM
20100 REM INSTELLEN MONOCHROME MONITOR
20110 REM NIVO IBM PC.
20120 REM
20130 REM COLOR 7,0,0
20140 REM
20150 REM RANDOM INSTELLEN PC.
20160 REM
20170 REM N=VAL(MID$(TIME$,7,2))
20180 REM RANDOMIZE N
20190 REM
20200 RETURN
20210 REM
30000 REM******************************
30010 REM* *
30020 REM* ASSENSTELSEL *
30030 REM* *
30040 REM* EEN PROGRAMMA VAN *
30050 REM* HANS VAN SCHAAIK. *
30060 REM* *
30070 REM* BEWERKT EN OMGEZET NAAR *
30080 REM* BASICODE-2 DOOR *
30090 REM* *
30100 REM* JAAP WIELES *
30110 REM* HOOFDWAL 68 *
30120 REM* 4207 EE GORINCHEM *
30130 REM* *
30140 REM* *
30150 REM* MONOCHROME MONITOR INSTEL- *
30160 REM* LEN DOOR REM WEG TE HALEN *
30170 REM* BIJ REGEL *
30180 REM* 20050 EN 20060 VOOR C-64 *
30190 REM* 20130 VOOR NIVO IBM PC *
30200 REM* *
30210 REM* KLEINE LETTERMODE BIJ C-64 *
30220 REM* DOOR REM WEG TE HALEN BIJ *
30250 REM* REGEL 20030 *
30260 REM* *
30270 REM* BETERE RANDOM WAARDEN BIJ *
30280 REM* PC DOOR REM WEG TE HALEN *
30290 REM* BIJ DE REGELS 20170 EN *
30300 REM* 20180 *
30310 REM* *
30320 REM* SNELHEID VERANDEREN DOOR *
30330 REM* VOOR W IN HET PROGRAMMA *
30340 REM* ANDERE WAARDEN TE KIEZEN *
30350 REM* OF DOOR W IN 9430 MET EEN *
30360 REM* ANDERE FAKTOR TE VERMENIG- *
30370 REM* VULDIGEN. *
30380 REM* *
30390 REM* MET DANK AAN JOOP ENGELS *
30400 REM* VOOR DE AANWIJZINGEN *
30410 REM* *
30420 REM* MAART 1989 *
30430 REM* *
30440 REM* COPYRIGHT NOS HILVERSUM *
30450 REM* *
30460 REM******************************