رايانههاي
XT با توجه به تعداد محدود پارامترها، پيکربندي سيستم با استفاده از
ميکروسوئيچ امکانپذير است اما در سيستم هاي AT به دليل بالا بودن تعداد
پارامترهاي قابل برنامهريزي توسط استفادهکننده، حضور يک منبع که هم
بهراحتي در دسترس باشد و هم جاي کمي اشغال كند، ضروري به نظر ميرسد؛ اين
منبع در رايانههاي AT حافظه CMOS ناميده ميشود.
حافظه CMOS داراي 64 بايت و يا بيشتر ظرفيت بوده
که توسط دو پورت H70 و H71 قابل دسترسي است و از آن براي نگهداري ساعت،
تاريخ و پيکربندي سيستم استفاده ميشود؛ همچنين تعدادي از بيتهاي اين
حافظه براي چک کردن پيکربندي سيستم تحت عنوان CHECKSUM استفاده ميشود.
محتويات اين حافظه در زمان خاموش
بودن سيستم توسط يک باتري پشتيبان 3/6 ولتي نگهداري ميشود؛ اين باطري
ممکن است در داخل و يا در خارج از مادربورد قرار داشته باشد. البته در بعضي
از سيستمها مجموعه باتري و حافظه به صورت يکپارچه ارائه شده که نمونه آن
مارک DALLAS است.
از نظر عملکرد و نحوه دستيابي هيچ
تفاوتي بين انواع متفاوت CMOS وجود ندارد و همگي با استفاده از دو پورت
يادشده قابل دسترسي و برنامهريزي هستند.
تغيير در محتويات CMOS به گفته
مسلم عزتي - كارشناس - بهطور معمول از طريق برنامه SETUP امکانپذير است
اما در صورتي که در ستآپ سيستم رمز تعريف شده باشد و رمز مربوطه را هم در
اختيار نداشته باشيد، در اين صورت امکان ورود به برنامه ستآپ و تغيير در
پيکربندي سيستم (اطلاعات CMOS) امکانپذير نخواهد بود.
در اين موارد راهي جز پاک کردن
محتويات CMOS نداريم. در اين مواقع دو احتمال وجود دارد: براي وارد شدن به
سيستم رمز تعريف شده باشد و براي وارد شدن به ستآپ رمز تعريف شده باشد.
در حالت اول با توجه به بوت نشدن
کامپيوتر کاري از نرمافزارها ساخته نيست و بايد به پاک کردن محتويات CMOS
به صورت سختافزاري اقدام كرد. اين کار معمولا با برداشتن باتري پشتيبان
ستآپ براي چند دقيقه، يا اتصال کوتاه برروي جامپر مربوطه (J8) و يا تعويض
تراشه CMOS امکانپذير است. البته اين روشها در صورتي کارآمد خواهد بود که
شما مجاز به باز کردن کيس رايانه باشيد که البته در اکثر مواقع اين امکان
وجود ندارد.
در صورتي که اعمال فوق درست صورت
نگيرد، احتمال سوختن و خراب شدن CMOS وجود دارد، بنابراين تا حد امکان بايد
از کاربرد اين روش اجتناب شود، مگر در مواقعي که ضرورت ايجاب كند.
در حالت دوم با توجه به بوت شدن
رايانه نيازي به اقدامات فوق نبوده و ميتوان با استفاده از نرمافزارهاي
مناسب به پاک کردن و يا ذخيره اطلاعات CMOS اقدام كنيم. از آنجا که هميشه
نرمافزار مناسب وجود ندارد و يا در دسترس نيست، بايد قادر باشيم تا با
استفاده از امکانات موجود برروي رايانه اين کار را انجام دهيم.
با استفاده از برنامه DEBUG.EXE
که همراه فايلهاي سيستم عامل DOS و ويندوز وجود دارد، ميتوان با خواندن و
يا نوشتن در پورتهاي H70 و H71 تغييرات لازم را در محتويات CMOS اعمال
كرد.
دو پورت فوق پورت H70 بعنوان
گذرگاه آدرس (ADDRESS BUS) و پورت H71 بعنوان گذرگاه داده بکار ميرود.
الگوريتم کلي کار به اين صورت است که CMOS را بهعنوان يک آرايه يک بعدي در
نظر ميگيريم که داراي 256 خانه است.
براي دسترسي به هر خانه بايد
ابتدا انديس (آدرس) خانه را در پورت H70 بنويسيم و بعد از دسترسي به خانه
مورد نظر ميتوان داده دلخواه را درآن نوشت و يا از آن خواند. دسترسي به
دادهها نيز فقط از طريق پورت H71 امکانپذير است.
آخرين نکته اينکه عمل نوشتن و يا خواندن از پورتها به کمک ثبات AL و توسط دستورهاي IN و OUT مربوط به زبان اسمبلي امکانپذير است.