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

📄 sdrv_common_thai.s01

📁 炬力方案176*132软件源码,适用于AK1025
💻 S01
字号:
	NAME	sdrv_common_thai(16)
	RSEG	UI_RCODE(0)
	EXTERN	CharPointBuffer
	PUBLIC	Sdrv_add_image
	PUBLIC	Sdrv_check_symble
	EXTERN	back_CharPointBuffer
	EXTERN	next_thai_flag
	EXTERN	thai_flag
	EXTERN	?CLZ80L_4_04_L00
	RSEG	UI_RCODE
Sdrv_add_image:
; 1.	/*
; 2.	********************************************************************************
; 3.	*                       ACTOS
; 4.	*                  ui dirver show picture
; 5.	*
; 6.	*                (c) Copyright 2002-2003, Actions Co,Ld.
; 7.	*                        All Right Reserved
; 8.	*
; 9.	* File   : sdrv_charOutrect.c
; 10.	* By     : Rcmai
; 11.	* Version: 1> v1.00     first version     10/17/2003 10:46PM
; 12.	********************************************************************************
; 13.	*/
; 14.	#include "display.h"
; 15.	#include "Drv_S6B33B0A.h"
; 16.	
; 17.	extern  char next_thai_flag;
; 18.	extern  char thai_flag;
; 19.	
; 20.	#pragma codeseg(UI_RCODE)
; 21.	
; 22.	////*******************************************************************************/
; 23.	///*
; 24.	//** FUNCTION:     Sdrv_CharOutRect
; 25.	//**
; 26.	//** Description:  在指定的区域上打出一个字符,超出区域部分不显示,没有超出屏幕的部分将正常显示。
; 27.	//**
; 28.	//**  input
; 29.	//**     code: 字符的码值
; 30.	//**     CRregion: 要求输出的区域
; 31.	//**     colcnt:   要求从汉字的哪一列开始输出   
; 32.	//**  output
; 33.	//**     bool: 当指定列数超出该字的总列数时返回FALSE,否则返回TRUE
; 34.	//********************************************************************************/
; 35.	
; 36.	non_banked bool Sdrv_add_image(void)
; 37.	{
	PUSH	BC
	PUSH	DE
	PUSH	IY
	PUSH	IX
; 38.	    int i;
; 39.	    char *p1,*p2;   
; 40.	         
; 41.	    p1 = back_CharPointBuffer;
	LD	IY,back_CharPointBuffer
; 42.	    p2 = CharPointBuffer;         
	LD	IX,CharPointBuffer
; 43.	    if(thai_flag == 1)
	LD	A,(thai_flag)
	DEC	A
	LD	DE,0
	JR	NZ,?0001
?0000:
; 44.	    {
; 45.	        for(i=0;i<32;i++)
?0003:
	LD	BC,32800
	LD	L,E
	LD	H,D
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0002
?0004:
; 46.	        {
; 47.	            *p1++ = *p2++;
	LD	B,(IX+0)
	LD	(IY+0),B
	INC	DE
	INC	IX
	INC	IY
	JR	?0003
?0002:
; 48.	        }        
; 49.	    
; 50.	        if(next_thai_flag==0)
	LD	A,(next_thai_flag)
	OR	A
	JR	NZ,?0009
?0006:
; 51.	           return TRUE;
	LD	A,1
; 52.	    }
	JR	?0009
?0007:
; 53.	    else
?0001:
; 54.	    {
; 55.	        for(i=0;i<32;i++) 
?0010:
	LD	BC,32800
	LD	L,E
	LD	H,D
	LD	A,B
	XOR	H
	LD	H,A
	SBC	HL,BC
	JR	NC,?0009
?0011:
; 56.	           *p2++ |= *p1++;
	LD	A,(IX+0)
	OR	(IY+0)
	LD	(IX+0),A
	INC	DE
; 57.	    }          
	INC	IX
	INC	IY
	JR	?0001
?0009:
?0008:
; 58.	}
?0013:
	POP	IX
	POP	IY
	POP	DE
	POP	BC
	RET
Sdrv_check_symble:
; 59.	
; 60.	non_banked bool Sdrv_check_symble(unsigned char code)
; 61.	{
; 62.	    if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
	LD	A,E
	CP	209
	JR	Z,?0021
	CP	212
	JR	C,?0019
	CP	219
	JR	C,?0021
?0019:
?0018:
	CP	231
	JR	C,?0015
	CP	239
	JR	NC,?0015
?0021:
?0020:
?0016:
?0017:
?0014:
; 63.	        thai_flag = 0;
	XOR	A
	JR	?0024
; 64.	    else
?0015:
; 65.	        thai_flag = 1;  
	LD	A,1
?0024:
	LD	(thai_flag),A
?0022:
; 66.	}
	RET
; 67.	/*
; 68.	
; 69.	non_banked bool Sdrv_Set_next(unsigned char mode)
; 70.	{
; 71.	//    if(code == 0xd1 || (code >=0xd4 && code<0xdb) ||(code >=0xe7 && code<0xef))
; 72.	//        thai_flag = 0;
; 73.	//    else
; 74.	//        thai_flag = 1;        
; 75.	      next_thai_flag = mode;
; 76.	}
; 77.	*/
	END

⌨️ 快捷键说明

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