10 REM *** KAARTENBAK - RUBRIEKSINDELING - ****
20 DIM A$(10),A(10)
30 GOTO 1400
40 :
50 REM ** INITIALISEREN **
60 N$ = ""
70 R=0 : N=0 : X=0
80 Y=0 : E=0 : W=0 :G=-1
90 RETURN
100 :
110 REM **** KOP ****
120 PRINT CHR$(27)"E"     :REM SCHERM WISSEN
130 PRINT"*** KAARTENBAK ***                -- RUBRIEKSINDELING --"
140 PRINT F$                           :REM FUCTIEAFDRUK
145 PRINT:PRINT
150 RETURN
160 :
170 REM ** OPSLAAN OP DISK **
180 F$="- OPSLAAN - ":GOSUB 120   :REM KOP
190 B$="OPSLAAN OP SOURCE DISK ":GOSUB 480
200 IF S=2 THEN 290
210 OPEN "O",1, N$
220 PRINT#1,BEWOORD$                 :REM NAAM BESTAND
230 PRINT#1,R;",";N;",";W;",";Y;",";E;",";X;",";X
240 FOR I= 1 TO R
250 PRINT#1,A$(I);",";A(I)             :REM RUBRIEKSINDELING
260 NEXT I
270 G=0
280 CLOSE
290 RETURN
300 :
310 REM *** INLEZEN ***
320 IF G=1 THEN GOSUB 560      :REM CONTROLE
330 F$="- LEZEN -":GOSUB 120 :REM KOP
340 B$="INLEZEN VAN SOURCE DISK ":GOSUB 480
350 IF S=2 THEN 450
355 ON ERROR GOTO 7000
360 OPEN "I",1,N$
370 INPUT #1,BEWOORD$                    :REM RUBRIEKS IND.
380 INPUT #1,R,N,W,Y,E,X,X               :REM STUURVARIABELEN
390 REM ** RUBRIEKSNAMEN LEZEN **
400 FOR I= 1 TO R
410 INPUT #1,A$(I),A(I)                  :REM RUBRIEKSNAMEN
420 NEXT I
430 G=0
440 CLOSE
450 RETURN
460 :
470 REM    ** JA/NEE **
480 PRINT B$ + " <JA/NEE> ";
490 INPUT L$ :L$=LEFT$(L$,1) :S=0
500 IF L$="J" THEN S=1
510 IF L$="N" THEN S=2
520 IF S=0 THEN 480
530 RETURN
540 :
550 REM *** CONTROLE OP OPSLAAN GEGEVENS ***
560 F$="- CONTROLE -":GOSUB 120
570 PRINT"RUBRIEKSGEGEVENS ZIJN NOG NIET OPGESLAGEN !"
580 B$="NOG OPSLAAN ":GOSUB 480
590 IF S=1 THEN GOSUB 180
600 RETURN
610 :
620 REM ** DISPLAY **
630 GOSUB 120
640 PRINT"BESTANDSNAAM      :";N$
650 IF R=0 THEN 720
660 PRINT"RUBRIEKSNAMEN";TAB(20)"LENGTE";TAB(32)"ALFA/NUM"     
665 PRINT:PRINT
670 FOR H= 1 TO R
680 A$="ALFA" : IF A(H) <0 THEN A$ ="NUM"
690 PRINT H;TAB(4)A$(H);TAB(20)ABS(A(H));
700 PRINT TAB(32)A$
710 NEXT H
715 PRINT:PRINT
720 IF E <> 0 THEN PRINT"SORTEERVOLGORDE               :";A$(E)
730 PRINT"-----------------------------------------------------------"
740 RETURN
750 :
760 REM ** RUBRIEKSGEGEVENS **
770 GOSUB  630                        :REM DISPLAY
780 A=0
790 PRINT"GEEF RUBRIEKSNAAM ";L;"<STOP = 0> ";
800 INPUT A$
810 IF LEFT$(A$,1) = "0" THEN 930
820 A$=LEFT$(A$,30)
830 REM ** LENGTE VAN DE RUBRIEK **
840 PRINT"GEEF LENGTE RUBRIEK :  ";A$;
850 INPUT A
860 IF A=0 THEN 930
870 PRINT"RUBRIEK:  ";A$;"  <ALFA/NUM>  ";
880 INPUT C$ :C=0
890 IF LEFT$(C$,1) = "A" THEN C=1
900 IF LEFT$(C$,1) = "N" THEN C=-1
910 IF C=0 THEN 870
920 A=A*C
930 RETURN
940 :
950 REM ** INVOER  /  CORRECTIE **
960 F$="- INVOER/CORRECTIE -"
970 IF G= -1 THEN 1030
980 REM ** CORRECTIE **
990 GOSUB 630                      :REM ** DISPLAY **
1000 B$= "WIJZIGEN " : GOSUB 480 :REM ** JA/NEE
1010 IF S= 2 THEN 1210
1020 REM ** BESTAND **
1030 GOSUB 120
1040 PRINT"GEEF NAAM BESTAND <30 KAR> ";
1050 INPUT N$ :N$=LEFT$(N$,30)
1060 R=0 :E=0             :REM AANTAL RUBRIEKEN/SORTEERVOLGORDE
1070 FOR L=1 TO 10
1080 R=L-1
1090 GOSUB 770             :REM RUBR.GEGEVENS
1100 A$(L)=LEFT$(A$,15) :A(L) =A :REM INHOUD OVERNEMEN
1110 IF A=0 THEN L=10
1120 NEXT L
1130 IF R=0 THEN 1220
1140 GOSUB 630
1150 PRINT"WELKE RUBRIEK SORTEERVOLGORDE  <NUMMER>  ";
1160 INPUT E
1170 IF E <1 OR E >R THEN 1150
1180 GOSUB 630
1190 B$="WIJZIGEN ":GOSUB 480 
1200 IF S=1 THEN 970
1210 G=1
1220 RETURN
1230 :
1240 REM ** MENU **
1250 F$="- MENU - "
1260 GOSUB 120
1270 PRINT
1280 IF G=1 THEN PRINT"BESTAND NIET OPGESLAGEN !"
1290 PRINT"0 = STOPPEN -VERLAAT SYSTEEM-"
1300 PRINT"1 = BESTAND AANMAKEN / CORRECTIE "
1310 PRINT"2 = RUBRIEKSINDELING NAAR SOURCE DISK"
1320 PRINT"3 = RUBRIEKSINDELING INLEZEN"
1330 PRINT
1340 PRINT"WAT IS UW KEUZE ";
1350 INPUT M
1360 IF M= 2 AND G=-1 THEN 1260
1370 RETURN
1380 :
1390 REM ** STUUMODULE **
1400 GOSUB 60
1410 GOSUB 1250                       :REM MENU
1420 IF M=1 THEN GOSUB 960            :REM NW BESTAND AANMAKEN
1430 IF M=2 THEN GOSUB 180            :REM OPSLAAN OP DISK
1440 IF M=3 THEN GOSUB 1490         :REM INLEZEN
1450 IF M <> 0 THEN 1410
1460 IF G=1 THEN GOSUB 560            :REM CONTROLE
1470 IF M=0 THEN CHAIN "ADMIN"
1480 REM BESTAND INLEZEN **
1490 F$="-INLEZEN-BESTAND-":GOSUB 120
1500 PRINT:PRINT
1510 PRINT"WELK BESTAND WILT U INLEZEN "              
1520 PRINT:PRINT
1530 PRINT"NOEM BESTAAND BESTAND ";
1540 INPUT N$
1550 GOTO 320
1560 END
7000 CLOSE
7010 PRINT"BESTANDSNAAM ";"<<< "; N$ ;" >>>";" IS NIET IN TE LEZEN ! 
7020 PRINT"DRUK < OP 0 > VOOR OPNIEUW ";
7030 INPUT A$
7040 CHAIN "KARTRUB"
 ";"<<< "; N$ ;" >>>";" IS NIET IN TE LEZEN ! 
7020 PRINT"DRUK < OP 0 > VOOR OPNIEUW ";
7030 INPUT A$
7040 CHAIN "