वास्तव में MS-DOS में साउंड कार्ड ड्राइवर क्या है?
मेरी जानकारी के लिए, न तो MS-DOS और न ही BIOS साउंड कार्ड के लिए किसी भी प्रकार की API प्रदान करता है। इसलिए "ड्राइवर" की अवधारणा अनुपस्थित है, जैसा कि हम आज जानते हैं। सेटअप पैकेज में मिली एक्सेसरीज और सैंपल फाइल और विंडोज से जुड़े सामान के अलावा, साउंड कार्ड का उपयोग करने के लिए डॉस-प्रोग्राम के लिए क्या जरूरी है?
एक चीज जो मैंने कहीं पढ़ी है और अब और नहीं पा सकता है कि कुछ साउंड कार्ड पावर-अप में 'निष्क्रिय' हैं और काम करने के लिए किसी प्रकार के आरंभीकरण की आवश्यकता है। क्या आप कृपया इस पर टिप्पणी कर सकते हैं?
जवाब
डॉस में अन्य कार्यक्रमों के लिए "ड्राइवर" सेवाएं प्रदान करने का विशिष्ट तरीका एक टीएसआर (टर्मिनेट एंड स्टे रेजिडेंट) प्रोग्राम है, जो एक सॉफ्टवेयर इंटरप्ट वेक्टर स्थापित करता है, ताकि डॉस प्रोग्राम चलाने वाले इस INT को सेवाओं के लिए आमंत्रित कर सकें ( राल्फ ब्राउन की इंटरव्यू सूची देखें )।
हालाँकि, ध्वनि के संदर्भ में, प्रोग्राम आमतौर पर I / O डिवाइस को सीधे I / O पोर्ट को पढ़कर और लिखकर करते हैं, जो प्रासंगिक होने पर व्यवधान और DMA स्थानान्तरण को नियंत्रित करते हैं। शायद कम से कम, इस तथ्य के कारण कि मल्टीमीडिया सेवाएं तेजी से विकसित हो रही थीं।
डॉस द्वारा प्रदान किए गए कोई संसाधन प्रबंधन के साथ, आपको मैन्युअल रूप से उन डिवाइसों का पता लगाना होगा जो आई / ओ स्पेस में स्थापित होने के आधार पर थोड़ा मुश्किल और संभावित ट्रिगर क्रैश हो सकते हैं। यह संभव है कि कुछ उपकरणों ने केवल एक न्यूनतम I / O पदचिह्न की निगरानी की, जब तक कि इस जोखिम को कम करने के लिए एक init अनुक्रम नहीं किया गया था, लेकिन यह वह व्यवहार नहीं है जिसे मैं अपने द्वारा AdLib, रोलाण्ड MPU-401 मिडी और क्लासिक साउंडबास्टर के लिए लिखे गए ध्वनि दिनचर्या से पहचानता हूं। पत्ते।
मुख्य रूप से, पता लगाना पारंपरिक I / O, IRQ और DMA आवंटन पर आधारित था, जो इन विन्यास बिंदुओं को निर्दिष्ट करने वाले पर्यावरण चर सम्मेलनों द्वारा पूरक है।
आपने मूल रूप से कोड का एक टुकड़ा लिखा था, जो केवल अपेक्षित डिवाइस के प्रिज़ेंस में एक निश्चित परिणाम दे सकता है (AdLib कार्ड पर ऑन-बोर्ड टाइमर सेट करना) और इसे पारंपरिक या निर्दिष्ट I / O पते के विरुद्ध अंधाधुंध तरीके से चलाया आकाश से क्या गिरा।
सारांश:
रियल साउंड ब्लास्टर्स को शुरू करने या उनका समर्थन करने के लिए ड्राइवर की आवश्यकता नहीं होती है। क्लोन को एक बार के आरंभीकरण की आवश्यकता हो सकती है। विदेशी कार्ड में मेमोरी-रेजिडेंट ट्रांसलेशन लेयर की जरूरत पड़ सकती है।
खेल उपयुक्त हार्डवेयर इंटरफेस को 'टॉक' करने के लिए प्रति-कार्ड ड्राइवरों के संग्रह का उपयोग करते हैं। इन्हें गेम में हार्ड-कोड किया जा सकता है, या एचएमआई या माइल्स में बाहरी फ़ाइलों का संग्रह।
आपकी स्थिति के आधार पर, इनमें से एक या दोनों लागू हो सकते हैं।
एक वास्तविक ध्वनि विस्फ़ोटक पर हैलोवीन हैरी को चलाने के लिए , कोई अतिरिक्त फ़ाइलों की आवश्यकता नहीं है। SB सपोर्ट हार्ड-कोडेड है।
एमएस-डॉस के तहत एसबी लाइव पीसीआई पर थीम हॉस्पिटल खेलने के लिए , गेम एसबी कार्ड का सार करने के लिए तीसरे पक्ष के माइल्स ड्राइवर का उपयोग करता है। कार्ड को स्वयं एक पुराने एसबी कार्ड के हार्डवेयर इंटरफेस की नकल करने के लिए लाइव ड्राइवर की आवश्यकता होती है।
विभिन्न परिदृश्यों के लिए अब तक दिए गए सभी उत्तर सही हैं। क्या भ्रमित हो सकता है कि दो अलग-अलग चरण हैं जो दोनों को सही ढंग से 'ड्राइवर' कहा जा सकता है। मुझे बताएं कि मेरा क्या मतलब है:
बहुत कुछ यहाँ सब कुछ डिजीटल ऑडियो आउटपुट और AdLib / OPL2 / OPL3 समर्थन पर समान रूप से लागू होता है।
1) प्रारंभिक और समर्थन करने के लिए -provide- इंटरफ़ेस
वैध, प्रथम-पक्ष साउंड ब्लास्टर श्रृंखला के कार्ड सीधे I / O पोर्ट के माध्यम से प्रोग्राम किए जाते हैं। एक चिप ऑन-बोर्ड जिसे 'डीएसपी' * के रूप में जाना जाता है, जो कार्ड से और उसके लिए सभी डेटा आंदोलन को संभालता है। यदि आपके पास एक वास्तविक ध्वनि विस्फ़ोटक है, और खेल जानता है कि ध्वनि विस्फ़ोटक श्रृंखला हार्डवेयर प्रोग्रामिंग गाइड में वर्णित इंटरफ़ेस का उपयोग करके डीएसपी को 'साउंड ब्लास्टर' कैसे बात करनी है, तो इसकी आवश्यकता है।
* (बाद में उपयोग में 'डीएसपी' के साथ भ्रमित नहीं होना चाहिए जो आम तौर पर reverb जैसे प्रोग्रामयोग्य प्रभाव प्रदान करता है)।
यदि आपके पास एक क्लोन कार्ड या एक तृतीय-पक्ष 'संगत कार्ड' है, तो निम्न में से एक लागू होता है:
- क्लोन कार्ड वास्तव में साउंड ब्लास्टर श्रृंखला कार्डों में से एक के रूप में कार्य करता है और 'ड्राइवर' द्वारा आगे कोई हस्तक्षेप आवश्यक नहीं है।
- कार्ड 'निष्क्रिय' शुरू होता है और इसके लिए कुछ आरंभ की आवश्यकता होती है। यह 1995-1997 PnP संगत कार्ड के साथ आम है जिनकी IRQ और DMA सेटिंग जंपर्स के बजाय सॉफ्टवेयर में की जाती हैं। मेरे कार्य ALS100 + आधारित कार्ड और CMI8330 कार्ड को काम करने से पहले एक स्टार्ट-अप प्रोग्राम चलाने की आवश्यकता होती है। यह कार्यक्रम कार्ड से बात करता है, यह बताता है कि आईआरक्यू और डीएमए क्या उपयोग करना है, और उस बिंदु से कार्ड क्लोन कार्ड के रूप में कार्य करता है। कोई भी लगातार प्रोग्राम किसी गेम के साउंड ब्लास्टर डीएसपी कमांड्स को एवांस कमांड आदि में अनुवाद करने के लिए मेमोरी में नहीं रहता है। यदि आपने क्लोन जैसे कार्ड के लिए 'ड्राइवर' इंस्टॉल किया है, तो यह सबसे अधिक संभावना आपके लिए लागू होती है।
- यदि कार्ड क्लोन कार्ड के रूप में सीधे अभिनय करने में सक्षम नहीं है, क्योंकि यह ग्रेविस अल्ट्रासाउंड की तरह विदेशी है, या एक बहुत ही नया (अपेक्षाकृत बोलने वाला: पोस्ट 1996) साउंड ब्लास्टर / एनसोनीक पीसीआई कार्ड है, तो इसे केवल ए के रूप में अभिनय करने में आरंभीकृत नहीं किया जा सकता है एसबी क्लोन कार्ड। इन कार्डों के लिए साउंड ब्लास्टर डीएसपी कमांड्स को इंटरसेप्ट करने के लिए एक सॉफ्टवेयर शिम लेयर को लोड करने की आवश्यकता होती है और कार्ड को समझने के लिए उन्हें वास्तविक समय में ट्रांसलेट करना होता है। GUS के लिए, यह SBOS है। यदि आप जो खेल खेल रहे हैं, वह GUS का समर्थन करता है, तो आपको SBOS की आवश्यकता नहीं है। एफएम चिप्स / क्लोन चिप्स के बिना कार्ड के लिए, शिम लेयर वास्तविक समय में सॉफ्टवेयर में ऑडियो को संश्लेषित कर सकता है, मिश्रित परिणाम के साथ।
2) गेम समर्थन -सुविधा- इंटरफ़ेस
उपरोक्त रूप से पूरी तरह से स्वतंत्र रूप से, 'ड्राइवर' है जो गेम के विशिष्ट साउंड कार्ड से बात करने की क्षमता प्रदान करता है। इसे अधिक सटीक रूप से ऑडियो लाइब्रेरी कहा जा सकता है, लेकिन चूंकि इसमें साउंड ब्लास्टर / विंडोज साउंड सिस्टम आदि डीएसपी प्रोसेसर से भी बात करनी होती है, इसलिए यह एक ड्राइवर भी है। इस संबंध में, DOS गेम अपने आप में एक मिनी-ऑपरेटिंग-सिस्टम की तरह है।
यह ड्राइवर रूटीन की एक लाइब्रेरी का रूप लेता है जो गेम डेवलपर के लिए कमांड के साउंड कार्ड इंटरफेस के आधार प्राइमरी को उपयोगी, सुसंगत सेट में समाहित करता है।
अपने आप में, एक ध्वनि विस्फ़ोटक ऑडियो और एफएम क्षमता का एक एकल आउटपुट स्ट्रीम प्रदान करता है। एक ग्रेविस अल्ट्रासाउंड या एसबी एडब्ल्यूई साउंड-कार्ड-रैम-निवासी नमूनों की कई छोटी लूपिंग धाराओं (एबी के लिए एसबी डिजीटल स्ट्रीम और एफएम के अलावा) के लिए एक तरंगीय इंटरफ़ेस प्रदान करता है। पीसी स्पीकर बीप जाता है।
गेम प्रोग्रामर इस स्तर के विस्तार के बारे में सोचना नहीं चाहता है - वे संगीत शुरू करना चाहते हैं, एक विस्फोट करना चाहते हैं, आदि। इन विवरणों को अमल में लाना ड्राइवर का काम होगा: आउटपुट शुरू, स्टॉप / साउंड इफेक्ट्स को रोकना, मिक्स करना उन्हें, वॉल्यूम में परिवर्तन, आदि।
शुरुआती गेम में इन ड्राइवरों को सीधे गेम में एक तरह से एड-हॉक फैशन के रूप में कोडित किया गया होगा - हैलोवीन हैरी केवल मूल साउंड ब्लास्टर्स का समर्थन कर सकता है, और समर्थन गेम में हार्ड-कोडित है। ट्रायड के उदय की अपनी विशाल ध्वनि पुस्तकालय है; चूंकि RoTT एक खुला स्रोत है, इसलिए आप Github पर सभी अलग-अलग इनिशियलाइज़ेशन और सपोर्ट रूटीन देख सकते हैं ।
थीम अस्पताल में परिपक्व एमएस-डॉस खेलों के लिए , माइल्स या एचएमआई जैसी लाइब्रेरी का उपयोग किया जाता है। यदि आपने दर्जनों साउंड कार्ड के साथ एक साउंड कार्ड सेट स्क्रीन देखी है, तो वे इनमें से किसी एक लाइब्रेरी का उपयोग करते हैं। मैं के बाद से अलग साउंड कार्ड ड्राइवरों एक निर्देशिका में दिखाया जा सकता है के रूप में सूचीबद्ध इस का कहना है .386
या .ovl
या .hmi
फ़ाइलें। एपिक मेगागेम्स जेन्सेन-लाइब्रेरी गेम्स जैसे वन मस्ट फॉल 2097 और जैज जैकबबिट अपने साउंड कार्ड ड्राइवरों को MDRV---R.MUS
फाइलों में संग्रहीत करते हैं।
में साउंड कार्ड ड्राइवरों 1) , आपके ध्वनि कार्ड के साथ एक अधिष्ठापन डिस्क पर प्रदान की जाएगी यदि आवश्यक हो।
साउंड कार्ड ड्राइवरों में 2) खेल के लिए खुद की या भाग के साथ प्रदान की जाएगी।
अधिकांश PCI साउंडकार्ड में गेम और अन्य अनुप्रयोगों के लिए हार्डवेयर समर्थन नहीं होता है जो साउंडब्लस्टर या AdLib के मौजूद होने की उम्मीद करते हैं। पुराने कार्डों ने यह बताने के लिए एक विशेष प्रयास किया कि "रजिस्टर स्तर संगतता" के रूप में क्या जाना जाता है, इसलिए उन्हें मौजूदा गेमों की एक विस्तृत श्रृंखला के साथ उपयोग किया जा सकता है। पीसीआई के आने के समय तक, विंडोज पसंद का पीसी ऑपरेटिंग सिस्टम बन गया था, इसलिए हार्डवेयर स्तर पर डॉस गेम्स के साथ संगतता कम महत्वपूर्ण थी।
इन नए कार्डों के लिए DOS "ड्राइवर" वास्तव में एमुलेशन सॉफ्टवेयर है, जो सामान्य रूप से Adlib और SB हार्डवेयर के कब्जे वाले I / O पोर्ट तक पहुंच को स्वीकार करता है, और उन्हें कमांड में उपस्थित वास्तविक साउंडकार्ड में परिवर्तित करता है। इसमें सॉफ्टवेयर में ऑडियो संश्लेषण और / या मिश्रण शामिल हो सकते हैं।
किसी भी हार्डवेयर की तरह, एक असम्बद्ध अवस्था में संचालित होने के बाद साउंड कार्ड के हार्डवेयर को "ऑपरेशन के लिए तैयार" किया जाना चाहिए।
आमतौर पर इसमें कुछ निश्चित हार्डवेयर पोर्ट और / या मेमोरी एड्रेस (उक्त साउंड कार्ड की उपस्थिति के लिए परीक्षण के बाद) को कुछ मान लिखने होते हैं। इसके बाद, साउंड कार्ड ऑपरेशन के लिए तैयार है।
विंडोज या किसी अन्य आधुनिक ऑपरेटिंग सिस्टम में यह एक ड्राइवर द्वारा ऑपरेटिंग सिस्टम को बूट करने और मौजूद किसी भी हार्डवेयर को स्कैन करने के लिए किया जाता है। डॉस में यह कॉन्फ़िगरेशन (आमतौर पर) गेम या एप्लिकेशन द्वारा किया जाता है जब इसे शुरू किया जाता है। आवेदन शुरू होने से पहले, हार्डवेयर अभी तक कॉन्फ़िगर नहीं किया गया है।
जब साउंड ब्लास्टर को पहली बार पेश किया गया था, डिजिटाइज्ड ऑडियो फीचर्स का उपयोग करने के लिए प्रलेखित तरीका कोड की आपूर्ति की गई बूँद का उपयोग करना था, जिसे क्रिएटिव लैब्स द्वारा आपूर्ति की गई थी। यदि मेमोरी कार्य करती है, तो कोड के इस ब्लॉब का उपयोग करके इसे कई-16 पते पर RAM में पढ़ना आवश्यक है, और इसे उस पते के सामान्यीकृत रूप के साथ लागू करें (जिस भी सेगमेंट में यह शुरू हुआ है, उसके शून्य को ऑफसेट करें)। यदि मेमोरी कार्य करती है, तो MIDI इंटरफ़ेस I / O पोर्ट संचालन के संदर्भ में परिभाषित किया गया था, और प्रलेखन में यह निर्दिष्ट किया गया हो सकता है कि कोड जो तेजी से चलाने में सक्षम था, वह DMA का उपयोग किए बिना I / O पोर्ट के लिए अलग-अलग नमूने आउटपुट कर सकता है [जो समाप्त हो गया। होने के नाते कितने कार्यक्रमों में वास्तव में साउंडब्लस्टर का उपयोग किया गया], लेकिन मुझे लगता है कि क्रिएटिव लैब्स की उम्मीद थी कि लोग कोड की आपूर्ति की गई बूँद का उपयोग करेंगे। मुझे नहीं लगता कि यह स्पष्ट था, हालांकि,क्या उन्हें उम्मीद है कि प्रोग्रामर हमेशा उस बूँद को एक निश्चित स्थान पर एक निश्चित नाम के साथ एक फ़ाइल में डाल देंगे ताकि इसे वैकल्पिक कार्यान्वयन के साथ प्रतिस्थापित किया जा सके, या वे प्रोग्रामर को इसके लिए आवंटित करने के लिए कितनी जगह की उम्मीद करते हैं।