📄 hal_mem.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 + -