10 REM ******** STATISCHE INVOER ********
20 DIM A(370),B(15)
30 GOTO 2300
40 PRINT
50 REM ******** INITIALISEREN ********
60 N=0 : T=370 : G=-1
70 N$="":F=0 :Y3=0
80 FOR I=1 TO T:A(I)=0:NEXT I
90 RETURN
100 PRINT
110 REM **** KOP ******
120 PRINT CHR$(27);"E"
130 PRINT "********* STATISTISCHE INVOER *****"
135 PRINT
140 PRINT F$;          :REM BEWERKINGSNAAM
150 PRINT TAB(40)"BESTANDSNAAM :";N$
160 PRINT TAB(40)"AANTAL WAARDEN :";N
170 PRINT
180 RETURN
190 PRINT
200 REM ****** CONTROLE **********
210 F$="-CONTROLE-" : GOSUB 120
220 PRINT"ZIJN DE GEGEVENS OPGESLAGEN OP SOURCE DISK ? "
230 B$="NOG SCHRIJVEN":GOSUB 280 :REM**** <JA/NEE>
240 IF S=1 THEN GOSUB 560        :REM**** SCHRIJVEN
250 RETURN
260 PRINT
270 REM **** JA/NEE ****
280 PRINT B$+ "  <JA/NEE>";
290 INPUT L$ : L$ =LEFT$(L$,1) :S=0
300 IF L$="J" THEN S =1
310 IF L$="N" THEN S =2
320 IF S=0 THEN 280
330 RETURN
340 PRINT
350 REM ******** DISK INLEZEN *******
360 F$="-DISK INLEZEN-":GOSUB 120 :REM ****KOP
370 B$="-OPSLAAN OP DISK : GOSUB 280:REM ******JA/NEE
380 IF S=2 THEN 530
390 OPEN "I",1, "STATPA"   
400 INPUT #1,N$,N,F           
410 IF N=0 THEN 460 
420 REM *** DATA TERUG LEZEN ***
430 FOR I=1 TO N                
440 INPUT #1,A(I)
450 NEXT I
460 IF F=0 THEN 510
465 PRINT
470 REM **** FREQUENTIE-INTERVALLEN***
480 FOR I= 1 TO F
490 INPUT #1,B(I)
500 NEXT I
510 G=0
520 CLOSE
530 RETURN
540 PRINT
550 REM ************ OPSLAAN OP DISK *************
560 F$="OPSLAAN OP DISK ":GOSUB 120 :REM******KOP
570 B$="OPSLAAN OP DISK ":GOSUB 280 :REM**<JA/NEE>
580 IF S=2 THEN 720
590 OPEN "O",1, "STATPA"
600 PRINT#1,N$;",";N;",";F
610 IF N=0 THEN 660
615 PRINT
620 REM ***DATA WEGSCHRIJVEN******
630 FOR I= 1 TO N
640 PRINT#1,A(I)
650 NEXT I
660 IF F=0 THEN 700
670 FOR I=1 TO F
680 PRINT#1,B(I)
690 NEXT I
700 G=0
710 CLOSE
720 RETURN
730 PRINT
740 REM ****** INVOER TOETSENBORD ****
750 F$="-INVOER-"  :GOSUB 120               :REM*** KOP
770 B$="NIEUW BESTAND AANMAKEN" : GOSUB 280:REM *JA/NEE
780 IF S=2 THEN RETURN 
785 PRINT
790 REM ****** NIEUW BESTAND *******
800 PRINT "GEEF BESTANDSNAAM ";
810 INPUT N$
815 PRINT
820 N=0
830 REM ****** INVOER ******
840 GOSUB 120: PRINT "STOP =-9999 " : PRINT      
850 G=1 
860 H=N+1
865 PRINT
870 REM *** INGEVEN WAARNEMING ***
880 PRINT"WAARDE ";H;         
890 INPUT A(H)
900 IF A(H)=-9999 THEN 970
910 N=H
920 IF N/6-INT(N/6) <>0 THEN 960
930 N=H      
940 REM ******* SCHERM WISSEN *********
950 GOSUB 120 :PRINT"STOP = -9999":PRINT
960 IF N<T THEN 860
970 RETURN
980 PRINT
990 REM *** DISPLAY **
1000 PRINT"REGEL     WAARDE";
1010 PRINT "       REGEL       WAARDE"
1020 FOR I=K TO K+2
1030 IF I>N THEN 1070
1040 PRINT I;TAB(10)"F."A(I);
1050 IF I+3>N THEN 1070
1060 PRINT TAB(24)I+3;TAB(35)"F."A(I+3);
1070 PRINT
1080 NEXT I
1090 PRINT"-------------------------------------------------"
1091 PRINT
1093 PRINT
1100 RETURN
1110 PRINT
1120 REM *** CORRECTIE ***
1130 F$= "-CORRECTIE-"
1140 GOSUB 120 : GOSUB 1000 :REM *** KOP/DISPLAY
1150 PRINT "WELKE REGEL WILT U WIJZIGEN <STOP=0>";
1160 INPUT R
1170 REM * STAAT REGEL OP SCHERM *
1180 IF R= 0 THEN 1240
1190 IF R<K OR R> K+5 THEN 1140
1200 IF R> N THEN 1140
1210 PRINT "GEEF DE GEWIJZIGDE WAARDE";
1220 INPUT A(R)
1230 PRINT
1240 RETURN
1260 REM * ZOEKEN*
1270 B$ = "ZOCHT U DEZE WAARDE "
1280 F$= "-ZOEKEN-":GOSUB 120 : REM ***KOP***
1290 PRINT :PRINT:PRINT:PRINT"WELKE WAARDE ";
1300 INPUT A
1310 IF A=-9999 THEN 1440
1320 H=0
1330 FOR J= 1 TO N
1340 IF A<> A(J) THEN 1400
1350 REM *** ER IS ER EEN GEVONDEN ***
1360 H=1 : K=J : GOSUB 120        : REM ***KOP ***             
1370 GOSUB 1000 :GOSUB 280       : REM ***DISPLAY/<JA/NEE>
1380 H=0 : IF S= 2 THEN 1400
1390 J=N : H=1                   : REM LUS OP MAXIMUM
1400 NEXT J                             
1410 IF H=1 THEN 1440
1415 PRINT:PRINT:PRINT:PRINT"Meer van deze waarde komt niet meer voor "  
1416 PRINT TAB(15)"TERUG NAAR MENU        = 0 ";  
1417 PRINT TAB(15)"VOOR NIEUWE WAARDE     = 1 ";  
1418 PRINT:PRINT:INPUT "WAT IS UW KEUZE " ;U
1419 IF U=0  THEN 2150                    
1420 IF U=1  THEN 1290
1424 PRINT"Deze waarde komt niet voor ! <STOP =0>  <Voor nieuwe waarde =1>";
1425 INPUT S
1426 IF S=1 THEN 1290 ELSE 2150
1430 FOR J=1 TO 100 : NEXT J :REM WACHTLUS
1440 RETURN
1450 PRINT
1460 REM ** TUSSENVOEGEN**
1470 F$="_TUSSENVOEGEN-"
1480 GOSUB 120 : GOSUB 1000     :REM ** KOP/ DISPLAY **
1490 IF N=T THEN 1650
1500 PRINT"VOOR WELKE REGEL TUSSENVOEGEN<STOP=0>";
1510 INPUT R
1520 IF R=0 THEN 1650
1530 IF R < K OR R >K+5 THEN 1480
1540 IF R>N THEN 1480
1550 PRINT "GEEF TUSSEN TE VOEGEN WAARDE <STOP=-9999>";
1560 INPUT A
1570 IF A=-9999 THEN 1650
1575 PRINT
1580 REM ** TUSSENVOEGACTIE **
1590 N=N+1
1600 FOR I=N TO R + 1 STEP -1
1610 A(I) =A(I-1)
1620 NEXT I
1630 A(R) =A :R=R +1
1640 IF N< T THEN 1480
1650 RETURN
1660 PRINT
1670  REM **** VERWIJDEREN ****
1680 B$= "ZEKER WETEN "
1690 F$ = "-VERWIJDEREN-"
1700 GOSUB 120 : GOSUB 1000 :REM **** KOP/DISPLAY***
1710 PRINT "WELKE REGEL <STOP=0>";
1720 INPUT R
1730 IF R=0 THEN 1850
1740 IF R <K OR R> K +5 THEN 1700
1750 IF R> N THEN 1700
1760 GOSUB 280
1770 IF S =2 THEN 1850
1775 PRINT
1780 REM ** OVERSCHRIJVEN **
1790 IF R=N THEN 1830
1800 FOR J= R TO N
1810 A(J) =A (J+1)
1820 NEXT J
1830 N=N-1 : IF N < 0 THEN N=0
1840 K=K-1 : IF K < 0 THEN K=1
1850 RETURN
1860 PRINT
1870 REM *** CORRECTIE & DISPLAY ***
1880 K=1
1890 F$="-CORRECTIE & DISPLAY-"
1900 IF N=0 THEN 2130
1910 GOSUB 120 : GOSUB 1000                 : REM *** KOP/DISPLAY ***
1920 REM ** KEUZE MOGELIJKHEID ***
1930 PRINT "0=TERUG MENU ";
1940 PRINT TAB(25) "4= CORRIGEREN"                   
1950 PRINT"1= VOORUIT BLADEREN";
1960 PRINT TAB(25) "5= TUSSENVOEGEN" 
1970 PRINT"2= ACHTERUIT BLADEREN";
1980 PRINT TAB(25)"9= VERWIJDEREN"
1990 PRINT"3= ZOEKEN"; 
1995 PRINT TAB(25)"10= BIJVOEGEN " 
1996 PRINT:PRINT:PRINT
2000 INPUT "WAT IS UW KEUZE ";Q
2020 REM ** VERWERK KEUZE **
2030 IF Q=1 THEN K=K + 5
2040 IF K>N THEN K=K - 5
2050 IF Q=2 THEN K=K - 5
2060 IF K< 0 THEN K= 1
2070 IF Q=3 THEN GOSUB 1270    : REM ****ZOEKEN ***
2080 IF Q=4 THEN GOSUB 1130    : REM ****CORRECTIE**
2090 IF Q=5 THEN GOSUB 1470    : REM ****TUSSENVOEGEN**
2100 IF Q=9 THEN GOSUB 1680    : REM VERWIJDEREN **
2105 IF Q=10 THEN GOSUB 840
2110 IF Q>3  AND Q<11 THEN G=1
2120 IF Q<> 0 THEN 1890
2130 RETURN
2140 PRINT
2150 REM *** MENU ***
2160 F$ = "-MENU-":GOSUB 120  :REM ****KOP ****
2165 PRINT "DATUM   "D$:PRINT:PRINT
2170 PRINT"0 = SYSTEEM VERLATEN "
2180 PRINT"1 = INVOEREN DATA "            
2190 PRINT"2 = DATA VAN SOURCE DISK LEZEN"
2200 PRINT"3 = DISPLAY & CORRECTIE "
2210 PRINT"4 = DATA NAAR DISK SCHRIJVEN "
2215 PRINT"5 = PRINTEN BESTAND"
2225 FOR I=1 TO 5:PRINT:NEXT I
2230 PRINT"WAT IS UW KEUZE ";
2240 INPUT M
2245 IF M= 0 THEN GOSUB 200: CHAIN "ADMIN" :REM CONTROLE EN STOP
2250 IF M <0 OR M> 5 THEN 2160
2260 IF G=-1 AND M>2 THEN 2160
2270 RETURN
2290 REM **** STUURMODULE****
2300 GOSUB 60       : REM **** INITIALISEREN ****
2305 IF Y3=0 THEN GOSUB 2640 :REM ** DATUM **
2310 GOSUB 2160                           : REM **** MENU ****
2320 IF M= 1 THEN GOSUB 750     :REM *** INVOER ***
2325 IF M= 2 THEN GOSUB 360     :REM INLEZEN 
2340 IF M= 3 THEN GOSUB 1880   :REM *** DISPLAY &CORECCTIE ***
2350 IF M= 4  THEN GOSUB 560    :REM SCHRIJVEN DISK
2355 IF M= 5 THEN 2400           :REM PRINTEN BESTAND           
2360 IF M  <>0 THEN 2310                          
2370 IF G=1 THEN GOSUB 210
2400 REM ** PRINTEN BESTAND **
2410 F$="-PRINTEN BESTAND-" :GOSUB 120 :REM KOP
2420 B$="-PRINTER AAN-" :GOSUB 280
2430 IF S=2 THEN 2160
2440 LPRINT TAB(10)"*** STATISTISCHE INVOERLIJST ***"
2450 LPRINT
2460 LPRINT TAB(5)"  -OVERZICHT-  "  TAB(40)"BESTANDSNAAM :";N$ 
2470 LPRINT TAB(5)"  -DATUM-     " D$ ;TAB(40)"AANTAL WAARDEN :";N
2480 LPRINT
2490 LPRINT TAB(5) "REGEL"TAB(17)"WAARDE"TAB(30)"REGEL"TAB(42)"WAARDE"
2500 LPRINT TAB(5)"______________________________________________________"
2510 K=1
2520 FOR I= K TO K+2      
2530 IF I>N THEN 2150
2540 LPRINT TAB(5)I;TAB(17)"F."A(I);
2550 LPRINT TAB(30)I+3;TAB(42)"F."A(I+ 3);
2560 LPRINT
2570 NEXT I
2580 LPRINT TAB(5)"------------------------------------------------------"
2590 K=K+6
2600 GOTO 2520
2610 RETURN
2620 :
2630 REM ** DATUM **
2640 F$="-DATUM-" :GOSUB 120 :REM KOP
2650 PRINT "GEEF DATUM <DD,MM,JJ> ";
2660 INPUT Y1,Y2,Y3
2670 IF Y=0 AND Y3 =0 THEN 2750
2680 IF Y1 <1 OR Y1>31 THEN 2640
2690 IF Y2 <1 OR Y2>12 THEN 2640
2700 IF Y3 <80 OR Y3>99 THEN 2640
2710 H$=STR$(Y1):D$=RIGHT$(H$,LEN(H$)-1) + " "    
2720 H$=LEFT$("JANFEBMRTAPRMEIJUNJULAUGSEPOKTNOVDEC",Y2*3)
2730 D$=D$+RIGHT$(H$,3) :D$=D$ +STR$(Y3 +1900)
2740 Y4=Y3 *10000 +Y2 *100 +Y1 :REM GENORM DATUM
2750 RETURN
TNOVDEC",Y2*3)
2730 D$=D$+RIGHT$(H$,3) :D$=D$ +STR$(Y3 +1900