Saako mitenkään Quick Basicissa waw tiedostoa soimaan?
saa, mutta ei suoraan yhdellä komennolla, mutta nekään eivät ole mitään parhaita ja yleensä saa soimaan vain jotain pieniä piipahduksia....
Tämä koodinpätkä sisältyy BootSector4:n Basguru-kokoelmaan (sitä ei taida tällä hetkellä saada juuri muualta kuin MBnetistä). Ei toimi suoraan NT:llä, 2000:lla eikä XP:llä. Vanhemmilla Windowseilla ja DOSissa pitäisi toimia äänikortin kanssa. Itse kokeilin muistaakseni Windows 95:llä ja hyvin toimi.
' Wavin soittoa, tätä kaikki ovat aina halunneet=)
CLS
DIM SHARED BasePort%, DMA, IRQ 'SB:n Osoite, DMA, IRQ
GOSUB GetBlaster
CONST FILE$ = "C:\WINDOWS\MEDIA\THEMIC~1.WAV" ' WAVin nimi
CONST TAUKO = 1 ' hidastusarvo -> jos wav soi liian nopeasti, lisää
COLOR 7
PRINT "Soitetaan ";
COLOR 15
PRINT UCASE$(FILE$);
COLOR 7
PRINT "..."
DO '<----- huomaa! WAV soi DOn ja LOOPin välissä, voit itse
GOSUB PlayWav 'rakentaa pelin silmukan väliin WAVin soidessa taustalla
IF INP(&H60) = 1 THEN END
LOOP
CLOSE
OUT dspcmd%, &H10
END
GetBlaster:
IF LEN(ENVIRON$("BLASTER")) = 0 THEN PRINT "BLASTER ympäristömuuttujaa ei ole asetettu": END
FOR Length% = 1 TO LEN(ENVIRON$("BLASTER"))
SELECT CASE MID$(ENVIRON$("BLASTER"), Length%, 1)
CASE "A"
BasePort% = VAL("&H" + MID$(ENVIRON$("BLASTER"), Length% + 1, 3))
CASE "I"
IRQ% = VAL(MID$(ENVIRON$("BLASTER"), Length% + 1, 1))
CASE "D"
DMA% = VAL(MID$(ENVIRON$("BLASTER"), Length% + 1, 1))
CASE ELSE
END SELECT
NEXT
RETURN
SBReset:
dspreset% = BasePort% + 6
OUT dspreset%, 1
FOR t% = 1 TO 10
a% = INP(dspreset%)
NEXT t%
OUT dspreset%, 0
dspread% = BasePort% + 10
FOR t% = 1 TO 10
a% = INP(dspread%)
NEXT t%
RETURN
PlayWav:
IF fgjee = 0 THEN
GOSUB SBReset
byte% = &HD1
GOSUB WriteDSP
OPEN FILE$ FOR BINARY AS #1
fgjee = 1
IF UCASE$(RIGHT$(FILE$, 3)) = "WAV" THEN
FOR i = 0 TO 44
GET #1, , muuttuja
NEXT
muuttuja = 0
END IF
END IF
IF EOF(1) THEN SEEK #1, 45
GET #1, , byte%
GOSUB WriteDSP
byte% = &H10
GOSUB WriteDSP
FOR tauko2 = 1 TO TAUKO
q% = INP(dspcmd%)
NEXT tauko2
RETURN
WriteDSP:
'Soittaa WAVia OUTilla
'
'
'
OUT BasePort% + 12, byte%
RETURNAihe on jo aika vanha, joten et voi enää vastata siihen.