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