.
[ Voor 100% gewijzigd door Engineer op 13-10-2018 17:42 ]
[ Voor 100% gewijzigd door Engineer op 13-10-2018 17:42 ]
Verwijderd
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
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 |
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:39 ]
Ik ben wel geen guru maar na 4 fouten te hebben verbeterd (excl die SUB) doet ie het nog niet.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
Zie mijn hernieuwde versie in de post daar ergens onderOp 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.
Verwijderd
Dan betekent het dus dat ik de volgende keer met een taal het vaker moet gebruiken anders word het overschreven in mijn koppie.Ik ben wel geen guru maar na 4 fouten te hebben verbeterd (excl die SUB) doet ie het nog niet.
van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !
Mag ik aannemen dat je er ook een serieuze applicazie in hebt gebakken?Op zaterdag 05 januari 2002 23:29 schreef hdd het volgende:
[..]
[..]
Waar slaan die reacties opIk prog vanaf m'n negende al in qbasic..
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.
check de topictitel: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
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:39 ]
van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:37 ]
k, mijn soundcard is niet SB compatible dus vandaar.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
van-tilburg.info -=- meka (sega emulator) - Proud MEDION fanclub member - KOPPIG VOLHOUDEN !
Das knapOp zaterdag 05 januari 2002 21:05 schreef Osiris_NL het volgende:
Was vroeger wel gaaf btw, QBasic. Nog gedaan op m'n MSX I...
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:37 ]
Verwijderd
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).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
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:37 ]
jep.Op zondag 06 januari 2002 12:34 schreef Xtentic het volgende:
QuickBASIC roels!!!!!
zuchtOp 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
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.
Steun Elkaar, Kopieer Nederlands Waar!
Verwijderd
compoort in de zin van modem ?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
Verwijderd
Nee, maar er zijn wel andere versiesOp 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
:o! Ik heb geen manualOp zondag 06 januari 2002 14:33 schreef OiSyN het volgende:
[..]
zucht
OPEN "COM1:bla bla bla" AS #1
wel heel erg RTFM hoor
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:36 ]
Een uur lang laden opstartenOp 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
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 |
[ Voor 99% gewijzigd door Engineer op 13-10-2018 17:35 ]
Jeps...QuickBasic Extended 7.1Op 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
wel eens op f1 gedrukt? Daar staat het allemaal mooi inOp zondag 06 januari 2002 15:11 schreef DinoRaptor het volgende:
[..]
:o! Ik heb geen manualWel 2 boeken over MSX-basic, maar daar stond 't niet in, en op internet kon ik er niets over 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.
Welke compiler?? Ik heb zo'n freeware-ding... Daar wordt deze functie niet beschreven.Op zondag 06 januari 2002 16:15 schreef OiSyN het volgende:
[..]
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.
Wat doe jij dan in dit topicOp 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
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.
1. dat was een grapje.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)
ah ok, eenOp zondag 06 januari 2002 17:19 schreef DinoRaptor het volgende:
[..]
1. dat was een grapje.
staan die dingen dan niet in de specs van de baybus?2. Eh... laat ook maar(m'n fans aansturen, daar wil ik zelf wat voor schrijven. Een digitale baybus zegmaar
)
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