📄 hal4d13.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: HAL4D13.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 "hal4D13.h"
/*
//*************************************************************************
// Public static data
//*************************************************************************
*/
extern UCHAR bVerbose;
extern UCHAR bIRQL;
/*
//*************************************************************************
// Private static data
//*************************************************************************
*/
/*
//*************************************************************************
// Subroutines
//*************************************************************************
*/
void Hal4D13_CommandOutB(UCHAR bCommand)
{
if(bIRQL ==0)
RaiseIRQL();
Hal4ISA_CommandOutB4D13(bCommand);
if(bIRQL ==0)
LowerIRQL();
if(bVerbose)
printf("Write Command Only to 0x%x;\n",bCommand);
}
void Hal4D13_DataOutDW(ULONG dwData)
{
Hal4ISA_DataOutW4D13((USHORT)dwData);
Hal4ISA_DataOutW4D13((USHORT)(dwData>>16));
}
ULONG Hal4D13_DataInDW()
{
ULONG dwData;
dwData = Hal4ISA_DataInW4D13();
dwData += ((ULONG)Hal4ISA_DataInW4D13())<<16;
return dwData;
}
void Hal4D13_RegOutW(UCHAR bCommand, USHORT wData)
{
if(bIRQL ==0)
RaiseIRQL();
Hal4ISA_CommandOutB4D13(bCommand);
Hal4D13_Wait4DataPhase();
Hal4ISA_DataOutW4D13(wData);
if(bIRQL ==0)
LowerIRQL();
if(bVerbose)
printf("Write 0x%x to 0x%x;\n",wData,bCommand);
}
void Hal4D13_RegOutDW(UCHAR bCommand, ULONG dwData)
{
if(bIRQL ==0)
RaiseIRQL();
Hal4ISA_CommandOutB4D13(bCommand);
Hal4D13_Wait4DataPhase();
Hal4ISA_DataOutDW4D13(dwData);
if(bIRQL ==0)
LowerIRQL();
if(bVerbose)
printf("Write 0x%x to 0x%lx;\n",dwData,bCommand);
}
USHORT Hal4D13_RegInW(UCHAR bCommand)
{
USHORT wData;
Hal4ISA_CommandOutB4D13(bCommand);
Hal4D13_Wait4DataPhase();
wData = Hal4ISA_DataInW4D13();
if(bVerbose)
printf("Read 0x%x from 0x%x;\n",wData,bCommand);
return wData;
}
ULONG Hal4D13_RegInDW(UCHAR bCommand)
{
ULONG dwData;
Hal4ISA_CommandOutB4D13(bCommand);
Hal4D13_Wait4DataPhase();
dwData = Hal4ISA_DataInDW4D13();
if(bVerbose)
printf("Read 0x%x from 0x%lx;\n",dwData,bCommand);
return dwData;
}
void Hal4D13_Wait4DataPhase(void)
{
#ifdef ISP1161_AT_48MHZ
Hal4Sys_WaitinUS(1);
#endif
#ifdef ISP1161_AT_24MHZ
Hal4Sys_WaitinUS(1);
#endif
#ifdef ISP1161_AT_12MHZ
Hal4Sys_WaitinUS(2);
#endif
#ifdef ISP1161_AT_6MHZ
Hal4Sys_WaitinUS(4);
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -