BIOS इंटरप्ट कॉल: Difference between revisions

From Vigyanwiki
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 सेवाओं द्वारा सभी हार्डवेयर सुविधाओं और कार्यों का महत्वपूर्ण उपसमुच्चय उजागर नहीं किया गया था। दो उदाहरणों के लिए (कई के मध्य), एमडीए और सीजीए एडेप्टर हार्डवेयर स्क्रॉल करने में सक्षम हैं और पीसी सीरियल एडेप्टर बाधित-संचालित डेटा ट्रांसफर में सक्षम है। किन्तु आईबीएम BIOS इनमें से किसी भी उपयोगी तकनीकी सुविधा का समर्थन नहीं करता है।
आईबीएम के भाग के लिए, उन्होंने प्रारंभिक आईबीएम पीसी मॉडल (पीएस / 2 से पहले) प्रोग्रामिंग करते समय अपने BIOS को पूर्ण प्रकार से उपयोग करने या सीधे हार्डवेयर का उपयोग करने और BIOS से पूर्ण प्रकार से बचने के लिए आवश्यक सभी जानकारी प्रदान की जाती है। चूँकि प्रारंभ से ही, प्रोग्रामर के पास प्रति-हार्डवेयर-परिधीय आधार पर BIOS का उपयोग करने या न करने का विकल्प था। अतः आईबीएम ने अच्छी प्रकार से व्यवहार किए गए कार्यक्रमों के लेखन को दृढ़ता से प्रोत्साहित किया था। जो केवल BIOS इंटरप्ट कॉल (और DOS सेवा कॉल) के माध्यम से हार्डवेयर तक पहुंचे थे। जो उपस्तिथा और भविष्य के पीसी मॉडल के साथ सॉफ्टवेयर की अनुकूलता का समर्थन करने के लिए असमान परिधीय हार्डवेयर वाले थे। किन्तु आईबीएम ने समझा कि कुछ सॉफ्टवेयर डेवलपर्स के लिए और हार्डवेयर ग्राहक, हार्डवेयर को सीधे नियंत्रित करने के लिए उपयोगकर्ता सॉफ़्टवेयर की क्षमता आवश्यकता थी। आंशिक रूप से, यह जिससे की था। जिससे की BIOS सेवाओं द्वारा सभी हार्डवेयर सुविधाओं और कार्यों का महत्वपूर्ण उपसमुच्चय उजागर नहीं किया गया था। दो उदाहरणों के लिए (अनेक के मध्य), एमडीए और सीजीए एडेप्टर हार्डवेयर स्क्रॉल करने में सक्षम हैं और पीसी सीरियल एडेप्टर बाधित-संचालित डेटा ट्रांसफर में सक्षम है। किन्तु आईबीएम BIOS इनमें से किसी भी उपयोगी तकनीकी सुविधा का समर्थन नहीं करता है।


आज, नए पीसी में BIOS अभी भी आईबीएम पर्सनल कंप्यूटर/एटी (सन्न 1984 में प्रारंभ) के लिए आईबीएम द्वारा परिभाषित BIOS इंटरप्ट फ़ंक्शन कॉल्स का सबसे अधिक समर्थन करता है। यदि सभी नहीं, तब कई और नए लोगों के साथ इनमें से कुछ के लिए प्रारूप विभिन्न अन्य संगठनों और सहयोगी उद्योग समूहों द्वारा प्रख्यापित मूल (जैसे विस्तारित पैरामीटर रेंज) है। यह हार्डवेयर संगतता की समान डिग्री के साथ मिलकर कार्य करता है। इसका तात्पर्य है कि आईबीएम एटी के लिए लिखे गए अधिकांश प्रोग्राम आज भी नए पीसी पर सही प्रकार से चल सकते हैं। अतः यह मानते हुए कि निष्पादन की तेज गति स्वीकार्य है (जो सामान्यतः सभी खेलों के लिए है जो उपयोग करते हैं सीपीयू-आधारित समय)। BIOS इंटरप्ट्स के माध्यम से एक्सेस की जाने वाली सेवाओं की अधिक सीमाओं के अतिरिक्त, वे तकनीकी परिवर्तन के लिए अधिक उपयोगी और स्थायी सिद्ध करना हुए हैं।
आज, नए पीसी में BIOS अभी भी आईबीएम पर्सनल कंप्यूटर/एटी (सन्न 1984 में प्रारंभ) के लिए आईबीएम द्वारा परिभाषित BIOS इंटरप्ट फ़ंक्शन कॉल्स का सबसे अधिक समर्थन करता है। यदि सभी नहीं, तब अनेक और नए लोगों के साथ इनमें से कुछ के लिए प्रारूप विभिन्न अन्य संगठनों और सहयोगी उद्योग समूहों द्वारा प्रख्यापित मूल (जैसे विस्तारित पैरामीटर रेंज) है। यह हार्डवेयर संगतता की समान डिग्री के साथ मिलकर कार्य करता है। इसका तात्पर्य है कि आईबीएम एटी के लिए लिखे गए अधिकांश प्रोग्राम आज भी नए पीसी पर सही प्रकार से चल सकते हैं। अतः यह मानते हुए कि निष्पादन की तेज गति स्वीकार्य है (जो सामान्यतः सभी खेलों के लिए है जो उपयोग करते हैं सीपीयू-आधारित समय)। BIOS इंटरप्ट्स के माध्यम से एक्सेस की जाने वाली सेवाओं की अधिक सीमाओं के अतिरिक्त, वे तकनीकी परिवर्तन के लिए अधिक उपयोगी और स्थायी सिद्ध करना हुए हैं।


== BIOS कॉल का उद्देश्य ==
== BIOS कॉल का उद्देश्य ==
BIOS इंटरप्ट कॉल प्रोग्राम द्वारा अनुरोधित हार्डवेयर नियंत्रण या I/O फ़ंक्शन करता है। प्रोग्राम को सिस्टम की जानकारी लौटाता है, या दोनों करता है। BIOS कॉल के उद्देश्य का प्रमुख तत्व अमूर्त है - BIOS कॉल सामान्यतः परिभाषित कार्य करता है, और सिस्टम के विशेष हार्डवेयर पर उन कार्यों को कैसे निष्पादित किया जाता है। इसका विशिष्ट विवरण BIOS में एनकैप्सुलेट किया जाता है और प्रोग्राम से अप्रत्यक्ष होता है। जिससे की उदाहरण के लिए, प्रोग्राम जो हार्ड डिस्क से पढ़ना चाहता है। उसे यह जानने की आवश्यकता नहीं है कि हार्ड डिस्क समानांतर ATA, [[SCSI]], या [[SATA]] ड्राइव है। (या पूर्व के दिनों में, बढ़ी हुई छोटी डिस्क इंटरफ़ेस ड्राइव, या [[संशोधित आवृत्ति मॉड्यूलेशन]] या [[रन लेंथ लिमिटेड]] ड्राइव संभवतः सीगेट [[ST-506]] नियंत्रक के साथ, संभवतः कई पश्चिमी डिजिटल सन्न 1980 के नियंत्रक प्रकारों में से एक, या किसी अन्य ब्रांड के भिन्न अधिकार-संबंधी नियंत्रक के साथ)। प्रोग्राम को केवल उस ड्राइव की BIOS-परिभाषित संख्या की पहचान करने की आवश्यकता है। जिसे वह एक्सेस करना चाहता है और उस क्षेत्र के पते को पढ़ने या लिखने की आवश्यकता है और BIOS इस सामान्य अनुरोध को प्राथमिक संचालन के विशिष्ट अनुक्रम में अनुवाद करने का ध्यान रखता है। उस ड्राइव से जुड़े विशेष डिस्क नियंत्रक हार्डवेयर के माध्यम से कार्य को पूर्ण करने के लिए प्रोग्राम को प्रत्येक प्रकार की हार्ड डिस्क (या डिस्प्ले एडॉप्टर, या पोर्ट इंटरफ़ेस, या वास्तविक समय घड़ी परिधीय) को निम्न स्तर पर नियंत्रित करने के बारे में जानने की आवश्यकता से मुक्त किया गया है। जिसे एक्सेस करने की आवश्यकता हो सकती है। यह प्रोग्रामिंग ऑपरेटिंग सिस्टम और एप्लिकेशन दोनों को सरल बनाता है और प्रोग्राम को छोटा बनाता है। प्रोग्राम कोड के दोहराव को कम करता है, जिस कारण BIOS में सम्मिलित कार्यक्षमता को प्रत्येक प्रोग्राम में सम्मिलित करने की आवश्यकता नहीं होती है। जिसकी उसे आवश्यकता होती है, उसे इसके अतिरिक्त BIOS में अपेक्षाकृत कम कॉल को प्रोग्राम में सम्मिलित किया जाता है। (ऑपरेटिंग सिस्टम में जहां BIOS का उपयोग नहीं किया जाता है। वहा ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सर्विस कॉल सामान्यतः समान कार्य और उद्देश्य को पूर्ण करती हैं।)
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) का ट्रैक रखने के लिए कई कीस्ट्रोक्स और कुंजी संयोजनों की व्याख्या करता है। Shift+PrtScrn के पूर्व होने पर प्रिंट-स्क्रीन सेवा को कॉल करने के लिए, सिस्टम को रिबूट करने के लिए जब Ctrl+Alt+Del दबाया जाता है। लॉक स्टेट्स (कैप्स लॉक, न्यूम लॉक और स्क्रॉल लॉक) का ट्रैक रखने के लिए और एटी-क्लास मशीनों में, संबंधित लॉक-स्टेट इंडिकेटर लाइट्स को नियंत्रित करते है। कीबोर्ड, और कीबोर्ड के लिए अन्य समान व्याख्यात्मक और प्रबंधन कार्य करने के लिए। इसके विपरीत, मानक पीसी और पीसी-एटी कीबोर्ड हार्डवेयर की सामान्य क्षमताएं सिस्टम को रिपोर्ट करने तक सीमित होती हैं। जिसमें व्यक्तिगत कुंजी को दबाने या जारी करने की प्रत्येक आदिम घटना होती है। (अर्थात जारी स्थिति से उदास स्थिति या इसके विपरीत संक्रमण करना) ), कीबोर्ड इकाई का कमांड्ड रीसेट और आत्म परीक्षण करना, और एटी-क्लास कीबोर्ड के लिए, लॉक-स्टेट इंडिकेटर्स (एलईडी) की पूर्ण स्थिति सेट करने के लिए होस्ट सिस्टम से कमांड निष्पादित करना होता है।
हार्डवेयर सुविधाओं तक पहुंच प्रदान करने के अतिरिक्त, 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 को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट इंस्ट्रक्शन (इंटेल असेंबली लैंग्वेज में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। , INT निर्देश), और फ़ंक्शन संख्या AH रजिस्टर में निर्दिष्ट है; अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं, किन्तु इंटरप्ट सेवा के भीतर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु Reentrancy (कंप्यूटिंग) के लिए प्रासंगिक है।)
BIOS इंटरप्ट कॉल को ऑपरेटिंग सिस्टम जैसे BIOS और BIOS क्लाइंट सॉफ़्टवेयर के मध्य संदेश भेजने के लिए तंत्र के रूप में माना जा सकता है। संदेश BIOS से डेटा या कार्रवाई का अनुरोध करते हैं और अनुरोधित डेटा, स्थिति की जानकारी या अनुरोधित कार्रवाई के उत्पाद को कॉलर को वापस करते हैं। संदेशों को श्रेणियों में बांटा गया है। जिनमें से प्रत्येक की अपनी रुकावट संख्या है और अधिकांश श्रेणियों में उप-श्रेणियां होती हैं। जिन्हें फ़ंक्शन कहा जाता है और फ़ंक्शन संख्याओं द्वारा पहचाना जाता है। BIOS क्लाइंट अधिकांश सूचनाओं को सीपीयू रजिस्टरों में BIOS को पास करता है और उसी प्रकार से अधिकांश जानकारी वापस प्राप्त करता है। किन्तु रजिस्टरों में फिट होने के लिए बहुत बड़ा डेटा, जैसे नियंत्रण मापदंडों की तालिका या डिस्क ट्रांसफर के लिए डिस्क सेक्टर डेटा, बफर आवंटित करके पारित किया जाता है। (अर्थात कुछ स्थान) स्मृति में और रजिस्टरों में बफर के पते को पास करना होता है। (कभी-कभी मेमोरी में डेटा वस्तु के एकाधिक पते मेमोरी में डेटा संरचना में पास किए जा सकते हैं। उस संरचना के पते रजिस्टरों में BIOS को पास किए जाते हैं।) इंटरप्ट नंबर को सॉफ्टवेयर इंटरप्ट निर्देश (इंटेल असेंबली भाषा में) के पैरामीटर के रूप में निर्दिष्ट किया जाता है। इंटरप्ट निर्देश और फ़ंक्शन संख्या एएच रजिस्टर में निर्दिष्ट है अर्थात्, कॉलर एएच रजिस्टर को वांछित फ़ंक्शन की संख्या पर सेट करता है। सामान्यतः, प्रत्येक इंटरप्ट संख्या से संबंधित BIOS सेवाएं दूसरे से स्वतंत्र रूप से संचालित होती हैं। किन्तु इंटरप्ट सेवा के अंदर कार्य ही BIOS प्रोग्राम द्वारा नियंत्रित किए जाते हैं और स्वतंत्र नहीं होते हैं। (यह अंतिम बिंदु पुनर्वित्त (कंप्यूटिंग) के लिए प्रासंगिक है।)


BIOS सॉफ़्टवेयर सामान्यतः कॉल करने वाले के पास त्रुटि कोड के साथ वापस आता है यदि सफल नहीं होता है, या स्थिति कोड और/या सफल होने पर अनुरोधित डेटा के साथ। डेटा स्वयं बिट जितना छोटा या पूरे कच्चे डिस्क क्षेत्रों के 65,536 बाइट्स जितना बड़ा हो सकता है (अधिकतम जो वास्तविक-मोड मेमोरी सेगमेंट में फिट होगा)। कई भिन्न-भिन्न कॉरपोरेट संस्थाओं द्वारा 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 इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं, कॉल असेंबली लैंग्वेज से किए जाने के लिए उन्मुख होते हैं और सीधे उच्च-स्तरीय [[उच्च स्तरीय प्रोग्रामिंग भाषा]]| हाई-लेवल लैंग्वेज (HLL) से नहीं किए जा सकते हैं। चूँकि, उच्च स्तरीय भाषा रैपर रूटीन की लाइब्रेरी प्रदान कर सकती है जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है, फिर एचएलएल [[कॉलिंग कन्वेंशन]] के बाद BIOS रिटर्न। सी के कुछ रूपों में, सी मॉड्यूल के भीतर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का भाग नहीं है, किन्तु भाषा विस्तार है, जिससे की, इनलाइन असेंबली भाषा का उपयोग करने वाले सी मॉड्यूल शुद्ध एएनएसआई मानक सी मॉड्यूल से कम पोर्तालिका हैं।)
जिससे कि BIOS इंटरप्ट कॉल सीपीयू रजिस्टर-आधारित पैरामीटर पासिंग का उपयोग करते हैं। कॉल असेंबली भाषा से किए जाने के लिए उन्मुख होते हैं और अधिकांश [[उच्च स्तरीय प्रोग्रामिंग भाषा]] उच्च स्तरीय भाषा (एचएलएल) से नहीं किए जा सकते हैं। चूँकि उच्च स्तरीय भाषा रैपर रूटीन में पुस्तकालय प्रदान कर सकती है। जो उच्च-स्तरीय भाषा द्वारा उपयोग किए जाने वाले फॉर्म (सामान्यतः स्टैक-आधारित) से मापदंडों का अनुवाद BIOS द्वारा आवश्यक रजिस्टर-आधारित फॉर्म में करती है। फिर एचएलएल [[कॉलिंग कन्वेंशन]] के बाद BIOS रिटर्न सी के कुछ रूपों में सी मापांक के अंदर इनलाइन असेंबली भाषा का उपयोग करके BIOS कॉल किए जा सकते हैं। (इनलाइन असेंबली भाषा के लिए समर्थन एएनएसआई सी मानक का भाग नहीं है किन्तु भाषा विस्तार है। जिससे की इनलाइन असेंबली भाषा का उपयोग करने वाले सी मापांक शुद्ध एएनएसआई मानक सी मापांक से कम पोर्तालिका हैं।)


=== रुकावट का आह्वान ===
=== रुकावट का आह्वान ===


[[आईएनटी (x[[86]] निर्देश)]] x86 असेंबली भाषा निर्देश का उपयोग करके बाधा उत्पन्न की जा सकती है। उदाहरण के लिए, BIOS इंटरप्ट 0x10 का उपयोग कर स्क्रीन पर वर्ण को प्रिंट करने के लिए, निम्नलिखित x86 असेंबली भाषा निर्देशों को निष्पादित किया जा सकता है:
इंटरप्ट x86 असेंबली भाषा निर्देश का उपयोग करके रुकावट का आह्वान किया जा सकता है। उदाहरण के लिए, BIOS इंटरप्ट 0x10 का उपयोग कर स्क्रीन पर वर्ण को प्रिंट करने के लिए निम्नलिखित x86 असेंबली भाषा निर्देशों को निष्पादित किया जा सकता है।


<syntaxhighlight lang="nasm">
<syntaxhighlight lang="nasm">
Line 36: Line 36:
</syntaxhighlight>
</syntaxhighlight>


== इंटरप्ट तालिका ==


== Interrupt table ==
{{main|इंटरप्ट सदिश तालिका}}
 
{{main|Interrupt vector table}}


सामान्य BIOS इंटरप्ट क्लासेस की सूची नीचे पाई जा सकती है। ध्यान दें कि कुछ BIOS (विशेष रूप से पुराने वाले) इन सभी इंटरप्ट कक्षाओं को  प्रयुक्त नहीं करते हैं।
सामान्य BIOS इंटरप्ट क्लासेस की सूची नीचे पाई जा सकती है। ध्यान दें कि कुछ BIOS (विशेष रूप से पुराने वाले) इन सभी इंटरप्ट कक्षाओं को  प्रयुक्त नहीं करते हैं।


BIOS उन प्रोग्रामों में हार्डवेयर ईवेंट इंटरप्ट्स को रिले करने के लिए कुछ इंटरप्ट्स का भी उपयोग करता है जो उन्हें प्राप्त करना चुनते हैं या संदेशों को अपने स्वयं के उपयोग के लिए रूट करते हैं। नीचे दी गई तालिका में केवल वे BIOS इंटरप्ट सम्मिलित हैं जो सेवाओं या जानकारी का अनुरोध करने के लिए प्रोग्राम (INT असेंबली-लैंग्वेज सॉफ़्टवेयर इंटरप्ट इंस्ट्रक्शन का उपयोग करके) द्वारा बुलाए जाने के लिए अभिप्रेत हैं।
BIOS उन प्रोग्रामों में हार्डवेयर ईवेंट इंटरप्ट्स को रिले करने के लिए कुछ इंटरप्ट्स का भी उपयोग करता है। जो उन्हें प्राप्त करना चाहते हैं या संदेशों को अपने स्वयं के उपयोग के लिए रूट करते हैं। नीचे दी गई तालिका में केवल वे BIOS इंटरप्ट सम्मिलित हैं। जो सेवाओं या जानकारी का अनुरोध करने के लिए प्रोग्राम (इंटरप्ट असेंबली-भाषा सॉफ़्टवेयर इंटरप्ट निर्देश का उपयोग करके) द्वारा बुलाए जाने के लिए अभिप्रेत हैं।


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!Interrupt vector
!इंटरप्ट  सदिश
!Description
!विवरण
|-
|-
|{{Code|05h}}
|{{Code|05h}}
|Executed when Shift-[[Print screen]] is pressed, as well as when the {{Code|BOUND}} instruction detects a bound failure.
|जब [[Shift-Printerpt]] स्क्रीन को दबाया जाता हैऔर इसके साथ ही जब बाउंड निर्देश बाउंड विफलता का पता लगाता है, तब इसे निष्पादित किया जाता है।
|-
|-
|{{Code|08h}}
|{{Code|08h}}
|This is the real time clock interrupt. It fires 18.2 times/second. The BIOS increments the time-of-day counter during this interrupt.
|यह वास्तविक समय घड़ी इंटरप्ट है। यह 18.2 बार/सेकंड फायर करता है। इस इंटरप्ट के समय BIOS समय-समय पर काउंटर बढ़ाता है।
|-
|-
|{{Code|09h}}
|{{Code|09h}}
|This is the Keyboard interrupt. This is generally triggered when a key on a keyboard is pressed.
|यह कीबोर्ड इंटरप्ट है। यह समान्यतः तब ट्रिगर होता है जब कीबोर्ड पर कोई कुंजी दबाई जाती है।
|-
|-
|[[INT 10H|{{Code|10h}}]]
|[[INT 10H|{{Code|10h}}]]
|Video Services
|वीडियो सेवाएं
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!एएच
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|Set Video Mode
|वीडियो मोड सेट करें।
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|Set Cursor Shape
|कर्सर का आकार सेट करें।
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|Set Cursor Position
|कर्सर की स्थिति निर्धारित करें।
|-
|-
|{{Code|03h}}
|{{Code|03h}}
|Get Cursor Position And Shape
|कर्सर की स्थिति और आकार प्राप्त करें।
|-
|-
|{{Code|04h}}
|{{Code|04h}}
|Get Light Pen Position
|लाइट पेन स्थिति प्राप्त करें।
|-
|-
|{{Code|05h}}
|{{Code|05h}}
|Set Display Page
|प्रदर्शन पृष्ठ सेट करें।
|-
|-
|{{Code|06h}}
|{{Code|06h}}
|Clear/Scroll Screen Up
|स्पष्ट / स्क्रॉल स्क्रीन ऊपर।
|-
|-
|{{Code|07h}}
|{{Code|07h}}
|Clear/Scroll Screen Down
|स्पष्ट / स्क्रॉल स्क्रीन नीचे।
|-
|-
|{{Code|08h}}
|{{Code|08h}}
|Read Character and Attribute at Cursor
|कर्सर पर चरित्र और गुण पढ़ें।
|-
|-
|{{Code|09h}}
|{{Code|09h}}
|Write Character and Attribute at Cursor
|कर्सर पर कैरेक्टर और एट्रिब्यूट लिखें।
|-
|-
|{{Code|0Ah}}
|{{Code|0Ah}}
|Write Character at Cursor
|कर्सर पर कैरेक्टर लिखें।
|-
|-
|{{Code|0Bh}}
|{{Code|0Bh}}
|Set Border Color
|बॉर्डर कलर सेट करें।
|-
|-
|{{Code|0Ch}}
|{{Code|0Ch}}
|Write Graphics Pixel
|ग्राफिक्स पिक्सेल लिखें।
|-
|-
|{{Code|0Dh}}
|{{Code|0Dh}}
|Read Graphics Pixel
|ग्राफिक्स पिक्सेल पढ़ें।
|-
|-
|{{Code|0Eh}}
|{{Code|0Eh}}
|Write Character in TTY Mode
|टीटीवाई मोड में कैरेक्टर लिखें।
|-
|-
|{{Code|0Fh}}
|{{Code|0Fh}}
|Get Video Mode
|वीडियो मोड प्राप्त करें।
|-
|-
|{{Code|10h}}
|{{Code|10h}}
|Set Palette Registers (EGA, VGA, SVGA)
|पैलेट रजिस्टर सेट करें (ईजीए, वीजीए, एसवीजीए)
|-
|-
|{{Code|11h}}
|{{Code|11h}}
|Character Generator (EGA, VGA, SVGA)
|कैरेक्टर जेनरेटर (ईजीए, वीजीए, एसवीजीए)
|-
|-
|{{Code|12h}}
|{{Code|12h}}
|Alternate Select Functions (EGA, VGA, SVGA)
|वैकल्पिक चयन कार्य (ईजीए, वीजीए, एसवीजीए)
|-
|-
|{{Code|13h}}
|{{Code|13h}}
|Write String
|स्ट्रिंग लिखें।
|-
|-
|{{Code|1Ah}}
|{{Code|1Ah}}
|Get or Set Display Combination Code (VGA, SVGA)
|प्रदर्शन संयोजन कोड प्राप्त करें या सेट करें (वीजीए, एसवीजीए)
|-
|-
|{{Code|1Bh}}
|{{Code|1Bh}}
|Get Functionality Information (VGA, SVGA)
|कार्यक्षमता जानकारी प्राप्त करें (वीजीए, एसवीजीए)
|-
|-
|{{Code|1Ch}}
|{{Code|1Ch}}
|Save or Restore Video State (VGA, SVGA)
|वीडियो स्थिति प्राप्त करे या पुनर्स्थापित करें (VGA, SVGA)
|-
|-
|{{Code|4Fh}}
|{{Code|4Fh}}
|[[VESA BIOS Extension|VESA BIOS Eएक्सटीension]] Functions (SVGA)
|[[VESA BIOS विस्तार]] कार्य (SVGA)
|}
|}
|-
|-
|{{Code|11h}}
|{{Code|11h}}
|Returns equipment list
|उपकरण सूची वापस करता है।
|-
|-
|{{Code|12h}}
|{{Code|12h}}
|Return [[conventional memory]] size
|[[पारंपरिक स्मृति]] आकार वापस करे।
|-
|-
|[[INT 13H|{{Code|13h}}]]
|[[INT 13H|{{Code|13h}}]]
|Low Level Disk Services
|निम्न स्तर की डिस्क सेवाएँ
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!{{Code|एएच}}
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|Reset Disk Drives
|डिस्क ड्राइव को रीसेट करें।
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|Check Drive Status
|ड्राइव स्थिति खोज करता है।
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|Read Sectors
|सेक्टर्स पढ़ें।
|-
|-
|{{Code|03h}}
|{{Code|03h}}
|Write Sectors
|सेक्टर लिखें।
|-
|-
|{{Code|04h}}
|{{Code|04h}}
|Verify Sectors
|सेक्टरों को सत्यापित करें।
|-
|-
|{{Code|05h}}
|{{Code|05h}}
|Format Track
|प्रारूप ट्रैक।
|-
|-
|{{Code|08h}}
|{{Code|08h}}
|Get Drive Parameters
|ड्राइव पैरामीटर प्राप्त करें।
|-
|-
|{{Code|09h}}
|{{Code|09h}}
|Init Fixed Drive Parameters
|इनिट फिक्स्ड ड्राइव पैरामीटर्स।
|-
|-
|{{Code|0Ch}}
|{{Code|0Ch}}
|Seek To Specified Track
|निर्दिष्ट ट्रैक की खोज करें।
|-
|-
|{{Code|0Dh}}
|{{Code|0Dh}}
|Reset Fixed Disk Controller
|फ़िक्स्ड डिस्क नियंत्रक को रीसेट करें।
|-
|-
|{{Code|15h}}
|{{Code|15h}}
|Get Drive Type
|ड्राइव प्रकार प्राप्त करें।
|-
|-
|{{Code|16h}}
|{{Code|16h}}
|Get Floppy Drive Media Change Status
|फ्लॉपी ड्राइव मीडिया परिवर्तन स्थिति प्राप्त करें।
|-
|-
|{{Code|17h}}
|{{Code|17h}}
|Set Disk Type
|डिस्क प्रकार सेट करें।
|-
|-
|{{Code|18h}}
|{{Code|18h}}
|Set Floppy Drive Media Type
|फ़्लॉपी ड्राइव मीडिया प्रकार सेट करें।
|-
|-
|{{Code|41h}}
|{{Code|41h}}
|Eएक्सटीended Disk Drive (EDD) Installation Check
|विस्तारित डिस्क ड्राइव (ईडीडी) स्थापना जांच।
|-
|-
|{{Code|42h}}
|{{Code|42h}}
|Eएक्सटीended Read Sectors
|एक्सटेंडेड रीड सेक्टर्स।
|-
|-
|{{Code|43h}}
|{{Code|43h}}
|Eएक्सटीended Write Sectors
|विस्तारित लेखन क्षेत्र।
|-
|-
|{{Code|44h}}
|{{Code|44h}}
|Eएक्सटीended Verify Sectors
|विस्तारित सत्यापित क्षेत्र।
|-
|-
|{{Code|45h}}
|{{Code|45h}}
|Lock/Unlock Drive
|लॉक/अनलॉक ड्राइव।
|-
|-
|{{Code|46h}}
|{{Code|46h}}
|Eject Media
|मीडिया को बाहर करो।
|-
|-
|{{Code|47h}}
|{{Code|47h}}
|Eएक्सटीended Seek
|एक्सटेंडेड सीक।
|-
|-
|{{Code|48h}}
|{{Code|48h}}
|Eएक्सटीended Get Drive Parameters
|एक्सटेंडेड गेट ड्राइव पैरामीटर्स।
|-
|-
|{{Code|49h}}
|{{Code|49h}}
|Eएक्सटीended Get Media Change Status
|एक्सटेंडेड मीडिया परिवर्तन स्थिति प्राप्त करें।
|-
|-
|{{Code|4Eh}}
|{{Code|4Eh}}
|Eएक्सटीended Set Hardware Configuration
|विस्तारित सेट हार्डवेयर कॉन्फ़िगरेशन।
|}
|}
|-
|-
|{{Code|14h}}
|{{Code|14h}}
|Serial port services
|सीरियल पोर्ट सेवाएं
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!{{Code|एएच}}
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|Serial Port Initialization
|सीरियल पोर्ट आरंभीकरण।
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|Transmit Character
|संचारित चरित्र।
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|Receive Character
|चरित्र प्राप्त करें।
|-
|-
|{{Code|03h}}
|{{Code|03h}}
|Status
|स्थति।
|}
|}
|-
|-
Line 249: Line 248:
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!{{Code|एएच}}
!{{Code|AL}}
!{{Code|एएल}}
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|
|
|Turn on cassette drive motor (आईबीएम पीसी/पीसीजेआर only)
|कैसेट ड्राइव मोटर प्रारंभ करें (एजिएम पीसी/पीसीजेआर केवल)
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|
|
|Turn off cassette drive motor (आईबीएम पीसी/पीसीजेआर only)
|कैसेट ड्राइव मोटर बंद करें (आईबीएम पीसी/पीसीजेआर केवल)
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|
|
|Read data blocks from cassette (आईबीएम पीसी/पीसीजेआर only)
|कैसेट से डेटा ब्लॉक पढ़ें (आईबीएम पीसी/पीसीजेआर केवल)
|-
|-
|{{Code|03h}}
|{{Code|03h}}
|
|
|Write data blocks to cassette (आईबीएम पीसी/पीसीजेआर only)
|कैसेट में डेटा ब्लॉक लिखें (आईबीएम पीसी/पीसीजेआर केवल)
|-
|-
|{{Code|4Fh}}
|{{Code|4Fh}}
|
|
|Keyboard Intercept
|कीबोर्ड इंटरसेप्टर।
|-
|-
|{{Code|83h}}
|{{Code|83h}}
|
|
|Event Wait
|प्रतीक्षा घटना।
|-
|-
|{{Code|84h}}
|{{Code|84h}}
|
|
|Read Joystick (BIOSes from 1986 onward)
|जॉयस्टिक पढ़ें (1986 से BIOS)
|-
|-
|{{Code|85h}}
|{{Code|85h}}
|
|
|Sysreq Key Callout
|Sysreq कुंजी कॉलआउट।
|-
|-
|{{Code|86h}}
|{{Code|86h}}
|
|
|Wait
|प्रतीक्षा।
|-
|-
|{{Code|87h}}
|{{Code|87h}}
|
|
|Move Block
|मूव ब्लॉक।
|-
|-
|{{Code|88h}}
|{{Code|88h}}
|
|
|Get [[Extended Memory|Eएक्सटीended Memory]] Size
|विस्तारित मेमोरी आकार प्राप्त करें।
|-
|-
|{{Code|89h}}
|{{Code|89h}}
|
|
|Switch to Protected Mode
|संरक्षित मोड पर स्विच करें।
|-
|-
|{{Code|C0h}}
|{{Code|C0h}}
|
|
|Get System Parameters
|सिस्टम पैरामीटर प्राप्त करें।
|-
|-
|{{Code|C1h}}
|{{Code|C1h}}
|
|
|Get Eएक्सटीended BIOS Data Area Segment
|विस्तृत BIOS डेटा क्षेत्र खंड प्राप्त करें।
|-
|-
|{{Code|C2h}}
|{{Code|C2h}}
|
|
|Pointing Device Functions
|डिवाइस के कार्यों को इंटरप्ट करना।
|-
|-
|{{Code|C3h}}
|{{Code|C3h}}
|
|
|Watchdog Timer Functions - PS/2 systems only
|वॉचडॉग टाइमर फ़ंक्शंस - केवल पीएस/2 सिस्टम।
|-
|-
|{{Code|C4h}}
|{{Code|C4h}}
|
|
|Programmable Option Select - [[Micro Channel Architecture|MCA]] bus PS/2 systems only
|प्रोग्राम करने योग्य विकल्प चुनें - केवल एमसीए बस पीएस/2 सिस्टम।
|-
|-
|{{Code|D8h}}
|{{Code|D8h}}
|
|
|[[Extended Industry Standard Architecture|EISA]] System Functions - EISA bus systems only
|EISA सिस्टम फ़ंक्शंस - केवल EISA बस सिस्टम
|-
|-
|{{Code|E8h}}
|{{Code|E8h}}
|{{Code|01h}}
|{{Code|01h}}
|Get Eएक्सटीended Memory Size (Newer function, since 1994). Gives results for memory size above 64 Mb.
|एक्सटेंडेड मेमोरी साइज प्राप्त करें (नया फंक्शन, 1994 से)64 एमबी से अधिक मेमोरी आकार के लिए परिणाम देता है।
|-
|-
|{{Code|E8h}}
|{{Code|E8h}}
|{{Code|20h}}
|{{Code|20h}}
|Query System Address Map. The information returned from [[E820]] supersedes what is returned from the older <code>AX=E801h</code> and <code>AH=88h</code> interfaces.
|क्वेरी सिस्टम एड्रेस मैप E820 से दी गई जानकारी पुराने AX=E801h और AH=88h इंटरप्टरफेस से दी गई जानकारी का स्थान लेती है।
|}
|}
|-
|-
|[[INT 16H|{{Code|16h}}]]
|[[INT 16H|{{Code|16h}}]]
|Keyboard services
|कीबोर्ड सेवाएं
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!{{Code|एएच}}
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|Read Character
|चरित्र पढ़ें।
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|Read Input Status
|इनपुट स्थिति पढ़ें।
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|Read Keyboard Shift Status
|कीबोर्ड शिफ्ट स्थिति पढ़ें।
|-
|-
|{{Code|05h}}
|{{Code|05h}}
|Store Keystroke in Keyboard Buffer
|कीस्ट्रोक को कीबोर्ड बफर में स्टोर करें।
|-
|-
|{{Code|10h}}
|{{Code|10h}}
|Read Character Eएक्सटीended
|कैरेक्टर एक्सटेंडेड पढ़ें।
|-
|-
|{{Code|11h}}
|{{Code|11h}}
|Read Input Status Eएक्सटीended
|इनपुट स्थिति विस्तारित पढ़ें।
|-
|-
|{{Code|12h}}
|{{Code|12h}}
|Read Keyboard Shift Status Eएक्सटीended
|कीबोर्ड शिफ्ट स्थिति विस्तारित पढ़ें।
|}
|}
|-
|-
|{{Code|17h}}
|{{Code|17h}}
|Printer services
|Prइंटरप्टer services
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!{{Code|एएच}}
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|Print Character to Printer
|प्रइंट्राप्ट कैरेक्टर टू प्रइंट्राप्टर।
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|Initialize Printer
|प्रांप्टर को इनिशियलाइज़ करें।
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|Check Printer Status
|प्रिंटर स्थिति की जाँच करें।
|}
|}
|-
|-
|{{Code|18h}}
|{{Code|18h}}
|Execute [[Cassette BASIC]]: On आईबीएम machines up to the early PS/2 line, this interrupt would start the ROM Cassette BASIC. Clones did not have this feature and different machines/BIOSes would perform a variety of different actions if INT 18h was executed, most commonly an error message stating that no bootable disk was present. Modern machines would attempt to [[Network boot|boot from a network]] through this interrupt. On modern machines this interrupt will be treated by the BIOS as a signal from the bootloader that it failed to complete its task. The BIOS can then take appropriate neएक्सटी steps.<ref name=spec>* [https://www.scs.stanford.edu/nyu/04fa/lab/specsbbs101.pdf BIOS Boot Specification Version 1.01 January 11 1996] Appendix D</ref>
|कैसेट बेसिक निष्पादित करता है आईबीएम मशीनों पर शुरुआती पीएस/2 लाइन तक यह इंटरप्ट ROM कैसेट बेसिक प्रारंभ करता है। चूँकि क्लोन में यह सुविधा नहीं थी और यदि इंटरप्ट 18h को निष्पादित किया गया था। अतः तब विभिन्न मशीनें / BIOS विभिन्न प्रकार की विभिन्न क्रियाएं करती है। समान्यतः त्रुटि संदेश बताता है कि कोई बूट करने योग्य डिस्क उपस्थित नहीं थी। आधुनिक मशीनें इस इंटरप्ट के माध्यम से नेटवर्क से बूट करने का प्रयास करता है। आधुनिक मशीनों पर इस इंटरप्ट को BIOS द्वारा बूटलोडर से संकेत के रूप में माना जाता है कि यह अपना कार्य पूर्ण करने में विफल रहता है। तब BIOS उपयुक्त अगला कदम उठा सकता है।
|-
|-
|{{Code|19h}}
|{{Code|19h}}
|After POST this interrupt is used by the BIOS to load the operating system. A program can call this interrupt to reboot the computer (but must ensure that hardware interrupts or DMA operations will not cause the system to hang or crash during either the reinitialization of the system by BIOS or the boot process).
|डाक के पश्चात् ऑपरेटिंग सिस्टम को लोड करने के लिए BIOS द्वारा इस इंटरप्ट का उपयोग किया जाता है। प्रोग्राम कंप्यूटर को रिबूट करने के लिए इस इंटरप्ट को कॉल कर सकता है (चूँकि यह सुनिश्चित करना चाहिए कि हार्डवेयर इंटरप्ट या डीएमए संचालन सिस्टम को BIOS या बूट प्रक्रिया द्वारा सिस्टम के पुनर्संरचना के समय हैंग या क्रैश नहीं करता है)
|-
|-
|{{Code|1Ah}}
|{{Code|1Ah}}
|Real Time Clock Services
|वास्तविक समय घड़ी सेवाएं
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AH}}
!{{Code|एएच}}
!Description
!विवरण
|-
|-
|{{Code|00h}}
|{{Code|00h}}
|Read RTC
|आरटीसी पढ़ें।
|-
|-
|{{Code|01h}}
|{{Code|01h}}
|Set RTC
|आरटीसी सेट करें।
|-
|-
|{{Code|02h}}
|{{Code|02h}}
|Read RTC Time
|आरटीसी समय पढ़ें।
|-
|-
|{{Code|03h}}
|{{Code|03h}}
|Set RTC Time
|आरटीसी समय निर्धारित करें।
|-
|-
|{{Code|04h}}
|{{Code|04h}}
|Read RTC Date
|आरटीसी तिथि पढ़ें।
|-
|-
|{{Code|05h}}
|{{Code|05h}}
|Set RTC Date
|आरटीसी तिथि निर्धारित करें।
|-
|-
|{{Code|06h}}
|{{Code|06h}}
|Set [[RTC Alarm]]
|[[आरटीसी अलार्म]] सेट करें।
|-
|-
|{{Code|07h}}
|{{Code|07h}}
|Reset RTC Alarm
|आरटीसी अलार्म रीसेट करें।
|}
|}
|-
|-
|{{Code|1Ah}}
|{{Code|1Ah}}
|[[Conventional PCI|पीसीI]] Services - implemented by BIOSes supporting पीसीI 2.0 or later
|[[पीसीआई]] सेवाएं - पीसीआई 2.0 या पश्चात् के संस्करण का समर्थन करने वाले BIOS द्वारा कार्यान्वित
{| class="wikitable" border="1" style="margin-left:1em"
{| class="wikitable" border="1" style="margin-left:1em"
|-
|-
!{{Code|AX}}
!{{Code|एएक्स}}
!Description
!विवरण
|-
|-
|{{Code|B101h}}
|{{Code|B101h}}
|पीसीI Installation Check
|पीसीआई स्थापना जांच।
|-
|-
|{{Code|B102h}}
|{{Code|B102h}}
|Find पीसीI Device
|पीसीआई स्थापना जांच।
|-
|-
|{{Code|B103h}}
|{{Code|B103h}}
|Find पीसीI Class Code
|पीसीआई कक्षा कोड खोजें।
|-
|-
|{{Code|B106h}}
|{{Code|B106h}}
|पीसीI Bus-Specific Operations
|पीसीआई बस-विशिष्ट संचालन।
|-
|-
|{{Code|B108h}}
|{{Code|B108h}}
|Read Configuration Byte
|कॉन्फ़िगरेशन बाइट पढ़ें।
|-
|-
|{{Code|B109h}}
|{{Code|B109h}}
|Read Configuration Word
|कॉन्फ़िगरेशन शब्द पढ़ें।
|-
|-
|{{Code|B10Ah}}
|{{Code|B10Ah}}
|Read Configuration Dword
|कॉन्फ़िगरेशन डॉवॉर्ड पढ़ें।
|-
|-
|{{Code|B10Bh}}
|{{Code|B10Bh}}
|Write Configuration Byte
|कॉन्फ़िगरेशन बाइट लिखें।
|-
|-
|{{Code|B10Ch}}
|{{Code|B10Ch}}
|Write Configuration Word
|कॉन्फ़िगरेशन शब्द लिखें।
|-
|-
|{{Code|B10Dh}}
|{{Code|B10Dh}}
|Write Configuration Dword
|कॉन्फ़िगरेशन डॉवर्ड लिखें।
|-
|-
|{{Code|B10Eh}}
|{{Code|B10Eh}}
|Get IRQ Routine Information
|आईआरक्यू नियमित जानकारी प्राप्त करें।
|-
|-
|{{Code|B10Fh}}
|{{Code|B10Fh}}
|Set पीसीI IRQ
|पीसीआई आईआरक्यू सेट करें।
|}
|}
|-
|-
Line 469: Line 468:
|-
|-
|{{Code|1Dh}}
|{{Code|1Dh}}
|Not to be called; simply a pointer to the VPT (Video Parameter Table), which contains data on video modes
|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 pointer to the DPT (Diskette Parameter Table), containing a variety of information concerning the diskette drives
|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 pointer to the VGCT (Video Graphics Character Table), which contains the data for ASCII characters {{Code|80h}} to {{Code|FFh}}
|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 pointer: FDPT = Fixed Disk Parameter Table (1st hard drive)
|Address poइंटरप्टer: FDPT = Fixed Disk Parameter Table (1st hard drive)
|-
|-
|{{Code|46h}}
|{{Code|46h}}
|Address pointer: FDPT = Fixed Disk Parameter Table (2nd hard drive)
|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 संस्करणों में यह उपयोगकर्ता को बूट करने योग्य वॉल्यूम डालने और कुंजी दबाने के लिए संकेत देगा, और फिर उपयोगकर्ता द्वारा कुंजी दबाए जाने के बाद यह बूटस्ट्रैप लोडर (INT 19h) पर फिर से बूट करने का प्रयास करेगा।
जैसे-जैसे समय बीतता गया और बेसिक को सभी पीसी पर शिप नहीं किया गया, यह व्यवधान केवल त्रुटि संदेश प्रदर्शित करेगा जो यह दर्शाता है कि कोई बूट करने योग्य वॉल्यूम नहीं मिला (प्रसिद्ध, नो रॉम बेसिक, या बाद के 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 में समस्याओं के समाधान के लिए INT 13 को हुक करता है। .
DOS सिस्टम पर, IO.SYS या आईबीएमBIO.COM फ़्लॉपी डिस्क परिवर्तन का पता लगाने, फ़ॉर्मेटिंग कॉल को ट्रैक करने, DMA सीमा त्रुटियों को ठीक करने और पहली कॉल से पहले मॉडल कोड 0xFC के साथ आईबीएम के ROM BIOS 01/10/84 में समस्याओं के समाधान के लिए इंटरप्ट 13 को हुक करता है। .


== बायपास BIOS ==
== बायपास BIOS ==


कई आधुनिक ऑपरेटिंग सिस्टम (जैसे [[लिनक्स]] और [[ खिड़कियाँ |खिड़कियाँ]] ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे [[डिवाइस ड्राइवर]]ों पर भरोसा करते हैं जो या तो [[ओएस कर्नेल]] का भाग हैं, ओएस के साथ शिप करते हैं, या हार्डवेयर विक्रेताओं द्वारा प्रदान किए जाते हैं।
अनेक आधुनिक ऑपरेटिंग सिस्टम (जैसे [[लिनक्स]] और [[ खिड़कियाँ |खिड़कियाँ]] ) स्टार्टअप के बाद किसी भी BIOS इंटरप्ट कॉल का उपयोग नहीं करते हैं, इसके अतिरिक्त हार्डवेयर के साथ सीधे इंटरफेस का चयन करते हैं। ऐसा करने के लिए, वे [[डिवाइस ड्राइवर]]ों पर भरोसा करते हैं जो या तो [[ओएस कर्नेल]] का भाग हैं, ओएस के साथ शिप करते हैं, या हार्डवेयर विक्रेताओं द्वारा प्रदान किए जाते हैं।


इस प्रथा के कई कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि BIOS कोड केवल वास्तविक मोड में निष्पादित होगा। इसका अर्थ यह है कि यदि संरक्षित मोड में चल रहा कोई OS BIOS कॉल करना चाहता है, तो उसे पहले वास्तविक मोड में स्विच करना होगा, फिर कॉल को निष्पादित करना होगा और उसके वापस आने की प्रतीक्षा करनी होगी, और अंत में वापस सुरक्षित मोड में स्विच करना होगा। यह बेहद धीमा और अक्षम होगा। कोड जो वास्तविक मोड में चलता है (BIOS सहित) 16-बिट X86_memory_segmentation का उपयोग करने के कारण केवल 1 [[मेगाबाइट]] मेमोरी तक ही सीमित है। इसके अतिरिक्त, BIOS सामान्यतः किसी विशेष कार्य को करने का सबसे तेज़ विधि नहीं है। वास्तव में, BIOS की गति सीमाओं ने इसे DOS युग में भी कार्यक्रमों के लिए सामान्य बना दिया जिससे कि इसकी प्रदर्शन सीमाओं से बचा जा सके, विशेष रूप से वीडियो ग्राफिक्स डिस्प्ले और तेज़ सीरियल संचार के लिए।
इस प्रथा के अनेक कारण हैं। सबसे महत्वपूर्ण यह है कि आधुनिक ऑपरेटिंग सिस्टम प्रोसेसर के साथ संरक्षित मोड (या लंबे मोड) मोड में चलते हैं, जबकि 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 Interrupt List] (a.k.a. RBIL, Ralf Brown's Interrupt List)
* [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 Interface Technical Reference'', आईबीएम, 1988, {{OCLC|20737442}}
* ''आईबीएम 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 वीडियो सेवाएं
एएच विवरण
00h वीडियो मोड सेट करें।
01h कर्सर का आकार सेट करें।
02h कर्सर की स्थिति निर्धारित करें।
03h कर्सर की स्थिति और आकार प्राप्त करें।
04h लाइट पेन स्थिति प्राप्त करें।
05h प्रदर्शन पृष्ठ सेट करें।
06h स्पष्ट / स्क्रॉल स्क्रीन ऊपर।
07h स्पष्ट / स्क्रॉल स्क्रीन नीचे।
08h कर्सर पर चरित्र और गुण पढ़ें।
09h कर्सर पर कैरेक्टर और एट्रिब्यूट लिखें।
0Ah कर्सर पर कैरेक्टर लिखें।
0Bh बॉर्डर कलर सेट करें।
0Ch ग्राफिक्स पिक्सेल लिखें।
0Dh ग्राफिक्स पिक्सेल पढ़ें।
0Eh टीटीवाई मोड में कैरेक्टर लिखें।
0Fh वीडियो मोड प्राप्त करें।
10h पैलेट रजिस्टर सेट करें (ईजीए, वीजीए, एसवीजीए)।
11h कैरेक्टर जेनरेटर (ईजीए, वीजीए, एसवीजीए)।
12h वैकल्पिक चयन कार्य (ईजीए, वीजीए, एसवीजीए)।
13h स्ट्रिंग लिखें।
1Ah प्रदर्शन संयोजन कोड प्राप्त करें या सेट करें (वीजीए, एसवीजीए)।
1Bh कार्यक्षमता जानकारी प्राप्त करें (वीजीए, एसवीजीए)।
1Ch वीडियो स्थिति प्राप्त करे या पुनर्स्थापित करें (VGA, SVGA)।
4Fh VESA BIOS विस्तार कार्य (SVGA)।
11h उपकरण सूची वापस करता है।
12h पारंपरिक स्मृति आकार वापस करे।
13h निम्न स्तर की डिस्क सेवाएँ
एएच विवरण
00h डिस्क ड्राइव को रीसेट करें।
01h ड्राइव स्थिति खोज करता है।
02h सेक्टर्स पढ़ें।
03h सेक्टर लिखें।
04h सेक्टरों को सत्यापित करें।
05h प्रारूप ट्रैक।
08h ड्राइव पैरामीटर प्राप्त करें।
09h इनिट फिक्स्ड ड्राइव पैरामीटर्स।
0Ch निर्दिष्ट ट्रैक की खोज करें।
0Dh फ़िक्स्ड डिस्क नियंत्रक को रीसेट करें।
15h ड्राइव प्रकार प्राप्त करें।
16h फ्लॉपी ड्राइव मीडिया परिवर्तन स्थिति प्राप्त करें।
17h डिस्क प्रकार सेट करें।
18h फ़्लॉपी ड्राइव मीडिया प्रकार सेट करें।
41h विस्तारित डिस्क ड्राइव (ईडीडी) स्थापना जांच।
42h एक्सटेंडेड रीड सेक्टर्स।
43h विस्तारित लेखन क्षेत्र।
44h विस्तारित सत्यापित क्षेत्र।
45h लॉक/अनलॉक ड्राइव।
46h मीडिया को बाहर करो।
47h एक्सटेंडेड सीक।
48h एक्सटेंडेड गेट ड्राइव पैरामीटर्स।
49h एक्सटेंडेड मीडिया परिवर्तन स्थिति प्राप्त करें।
4Eh विस्तारित सेट हार्डवेयर कॉन्फ़िगरेशन।
14h सीरियल पोर्ट सेवाएं
एएच विवरण
00h सीरियल पोर्ट आरंभीकरण।
01h संचारित चरित्र।
02h चरित्र प्राप्त करें।
03h स्थति।
15h Miscellaneous system services
एएच एएल विवरण
00h कैसेट ड्राइव मोटर प्रारंभ करें (एजिएम पीसी/पीसीजेआर केवल)।
01h कैसेट ड्राइव मोटर बंद करें (आईबीएम पीसी/पीसीजेआर केवल)।
02h कैसेट से डेटा ब्लॉक पढ़ें (आईबीएम पीसी/पीसीजेआर केवल)।
03h कैसेट में डेटा ब्लॉक लिखें (आईबीएम पीसी/पीसीजेआर केवल)।
4Fh कीबोर्ड इंटरसेप्टर।
83h प्रतीक्षा घटना।
84h जॉयस्टिक पढ़ें (1986 से BIOS)।
85h Sysreq कुंजी कॉलआउट।
86h प्रतीक्षा।
87h मूव ब्लॉक।
88h विस्तारित मेमोरी आकार प्राप्त करें।
89h संरक्षित मोड पर स्विच करें।
C0h सिस्टम पैरामीटर प्राप्त करें।
C1h विस्तृत BIOS डेटा क्षेत्र खंड प्राप्त करें।
C2h डिवाइस के कार्यों को इंटरप्ट करना।
C3h वॉचडॉग टाइमर फ़ंक्शंस - केवल पीएस/2 सिस्टम।
C4h प्रोग्राम करने योग्य विकल्प चुनें - केवल एमसीए बस पीएस/2 सिस्टम।
D8h EISA सिस्टम फ़ंक्शंस - केवल EISA बस सिस्टम
E8h 01h एक्सटेंडेड मेमोरी साइज प्राप्त करें (नया फंक्शन, 1994 से)। 64 एमबी से अधिक मेमोरी आकार के लिए परिणाम देता है।
E8h 20h क्वेरी सिस्टम एड्रेस मैप E820 से दी गई जानकारी पुराने AX=E801h और AH=88h इंटरप्टरफेस से दी गई जानकारी का स्थान लेती है।
16h कीबोर्ड सेवाएं
एएच विवरण
00h चरित्र पढ़ें।
01h इनपुट स्थिति पढ़ें।
02h कीबोर्ड शिफ्ट स्थिति पढ़ें।
05h कीस्ट्रोक को कीबोर्ड बफर में स्टोर करें।
10h कैरेक्टर एक्सटेंडेड पढ़ें।
11h इनपुट स्थिति विस्तारित पढ़ें।
12h कीबोर्ड शिफ्ट स्थिति विस्तारित पढ़ें।
17h Prइंटरप्टer services
एएच विवरण
00h प्रइंट्राप्ट कैरेक्टर टू प्रइंट्राप्टर।
01h प्रांप्टर को इनिशियलाइज़ करें।
02h प्रिंटर स्थिति की जाँच करें।
18h कैसेट बेसिक निष्पादित करता है आईबीएम मशीनों पर शुरुआती पीएस/2 लाइन तक यह इंटरप्ट ROM कैसेट बेसिक प्रारंभ करता है। चूँकि क्लोन में यह सुविधा नहीं थी और यदि इंटरप्ट 18h को निष्पादित किया गया था। अतः तब विभिन्न मशीनें / BIOS विभिन्न प्रकार की विभिन्न क्रियाएं करती है। समान्यतः त्रुटि संदेश बताता है कि कोई बूट करने योग्य डिस्क उपस्थित नहीं थी। आधुनिक मशीनें इस इंटरप्ट के माध्यम से नेटवर्क से बूट करने का प्रयास करता है। आधुनिक मशीनों पर इस इंटरप्ट को BIOS द्वारा बूटलोडर से संकेत के रूप में माना जाता है कि यह अपना कार्य पूर्ण करने में विफल रहता है। तब BIOS उपयुक्त अगला कदम उठा सकता है।
19h डाक के पश्चात् ऑपरेटिंग सिस्टम को लोड करने के लिए BIOS द्वारा इस इंटरप्ट का उपयोग किया जाता है। प्रोग्राम कंप्यूटर को रिबूट करने के लिए इस इंटरप्ट को कॉल कर सकता है (चूँकि यह सुनिश्चित करना चाहिए कि हार्डवेयर इंटरप्ट या डीएमए संचालन सिस्टम को BIOS या बूट प्रक्रिया द्वारा सिस्टम के पुनर्संरचना के समय हैंग या क्रैश नहीं करता है)।
1Ah वास्तविक समय घड़ी सेवाएं
एएच विवरण
00h आरटीसी पढ़ें।
01h आरटीसी सेट करें।
02h आरटीसी समय पढ़ें।
03h आरटीसी समय निर्धारित करें।
04h आरटीसी तिथि पढ़ें।
05h आरटीसी तिथि निर्धारित करें।
06h आरटीसी अलार्म सेट करें।
07h आरटीसी अलार्म रीसेट करें।
1Ah पीसीआई सेवाएं - पीसीआई 2.0 या पश्चात् के संस्करण का समर्थन करने वाले BIOS द्वारा कार्यान्वित
एएक्स विवरण
B101h पीसीआई स्थापना जांच।
B102h पीसीआई स्थापना जांच।
B103h पीसीआई कक्षा कोड खोजें।
B106h पीसीआई बस-विशिष्ट संचालन।
B108h कॉन्फ़िगरेशन बाइट पढ़ें।
B109h कॉन्फ़िगरेशन शब्द पढ़ें।
B10Ah कॉन्फ़िगरेशन डॉवॉर्ड पढ़ें।
B10Bh कॉन्फ़िगरेशन बाइट लिखें।
B10Ch कॉन्फ़िगरेशन शब्द लिखें।
B10Dh कॉन्फ़िगरेशन डॉवर्ड लिखें।
B10Eh आईआरक्यू नियमित जानकारी प्राप्त करें।
B10Fh पीसीआई आईआरक्यू सेट करें।
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 और संरक्षित मोड की संगतता समस्याओं पर विचार किए बिना भी।

यह भी देखें

संदर्भ

  1. "Booting · Linux Inside". 0xax.gitbooks.io. Retrieved 2020-11-10.
  2. "Grub2 Booting Process". 21 June 2016.