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

📄 hal_mem.c

📁 epson公司的一个关于s1d13706的低层驱动程序
💻 C
字号:
/*
**===========================================================================
** HAL_MEM.C - This module contains the memory access funtions for the HAL.
**---------------------------------------------------------------------------
** Copyright (c) 2000, 2001 Epson Research and Development, Inc.
** All Rights Reserved.
**===========================================================================
*/

#include "hal.h"
#include "assert.h"
#include "nonsefns.h"

/*-------------------------------------------------------------------------*/

static const char Revision[] = "HAL_MEM.C=$Revision: 5 $";

/*-------------------------------------------------------------------------*/

/*
**	seReadDisplayByte()
*/
unsigned seReadDisplayByte(DWORD offset)
{
#ifdef LINEAR_ADDRESSES_SUPPORTED
	return *((BYTE *) _DispLinearAddress + offset);
#else
   return _READXB(_DispLinearAddress + offset);
#endif
}

/*-------------------------------------------------------------------------*/

/*
**	seWriteDisplayBytes()
*/
void seWriteDisplayBytes(DWORD offset, unsigned val, DWORD count)
{
#ifdef LINEAR_ADDRESSES_SUPPORTED
   BYTE *bpt;

	bpt = (BYTE *) (_DispLinearAddress + offset);

	while (count > 0)
	{
		*bpt = (BYTE) val;
		bpt++;
		count--;
	}
#else
   _asmWriteBytes(_DispLinearAddress + offset, val, count);
#endif
}

/*-------------------------------------------------------------------------*/

/*
** seReadDisplayWord()
*/
unsigned seReadDisplayWord(DWORD offset)
{
#ifdef LINEAR_ADDRESSES_SUPPORTED
	return *((WORD *) (_DispLinearAddress + offset));
#else
   return _READXW(_DispLinearAddress + offset);
#endif
}

/*-------------------------------------------------------------------------*/

/*
** seWriteDisplayWords()
*/
void seWriteDisplayWords(DWORD offset, unsigned val, DWORD count)
{
#ifdef LINEAR_ADDRESSES_SUPPORTED
   WORD *wpt;

	wpt = (WORD *) (_DispLinearAddress + offset);

	while (count > 0)
	{
		*wpt = (WORD) val;
		wpt++;
		count--;
	}
#else
   _asmWriteWords(_DispLinearAddress + offset, val, count);
#endif
}

/*-------------------------------------------------------------------------*/

/*
** seReadDisplayDword()
*/
DWORD seReadDisplayDword(DWORD offset)
{
#ifdef LINEAR_ADDRESSES_SUPPORTED
	return *((DWORD *) (_DispLinearAddress + offset));
#else
   return _asmReadDword(_DispLinearAddress + offset);
#endif
}

/*-------------------------------------------------------------------------*/

/*
** seWriteDisplayDwords()
*/
void seWriteDisplayDwords(DWORD offset, DWORD val, DWORD count)
{
#ifdef LINEAR_ADDRESSES_SUPPORTED
   DWORD *dwpt;

	dwpt = (DWORD *) (_DispLinearAddress + offset);

	while (count > 0)
	{
		*dwpt = val;
		dwpt++;
		count--;
	}
#else
   _asmWriteDwords(_DispLinearAddress + offset, val, count);
#endif
}

/*-------------------------------------------------------------------------*/


⌨️ 快捷键说明

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