Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Respalda y recupera la informacion de tu BIOS

enigmaelectronica

Bovino de alcurnia
Desde
9 Sep 2007
Mensajes
3.410
Muchachos, aqui les dejo este programa, creado especialmente para aquellos que tienen problemas con su BIOS, en ocasiones las BIOS de Phoenix o BIOSTAR almacenan la contraseña y no deja resetearse...

En ocasiones se va la electricidad o tienen problemas con dispositivos perifericos, y se resetea la BIOS, puedes volver a confgurarlo con solo un par de opciones...

Tambien es util cuando tienen placas BIOSTAR que no retienen la informacion por cuestiones de desgaste de bateria y aun cambiandola no funciona mas...

Por favor compilen el codigo fuente en Pascal 7.0 usando la directiva COMPILE > Destination > Disk y luego la directiva BUILD asi les genera el Executable...


fuxj5e.jpg


Parte del Codigo fuente:

Código:
Program CMOS;

Uses Crt, Dos;

Const
Num_CMOS_Regs = 127; {Cantidad de registros - 1}
CMOSFile = 'CMOS.DAT';

Type TCmos = Array[0..Num_CMOS_Regs] Of Byte;

Var
  Num, Info, j: Byte;
  I: LongInt;
  CMOSData: TCmos;
  F: File of TCmos;

Procedure ShowMsg(S: String);
Begin
WriteLn;
WriteLn(S);
ReadKey;
Halt;
End;

{$I-}
Function ExistFile(S: String): Boolean;
Var F: File;
I: Byte;
Begin
Assign(F,S);
Reset(F,1);
I:= IOResult;
ExistFile:= I <> 2;
If I = 0 Then Close(F);
End;
{$I+}

{Guarda la informaci¢n actual del CMOS en un archivo}
Procedure SaveCmos;
Var C: Char;
Begin
  If ExistFile(CMOSFile) Then
   Begin
   WriteLn;
   Write('El archivo de datos ya existe ¨Desea sobreescribirlo (S/N)?');
   Repeat C:= UpCase(ReadKey); Until C In ['S','N'];
   WriteLn(C);
   If C = 'N' Then ShowMsg('La acci¢n ha sido cancelada por el usuario.');
   End;
  For Num := 0 To Num_CMOS_Regs Do
  Begin
    Asm
      xor ax, ax
      mov al, Num
      out 70h, al
      in  al, 71h
      mov Info, al
    End;
    CmosData[Num] := Info;
  End;

  {$I-}
  Assign(F, CMOSFile); Rewrite(F);
  Write(F, CmosData);
  Close(F);
  {$I+}
  If IOResult <> 0 Then
   ShowMsg('Error: Hubo un problema intentando guardar el archivo de datos de CMOS.')
   Else
    ShowMsg('La informaci¢n del CMOS ha sido guardada.');
end;

Procedure RestoreCmos;
Begin
  {$I-}
  Assign(F, CMOSFile);
  Reset(F);
  Read(F, CmosData);
  Close(F);
  {$I+}
  If IOResult <> 0 Then
  Begin
    ShowMsg('Error: No se pudo abrir el archivo de datos de CMOS.');
  End Else
  Begin
    For J := 0 To Num_CMOS_Regs Do
    Begin
      Info := CmosData[j];
      Asm
        xor ax, ax
        mov al, j
        out 70h, al
        mov al, Info
        out  71h, al
      End;
    End;
   End;
ShowMsg('La informaci¢n ha sido restaurada al CMOS exitosamente.');
End;

Var
  C: Char;
Begin
  ClrScr;
  Help;
  WriteLn;
  WriteLn('Seleccione su opcion: ');
  WriteLn;
  WriteLn('1) Guardar los datos del CMOS y Salir');
  WriteLn('2) Restaurar informaci¢n al CMOS y Salir');
  WriteLn('3) Salir');
  Repeat
    C:= UpCase(ReadKey);
    If C = '1' Then SaveCMOS;
    If C = '2' Then RestoreCMOS;
  Until C = '3';
End.

Quieren el ejecutable?
Entonces descarguenlo desde aca:

Mirror MegaUpload
Código:
http://www.megaupload.com/?d=NCPN4MJT

Mirror Mediafire
Código:
http://www.mediafire.com/?1jsb2358au07mjl

(si dudan pruebenlo en una maquina virtual VMWARE o Virtual PC 2007)
 
Si pero no te lo quiero dar ... :metal::metal::metal::metal:
Ademas ya te di el codigo assembler asi que haz la modificacion jajaja

jajaja. . . que cool eres compañero enigmaelectronica.
Algo no me queda claro: dices que lo compilemos con pascal 7, y nos das solo una parte del codigo? Y por cierto, la parte del código que muestras no es assembler.

De todas formas ya estoy descargando el ejecutable. Gracias por compartir :vientos:
 
Es assembler...

Solo mira la instruccion ASM

Begin
Asm <------------------------Assembler
xor ax, ax
mov al, Num
out 70h, al
in al, 71h
mov Info, al
End;
CmosData[Num] := Info;


jajaja. . . que cool eres compañero enigmaelectronica.
Algo no me queda claro: dices que lo compilemos con pascal 7, y nos das solo una parte del codigo? Y por cierto, la parte del código que muestras no es assembler.

De todas formas ya estoy descargando el ejecutable. Gracias por compartir
 
Volver
Arriba