[Qbasic] Soundkaart aansturen, hoe?

Pagina: 1
Acties:

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 100% gewijzigd door Engineer op 13-10-2018 17:42 ]


  • Osiris
  • Registratie: Januari 2000
  • Niet online
Huh? Wat moet jij met QBasic???

Verwijderd

Hdd heeft z'n wijdepijpenbroek aangetrokken, wat lounge aangezet en gaat heerlijk retro QB coden? :?

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Was vroeger wel gaaf btw, QBasic. Nog gedaan op m'n MSX I...

Maar nu ga ik Hackers verder kijken...

  • Koen_R
  • Registratie: Juni 1999
  • Laatst online: 15:56
Dit vond ik in de oude doos, de PLAY functie, maar dan via je Adlib Compatible soundcard.

Have Fun :)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
DefInt A-Z
DECLARE FUNCTION DetectCard% ()
DECLARE SUB SBInit ()
DECLARE SUB WriteReg (Reg%, Value%)
DECLARE SUB SBPlay (note%)
                                        
CONST false = 0, true = NOT false
                                        
Screen 0: Cls
                                        
If DetectCard = True Then
  Print "AdLib-compatible sound card detected."
Else
  Print "Unable to find/detect sound card."
  Beep
  System
End If
Print " Initalizing...";
                                        
SBInit
                                        
Print " Done."
                                        
For nt = 0 To 255
SBPlay nt
Next nt
                                        
Print
Print "  These routines only support one channel/voice of the FM chip, but"
Print "eventually I may fix them so you can have a bunch o'instruments on"
Print "at once.  I'd also like to write a replacement for SBFMDRV.COM, but"
Print "that's far off, and probably not in QB anyway.  This is too fast"
Print "compiled, so if you are going to use it in anything, add a delay."
Print "                     Enjoy!     -Brett 11 / 12 / 92"
Print
                                        
For nt = 255 To 0 Step -1
SBPlay nt
Next nt
 
Print "[Press any key to end]"
SLEEP
                                        
Call WriteReg(&HB0, &H0) 'Makes sure no extra sound is left playing


Function DetectCard%()
                                        
'  Purpose:   Detects an AdLib-compatible card.
'        Returns -1 (true) if detected and 0 (false) if not.
'  Variables: Nope
                                        
Call WriteReg(&H4, &H60)
Call WriteReg(&H4, &H80)
B = INP(&H388)
Call WriteReg(&H2, &HFF)
Call WriteReg(&H4, &H21)
  For x = 0 To 130
    a = INP(&H388)
  Next x
C = INP(&H388)
Call WriteReg(&H4, &H60)
Call WriteReg(&H4, &H80)
Success = 0
If (B And &HE0) = &H0 Then
  If (C And &HE0) = &HC0 Then
    Success = -1
  End If
End If
DetectCard% = Success
End Function

Sub SBInit()
'  Initialize the sound card
                                        
'(This is the "quick-and-dirty" method; what it's doing is zeroing out

'  all of the card's registers.  I haven't had any problems with this.)


                                        
For q = 1 To &HF5
  Call WriteReg(q, 0)
Next q
                                        
End Sub

Sub SBPlay(freq%)
'  Purpose: Plays a note
'  Variables:    freq% - Frequency (00-FF hex)
'           duration% - Duration (n seconds) (not used)
'  I'm still working on this part, it may be ugly, but it works <g>.

'  The first group of WriteRegs is the modulator, the second is the

'  carrier.
'  If you just want to know how to create your own instrument, play around

'  with the second values in the first four calls to WriteReg in each group.

'  :-)  Have fun!  - Brett
                                        
Call WriteReg(&H20, &H7)    ' Set modulator's multiple to F
Call WriteReg(&H40, &HF)    ' Set modulator's level to 40 dB
Call WriteReg(&H60, &HF0)   ' Modulator attack: quick, decay: long

Call WriteReg(&H80, &HF0)   ' Modulator sustain: medium, release: medium
Call WriteReg(&HA0, freq%)
                                        
                                        
Call WriteReg(&H23, &HF)   ' Set carrier's multiple to 0
Call WriteReg(&H43, &H0)   ' Set carrier's level to 0 dB
Call WriteReg(&H63, &HF0)  ' Carrier attack: quick, decay: long

Call WriteReg(&H83, &HFF)  ' Carrier sustain: quick, release: quick
Call WriteReg(&HB0, &H20)  ' Octave
                                        
Call WriteReg(&HE0, &H0)   ' Waveform argument for Tom..
                   ' &H00 is the default, but I felt like
                   ' dropping it in for you.. :)
                                        
' I originally had an extra argument, duration!, but for some reason
' I wanted to do the timing outside of this sub..  You can change it back

' if needs require..
                                        
'TimeUp! = TIMER + duation!
'WHILE TimeUp! > TIMER: WEND  ' Worst you can be off is .182 of a second

End Sub

Sub WriteReg(Reg%, Value%)
'  Purpose:   Writes to any of the SB/AdLib's registers
'  Variables: Reg%: Register number,
'        Value%: Value to insert in register
'         (Note: The registers are from 00-F5 (hex))
OUT &H388, Reg     '388h = address/status port, 389h = dataport
  For x = 0 To 5   ' This tells the SB what register we want to write to

 
    a = INP(&H388) ' After we write to the address port we must wait 3.3ms

  Next x
                                        
OUT &H389, Value   ' Send the value for the register to 389h
  For x = 0 To 34  ' Here we must also wait, this time 23ms
    a = INP(&H388)
  Next x
End Sub

Verwijderd

SUB

line input ; "Is qbasic nog steeds boeind" $a
If $a = "ja" THEN print "Jij moet naar de dokter..!"
If $a = "nee" THEN GOTO doh
If ELSE THEN PRINT "Typ ja of nee"
doh:
COLOR 25
PRINT "Ja je hebt gelijk :) "
END

END SUB

Debug me maar :7

  • Koen_R
  • Registratie: Juni 1999
  • Laatst online: 15:56
Afbeeldingslocatie: http://home.hccnet.nl/k.rotteveel/pds.gif

Verwijderd

Haal dan die sub command weg :P
laat ook maar btw

  • Koen_R
  • Registratie: Juni 1999
  • Laatst online: 15:56
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
kneus:

INPUT "Is qbasic nog steeds boeind? ", a$
IF LCASE$(a$) = "ja" THEN
      PRINT "Jij moet naar de dokter..!"
      END
ELSEIF LCASE$(a$) = "nee" THEN
      GOTO doh
ELSE
      PRINT "Typ ja of nee"
      GOTO kneus
END IF


doh:
COLOR 25
PRINT "Ja je hebt gelijk  "
END

Verwijderd

PRINT " Ik veronderschuldig mij nadat ik de nieuwste versie van QB heb geinstalled."

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:39 ]


  • Arjan Scholl
  • Registratie: Maart 2001
  • Laatst online: 12-09 11:15
Op zaterdag 05 januari 2002 23:03 schreef digimortal het volgende:
SUB

line input ; "Is qbasic nog steeds boeind" $a
If $a = "ja" THEN print "Jij moet naar de dokter..!"
If $a = "nee" THEN GOTO doh
If ELSE THEN PRINT "Typ ja of nee"
doh:
COLOR 25
PRINT "Ja je hebt gelijk :) "
END

END SUB

Debug me maar :7
Ik ben wel geen guru maar na 4 fouten te hebben verbeterd (excl die SUB) doet ie het nog niet.

  • Koen_R
  • Registratie: Juni 1999
  • Laatst online: 15:56
Op zaterdag 05 januari 2002 23:30 schreef arjanscholl het volgende:

[..]

Ik ben wel geen guru maar na 4 fouten te hebben verbeterd (excl die SUB) doet ie het nog niet.
Zie mijn hernieuwde versie in de post daar ergens onder 8-)

Verwijderd

Ik ben wel geen guru maar na 4 fouten te hebben verbeterd (excl die SUB) doet ie het nog niet.
Dan betekent het dus dat ik de volgende keer met een taal het vaker moet gebruiken anders word het overschreven in mijn koppie.

  • markvt
  • Registratie: Maart 2001
  • Laatst online: 17:17

markvt

Peppi Cola

play "abcdefg"

beep

sound 800,10

zie de help voor die functies er ff op na

van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !


Verwijderd

Ik hoor alweer vader jakob klinken :)

  • PipoDeClown
  • Registratie: September 2000
  • Niet online

PipoDeClown

Izze Zimpell

Op zaterdag 05 januari 2002 23:29 schreef hdd het volgende:

[..]

[..]

Waar slaan die reacties op :? Ik prog vanaf m'n negende al in qbasic..
Mag ik aannemen dat je er ook een serieuze applicazie in hebt gebakken?

God weet alles, want hij is lid van de Mosad. To protect your freedom i will take that away from you. Mijn drankgebruik heeft ernstig te lijden onder mijn gezondheid.


  • Koen_R
  • Registratie: Juni 1999
  • Laatst online: 15:56
Op zaterdag 05 januari 2002 23:36 schreef markvt het volgende:
play "abcdefg"

beep

sound 800,10

zie de help voor die functies er ff op na
check de topictitel:

[Qbasic]Soundkaart aansturen, hoe?

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:39 ]


  • markvt
  • Registratie: Maart 2001
  • Laatst online: 17:17

markvt

Peppi Cola

maarja pc speaker werkt op elke pc, soundkaart niet :)

van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:37 ]


  • markvt
  • Registratie: Maart 2001
  • Laatst online: 17:17

markvt

Peppi Cola

Op zaterdag 05 januari 2002 23:44 schreef hdd het volgende:

[..]

Aangezien het progsel toch niet veel verder dan m'n eigen pc zal komen kan het best. Uit een soundkaart kun je btw "iets" meer bass halen ;)
k, mijn soundcard is niet SB compatible dus vandaar.

van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !


  • Arjan Scholl
  • Registratie: Maart 2001
  • Laatst online: 12-09 11:15
offtopic:
Mijn versie :P
[code]CLS
INPUT "Is QBasic nog steeds boeiend? ", a$
b$ = LCASE$(a$)

DO
LOOP WHILE b$ = ""

IF b$ = "nee" THEN GOTO doh ELSE PRINT "Jij moet naar de dokter!!!": END

doh:
COLOR 25
PRINT "Ja je hebt gelijk!"

END[/code]

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Op zaterdag 05 januari 2002 21:05 schreef Osiris_NL het volgende:
Was vroeger wel gaaf btw, QBasic. Nog gedaan op m'n MSX I...
Das knap :) Volgens mij is dat er alleen voor de PC (onder DOS)

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:37 ]


Verwijderd

Ik word de hele tijd gescrewt met mijn ugly code :(
maar ja eigen schuld dikke bult en btw die mening was lelijk en nu veranderd

  • Bigs
  • Registratie: Mei 2000
  • Niet online
Op zaterdag 05 januari 2002 23:52 schreef hdd het volgende:

[..]

Neej, kheb hier nog zo'n qbasic apparaat tussen het schroot liggen dat je op je tv kan aansluiten :)
Dat is geen QBasic.. MSX-Basic of dat TRS-80 taaltje, maar dat is behoorlijk anders hoor (moet je nog regelnummers gebruiken en ondersteunt geen functies enzo).

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:37 ]


Verwijderd

QuickBASIC roels!!!!!

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 14-09 20:56
Op zondag 06 januari 2002 12:34 schreef Xtentic het volgende:
QuickBASIC roels!!!!!
jep.

Ik zoek een manier om de compoort aan te sturen. MAAR ik kan niets vinden wat bruikbaar is ... Voor VB6, niet voor QB :(

Verbouwing


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zondag 06 januari 2002 13:39 schreef DinoRaptor het volgende:

[..]

jep.

Ik zoek een manier om de compoort aan te sturen. MAAR ik kan niets vinden wat bruikbaar is ... Voor VB6, niet voor QB :(
zucht

OPEN "COM1:bla bla bla" AS #1

wel heel erg RTFM hoor

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Is er nou al een nieuwe versie van QuickBasic uit? ik "doe" het soms nog met 4.5 :)

Steun Elkaar, Kopieer Nederlands Waar!


Verwijderd

Op zondag 06 januari 2002 13:39 schreef DinoRaptor het volgende:

[..]

jep.

Ik zoek een manier om de compoort aan te sturen. MAAR ik kan niets vinden wat bruikbaar is ... Voor VB6, niet voor QB :(
compoort in de zin van modem ?

Verwijderd

Op zondag 06 januari 2002 14:39 schreef Skinkie het volgende:
Is er nou al een nieuwe versie van QuickBasic uit? ik "doe" het soms nog met 4.5 :)
Nee, maar er zijn wel andere versies

Rapid-Q (voor windows/linux/hpfs programmeren in een basic taal)
PDS 7.1 (Same als QuickBASIC maar toch ietsje anders ;))

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Gewoon ff een vraagje hoor: Waarom programeer je in QBasic Hdd? Borland Pascal is ook DOS en daar kun je veel meer mee...
In Pascal kan ik namelijk wél de geluidskaart aansturen *D

Of vind je het gewoon leuk :?

  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 14-09 20:56
Op zondag 06 januari 2002 14:33 schreef OiSyN het volgende:

[..]

zucht

OPEN "COM1:bla bla bla" AS #1

wel heel erg RTFM hoor
:o! Ik heb geen manual :) Wel 2 boeken over MSX-basic, maar daar stond 't niet in, en op internet kon ik er niets over vinden.

Verbouwing


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:36 ]


  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 14-09 20:56
Op zondag 06 januari 2002 15:28 schreef hdd het volgende:

[..]

Qbasic kan ik zonder allemaal moeilijk gedoe met serials en daarna een uur lang laden opstarten, sim-pel :)

Plus het feit dat je overal in je vrije tijd ken proggen :)
Een uur lang laden opstarten :?

[edit]
Ik heb nu de volgende code om de compoort te openen, maar ik zou niet weten hoe ik het moet veranderen ofzo...
code:
1
2
3
4
5
6
7
' Now open COM Port as selected with a 2048-byte buffer in Tx and Rx
 SELECT CASE comport
  CASE 1
   OPEN "COM1:9600,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1
  CASE 2
   OPEN "COM2:9600,N,8,1,CD0,CS0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1
 END SELECT

Verbouwing


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
.

[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:35 ]


  • Arjan Scholl
  • Registratie: Maart 2001
  • Laatst online: 12-09 11:15
Op zondag 06 januari 2002 14:39 schreef Skinkie het volgende:
Is er nou al een nieuwe versie van QuickBasic uit? ik "doe" het soms nog met 4.5 :)
Jeps...QuickBasic Extended 7.1 :) © 1990 :D

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zondag 06 januari 2002 15:11 schreef DinoRaptor het volgende:

[..]

:o! Ik heb geen manual :) Wel 2 boeken over MSX-basic, maar daar stond 't niet in, en op internet kon ik er niets over vinden.
wel eens op f1 gedrukt? Daar staat het allemaal mooi in

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 14-09 20:56
Op zondag 06 januari 2002 16:15 schreef OiSyN het volgende:

[..]

wel eens op f1 gedrukt? Daar staat het allemaal mooi in
Welke compiler?? Ik heb zo'n freeware-ding... Daar wordt deze functie niet beschreven.

[edit]
Heb jij ICQ eigenlijk wel aan? Add me nou ff!!

[edit2]
Gevonden! QBasic.exe heb ik ook |:(

Verbouwing


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

mij adden heeft geen zin aangezien ik een hekel heb aan QB en er al 6 jaar niet meer in heb gecode :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 14-09 20:56
Op zondag 06 januari 2002 16:45 schreef OiSyN het volgende:
mij adden heeft geen zin aangezien ik een hekel heb aan QB en er al 6 jaar niet meer in heb gecode :)
Wat doe jij dan in dit topic :?

Nouja, ik heb 'm dus, maar ik snap geen bout van de baudrate ofzo. Wat is dat?
En verder staan er nog allemaal dingen als 'OPEN "COM1:300,N,8,1,CD0,DS0,OP0,RS,TB2048,RB2048" FOR RANDOM AS #1'

Verbouwing


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

dus ik mag hier niet komen als ik niet meer in qb code :?

verder weet ik niet hoe het allemaal werkt met seriele poorten in qb, maar als jij dingen als baudrate niet weet vraag ik me af wat jij in hemelsnaam wilt doen met de seriele poort (en wat het allemaal betekent staat in de manual, ik gaf alleen maar een tip dat je het daar kon vinden)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Mithrandir
  • Registratie: Januari 2001
  • Laatst online: 14-09 20:56
Op zondag 06 januari 2002 17:01 schreef OiSyN het volgende:
dus ik mag hier niet komen als ik niet meer in qb code :?

verder weet ik niet hoe het allemaal werkt met seriele poorten in qb, maar als jij dingen als baudrate niet weet vraag ik me af wat jij in hemelsnaam wilt doen met de seriele poort (en wat het allemaal betekent staat in de manual, ik gaf alleen maar een tip dat je het daar kon vinden)
1. dat was een grapje.
2. Eh... laat ook maar :) (m'n fans aansturen, daar wil ik zelf wat voor schrijven. *iets geknipt wat er niet inhoorde*

Verbouwing


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zondag 06 januari 2002 17:19 schreef DinoRaptor het volgende:

[..]

1. dat was een grapje.
ah ok, een :) erbij had wel handig geweest misschien ;)
2. Eh... laat ook maar :) (m'n fans aansturen, daar wil ik zelf wat voor schrijven. Een digitale baybus zegmaar :))
staan die dingen dan niet in de specs van de baybus?

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

/me heeft nog wel een source code + lib voor een HSC player onder dos... *D Wies geintresseerd?
Pagina: 1