Articles » How To » Backup, Reset & Restore CMOS
Backup, Reset & Restore CMOS
Posted on 2000-04-16 11:13:00 - #Hits : 967

General Information
Publisher: Majalah Ilmiah Informatika STIMIK AKI
Published: Vol. I/2/1999 [April - Juni] - April 1999

Abstract
For Security sake, computer is often protected. One of the method is CMOS (Computer Management Operating System) with using password. but when we want to change the password and we forgot the password, so the password can be reset either by hardware or by software.

Metode Mereset CMOS
Ada beberapa cara untuk mengatasinya. Dari yang sangat mudah, sampai yang sedikit beresiko, antara lain :

  1. Menunggu sampai baterai CMOS habis.
    Dengan cara ini, kita tidak melakukan kegiatan apa-apa selain menunggu dan menunggu sampai baterai CMOS habis. Apabila baterai CMOS habis, maka secara otomatis password tersebut hilang. Tetapi lama waktu yang dibutuhkan untuk menghabiskan baterai tersebut amat tergantung dari daya yang tersimpan dari baterai yang digunakan, sehingga waktunya tidak dapat diestimasi, kapan baterai CMOS tersebut habis.
  2. Menggunakan password default.
    Adakalanya perusahaan pembuat BIOS menciptakan password default sebagai jalan pintas bagi para teknisinya untuk memperbaiki BIOS. Sebenarnya password ini merupakan password rahasia yang tidak boleh diketahui oleh orang selain teknisi perusahaan tersebut. Tetapi kenyataannya, password tersebut juga diketahui oleh orang selain teknisi perusahaan tersebut.

    Sebagai contoh, AWARD SOFTWARE mempunyai beberapa password default yaitu antara lain : AWARD_SW, AWARD_MN, AWARD_SN, j262, dan sebagainya. Cara ini memiliki kelemahan yaitu tidak setiap perusahaan pembuat BIOS mempunyai password default yang sama. Password default dari AWARD SOFTWARE tentunya berbeda dengan password default dari AMI, Phoenix, dan sebagainya.
  3. Melepas/konsletting baterai CMOS.
    Cara ini cukup ampuh. Dengan melepas baterai CMOS dari motherboard atau melakukan konsletting pada baterai CMOS, maka data pada CMOS otomatis akan hilang, tidak bergantung pada jenis BIOS. Tetapi cara ini mempunyai kelemahan yaitu pada motherboard tertentu, letak atau bentuk baterai CMOS disamarkan.
  4. Mereset CMOS secara software.
    Dengan cara ini, CMOS direset tanpa mempedulikan jenis BIOS maupun motherboardnya. Cara inilah yang akan dibahas.

Untuk mereset CMOS secara software, kita harus memprogram PORT CMOS. Tetapi sebelum melangkah lebih jauh, perlu dijelaskan dahulu mengenai port.

Port
Port dapat diartikan sebagai terminal tempat komputer berhubungan dengan alat - alat / peripheral lain, seperti diskdrive, keyboard, monitor, speaker, dan sebagainya. Karena port berhubungan langsung dengan perangkat keras komputer, maka kita harus mengetahui dengan jelas cara mengaksesnya. Ada port yang hanya bisa ditulis, dibaca, atau bisa keduanya (baca-tulis).

Untuk port yang mempunyai fungsi baca-tulis, biasanya mempunyai suatu port lagi yang digunakan sebagai port pengontrol yang berfungsi untuk mengatur modus dari operasi yang akan dilakukan terhadap alat tersebut, atau bisa juga sebagai index dari data yang disimpan pada port tersebut.

Port berdasarkan pengolahan datanya dibedakan menjadi dua yaitu :

  1. Port bertipe byte
    Yaitu port yang dalam operasi pengolahannya menggunakan data bertipe byte. Apabila data yang akan dimasukkan bertipe word, maka data dimasukkan secara bertahap yaitu Most Significant Byte (MSB, Byte tinggi dari data tersebut) baru kemudian Least Significant Byte (LSB, Byte rendah dari data tersebut), atau sebaliknya dimana telah diatur modus operasinya pada port pengontrol.
  2. Port bertipe word
    Yaitu port yang dalam operasi pengolahannya menggunakan data bertipe word.

Port CMOS termasuk dalam kategori port baca-tulis dimana indexnya terletak pada port 70hexa (70h) yang merupakan suatu index bertipe byte sebanyak 255, yaitu nomor 1 sampai 255 dan datanya terletak pada port 71hexa (71h). Untuk melakukan operasi baca-tulis pada port CMOS, terlebih dahulu diisikan nomor / posisi data yang akan dibaca/ditulis pada port 70h, baru kemudian membaca / mengisikan datanya pada port 71h.

Sebagai contoh kita ingin mengisi data ke-50 dengan nilai 20, maka algoritmanya adalah sebagai berikut :

  1. Isi port 70h dengan 50
  2. Isi port 71h dengan 20
  3. Selesai


Untuk membaca data ke-200 dan menampilkan isinya, maka algoritmanya adalah sebagai berikut :
  1. Isi port 70h dengan 200
  2. Baca port 71h dan nilainya dimasukkan ke variabel N
  3. Tulis N
  4. Selesai

Backup, Reset, dan Restore CMOS
Untuk mereset CMOS, kita tinggal mengisikan nilai nol pada setiap data pada port 71h. Algoritmanya adalah sebagai berikut :

  1. Ulangi langkah 2 dari i = 1 sampai 255
  2. a. Isi port 70h dengan i
    b. Isi port 71h dengan 0
  3. Selesai

Seperti yang telah dijelaskan di atas bahwa dengan mereset CMOS maka secara otomatis data yang ada menjadi hilang dan nilainya merupakan default dari perusahaan pembuatnya. Untuk hal-hal khusus, kita perlu melakukan backup terhadap data CMOS agar bila di kemudian hari data CMOS tidak valid, misalnya karena virus atau orang iseng, kita dapat melakukan pemulihan (restore) data CMOS.

Untuk melakukan backup data CMOS, diperlukan file untuk menyimpan datanya. Algoritmanya adalah sebagai berikut :

  1. Buat dan buka file backup
  2. Ulagi langkah 3 dari i=1 sampai 255
  3. a. Isi port 70h dengan i
    b. Baca port 71h dan nilainya dimasukkan pada variabel array buffer[i]
  4. Tulis nilai pada variabel array buffer ke file backup
  5. Tutup file backup
  6. Selesai

Sedangkan untuk melakukan pemulihan data CMOS, maka algoritmanya adalah sebagai berikut :
  1. Buka file backup
  2. Baca nilai yang ada pada file backup ke variabel array buffer
  3. Ulangi langkah 4 dari i=1 sampai 255
  4. a. Isi port 70h dengan i
    b. Isi port 71h dengan nilai yang ada pada variabel array buffer[i]
  5. Tutup file backup
  6. Selesai

Implementasi
Untuk mengimplementasikan algoritma di atas menjadi sebuah program, maka penulis menggunakan compiler PASCAL. Pada bahasa PASCAL, perintah untuk mengakses port adalah :

  • PORT[Nomor] , bila port yang diakses bertipe byte;
  • PORTW[Nomor], bila port yang diakses bertipe word. Dimana nomor merupakan nomor port yang akan diakses.


Sebagai contoh kita ingin mengisi data ke-50 dengan nilai 20, maka perintahnya adalah sebagai berikut :
  • PORT[$70] := 50;
  • PORT[$71] := 20;


Untuk membaca data ke-200, perintahnya adalah sebagai berikut :
  • PORT[$70] := 200;
  • Isi := PORT[$71];

Penutup
Dengan mereset CMOS, maka secara otomatis tidak hanya data password saja yang hilang, tetapi seluruh data CMOS, misalnya jenis Harddisk. Dalam kondisi ini, CMOS berisi data default dari perusahaan pembuatnya. Jadi berhati - hatilah. Tanggung sendiri akibatnya.

Program ini telah dicoba dan berjalan dengan baik pada Merek BIOS :

  1. Award Modular BIOS versi 4.51PG
  2. PhoenixBIOS versi 4.03

Listing Program :
Program Reset; var i:byte; begin writeln('Reset CMOS'); for i:=1 to 255 do begin port[$70]:=i; port[$71]:=0; end; writeln('Reset CMOS sukses'); end.
Program Backup; var i:byte; buffer : array[1..255] of byte; f : file; nm : string; begin writeln('Backup CMOS'); for i:=1 to 255 do begin port[$70]:=i; buffer[i]:=port[$71]; end; write('Masukkan nama file backup : ');readln(nm); assign(f,nm); {$I-}Rewrite(f,1);{$I+} if IOResult <> 0 then begin writeln('Gagal membuat backup'); halt(1); end; blockwrite(f,buffer,sizeof(buffer)); close(f); writeln('Backup CMOS sukses'); end.
Program Restore; var i:byte; buffer : array[1..255] of byte; f : file; nm : string; begin writeln('Restore CMOS'); write('Masukkan nama file backup : ');readln(nm); assign(f,nm); {$I-}Reset(f,1);{$I+} if IOResult <> 0 then begin writeln('Gagal membuka backup'); halt(1); end; blockread(f,buffer,sizeof(buffer)); for i:=1 to 255 do begin port[$70]:=i; port[$71]:=buffer[i]; end; close(f); writeln('Restore CMOS sukses'); end.
back
top
Best viewed with XHTML1 and CSS2 compliant browser @ 1024x768x32 Misc. Info
Copyright © 2003 - 2005, Bayu Prasetio.