بطور كلي ios B به ورودي و خروجي مربوط مي شود ، Bios شامل راه اندازها يا رابطهاي نرم افزاري براي ۵ ابزار سخت افزاري زير مي باشد : كنسول ( صفحه كليد و صفحه نمايش ) ، يك چاپگر عمومي ، ابزار كمكي ( پورت سري ) ، ساعت كامپيوتر و ابزار ديسك راه انداز . بخشي از Bios توسط سازندگان كامپيوتر در داخل هر كامپيوتر قرار داده مي شود .

اين قسمت Bios بخش مقيم نام دارد كه Bios Ram هم ناميده مي شود چون در تراشه هاي حافظه فقط خواندني قرار گرفته كه در برد سيستم كامپيوتر جا مي گيرد . Bios Ram به عنوان يك رابط با سخت افزار كامپيوتر عمل مي كند كه در آن ابزارهاي سخت افزاري نصب شده و كامپيوتر را كنترل مي كند ، همچنين يك رابط استاندارد شده با نرم افزار را ارائه مي دهد . دومين بخش Bios غير مقيم است كه در هنگام راه اندازي كامپيوتر از روي ديسك به داخل حافظه انتقال مي يابد و دستيابي تصادفي خوانده مي شود

. در Ms_dos اين فايل io.sys ناميده مي شود ؛ در Pc_dos آن IBMBIO.com ناميده مي شود . عليرغم نامهاي متفاوت اما هر دو يك وظيفه را انجام مي دهند . اين فايل صفات مخفي و سيستم را دارد و به اين معناست كه فايل را در ليست دايركتوري تان نخواهيد ديد مگر اينكه Ms_dos ورژن ۵ يا بالاتر داشته باشد و از سوئيچ /ah با فرمان Dir استفاده كنيد يا از برنامه اي كمكي استفاده كنيد كه نام فايلهاي مخفي را نشان مي دهد .

سرويسهاي Bios : يك رمز برنامه نويسي موفق روي خانواده هاي Pc در استفادة موثر از سرويسهاي موجود در Bios مي باشد . همان طور كه گفتيم سرويسهاي Bios بين سخت افزار و نرم افزارهاي سطح بالاتر جاي دارند كه اين نرم افزارها شامل زبانهاي برنامه نويسي ، برنامه هاي كاربردي و هستة Ms_dos مي باشد .

سرويسهاي Bios مستقيمأ با سخت افزار كامپيوتر و ابزارهاي جانبي كار مي كنند آنها بعضي از اساسي ترين وظايف سيستم كامپيوتر مانند مانند خواندن و نوشتن بايتهاي منفرد از و به صفحه نمايش يا ديسك را انجام مي دهند ، سرويسهاي Ms_dos و سرويسهاي برنامه هايتان را با دستيابي مستقيم به Bios بهبود بخشيد در نتيجه به مجموعه واقعأ نيرومندي از ابزارها دست يافته اند و از كامپيوترتان به نحوي استفاده مي كنيد كه IBM مي خواهد آن طور باشد . به طوري كه در هر مدل جديد كه طراحي مي شود IBM مطمئن است سرويسهاي Bios آن كاملأ با اعضاي ديگر خانواده سازگار هستند . تازمانيكه با استفاده از Bios كامپيوترتان را كنترل مي كنيد به صورت مستقيم يا غير مستقيم از پيش آمدن هر گونه مشكل سازگاري مصون هستيد . اگر Bios را كنار بگذاريد و مستقيمأ به سخت افزار برنامه دهيد نه اينكه فقط به مشكل مي افتيد بلكه شديدأ محدودة عملكرد برنامه هايتان را محدود مي كنيد .

فلسفه Bios يا ( چگونگي عملكرد Bios ) : تمام سرويسهاي Bios توسط وقفه هايي احضار مي شوند . هر دستور عمل وقفة يك مدخل را در جدول بردار وقفه در حافظة پايين انتخاب مي شود . آدرس هاي تمام روال هاي سرويس Bios در اين جدول ذخيره مي شود . اين طرح براي برنامه اين امكان را به وجود مي آورد كه بدون دانستن محل حافظه مشخص روال سرويس Bios ، سرويس را درخواست كند . همچنين اجازه مي دهد تا سرويسها تغيير مكان دهند ، وسعت يا وفق يابند

، بدون اينكه بر برنامه اي كه از سرويسها استفاده مي كند اثر بگذارد . اگر چه IBM سعي كرده است محل هاي حافظة بعضي بخشهاي Bios را ثابت نگه دارد اما درست نيست كه از اين آدرس ها در برنامه استفاده شود چون آنها ممكن است در آينده تغيير كنند روش استاندارد ، ارجع و معتبر تر براي احضار يك سرويس Bios اين است كه به جاي آدرس مطلقش از وقفة آن استفاده كنيد . سرويسهاي Bios مي تواند توسط يك كارگردان وقفة اصلي نظارت شوند اما در مقابل آنها به دو طبقه بندي موضوعي تقسيم مي شوند و هر طبقه كارگردان وقفة خودش را دارد

. اين طرح اجازه مي دهد هر كارگردان وقفه به راحتي جايگزين مي شود . به عنوان مثال اگر سازندة سخت افزار ، يك صفحه نمايش تصويري كاملأ متفاوتي را ايجاد كند كه تحت برنامة Bios كاملأ جديدي عمل مي نمايد آنگاه سازنده بايد همراه با سخت افزار ، برنامة Bios جديدي را طراحي كند . برنامة جديد Bios مي تواند در Ram به عنوان يك راه انداز قابل نصب در Rom به عنوان تراشه هاي Rom در يك كارت آداپتور ذخيره شود . وقتي كه آدرس روال سرويس جديد در محل مناسب در جدول بردار وقفه درج شود آنگاه روال جديد بطور مؤثري با بخشي از Bios اصلي كه با سخت افزار قديمي به كار مي رفت جايگزين شود . IBM با پيمانه اي كردن Bios توانسته است آن را براي بهبود و گسترش قابليتهاي كامپيوتريش راحت تر سازد .

زنجيره هاي ارتباطي Bios : Bios در سيستم هايي با CPU 80286 يا بالاتر تعدادي زنجيرة ارتباطي را فراهم مي كند . اين زنجيره هاي ارتباطي تحت سرويسهاي وقفهh 15 پياده سازي مي شود اما براي استفاده از آنها بايد يك كارگردان وقفه h15 بنويسيد كه فقط اين سرويسها را پردازش كند و ساير درخواستهاي سرويس وقفة h15 را به Bios عبور دهد . اين ترتيب اجازه مي دهد كه مؤلفه هاي مختلفي از Bios در يك روش سازگار با يكديگر و باسيستم عامل و برنامه هاي نوشته شده توسط كاربر ارتباط برقرار كنند . زنجيره هاي Bios در ابتدا جهت استفاده در سيستم عاملها يا برنامه هاي نوشته شده براي تكميل سيستم عامل يا توابع Bios در نظر گرفته شدند اما Ms_dos و Dsl2 از اين زنجيره هاي Bios استفاده نمي كنند و فقط چند برنامة كاربردي هستند كه به دلائل به خصوصي از آنها استفاده مي كنند.

 

مديريت فايل در Bios : Bios چگونه با نيازهاي يك سيستم مديريت فايل برخورد مي كند ؟ در هر ديسكت فرمت شده دو ناحيه با اهميت بيشتر مربوط به اين بحث وجود دارد . يكي از آنها جدول تخصيص فايل ( fat ) و ناحيه ديگر فهرست يا ( Dir ) است . محل اين دو فضا روي ديسكت در جدول زير مشخص شده است . Fat بلافاصله بعد از ركورد راه انداز مي آيد و مشاهده مي شود كه ۴ سكتور را اشغال مي كند . لكن چنين بر مي آيد كه در واقع دو كپي از يك Fat هر يك شامل دو سكتور ، موجود مي باشد و Dir بلافاصله بعد از Fat مي آيد و هفت سكتور را اشغال مي كند .

Fat دو نياز اساسي براي يك سيستم مديريت را برآورده مي كند اولأ به ما مي گويد كدام سكتور ها اشغال مي شوند و كدام سكتور ها خالي هستد . ثانيأ به ما مي گويد كدام سكتورهاجهت تشكيل يك فايل به هم بسته مي شوند . Fat عملا پيرامون واحدي سازمان مي يابد كه مي تواند شامل يك سكتور يا بيشتر ، بسته به نوع درايو ديسك باشد . در چگالي دو برابر استاندارد ، درايو دو طرفه ، گروهها از دو سكتور متوالي ساخته مي شوند كه Fat ميتواند نشان دهد كه كدام گروهها به هم وابسته اند . Dir چيزهاي ديگر را از جمله آنكه كدام فايلها روي ديسك نگهداري مي شوند ، و كدام گروه ،گروه شروع يك فايل مخصوص مي باشد را نشان مي دهد

( محل Fat و دايركتوري )

طرف ۰ ، شيار ۰
ركورد راه رنداز سكتور ۱
Fat ( اولين كپي ) سكتور ۲
Fat ( ادامة كپي اول ) سكتور ۳
Fat ( كپي دوم ) سكتور ۴
Fat (ادامة كپي دوم ) سكتور ۵
سكتور فهرست ۱ سكتور ۶
سكتور فهرست ۲ سكتور۷
سكتور فهرست ۳ سكتور ۸
سكتور فهرست ۴ سكتور ۹

طرف ۱ ، شيار ۰

سكتور فهرست ۵ سكتور ۱
سكتور فهرست ۶ سكتور ۲
سكتور فهرست ۷ سكتور ۳

به روز آوري Bios : در مادربوردهاي قديمي Bios در يك Rom قرار گرفته و سيستم فقط قادر به خواندن آن مي باشد . در صورت پيشرفت تكنولوژي نياز به Bios احساس شد كه بتوان در صورت نياز آنها را تغيير داد و به روز كرد . اكثر مادربوردهاي جديد اين امكان را دارند يعني Bios آنها از نوع Flash مي باشد كه مي توان با انجام يك سري عمليات ، فايل جديدي را در آن نوشت . مراحل انجام اين كار در هر يك از مادربوردها با ديگري متفاوت است . در اينجا مراحل به روز آوري Bios در مادربوردهاي A_trend مدل ATC_6150 توضيح داده مي شود .

اين مادربوردها مجهز به يك ديسك به روز آوري Bios مي باشد و در هر زمان نيز مي توان نسخه جديدي از آن تهيه كرد . روش اين كار به صورت زير است : ۱ ـ سيستيم را در Dos بوت كنيد . ۲ ـ ديسك Update را كه مخصوص به روز آوري Bios است در درايو A قرار دهيد . ۳ ـ مسير كاري را به A تغيير دهيد . ۴ ـ برنامه به روز آوري Bios را كه عمومأ Owd flash مي باشد اجرا كنيد . ۵ ـ نام فايل به روز آوري Bios را كه از جنس باينري است نوشته و Enter بزنيد . ۶ ـ هنگامي كه پيام Do you want to save bios ? ظاهر شد اگر نمي خواهيد Bios قديمي ذخيره شود بنويسيد N و Enter بزنيد . ۷ ـ در پاسخ به پيغام Are you sure to program ? بنويسيد Y و Enter بزنيد .

۸ ـ مراحل را انجام دهيد تا آخر كار فلاپي را از درايو خارج نكرده يا سيستم را خاموش نكنيد . ۹ ـ سيستسم را پس از اتمام كار خاموش كرده و اطلاعات Cmos را با استفاده از Jps پاك كنيد . ۱۰ ـ پس از روشن كردن سيستيم ، محتويات Cmos را به شكل مورد نياز تنظيم كنيد . دقت داشته باشيد كه هر چند استفاده از Flash Bios باعث افزايش توانايي در استفاده از سيستم مي باشد اما خطر تخريب سيستم را توسط ويروس افزايش مي دهد . بعضي از انواع ويروس ها مانند چرنويل قادر هستند محتويات Bios را پاك كنند در نتيجه سيستم قادر به عملكرد درست نمي باشد .

بايت وضعيت Bios : اغلب توابع Int 13h در صورت موفقيت پرچم نقلي را صفر و در صورت عدم موفقيت پرچم نقلي را يك مي كنند و يك كد وضعيت به ثبات Ah بر مي گرداند . Bios اطلاعاتي راجع به هر ابزار وضعيت آن در ناحيه دادة حوزه نگه مي دارد . بايت وضعيت در شكل زير نشان داده شده است كه بازتابي از بيتهاي ظاهر شده در ناحيه داده Bios در ۴۰ : ۴۱h براي ناحيه دادة ديسك درايو و در ۴۰ : ۴۷h براي ناحيه داده ديسك سخت مي باشد . در صورت بروز خطا در عمليات ديسك ، يك ادغام مشخص برنامه ، تنظيم مجدد ديسك ( تابع ۰۰H ) و سه مرتبه سعي مجدد در انجام عمليات مي باشد . اگر هنوز خطايي وجود دارد برنامه يك پيغام را نمايش مي دهد و به عنوان يك راه حل مشكل ، براي كاربر امكان تغيير ديسك را فراهم مي آورد .

code Status

۰۰H No error
01H Bad command . not not recognized by the controller
02H Adders mark no disk not found
03H Writingon protected disk attempted
04H Invailed track / sector
05H Reset operation failed
06H Diskette removed since last access
07H Draive prameters wrong

۰۸H Direct memory access ( dma ) overrun ( data accessed too fast to enter )
09h Dma across a 64 k boundary attemped on read /write
10H Bad crc on a read encountered ( error check indicated corruted data )
20H contoroler Failed ( hardware failure )
40H Seek operation failed ( hardware failure )
80H Device failed to respond ( diskette : drive door open or no diskette ; hard Disk : time out )
AAH Drive not ready
BBH undefined error
CCH Write fault

ناحيه داده Bios : Bios ، ناحيه داده ۲۵۶ بايتي خودش را در حافظه پاياني با شروع از آدرس سگمنت ۴۰H با فيلدها يي شامل داده هايي به ترتيب بايت معكوس دستكاري مي كند . اين فيلدها شامل ناحيه داده درگاه سريال ، ناحيه داده درگاه موازي ، ناحيه داده تجهيزات سيستم، ناحيه داده متفرقه ، ناحيه داده حافظه ، ناحيه داده درايو ديسك ، ناحيه داده ويدئو ، ناحيه داده سيستم ، ناحيه داده ديسك سخت ، ناحيه داده مربوط به اوقات جانبي و ناحيه داده ساعت زمان حقيقي مي باشد .

رابطة Bios : Dos : در ماژول سيستم ، Io.sys و Msdos.sys استفاده از Bios را سهولت مي بخشد . چون اين ماجولها بسياري از پردازشهاي مورد نياز را فراهم مي سازند ، عمليات Dos عمومأ ساده تر از نسخه Bios خود است و عمدتأ وابستگي كمتري به ماشين دارد . Io.sys يك رابط سطح پايين براي Bios است كه خواندن داده از ابزارهاي خارجي به حافظه و نوشتن داده از حافظه به ابزار خارجي را سهولت مي بخشد . Msdos.sys شامل يك مديريت فايل است و برخي سرويسها را نيز فراهم مي سازد . براي مثال وقتي كاربر برنامه Int21H را تقاضا مي كند ، برنامه اطلاعات را بر طبق محتويات ثباتها به Msdos.sys ارائه مي دهد . براي تكميل درخواست Msdos.sys ممكن است اطلاعات را به يك يا چند فراخواني به Io.sys منتقل كند ، كه به نوبت Bios را فرا ميخواند . شكل زير اين ارتباط را نشان مي دهد .

بافر صفحه كليد در محدودة داده هاي Bios : رويه وقفه ۹ كداسكن را از صفحه كليد مي گيرد و آن را در چند محل حافظه در محدوده داده هاي Bios ذخيره مي كند . به اين محل حافظه بافر صفحه كليد گفته مي شود . اين بافر در محدوده داده هاي Bios نبايد با بافر صفحه كليد كه سرزيري آن باعث ايجاد بوق بلندگو مي شود اشتباه مي شود . اگر كد اسكي وجود دارد وقفة ۹ كد اسكي را نيز براي كليد در بافر صفحه كليد ذخيره مي كند در غير اين صورت صفر به جاي آن قرار مي دهد .

بافر صفحه كليد : مجموعأ ۳۲ بايت ( ۱۶ كلمه ) از حافظه در محدوده دايره هاي Bios براي بافر صفحه كليد در نظر گرفته مي شود كه از آدرس ۰۰۴۳dh :0041eh مي‌باشد . هر دو محل متوالي براي يك كاراكتر در نظر گرفته مي شود . يكي براي كد اسكن و ديگري براي كد اسكي كاراكتر چنانچه وجود داشته باشد . دو اشاره گر به بافر صفحه كليد وجود ارد كه اشاره گر سر بافر و اشاره گر دنباله بافر نام دارد .

آدرس اشاره گر ابتداي بافر آدرس اشاره گر انتهاي بافر بافر صفحه كليد

۴۱B,41A 41D,41C 41E تا ۴۳D

( محدوده BIOS استفاده شده توسط بافر صفحه كليد )
اشاره گر دنباله بافر : آدرس هاي ۰۰۴۰ : ۰۰۱ch و ۰۰۴۰ : ۰۰۱dh حافظه ، آدرس دنبالة بافر صفحه كليد را نگه مي دارند . و اين به اين معني كه در هر لحظه آدرسهاي ۰۰۴۱dh , 0041ch حافظه شامل آدرسي هستند كه وقفه ۹ در آن آدرس ، كاراكتر بعدي را ذخيره مي كند . كار وقفه ۹ قرار دادن كاراكتر در بافر صفحه كليد و جلو بردن دنباله با افزودن محتواي محل ۰۰۴۱ch حافظه مي باشد .

اشاره گر ابتداي بافر : وقفه ۱۶h آدرس كاراكتر بعدي را از محلهاي ۴۱bh , 41ah حافظه يعني محل اشاره گر به سر بافر بدست مي آورد . به محض اينكه وقفه ۱۶h هر كاراكتر را از بافر صفحه كليد مي خواند اشاره گر سر بافر را به جلو مي برد . بحث فوق مي تواند به صورت زير خلاصه شود . وقتي وقفة ۹ كاراكتر را داخل بافر صفحه كليد قرار مي دهند دنبالة بافر را پيش مي برد و وقتي وقفه ۱۶h كاراكتر را از بافر صفحه كليد مي خواند ابتداي بافر را پيش مي برد .

وقتي آنها به انتهاي بافر مي زسند هر دو مي چرخند و به اين ترتيب يك حلقه ۱۶ كلمه اي را ايجاد مي كنند كه ابتداي بافر به صورت مستمر و انتهاي بافر را تعقيب مي كند . اگر بافر صفحه كليد خالي باشد آدرس ابتداي بافر برابر با آدرس انتهاي بافر مي باشد . وقتي كه وقفه ۹ كاراكتر را داخل بافر قرار مي دهد دنباله را جلو مي برد و اگر بافر به وسيله وقفه ۱۶h خوانده نشد بافر پر شده و سبب مي شود كه دنباله درست پشت ابتداي بافر باشد .