📄 stdpciparams.cpp
字号:
}
}
}
else {
if( !m_Radio_BADDR_0.GetCheck() ) {
m_Combo_NVRAM_LOCATION.EnableWindow( TRUE );
m_Combo_NVRAM_PREFETCH.EnableWindow( TRUE );
}
data = data & 0x3FFFFFFC;
for( i=0 ; i < NUMBER_MEM_BASE_ADDR ; i++ ) {
if( ((membase_vals[i] ^ 0x3FFFFFFC) & data) != 0 ) {
if( i != 0 )
j = i - 1;
break;
}
// if( membase_vals[i] == data ) {
// j = i;
// break;
// }
}
}
m_Combo_NVRAM_SIZE.SetCurSel( j );
}
else {
m_Combo_NVRAM_LOCATION.EnableWindow( FALSE );
m_Combo_NVRAM_PREFETCH.EnableWindow( FALSE );
m_Combo_NVRAM_LOCATION.EnableWindow( FALSE );
m_Combo_NVRAM_PREFETCH.EnableWindow( FALSE );
m_Combo_NVRAM_WIDTH.EnableWindow( FALSE );
m_Combo_NVRAM_SIZE.EnableWindow( FALSE );
//m_Combo_NVRAM_LOCATION.EnableWindow( TRUE );
//m_Combo_NVRAM_PREFETCH.EnableWindow( TRUE );
m_Combo_NVRAM_TYPE.SetCurSel( 2 );
//m_Combo_NVRAM_LOCATION.SetCurSel( 4 );
//m_Combo_NVRAM_PREFETCH.SetCurSel( 2 );
//m_Combo_NVRAM_WIDTH.SetCurSel( 4 );
//m_Combo_NVRAM_SIZE.SetCurSel( last_size_index );
}
}
UINT32 CStdPCIParams::GetCurrentBADDRIndex( void )
{
UINT32 index;
index = 0;
// if( m_Radio_BADDR_0.GetCheck() )
// index = 0x50;
if( m_Radio_BADDR_1.GetCheck() )
index = 1;
if( m_Radio_BADDR_2.GetCheck() )
index = 2;
if( m_Radio_BADDR_3.GetCheck() )
index = 3;
if( m_Radio_BADDR_4.GetCheck() )
index = 4;
if( m_Radio_BADDR_5.GetCheck() )
index = 5;
return index;
}
UINT32 CStdPCIParams::GetCurrentBADDRData( void )
{
UINT32 index,data;
index = GetCurrentBADDRIndex();
data = cur_data[index];
return data;
}
void CStdPCIParams::SetCurrentBADDRData( UINT32 data )
{
UINT32 index;
index = GetCurrentBADDRIndex();
cur_data[index] = data;
}
void CStdPCIParams::SetAllCurrentBADDRData( void )
{
int i;
char *cptr,*sptr;
if( pbuffer ) {
sptr = (char *) &pbuffer[0x50];
for( i=0 ; i < 6 ; i++ ) {
cptr = (char *) &cur_data[i];
*cptr++ = *sptr++;
*cptr++ = *sptr++;
*cptr++ = *sptr++;
*cptr = *sptr++;
}
}
else {
for( i=0 ; i < 6 ; i++ )
cur_data[i] = 0;
}
}
void CStdPCIParams::SetAllCurrentLOC45Data( void )
{
if( pbuffer )
loc45_cur_data = pbuffer[0x45];
else
loc45_cur_data = 0x01;
}
void CStdPCIParams::UpdateLOC45Data( void )
{
// Update the display data based on nvRAM
sprintf( (char *)&sztemp,"%02x", loc45_cur_data );
m_Edit_LOC45_VALUE.SetWindowText( sztemp );
m_Combo_NVRAM_RDRETRY.SetCurSel( (loc45_cur_data >> 1) & 0x01 );
m_Combo_NVRAM_WRMODE.SetCurSel( (loc45_cur_data >> 2) & 0x01 );
m_Combo_NVRAM_LAT_TIMER.SetCurSel( loc45_cur_data & 0x01 );
if( loc45_cur_data & 0x080 )
m_Check_BUS_MASTER.SetCheck( TRUE );
else
m_Check_BUS_MASTER.SetCheck( FALSE );
}
char CStdPCIParams::GetCurrentLOC45Data( void )
{
return loc45_cur_data;
}
void CStdPCIParams::SetCurrentLOC45Data( char data )
{
loc45_cur_data = data;
}
void CStdPCIParams::SetAllCurrentGeneralData( void )
{
int i;
UINT32 data;
char *cptr,*sptr;
unsigned short *wptr;
unsigned int *dwptr;
if( pbuffer ) {
dwptr = (unsigned int *) &pbuffer[0x40];
wptr = (unsigned short *) &pbuffer[0x40];
cptr = (char *) &pbuffer[0x40];
sprintf( sztemp,"%04x",wptr[0x00/2] & 0x0ffff );
m_Edit_VID.SetWindowText( sztemp );
sprintf( sztemp,"%04x",wptr[0x02/2] & 0x0ffff );
m_Edit_DID.SetWindowText( sztemp );
// sprintf( sztemp,"%04x",wptr[0x04/2] & 0x0ffff );
// m_Edit_PCICMD.SetWindowText( sztemp );
//
// if( wptr[0x04/2] & 0x0100 )
// m_Check_SERR_ENABLE.SetCheck( TRUE );
// else
// m_Check_SERR_ENABLE.SetCheck( FALSE );
//
// if( wptr[0x04/2] & 0x040 )
// m_Check_PERR_ENABLE.SetCheck( TRUE );
// else
// m_Check_PERR_ENABLE.SetCheck( FALSE );
//
// if( wptr[0x04/2] & 0x02 )
// m_Check_MEM_ACCESS_ENABLE.SetCheck( TRUE );
// else
// m_Check_MEM_ACCESS_ENABLE.SetCheck( FALSE );
//
// if( wptr[0x04/2] & 0x01 )
// m_Check_IO_ACCESS_ENABLE.SetCheck( TRUE );
// else
// m_Check_IO_ACCESS_ENABLE.SetCheck( FALSE );
//
//
//
// sprintf( sztemp,"%04x",wptr[0x06/2] & 0x0ffff );
// m_Edit_PCISTS.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x08] & 0x0ff );
m_Edit_RID.SetWindowText( sztemp );
data = cptr[0x0b] & 0x0ff;
data = (data << 8) | (cptr[0x0a] & 0x0ff);
data = (data << 8) | (cptr[0x09] & 0x0ff);
sprintf( sztemp,"%06x",data );
m_Edit_CLCD.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x09] & 0x0ff );
m_Edit_CLCD_PROG_IF.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x0a] & 0x0ff );
m_Edit_CLCD_SUB_CLASS.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x0b] & 0x0ff );
m_Edit_CLCD_BASE_CLASS.SetWindowText( sztemp );
// sprintf( sztemp,"%02x",cptr[0x0c] & 0x0ff );
// m_Edit_CALN.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x0d] & 0x0ff );
m_Edit_LAT.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x0e] & 0x0ff );
m_Edit_HDR.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x0f] & 0x0ff );
m_Edit_BIST.SetWindowText( sztemp );
sprintf( sztemp,"%04x",wptr[0x2c/2] & 0x0ffff );
m_Edit_SVID.SetWindowText( sztemp );
sprintf( sztemp,"%04x",wptr[0x2e/2] & 0x0ffff );
m_Edit_SDID.SetWindowText( sztemp );
sprintf( sztemp,"%04x",dwptr[0x30/4] );
m_Edit_XROM.SetWindowText( sztemp );
if( dwptr[0x30/4] & 1 )
m_Check_ADDR_DECODE_ENABLE.SetCheck( TRUE );
else
m_Check_ADDR_DECODE_ENABLE.SetCheck( FALSE );
sprintf( sztemp,"%02x",cptr[0x3c] & 0x0ff );
m_Edit_INTLN.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x3d] & 0x0ff );
m_Edit_INTPIN.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x3e] & 0x0ff );
m_Edit_MINGNT.SetWindowText( sztemp );
sprintf( sztemp,"%02x",cptr[0x3f] & 0x0ffff );
m_Edit_MAXLAT.SetWindowText( sztemp );
}
else {
}
}
void CStdPCIParams::SetCurrentGeneralData( char data )
{
}
void CStdPCIParams::UpdateGeneralData( void )
{
}
/////////////////////////////////////////////////////////////////////////////
// CStdPCIParams message handlers
void CStdPCIParams::OnCancel()
{
// TODO: Add extra cleanup here
if( pMain ) {
pMain->KillWindow( IDD_DIALOG_PCI_PARAMETERS );
pMain->m_Button_PCI_PARAMETERS.EnableWindow(TRUE);
}
CDialog::OnCancel();
}
void CStdPCIParams::OnRadioBaddr0()
{
// TODO: Add your control notification handler code here
m_Radio_BADDR_0.SetCheck( TRUE );
m_Radio_BADDR_1.SetCheck( FALSE );
m_Radio_BADDR_2.SetCheck( FALSE );
m_Radio_BADDR_3.SetCheck( FALSE );
m_Radio_BADDR_4.SetCheck( FALSE );
m_Radio_BADDR_5.SetCheck( FALSE );
UpdateBADDRData();
}
void CStdPCIParams::OnRadioBaddr1()
{
// TODO: Add your control notification handler code here
m_Radio_BADDR_0.SetCheck( FALSE );
m_Radio_BADDR_1.SetCheck( TRUE );
m_Radio_BADDR_2.SetCheck( FALSE );
m_Radio_BADDR_3.SetCheck( FALSE );
m_Radio_BADDR_4.SetCheck( FALSE );
m_Radio_BADDR_5.SetCheck( FALSE );
UpdateBADDRData();
}
void CStdPCIParams::OnRadioBaddr2()
{
// TODO: Add your control notification handler code here
m_Radio_BADDR_0.SetCheck( FALSE );
m_Radio_BADDR_1.SetCheck( FALSE );
m_Radio_BADDR_2.SetCheck( TRUE );
m_Radio_BADDR_3.SetCheck( FALSE );
m_Radio_BADDR_4.SetCheck( FALSE );
m_Radio_BADDR_5.SetCheck( FALSE );
UpdateBADDRData();
}
void CStdPCIParams::OnRadioBaddr3()
{
// TODO: Add your control notification handler code here
m_Radio_BADDR_0.SetCheck( FALSE );
m_Radio_BADDR_1.SetCheck( FALSE );
m_Radio_BADDR_2.SetCheck( FALSE );
m_Radio_BADDR_3.SetCheck( TRUE );
m_Radio_BADDR_4.SetCheck( FALSE );
m_Radio_BADDR_5.SetCheck( FALSE );
UpdateBADDRData();
}
void CStdPCIParams::OnRadioBaddr4()
{
// TODO: Add your control notification handler code here
m_Radio_BADDR_0.SetCheck( FALSE );
m_Radio_BADDR_1.SetCheck( FALSE );
m_Radio_BADDR_2.SetCheck( FALSE );
m_Radio_BADDR_3.SetCheck( FALSE );
m_Radio_BADDR_4.SetCheck( TRUE );
m_Radio_BADDR_5.SetCheck( FALSE );
UpdateBADDRData();
}
void CStdPCIParams::OnRadioBaddr5()
{
// TODO: Add your control notification handler code here
m_Radio_BADDR_0.SetCheck( FALSE );
m_Radio_BADDR_1.SetCheck( FALSE );
m_Radio_BADDR_2.SetCheck( FALSE );
m_Radio_BADDR_3.SetCheck( FALSE );
m_Radio_BADDR_4.SetCheck( FALSE );
m_Radio_BADDR_5.SetCheck( TRUE );
UpdateBADDRData();
}
void CStdPCIParams::OnButtonWriteBaddr()
{
// TODO: Add your control notification handler code here
UINT32 data,index;
char *dptr,*sptr;
m_Edit_BADDRT_VALUE.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
data = pmMain->atoh( sztemp );
SetCurrentBADDRData( data );
if( pbuffer ) {
index = GetCurrentBADDRIndex();
dptr = (char *)&pbuffer[0x50 + (index * 4)];
sptr = (char *)&cur_data[index];
*dptr++ = *sptr++;
*dptr++ = *sptr++;
*dptr++ = *sptr++;
*dptr = *sptr;
pMain->data_dirty = TRUE;
}
pMain->DisplayData();
UpdateBADDRData();
}
void CStdPCIParams::OnSelchangeComboNvramType()
{
// TODO: Add your control notification handler code here
UINT32 index,data;
index = m_Combo_NVRAM_TYPE.GetCurSel();
//if( index > 1 ) // Disabled (index 2)
// index = 0;
if( index == 2 ) {
index = 0;
data = 0;
}
else {
data = GetCurrentBADDRData();
if( data == 0 ) {
if( index == 0 )
data = 0xfffffff0;
else
data = 0xfffffffc;
}
}
data = (data & 0xfffffffe) | index;
SetCurrentBADDRData( data );
SetSizeByType();
UpdateBADDRData();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -