?? unit1.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "WinRing.hpp"
#include "Unit1.h"
#include "stdio.h"
#include "mem.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//--------------------------Z------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow(TObject *Sender)
{
ShowTimer(NULL);
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
OpenWinRing();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
CloseWinRing();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ReadRTC(void)
{
BYTE Val, Index;
asm cli;
for (int i=0;i<3; i++)
{
Index=i*2;
asm{
mov al, Index
out 0x70, al
in al, 0x71
mov Val, al}
Timer[i]=Val;
}
asm sti;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ShowTimer(TObject *Sender)
{
ProcessRing0(ReadRTC);
String Str;
Str.sprintf("%.2X", Timer[2]);
Edit1->Text=Str;
Str.sprintf("%.2X", Timer[1]);
Edit2->Text=Str;
Str.sprintf("%.2X", Timer[0]);
Edit3->Text=Str;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ReadComs(void)
{
BYTE Val, Index;
asm cli;
for (int i=0;i<128; i++)
{
Index=i;
asm{
mov al, Index
out 0x70, al
in al, 0x71
mov Val, al}
CMOSData[i]=Val;
}
asm sti;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::WriteComs(void)
{
BYTE Val, Index;
asm cli;
for (int i=0x10;i<128; i++)
{
Index=i;
Val=CMOSData[i];
asm{
mov al, Index
out 0x70, al
mov al, Val
out 0x71, al}
}
asm sti;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
FILE* fp;
String fn;
ProcessRing0(ReadComs);
Sleep(10);
TDateTime dt=Time();
fn="cmos_" + dt.FormatString("HHMMSS")+".hex";
fp=fopen(fn.c_str(),"wb+");
fwrite(CMOSData,sizeof(BYTE),128,fp);
fclose(fp);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
FILE* fp;
String fn;
memset(CMOSData,0,128);
if(dlgOpen1->Execute())
fn=dlgOpen1->FileName;
else
return;
fp=fopen(fn.c_str(),"rb");
if(fp)
{
fread(CMOSData,sizeof(BYTE),128,fp);
fclose(fp);
}
else
{
Application->MessageBox("文件打開失敗,沒有找到數據文件或文件正在被使用!", "出錯", MB_OK + MB_ICONWARNING);
return;
}
ProcessRing0(WriteComs);
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -