1
0
mirror of https://github.com/mbirth/gwbasic.git synced 2024-11-09 23:06:45 +00:00
gwbasic/SBPRO/SBPRO.BAS

299 lines
12 KiB
QBasic
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

10 SAVE"sbpro.bak"
20 WIDTH 80
30 CLS
40 COLOR 15,0,0
50 KEY OFF
60 OPEN "I",#1,"SBPRO.CFG"
70 INPUT#1,PATH$
80 IF PATH$="" THEN GOTO 160
90 IF MID$(PATH$,2,2)<>":\" THEN GOTO 160
100 CLOSE #1
110 CLS:PRINT"Wollen Sie den PATH „ndern ???"
120 A$=INKEY$:IF A$="" THEN 120
130 IF A$="j" OR A$="J" THEN BR=1:GOTO 170
140 IF A$="n" OR A$="N" THEN GOTO 380
150 GOTO 120
160 REM PATH INCORRECT
170 CLOSE #1
180 OPEN "O",#1,"SBPRO.CFG"
190 CLS
200 IF BR=1 THEN GOTO 220
210 COLOR 12:PRINT"Der PATH in der Datei SBPRO.CFG ist Falsch oder nicht vorhanden!"
220 PRINT
230 PRINT"Bitte berichtigen!"
240 COLOR 15
250 PRINT
260 PRINT"Geben Sie den Path der SBPro - Utilities an"
270 INPUT"Neuer Path:",PATH$
280 IF PATH$="" THEN GOTO 340
290 IF MID$(PATH$,2,2)<>":\" THEN GOTO 340
300 IF RIGHT$(PATH$,1)<>"\" THEN GOTO 340
310 WRITE#1,PATH$
320 CLOSE #1
330 GOTO 380
340 REM Fehler bei Eingabe!
350 CLS
360 PRINT"PATH INCORRECT!!! Geben Sie auch einen BackSlash am Ende an!"
370 GOTO 220
380 REM Hautpprogramm
390 CLS
400 COLOR 10
410 WIDTH 40:PRINT"SoundBlaster Pro - Utility Program"
420 COLOR 14
430 PRINT" Geschrieben in GW-Basic"
440 PRINT" von Markus Birth"
450 LOCATE 10,1
460 PRINT" /³ ¿"
470 PRINT" / ³ ¿ ³ Û"
480 PRINT" ÉÍÍѾ ³ ¿ ³ ³ ÛÛÛÛÛÜÜÜÜÜÜÜ"
490 PRINT"LSP º ³ ³ ] ³ ³ ³ ÛÛÛÛÛÛÛÛMICROÛ"
500 PRINT" ÈÍÍϸ ³ Ù ³ ³ ÛÛÛÛÛßßßßßßß"
510 PRINT" \ ³ Ù ³ Û"
520 PRINT" \³ Ù"
530 LOCATE 24,1
540 PRINT" Start mit Tastendruck";
550 A$=INKEY$:IF A$="" THEN 550
560 CLS
570 WIDTH 80
580 COLOR 15
590 COLOR ,4,0:PRINT" SoundBlaster Pro - Utility Program "
600 COLOR 8,0,0
610 PRINT
620 PRINT" ÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ"
630 PRINT" ³\³/³ ³\³/³ ³\³/³ ³\³/³ ³\³/³"
640 PRINT" ÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ"
650 PRINT" ³/³\³ ³/³\³ ³/³\³ ³/³\³ ³/³\³"
660 PRINT" ÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ ÄÄÄ"
670 PRINT
680 COLOR 14
690 PRINT" RECRD - Aufnehmen"
700 PRINT" PLAYD - Datei abspielen"
710 PRINT" WV2VC - RIFF WAVE File in Creative Voice File umwandeln"
720 PRINT" VC2WV - Creative Voice File in RIFF WAVE File umwandeln"
730 PRINT" JOIVC - 2 Creative Voice Files verbinden"
740 PRINT" VCHDR - Header f<>r Creative Voice File schreiben"
750 PRINT" MIXER - SBPro Mixer Einstellungen vornehmen"
760 PRINT" RDDRV - SoundDriver anzeigen"
770 PRINT
780 PRINT" TODOS - Quit"
790 COLOR 31
800 LOCATE 20,3:PRINT" Í ";:COLOR 15:PRINT"Í Í Í Í"
810 X=1
820 FUNCT$="Funktion w„hlen"
830 COLOR 15,4
840 LOCATE 24,1:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
850 A$(X)=INKEY$:IF X>5 THEN GOTO 990:IF A$(X)="" THEN GOTO 840
860 GOTO 940
870 GOTO 840
880 IF X=1 THEN LOCATE 20,4:COLOR 15,0:PRINT A$(X);:COLOR 31:PRINT" Í":X=X+1:GOTO 930
890 IF X=2 THEN LOCATE 20,6:COLOR 15,0:PRINT A$(X);:COLOR 31:PRINT" Í":X=X+1:GOTO 930
900 IF X=3 THEN LOCATE 20,8:COLOR 15,0:PRINT A$(X);:COLOR 31:PRINT" Í":X=X+1:GOTO 930
910 IF X=4 THEN LOCATE 20,10:COLOR 15,0:PRINT A$(X);:COLOR 31:PRINT" Í":X=X+1:GOTO 930
920 IF X=5 THEN LOCATE 20,12:COLOR 15,0:PRINT A$(X):X=X+1:GOTO 930
930 GOTO 830
940 REM DATA šberpr<70>fung
950 READ C$,D$:IF C$="END" THEN RESTORE:GOTO 830
960 IF A$(X)=C$ OR A$(X)=D$ THEN A$(X)=D$:RESTORE:GOTO 880
970 GOTO 950
980 DATA a,A,b,B,c,C,d,D,e,E,f,F,g,G,h,H,i,I,j,J,k,K,l,L,m,M,n,N,o,O,p,P,q,Q,r,R,s,S,t,T,u,U,v,V,w,W,x,X,y,Y,z,Z,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,0,0,-,-,/,/,END,IF
990 REM Hauptpprog
1000 FCT$ = A$(1) + A$(2) + A$(3) + A$(4) + A$(5)
1010 IF FCT$="RECRD" THEN GOTO 1110
1020 IF FCT$="PLAYD" THEN GOTO
1030 IF FCT$="WV2VC" THEN GOTO
1040 IF FCT$="VC2WV" THEN GOTO
1050 IF FCT$="JOIVC" THEN GOTO
1060 IF FCT$="VCHDR" THEN GOTO
1070 IF FCT$="RDDRV" THEN GOTO
1080 IF FCT$="TODOS" THEN COLOR 15,0,0:CLS:END
1090 LOCATE 20,3:COLOR 31,0,0:PRINT" Í ";:COLOR 15,0,0:PRINT"Í Í Í Í":X=1
1100 GOTO 830
1110 REM RECORD FILE
1120 LOCATE 9,1
1130 COLOR 15,0,0
1140 FOR Z=0 TO 11
1150 PRINT SPACE$(79)
1160 NEXT Z
1170 FUNCT$="Aufnahme eines Files"
1180 COLOR 15,4
1190 LOCATE 24,1:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1200 A=1
1210 X=28
1220 LOCATE 3,11:COLOR X,0,0:PRINT"ÄÄÄ ÄÄÄ ÄÄÄ"
1230 LOCATE 4,10:PRINT"³":LOCATE 4,14:PRINT"³":LOCATE 4,17:PRINT"³":LOCATE 4,24:PRINT"³"
1240 LOCATE 5,11:PRINT"ÄÄÄ":LOCATE 5,18:PRINT"ÄÄÄ"
1250 LOCATE 6,10:PRINT"³":LOCATE 6,13:PRINT"\":LOCATE 6,17:PRINT"³":LOCATE 6,24:PRINT"³"
1260 LOCATE 7,18:PRINT"ÄÄÄ":LOCATE 7,25:PRINT"ÄÄÄ"
1270 IF A=2 THEN GOTO 1320
1280 A=A+1
1290 X=12
1300 FOR Z=0 TO 49999!:NEXT
1310 GOTO 1220
1320 COLOR 14,0,0
1330 LOCATE 9,1
1340 GOSUB 2710
1350 LOCATE 9,1:PRINT SPACE$(75)
1360 PRINT SPACE$(75)
1370 PRINT SPACE$(75)
1380 LOCATE 20,1:PRINT SPACE$(75)
1390 LOCATE 21,1:PRINT SPACE$(75)
1400 LOCATE 22,1:PRINT SPACE$(75)
1410 INFO$="TYPE " + PATH$ + "VREC.HLP"
1420 LOCATE 9,1:COLOR 14
1430 PRINT"Info:"
1440 SHELL INFO$
1450 A$=INKEY$
1460 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1470 IF A$="" THEN 1450
1480 COLOR 15,0,0
1490 FOR Z=9 TO 23
1500 LOCATE Z,1:PRINT SPACE$(80);
1510 NEXT Z
1520 AUFRUF$=PATH$ + "VREC.EXE " + DATEI$ + " "
1530 LOCATE 9,1:COLOR 15,0,0
1540 PRINT"Wollen Sie die PuffergrӇe eingeben?"
1550 FUNCT$="PuffergrӇe eingeben"
1560 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1570 A$=INKEY$:IF A$="" THEN GOTO 1560
1580 COLOR 15,0,0
1590 IF A$="n" OR A$="N" THEN GOTO 1700
1600 IF A$="j" OR A$="J" THEN GOTO 1620
1610 GOTO 1560
1620 REM BuffergrӇe eingeben
1630 LOCATE 9,1:PRINT SPACE$(75)
1640 COLOR 14,0,0
1650 LOCATE 9,1
1660 INPUT"BuffergrӇe [1-32] :",BUFG
1670 IF BUFG<1 OR BUFG>32 THEN GOTO 1630
1680 BUFG$=MID$(STR$(BUFG),2,2)
1690 AUFRUF$=AUFRUF$+"/B:"+BUFG$+" "
1700 REM Aufnahmequelle
1710 FUNCT$="Aufnahmequelle eingeben"
1720 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1730 COLOR 15,0,0
1740 LOCATE 10,1
1750 PRINT"Aufnahmequelle [M]ik/[C]d/[L]ine: "
1760 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1770 QUELLE$=INKEY$:IF QUELLE$="" THEN 1760
1780 IF QUELLE$="M" OR QUELLE$="m" THEN QUELLE$="LINE":GOTO 1820
1790 IF QUELLE$="C" OR QUELLE$="c" THEN QUELLE$="CD":GOTO 1820
1800 IF QUELLE$="L" OR QUELLE$="l" THEN QUELLE$="MIK":GOTO 1820
1810 GOTO 1760
1820 AUFRUF$=AUFRUF$+"/A:"+QUELLE$
1830 REM Filter
1840 LOCATE 11,1:COLOR 15,0,0
1850 PRINT"Wollen Sie den Filter festlegen?"
1860 FUNCT$="Filter festlegen"
1870 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1880 A$=INKEY$:IF A$="" THEN 1870
1890 COLOR 15,0,0
1900 IF A$="j" OR A$="J" THEN 1930
1910 IF A$="n" OR A$="N" THEN 2030
1920 GOTO 1870
1930 REM Filter festlegen
1940 LOCATE 11,1:PRINT SPACE$(75)
1950 COLOR 14,0,0
1960 LOCATE 11,1
1970 PRINT"Filter eingeben: [T]ief / [H]och"
1980 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
1990 A$=INKEY$:IF A$="" THEN 1980
2000 IF A$="t" OR A$="T" THEN AUFRUF$=AUFRUF$+" /F:TIEF":GOTO 2030
2010 IF A$="h" OR A$="H" THEN AUFRUF$=AUFRUF$+" /F:HOCH":GOTO 2030
2020 GOTO 1980
2030 REM Samplingrate
2040 FUNCT$="Samplingrate eingeben"
2050 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2060 LOCATE 12,1:COLOR 15,0,0
2070 PRINT"Wollen Sie die Samplingrate eingeben?"
2080 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2090 A$=INKEY$:IF A$="" THEN 2080
2100 IF A$="j" OR A$="J" THEN 2130
2110 IF A$="n" OR A$="N" THEN 2190
2120 GOTO 2080
2130 REM Eingabe
2140 COLOR 15,0,0
2150 LOCATE 12,1:PRINT SPACE$(75)
2160 LOCATE 12,1:INPUT"22050 - STEREO / 4000-41000 - MONO : ",SAMPL$
2170 IF VAL(SAMPL$)<4000 OR VAL(SAMPL$)>41000! THEN GOTO 2150
2180 AUFRUF$=AUFRUF$+" /S:"+SAMPL$
2190 REM Aufnahmemodus
2200 FUNCT$="MONO/STEREO ausw„hlen"
2210 COLOR 15,0,0
2220 LOCATE 13,1:PRINT"W„hlen Sie den Aufnahmemodus: [M]ono/[S]tereo"
2230 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2240 A$=INKEY$:IF A$="" THEN GOTO 2230
2250 IF A$="m" OR A$="M" THEN AUFRUF$=AUFRUF$+" /M:MONO":GOTO 2320
2260 IF A$="s" OR A$="S" THEN AUFRUF$=AUFRUF$+" /M:STEREO":GOTO 2320
2270 GOTO 2230
2280 REM Samplerate falsch
2290 LOCATE 13,1:COLOR 12,0,0:PRINT"Geht nicht wegen Samplingrate !!!"
2300 FOR Z=0 TO 10000:NEXT
2310 GOTO 2200
2320 REM LINE-Volume
2330 FUNCT$="LINE-IN Lautst„rke"
2340 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2350 LOCATE 14,1:COLOR 15,0,0
2360 INPUT"Geben Sie die LINE-Lautst„rke (0-15) ein: ",LVOL
2370 IF LVOL<0 OR LVOL>15 THEN GOTO 2320
2380 REM Timer
2390 FUNCT$="Timer Zeit einstellen"
2400 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2410 LOCATE 15,1:COLOR 15,0,0
2420 INPUT"Geben Sie die Aufnahmezeit in SEK ein: ",TMR
2430 IF TMR<1 OR TMR>65535! THEN GOTO 2380
2440 AUFRUF$=AUFRUF$+" /T:"+STR$(TMR)
2450 LOCATE 20,1:COLOR 12,0,0
2460 PRINT"Dr<44>cken Sie eine Taste zum Beginnen!"
2470 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2480 A$=INKEY$:IF A$="" THEN GOTO 2470
2490 REM Bildschirm Clearen
2500 FOR Z=9 TO 23
2510 COLOR 15,0,0
2520 LOCATE Z,1:PRINT SPACE$(75)
2530 NEXT Z
2540 LOCATE 9,1:COLOR 14,0,0:PRINT AUFRUF$
2550 PRINT"wird ausgef<65>hrt!!!"
2560 LOCATE 11,1
2570 AUFRUF$=AUFRUF$+" /Q /X="+CHR$(34)+"ECHO AUFNAHME LUFT!"+CHR$(34)
2580 SHELL AUFRUF$
2590 COLOR 15,0,0
2600 FOR Z=9 TO 23
2610 LOCATE Z,1:PRINT SPACE$(79)
2620 NEXT Z
2630 LOCATE 9,1:COLOR 10,0,0
2640 PRINT"Aufnahme erfolgreich durchgef<65>hrt!!!"
2650 PRINT:PRINT"Wenn bereit ---> Taste dr<64>cken"
2660 FUNCT$="Wartet auf TASTENDRUCK"
2670 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);
2680 IF A$="" THEN GOTO 2660
2690 GOTO 560
2700 END
2710 REM Abfrage des Dateinamens
2720 PRINT"Geben Sie den Dateinamen ein:"
2730 PRINT
2740 COLOR 31:PRINT" Í ";:COLOR 15:PRINT"Í Í Í Í Í Í Í"
2750 X=1
2760 DAT$(X)=INKEY$
2770 LOCATE 24,1:COLOR 15,4:PRINT USING"Aktuelle Funktion: \ \ Aktuelle Zeit: &:&:&";FUNCT$;LEFT$(TIME$,2);MID$(TIME$,4,2);RIGHT$(TIME$,2);:IF DAT$(X)="" THEN 2760
2780 GOSUB 2890
2790 IF X=1 THEN LOCATE 11,2:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2800 IF X=2 THEN LOCATE 11,4:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2810 IF X=3 THEN LOCATE 11,6:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2820 IF X=4 THEN LOCATE 11,8:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2830 IF X=5 THEN LOCATE 11,10:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2840 IF X=6 THEN LOCATE 11,12:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2850 IF X=7 THEN LOCATE 11,14:COLOR 15,0:PRINT DAT$(X);:COLOR 31:PRINT" Í"
2860 IF X=8 THEN LOCATE 11,16:COLOR 15,0:PRINT DAT$(X):GOTO 2960
2870 X=X+1
2880 GOTO 2760
2890 REM Umwandlung KLEIN -> in GROSSbuchstaben
2900 RESTORE
2910 READ A$,B$:IF A$="END" THEN GOTO 2940
2920 IF DAT$(X)=A$ OR DAT$(X)=B$ THEN DAT$(X)=B$:RETURN
2930 GOTO 2910
2940 REM Fehler
2950 GOTO 2760
2960 REM Ermittlung des Dateinamens
2970 DATEI$=DAT$(1) + DAT$(2) + DAT$(3) + DAT$(4) + DAT$(5) + DAT$(6) + DAT$(7) + DAT$(8) + ".VOC"
2980 RETURN