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

📄 sdrv_putchar_latin1.c

📁 炬力方案176*132软件源码,适用于AK1025
💻 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(&region);
        
        //把黑白字模转为彩色字模放在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(&region);
        
        //把黑白字模转为彩色字模放在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(&region);
        
        //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 + -