📄 sdrv_putchar_latin1.c
字号:
/*
********************************************************************************
* ACTOS
* ui dirver show picture
*
* (c) Copyright 2002-2003, Actions Co,Ld.
* All Right Reserved
*
* File : PutChar.c
* By : Rcmai
* Version: 1> v1.00 first version 10/17/2003 10:46PM
********************************************************************************
*/
#include "display.h"
#include "Drv_S6B33B0A.h"
//#pragma codeseg(UI_RCODE)
#pragma memory=constseg(BBS_PUTS)
#pragma memory=default
#pragma memory=dataseg(BBD_PUTS)
#pragma memory=default
#pragma codeseg(BBC_PUTS)
//non_banked char CheckCharMode(int code);
//bool CheckDisplaySpace(char codemod);
////*******************************************************************************/
///*
//** FUNCTION: PutChar
//**
//** Description: 在屏幕上打出一个字符,并打完后当前指针自动跳到下一个汉字的左上角
//**
//** input
//** code: 字符的码值
//**
//** output
//** none
//********************************************************************************/
non_banked bool Sdrv_PutChar(int code)
{
char charmode;
bool putchar_result;
PutCharErrFlag = RESULT_PUTCHAR_OK; //默认为OK
Hdrv_SetDrawMode(DrawModeV_def); //把显示模式设置成竖向显示模式(与旧字库兼容)
Sdrv_GetFontPoint(code, CharPointBuffer);//取点阵
//charmode = CharMode0608;
charmode = CheckCharMode(code);
putchar_result = CheckDisplaySpace(charmode);
if (!putchar_result)
{
Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模式
return putchar_result;//如显示范围不对,则不做显示动作而直接退出
}
switch(charmode)
{
case CharMode0608://06*08点阵模式(ascii小字体)
//设置字模输出的大小
region.width = ASCII_SMALL_WIDTH_DEF;
region.height = ASCII_SMALL_HEIGHT_DEF;
Hdrv_SetWindow(®ion);
//把黑白字模转为彩色字模放在Buff中
BlackCharToColor(ASCII_SMALL_WIDTH_DEF, CharPointBuffer);
//把暂时显存区的数据送到LCM
Hdrv_BuffDataTrans(DisplayBuffer, ASCII_SMALL_HEIGHT_DEF*ASCII_SMALL_WIDTH_DEF*2);
region.x += ASCII_SMALL_WIDTH_DEF;//坐标移到下一个字的左上角
break;
case CharMode0816://08*16点阵模式(ascii大字体)
//设置字模输出的大小//上半个字
region.width = ASCII_LARGE_WIDTH_DEF;
region.height = ASCII_LARGE_HEIGHT_DEF/2;
region.y += ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
Hdrv_SetWindow(®ion);
//把黑白字模转为彩色字模放在Buff中(上区)
//BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF); //change by ybfu
//把暂时显存区的数据送到LCM
Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
region.y -= ASCII_LARGE_HEIGHT_DEF/2;//Y坐标加8准备输出下区(下半个字)
Hdrv_SetWindow(®ion);
//BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer + ASCII_LARGE_WIDTH_DEF);
BlackCharToColor(ASCII_LARGE_WIDTH_DEF, CharPointBuffer);
//把暂时显存区的数据送到LCM
Hdrv_BuffDataTrans(DisplayBuffer, ASCII_LARGE_WIDTH_DEF*(ASCII_LARGE_HEIGHT_DEF/2)*2);
//坐标移到下一个字的左上角
region.x += ASCII_LARGE_WIDTH_DEF;
//region.y -= ASCII_LARGE_HEIGHT_DEF/2;
break;
default:
break;
}
Hdrv_SetDrawMode(DrawModeH_def); //把显示模式设置成横向显示模式
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -