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

📄 hal_text.c

📁 一个图形显示芯片s1d13505的应用程序
💻 C
字号:
/*
**===========================================================================
**	HAL_TEXT.C
**---------------------------------------------------------------------------
** Copyright (c) 1997, 1998 Epson Research and Development, Inc.
** All Rights Reserved.
**===========================================================================
*/

#include <stdarg.h>

#ifdef INTEL
#include <conio.h>
#include <stdio.h>
#endif

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

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

static const char Revision[] = "HAL_TEXT.C=$Revision: 1 $";

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

/*
**	seDrawText()
**
**	This routine provides printf() like support to the HAL library. The
**	single biggest difference between this routine and printf() is the
**	device specifier.
**
**	Curently the only valid device is HAL_STDOUT.
*/
int seDrawText( int device, char *fmt, ... )
{
	va_list marker;
	char str[200];
	char *ptr;

	/*
	** Send the output to stdout.
	*/
	va_start( marker, fmt );
	vsprintf( str, fmt, marker );

	ptr = str;

	while ( *ptr != 0 )
		sePutChar( device, *ptr++ );

	va_end( marker );

	return ERR_OK;
}

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

/*
**	sePutChar()
**
**	Sends a single character to 'device'. This function is similar to the
**	ANSI C function putc().
*/
int sePutChar( int seReserved, int ch )
{
	/*
	** Currently we only support output to HAL_STDOUT (terminal).
	** If anything else is specified then display an error message and
	** terminate the program.
	*/
	ASSERT( HAL_STDOUT == seReserved );

#ifdef INTEL
	if (putc( ch, stdout ) != EOF)
		return ERR_OK;
	else
		return ERR_FAILED;
#else
	putchar( ch );
	return ERR_OK;
#endif
	seReserved;
}

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

/*
**	seGetChar()
**
**	This function retrieves a single character from stdin without
**	echoing the result to the console.
**
**	This function is intended to emulate the ANSI C function getch().
*/
int seGetChar( void )
{
	return getch();
}

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

/*
 * Each letter in the font is 8 x 8 bits
 */
//#define MAX_FONT    97

//static const unsigned char font[MAX_FONT][8] =
//   { { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },    /* (blank)     */
//     { 0x30, 0x78, 0x78, 0x30, 0x30, 0x00, 0x30, 0x00 },    /* !           */
//     { 0x6C, 0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00 },    /* "           */
//     { 0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00 },    /* #           */
//     { 0x30, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x30, 0x00 },    /* $           */
//     { 0x00, 0xC6, 0xCC, 0x18, 0x30, 0x66, 0xC6, 0x00 },    /* %           */
//     { 0x38, 0x6C, 0x38, 0x76, 0xDC, 0xCC, 0x76, 0x00 },    /* &           */
//     { 0x60, 0x60, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00 },    /* '           */
//     { 0x18, 0x30, 0x60, 0x60, 0x60, 0x30, 0x18, 0x00 },    /* (           */
//     { 0x60, 0x30, 0x18, 0x18, 0x18, 0x30, 0x60, 0x00 },    /* )           */
//     { 0x00, 0x66, 0x3C, 0xFF, 0x3C, 0x66, 0x00, 0x00 },    /* *           */
//     { 0x00, 0x30, 0x30, 0xFC, 0x30, 0x30, 0x00, 0x00 },    /* +           */
//     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x60 },    /* ,           */
//     { 0x00, 0x00, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00 },    /* -           */
//     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00 },    /* .           */
//     { 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x80, 0x00 },    /* /           */
//     { 0x7C, 0xC6, 0xCE, 0xDE, 0xF6, 0xE6, 0x7C, 0x00 },    /* 0           */
//     { 0x30, 0x70, 0x30, 0x30, 0x30, 0x30, 0xFC, 0x00 },    /* 1           */
//     { 0x78, 0xCC, 0x0C, 0x38, 0x60, 0xCC, 0xFC, 0x00 },    /* 2           */
//     { 0x78, 0xCC, 0x0C, 0x38, 0x0C, 0xCC, 0x78, 0x00 },    /* 3           */
//     { 0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x1E, 0x00 },    /* 4           */
//     { 0xFC, 0xC0, 0xF8, 0x0C, 0x0C, 0xCC, 0x78, 0x00 },    /* 5           */
//     { 0x38, 0x60, 0xC0, 0xF8, 0xCC, 0xCC, 0x78, 0x00 },    /* 6           */
//     { 0xFC, 0xCC, 0x0C, 0x18, 0x30, 0x30, 0x30, 0x00 },    /* 7           */
//     { 0x78, 0xCC, 0xCC, 0x78, 0xCC, 0xCC, 0x78, 0x00 },    /* 8           */
//     { 0x78, 0xCC, 0xCC, 0x7C, 0x0C, 0x18, 0x70, 0x00 },    /* 9           */
//     { 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x00 },    /* :           */
//     { 0x00, 0x30, 0x30, 0x00, 0x00, 0x30, 0x30, 0x60 },    /* ;           */
//     { 0x18, 0x30, 0x60, 0xC0, 0x60, 0x30, 0x18, 0x00 },    /* <           */
//     { 0x00, 0x00, 0xFC, 0x00, 0x00, 0xFC, 0x00, 0x00 },    /* =           */
//     { 0x60, 0x30, 0x18, 0x0C, 0x18, 0x30, 0x60, 0x00 },    /* >           */
//     { 0x78, 0xCC, 0x0C, 0x18, 0x30, 0x00, 0x30, 0x00 },    /* ?           */
//     { 0x7C, 0xC6, 0xDE, 0xDE, 0xDE, 0xC0, 0x78, 0x00 },    /* @           */
//     { 0x30, 0x78, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0x00 },    /* A           */
//     { 0xFC, 0x66, 0x66, 0x7C, 0x66, 0x66, 0xFC, 0x00 },    /* B           */
//     { 0x3C, 0x66, 0xC0, 0xC0, 0xC0, 0x66, 0x3C, 0x00 },    /* C           */
//     { 0xF8, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0xF8, 0x00 },    /* D           */
//     { 0xFE, 0x62, 0x68, 0x78, 0x68, 0x62, 0xFE, 0x00 },    /* E           */
//     { 0xFE, 0x62, 0x68, 0x78, 0x68, 0x60, 0xF0, 0x00 },    /* F           */
//     { 0x3C, 0x66, 0xC0, 0xC0, 0xCE, 0x66, 0x3E, 0x00 },    /* G           */
//     { 0xCC, 0xCC, 0xCC, 0xFC, 0xCC, 0xCC, 0xCC, 0x00 },    /* H           */
//     { 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00 },    /* I           */
//     { 0x1E, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78, 0x00 },    /* J           */
//     { 0xE6, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0xE6, 0x00 },    /* K           */
//     { 0xF0, 0x60, 0x60, 0x60, 0x62, 0x66, 0xFE, 0x00 },    /* L           */
//     { 0xC6, 0xEE, 0xFE, 0xFE, 0xD6, 0xC6, 0xC6, 0x00 },    /* M           */
//     { 0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00 },    /* N           */
//     { 0x38, 0x6C, 0xC6, 0xC6, 0xC6, 0x6C, 0x38, 0x00 },    /* O           */
//     { 0xFC, 0x66, 0x66, 0x7C, 0x60, 0x60, 0xF0, 0x00 },    /* P           */
//     { 0x78, 0xCC, 0xCC, 0xCC, 0xDC, 0x78, 0x1C, 0x00 },    /* Q           */
//     { 0xFC, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0xE6, 0x00 },    /* R           */
//     { 0x78, 0xCC, 0xE0, 0x70, 0x1C, 0xCC, 0x78, 0x00 },    /* S           */
//     { 0xFC, 0xB4, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00 },    /* T           */
//     { 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xFC, 0x00 },    /* U           */
//     { 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00 },    /* V           */
//     { 0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00 },    /* W           */
//     { 0xC6, 0xC6, 0x6C, 0x38, 0x38, 0x6C, 0xC6, 0x00 },    /* X           */
//     { 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x30, 0x78, 0x00 },    /* Y           */
//     { 0xFE, 0xC6, 0x8C, 0x18, 0x32, 0x66, 0xFE, 0x00 },    /* Z           */
//     { 0x78, 0x60, 0x60, 0x60, 0x60, 0x60, 0x78, 0x00 },    /* [           */
//     { 0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x02, 0x00 },    /* (backslash) */
//     { 0x78, 0x18, 0x18, 0x18, 0x18, 0x18, 0x78, 0x00 },    /* ]           */
//     { 0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00 },    /* ^           */
//     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF },    /* _           */
//     { 0x30, 0x30, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00 },    /* `           */
//     { 0x00, 0x00, 0x78, 0x0C, 0x7C, 0xCC, 0x76, 0x00 },    /* a           */
//     { 0xE0, 0x60, 0x60, 0x7C, 0x66, 0x66, 0xDC, 0x00 },    /* b           */
//     { 0x00, 0x00, 0x78, 0xCC, 0xC0, 0xCC, 0x78, 0x00 },    /* c           */
//     { 0x1C, 0x0C, 0x0C, 0x7C, 0xCC, 0xCC, 0x76, 0x00 },    /* d           */
//     { 0x00, 0x00, 0x78, 0xCC, 0xFC, 0xC0, 0x78, 0x00 },    /* e           */
//     { 0x38, 0x6C, 0x60, 0xF0, 0x60, 0x60, 0xF0, 0x00 },    /* f           */
//     { 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8 },    /* g           */
//     { 0xE0, 0x60, 0x6C, 0x76, 0x66, 0x66, 0xE6, 0x00 },    /* h           */
//     { 0x30, 0x00, 0x70, 0x30, 0x30, 0x30, 0x78, 0x00 },    /* i           */
//     { 0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0xCC, 0xCC, 0x78 },    /* j           */
//     { 0xE0, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0xE6, 0x00 },    /* k           */
//     { 0x70, 0x30, 0x30, 0x30, 0x30, 0x30, 0x78, 0x00 },    /* l           */
//     { 0x00, 0x00, 0xCC, 0xFE, 0xFE, 0xD6, 0xC6, 0x00 },    /* m           */
//     { 0x00, 0x00, 0xF8, 0xCC, 0xCC, 0xCC, 0xCC, 0x00 },    /* n           */
//     { 0x00, 0x00, 0x78, 0xCC, 0xCC, 0xCC, 0x78, 0x00 },    /* o           */
//     { 0x00, 0x00, 0xDC, 0x66, 0x66, 0x7C, 0x60, 0xF0 },    /* p           */
//     { 0x00, 0x00, 0x76, 0xCC, 0xCC, 0x7C, 0x0C, 0x1E },    /* q           */
//     { 0x00, 0x00, 0xDC, 0x76, 0x66, 0x60, 0xF0, 0x00 },    /* r           */
//     { 0x00, 0x00, 0x7C, 0xC0, 0x78, 0x0C, 0xF8, 0x00 },    /* s           */
//     { 0x10, 0x30, 0x7C, 0x30, 0x30, 0x34, 0x18, 0x00 },    /* t           */
//     { 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0xCC, 0x76, 0x00 },    /* u           */
//     { 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x78, 0x30, 0x00 },    /* v           */
//     { 0x00, 0x00, 0xC6, 0xD6, 0xFE, 0xFE, 0x6C, 0x00 },    /* w           */
//     { 0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00 },    /* x           */
//     { 0x00, 0x00, 0xCC, 0xCC, 0xCC, 0x7C, 0x0C, 0xF8 },    /* y           */
//     { 0x00, 0x00, 0xFC, 0x98, 0x30, 0x64, 0xFC, 0x00 },    /* z           */
//     { 0x1C, 0x30, 0x30, 0xE0, 0x30, 0x30, 0x1C, 0x00 },    /* {           */
//     { 0x18, 0x18, 0x18, 0x00, 0x18, 0x18, 0x18, 0x00 },    /* |           */
//     { 0xE0, 0x30, 0x30, 0x1C, 0x30, 0x30, 0xE0, 0x00 },    /* }           */
//     { 0x76, 0xDC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 },    /* ~           */
//     { 0x00, 0x10, 0x38, 0x6C, 0xC6, 0xC6, 0xFE, 0x00 },    /* 127         */
//     { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } };  /* block char  */



/*-------------------------------------------------------------------------
//
// seSetCursor()
// 
//-----------------------------------------------------------------------*/

//int seSetCursor(int device, int row, int col)
//{
//	int err;
//
//	if ((err = seValidRegisteredDevice(device)) != ERR_OK)
//	return err;
//
//	row;
//	col;
//
//	return ERR_NOT_AVAILABLE;
//}

/*-------------------------------------------------------------------------
//
// seSetColor()
// 
//-----------------------------------------------------------------------*/

//int seSetColor(int device, DWORD foreground, DWORD background)
//{
//	int err;
//
//	if ((err = seValidRegisteredDevice(device)) != ERR_OK)
//	return err;
//
//	foreground;
//	background;
//
//	return ERR_NOT_AVAILABLE;
//}

/*-------------------------------------------------------------------------
//
// seSetFont()
// 
//-----------------------------------------------------------------------*/

//int seSetFont(int device, BYTE FontSize, BYTE FontAttr)
//{
//	int err;
//
//	if ((err = seValidRegisteredDevice(device)) != ERR_OK)
//	return err;
//
//	FontSize;
//	FontAttr;
//
//	return ERR_NOT_AVAILABLE;
//}

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


⌨️ 快捷键说明

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