📄 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 + -