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

📄 hal4ikit.c

📁 此為philip 1362 USB DOS下的驅動程式包, 已經共測試並內含有說明文件
💻 C
字号:
/*
   //*************************************************************************
   //
   //                  P H I L I P S   P R O P R I E T A R Y
   //
   //           COPYRIGHT (c)   2000 BY PHILIPS SINGAPORE.
   //                     --  ALL RIGHTS RESERVED  --
   //
   // File Name:        HAL4ISAKit.c
   // Author:           ZhenYu Zhang
   // Created:			Jun. 8, 2000
   // Modified:
   // Revision:         0.0
   //
   //*************************************************************************
   //
   //*************************************************************************
*/

#include <stdio.h>
#include <dos.h>

#include "BasicTyp.h"
#include "common.h"
#include "SysCnfg.h"

#include "hal4Sys.h"
#include "hal4ISA.h"

#include "hal4IKit.h"

/*
//*************************************************************************
//  Public static data
//*************************************************************************
*/
extern UCHAR bVerbose;
extern UCHAR bIRQL;

#ifdef FPGA_VERSION
/*
//*************************************************************************
//  Private static data
//*************************************************************************
*/

UCHAR IKit_bISACtrl;
UCHAR IKit_bPwrMode;
UCHAR Ikit_bDMACnfg;

/*
//*************************************************************************
//  Subroutines
//*************************************************************************
*/
void Hal4IKit_CtrlISAKit(UCHAR bCtrl)
{
	if(bIRQL == 0)
		RaiseIRQL();

	IKit_bISACtrl = bCtrl;

	Hal4ISA_IndexOutB4IKit(INDEX_ISADMA_CTRL);
	Hal4ISA_DataOutB4IKit(bCtrl);


	if(bVerbose)
	{
		if(bCtrl&ISADMACTRL_ISA )
			printf("ISA board is open now.\n");
		else
			printf("ISA board is off now.\n");
	}

	if(bIRQL == 0)
		LowerIRQL();

	if(bVerbose)
	{
		if(bCtrl&ISADMACTRL_DMA)
			printf("ISA board's DMA is open now.\n");
		else
			printf("ISA board's DMA is off now.\n");
	}
}

void Hal4IKit_CtrlPwrMode(UCHAR bCtrl)
{
	if(bIRQL == 0)
		RaiseIRQL();

	IKit_bPwrMode = bCtrl;
	Hal4ISA_IndexOutB4IKit(INDEX_PWR_CTRL);
	Hal4ISA_DataOutB4IKit(bCtrl);

	if(bIRQL == 0)
		LowerIRQL();

}

void Hal4IKit_CtrlDMACnfg(UCHAR bCtrl)
{
	if(bIRQL == 0)
		RaiseIRQL();

	Ikit_bDMACnfg = bCtrl;
	Hal4ISA_IndexOutB4IKit(INDEX_DMA_CNFG);
	Hal4ISA_DataOutB4IKit(bCtrl);

	if(bIRQL == 0)
		LowerIRQL();
}

void Hal4Ikit_Acquire(void)
{
	Hal4IKit_CtrlISAKit(ISADMACTRL_ISA);
	Hal4IKit_CtrlPwrMode(HC_WAKEUP);
	Hal4IKit_CtrlDMACnfg(DMACFG_EOT|D13_WAKEUP);
}

void Hal4Ikit_Release(void)
{
}

#endif

#ifdef ASIC_VERSION
void Hal4IKit_HC_Wakeup(BOOL bOn)
{
	if(bOn)
	{
		Hal4Sys_OutportB(ISAKIT_HC_WAKEUP_PORT,0x01);
	}
	else
	{
		Hal4Sys_OutportB(ISAKIT_HC_WAKEUP_PORT,0x00);
	}
}

void Hal4IKit_DC_Wakeup(BOOL bOn)
{
	if(bOn)
	{
		Hal4Sys_OutportB(ISAKIT_DC_WAKEUP_PORT,0x01);
	}
	else
	{
		Hal4Sys_OutportB(ISAKIT_DC_WAKEUP_PORT,0x00);
	}
}

BOOL Hal4IKit_HC_IsSuspend(void)
{
	if ( 0x01 == Hal4Sys_InportB(ISAKIT_HC_SUSPEND_PORT))
		return TRUE;
	else
		return FALSE;
}
BOOL Hal4IKit_DC_IsSuspend(void)
{
	if ( 0x01 == Hal4Sys_InportB(ISAKIT_DC_SUSPEND_PORT))
		return TRUE;
	else
		return FALSE;
}


void Hal4Ikit_Acquire(void)
{
	Hal4IKit_HC_Wakeup(FALSE);
	Hal4IKit_DC_Wakeup(FALSE);
}

void Hal4Ikit_Release(void)
{
	Hal4IKit_HC_Wakeup(FALSE);
	Hal4IKit_DC_Wakeup(FALSE);
}
#endif

⌨️ 快捷键说明

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