2bc0 61ce 0000 B ... DATENBAN.B
Monitoraufrufe:
keine:
Verwendete IO-Ports bzw. Hardware:
keine []
Zeichensatz UTF-8+Z1013()+CTRL()-ohne Umlaute(äöüß)

   10 GOTO 4490:  DAS PR OR AMM BEDIENT DIE    BILDSCHIRM FOR M AT E 24 ZL/40 ZEI.
   20(KC 85/1, KC 87) UND 32 ZL ZU 32 ZEI-   CHEN (Z 1013).
   30 DIE AUSWAHL ERFOLGT DURCH MOD IF IK AT I ON  DES SP RUN GS AUF ZEILE 1.
   40:
   50:     KC 85/1, KC 87: GOTO 4470
   60:     Z  1013       : GOTO 4490
   70:
   80! CURSOR <- 
   90 IF II=1 THEN 970
  100 II=II-1
  110 J=J-1:IF J=0 THEN J=ZL+1:YY=YY-1
  120 GOTO 970
  130:
  140! CURSOR ->
  150 IF II=LEN(T$)+1 OR II=VL THEN 970
  160 II=II+1
  170 J=J+1:IF J=ZL+2 THEN J=1:YY=YY+1
  180 GOTO 970
  190:
  200! CURSOR RUNTER (S4R=0AH)
  210 IF II+ZL+1>LEN(T$) THEN 340
  220 YY=YY+1:II=II+ZL+1
  230 GOTO 970
  240:
  250! CURSOR HOCH (S4S=0BH)
  260 IF II-(ZL+1)<1   THEN 970
  270 YY=YY-1:II=II-(ZL+1)
  280 GOTO 970
  290:
  300! CURSOR |<- (S4V)
  310 II=1:YY=BE/2+4:J=1:GOTO 970
  320:
  330! CURSOR ->| (S4W)
  340 YF=INT(LEN(T$)/(ZL+1)-1)
  350 YY=INT(BE/2+4)+YF
  360 J=LEN(T$)-(YF*(ZL+1)):II=LEN(T$)
  370 IF II=VL THEN 970
  380 J=J+1:II=II+1:GOTO 970
  390:
  400! INSERT (S4B)
  410 IF II=1 THEN 440
  420 IF II=LEN(T$)THEN 450
  430 T$=LEFT$((LEFT$(T$,II-1)+" "+RIGHT$(T$,LEN(T$)-(II-1))),VL):GOTO 970
  440 T$=LEFT$(" "+T$,VL):GOTO 970
  450 T$=LEFT$(T$,II-1)+" ":GOTO 970
  460:
  470! DEL (S4@)
  480 IF II=1 THEN 550
  490 IF II<LEN(T$) THEN 530
  500:
  510 T$=LEFT$(T$,II-1):GOTO 970
  520:
  530 T$=LEFT$(T$,II-1)+RIGHT$(T$,LEN(T$)-II):GOTO 970
  540:
  550 IF LEN(T$)=0 THEN 970
  560 T$=RIGHT$(T$,LEN(T$)-1):GOTO 970
  570:
  580! ZEICHEN
  590 IF II=1 THEN 690
  600 IF II=VL THEN 670
  610 IF LEN(T$)<VL AND II>LEN(T$) THEN 740
  620:
  630 T$=LEFT$(T$,II-1)+I$+RIGHT$(T$,LEN(T$)-II)
  640 II=II+1:J=J+1:IF J=ZL+2 THEN J=1:YY=YY+1
  650 GOTO 970
  660:
  670 T$=LEFT$(T$,II-1)+I$:GOTO 970
  680:
  690 IF LEN(T$)=0 THEN T$=I$:GOTO 710
  700 T$=I$+RIGHT$(T$,LEN(T$)-II)
  710 II=II+1:J=J+1:IF J=ZL+2 THEN J=1:YY=YY+1
  720 GOTO 970
  730:
  740 T$=T$+I$:IF II=VL THEN 970
  750 II=II+1
  760 J=J+1:IF J=ZL+2 THEN J=1:YY=YY+1
  770 GOTO 970
  780:
  790 N$=" "
  800 GOSUB 4960:PRINT "A E N D E R U N G   DER DATEN"
  810 GOSUB 5000:CLS
  820 WINDOW 3,BE/2,0,ZL
  830 YY=BE/2+2:VE=0
  840 IF VO=1 THEN 870
  850 FOR O=1 TO VAL(A$(3))
  860 VG=VG+VAL(A$(14+O)):NEXT:VO=1
  870 FOR O=1 TO VAL(A$(3))
  880 H=VAL(A$(14+O)):VE=VE+H:VA=VE-H+1:VL=H
  890 T$=MID$(A$(I),VA,VL)
  900 PRINT T$
  910 PRINT AT(BE,ZO);"NOCH MAL -> CLS / ABBRUCH -> ESC"
  920 PRINT AT(BE-2,ZO);"SNR:",I-25
  930 ZZ=VAL(A$(14+O))
  940 PRINT AT(YY,0);A$(3+O),":":YY=YY+2
  950 PRINT AT(BE-2,ZO+10);"FE: ",LEFT$(A$(3+O),7):PRINT AT(BE-1,ZO+24);"LG:",VL
  960 II=1:J=1:YX=YY
  970 PRINT AT(YX,0);T$+STRING$((VL-LEN(T$)),"_")
  980 PRINT AT(BE-1,ZO);"CU:",II:PRINT AT(BE-1,ZO+10);"ZZ:",LEN(T$)
  990 IF J<(ZL+2)THEN PRINT AT(YY,J-1);"":ELSE PRINT AT(YY+1,J-(ZL+2));""
 1000 I$=INKEY$:IF I$=""THEN 1000
 1010 AI=ASC(I$):IF AI>31 THEN 590
 1020 IF AI<24 THEN ON AI-7 GOTO 90,150,210,260,810,1070
 1030 IF AI=31 THEN 480
 1040 ON AI-23 GOTO 340,310,410,3060
 1050 GOTO 590
 1060!
 1070 GOSUB 5540:YY=BE/2+2
 1080 T=LEN(T$)
 1090 IF T<VL THEN T$=T$+STRING$(VL-T,N$)
 1100 IF VA=1 THEN 1130
 1110 IF VE=VG THEN 1140
 1120 A$(I)=LEFT$(A$(I),VA-1)+T$+RIGHT$(A$(I),VG-(VA+VL-1)):GOTO 1150
 1130 A$(I)=T$+RIGHT$(A$(I),VG-VL):GOTO 1150
 1140 A$(I)=LEFT$(A$(I),VG-VL)+T$
 1150 PRINT T$
 1160 FOR XI=(BE/2+2) TO BE:PRINT AT(XI,0);STRING$(ZL+1," "):NEXT:PRINT
 1170 NEXT O:GOSUB 5540
 1180 GOTO 3060
 1190:
 1200! DATEIEROEFFNUNG
 1210 GOSUB 4960
 1220 PRINT AT(1,ZO);"DATEI ANLEGEN"
 1230 GOSUB 5030:!MOD. ANZEIGEFENSTER (ZO)
 1240 IF E=0 THEN 1270
 1250 INPUT "ALTE DATEI loeschen (J/N)?";L$:PRINT:PRINT
 1260 IF L$<>"J"THEN 4620
 1270 CLS:PRINT:PRINT:PRINT   "   D A T E I P A R A M E T E R":PRINT:PRINT
 1280 E=1
 1290 PRINT "max. FELD-Anzahl: 9":PRINT
 1300 PRINT "max. Satzanzahl:  300":PRINT
 1310 PRINT "max. Satzlaenge:  255":PRINT
 1320 PRINT "Datenspeicher:   ";65536-ABS(FRE(V));"BYTE":PRINT
 1330 PRINT "STRING-Speicher: ";FRE(V$);"BYTE":GOSUB 5430
 1340 GOSUB 4960
 1350 PRINT "S A T Z D E F I N I T I O N"
 1360 PRINT AT(BE-2,ZO);"max. FELD-Anzahl: 9"
 1370 GOSUB 5030
 1380 INPUT "FELD-Anzahl: ";A$(3)
 1390 PRINT:PRINT:FOR N=1 TO VAL(A$(3))
 1400 PRINT "FELD Nr.: ";N
 1410 PRINT AT(BE-2,ZO);"Wird bei Dateneingabe vor dem"
 1420 PRINT AT(BE-1,ZO);"Eingabefeld ausgeschrieben."
 1430 INPUT "Bezeichnung: ";A$(3+N)
 1440 GOSUB 5540
 1450 PRINT AT(BE-2,ZO);"Angabe der gewuenschten Zeichen-"
 1460 PRINT AT(BE-1,ZO);"Anzahl fuer das Feld ",A$(3+N),".    "  
 1470 PRINT AT(BE,ZO);"Bereits vergeben:",EL,"/Rest:",255-EL
 1480 INPUT "Laenge:      ";A$(14+N)
 1490 EL=EL+VAL(A$(14+N))
 1500 GOSUB 5540
 1510 PRINT:NEXT:GOSUB 5540
 1520 CLS:PRINT:PRINT "IHR SATZ HAT ";A$(3);" FELDER.":PRINT
 1530 FOR N=1 TO VAL(A$(3)):NA$=STRING$(3-LEN(A$(14+N))," ")+A$(14+N)
 1540 ZZ=ZZ+VAL(A$(14+N))
 1550 PRINT:PRINT "FELD";STR$(N);": ";NA$;TAB(12);A$(N+3)
 1560 GOSUB 5430:NEXT
 1570 ZZ$=STRING$(4-LEN(STR$(ZZ))," ")+STR$(ZZ)
 1580 PRINT:PRINT:PRINT "GESAMT:";TAB(7);ZZ$;" BYTE SATZLAENGE"
 1590 RS=255-ZZ
 1600 RS$=STRING$(4-LEN(STR$(RS))," ")+STR$(RS)
 1610 PRINT:PRINT "REST:";TAB(7);RS$;" BYTE."
 1620 GOSUB 5330
 1630 GOTO 4620
 1640:
 1650! EINGABE DER DATEN
 1660 E=1:N$=" ":FOR N=VAL(A$(0)) TO 325:A$(N)=""
 1670 GOSUB 4960:PRINT "EINGABE DER   D A T E N"
 1680 GOSUB 5000:CLS
 1690 WINDOW 3,BE/2,0,ZL
 1700 FOR N=VAL(A$(0)) TO 325:T$="":NEXT
 1710 FOR N=VAL(A$(0))TO 325:VE=0
 1720 ST=FRE(""):ST$=STR$(ST)
 1730 FA=FRE(X):IF FA<0 THEN FA=65536-ABS(FRE(I))
 1740 YY=BE/2+2:PRINT AT(YY-1,0);STRING$(ZL+1,"-")
 1750 FOR M=1 TO VAL(A$(3))
 1760 H=VAL(A$(14+M)):VE=VE+H:VA=VE-H+1:VL=H
 1770 PRINT AT(BE-2,ZO);"SNR:",VAL(A$(0))-25:PRINT AT(BE-2,ZO+9);"SP:",FA
 1780 PRINT AT(BE-2,ZO+22);"ST:",ST
 1790 ZZ=VAL(A$(14+M)):J=0:T$=""
 1800 PRINT AT(YY,0);A$(3+M),":":YY=YY+2
 1810 PRINT AT(YY,0);STRING$(ZZ,"_")
 1820 PRINT AT(BE-1,ZO+9);"FE: ",LEFT$(A$(3+M),7):PRINT AT(BE-1,ZO+22);"LG:",ZZ
 1830 FOR I=1 TO ZZ:J=J+1
 1840 PRINT AT(BE-1,ZO);"ZEI:",I-1
 1850!IF J<0 THEN PRINTAT(YY-1,ZL+1):GOTO2160
 1860 IF J<(ZL+2)THEN PRINT AT(YY,J-1);"":ELSE PRINT AT(YY+1,J-(ZL+2));""
 1870 I$=INKEY$:IF I$=""THEN 1870
 1880 IF I$=CHR$(8) THEN 1900
 1890 GOTO 1950
 1900 IF YY=BE/2+4 AND J=1 THEN 1840
 1910 I=I-1:T$=LEFT$(T$,I-1)
 1920 J=J-1:IF J=0 THEN J=ZL+1:YY=YY-1
 1930 IF J<(ZL+1)THEN PRINT AT(YY,J);"_":ELSE PRINT AT(YY+1,J-(ZL+1));"_"
 1940 GOTO 1840
 1950 IF I$=CHR$(13) THEN 1990
 1960 T$=T$+I$
 1970 IF J=ZL+2 THEN:YY=YY+1:J=1
 1980 PRINT AT(YY,J-1);I$:NEXT I
 1990 GOSUB 5540:YY=BE/2+2
 2000 IF T$="" THEN T$=MID$(A$(N-1),VA,VL):GOTO 2030
 2010 IF LEN(T$)>VAL(A$(14+M)) THEN STOP:GOTO 1830
 2020 A=VAL(A$(14+M)):T=LEN(T$):IF T<A THEN T$=T$+STRING$(A-T,N$)
 2030 IF Q1=1 THEN 2050:ELSE Q1=1
 2040 PRINT "SATZ:";VAL(A$(0))-25:PRINT
 2050 PRINT T$
 2060 A$(N)=A$(N)+T$
 2070 FOR I=(BE/2+2) TO BE:PRINT AT(I,0);STRING$(ZL+1," "):NEXT:PRINT
 2080 NEXT M:Q1=0:GOSUB 5540
 2090 A$(0)=STR$(1+N)
 2100 GOSUB 5430
 2110 NEXT N
 2120 GOTO 4620
 2130:
 2140!SORTIEREN NACH FELDNAMEN
 2150 GOSUB 4960:PRINT "DATEI   S O R T I E R E N"
 2160 IF E=0 THEN FV$="KEINE DATEI GELADEN":GOSUB 5150:GOTO 4620
 2170 CLS:GOSUB 5030:A=VAL(A$(0))-26
 2180 PRINT:PRINT "Der Satz hat ";A$(3);" Felder."
 2190 PRINT "Es gibt folgende Moeglichkeiten":PRINT "zur Sortierung der Datei:"
 2200 PRINT:PRINT "<0>  AUSGANGSZUSTAND"
 2210 FOR N=1 TO VAL(A$(3))
 2220 PRINT "<";MID$(STR$(N),2);">  ";A$(3+N):NEXT
 2230 GOSUB 5540
 2240 X=0:Y=0
 2250 PRINT AT(BE-2,ZO);"Geben Sie die Nr. der Sort. ein.":PRINT
 2260 INPUT "SORTIERUNG NACH:";L$
 2270 GOSUB 5540
 2280 IF L$="M" THEN 4620
 2290 IF L$="S" THEN STOP
 2300 FOR I=1 TO 300:B(I)=I+25:NEXT
 2310 GOSUB 5540
 2320 IF ASC(L$)<48 OR ASC(L$)>48+VAL(A$(3)) THEN 2260
 2330 IF L$="0"THEN 2590
 2340 FOR N=1 TO VAL(A$(3))
 2350 H=VAL(A$(14+N)):Y=Y+H:X=Y-H+1:IF N=VAL(L$) THEN 2370
 2360 NEXT
 2370 Y=H:S1=1:S(1,1)=1:S(1,2)=A
 2380 L=S(S1,1):R=S(S1,2):S1=S1-1
 2390 I=L:J=R:H=B(INT(L+R)/2)
 2400 IF VAL(MID$(A$(B(I)),X,Y))AND VAL(MID$(A$(H),X,Y))>0 THEN 2630
 2410 IF MID$(A$(B(I)),X,Y)>=MID$(A$(H),X,Y)THEN 2440
 2420 IF J>R THEN 2440
 2430 I=I+1:GOTO 2410
 2440 IF MID$(A$(B(J)),X,Y)<=MID$(A$(H),X,Y)THEN 2470
 2450 IF J<=L THEN 2470
 2460 J=J-1:GOTO 2440
 2470 IF I>J GOTO 2490
 2480 Z=B(I):B(I)=B(J):B(J)=Z:I=I+1:J=J-1
 2490 IF I<=J GOTO 2400
 2500 IF(R-I)<=(J-L)GOTO 2540
 2510 IF L>=J GOTO 2530
 2520 S1=S1+1:S(S1,1)=L:S(S1,2)=J
 2530 L=I:GOTO 2570
 2540 IF I>=R GOTO 2560
 2550 S1=S1+1:S(S1,1)=J:S(S1,2)=R
 2560 R=J
 2570 IF R>L GOTO 2390
 2580 IF S1<>0 GOTO 2380
 2590 PRINT:PRINT "SORTIERUNG BEENDET!"
 2600 PRINT AT(BE-2,3);"ANZEIGEN -> ET / MENUE -> M"
 2610 GOSUB 5440
 2620 GOTO 4240
 2630 FOR Z=1 TO Y:AZ=ASC(MID$(A$(B(I)),Z,1))
 2640 IF AZ<48 OR AZ>57 THEN 2410:NEXT
 2650 FOR Z=1 TO Y:AZ=ASC(MID$(A$(H),X,1)
 2660 IF AZ<48 OR AZ>57 THEN 2410:NEXT
 2670 IF VAL(MID$(A$(B(I)),X,Y))>=VAL(MID$(A$(H),X,Y))THEN 2700
 2680 IF J>R THEN 2700
 2690 I=I+1:GOTO 2670
 2700 IF VAL(MID$(A$(B(J)),X,Y))<=VAL(MID$(A$(H),X,Y))THEN 2730
 2710 IF J<=L THEN 2730
 2720 J=J-1:GOTO 2700
 2730 IF I>J GOTO 2490
 2740 GOTO 2480
 2750:
 2760!DATEISTRING-LISTING
 2770 GOSUB 4960
 2780 PRINT "DATEISTRING-LISTING"
 2790 GOSUB 5000:CLS
 2800 FOR N=0 TO VAL(A$(0))-1:N$=STR$(N)
 2810 PRINT "A$(";RIGHT$(N$,LEN(N$)-1);")
 2820 PRINT A$(N):PRINT
 2830 GOSUB 5430:NEXT
 2840 FOR N=1 TO VAL(A$(3)):N$=STR$(N)
 2850 PRINT "B(";RIGHT$(N$,LEN(N$)-1);")"
 2860 PRINT B(N):PRINT
 2870 GOSUB 5430:NEXT
 2880 GOTO 5320
 2890:
 2900!SUCHEN NACH ZEICHENKETTE
 2910 GOSUB 5540
 2920 PRINT AT(0,ZO);"SUCHE/AEND.  VON  ZEICHENKETTEN"
 2930 PRINT AT(BE-2,ZO);"Der Suchbegriff kann eine belie-"
 2940 PRINT AT(BE-1,ZO);"bige Zeichenkette sein, die sich"
 2950 PRINT AT(BE,ZO);"in einem Datenfeld befindet."
 2960 GOSUB 5030:CLS
 2970 PRINT:PRINT:PRINT "SUCHBEGRIFF:":PRINT:INPUT B$
 2980 GOSUB 5540:L=LEN(B$)
 2990 FOR I=26 TO VAL(A$(0))-1
 3000 PRINT AT(BE-2,0);"SATZ:",I-25
 3010 PRINT AT(BE-1,0);"SUCH: ",B$
 3020 C=LEN(A$(I))
 3030 FOR M=1 TO C-L+1
 3040 IF MID$(A$(I),M,L)<>B$ THEN 3220
 3050 GOSUB 3290
 3060 GOSUB 5540
 3070 PRINT AT(0,ZO);"SUCHE/AEND.  VON  ZEICHENKETTEN"
 3080 PRINT AT(BE-2,ZO);"WEITER -> ET / NEU VON VORN -> N"
 3090 PRINT AT(BE-1,ZO+1);"AENDERN -> A / MENUE -> M"
 3100 L$=INKEY$:IF L$="" THEN 3100
 3110 GOSUB 5540:GOSUB 5000:CLS
 3120 IF L$="S" THEN STOP
 3130 IF L$="N" THEN 2910
 3140 IF L$="M" THEN 4620
 3150 IF L$<>"A" OR ASC(L$)=13 THEN 3220
 3160 GOTO 790:   INPUT "NEUE ZEICHENKETTE: ";E$
 3170!EINSETZEN!
 3180 LE=LEN(E$)
 3190 A$(I)=LEFT$(A$(I),M-1)+E$+RIGHT$(A$(I),C-M-LE+1)
 3200 GOSUB 3290
 3210 GOTO 3080
 3220 NEXT M
 3230 NEXT I
 3240 PAUSE 15:PRINT AT(BE-2,0);STRING$(ZL+1," ")
 3250 PRINT:PRINT "D A T E I E N D E"
 3260 GOSUB 5540:GOSUB 5430:GOSUB 5000:CLS
 3270 GOTO 2910
 3280!UP ANZEIGE
 3290 X=0:Z=0
 3300 GOSUB 5000
 3310 CLS:PRINT "SATZ";I-25
 3320 FOR O=1 TO VAL(A$(3))
 3330 Y=VAL(A$(14+O)):Z=Z+Y:X=Z-Y+1
 3340 PRINT:PRINT A$(3+O);": "
 3350 PRINT MID$(A$(I),X,Y)
 3360 PRINT
 3370 NEXT O
 3380 RETURN
 3390:
 3400!LOESCHEN VON RECORDS
 3410 GOSUB 4960
 3420 PRINT "LOESCHEN VON DATENSAETZEN"
 3430 PRINT AT(BE-2,ZO);"Geben Sie die Nr. des zu loe-"
 3440 PRINT AT(BE-1,ZO);"schenden Satzes ein."
 3450 GOSUB 5000:CLS
 3460 IF ZO=0 THEN 3470 ELSE 3480
 3470 INPUT "NR. DES SATZES: ";N:GOTO 3490
 3480 INPUT "    NR. DES SATZES: ";N
 3490 GOSUB 5540
 3500 PRINT:PRINT A$(N+25)
 3510 PRINT AT(BE-2,ZO);"Wenn der angezeigte Satz der"
 3520 PRINT AT(BE-1,ZO);"Satz ist, den Sie loeschen wol-"
 3530 PRINT AT(BE,ZO);"len, ist ein J einzugeben."
 3540 PRINT "SATZ RICHTIG? "
 3550 L$=INKEY$:IF L$="" THEN 3550
 3560 GOSUB 5540
 3570 IF L$="J"THEN ELSE 3470
 3580 IF L$="M"THEN 4620
 3590 X=1:Y=LEN(A$(N)):A=VAL(A$(0))-1
 3600 FOR I=N+25 TO A
 3610 A$(I)=A$(I+1):NEXT
 3620 A$(0)=STR$(A)
 3630 GOTO 4620
 3640:
 3650!SAVE DATEI
 3660 GOSUB 4960:PRINT "S I C H E R N   DER DATEI"
 3670 GOSUB 5030:CLS
 3680 PRINT "Die Daten aus dem Speicher wer-"
 3690 PRINT "den auf MB ausgegeben."
 3700 PRINT:PRINT "Bitte Recorder bereitmachen,"
 3710 PRINT "die PAUSE-Taste EINRASTEN und"
 3720 PRINT "RECORDER auf AUFNAHME schalten."
 3730 PRINT:PRINT "Fuer die Aufzeichnung erst den"
 3740 PRINT "RECORDER STARTEN, dann ET!"
 3750 PRINT AT(BE-2,ZO);"START SICHERN -> ET / MENUE -> M"
 3760 I$=INKEY$:IF I$="" THEN 3760
 3770 IF I$="M"THEN 4620
 3780 IF I$="S"THEN STOP
 3790 GOSUB 5540
 3800 PRINT:PRINT:PRINT "Wenn Aufzeichnung geprueft wer-"
 3810 PRINT "den soll, ist bei VERIFY Y ein-"
 3820 PRINT "zugeben, das Band zurueckzuspu-"
 3830 PRINT "len u. der RECORDER zu STARTEN."
 3840 PRINT "Bei Beginn des Dauertons ET!"
 3850 PRINT:PRINT:PRINT "START DATEISICHERN"
 3860 CSAVE*"APDATEI";A$
 3870 CLS
 3880 GOTO 4620
 3890:
 3900!LOAD   D A T E I
 3910 GOSUB 4960
 3920 PRINT "L A D E N   DER DATEI"
 3930 GOSUB 5030:CLS
 3940 PRINT AT(BE-2,ZO);"B i t t e   w a r t e n !"
 3950 FOR I=1 TO 300:B(I)=I+25:NEXT
 3960 GOSUB 5540
 3970!PRINT"Geben Sie bitte den Namen Ihrer"
 3980!PRINT"Datei ein.
 3990!PRINT:PRINT"Wenn Sie keinen Dateinamen ein-"
 4000!PRINT"geben, so wird als Dateiname"
 4010!PRINT"der Name ""APDATEI"" verwendet."
 4020!PRINTAT(BE-2,0);"Dateiname eingeben / Menue -> M"
 4030!PRINTAT(BE-1,0);"Die max. Laenge des Dateinamen"
 4040!PRINTAT(BE,0);"ist 8 Zeichen."
 4050!PRINT:INPUT"DATEINAME:";D$
 4060!GOSUB 20800
 4070!IF D$="" THEN D$="APDATEI":PRINT"APDATEI"
 4080 PRINT:PRINT "ACHTUNG!"
 4090 PRINT:PRINT "Ihre Daten im Speicher werden"
 4100 PRINT "beim Laden der Datei zerstoert."
 4110 PRINT:PRINT "Bitte Recorder bereitmachen." 
 4120 PRINT:PRINT "Band muss vor Dauerton stehen."
 4130 PRINT:PRINT "RECORDER STARTEN!"
 4140 PRINT:PRINT "Bei Dauerton ET druecken!"
 4150 PRINT AT(BE-2,ZO);"DATEI LADEN -> ET / MENUE -> M"
 4160 L$=INKEY$:IF L$="" THEN 4160
 4170 GOSUB 5540
 4180 IF L$="M" THEN 4620
 4190 IF L$="S" THEN STOP
 4200 E=1
 4210 PRINT:PRINT:PRINT "START DATEILADEN":PRINT 
 4220 CLOAD*"APDATEI";A$
 4230 GOTO 4620
 4240!DATEI ANZEIGEN
 4250 GOSUB 4960
 4260 PRINT "ANZEIGEN DER   D A T E I"
 4270 FOR I=26 TO VAL(A$(0))-1
 4280 GOSUB 4350
 4290 GOSUB 5430
 4300 NEXT I
 4310 GOSUB 5320
 4320 GOTO 4620
 4330:
 4340!UP ANZEIGE DES SATZES
 4350 X=0:Z=0
 4360 GOSUB 5000
 4370 B$=STR$(B(I-25)-25)
 4380 CLS:PRINT "SATZ";I-25;"(";RIGHT$(B$,LEN(B$)-1);")"
 4390 FOR O=1 TO VAL(A$(3))
 4400 Y=VAL(A$(14+O)):Z=Z+Y:X=Z-Y+1
 4410 PRINT:PRINT A$(3+O);": "
 4420 PRINT MID$(A$(B(I-25)),X,Y)
 4430 PRINT
 4440 NEXT O
 4450 RETURN
 4460:
 4470 CLEAR 10000:ZO=4:ZL=39:BA=3:BE=23
 4480 GOTO 4510
 4490 CLEAR 22000:ZO=0:ZL=31:BA=10:BE=31:VO=0
 4500 POKE 113,22:POKE 112,18
 4510 WINDOW:CLS:PRINT AT(BA,ZO);"Betriebsschule  Plauener Gardine"
 4520 PRINT:PRINT AT(BA+2,ZO+3);"Berufspezifische  Software"
 4530 PRINT AT(BA+4,ZO+4);"fr  FA-Datenverarbeitung"
 4540 PRINT AT(BA+6,ZO+3);"impl. by R.L.  BS PLAUGARD"
 4550 PRINT AT(BA+9,ZO);"Anp./Erw. by F.F.  RZ KOMB. DEKO"
 4560 PRINT AT(BA+11,ZO+6);"RELEASE 6.2/17.12.88"
 4570 DIM A$(325),B(300),S(30,2):A$(0)="26"
 4580 FOR I=1 TO 300
 4590 B(I)=I+25
 4600 NEXT
 4610!HAUPTMENUE
 4620 GOSUB 4960:!KOPFFENSTER
 4630 PRINT AT(0,ZO);" UNIVERSELLES DATENBANKPROGRAMM"
 4640 GOSUB 5070
 4650 PRINT AT(BE,ZO);"Funkt. -> Fkt.-Nr. / MENUE -> M"
 4660 GOSUB 5000:CLS:WINDOW 2,BE-3,ZO,ZL
 4670 IF ZO=0 THEN PRINT:PRINT:PRINT
 4680 PRINT TAB(8)"M E N U E":PRINT
 4690 PRINT "<1>  NEU ANLEGEN DER DATEI":PRINT
 4700 PRINT "<2>  EINGABE DER DATEN":PRINT
 4710 PRINT "<3>  SORTIEREN UND ANZEIGEN":PRINT
 4720 PRINT "<4>  SUCHEN UND KORRIGIEREN":PRINT
 4730 PRINT "<5>  LOESCHEN VON SAETZEN":PRINT
 4740 PRINT "<6>  SICHERN DER DATEI AUF MB":PRINT
 4750 PRINT "<7>  LADEN DER DATEI VON MB":PRINT
 4760 PRINT "<8>  ANZEIGEN DER DATEI":PRINT
 4770 INPUT "FUNKTION?";L$
 4780 GOSUB 5540:L=VAL(L$)
 4790 IF L$="S" THEN STOP
 4800 ON L GOTO 1200,1650,2140,2900,3400,3650,3900,4240,2760
 4810 FV$="FUNKTION aus dem HAUPTMENUE":GOSUB 5150
 4820 GOTO 4620
 4830:
 4840 PRINT "CSAVE ";CHR$(34);"UDBP6";CHR$(34):CSAVE "UDBP6"
 4850 GOSUB 4890
 4860 PRINT "CSAVE ";CHR$(34);"UDBP6";CHR$(34):CSAVE "UDBP6"
 4870 GOSUB 4890
 4880 STOP
 4890 PRINT:INPUT "WEITER? ";W$
 4900 IF W$=CHR$(13) THEN RETURN
 4910 IF W$="S" THEN GOTO 5110
 4920 IF W$="RUN" THEN RUN
 4930 RETURN
 4940:
 4950 FENSTER FUER KOPFZEI LEN
 4960 WINDOW 0,2,ZO,ZL:CLS
 4970 RETURN
 4980:
 4990 FENSTER FUER ANZEIGEFELD  (WIRD   N I C H T   GELOESCHT)
 5000 WINDOW 2,BE-3,0,ZL
 5010 RETURN
 5020 MOD IF. KOPFFENSTER (AB ZO=ZEI LEN OFFSET FUER KC 85/1 U. KC 87)
 5030 WINDOW 2,BE-3,ZO,ZL:CLS
 5040 RETURN
 5050:
 5060!FENSTER FUER FUSSZEILEN
 5070 GOSUB 5540
 5080 RETURN
 5090:
 5100!RUECKSETZEN WINDOW
 5110 WINDOW:CLS
 5120 STOP
 5130:
 5140 FEHLERAUSSCHR. M. SIGNAL
 5150 GOSUB 5540:XX=0:YY=PEEK(112)
 5160 PRINT AT(BE-1,ZO);"Ihre letzte Eingabe war falsch"
 5170 PRINT AT(BE,ZO);FV$
 5180 BEEP:PAUSE 3:BEEP:PAUSE 3:BEEP:PAUSE 3:BEEP:PAUSE 3:BEEP:PAUSE 45
 5190 GOSUB 5540:PRINT AT(BE-2,ZO);"Bitte   w i e d e r h o l e n :"
 5200 PRINT AT(BE,ZO);FV$:PAUSE 15
 5210 GOSUB 5540:RETURN
 5220:
 5230 POS. EINGABEZEILE SETZEN
 5240 IF XX<1 THEN PRINT "?SD ERROR":STOP
 5250 IF XX>32 THEN PRINT "?SD ERROR":STOP
 5260 IF YY<1 THEN PRINT "?ZD ERROR":STOP
 5270 IF YY>32 THEN PRINT "?ZD ERROR":STOP
 5280 POKE 112,YY:POKE 113,XX
 5290 RETURN
 5300:
 5310 PROGR.-FOR TS. B. D AT EI END E
 5320 PRINT "D A T E I E N D E"
 5330 PRINT AT(BE-2,ZO);"MENUE -> ET"
 5340 L$=INKEY$:IF L$="" THEN 5340
 5350 GOSUB 5540
 5360 IF L$=CHR$(13) THEN 4620
 5370 IF L$="M" THEN 4620
 5380 IF L$="S" THEN STOP:GOTO 5110
 5390 FV$="PARAMETER F. FORTSETZUNG"
 5400 GOSUB 5150:GOSUB 5540:GOTO 5320
 5410:
 5420 PROGR.-FOR TSETZUNG
 5430 PRINT AT(BE-2,ZO);"WEITER -> ET / MENUE -> M"
 5440 L$=INKEY$:IF L$="" THEN 5440
 5450 GOSUB 5540
 5460 IF L$=CHR$(13) THEN RETURN
 5470 IF L$="M" THEN 4620
 5480 IF L$="S" THEN STOP:GOTO 5110
 5490 FV$="PARAMETER F. PROGRAMMFORTSETZUNG"
 5500 GOSUB 5150:!FEHLER
 5510 GOTO 5430:WIEDERHOLUNG
 5520:
 5530 ST AT USZEI LEN LOESCHEN
 5540 PRINT AT(BE-2,0);STRING$(ZL+1," ")
 5550 PRINT AT(BE-1,0);STRING$(ZL+1," ")
 5560 PRINT AT(BE,0);STRING$(ZL+1," ")
 5570 RETURN
 5580 X$=INKEY$:IF X$="" THEN 5580:PRINT ASC(X$)
 5590 A=ASC(X$):PRINT A;"=";X$
 5600 GOTO 5580
 5610 FOR I=0 TO 325
 5620 PRINT "A$(";I;")"
 5630 PRINT A$(I)
 5640 INPUT I$
 5650 NEXT I