1000 A=16000:GOTO 20:REM DISCO 1010 XX=1:DIM D$(16,6),E$(400),F$(7):GOTO 8000 1099 REM === DATEIEARBEIT === 1100 PRINT :SR$="Dateieroeffnung":GOSUB 150 1110 PRINT :PRINT :INPUT "Dateiname : ";NF$ 1112 IF NF$="$" THEN 8010 1120 PRINT "0=BASICODE 1=Kassette 2=Diskette ?":GOSUB 210 1130 NF=NF+2*(IN-48):IF NF=5 THEN GOSUB 20000 1150 GOSUB 500:IF IN<>0 THEN SR$="Fehler":GOSUB 150:GOTO 1110 1160 RETURN 1199 REM KOPF DRUCKEN 1200 GOSUB 360:SR$="Titel ":GOSUB 350 1210 SR$="Interpret Laenge Band":GOSUB 350:GOSUB 360 1220 SR$=" ":GOSUB 350 1230 SR$="Komponist Datum Pos.":GOSUB 350:GOSUB 360 1240 RETURN 1249 REM LINIE DRUCKEN 1250 SR$="===========":FOR K=1 TO 5:GOSUB 350:NEXT K 1260 SR$="==":GOSUB 350:GOSUB 360:RETURN 1299 REM DATENSATZ (I) DRUCKEN 1300 SR$=LEFT$(D$(I,0)+" ",25)+" " 1310 GOSUB 350:SR$=LEFT$(D$(I,1)+" ",19) 1320 GOSUB 350:SR$=LEFT$(D$(I,3)+" ",8):GOSUB 350 1330 SR$=LEFT$(D$(I,5)+" ",4):GOSUB 350:GOSUB 360 1340 SR$=MID$(D$(I,0),26,25) 1350 SR$=LEFT$(SR$+" ",26) 1360 GOSUB 350:SR$=LEFT$(D$(I,2)+" ",19) 1370 GOSUB 350:SR$=LEFT$(D$(I,4)+" ",8):GOSUB 350 1380 SR$=RIGHT$(" "+D$(I,6),4):GOSUB 350:GOSUB 360 1390 L=L+1:RETURN 1399 REM SUMMENDATEI(J)=SATZ(I) 1400 E$(J)=D$(I,0)+"$"+D$(I,1)+"$"+D$(I,2)+"$"+D$(I,3) 1410 E$(J)=E$(J)+"$"+D$(I,4)+"$"+D$(I,5)+"$"+D$(I,6)+"$" 1420 RETURN 1449 REM SATZ(0)=SUMMENDATEI(J) 1450 S$=E$(J):K=0:L=1:M=1:T$="" 1460 IF S$="$$" THEN M=0:RETURN 1470 U$=MID$(S$,L,1):IF U$<>"$" THEN T$=T$+U$:L=L+1:GOTO 1470 1480 D$(0,K)=T$:L=L+1:K=K+1:IF K<7 THEN T$="":GOTO 1470 1490 RETURN 1499 REM SUMMENDATEI LADEN 1500 NF=0:GOSUB 1100:N=1 1510 GOSUB 540:E$(N)=IN$ 1520 IF (IN$<>"$$")AND(N<400)AND(IN=0)THEN N=N+1:GOTO 1510 1530 SL=1:GOSUB 580:GOSUB 270:IF FR>1000 THEN RETURN 1540 GOSUB 250:SR$="Speicher voll!":GOSUB 150 1542 SD=20:GOSUB 450:RETURN 1549 REM SUMMENDATEI SCHREIBEN 1550 NF=1:GOSUB 1100:K=1 1560 SR$=E$(K):GOSUB 560 1570 IF (SR$<>"$$")AND(K<400)THEN K=K+1:GOTO 1560 1580 GOSUB 580:RETURN 1599 REM AUSWAHLBEDINGUNG 1600 SR$="Auswahlbedingung festlegen":GOSUB 150 1610 PRINT :PRINT :FOR I=0 TO 6:PRINT F$(I):NEXT I 1620 PRINT "0=unbedingt":INPUT "Feldauswahl:";FS 1630 IF FS=0 THEN FI=0:RETURN 1640 FS=FS-1:INPUT "Feldinhalt :";FI$:FI=LEN(FI$):RETURN 1649 REM UNERWUENSCHTE READAETZE UEBERLESEN 1650 J=J+1:GOSUB 1450:IF (M=0)OR(FI=0)THEN RETURN 1660 IF LEFT$(D$(0,FS),FI)<>FI$ THEN 1650 1670 RETURN 1999 REM DATEI EINLESEN 2000 SR$="DISCO - Datei einlesen":GOSUB 150 2010 PRINT :PRINT :NF=0:GOSUB 1100:I=1 2020 FOR J=0 TO 6:GOSUB 540:D$(I,J)=IN$:NEXT J 2030 IF (I<16)AND(IN=0)THEN I=I+1:GOTO 2020 2040 GOSUB 580:RETURN 2499 REM DATEI AUSGEBEN 2500 SR$="DISCO - Datei ausgeben":GOSUB 150 2510 PRINT :PRINT :NF=1:GOSUB 1100:I=1 2520 FOR J=0 TO 6:SR$=D$(I,J):GOSUB 560:NEXT J 2530 IF (I<16)AND(IN=0)THEN I=I+1:GOTO 2520 2540 GOSUB 580:RETURN 2999 REM === DATEN EINGEBEN === 3000 I=1 3010 GOSUB 100:SR$="DISCO - Dateneingabe":GOSUB 150 3012 PRINT " Satz-Nr:";I 3020 FOR J=0 TO 6:HO=1:VE=2*J+2:GOSUB 110 3030 PRINT F$(J):NEXT J 3040 FOR J=0 TO 6:HO=1:VE=20:GOSUB 110 3042 PRINT F$(J);" " 3044 HO=14:VE=20:GOSUB 110 3050 INPUT "";D$(I,J) 3052 VE=2*J+2:HO=14:GOSUB 110:PRINT LEFT$(D$(I,J),25) 3054 IF LEN(D$(I,J))<=25 THEN 3060 3056 VE=2*J+3:HO=14:GOSUB 110 3058 PRINT MID$(D$(I,J),26,25) 3060 NEXT J 3068 HO=1:VE=22:GOSUB 110 3070 SR$="K=Korrektur Fortsetzung J/N ?":GOSUB 150 3080 GOSUB 210:IF (IN=75)OR(IN=107)THEN GOSUB 3200:GOTO 3068 3090 IF (IN<>78)AND(IN<>110)AND(I<16)THEN I=I+1:GOTO 3010 3100 RETURN 3199 REM KORREKTUR EINES DATENSATZES 3200 GOSUB 100:SR$="DISCO - Datenkorrektur":GOSUB 150 3202 FOR J=0 TO 7:HO=1:VE=2*J+2 3210 GOSUB 110:PRINT F$(J):NEXT J 3220 FOR J=0 TO 6:HO=14:VE=2*J+2:GOSUB 110 3230 PRINT D$(I,J):NEXT J:HO=1:VE=20:GOSUB 110 3240 GOSUB 210:K=IN-49:IF K<0 THEN RETURN 3250 IF K>6 THEN 3240 3260 HO=1:VE=20:GOSUB 110:PRINT F$(K) 3270 HO=14:VE=20:GOSUB 110:INPUT "";D$(I,K) 3280 GOTO 3200 3500 SR$="DISCO - Datenaenderung":GOSUB 150 3510 INPUT "Satz-Nr:";I:IF I=0 THEN RETURN 3520 GOSUB 3200 3530 GOSUB 100:GOTO 3500 4000 SR$="DISCO - Datenanzeige/ausdruck":GOSUB 150 4010 PRINT :PRINT "0=Titelliste 1=Satzweise 2=Ausdruck" 4020 GOSUB 210:IF (IN<48)OR(IN>50)THEN 4020 4030 ON IN-47 GOTO 4100,4200,4300 4100 I=1 4110 IF D$(I,0)<>"" THEN PRINT D$(I,0) 4120 IF I<16 THEN I=I+1:GOTO 4110 4130 GOSUB 210:RETURN 4200 I=1 4210 GOSUB 100:SR$="DISCO - Datenanzeige" 4220 GOSUB 150:PRINT :PRINT "Satz-Nr.:";I:PRINT 4230 FOR J=0 TO 6:PRINT F$(J);LEFT$(D$(I,J),25) 4240 IF LEN(D$(I,J))>25 THEN PRINT MID$(D$(I,J),26,25) 4250 PRINT :NEXT J:GOSUB 210:IF IN$="$" THEN RETURN 4260 IF I<16 THEN I=I+1:GOTO 4210 4270 RETURN 4300 GOSUB 1200:GOSUB 1250 4310 FOR I=1 TO 16 4320 IF D$(I,0)<>"" THEN GOSUB 1300 4330 NEXT I:GOSUB 1250:RETURN 4999 REM ANHAENGEN AN SUMMENDATEI 5000 SR$="DISCO - Anhaengen an Summendatei":GOSUB 150 5010 PRINT :PRINT "Summendatei schon vorhanden J/N ?"; 5012 GOSUB 210:IF (IN=78)OR(IN=110)THEN N=1:GOTO 5030 5020 PRINT :PRINT :IF (SL=0)THEN GOSUB 1500:SL=1 5030 J=N:I=1 5040 IF (D$(I,0)<>"")AND(I<=16)THEN 5060 5050 E$(J)="$$":N=J:SL=1:RETURN 5060 GOSUB 1400:I=I+1:J=J+1:GOTO 5040 5499 REM SUMMENDATEI ABSPEICHERN 5500 SR$="DISCO - Abspeichern der Summendatei":GOSUB 150 5510 PRINT :PRINT :GOTO 1550 5999 REM SUCHE IN SUMMENDATEI 6000 SR$="DISCO - Suche in Summendatei":GOSUB 150 6010 IF SL=0 THEN GOSUB 1500 6020 J=0:GOSUB 1600 6030 GOSUB 1650:IF M=0 THEN 6100 6040 GOSUB 100:FOR I=0 TO 6 6050 PRINT F$(I);LEFT$(D$(0,I),25) 6060 IF LEN(D$(0,I))>25 THEN PRINT TAB(12);MID$(D$(0,I),26,25) 6070 NEXT I:GOSUB 210:IF IN$="X" THEN RETURN 6080 GOTO 6030 6100 SR$="Keine weiteren Daten gefunden" 6110 GOSUB 150:GOSUB 210:RETURN 6500 SR$="DISCO - Ausdruck der Summendatei":GOSUB 150 6510 IF SL=0 THEN GOSUB 1500 6520 J=0:Z=36:GOSUB 1600 6530 GOSUB 1650:IF M=0 THEN 6600 6540 IF Z<=30 THEN 6570 6550 IF Z<36 THEN GOSUB 1250:GOSUB 210 6560 GOSUB 1200:GOSUB 1250:Z=1 6570 I=0:GOSUB 1300:GOTO 6530 6600 SR$="Keine weiteren Daten gefunden" 6610 GOSUB 150:GOSUB 1250:RETURN 7990 REM ==== HAUPTPROGRAMM ==== 8000 RESTORE 25000:FOR I=0 TO 7:READ F$(I):NEXT I:LL=0:SL=0 8010 RESTORE 25100:GOSUB 100 8020 FOR I=0 TO 7:READ A$:PRINT A$:NEXT I:PRINT 8030 SR$="BETRIEBSARTEN":GOSUB 150:PRINT :PRINT 8040 PRINT " 1 = Datei einlesen" 8050 PRINT " 2 = Daten eingeben" 8060 PRINT " 3 = Daten aendern" 8070 PRINT " 4 = Daten anzeigen/drucken" 8080 PRINT " 5 = Datei ausgeben" 8090 IF XX=0 THEN 8140 8100 PRINT " 6 = Datei an Summendatei anhaengen" 8110 PRINT " 7 = Daten suchen in Summendatei" 8120 PRINT " 8 = Summendatei ausdrucken" 8130 PRINT " 9 = Summendatei ausgeben" 8140 PRINT " H = Hilfsinformation" 8150 PRINT " 0 = Ende":PRINT 8160 SR$="Ihre Auswahl":GOSUB 150 8170 GOSUB 210:IF IN=48 THEN 950 8180 IF (IN=72)OR(IN=104)THEN 8500 8190 IF (IN<48)OR(IN>53+4*XX)THEN 8170 8200 IN=IN-48:GOSUB 100 8210 ON IN GOSUB 2000,3000,3500,4000,2500,5000,6000,6500,5500 8220 GOTO 8010 8500 GOSUB 100:SR$="DISCO - Hilfsinformation":GOSUB 150 8510 PRINT :PRINT "Das Programm dient der Verwaltung einer" 8520 PRINT "Datei von Musiktiteln. Es kann fuer die" 8530 PRINT "Titellisten der Podiumdiskothek oder" 8540 PRINT "auch fuer Schallplatten und Tonband-" 8550 PRINT "verzeichnisse genutzt werden. Es wird" 8560 PRINT "mit Einzeldateien zu maximal 16 Saetzen" 8570 PRINT "fuer Sendungen, Platten, Kassetten und" 8580 PRINT "einer Summendatei fuer maximal 500" 8590 PRINT "Saetze gearbeitet. In der Summendatei" 8600 PRINT "sind Suchoperationen moeglich. Die" 8610 PRINT "Daten koennen im BASICODE- oder auch" 8620 PRINT "im rechnerinternen Format auf Kassette" 8630 PRINT "bzw. auf Diskette abgespeichert werden." 8640 HO=18:VE=23:GOSUB 110:SR$="" 8650 GOSUB 150:GOSUB 210:GOTO 8010 19999 REM FUER DISKETTENARBEIT 20000 ERASE""+NF$ 20010 RETURN 20020 REM VOR DER AUSGABE IST ALTE RUNERSION ZU LOESCHEN 20030 REM DAS IST VOM DIMECHNERTYP ABHAENGIG ! 25000 DATA "1.Titel :","2.Interpret:" 25010 DATA "3.Komponist:","4.Laenge :" 25020 DATA "5.Sendetag :","6.Band-Nr :" 25030 DATA "7.Position :","0=Ende" 25100 DATA " ======================================" 25110 DATA " **** *** **** **** ***" 25120 DATA " * * * * * * * (C) bidat" 25130 DATA " * * * *** * * *" 25140 DATA " * * * * * * * 1989" 25150 DATA " * * * * * * *" 25160 DATA " **** *** **** **** ***" 25170 DATA " ======================================" 32000 REM "(C) bidat 26.12.1989" 32010 REM AUTOR: BERTHOLD BIENER 32020 REM R.-EYERMANN-RING 4/06 32030 REM DDR 5063 ERFURT 32040 REM AUF COMMODORE PLUS/4 32050 REM FUER RADIO DDR COMPUTERMAGAZIN