BIOS इंटरप्ट कॉल: Difference between revisions
No edit summary |
No edit summary |
||
| Line 4: | Line 4: | ||
सभी कंप्यूटरों में, सॉफ्टवेयर निर्देश विधुत प्रवाह होने के क्षण से भौतिक हार्डवेयर (स्क्रीन, डिस्क, कीबोर्ड, आदि) को नियंत्रित करते हैं। पीसी में, BIOS, मदरबोर्ड पर ROM में पहले से लोड, सीपीयू के रीसेट होने के पश्चात् नियंत्रण कर लेता है, जिसमें पावर-अप के समय, जब हार्डवेयर रीसेट बटन दबाया जाता है, या जब महत्वपूर्ण सॉफ़्टवेयर विफलता ([[ ट्रिपल दोष | ट्रिपल दोष]] ) होती है हार्डवेयर रीसेट को स्वचालित रूप से ट्रिगर करने के लिए मेनबोर्ड सर्किट्री का कारण बनता है। BIOS हार्डवेयर का परीक्षण करता है और इसकी स्थिति को आरंभ करता है। बूट प्रोग्राम खोजता है, लोड करता है और चलाता है (सामान्यतः OS बूट लोडर, और ऐतिहासिक [[ROM BASIC]]) और मशीन पर चलने वाले सॉफ़्टवेयर को प्रारंभिक हार्डवेयर नियंत्रण प्रदान करता है। जो सामान्यतः ऑपरेटिंग सिस्टम (एप्लिकेशन प्रोग्राम के साथ) होता है, किन्तु यह सीधे बूटिंग एकल सॉफ़्टवेयर एप्लिकेशन हो सकता है। | सभी कंप्यूटरों में, सॉफ्टवेयर निर्देश विधुत प्रवाह होने के क्षण से भौतिक हार्डवेयर (स्क्रीन, डिस्क, कीबोर्ड, आदि) को नियंत्रित करते हैं। पीसी में, BIOS, मदरबोर्ड पर ROM में पहले से लोड, सीपीयू के रीसेट होने के पश्चात् नियंत्रण कर लेता है, जिसमें पावर-अप के समय, जब हार्डवेयर रीसेट बटन दबाया जाता है, या जब महत्वपूर्ण सॉफ़्टवेयर विफलता ([[ ट्रिपल दोष | ट्रिपल दोष]] ) होती है हार्डवेयर रीसेट को स्वचालित रूप से ट्रिगर करने के लिए मेनबोर्ड सर्किट्री का कारण बनता है। BIOS हार्डवेयर का परीक्षण करता है और इसकी स्थिति को आरंभ करता है। बूट प्रोग्राम खोजता है, लोड करता है और चलाता है (सामान्यतः OS बूट लोडर, और ऐतिहासिक [[ROM BASIC]]) और मशीन पर चलने वाले सॉफ़्टवेयर को प्रारंभिक हार्डवेयर नियंत्रण प्रदान करता है। जो सामान्यतः ऑपरेटिंग सिस्टम (एप्लिकेशन प्रोग्राम के साथ) होता है, किन्तु यह सीधे बूटिंग एकल सॉफ़्टवेयर एप्लिकेशन हो सकता है। | ||
आईबीएम के भाग के लिए, उन्होंने प्रारंभिक आईबीएम पीसी मॉडल (पीएस / 2 से पहले) प्रोग्रामिंग करते समय अपने BIOS को पूर्ण प्रकार से उपयोग करने या सीधे हार्डवेयर का उपयोग करने और BIOS से पूर्ण प्रकार से बचने के लिए आवश्यक सभी जानकारी प्रदान की जाती है। चूँकि प्रारंभ से ही, प्रोग्रामर के पास प्रति-हार्डवेयर-परिधीय आधार पर BIOS का उपयोग करने या न करने का विकल्प था। अतः आईबीएम ने अच्छी प्रकार से व्यवहार किए गए कार्यक्रमों के लेखन को दृढ़ता से प्रोत्साहित किया था। जो केवल BIOS इंटरप्ट कॉल (और DOS सेवा कॉल) के माध्यम से हार्डवेयर तक पहुंचे थे। जो उपस्तिथा और भविष्य के पीसी मॉडल के साथ सॉफ्टवेयर की अनुकूलता का समर्थन करने के लिए असमान परिधीय हार्डवेयर वाले थे। किन्तु आईबीएम ने समझा कि कुछ सॉफ्टवेयर डेवलपर्स के लिए और हार्डवेयर ग्राहक, हार्डवेयर को सीधे नियंत्रित करने के लिए उपयोगकर्ता सॉफ़्टवेयर की क्षमता आवश्यकता थी। आंशिक रूप से, यह जिससे की था। जिससे की BIOS सेवाओं द्वारा सभी हार्डवेयर सुविधाओं और कार्यों का महत्वपूर्ण उपसमुच्चय उजागर नहीं किया गया था। दो उदाहरणों के लिए ( | आईबीएम के भाग के लिए, उन्होंने प्रारंभिक आईबीएम पीसी मॉडल (पीएस / 2 से पहले) प्रोग्रामिंग करते समय अपने BIOS को पूर्ण प्रकार से उपयोग करने या सीधे हार्डवेयर का उपयोग करने और BIOS से पूर्ण प्रकार से बचने के लिए आवश्यक सभी जानकारी प्रदान की जाती है। चूँकि प्रारंभ से ही, प्रोग्रामर के पास प्रति-हार्डवेयर-परिधीय आधार पर BIOS का उपयोग करने या न करने का विकल्प था। अतः आईबीएम ने अच्छी प्रकार से व्यवहार किए गए कार्यक्रमों के लेखन को दृढ़ता से प्रोत्साहित किया था। जो केवल BIOS इंटरप्ट कॉल (और DOS सेवा कॉल) के माध्यम से हार्डवेयर तक पहुंचे थे। जो उपस्तिथा और भविष्य के पीसी मॉडल के साथ सॉफ्टवेयर की अनुकूलता का समर्थन करने के लिए असमान परिधीय हार्डवेयर वाले थे। किन्तु आईबीएम ने समझा कि कुछ सॉफ्टवेयर डेवलपर्स के लिए और हार्डवेयर ग्राहक, हार्डवेयर को सीधे नियंत्रित करने के लिए उपयोगकर्ता सॉफ़्टवेयर की क्षमता आवश्यकता थी। आंशिक रूप से, यह जिससे की था। जिससे की BIOS सेवाओं द्वारा सभी हार्डवेयर सुविधाओं और कार्यों का महत्वपूर्ण उपसमुच्चय उजागर नहीं किया गया था। दो उदाहरणों के लिए (अनेक के मध्य), एमडीए और सीजीए एडेप्टर हार्डवेयर स्क्रॉल करने में सक्षम हैं और पीसी सीरियल एडेप्टर बाधित-संचालित डेटा ट्रांसफर में सक्षम है। किन्तु आईबीएम BIOS इनमें से किसी भी उपयोगी तकनीकी सुविधा का समर्थन नहीं करता है। | ||
आज, नए पीसी में BIOS अभी भी आईबीएम पर्सनल कंप्यूटर/एटी (सन्न 1984 में प्रारंभ) के लिए आईबीएम द्वारा परिभाषित BIOS इंटरप्ट फ़ंक्शन कॉल्स का सबसे अधिक समर्थन करता है। यदि सभी नहीं, तब | आज, नए पीसी में BIOS अभी भी आईबीएम पर्सनल कंप्यूटर/एटी (सन्न 1984 में प्रारंभ) के लिए आईबीएम द्वारा परिभाषित BIOS इंटरप्ट फ़ंक्शन कॉल्स का सबसे अधिक समर्थन करता है। यदि सभी नहीं, तब अनेक और नए लोगों के साथ इनमें से कुछ के लिए प्रारूप विभिन्न अन्य संगठनों और सहयोगी उद्योग समूहों द्वारा प्रख्यापित मूल (जैसे विस्तारित पैरामीटर रेंज) है। यह हार्डवेयर संगतता की समान डिग्री के साथ मिलकर कार्य करता है। इसका तात्पर्य है कि आईबीएम एटी के लिए लिखे गए अधिकांश प्रोग्राम आज भी नए पीसी पर सही प्रकार से चल सकते हैं। अतः यह मानते हुए कि निष्पादन की तेज गति स्वीकार्य है (जो सामान्यतः सभी खेलों के लिए है जो उपयोग करते हैं सीपीयू-आधारित समय)। BIOS इंटरप्ट्स के माध्यम से एक्सेस की जाने वाली सेवाओं की अधिक सीमाओं के अतिरिक्त, वे तकनीकी परिवर्तन के लिए अधिक उपयोगी और स्थायी सिद्ध करना हुए हैं। | ||
== BIOS कॉल का उद्देश्य == | == BIOS कॉल का उद्देश्य == | ||
BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, [[SCSI]], या [[SATA]] ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या [[संशोधित आवृत्ति मॉड्यूलेशन]] या [[रन लेंथ लिमिटेड]] ड्राइव संभवतः सीगेट [[ST-506]] नियंत्रक के साथ, संभवतः | BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, [[SCSI]], या [[SATA]] ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या [[संशोधित आवृत्ति मॉड्यूलेशन|संशोधित आवृत्ति मापांकेशन]] या [[रन लेंथ लिमिटेड]] ड्राइव संभवतः सीगेट [[ST-506]] नियंत्रक के साथ, संभवतः अनेक पश्चिमी डिजिटल सन्न 1980 के नियंत्रक प्रकारों में से एक, या किसी अन्य ब्रांड के भिन्न अधिकार-संबंधी नियंत्रक के साथ)। प्रोग्राम को केवल उस ड्राइव की BIOS-परिभाषित संख्या की पहचान करने की आवश्यकता है। जिसे वह एक्सेस करना चाहता है और उस क्षेत्र के पते को पढ़ने या लिखने की आवश्यकता है और BIOS इस सामान्य अनुरोध को प्राथमिक संचालन के विशिष्ट अनुक्रम में अनुवाद करने का ध्यान रखता है। उस ड्राइव से जुड़े विशेष डिस्क नियंत्रक हार्डवेयर के माध्यम से कार्य को पूर्ण करने के लिए प्रोग्राम को प्रत्येक प्रकार की हार्ड डिस्क (या डिस्प्ले एडॉप्टर, या पोर्ट इंटरफ़ेस, या वास्तविक समय घड़ी परिधीय) को निम्न स्तर पर नियंत्रित करने के बारे में जानने की आवश्यकता से मुक्त किया गया है। जिसे एक्सेस करने की आवश्यकता हो सकती है। यह प्रोग्रामिंग ऑपरेटिंग सिस्टम और एप्लिकेशन दोनों को सरल बनाता है और प्रोग्राम को छोटा बनाता है। प्रोग्राम कोड के दोहराव को कम करता है, जिस कारण BIOS में सम्मिलित कार्यक्षमता को प्रत्येक प्रोग्राम में सम्मिलित करने की आवश्यकता नहीं होती है। जिसकी उसे आवश्यकता होती है, उसे इसके अतिरिक्त BIOS में अपेक्षाकृत कम कॉल को प्रोग्राम में सम्मिलित किया जाता है। (ऑपरेटिंग सिस्टम में जहां BIOS का उपयोग नहीं किया जाता है। वहा ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सर्विस कॉल सामान्यतः समान कार्य और उद्देश्य को पूर्ण करती हैं।) | ||
सामान्यतः उपस्तिथा सॉफ़्टवेयर के साथ अनुकूलता बनाए रखने के लिए नए सिस्टम को डिज़ाइन करते समय पुराने सिस्टम के साथ त्रुटिहीन हार्डवेयर संगतता बनाए रखने के लिए BIOS कंप्यूटर हार्डवेयर डिजाइनरों (इस तक कि प्रोग्राम विशेष रूप से BIOS का उपयोग करने के लिए लिखे गए हैं) को मुक्त करता है। उदाहरण के लिए, [[IBM PCjr|आईबीएम पीसीजेआर]] पर कीबोर्ड हार्डवेयर पहले के आईबीएम पीसी मॉडल के कीबोर्ड हार्डवेयर की तुलना में बहुत भिन्न विधि से कार्य करता है। किन्तु उन प्रोग्रामों के लिए जो केवल BIOS के माध्यम से कीबोर्ड का उपयोग करते हैं, यह अंतर लगभग अदृश्य है। (इस विवाद के दूसरे पक्ष के अच्छे उदाहरण के रूप में, पीसीजेआर प्रस्तुत किए जाने के समय उपयोग में आने वाले पीसी प्रोग्रामों का महत्वपूर्ण भाग विशेष रूप से BIOS के माध्यम से कीबोर्ड का उपयोग नहीं करता था, जिससे की आईबीएम ने पीसीजेआर में हार्डवेयर सुविधाओं को भी सम्मिलित किया जिससे कि इसका अनुकरण किया जा सकता है। जिस प्रकार आईबीएम पर्सनल कंप्यूटर और आईबीएम पर्सनल कंप्यूटर एक्सटी कीबोर्ड हार्डवेयर कार्य करता है। हार्डवेयर अनुकरण त्रुटिहीन नहीं है, जिससे की सभी प्रोग्राम जो सीधे कीबोर्ड हार्डवेयर का उपयोग करने का प्रयास करते हैं, पीसीजेआर पर सही प्रकार से कार्य करते है, किन्तु सभी प्रोग्राम जो केवल BIOS कीबोर्ड सेवाओं का उपयोग करते हैं।) | सामान्यतः उपस्तिथा सॉफ़्टवेयर के साथ अनुकूलता बनाए रखने के लिए नए सिस्टम को डिज़ाइन करते समय पुराने सिस्टम के साथ त्रुटिहीन हार्डवेयर संगतता बनाए रखने के लिए BIOS कंप्यूटर हार्डवेयर डिजाइनरों (इस तक कि प्रोग्राम विशेष रूप से BIOS का उपयोग करने के लिए लिखे गए हैं) को मुक्त करता है। उदाहरण के लिए, [[IBM PCjr|आईबीएम पीसीजेआर]] पर कीबोर्ड हार्डवेयर पहले के आईबीएम पीसी मॉडल के कीबोर्ड हार्डवेयर की तुलना में बहुत भिन्न विधि से कार्य करता है। किन्तु उन प्रोग्रामों के लिए जो केवल BIOS के माध्यम से कीबोर्ड का उपयोग करते हैं, यह अंतर लगभग अदृश्य है। (इस विवाद के दूसरे पक्ष के अच्छे उदाहरण के रूप में, पीसीजेआर प्रस्तुत किए जाने के समय उपयोग में आने वाले पीसी प्रोग्रामों का महत्वपूर्ण भाग विशेष रूप से BIOS के माध्यम से कीबोर्ड का उपयोग नहीं करता था, जिससे की आईबीएम ने पीसीजेआर में हार्डवेयर सुविधाओं को भी सम्मिलित किया जिससे कि इसका अनुकरण किया जा सकता है। जिस प्रकार आईबीएम पर्सनल कंप्यूटर और आईबीएम पर्सनल कंप्यूटर एक्सटी कीबोर्ड हार्डवेयर कार्य करता है। हार्डवेयर अनुकरण त्रुटिहीन नहीं है, जिससे की सभी प्रोग्राम जो सीधे कीबोर्ड हार्डवेयर का उपयोग करने का प्रयास करते हैं, पीसीजेआर पर सही प्रकार से कार्य करते है, किन्तु सभी प्रोग्राम जो केवल BIOS कीबोर्ड सेवाओं का उपयोग करते हैं।) | ||
हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, BIOS अतिरिक्त सुविधाएं प्रदान करता है। जो कि BIOS सॉफ़्टवेयर में कार्यान्वित की जाती हैं। उदाहरण के लिए, BIOS आठ टेक्स्ट डिस्प्ले पेजों के लिए भिन्न-भिन्न कर्सर की स्थिति रखता है और स्वचालित लाइन रैप के साथ [[कंप्यूटर टर्मिनल]] जैसा आउटपुट प्रदान करता है और कैरिज रिटर्न और रेखा भरण जैसे बुनियादी नियंत्रण वर्णों की व्याख्या करता है। जबकि सीजीए-संगत टेक्स्ट डिस्प्ले हार्डवेयर केवल वैश्विक प्रदर्शन कर्सर है और स्वचालित रूप से कर्सर को आगे नहीं बढ़ा सकता है। अतः प्रदर्शन मेमोरी को संबोधित करने के लिए कर्सर की स्थिति का उपयोग करते है (जिससे कि यह निर्धारित किया जा सकता है कि कौन सा वर्ण सेल परिवर्तित या जांचा जा सकता है।), जो नियंत्रण वर्णों की व्याख्या करता है। अन्य उदाहरण के लिए, BIOS कीबोर्ड इंटरफ़ेस विभिन्न शिफ्ट स्टेट्स (बाएं और दाएं Shift, Ctrl, और Alt) का ट्रैक रखने के लिए | हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, BIOS अतिरिक्त सुविधाएं प्रदान करता है। जो कि BIOS सॉफ़्टवेयर में कार्यान्वित की जाती हैं। उदाहरण के लिए, BIOS आठ टेक्स्ट डिस्प्ले पेजों के लिए भिन्न-भिन्न कर्सर की स्थिति रखता है और स्वचालित लाइन रैप के साथ [[कंप्यूटर टर्मिनल]] जैसा आउटपुट प्रदान करता है और कैरिज रिटर्न और रेखा भरण जैसे बुनियादी नियंत्रण वर्णों की व्याख्या करता है। जबकि सीजीए-संगत टेक्स्ट डिस्प्ले हार्डवेयर केवल वैश्विक प्रदर्शन कर्सर है और स्वचालित रूप से कर्सर को आगे नहीं बढ़ा सकता है। अतः प्रदर्शन मेमोरी को संबोधित करने के लिए कर्सर की स्थिति का उपयोग करते है (जिससे कि यह निर्धारित किया जा सकता है कि कौन सा वर्ण सेल परिवर्तित या जांचा जा सकता है।), जो नियंत्रण वर्णों की व्याख्या करता है। अन्य उदाहरण के लिए, BIOS कीबोर्ड इंटरफ़ेस विभिन्न शिफ्ट स्टेट्स (बाएं और दाएं Shift, Ctrl, और Alt) का ट्रैक रखने के लिए अनेक कीस्ट्रोक्स और कुंजी संयोजनों की व्याख्या करता है। Shift+PrtScrn के पूर्व होने पर प्रिंट-स्क्रीन सेवा को कॉल करने के लिए, सिस्टम को रिबूट करने के लिए जब Ctrl+Alt+Del दबाया जाता है। लॉक स्टेट्स (कैप्स लॉक, न्यूम लॉक और स्क्रॉल लॉक) का ट्रैक रखने के लिए और एटी-क्लास मशीनों में, संबंधित लॉक-स्टेट इंडिकेटर लाइट्स को नियंत्रित करते है। कीबोर्ड, और कीबोर्ड के लिए अन्य समान व्याख्यात्मक और प्रबंधन कार्य करने के लिए। इसके विपरीत, मानक पीसी और पीसी-एटी कीबोर्ड हार्डवेयर की सामान्य क्षमताएं सिस्टम को गणना करने तक सीमित होती हैं। जिसमें व्यक्तिगत कुंजी को दबाने या जारी करने की प्रत्येक आदिम घटना होती है। (अर्थात जारी स्थिति से उदास स्थिति या इसके विपरीत संक्रमण करना) ), कीबोर्ड इकाई का कमांड्ड रीसेट और आत्म परीक्षण करना, और एटी-क्लास कीबोर्ड के लिए, लॉक-स्टेट इंडिकेटर्स (एलईडी) की पूर्ण स्थिति सेट करने के लिए होस्ट सिस्टम से कमांड निष्पादित करना होता है। | ||
== कॉलिंग BIOS: BIOS सॉफ़्टवेयर बाधित होता है == | == कॉलिंग BIOS: BIOS सॉफ़्टवेयर बाधित होता है == | ||
| Line 20: | Line 20: | ||
मुख्य-लाइन प्रोग्राम को निष्पादित करना बंद करने और इसके अतिरिक्त इंटरप्ट सर्विस रूटीन (आईएसआर) नामक विशेष प्रोग्राम को तुरंत निष्पादित करने का निर्देश दिया गया था। चूँकि आईएसआर समाप्त होने के पश्चात्, सीपीयू मुख्य प्रोग्राम के साथ जारी रहता है। अतः X86 सीपीयू पर जब कोई व्यवधान उत्पन्न होता है, तब कॉल करने के लिए आईएसआर को स्मृति में आईएसआर प्रारंभ-बिंदु पतों (इंटरप्ट सदिश कहा जाता है) की तालिका में देखकर पाया जाता है कि [[ व्यवधान सदिश तालिका |व्यवधान सदिश तालिका]] (आईवीटी) में इसके टाइप नंबर द्वारा 0 से 255 तक इंटरप्ट का आह्वान किया जाता है और टाइप नंबर को इंटरप्ट सदिश तालिका में इंडेक्स के रूप में उपयोग किया जाता है और उस इंडेक्स में तालिका में आईएसआर का पता पाया जाता है। जो प्रतिक्रिया में चलाया जाता है। अतः रुकावट सॉफ्टवेयर इंटरप्ट केवल इंटरप्ट है। जो सॉफ्टवेयर कमांड द्वारा ट्रिगर किया जाता है। जिससे की, सॉफ्टवेयर सबरूटीन्स जैसे कार्य को बाधित करता है, मुख्य अंतर यह है कि सॉफ्टवेयर इंटरप्ट कॉल करने वाले प्रोग्राम को आईएसआर का पता जानने की जरूरत नहीं है, केवल इसकी इंटरप्ट संख्या सिस्टम व्यवस्था के प्रारूप में प्रतिरूपकता, अनुकूलता और लचीलेपन के लिए इसके लाभ हैं। | मुख्य-लाइन प्रोग्राम को निष्पादित करना बंद करने और इसके अतिरिक्त इंटरप्ट सर्विस रूटीन (आईएसआर) नामक विशेष प्रोग्राम को तुरंत निष्पादित करने का निर्देश दिया गया था। चूँकि आईएसआर समाप्त होने के पश्चात्, सीपीयू मुख्य प्रोग्राम के साथ जारी रहता है। अतः X86 सीपीयू पर जब कोई व्यवधान उत्पन्न होता है, तब कॉल करने के लिए आईएसआर को स्मृति में आईएसआर प्रारंभ-बिंदु पतों (इंटरप्ट सदिश कहा जाता है) की तालिका में देखकर पाया जाता है कि [[ व्यवधान सदिश तालिका |व्यवधान सदिश तालिका]] (आईवीटी) में इसके टाइप नंबर द्वारा 0 से 255 तक इंटरप्ट का आह्वान किया जाता है और टाइप नंबर को इंटरप्ट सदिश तालिका में इंडेक्स के रूप में उपयोग किया जाता है और उस इंडेक्स में तालिका में आईएसआर का पता पाया जाता है। जो प्रतिक्रिया में चलाया जाता है। अतः रुकावट सॉफ्टवेयर इंटरप्ट केवल इंटरप्ट है। जो सॉफ्टवेयर कमांड द्वारा ट्रिगर किया जाता है। जिससे की, सॉफ्टवेयर सबरूटीन्स जैसे कार्य को बाधित करता है, मुख्य अंतर यह है कि सॉफ्टवेयर इंटरप्ट कॉल करने वाले प्रोग्राम को आईएसआर का पता जानने की जरूरत नहीं है, केवल इसकी इंटरप्ट संख्या सिस्टम व्यवस्था के प्रारूप में प्रतिरूपकता, अनुकूलता और लचीलेपन के लिए इसके लाभ हैं। | ||
BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के | BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के मध्य संदेश भेजने के लिए तंत्र के रूप में माना जा सकता है। संदेश BIOS से डेटा या कार्रवाई का अनुरोध करते हैं और अनुरोधित डेटा, स्थिति की जानकारी या अनुरोधित कार्रवाई के उत्पाद को कॉलर को वापस करते हैं। संदेशों को श्रेणियों में बांटा गया है। जिनमें से प्रत्येक की अपनी रुकावट संख्या है और अधिकांश श्रेणियों में उप-श्रेणियां होती हैं। जिन्हें फ़ंक्शन कहा जाता है और फ़ंक्शन संख्याओं द्वारा पहचाना जाता है। BIOS क्लाइंट अधिकांश सूचनाओं को सीपीयू रजिस्टरों में BIOS को पास करता है और उसी प्रकार से अधिकांश जानकारी वापस प्राप्त करता है। किन्तु रजिस्टरों में फिट होने के लिए बहुत बड़ा डेटा, जैसे नियंत्रण मापदंडों की तालिका या डिस्क ट्रांसफर के लिए डिस्क सेक्टर डेटा, बफर आवंटित करके पारित किया जाता है। (अर्थात कुछ स्थान) स्मृति में और रजिस्टरों में बफर के पते को पास करना होता है। (कभी-कभी मेमोरी में डेटा वस्तु के एकाधिक पते मेमोरी में डेटा संरचना में पास किए जा सकते हैं। उस संरचना के पते रजिस्टरों में BIOS को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट निर्देश (इंटेल असेंबली भाषा में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। इंटरप्ट निर्देश और फ़ंक्शन संख्या एएच रजिस्टर में निर्दिष्ट है अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं। किन्तु इंटरप्ट सेवा के अंदर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु पुनर्वित्त (कंप्यूटिंग) के लिए प्रासंगिक है।) | ||
BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता | BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता है। यदि सफल नहीं होता है या स्थिति कोड और/या सफल होने पर अनुरोधित डेटा के साथ डेटा स्वयं बिट जितना छोटा या पूरे कच्चे डिस्क क्षेत्रों के 65,536 बाइट्स जितना बड़ा हो सकता है। (अधिकतम जो वास्तविक-मोड मेमोरी सेगमेंट में फिट होता है।) चूँकि अनेक भिन्न-भिन्न कॉरपोरेट संस्थाओं द्वारा BIOS को अनेक वर्षों में अनेक बार विस्तारित और बढ़ाया गया है और दुर्भाग्य से इस विकास का परिणाम यह है कि सभी BIOS फ़ंक्शंस जिन्हें डेटा को प्रारूपित करने और संचार करने या परिणामों की गणना करने के लिए सुसंगत सम्मेलनों का उपयोग नहीं कहा जा सकता है। कुछ BIOS फ़ंक्शन विस्तृत स्थिति जानकारी की गणना करते हैं। चूँकि अन्य सफलता या विफलता की गणना भी नहीं कर सकते हैं। किन्तु कॉल करने वाले को सफलता मानने के लिए (या किसी अन्य विधि से परिणाम का परीक्षण करने के लिए) शांतिपूर्वक वापस लौटते हैं। कभी-कभी यह निर्धारित करने में कठिनाई हो सकती है कि निश्चित कंप्यूटर पर BIOS द्वारा निश्चित BIOS फ़ंक्शन कॉल समर्थित है या नहीं, या उस कंप्यूटर पर कॉल के पैरामीटर की सीमा क्या है। (कुछ अमान्य फ़ंक्शन नंबरों के लिए, या प्रमुख मापदंडों के अमान्य मानों के साथ मान्य फ़ंक्शन नंबर - विशेष रूप से प्रारंभिक आईबीएम BIOS संस्करण के साथ - BIOS कुछ भी नहीं कर सकता है और बिना किसी त्रुटि कोड के वापस आ सकता है। तो यह [असुविधाजनक किन्तु अपरिहार्य] जिम्मेदारी है कॉलर या तो ऐसी कॉल न करके इस स्थिति से बचने के लिए या कॉल के प्रभावी होने के अतिरिक्त कॉल के अपेक्षित प्रभाव के लिए सकारात्मक रूप से परीक्षण करने के लिए होता है। जिससे कि BIOS अपने इतिहास में अनेक चरणों में बड़े मापक पर विकसित हुआ है। अतः फ़ंक्शन जो मान्य है। वह कुछ निश्चित विक्रेता से BIOS संस्करण उसी विक्रेता से या किसी अन्य विक्रेता से किसी भी संबंधित आयु के BIOS संस्करण में पहले या भिन्न-भिन्न BIOS संस्करण में मान्य नहीं हो सकता है।) | ||
जिससे कि BIOS इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं। कॉल असेंबली भाषा से किए जाने के लिए उन्मुख होते हैं और अधिकांश [[उच्च स्तरीय प्रोग्रामिंग भाषा]] उच्च स्तरीय भाषा (एचएलएल) से नहीं किए जा सकते हैं। चूँकि उच्च स्तरीय भाषा रैपर रूटीन में पुस्तकालय प्रदान कर सकती है। जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है। फिर एचएलएल [[कॉलिंग कन्वेंशन]] के बाद BIOS रिटर्न सी के कुछ रूपों में सी मापांक के अंदर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का भाग नहीं है किन्तु भाषा विस्तार है। जिससे की इनलाइन असेंबली भाषा का उपयोग करने वाले सी मापांक शुद्ध एएनएसआई मानक सी मापांक से कम पोर्तालिका हैं।) | |||
=== रुकावट का आह्वान === | === रुकावट का आह्वान === | ||
इंटरप्ट x86 असेंबली भाषा निर्देश का उपयोग करके रुकावट का आह्वान किया जा सकता है। उदाहरण के लिए, BIOS इंटरप्ट 0x10 का उपयोग कर स्क्रीन पर वर्ण को प्रिंट करने के लिए निम्नलिखित x86 असेंबली भाषा निर्देशों को निष्पादित किया जा सकता है। | |||
<syntaxhighlight lang="nasm"> | <syntaxhighlight lang="nasm"> | ||
| Line 36: | Line 36: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== इंटरप्ट तालिका == | |||
{{main|इंटरप्ट सदिश तालिका}} | |||
{{main| | |||
सामान्य BIOS इंटरप्ट क्लासेस की सूची नीचे पाई जा सकती है। ध्यान दें कि कुछ BIOS (विशेष रूप से पुराने वाले) इन सभी इंटरप्ट कक्षाओं को प्रयुक्त नहीं करते हैं। | सामान्य BIOS इंटरप्ट क्लासेस की सूची नीचे पाई जा सकती है। ध्यान दें कि कुछ BIOS (विशेष रूप से पुराने वाले) इन सभी इंटरप्ट कक्षाओं को प्रयुक्त नहीं करते हैं। | ||
BIOS उन प्रोग्रामों में हार्डवेयर ईवेंट इंटरप्ट्स को रिले करने के लिए कुछ इंटरप्ट्स का भी उपयोग करता | BIOS उन प्रोग्रामों में हार्डवेयर ईवेंट इंटरप्ट्स को रिले करने के लिए कुछ इंटरप्ट्स का भी उपयोग करता है। जो उन्हें प्राप्त करना चाहते हैं या संदेशों को अपने स्वयं के उपयोग के लिए रूट करते हैं। नीचे दी गई तालिका में केवल वे BIOS इंटरप्ट सम्मिलित हैं। जो सेवाओं या जानकारी का अनुरोध करने के लिए प्रोग्राम (इंटरप्ट असेंबली-भाषा सॉफ़्टवेयर इंटरप्ट निर्देश का उपयोग करके) द्वारा बुलाए जाने के लिए अभिप्रेत हैं। | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | !इंटरप्ट सदिश | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|05h}} | |{{Code|05h}} | ||
| | |जब [[Shift-Printerpt]] स्क्रीन को दबाया जाता हैऔर इसके साथ ही जब बाउंड निर्देश बाउंड विफलता का पता लगाता है, तब इसे निष्पादित किया जाता है। | ||
|- | |- | ||
|{{Code|08h}} | |{{Code|08h}} | ||
| | |यह वास्तविक समय घड़ी इंटरप्ट है। यह 18.2 बार/सेकंड फायर करता है। इस इंटरप्ट के समय BIOS समय-समय पर काउंटर बढ़ाता है। | ||
|- | |- | ||
|{{Code|09h}} | |{{Code|09h}} | ||
| | |यह कीबोर्ड इंटरप्ट है। यह समान्यतः तब ट्रिगर होता है जब कीबोर्ड पर कोई कुंजी दबाई जाती है। | ||
|- | |- | ||
|[[INT 10H|{{Code|10h}}]] | |[[INT 10H|{{Code|10h}}]] | ||
| | |वीडियो सेवाएं | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
! | !एएच | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | |वीडियो मोड सेट करें। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |कर्सर का आकार सेट करें। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | |कर्सर की स्थिति निर्धारित करें। | ||
|- | |- | ||
|{{Code|03h}} | |{{Code|03h}} | ||
| | |कर्सर की स्थिति और आकार प्राप्त करें। | ||
|- | |- | ||
|{{Code|04h}} | |{{Code|04h}} | ||
| | |लाइट पेन स्थिति प्राप्त करें। | ||
|- | |- | ||
|{{Code|05h}} | |{{Code|05h}} | ||
| | |प्रदर्शन पृष्ठ सेट करें। | ||
|- | |- | ||
|{{Code|06h}} | |{{Code|06h}} | ||
| | |स्पष्ट / स्क्रॉल स्क्रीन ऊपर। | ||
|- | |- | ||
|{{Code|07h}} | |{{Code|07h}} | ||
| | |स्पष्ट / स्क्रॉल स्क्रीन नीचे। | ||
|- | |- | ||
|{{Code|08h}} | |{{Code|08h}} | ||
| | |कर्सर पर चरित्र और गुण पढ़ें। | ||
|- | |- | ||
|{{Code|09h}} | |{{Code|09h}} | ||
| | |कर्सर पर कैरेक्टर और एट्रिब्यूट लिखें। | ||
|- | |- | ||
|{{Code|0Ah}} | |{{Code|0Ah}} | ||
| | |कर्सर पर कैरेक्टर लिखें। | ||
|- | |- | ||
|{{Code|0Bh}} | |{{Code|0Bh}} | ||
| | |बॉर्डर कलर सेट करें। | ||
|- | |- | ||
|{{Code|0Ch}} | |{{Code|0Ch}} | ||
| | |ग्राफिक्स पिक्सेल लिखें। | ||
|- | |- | ||
|{{Code|0Dh}} | |{{Code|0Dh}} | ||
| | |ग्राफिक्स पिक्सेल पढ़ें। | ||
|- | |- | ||
|{{Code|0Eh}} | |{{Code|0Eh}} | ||
| | |टीटीवाई मोड में कैरेक्टर लिखें। | ||
|- | |- | ||
|{{Code|0Fh}} | |{{Code|0Fh}} | ||
| | |वीडियो मोड प्राप्त करें। | ||
|- | |- | ||
|{{Code|10h}} | |{{Code|10h}} | ||
| | |पैलेट रजिस्टर सेट करें (ईजीए, वीजीए, एसवीजीए)। | ||
|- | |- | ||
|{{Code|11h}} | |{{Code|11h}} | ||
| | |कैरेक्टर जेनरेटर (ईजीए, वीजीए, एसवीजीए)। | ||
|- | |- | ||
|{{Code|12h}} | |{{Code|12h}} | ||
| | |वैकल्पिक चयन कार्य (ईजीए, वीजीए, एसवीजीए)। | ||
|- | |- | ||
|{{Code|13h}} | |{{Code|13h}} | ||
| | |स्ट्रिंग लिखें। | ||
|- | |- | ||
|{{Code|1Ah}} | |{{Code|1Ah}} | ||
| | |प्रदर्शन संयोजन कोड प्राप्त करें या सेट करें (वीजीए, एसवीजीए)। | ||
|- | |- | ||
|{{Code|1Bh}} | |{{Code|1Bh}} | ||
| | |कार्यक्षमता जानकारी प्राप्त करें (वीजीए, एसवीजीए)। | ||
|- | |- | ||
|{{Code|1Ch}} | |{{Code|1Ch}} | ||
| | |वीडियो स्थिति प्राप्त करे या पुनर्स्थापित करें (VGA, SVGA)। | ||
|- | |- | ||
|{{Code|4Fh}} | |{{Code|4Fh}} | ||
|[[VESA BIOS | |[[VESA BIOS विस्तार]] कार्य (SVGA)। | ||
|} | |} | ||
|- | |- | ||
|{{Code|11h}} | |{{Code|11h}} | ||
| | |उपकरण सूची वापस करता है। | ||
|- | |- | ||
|{{Code|12h}} | |{{Code|12h}} | ||
| | |[[पारंपरिक स्मृति]] आकार वापस करे। | ||
|- | |- | ||
|[[INT 13H|{{Code|13h}}]] | |[[INT 13H|{{Code|13h}}]] | ||
| | |निम्न स्तर की डिस्क सेवाएँ | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएच}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | |डिस्क ड्राइव को रीसेट करें। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |ड्राइव स्थिति खोज करता है। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | |सेक्टर्स पढ़ें। | ||
|- | |- | ||
|{{Code|03h}} | |{{Code|03h}} | ||
| | |सेक्टर लिखें। | ||
|- | |- | ||
|{{Code|04h}} | |{{Code|04h}} | ||
| | |सेक्टरों को सत्यापित करें। | ||
|- | |- | ||
|{{Code|05h}} | |{{Code|05h}} | ||
| | |प्रारूप ट्रैक। | ||
|- | |- | ||
|{{Code|08h}} | |{{Code|08h}} | ||
| | |ड्राइव पैरामीटर प्राप्त करें। | ||
|- | |- | ||
|{{Code|09h}} | |{{Code|09h}} | ||
| | |इनिट फिक्स्ड ड्राइव पैरामीटर्स। | ||
|- | |- | ||
|{{Code|0Ch}} | |{{Code|0Ch}} | ||
| | |निर्दिष्ट ट्रैक की खोज करें। | ||
|- | |- | ||
|{{Code|0Dh}} | |{{Code|0Dh}} | ||
| | |फ़िक्स्ड डिस्क नियंत्रक को रीसेट करें। | ||
|- | |- | ||
|{{Code|15h}} | |{{Code|15h}} | ||
| | |ड्राइव प्रकार प्राप्त करें। | ||
|- | |- | ||
|{{Code|16h}} | |{{Code|16h}} | ||
| | |फ्लॉपी ड्राइव मीडिया परिवर्तन स्थिति प्राप्त करें। | ||
|- | |- | ||
|{{Code|17h}} | |{{Code|17h}} | ||
| | |डिस्क प्रकार सेट करें। | ||
|- | |- | ||
|{{Code|18h}} | |{{Code|18h}} | ||
| | |फ़्लॉपी ड्राइव मीडिया प्रकार सेट करें। | ||
|- | |- | ||
|{{Code|41h}} | |{{Code|41h}} | ||
| | |विस्तारित डिस्क ड्राइव (ईडीडी) स्थापना जांच। | ||
|- | |- | ||
|{{Code|42h}} | |{{Code|42h}} | ||
| | |एक्सटेंडेड रीड सेक्टर्स। | ||
|- | |- | ||
|{{Code|43h}} | |{{Code|43h}} | ||
| | |विस्तारित लेखन क्षेत्र। | ||
|- | |- | ||
|{{Code|44h}} | |{{Code|44h}} | ||
| | |विस्तारित सत्यापित क्षेत्र। | ||
|- | |- | ||
|{{Code|45h}} | |{{Code|45h}} | ||
| | |लॉक/अनलॉक ड्राइव। | ||
|- | |- | ||
|{{Code|46h}} | |{{Code|46h}} | ||
| | |मीडिया को बाहर करो। | ||
|- | |- | ||
|{{Code|47h}} | |{{Code|47h}} | ||
| | |एक्सटेंडेड सीक। | ||
|- | |- | ||
|{{Code|48h}} | |{{Code|48h}} | ||
| | |एक्सटेंडेड गेट ड्राइव पैरामीटर्स। | ||
|- | |- | ||
|{{Code|49h}} | |{{Code|49h}} | ||
| | |एक्सटेंडेड मीडिया परिवर्तन स्थिति प्राप्त करें। | ||
|- | |- | ||
|{{Code|4Eh}} | |{{Code|4Eh}} | ||
| | |विस्तारित सेट हार्डवेयर कॉन्फ़िगरेशन। | ||
|} | |} | ||
|- | |- | ||
|{{Code|14h}} | |{{Code|14h}} | ||
| | |सीरियल पोर्ट सेवाएं | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएच}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | |सीरियल पोर्ट आरंभीकरण। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |संचारित चरित्र। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | |चरित्र प्राप्त करें। | ||
|- | |- | ||
|{{Code|03h}} | |{{Code|03h}} | ||
| | |स्थति। | ||
|} | |} | ||
|- | |- | ||
| Line 249: | Line 248: | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएच}} | ||
!{{Code| | !{{Code|एएल}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | | | ||
| | |कैसेट ड्राइव मोटर प्रारंभ करें (एजिएम पीसी/पीसीजेआर केवल)। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | | | ||
| | |कैसेट ड्राइव मोटर बंद करें (आईबीएम पीसी/पीसीजेआर केवल)। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | | | ||
| | |कैसेट से डेटा ब्लॉक पढ़ें (आईबीएम पीसी/पीसीजेआर केवल)। | ||
|- | |- | ||
|{{Code|03h}} | |{{Code|03h}} | ||
| | | | ||
| | |कैसेट में डेटा ब्लॉक लिखें (आईबीएम पीसी/पीसीजेआर केवल)। | ||
|- | |- | ||
|{{Code|4Fh}} | |{{Code|4Fh}} | ||
| | | | ||
| | |कीबोर्ड इंटरसेप्टर। | ||
|- | |- | ||
|{{Code|83h}} | |{{Code|83h}} | ||
| | | | ||
| | |प्रतीक्षा घटना। | ||
|- | |- | ||
|{{Code|84h}} | |{{Code|84h}} | ||
| | | | ||
| | |जॉयस्टिक पढ़ें (1986 से BIOS)। | ||
|- | |- | ||
|{{Code|85h}} | |{{Code|85h}} | ||
| | | | ||
|Sysreq | |Sysreq कुंजी कॉलआउट। | ||
|- | |- | ||
|{{Code|86h}} | |{{Code|86h}} | ||
| | | | ||
| | |प्रतीक्षा। | ||
|- | |- | ||
|{{Code|87h}} | |{{Code|87h}} | ||
| | | | ||
| | |मूव ब्लॉक। | ||
|- | |- | ||
|{{Code|88h}} | |{{Code|88h}} | ||
| | | | ||
| | |विस्तारित मेमोरी आकार प्राप्त करें। | ||
|- | |- | ||
|{{Code|89h}} | |{{Code|89h}} | ||
| | | | ||
| | |संरक्षित मोड पर स्विच करें। | ||
|- | |- | ||
|{{Code|C0h}} | |{{Code|C0h}} | ||
| | | | ||
| | |सिस्टम पैरामीटर प्राप्त करें। | ||
|- | |- | ||
|{{Code|C1h}} | |{{Code|C1h}} | ||
| | | | ||
| | |विस्तृत BIOS डेटा क्षेत्र खंड प्राप्त करें। | ||
|- | |- | ||
|{{Code|C2h}} | |{{Code|C2h}} | ||
| | | | ||
| | |डिवाइस के कार्यों को इंटरप्ट करना। | ||
|- | |- | ||
|{{Code|C3h}} | |{{Code|C3h}} | ||
| | | | ||
| | |वॉचडॉग टाइमर फ़ंक्शंस - केवल पीएस/2 सिस्टम। | ||
|- | |- | ||
|{{Code|C4h}} | |{{Code|C4h}} | ||
| | | | ||
| | |प्रोग्राम करने योग्य विकल्प चुनें - केवल एमसीए बस पीएस/2 सिस्टम। | ||
|- | |- | ||
|{{Code|D8h}} | |{{Code|D8h}} | ||
| | | | ||
|EISA सिस्टम फ़ंक्शंस - केवल EISA बस सिस्टम | |||
|- | |- | ||
|{{Code|E8h}} | |{{Code|E8h}} | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |एक्सटेंडेड मेमोरी साइज प्राप्त करें (नया फंक्शन, 1994 से)। 64 एमबी से अधिक मेमोरी आकार के लिए परिणाम देता है। | ||
|- | |- | ||
|{{Code|E8h}} | |{{Code|E8h}} | ||
|{{Code|20h}} | |{{Code|20h}} | ||
| | |क्वेरी सिस्टम एड्रेस मैप E820 से दी गई जानकारी पुराने AX=E801h और AH=88h इंटरप्टरफेस से दी गई जानकारी का स्थान लेती है। | ||
|} | |} | ||
|- | |- | ||
|[[INT 16H|{{Code|16h}}]] | |[[INT 16H|{{Code|16h}}]] | ||
| | |कीबोर्ड सेवाएं | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएच}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | |चरित्र पढ़ें। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |इनपुट स्थिति पढ़ें। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | |कीबोर्ड शिफ्ट स्थिति पढ़ें। | ||
|- | |- | ||
|{{Code|05h}} | |{{Code|05h}} | ||
| | |कीस्ट्रोक को कीबोर्ड बफर में स्टोर करें। | ||
|- | |- | ||
|{{Code|10h}} | |{{Code|10h}} | ||
| | |कैरेक्टर एक्सटेंडेड पढ़ें। | ||
|- | |- | ||
|{{Code|11h}} | |{{Code|11h}} | ||
| | |इनपुट स्थिति विस्तारित पढ़ें। | ||
|- | |- | ||
|{{Code|12h}} | |{{Code|12h}} | ||
| | |कीबोर्ड शिफ्ट स्थिति विस्तारित पढ़ें। | ||
|} | |} | ||
|- | |- | ||
|{{Code|17h}} | |{{Code|17h}} | ||
| | |Prइंटरप्टer services | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएच}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | |प्रइंट्राप्ट कैरेक्टर टू प्रइंट्राप्टर। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |प्रांप्टर को इनिशियलाइज़ करें। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | |प्रिंटर स्थिति की जाँच करें। | ||
|} | |} | ||
|- | |- | ||
|{{Code|18h}} | |{{Code|18h}} | ||
| | |कैसेट बेसिक निष्पादित करता है आईबीएम मशीनों पर शुरुआती पीएस/2 लाइन तक यह इंटरप्ट ROM कैसेट बेसिक प्रारंभ करता है। चूँकि क्लोन में यह सुविधा नहीं थी और यदि इंटरप्ट 18h को निष्पादित किया गया था। अतः तब विभिन्न मशीनें / BIOS विभिन्न प्रकार की विभिन्न क्रियाएं करती है। समान्यतः त्रुटि संदेश बताता है कि कोई बूट करने योग्य डिस्क उपस्थित नहीं थी। आधुनिक मशीनें इस इंटरप्ट के माध्यम से नेटवर्क से बूट करने का प्रयास करता है। आधुनिक मशीनों पर इस इंटरप्ट को BIOS द्वारा बूटलोडर से संकेत के रूप में माना जाता है कि यह अपना कार्य पूर्ण करने में विफल रहता है। तब BIOS उपयुक्त अगला कदम उठा सकता है। | ||
|- | |- | ||
|{{Code|19h}} | |{{Code|19h}} | ||
| | |डाक के पश्चात् ऑपरेटिंग सिस्टम को लोड करने के लिए BIOS द्वारा इस इंटरप्ट का उपयोग किया जाता है। प्रोग्राम कंप्यूटर को रिबूट करने के लिए इस इंटरप्ट को कॉल कर सकता है (चूँकि यह सुनिश्चित करना चाहिए कि हार्डवेयर इंटरप्ट या डीएमए संचालन सिस्टम को BIOS या बूट प्रक्रिया द्वारा सिस्टम के पुनर्संरचना के समय हैंग या क्रैश नहीं करता है)। | ||
|- | |- | ||
|{{Code|1Ah}} | |{{Code|1Ah}} | ||
| | |वास्तविक समय घड़ी सेवाएं | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएच}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|00h}} | |{{Code|00h}} | ||
| | |आरटीसी पढ़ें। | ||
|- | |- | ||
|{{Code|01h}} | |{{Code|01h}} | ||
| | |आरटीसी सेट करें। | ||
|- | |- | ||
|{{Code|02h}} | |{{Code|02h}} | ||
| | |आरटीसी समय पढ़ें। | ||
|- | |- | ||
|{{Code|03h}} | |{{Code|03h}} | ||
| | |आरटीसी समय निर्धारित करें। | ||
|- | |- | ||
|{{Code|04h}} | |{{Code|04h}} | ||
| | |आरटीसी तिथि पढ़ें। | ||
|- | |- | ||
|{{Code|05h}} | |{{Code|05h}} | ||
| | |आरटीसी तिथि निर्धारित करें। | ||
|- | |- | ||
|{{Code|06h}} | |{{Code|06h}} | ||
| | |[[आरटीसी अलार्म]] सेट करें। | ||
|- | |- | ||
|{{Code|07h}} | |{{Code|07h}} | ||
| | |आरटीसी अलार्म रीसेट करें। | ||
|} | |} | ||
|- | |- | ||
|{{Code|1Ah}} | |{{Code|1Ah}} | ||
|[[ | |[[पीसीआई]] सेवाएं - पीसीआई 2.0 या पश्चात् के संस्करण का समर्थन करने वाले BIOS द्वारा कार्यान्वित | ||
{| class="wikitable" border="1" style="margin-left:1em" | {| class="wikitable" border="1" style="margin-left:1em" | ||
|- | |- | ||
!{{Code| | !{{Code|एएक्स}} | ||
! | !विवरण | ||
|- | |- | ||
|{{Code|B101h}} | |{{Code|B101h}} | ||
| | |पीसीआई स्थापना जांच। | ||
|- | |- | ||
|{{Code|B102h}} | |{{Code|B102h}} | ||
| | |पीसीआई स्थापना जांच। | ||
|- | |- | ||
|{{Code|B103h}} | |{{Code|B103h}} | ||
| | |पीसीआई कक्षा कोड खोजें। | ||
|- | |- | ||
|{{Code|B106h}} | |{{Code|B106h}} | ||
| | |पीसीआई बस-विशिष्ट संचालन। | ||
|- | |- | ||
|{{Code|B108h}} | |{{Code|B108h}} | ||
| | |कॉन्फ़िगरेशन बाइट पढ़ें। | ||
|- | |- | ||
|{{Code|B109h}} | |{{Code|B109h}} | ||
| | |कॉन्फ़िगरेशन शब्द पढ़ें। | ||
|- | |- | ||
|{{Code|B10Ah}} | |{{Code|B10Ah}} | ||
| | |कॉन्फ़िगरेशन डॉवॉर्ड पढ़ें। | ||
|- | |- | ||
|{{Code|B10Bh}} | |{{Code|B10Bh}} | ||
| | |कॉन्फ़िगरेशन बाइट लिखें। | ||
|- | |- | ||
|{{Code|B10Ch}} | |{{Code|B10Ch}} | ||
| | |कॉन्फ़िगरेशन शब्द लिखें। | ||
|- | |- | ||
|{{Code|B10Dh}} | |{{Code|B10Dh}} | ||
| | |कॉन्फ़िगरेशन डॉवर्ड लिखें। | ||
|- | |- | ||
|{{Code|B10Eh}} | |{{Code|B10Eh}} | ||
| | |आईआरक्यू नियमित जानकारी प्राप्त करें। | ||
|- | |- | ||
|{{Code|B10Fh}} | |{{Code|B10Fh}} | ||
| | |पीसीआई आईआरक्यू सेट करें। | ||
|} | |} | ||
|- | |- | ||
| Line 469: | Line 468: | ||
|- | |- | ||
|{{Code|1Dh}} | |{{Code|1Dh}} | ||
|Not to be called; simply a | |Not to be called; simply a poइंटरप्टer to the VPT (Video Parameter Table), which contains data on video modes | ||
|- | |- | ||
|{{Code|1Eh}} | |{{Code|1Eh}} | ||
|Not to be called; simply a | |Not to be called; simply a poइंटरप्टer to the DPT (Diskette Parameter Table), containing a variety of information concerning the diskette drives | ||
|- | |- | ||
|{{Code|1Fh}} | |{{Code|1Fh}} | ||
|Not to be called; simply a | |Not to be called; simply a poइंटरप्टer to the VGCT (Video Graphics Character Table), which contains the data for ASCII characters {{Code|80h}} to {{Code|FFh}} | ||
|- | |- | ||
|{{Code|41h}} | |{{Code|41h}} | ||
|Address | |Address poइंटरप्टer: FDPT = Fixed Disk Parameter Table (1st hard drive) | ||
|- | |- | ||
|{{Code|46h}} | |{{Code|46h}} | ||
|Address | |Address poइंटरप्टer: FDPT = Fixed Disk Parameter Table (2nd hard drive) | ||
|- | |- | ||
|{{Code|4Ah}} | |{{Code|4Ah}} | ||
| Line 492: | Line 491: | ||
1981 में जब मूल आईबीएम पीसी (आईबीएम मशीन प्रकार 5150) जारी किया गया था, उस समय ROM में BASIC प्रमुख विशेषता थी। कमोडोर 64 और ऐप्पल II लाइन जैसे समकालीन लोकप्रिय व्यक्तिगत कंप्यूटरों में भी रोम में माइक्रोसॉफ्ट कैसेट बेसिक था (चूंकि कमोडोर ने अपने लाइसेंस प्राप्त संस्करण कमोडोर बेसिक का नाम बदल दिया), जिससे की अपने इच्छित बाजार के बड़े भाग में, आईबीएम पीसी को प्रतिस्पर्धा करने के लिए बेसिक की आवश्यकता थी। उन अन्य प्रणालियों की प्रकार, आईबीएम पीसी के ROM BASIC ने आदिम डिस्क रहित ऑपरेटिंग सिस्टम के रूप में कार्य किया, जिससे उपयोगकर्ता प्रोग्राम को लोड करने, सहेजने और चलाने के साथ-साथ उन्हें लिखने और परिष्कृत करने की अनुमति देता है। (मूल आईबीएम पीसी भी आईबीएम का एकमात्र पीसी मॉडल था, जो अपने पूर्वोक्त दो प्रतिस्पर्धियों की प्रकार, कैसेट इंटरफ़ेस हार्डवेयर सम्मिलित था। बेस मॉडल आईबीएम पीसी में केवल 16 कीबी रैम और कोई डिस्क ड्राइव [किसी भी प्रकार का] नहीं था, जिससे की कैसेट बेस मॉडल को प्रयोग करने योग्य बनाने के लिए ROM में इंटरफ़ेस और बेसिक आवश्यक थे। 32 KiB से कम रैम वाला आईबीएम पीसी डिस्क से बूट करने में असमर्थ है। मूल आईबीएम पीसी में पाँच 8 KiB ROM चिप्स में से, कुल 40 KiB, चार में होते हैं BASIC और केवल में BIOS होता है; जब केवल 16 KiB RAM स्थापित की जाती है, तो ROM BASIC कुल सिस्टम मेमोरी के आधे से अधिक [4/7, त्रुटिहीन होने के लिए] खाता है।) | 1981 में जब मूल आईबीएम पीसी (आईबीएम मशीन प्रकार 5150) जारी किया गया था, उस समय ROM में BASIC प्रमुख विशेषता थी। कमोडोर 64 और ऐप्पल II लाइन जैसे समकालीन लोकप्रिय व्यक्तिगत कंप्यूटरों में भी रोम में माइक्रोसॉफ्ट कैसेट बेसिक था (चूंकि कमोडोर ने अपने लाइसेंस प्राप्त संस्करण कमोडोर बेसिक का नाम बदल दिया), जिससे की अपने इच्छित बाजार के बड़े भाग में, आईबीएम पीसी को प्रतिस्पर्धा करने के लिए बेसिक की आवश्यकता थी। उन अन्य प्रणालियों की प्रकार, आईबीएम पीसी के ROM BASIC ने आदिम डिस्क रहित ऑपरेटिंग सिस्टम के रूप में कार्य किया, जिससे उपयोगकर्ता प्रोग्राम को लोड करने, सहेजने और चलाने के साथ-साथ उन्हें लिखने और परिष्कृत करने की अनुमति देता है। (मूल आईबीएम पीसी भी आईबीएम का एकमात्र पीसी मॉडल था, जो अपने पूर्वोक्त दो प्रतिस्पर्धियों की प्रकार, कैसेट इंटरफ़ेस हार्डवेयर सम्मिलित था। बेस मॉडल आईबीएम पीसी में केवल 16 कीबी रैम और कोई डिस्क ड्राइव [किसी भी प्रकार का] नहीं था, जिससे की कैसेट बेस मॉडल को प्रयोग करने योग्य बनाने के लिए ROM में इंटरफ़ेस और बेसिक आवश्यक थे। 32 KiB से कम रैम वाला आईबीएम पीसी डिस्क से बूट करने में असमर्थ है। मूल आईबीएम पीसी में पाँच 8 KiB ROM चिप्स में से, कुल 40 KiB, चार में होते हैं BASIC और केवल में BIOS होता है; जब केवल 16 KiB RAM स्थापित की जाती है, तो ROM BASIC कुल सिस्टम मेमोरी के आधे से अधिक [4/7, त्रुटिहीन होने के लिए] खाता है।) | ||
जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के BIOS संस्करणों में अधिक व्याख्यात्मक संदेश); अन्य BIOS संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर ( | जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के BIOS संस्करणों में अधिक व्याख्यात्मक संदेश); अन्य BIOS संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर (इंटरप्ट 19h) पर फिर से बूट करने का प्रयास करेगा। | ||
डिजिटल का [[ इंद्रधनुष 100 |इंद्रधनुष 100]] बी उपयोग किया गया {{Code|INT 18h}} इसके BIOS को कॉल करने के लिए, जो आईबीएम BIOS के साथ असंगत था। मेमोरी आवंटन और पेजिंग के लिए [[टर्बो पास्कल]], [[टर्बो सी]] और [[टर्बो सी ++]] ने आईएनटी 18 का पुन: उपयोग किया। अन्य कार्यक्रमों ने भी इस सदिश का अपने उद्देश्यों के लिए पुन: उपयोग किया। | डिजिटल का [[ इंद्रधनुष 100 |इंद्रधनुष 100]] बी उपयोग किया गया {{Code|INT 18h}} इसके BIOS को कॉल करने के लिए, जो आईबीएम BIOS के साथ असंगत था। मेमोरी आवंटन और पेजिंग के लिए [[टर्बो पास्कल]], [[टर्बो सी]] और [[टर्बो सी ++]] ने आईएनटी 18 का पुन: उपयोग किया। अन्य कार्यक्रमों ने भी इस सदिश का अपने उद्देश्यों के लिए पुन: उपयोग किया। | ||
| Line 510: | Line 509: | ||
=== डॉस === | === डॉस === | ||
DOS सिस्टम पर, IO.SYS या आईबीएमBIO.COM फ़्लॉपी डिस्क परिवर्तन का पता लगाने, फ़ॉर्मेटिंग कॉल को ट्रैक करने, DMA सीमा त्रुटियों को ठीक करने और पहली कॉल से पहले मॉडल कोड 0xFC के साथ आईबीएम के ROM BIOS 01/10/84 में समस्याओं के समाधान के लिए | DOS सिस्टम पर, IO.SYS या आईबीएमBIO.COM फ़्लॉपी डिस्क परिवर्तन का पता लगाने, फ़ॉर्मेटिंग कॉल को ट्रैक करने, DMA सीमा त्रुटियों को ठीक करने और पहली कॉल से पहले मॉडल कोड 0xFC के साथ आईबीएम के ROM BIOS 01/10/84 में समस्याओं के समाधान के लिए इंटरप्ट 13 को हुक करता है। . | ||
== बायपास BIOS == | == बायपास BIOS == | ||
अनेक आधुनिक ऑपरेटिंग सिस्टम (जैसे [[लिनक्स]] और [[ खिड़कियाँ |खिड़कियाँ]] ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे [[डिवाइस ड्राइवर]]ों पर भरोसा करते हैं जो या तो [[ओएस कर्नेल]] का भाग हैं, ओएस के साथ शिप करते हैं, या हार्डवेयर विक्रेताओं द्वारा प्रदान किए जाते हैं। | |||
इस प्रथा के | इस प्रथा के अनेक कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि BIOS कोड केवल वास्तविक मोड में निष्पादित होगा। इसका अर्थ यह है कि यदि संरक्षित मोड में चल रहा कोई OS BIOS कॉल करना चाहता है, तो उसे पहले वास्तविक मोड में स्विच करना होगा, फिर कॉल को निष्पादित करना होगा और उसके वापस आने की प्रतीक्षा करनी होगी, और अंत में वापस सुरक्षित मोड में स्विच करना होगा। यह बेहद धीमा और अक्षम होगा। कोड जो वास्तविक मोड में चलता है (BIOS सहित) 16-बिट X86_memory_segmentation का उपयोग करने के कारण केवल 1 [[मेगाबाइट]] मेमोरी तक ही सीमित है। इसके अतिरिक्त, BIOS सामान्यतः किसी विशेष कार्य को करने का सबसे तेज़ विधि नहीं है। वास्तव में, BIOS की गति सीमाओं ने इसे DOS युग में भी कार्यक्रमों के लिए सामान्य बना दिया जिससे कि इसकी प्रदर्शन सीमाओं से बचा जा सके, विशेष रूप से वीडियो ग्राफिक्स डिस्प्ले और तेज़ सीरियल संचार के लिए। | ||
उपरोक्त कारकों से परे, BIOS कार्यक्षमता के साथ समस्याओं में परिभाषित कार्यों की सीमा में सीमाएं, विभिन्न कंप्यूटरों पर समर्थित उन कार्यों के सबसेट में असंगतता, और BIOS की गुणवत्ता में भिन्नताएं सम्मिलित हैं (अर्थात कुछ BIOS पूर्ण और विश्वसनीय हैं, अन्य संक्षिप्त हैं और छोटी गाड़ी)। स्थितियों को अपने हाथों में लेने और BIOS पर निर्भरता से बचने के द्वारा, ऑपरेटिंग सिस्टम डेवलपर्स कुछ जोखिमों और जटिलताओं को समाप्त कर सकते हैं जो वे सिस्टम सॉफ़्टवेयर को लिखने और समर्थन करने में सामना करते हैं। दूसरी ओर, ऐसा करने से वे डेवलपर हर भिन्न सिस्टम या पेरिफेरल डिवाइस के लिए बेयर-मेटल ड्राइवर सॉफ़्टवेयर प्रदान करने के लिए ज़िम्मेदार हो जाते हैं, जिसके लिए वे अपने ऑपरेटिंग सिस्टम के साथ कार्य करना चाहते हैं (या उन ड्राइवरों को प्रदान करने के लिए हार्डवेयर उत्पादकों को प्रेरित करने के लिए)। | उपरोक्त कारकों से परे, BIOS कार्यक्षमता के साथ समस्याओं में परिभाषित कार्यों की सीमा में सीमाएं, विभिन्न कंप्यूटरों पर समर्थित उन कार्यों के सबसेट में असंगतता, और BIOS की गुणवत्ता में भिन्नताएं सम्मिलित हैं (अर्थात कुछ BIOS पूर्ण और विश्वसनीय हैं, अन्य संक्षिप्त हैं और छोटी गाड़ी)। स्थितियों को अपने हाथों में लेने और BIOS पर निर्भरता से बचने के द्वारा, ऑपरेटिंग सिस्टम डेवलपर्स कुछ जोखिमों और जटिलताओं को समाप्त कर सकते हैं जो वे सिस्टम सॉफ़्टवेयर को लिखने और समर्थन करने में सामना करते हैं। दूसरी ओर, ऐसा करने से वे डेवलपर हर भिन्न सिस्टम या पेरिफेरल डिवाइस के लिए बेयर-मेटल ड्राइवर सॉफ़्टवेयर प्रदान करने के लिए ज़िम्मेदार हो जाते हैं, जिसके लिए वे अपने ऑपरेटिंग सिस्टम के साथ कार्य करना चाहते हैं (या उन ड्राइवरों को प्रदान करने के लिए हार्डवेयर उत्पादकों को प्रेरित करने के लिए)। | ||
| Line 530: | Line 529: | ||
== संदर्भ == | == संदर्भ == | ||
{{Reflist}} | {{Reflist}} | ||
* [https://www.cs.cmu.edu/~ralf/files.html The x86 | * [https://www.cs.cmu.edu/~ralf/files.html The x86 इंटरप्टerrupt List] (a.k.a. RBIL, Ralf Brown's इंटरप्टerrupt List) | ||
* [http://ftp.embeddedarm.com/old/saved-downloads-manuals/EBIOS-UM.PDF Embedded BIOS User's Manual] | * [http://ftp.embeddedarm.com/old/saved-downloads-manuals/EBIOS-UM.PDF Embedded BIOS User's Manual] | ||
* [https://web.archive.org/web/20120617084000/http://www.esapcsolutions.com/ecom/drawings/PhoenixBIOS4_rev6UserMan.pdf PhoenixBIOS 4.0 User's Manual] | * [https://web.archive.org/web/20120617084000/http://www.esapcsolutions.com/ecom/drawings/PhoenixBIOS4_rev6UserMan.pdf PhoenixBIOS 4.0 User's Manual] | ||
* ''आईबीएम Personal System/2 and Personal Computer BIOS | * ''आईबीएम Personal System/2 and Personal Computer BIOS इंटरप्टerface Technical Reference'', आईबीएम, 1988, {{OCLC|20737442}} | ||
* ''System BIOS for आईबीएम पीसीs, Compatibles, and EISA Computers'', [[Phoenix Technologies]], 1991, {{ISBN|0201577607}} | * ''System BIOS for आईबीएम पीसीs, Compatibles, and EISA Computers'', [[Phoenix Technologies]], 1991, {{ISBN|0201577607}} | ||
* ''Programmer's Guide to the AMIBIOS'', [[American Megatrends]], 1993, {{ISBN|0070015619}} | * ''Programmer's Guide to the AMIBIOS'', [[American Megatrends]], 1993, {{ISBN|0070015619}} | ||
Revision as of 21:23, 12 March 2023
BIOS इंटरप्ट कॉल वह सुविधा है जो ऑपरेटिंग सिस्टम और एप्लिकेशन प्रोग्राम आईबीएम पीसी संगत कंप्यूटरों पर बेसिक इनपुट/आउटपुट सिस्टम फर्मवेयर की सुविधाओं को प्रयुक्त करने के लिए उपयोग करते हैं। परंपरागत रूप से, BIOS कॉल मुख्य रूप से डॉस प्रोग्राम और बूट लोडर जैसे कुछ अन्य सॉफ़्टवेयर द्वारा उपयोग किए जाते हैं (जिनमें ज्यादातर ऐतिहासिक रूप से अपेक्षाकृत सरल एप्लिकेशन सॉफ़्टवेयर सम्मिलित हैं। जो सीधे बूट होते हैं और ऑपरेटिंग सिस्टम के बिना चलते हैं - विशेष रूप से गेम सॉफ़्टवेयर)। BIOS x86 सीपीयू का वास्तविक पता मोड (वास्तविक मोड) में चलता है। इस कारण BIOS को कॉल करने वाले प्रोग्राम को या तो वास्तविक मोड में चलना चाहिए या BIOS को कॉल करने से पूर्व संरक्षित मोड से वास्तविक मोड में स्विच करना चाहिए और फिर से वापस स्विच करना चाहिए। इस कारण से, आधुनिक ऑपरेटिंग सिस्टम जो सीपीयू को संरक्षित मोड या लॉन्ग मोड में उपयोग करते हैं, सामान्यतः सिस्टम फ़ंक्शंस का समर्थन करने के लिए BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, चूंकि वे बूटिंग के समय हार्डवेयर की जांच और आरंभ करने के लिए BIOS इंटरप्ट कॉल का उपयोग करते हैं।[1] वास्तविक मोड में 1 एमबी मेमोरी सीमा है। आधुनिक बूट लोडर (जैसे GRUB2, विंडोज़ बूट प्रबंधक ) अवास्तविक मोड या संरक्षित मोड का उपयोग करते हैं (और वर्चुअल 8086 मोड में BIOS इंटरप्ट कॉल निष्पादित करते हैं, किन्तु केवल ओएस बूटिंग के लिए) 4 जीबी तक पहुंच के लिए मेमोरी है।[2]
सभी कंप्यूटरों में, सॉफ्टवेयर निर्देश विधुत प्रवाह होने के क्षण से भौतिक हार्डवेयर (स्क्रीन, डिस्क, कीबोर्ड, आदि) को नियंत्रित करते हैं। पीसी में, BIOS, मदरबोर्ड पर ROM में पहले से लोड, सीपीयू के रीसेट होने के पश्चात् नियंत्रण कर लेता है, जिसमें पावर-अप के समय, जब हार्डवेयर रीसेट बटन दबाया जाता है, या जब महत्वपूर्ण सॉफ़्टवेयर विफलता ( ट्रिपल दोष ) होती है हार्डवेयर रीसेट को स्वचालित रूप से ट्रिगर करने के लिए मेनबोर्ड सर्किट्री का कारण बनता है। BIOS हार्डवेयर का परीक्षण करता है और इसकी स्थिति को आरंभ करता है। बूट प्रोग्राम खोजता है, लोड करता है और चलाता है (सामान्यतः OS बूट लोडर, और ऐतिहासिक ROM BASIC) और मशीन पर चलने वाले सॉफ़्टवेयर को प्रारंभिक हार्डवेयर नियंत्रण प्रदान करता है। जो सामान्यतः ऑपरेटिंग सिस्टम (एप्लिकेशन प्रोग्राम के साथ) होता है, किन्तु यह सीधे बूटिंग एकल सॉफ़्टवेयर एप्लिकेशन हो सकता है।
आईबीएम के भाग के लिए, उन्होंने प्रारंभिक आईबीएम पीसी मॉडल (पीएस / 2 से पहले) प्रोग्रामिंग करते समय अपने BIOS को पूर्ण प्रकार से उपयोग करने या सीधे हार्डवेयर का उपयोग करने और BIOS से पूर्ण प्रकार से बचने के लिए आवश्यक सभी जानकारी प्रदान की जाती है। चूँकि प्रारंभ से ही, प्रोग्रामर के पास प्रति-हार्डवेयर-परिधीय आधार पर BIOS का उपयोग करने या न करने का विकल्प था। अतः आईबीएम ने अच्छी प्रकार से व्यवहार किए गए कार्यक्रमों के लेखन को दृढ़ता से प्रोत्साहित किया था। जो केवल BIOS इंटरप्ट कॉल (और DOS सेवा कॉल) के माध्यम से हार्डवेयर तक पहुंचे थे। जो उपस्तिथा और भविष्य के पीसी मॉडल के साथ सॉफ्टवेयर की अनुकूलता का समर्थन करने के लिए असमान परिधीय हार्डवेयर वाले थे। किन्तु आईबीएम ने समझा कि कुछ सॉफ्टवेयर डेवलपर्स के लिए और हार्डवेयर ग्राहक, हार्डवेयर को सीधे नियंत्रित करने के लिए उपयोगकर्ता सॉफ़्टवेयर की क्षमता आवश्यकता थी। आंशिक रूप से, यह जिससे की था। जिससे की BIOS सेवाओं द्वारा सभी हार्डवेयर सुविधाओं और कार्यों का महत्वपूर्ण उपसमुच्चय उजागर नहीं किया गया था। दो उदाहरणों के लिए (अनेक के मध्य), एमडीए और सीजीए एडेप्टर हार्डवेयर स्क्रॉल करने में सक्षम हैं और पीसी सीरियल एडेप्टर बाधित-संचालित डेटा ट्रांसफर में सक्षम है। किन्तु आईबीएम BIOS इनमें से किसी भी उपयोगी तकनीकी सुविधा का समर्थन नहीं करता है।
आज, नए पीसी में BIOS अभी भी आईबीएम पर्सनल कंप्यूटर/एटी (सन्न 1984 में प्रारंभ) के लिए आईबीएम द्वारा परिभाषित BIOS इंटरप्ट फ़ंक्शन कॉल्स का सबसे अधिक समर्थन करता है। यदि सभी नहीं, तब अनेक और नए लोगों के साथ इनमें से कुछ के लिए प्रारूप विभिन्न अन्य संगठनों और सहयोगी उद्योग समूहों द्वारा प्रख्यापित मूल (जैसे विस्तारित पैरामीटर रेंज) है। यह हार्डवेयर संगतता की समान डिग्री के साथ मिलकर कार्य करता है। इसका तात्पर्य है कि आईबीएम एटी के लिए लिखे गए अधिकांश प्रोग्राम आज भी नए पीसी पर सही प्रकार से चल सकते हैं। अतः यह मानते हुए कि निष्पादन की तेज गति स्वीकार्य है (जो सामान्यतः सभी खेलों के लिए है जो उपयोग करते हैं सीपीयू-आधारित समय)। BIOS इंटरप्ट्स के माध्यम से एक्सेस की जाने वाली सेवाओं की अधिक सीमाओं के अतिरिक्त, वे तकनीकी परिवर्तन के लिए अधिक उपयोगी और स्थायी सिद्ध करना हुए हैं।
BIOS कॉल का उद्देश्य
BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, SCSI, या SATA ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या संशोधित आवृत्ति मापांकेशन या रन लेंथ लिमिटेड ड्राइव संभवतः सीगेट ST-506 नियंत्रक के साथ, संभवतः अनेक पश्चिमी डिजिटल सन्न 1980 के नियंत्रक प्रकारों में से एक, या किसी अन्य ब्रांड के भिन्न अधिकार-संबंधी नियंत्रक के साथ)। प्रोग्राम को केवल उस ड्राइव की BIOS-परिभाषित संख्या की पहचान करने की आवश्यकता है। जिसे वह एक्सेस करना चाहता है और उस क्षेत्र के पते को पढ़ने या लिखने की आवश्यकता है और BIOS इस सामान्य अनुरोध को प्राथमिक संचालन के विशिष्ट अनुक्रम में अनुवाद करने का ध्यान रखता है। उस ड्राइव से जुड़े विशेष डिस्क नियंत्रक हार्डवेयर के माध्यम से कार्य को पूर्ण करने के लिए प्रोग्राम को प्रत्येक प्रकार की हार्ड डिस्क (या डिस्प्ले एडॉप्टर, या पोर्ट इंटरफ़ेस, या वास्तविक समय घड़ी परिधीय) को निम्न स्तर पर नियंत्रित करने के बारे में जानने की आवश्यकता से मुक्त किया गया है। जिसे एक्सेस करने की आवश्यकता हो सकती है। यह प्रोग्रामिंग ऑपरेटिंग सिस्टम और एप्लिकेशन दोनों को सरल बनाता है और प्रोग्राम को छोटा बनाता है। प्रोग्राम कोड के दोहराव को कम करता है, जिस कारण BIOS में सम्मिलित कार्यक्षमता को प्रत्येक प्रोग्राम में सम्मिलित करने की आवश्यकता नहीं होती है। जिसकी उसे आवश्यकता होती है, उसे इसके अतिरिक्त BIOS में अपेक्षाकृत कम कॉल को प्रोग्राम में सम्मिलित किया जाता है। (ऑपरेटिंग सिस्टम में जहां BIOS का उपयोग नहीं किया जाता है। वहा ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सर्विस कॉल सामान्यतः समान कार्य और उद्देश्य को पूर्ण करती हैं।)
सामान्यतः उपस्तिथा सॉफ़्टवेयर के साथ अनुकूलता बनाए रखने के लिए नए सिस्टम को डिज़ाइन करते समय पुराने सिस्टम के साथ त्रुटिहीन हार्डवेयर संगतता बनाए रखने के लिए BIOS कंप्यूटर हार्डवेयर डिजाइनरों (इस तक कि प्रोग्राम विशेष रूप से BIOS का उपयोग करने के लिए लिखे गए हैं) को मुक्त करता है। उदाहरण के लिए, आईबीएम पीसीजेआर पर कीबोर्ड हार्डवेयर पहले के आईबीएम पीसी मॉडल के कीबोर्ड हार्डवेयर की तुलना में बहुत भिन्न विधि से कार्य करता है। किन्तु उन प्रोग्रामों के लिए जो केवल BIOS के माध्यम से कीबोर्ड का उपयोग करते हैं, यह अंतर लगभग अदृश्य है। (इस विवाद के दूसरे पक्ष के अच्छे उदाहरण के रूप में, पीसीजेआर प्रस्तुत किए जाने के समय उपयोग में आने वाले पीसी प्रोग्रामों का महत्वपूर्ण भाग विशेष रूप से BIOS के माध्यम से कीबोर्ड का उपयोग नहीं करता था, जिससे की आईबीएम ने पीसीजेआर में हार्डवेयर सुविधाओं को भी सम्मिलित किया जिससे कि इसका अनुकरण किया जा सकता है। जिस प्रकार आईबीएम पर्सनल कंप्यूटर और आईबीएम पर्सनल कंप्यूटर एक्सटी कीबोर्ड हार्डवेयर कार्य करता है। हार्डवेयर अनुकरण त्रुटिहीन नहीं है, जिससे की सभी प्रोग्राम जो सीधे कीबोर्ड हार्डवेयर का उपयोग करने का प्रयास करते हैं, पीसीजेआर पर सही प्रकार से कार्य करते है, किन्तु सभी प्रोग्राम जो केवल BIOS कीबोर्ड सेवाओं का उपयोग करते हैं।)
हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, BIOS अतिरिक्त सुविधाएं प्रदान करता है। जो कि BIOS सॉफ़्टवेयर में कार्यान्वित की जाती हैं। उदाहरण के लिए, BIOS आठ टेक्स्ट डिस्प्ले पेजों के लिए भिन्न-भिन्न कर्सर की स्थिति रखता है और स्वचालित लाइन रैप के साथ कंप्यूटर टर्मिनल जैसा आउटपुट प्रदान करता है और कैरिज रिटर्न और रेखा भरण जैसे बुनियादी नियंत्रण वर्णों की व्याख्या करता है। जबकि सीजीए-संगत टेक्स्ट डिस्प्ले हार्डवेयर केवल वैश्विक प्रदर्शन कर्सर है और स्वचालित रूप से कर्सर को आगे नहीं बढ़ा सकता है। अतः प्रदर्शन मेमोरी को संबोधित करने के लिए कर्सर की स्थिति का उपयोग करते है (जिससे कि यह निर्धारित किया जा सकता है कि कौन सा वर्ण सेल परिवर्तित या जांचा जा सकता है।), जो नियंत्रण वर्णों की व्याख्या करता है। अन्य उदाहरण के लिए, BIOS कीबोर्ड इंटरफ़ेस विभिन्न शिफ्ट स्टेट्स (बाएं और दाएं Shift, Ctrl, और Alt) का ट्रैक रखने के लिए अनेक कीस्ट्रोक्स और कुंजी संयोजनों की व्याख्या करता है। Shift+PrtScrn के पूर्व होने पर प्रिंट-स्क्रीन सेवा को कॉल करने के लिए, सिस्टम को रिबूट करने के लिए जब Ctrl+Alt+Del दबाया जाता है। लॉक स्टेट्स (कैप्स लॉक, न्यूम लॉक और स्क्रॉल लॉक) का ट्रैक रखने के लिए और एटी-क्लास मशीनों में, संबंधित लॉक-स्टेट इंडिकेटर लाइट्स को नियंत्रित करते है। कीबोर्ड, और कीबोर्ड के लिए अन्य समान व्याख्यात्मक और प्रबंधन कार्य करने के लिए। इसके विपरीत, मानक पीसी और पीसी-एटी कीबोर्ड हार्डवेयर की सामान्य क्षमताएं सिस्टम को गणना करने तक सीमित होती हैं। जिसमें व्यक्तिगत कुंजी को दबाने या जारी करने की प्रत्येक आदिम घटना होती है। (अर्थात जारी स्थिति से उदास स्थिति या इसके विपरीत संक्रमण करना) ), कीबोर्ड इकाई का कमांड्ड रीसेट और आत्म परीक्षण करना, और एटी-क्लास कीबोर्ड के लिए, लॉक-स्टेट इंडिकेटर्स (एलईडी) की पूर्ण स्थिति सेट करने के लिए होस्ट सिस्टम से कमांड निष्पादित करना होता है।
कॉलिंग BIOS: BIOS सॉफ़्टवेयर बाधित होता है
ऑपरेटिंग सिस्टम और अन्य सॉफ़्टवेयर, स्थापित हार्डवेयर को नियंत्रित करने के लिए सॉफ़्टवेयर इंटरप्ट के माध्यम से, BIOS सॉफ़्टवेयर के साथ संचार करते हैं। सॉफ्टवेयर इंटरप्ट की सामान्य अवधारणा की विशिष्ट विविधता है। इंटरप्ट ऐसी क्रियाविधि है जिसके द्वारा सीपीयू हो सकता है।
मुख्य-लाइन प्रोग्राम को निष्पादित करना बंद करने और इसके अतिरिक्त इंटरप्ट सर्विस रूटीन (आईएसआर) नामक विशेष प्रोग्राम को तुरंत निष्पादित करने का निर्देश दिया गया था। चूँकि आईएसआर समाप्त होने के पश्चात्, सीपीयू मुख्य प्रोग्राम के साथ जारी रहता है। अतः X86 सीपीयू पर जब कोई व्यवधान उत्पन्न होता है, तब कॉल करने के लिए आईएसआर को स्मृति में आईएसआर प्रारंभ-बिंदु पतों (इंटरप्ट सदिश कहा जाता है) की तालिका में देखकर पाया जाता है कि व्यवधान सदिश तालिका (आईवीटी) में इसके टाइप नंबर द्वारा 0 से 255 तक इंटरप्ट का आह्वान किया जाता है और टाइप नंबर को इंटरप्ट सदिश तालिका में इंडेक्स के रूप में उपयोग किया जाता है और उस इंडेक्स में तालिका में आईएसआर का पता पाया जाता है। जो प्रतिक्रिया में चलाया जाता है। अतः रुकावट सॉफ्टवेयर इंटरप्ट केवल इंटरप्ट है। जो सॉफ्टवेयर कमांड द्वारा ट्रिगर किया जाता है। जिससे की, सॉफ्टवेयर सबरूटीन्स जैसे कार्य को बाधित करता है, मुख्य अंतर यह है कि सॉफ्टवेयर इंटरप्ट कॉल करने वाले प्रोग्राम को आईएसआर का पता जानने की जरूरत नहीं है, केवल इसकी इंटरप्ट संख्या सिस्टम व्यवस्था के प्रारूप में प्रतिरूपकता, अनुकूलता और लचीलेपन के लिए इसके लाभ हैं।
BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के मध्य संदेश भेजने के लिए तंत्र के रूप में माना जा सकता है। संदेश BIOS से डेटा या कार्रवाई का अनुरोध करते हैं और अनुरोधित डेटा, स्थिति की जानकारी या अनुरोधित कार्रवाई के उत्पाद को कॉलर को वापस करते हैं। संदेशों को श्रेणियों में बांटा गया है। जिनमें से प्रत्येक की अपनी रुकावट संख्या है और अधिकांश श्रेणियों में उप-श्रेणियां होती हैं। जिन्हें फ़ंक्शन कहा जाता है और फ़ंक्शन संख्याओं द्वारा पहचाना जाता है। BIOS क्लाइंट अधिकांश सूचनाओं को सीपीयू रजिस्टरों में BIOS को पास करता है और उसी प्रकार से अधिकांश जानकारी वापस प्राप्त करता है। किन्तु रजिस्टरों में फिट होने के लिए बहुत बड़ा डेटा, जैसे नियंत्रण मापदंडों की तालिका या डिस्क ट्रांसफर के लिए डिस्क सेक्टर डेटा, बफर आवंटित करके पारित किया जाता है। (अर्थात कुछ स्थान) स्मृति में और रजिस्टरों में बफर के पते को पास करना होता है। (कभी-कभी मेमोरी में डेटा वस्तु के एकाधिक पते मेमोरी में डेटा संरचना में पास किए जा सकते हैं। उस संरचना के पते रजिस्टरों में BIOS को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट निर्देश (इंटेल असेंबली भाषा में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। इंटरप्ट निर्देश और फ़ंक्शन संख्या एएच रजिस्टर में निर्दिष्ट है अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं। किन्तु इंटरप्ट सेवा के अंदर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु पुनर्वित्त (कंप्यूटिंग) के लिए प्रासंगिक है।)
BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता है। यदि सफल नहीं होता है या स्थिति कोड और/या सफल होने पर अनुरोधित डेटा के साथ डेटा स्वयं बिट जितना छोटा या पूरे कच्चे डिस्क क्षेत्रों के 65,536 बाइट्स जितना बड़ा हो सकता है। (अधिकतम जो वास्तविक-मोड मेमोरी सेगमेंट में फिट होता है।) चूँकि अनेक भिन्न-भिन्न कॉरपोरेट संस्थाओं द्वारा BIOS को अनेक वर्षों में अनेक बार विस्तारित और बढ़ाया गया है और दुर्भाग्य से इस विकास का परिणाम यह है कि सभी BIOS फ़ंक्शंस जिन्हें डेटा को प्रारूपित करने और संचार करने या परिणामों की गणना करने के लिए सुसंगत सम्मेलनों का उपयोग नहीं कहा जा सकता है। कुछ BIOS फ़ंक्शन विस्तृत स्थिति जानकारी की गणना करते हैं। चूँकि अन्य सफलता या विफलता की गणना भी नहीं कर सकते हैं। किन्तु कॉल करने वाले को सफलता मानने के लिए (या किसी अन्य विधि से परिणाम का परीक्षण करने के लिए) शांतिपूर्वक वापस लौटते हैं। कभी-कभी यह निर्धारित करने में कठिनाई हो सकती है कि निश्चित कंप्यूटर पर BIOS द्वारा निश्चित BIOS फ़ंक्शन कॉल समर्थित है या नहीं, या उस कंप्यूटर पर कॉल के पैरामीटर की सीमा क्या है। (कुछ अमान्य फ़ंक्शन नंबरों के लिए, या प्रमुख मापदंडों के अमान्य मानों के साथ मान्य फ़ंक्शन नंबर - विशेष रूप से प्रारंभिक आईबीएम BIOS संस्करण के साथ - BIOS कुछ भी नहीं कर सकता है और बिना किसी त्रुटि कोड के वापस आ सकता है। तो यह [असुविधाजनक किन्तु अपरिहार्य] जिम्मेदारी है कॉलर या तो ऐसी कॉल न करके इस स्थिति से बचने के लिए या कॉल के प्रभावी होने के अतिरिक्त कॉल के अपेक्षित प्रभाव के लिए सकारात्मक रूप से परीक्षण करने के लिए होता है। जिससे कि BIOS अपने इतिहास में अनेक चरणों में बड़े मापक पर विकसित हुआ है। अतः फ़ंक्शन जो मान्य है। वह कुछ निश्चित विक्रेता से BIOS संस्करण उसी विक्रेता से या किसी अन्य विक्रेता से किसी भी संबंधित आयु के BIOS संस्करण में पहले या भिन्न-भिन्न BIOS संस्करण में मान्य नहीं हो सकता है।)
जिससे कि BIOS इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं। कॉल असेंबली भाषा से किए जाने के लिए उन्मुख होते हैं और अधिकांश उच्च स्तरीय प्रोग्रामिंग भाषा उच्च स्तरीय भाषा (एचएलएल) से नहीं किए जा सकते हैं। चूँकि उच्च स्तरीय भाषा रैपर रूटीन में पुस्तकालय प्रदान कर सकती है। जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है। फिर एचएलएल कॉलिंग कन्वेंशन के बाद BIOS रिटर्न सी के कुछ रूपों में सी मापांक के अंदर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का भाग नहीं है किन्तु भाषा विस्तार है। जिससे की इनलाइन असेंबली भाषा का उपयोग करने वाले सी मापांक शुद्ध एएनएसआई मानक सी मापांक से कम पोर्तालिका हैं।)
रुकावट का आह्वान
इंटरप्ट x86 असेंबली भाषा निर्देश का उपयोग करके रुकावट का आह्वान किया जा सकता है। उदाहरण के लिए, BIOS इंटरप्ट 0x10 का उपयोग कर स्क्रीन पर वर्ण को प्रिंट करने के लिए निम्नलिखित x86 असेंबली भाषा निर्देशों को निष्पादित किया जा सकता है।
mov ah, 0x0e ; function number = 0Eh : Display Character
mov al, '!' ; AL = code of character to display
int 0x10 ; call INT 10h, BIOS video service
इंटरप्ट तालिका
सामान्य BIOS इंटरप्ट क्लासेस की सूची नीचे पाई जा सकती है। ध्यान दें कि कुछ BIOS (विशेष रूप से पुराने वाले) इन सभी इंटरप्ट कक्षाओं को प्रयुक्त नहीं करते हैं।
BIOS उन प्रोग्रामों में हार्डवेयर ईवेंट इंटरप्ट्स को रिले करने के लिए कुछ इंटरप्ट्स का भी उपयोग करता है। जो उन्हें प्राप्त करना चाहते हैं या संदेशों को अपने स्वयं के उपयोग के लिए रूट करते हैं। नीचे दी गई तालिका में केवल वे BIOS इंटरप्ट सम्मिलित हैं। जो सेवाओं या जानकारी का अनुरोध करने के लिए प्रोग्राम (इंटरप्ट असेंबली-भाषा सॉफ़्टवेयर इंटरप्ट निर्देश का उपयोग करके) द्वारा बुलाए जाने के लिए अभिप्रेत हैं।
| इंटरप्ट सदिश | विवरण | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
05h
|
जब Shift-Printerpt स्क्रीन को दबाया जाता हैऔर इसके साथ ही जब बाउंड निर्देश बाउंड विफलता का पता लगाता है, तब इसे निष्पादित किया जाता है। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
08h
|
यह वास्तविक समय घड़ी इंटरप्ट है। यह 18.2 बार/सेकंड फायर करता है। इस इंटरप्ट के समय BIOS समय-समय पर काउंटर बढ़ाता है। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
09h
|
यह कीबोर्ड इंटरप्ट है। यह समान्यतः तब ट्रिगर होता है जब कीबोर्ड पर कोई कुंजी दबाई जाती है। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10h
|
वीडियो सेवाएं
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11h
|
उपकरण सूची वापस करता है। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12h
|
पारंपरिक स्मृति आकार वापस करे। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13h
|
निम्न स्तर की डिस्क सेवाएँ
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14h
|
सीरियल पोर्ट सेवाएं
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15h
|
Miscellaneous system services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16h
|
कीबोर्ड सेवाएं
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17h
|
Prइंटरप्टer services
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18h
|
कैसेट बेसिक निष्पादित करता है आईबीएम मशीनों पर शुरुआती पीएस/2 लाइन तक यह इंटरप्ट ROM कैसेट बेसिक प्रारंभ करता है। चूँकि क्लोन में यह सुविधा नहीं थी और यदि इंटरप्ट 18h को निष्पादित किया गया था। अतः तब विभिन्न मशीनें / BIOS विभिन्न प्रकार की विभिन्न क्रियाएं करती है। समान्यतः त्रुटि संदेश बताता है कि कोई बूट करने योग्य डिस्क उपस्थित नहीं थी। आधुनिक मशीनें इस इंटरप्ट के माध्यम से नेटवर्क से बूट करने का प्रयास करता है। आधुनिक मशीनों पर इस इंटरप्ट को BIOS द्वारा बूटलोडर से संकेत के रूप में माना जाता है कि यह अपना कार्य पूर्ण करने में विफल रहता है। तब BIOS उपयुक्त अगला कदम उठा सकता है। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19h
|
डाक के पश्चात् ऑपरेटिंग सिस्टम को लोड करने के लिए BIOS द्वारा इस इंटरप्ट का उपयोग किया जाता है। प्रोग्राम कंप्यूटर को रिबूट करने के लिए इस इंटरप्ट को कॉल कर सकता है (चूँकि यह सुनिश्चित करना चाहिए कि हार्डवेयर इंटरप्ट या डीएमए संचालन सिस्टम को BIOS या बूट प्रक्रिया द्वारा सिस्टम के पुनर्संरचना के समय हैंग या क्रैश नहीं करता है)। | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ah
|
वास्तविक समय घड़ी सेवाएं
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ah
|
पीसीआई सेवाएं - पीसीआई 2.0 या पश्चात् के संस्करण का समर्थन करने वाले BIOS द्वारा कार्यान्वित
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Bh
|
Ctrl-Break handler - called by INT 09 when Ctrl-Break has been pressed
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Ch
|
Timer tick handler - called by INT 08
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Dh
|
Not to be called; simply a poइंटरप्टer to the VPT (Video Parameter Table), which contains data on video modes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Eh
|
Not to be called; simply a poइंटरप्टer to the DPT (Diskette Parameter Table), containing a variety of information concerning the diskette drives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1Fh
|
Not to be called; simply a poइंटरप्टer to the VGCT (Video Graphics Character Table), which contains the data for ASCII characters 80h to FFh
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
41h
|
Address poइंटरप्टer: FDPT = Fixed Disk Parameter Table (1st hard drive) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
46h
|
Address poइंटरप्टer: FDPT = Fixed Disk Parameter Table (2nd hard drive) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4Ah
|
Called by RTC for alarm |
==INT 18h: बेसिक == निष्पादित करें
INT 18h परंपरागत रूप से विकल्प रोम में संग्रहीत कैसेट बेसिक (माइक्रोसॉफ्ट द्वारा प्रदान) के कार्यान्वयन के लिए कूद गया। यदि BIOS स्टार्टअप पर बूट करने योग्य डिस्क वॉल्यूम की पहचान करने में असमर्थ था तो यह कॉल सामान्यतः प्रयुक्त की जाएगी।
1981 में जब मूल आईबीएम पीसी (आईबीएम मशीन प्रकार 5150) जारी किया गया था, उस समय ROM में BASIC प्रमुख विशेषता थी। कमोडोर 64 और ऐप्पल II लाइन जैसे समकालीन लोकप्रिय व्यक्तिगत कंप्यूटरों में भी रोम में माइक्रोसॉफ्ट कैसेट बेसिक था (चूंकि कमोडोर ने अपने लाइसेंस प्राप्त संस्करण कमोडोर बेसिक का नाम बदल दिया), जिससे की अपने इच्छित बाजार के बड़े भाग में, आईबीएम पीसी को प्रतिस्पर्धा करने के लिए बेसिक की आवश्यकता थी। उन अन्य प्रणालियों की प्रकार, आईबीएम पीसी के ROM BASIC ने आदिम डिस्क रहित ऑपरेटिंग सिस्टम के रूप में कार्य किया, जिससे उपयोगकर्ता प्रोग्राम को लोड करने, सहेजने और चलाने के साथ-साथ उन्हें लिखने और परिष्कृत करने की अनुमति देता है। (मूल आईबीएम पीसी भी आईबीएम का एकमात्र पीसी मॉडल था, जो अपने पूर्वोक्त दो प्रतिस्पर्धियों की प्रकार, कैसेट इंटरफ़ेस हार्डवेयर सम्मिलित था। बेस मॉडल आईबीएम पीसी में केवल 16 कीबी रैम और कोई डिस्क ड्राइव [किसी भी प्रकार का] नहीं था, जिससे की कैसेट बेस मॉडल को प्रयोग करने योग्य बनाने के लिए ROM में इंटरफ़ेस और बेसिक आवश्यक थे। 32 KiB से कम रैम वाला आईबीएम पीसी डिस्क से बूट करने में असमर्थ है। मूल आईबीएम पीसी में पाँच 8 KiB ROM चिप्स में से, कुल 40 KiB, चार में होते हैं BASIC और केवल में BIOS होता है; जब केवल 16 KiB RAM स्थापित की जाती है, तो ROM BASIC कुल सिस्टम मेमोरी के आधे से अधिक [4/7, त्रुटिहीन होने के लिए] खाता है।)
जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के BIOS संस्करणों में अधिक व्याख्यात्मक संदेश); अन्य BIOS संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर (इंटरप्ट 19h) पर फिर से बूट करने का प्रयास करेगा।
डिजिटल का इंद्रधनुष 100 बी उपयोग किया गया INT 18h इसके BIOS को कॉल करने के लिए, जो आईबीएम BIOS के साथ असंगत था। मेमोरी आवंटन और पेजिंग के लिए टर्बो पास्कल, टर्बो सी और टर्बो सी ++ ने आईएनटी 18 का पुन: उपयोग किया। अन्य कार्यक्रमों ने भी इस सदिश का अपने उद्देश्यों के लिए पुन: उपयोग किया।
BIOS हुक
डॉस
DOS सिस्टम पर, IO.SYS या आईबीएमBIO.COM फ़्लॉपी डिस्क परिवर्तन का पता लगाने, फ़ॉर्मेटिंग कॉल को ट्रैक करने, DMA सीमा त्रुटियों को ठीक करने और पहली कॉल से पहले मॉडल कोड 0xFC के साथ आईबीएम के ROM BIOS 01/10/84 में समस्याओं के समाधान के लिए इंटरप्ट 13 को हुक करता है। .
बायपास BIOS
अनेक आधुनिक ऑपरेटिंग सिस्टम (जैसे लिनक्स और खिड़कियाँ ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे डिवाइस ड्राइवरों पर भरोसा करते हैं जो या तो ओएस कर्नेल का भाग हैं, ओएस के साथ शिप करते हैं, या हार्डवेयर विक्रेताओं द्वारा प्रदान किए जाते हैं।
इस प्रथा के अनेक कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि BIOS कोड केवल वास्तविक मोड में निष्पादित होगा। इसका अर्थ यह है कि यदि संरक्षित मोड में चल रहा कोई OS BIOS कॉल करना चाहता है, तो उसे पहले वास्तविक मोड में स्विच करना होगा, फिर कॉल को निष्पादित करना होगा और उसके वापस आने की प्रतीक्षा करनी होगी, और अंत में वापस सुरक्षित मोड में स्विच करना होगा। यह बेहद धीमा और अक्षम होगा। कोड जो वास्तविक मोड में चलता है (BIOS सहित) 16-बिट X86_memory_segmentation का उपयोग करने के कारण केवल 1 मेगाबाइट मेमोरी तक ही सीमित है। इसके अतिरिक्त, BIOS सामान्यतः किसी विशेष कार्य को करने का सबसे तेज़ विधि नहीं है। वास्तव में, BIOS की गति सीमाओं ने इसे DOS युग में भी कार्यक्रमों के लिए सामान्य बना दिया जिससे कि इसकी प्रदर्शन सीमाओं से बचा जा सके, विशेष रूप से वीडियो ग्राफिक्स डिस्प्ले और तेज़ सीरियल संचार के लिए।
उपरोक्त कारकों से परे, BIOS कार्यक्षमता के साथ समस्याओं में परिभाषित कार्यों की सीमा में सीमाएं, विभिन्न कंप्यूटरों पर समर्थित उन कार्यों के सबसेट में असंगतता, और BIOS की गुणवत्ता में भिन्नताएं सम्मिलित हैं (अर्थात कुछ BIOS पूर्ण और विश्वसनीय हैं, अन्य संक्षिप्त हैं और छोटी गाड़ी)। स्थितियों को अपने हाथों में लेने और BIOS पर निर्भरता से बचने के द्वारा, ऑपरेटिंग सिस्टम डेवलपर्स कुछ जोखिमों और जटिलताओं को समाप्त कर सकते हैं जो वे सिस्टम सॉफ़्टवेयर को लिखने और समर्थन करने में सामना करते हैं। दूसरी ओर, ऐसा करने से वे डेवलपर हर भिन्न सिस्टम या पेरिफेरल डिवाइस के लिए बेयर-मेटल ड्राइवर सॉफ़्टवेयर प्रदान करने के लिए ज़िम्मेदार हो जाते हैं, जिसके लिए वे अपने ऑपरेटिंग सिस्टम के साथ कार्य करना चाहते हैं (या उन ड्राइवरों को प्रदान करने के लिए हार्डवेयर उत्पादकों को प्रेरित करने के लिए)।
इस प्रकार यह स्पष्ट होना चाहिए कि छोटे बजट पर विकसित कॉम्पैक्ट ऑपरेटिंग सिस्टम भारी मात्रा में BIOS का उपयोग करते हैं, जबकि बड़े बजट वाले सॉफ्टवेयर इंजीनियरों के विशाल समूहों द्वारा निर्मित बड़े ऑपरेटिंग सिस्टम अधिकांशतः BIOS का उपयोग करने के अतिरिक्त अपने स्वयं के ड्राइवर लिखने का विकल्प चुनते हैं- अर्थात BIOS और संरक्षित मोड की संगतता समस्याओं पर विचार किए बिना भी।
यह भी देखें
- डॉस इंटरप्ट कॉल
- इंटरप्ट डिस्क्रिप्टर तालिका
- इनपुट/आउटपुट आधार पता
- राल्फ ब्राउन की इंटरप्ट लिस्ट
संदर्भ
- ↑ "Booting · Linux Inside". 0xax.gitbooks.io. Retrieved 2020-11-10.
- ↑ "Grub2 Booting Process". 21 June 2016.
- The x86 इंटरप्टerrupt List (a.k.a. RBIL, Ralf Brown's इंटरप्टerrupt List)
- Embedded BIOS User's Manual
- PhoenixBIOS 4.0 User's Manual
- आईबीएम Personal System/2 and Personal Computer BIOS इंटरप्टerface Technical Reference, आईबीएम, 1988, OCLC 20737442
- System BIOS for आईबीएम पीसीs, Compatibles, and EISA Computers, Phoenix Technologies, 1991, ISBN 0201577607
- Programmer's Guide to the AMIBIOS, American Megatrends, 1993, ISBN 0070015619
- The Programmer's पीसी Sourcebook by Thom Hogan, Microsoft Press, 1991 ISBN 155615321X