Verwendete IO-Ports bzw. Hardware:
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:
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));""
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