⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stdpciparams.cpp

📁 The PCI Local bus concept was developed to break the PC data I/O bottleneck and clearly opens the d
💻 CPP
📖 第 1 页 / 共 3 页
字号:

}

void CStdPCIParams::OnSelchangeComboNvramWidth() 
{
	// TODO: Add your control notification handler code here
	UINT32 index,data;

	index = m_Combo_NVRAM_WIDTH.GetCurSel();
	if( index > 3 )
		index = 0;

	data = GetCurrentBADDRData();

	data = (data & 0x3fffffff) | (index << 30);

	SetCurrentBADDRData( data );

	UpdateBADDRData();
	
}

void CStdPCIParams::OnSelchangeComboNvramLocation() 
{
	// TODO: Add your control notification handler code here
	UINT32 index,data;

	index = m_Combo_NVRAM_LOCATION.GetCurSel();
	if( index > 3 )
		index = 0;

	data = GetCurrentBADDRData();

	data = (data & 0xfffffff9) | (index << 1);

	SetCurrentBADDRData( data );

	UpdateBADDRData();
	
}

void CStdPCIParams::OnSelchangeComboNvramPrefetch() 
{
	// TODO: Add your control notification handler code here
	UINT32 index,data;

	index = m_Combo_NVRAM_PREFETCH.GetCurSel();
	if( index > 1 )
		index = 0;

	data = GetCurrentBADDRData();

	data = (data & 0xfffffff7) | (index << 3);

	SetCurrentBADDRData( data );

	UpdateBADDRData();
	
}

void CStdPCIParams::OnSelchangeComboNvramSize() 
{
	// TODO: Add your control notification handler code here
	UINT32 index,data;

	index = m_Combo_NVRAM_SIZE.GetCurSel();
	if( index >= last_size_index )
		index = 0;

	data = GetCurrentBADDRData();

	if( data & 0x01 ) {
		index = iobase_vals[index];
		index &= 0x3ffffffc;
		data = (data & 0xc0000003) | index;
	}
	else {
		index = membase_vals[index];
		index &= 0x3ffffff0;
		data = (data & 0xc000000f) | index;
	}

	if( m_Radio_BADDR_0.GetCheck() ) {
		if( data & 0x00008000 ) {
			data = (data & 0xc000ffff) | 0x10e80000;
		}
	}

	SetCurrentBADDRData( data );

	UpdateBADDRData();
	
}

void CStdPCIParams::OnButtonLoc45() 
{
	// TODO: Add your control notification handler code here
	char data;
	char *dptr,*sptr;

	m_Edit_LOC45_VALUE.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
	data = pmMain->atoh( sztemp );

	SetCurrentLOC45Data( data );

	if( pbuffer ) {
		dptr = (char *)&pbuffer[0x45];
		sptr = (char *)&loc45_cur_data;

		*dptr = *sptr;
		pMain->data_dirty = TRUE;
	}


	pMain->DisplayData();
	UpdateLOC45Data();
	
}

void CStdPCIParams::OnSelchangeComboNvramRdretry() 
{
	// TODO: Add your control notification handler code here
	char data,index;

	index = m_Combo_NVRAM_RDRETRY.GetCurSel();

	data = GetCurrentLOC45Data();

	data = (data & 0x0fd) | (index << 1);

	SetCurrentLOC45Data( data );

	UpdateLOC45Data();
	
}

void CStdPCIParams::OnSelchangeComboNvramWrmode() 
{
	// TODO: Add your control notification handler code here
	char data,index;

	index = m_Combo_NVRAM_WRMODE.GetCurSel();

	data = GetCurrentLOC45Data();

	data = (data & 0x0fb) | (index << 2);

	SetCurrentLOC45Data( data );

	UpdateLOC45Data();
	
}

void CStdPCIParams::OnSelchangeComboNvramLatTimer() 
{
	// TODO: Add your control notification handler code here
	char data,index;

	index = m_Combo_NVRAM_LAT_TIMER.GetCurSel();

	data = GetCurrentLOC45Data();

	data = (data & 0x0fe) | index;

	SetCurrentLOC45Data( data );

	UpdateLOC45Data();
	
}

void CStdPCIParams::OnCheckAddrDecodeEnable() 
{
	// TODO: Add your control notification handler code here
	UINT32 data;

	m_Edit_XROM.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
	data = pmMain->atoh( sztemp );

	if( m_Check_ADDR_DECODE_ENABLE.GetCheck() ) {
		data |= 0x00000001;
	}
	else {
		data &= 0xfffffffe;
	}

	sprintf( sztemp, "%04x", data );
	m_Edit_XROM.SetWindowText( sztemp );
	
	UpdateGeneralData();

}

//void CStdPCIParams::OnCheckSerrEnable() 
//{
//	// TODO: Add your control notification handler code here
//	UINT32 data;
//
//	m_Edit_PCICMD.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//	data = pmMain->atoh( sztemp );
//
//	if( m_Check_SERR_ENABLE.GetCheck() ) {
//		data |= 0x00000100;
//	}
//	else {
//		data &= 0xfffffeff;
//	}
//
//	sprintf( sztemp, "%04x", data );
//	m_Edit_PCICMD.SetWindowText( sztemp );
//	
//	UpdateGeneralData();
//	
//}
//
//void CStdPCIParams::OnCheckPerrEnable() 
//{
//	// TODO: Add your control notification handler code here
//	UINT32 data;
//
//	m_Edit_PCICMD.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//	data = pmMain->atoh( sztemp );
//
//	if( m_Check_PERR_ENABLE.GetCheck() ) {
//		data |= 0x00000040;
//	}
//	else {
//		data &= 0xffffffbf;
//	}
//
//	sprintf( sztemp, "%04x", data );
//	m_Edit_PCICMD.SetWindowText( sztemp );
//	
//	UpdateGeneralData();
//	
//}
//
//void CStdPCIParams::OnCheckMemAccessEnable() 
//{
//	// TODO: Add your control notification handler code here
//	UINT32 data;
//
//	m_Edit_PCICMD.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//	data = pmMain->atoh( sztemp );
//
//	if( m_Check_MEM_ACCESS_ENABLE.GetCheck() ) {
//		data |= 0x00000002;
//	}
//	else {
//		data &= 0xfffffffd;
//	}
//
//	sprintf( sztemp, "%04x", data );
//	m_Edit_PCICMD.SetWindowText( sztemp );
//	
//	UpdateGeneralData();
//	
//}
//
//void CStdPCIParams::OnCheckIoAccessEnable() 
//{
//	// TODO: Add your control notification handler code here
//	UINT32 data;
//
//	m_Edit_PCICMD.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//	data = pmMain->atoh( sztemp );
//
//	if( m_Check_IO_ACCESS_ENABLE.GetCheck() ) {
//		data |= 0x00000001;
//	}
//	else {
//		data &= 0xfffffffe;
//	}
//
//	sprintf( sztemp, "%04x", data );
//	m_Edit_PCICMD.SetWindowText( sztemp );
//	
//	UpdateGeneralData();
//	
//}

void CStdPCIParams::OnButtonUpdateClcd() 
{
	// TODO: Add your control notification handler code here
	UINT32 data1,data2,data3;

	m_Edit_CLCD_BASE_CLASS.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
	data1 = pmMain->atoh( sztemp );

	m_Edit_CLCD_SUB_CLASS.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
	data2 = pmMain->atoh( sztemp );

	m_Edit_CLCD_PROG_IF.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
	data3 = pmMain->atoh( sztemp );

	data1 = ((data1 & 0x0ff) << 8) | (data2 & 0x0ff);
	data1 = (data1 << 8) | (data3 & 0x0ff);

	sprintf( sztemp,"%06x", data1 );
	m_Edit_CLCD.SetWindowText( sztemp );

	UpdateGeneralData();

}

void CStdPCIParams::OnButtonWriteAddPciCinfig() 
{
	// TODO: Add your control notification handler code here
	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];


		m_Edit_VID.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			wptr[0x00/2] = pmMain->atoh( sztemp );
		}

		m_Edit_DID.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			wptr[0x02/2] = pmMain->atoh( sztemp );
		}

		m_Edit_SVID.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			wptr[0x2c/2] = pmMain->atoh( sztemp );
		}

		m_Edit_SDID.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			wptr[0x2e/2] = pmMain->atoh( sztemp );
		}


		m_Edit_RID.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x08] = pmMain->atoh( sztemp );
		}

	
//		m_Edit_PCICMD.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//		if( strlen( sztemp ) ) {
//			wptr[0x04/2] = pmMain->atoh( sztemp );
//		}
//
//		m_Edit_PCISTS.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//		if( strlen( sztemp ) ) {
//			wptr[0x06/2] = pmMain->atoh( sztemp );
//		}

		m_Edit_CLCD.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			data = pmMain->atoh( sztemp );
			cptr[0x0b] = data >> 16;
			cptr[0x0a] = data >> 8;
			cptr[0x09] = data;
		}

//		m_Edit_CALN.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
//		if( strlen( sztemp ) ) {
//			cptr[0x0c] = pmMain->atoh( sztemp );
//		}

		m_Edit_LAT.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x0d] = pmMain->atoh( sztemp );
		}

		m_Edit_HDR.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x0e] = pmMain->atoh( sztemp );
		}

		m_Edit_BIST.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x0f] = pmMain->atoh( sztemp );
		}

		m_Edit_XROM.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			dwptr[0x30/4] = pmMain->atoh( sztemp );
		}

		m_Edit_INTLN.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x3c] = pmMain->atoh( sztemp );
		}

		m_Edit_INTPIN.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x3d] = pmMain->atoh( sztemp );
		}

		m_Edit_MINGNT.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x3e] = pmMain->atoh( sztemp );
		}

		m_Edit_MAXLAT.GetWindowText( sztemp, sizeof( sztemp ) - 1 );
		if( strlen( sztemp ) ) {
			cptr[0x3f] = pmMain->atoh( sztemp );
		}

		pMain->data_dirty = TRUE;

		pMain->DisplayData();
		UpdateGeneralData();

	}
	else {
	}
}

void CStdPCIParams::OnCheckBusMaster() 
{
	// TODO: Add your control notification handler code here
	char data;

	data = GetCurrentLOC45Data();

	if( m_Check_BUS_MASTER.GetCheck() )
		data |= 0x80;
	else
		data &= 0x7f;

	SetCurrentLOC45Data( data );

	UpdateLOC45Data();

}

BOOL CStdPCIParams::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class

	// Note: This test stops the Enter key from killing the 
	// application. It causes nothing to happen. There must be a better way!
	if( pMsg->message == 256 && pMsg->wParam == 13 ) {
		return FALSE;
	}
	
	return CDialog::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -