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

📄 lcd_gbk.i

📁 mp3量不要让站长把时间都花费在为您修正说明上。压缩包解压时不能有密码。系统会自动删除debug和release目录
💻 I
📖 第 1 页 / 共 3 页
字号:
 
extern __declspec(__nothrow) int __heapvalid(int (*  )(void *  ,
                                           char const *  , ...),
                       void *  , int  );
   














 
extern __declspec(__nothrow) __declspec(__noreturn) void abort(void);
   







 

extern __declspec(__nothrow) int atexit(void (*  )(void));
   




 
#line 379 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"


extern __declspec(__nothrow) __declspec(__noreturn) void exit(int  );
   












 

extern __declspec(__nothrow) __declspec(__noreturn) void _Exit(int  );
   







      

extern __declspec(__nothrow) char *getenv(const char *  );
   









 

extern __declspec(__nothrow) int  system(const char *  );
   









 

extern  void *bsearch(const void *  , const void *  ,
              size_t  , size_t  ,
              int (*  )(const void *, const void *));
   












 
#line 463 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"


extern  void qsort(void *  , size_t  , size_t  ,
           int (*  )(const void *, const void *));
   









 

#line 489 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"

extern __declspec(__nothrow) __pure int abs(int  );
   



 

extern __declspec(__nothrow) __pure div_t div(int  , int  );
   









 
extern __declspec(__nothrow) __pure long int labs(long int  );
   



 




extern __declspec(__nothrow) __pure ldiv_t ldiv(long int  , long int  );
   











 







extern __declspec(__nothrow) __pure __int64 llabs(__int64  );
   



 




extern __declspec(__nothrow) __pure lldiv_t lldiv(__int64  , __int64  );
   











 
#line 570 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"



 
typedef struct __sdiv32by16 { int quot, rem; } __sdiv32by16;
typedef struct __udiv32by16 { unsigned int quot, rem; } __udiv32by16;
    
typedef struct __sdiv64by32 { int rem, quot; } __sdiv64by32;

__value_in_regs extern __declspec(__nothrow) __pure __sdiv32by16 __rt_sdiv32by16(
     int  ,
     short int  );
   

 
__value_in_regs extern __declspec(__nothrow) __pure __udiv32by16 __rt_udiv32by16(
     unsigned int  ,
     unsigned short  );
   

 
__value_in_regs extern __declspec(__nothrow) __pure __sdiv64by32 __rt_sdiv64by32(
     int  , unsigned int  ,
     int  );
   

 



 
extern __declspec(__nothrow) unsigned int __fp_status(unsigned int  , unsigned int  );
   







 























 
extern __declspec(__nothrow) int mblen(const char *  , size_t  );
   












 
extern __declspec(__nothrow) int mbtowc(wchar_t * __restrict  ,
                   const char * __restrict  , size_t  );
   















 
extern __declspec(__nothrow) int wctomb(char *  , wchar_t  );
   













 





 
extern __declspec(__nothrow) size_t mbstowcs(wchar_t * __restrict  ,
                      const char * __restrict  , size_t  );
   














 
extern __declspec(__nothrow) size_t wcstombs(char * __restrict  ,
                      const wchar_t * __restrict  , size_t  );
   














 

extern __declspec(__nothrow) void __use_realtime_heap(void);
extern __declspec(__nothrow) void __use_realtime_division(void);
extern __declspec(__nothrow) void __use_two_region_memory(void);
extern __declspec(__nothrow) void __use_no_heap(void);
extern __declspec(__nothrow) void __use_no_heap_region(void);

extern __declspec(__nothrow) char const *__C_library_version_string(void);
extern __declspec(__nothrow) int __C_library_version_number(void);











#line 807 "C:\\Keil\\ARM\\RV31\\INC\\stdlib.h"


 
#line 10 "global.h"
#line 1 "C:\\Keil\\ARM\\RV31\\INC\\setjmp.h"
 






 

 
 






 












#line 38 "C:\\Keil\\ARM\\RV31\\INC\\setjmp.h"




typedef __int64 jmp_buf[48];     
                             
                             

extern const int __aeabi_JMP_BUF_SIZE;
              
 
 
 
 

extern __declspec(__nothrow) int setjmp(jmp_buf  );
   




 


extern __declspec(__nothrow) __declspec(__noreturn) void longjmp(jmp_buf  , int  );
   


















 











#line 101 "C:\\Keil\\ARM\\RV31\\INC\\setjmp.h"



 
#line 11 "global.h"
#line 1 "C:\\Keil\\ARM\\RV31\\INC\\rt_misc.h"







 











 
extern void _getenv_init(void);




 
extern void _clock_init(void);





 

extern void *__user_libspace(void);









 
struct __argc_argv {
    int argc;
    char **argv;
    int r2, r3;
};
extern __value_in_regs struct __argc_argv
__rt_lib_init(unsigned  , unsigned  );









 
__value_in_regs struct __argc_argv __ARM_get_argv(void * );




 
extern void __rt_lib_shutdown(void);






 
extern void __rt_exit(int  );    













 
struct __initial_stackheap {
    unsigned heap_base;                 
    unsigned stack_base;                
    unsigned heap_limit;                
    unsigned stack_limit;               
};
extern __value_in_regs struct __initial_stackheap
__user_initial_stackheap(unsigned  , unsigned  ,
                         unsigned  , unsigned  );




 
struct __heap_extent {
    unsigned base, range;
};
extern __value_in_regs struct __heap_extent
__user_heap_extent(unsigned  , unsigned  );










 
struct __stack_slop {
    unsigned always, cleanup;
};
extern __value_in_regs struct __stack_slop
__user_stack_slop(unsigned  , unsigned  );








 
extern unsigned __user_heap_extend(int  ,
                                   void **  ,
                                   unsigned  );






 
int __raise(int  , int  );






 
int __default_signal_handler(int  , int  );





 
void __rt_raise(int  , int  );





#line 12 "global.h"






						    

						    

						    

						    


#line 37 "global.h"









extern unsigned short get16(unsigned char * addr);
extern unsigned short get16_big(unsigned char * addr);
extern unsigned short get16_little(unsigned char * addr);
extern unsigned int get32(unsigned char * addr);
extern unsigned int get32_big(unsigned char * addr);

extern unsigned int get32_little(unsigned char * addr);
extern void put16(unsigned char * addr, unsigned short val);
extern void put16_big(unsigned char * addr, unsigned short val);
extern void put16_little(unsigned char * addr, unsigned short val);
extern void put32(unsigned char * addr, unsigned int val);
extern void put32_big(unsigned char * addr, unsigned int val);
extern void put32_little(unsigned char * addr, unsigned int val);
extern unsigned short swap16(unsigned short val);
extern unsigned int swap32(unsigned int val);
void dump_memory(unsigned char * addr, unsigned int length);
void soft_delay_ms(unsigned int t);



#line 84 "LCD.h"


























#line 126 "LCD.h"

extern void lcdInit(void);		 
extern void lcdClrDisBuf(void);	 
extern void lcdUpdateDisplay(void);	 
extern void OnePixel(unsigned char x,unsigned char y,unsigned char val);	 
extern unsigned char ReadPixel(unsigned char x,unsigned char y);	 
extern void lcdTest(void);	 



 
#line 21 "LCD_GBK.h"

extern unsigned int FAT_Open(unsigned char * dir);
extern unsigned char (* FAT_ReadSector)(unsigned int,unsigned char *);
extern unsigned char (* FAT_WriteSector)(unsigned int,unsigned char *);

extern unsigned char GBK_Ini(void);

extern unsigned char Dis_GBK12_fast(unsigned short x,unsigned short y,unsigned char *ch);

extern unsigned char Dis_GBK12(unsigned short x,unsigned short y,unsigned char *ch);
extern unsigned char Dis_GBK16(unsigned short x,unsigned short y,unsigned char *ch);
extern unsigned char Unicode_to_GBK(unsigned char *ch);
extern unsigned char GBK_to_Unicode(unsigned char *ch);

#line 20 "LCD_GBK.c"

unsigned int GBK12,GBK16,GBK2UNI,UNI2GBK;
extern unsigned int FirstDataSector;
extern unsigned short SectorsPerClust;
extern unsigned short  BytesPerSector;

unsigned char GBK_Buffer[32];

unsigned char GBK_Ini()
{
	GBK12 = FAT_Open("\\st12.sys");
	if(GBK12 == 1)return 1;
	
	
	
	
	UNI2GBK = FAT_Open("\\uni2gbk.sys");
	if(UNI2GBK == 1)return 1;

	
	GBK12 = (unsigned int)FirstDataSector+(unsigned int)(GBK12 - 2)*(unsigned int)SectorsPerClust;
	GBK16 = (unsigned int)FirstDataSector+(unsigned int)(GBK16 - 2)*(unsigned int)SectorsPerClust;
	GBK2UNI = (unsigned int)FirstDataSector+(unsigned int)(GBK2UNI - 2)*(unsigned int)SectorsPerClust;
	UNI2GBK = (unsigned int)FirstDataSector+(unsigned int)(UNI2GBK - 2)*(unsigned int)SectorsPerClust;

	return 0;
}

extern unsigned short fatGetWord(unsigned char * addr);

unsigned char Unicode_to_GBK(unsigned char *ch)
{
	unsigned short temp;
	unsigned short sector_offset;
	unsigned short byte_offset;
	unsigned char buffer[512];
	temp = get16_little(ch);
	temp -= 0x4e00;
	temp *= 2;
	sector_offset = temp/BytesPerSector;
	byte_offset = temp%BytesPerSector;
	if(FAT_ReadSector(UNI2GBK + sector_offset,buffer))return 1;
	*ch = buffer[byte_offset];
	*(ch+1) = buffer[byte_offset+1];
	return 0;
}

unsigned char GBK_to_Unicode(unsigned char *ch)
{
	return 0;
}

unsigned char Read_One_GBK12(unsigned char *ch)
{
	unsigned int temp1;
	unsigned char temp2;
	unsigned short  sector_offset;
	unsigned short  byte_offset;
	unsigned char buffer[512];
	temp1=*ch;
	temp2=*(ch+1);
	if(temp1<0x81||temp2<0x40)return 1;
	temp1-=0x81;
	temp2-=0x40;
	temp1*=192;
	temp1+=temp2;
	temp1*=24;
	sector_offset = temp1/BytesPerSector;
	byte_offset = temp1%BytesPerSector;
	if(FAT_ReadSector(GBK12 + sector_offset,buffer))return 1;
	if(byte_offset>488)
	{
		for(temp2 = 0,temp1 = byte_offset;temp2<(BytesPerSector - byte_offset);temp2++,temp1++)GBK_Buffer[temp2] = buffer[temp1];
		if(FAT_ReadSector(GBK12 + sector_offset + 1,buffer))return 1;
		for(temp1 = 0;temp2<24;temp2++,temp1++)GBK_Buffer[temp2] = buffer[temp1];
	}
	else for(temp2 = 0,temp1 = byte_offset;temp2<24;temp2++,temp1++)GBK_Buffer[temp2] = buffer[temp1];
	return 0;
}
unsigned char Read_One_GBK16(unsigned char *ch)
{
	unsigned short  temp1;
	unsigned char temp2;
	unsigned short  sector_offset;
	unsigned short  byte_offset;
	unsigned char buffer[512];
	temp1=*ch;
	temp2=*(ch+1);
	if(temp1<0x81||temp2<0x40)return 1;
	temp1-=0x81;
	temp2-=0x40;
	temp1*=192;
	temp1+=temp2;
	
	sector_offset = temp1/(BytesPerSector/32);
	byte_offset = (temp1%(BytesPerSector/32))*32;
	if(FAT_ReadSector(GBK16 + sector_offset,buffer))return 1;
	for(temp2 = 0,temp1 = byte_offset;temp2<32;temp2++,temp1++)GBK_Buffer[temp2] = buffer[temp1];
	return 0;
}

unsigned char Dis_GBK12_fast(unsigned short x,unsigned short y,unsigned char *ch)
{
	unsigned short i,j;
	unsigned char temp;

       extern unsigned char disBuf[504];

        j = y/12;
        if(Read_One_GBK12(ch))return 1;

        if(j==0)
            {
                for(i=x;i<x+12;i++)
                    {
                        temp = GBK_Buffer[i-x];
                        disBuf[i] = temp;
                    }
                for(i=x+84;i<x+84+12;i++)
                    {
                        temp = GBK_Buffer[i-x-84+12];
                        disBuf[i] &= 0xf0;
                        disBuf[i] |= (temp & 0x0f);
                    }
            }
        else if(j==1)
            {
                 for(i=x+84;i<x+84+12;i++)
                    {
                        temp = GBK_Buffer[i-x-84];
                        disBuf[i] &= 0x0f;
                        disBuf[i] |= ((temp<<4) & 0xf0);
                    }
                for(i=x+168;i<x+168+12;i++)
                    {
                        temp = GBK_Buffer[i-x-168]>>4;
                        temp += GBK_Buffer[i-x+12-168]<<4;
                        disBuf[i] = temp;
                    }
            }
        else if(j==2)
           {
                for(i=x+252;i<x+12+252;i++)
                    {
                        temp = GBK_Buffer[i-x-252];
                        disBuf[i] = temp;
                    }
                for(i=x+336;i<x+336+12;i++)
                    {
                        temp = GBK_Buffer[i-x+12-336];
                        disBuf[i] &= 0xf0;
                        disBuf[i] |= (temp & 0x0f);
                    }
            }
        else if(j==3)
            {
                 for(i=x+336;i<x+336+12;i++)
                    {
                        temp = GBK_Buffer[i-x-336];
                        disBuf[i] &= 0x0f;
                        disBuf[i] |= ((temp<<4) & 0xf0);
                    }
                for(i=x+420;i<x+420+12;i++)
                    {
                        temp = GBK_Buffer[i-x-420]>>4;
                        temp += GBK_Buffer[i-x+12-420]<<4;
                        disBuf[i] = temp;
                    }
            }
        return 0;
}

unsigned char Dis_GBK12(unsigned short x,unsigned short y,unsigned char *ch)
{
	unsigned char i,j;
	unsigned char temp;
	if(Read_One_GBK12(ch))return 1;
	for(i=0;i<12;i++)
	{
		temp = GBK_Buffer[i];
		for(j=0;j<8;j++)
		{
			if(temp&(1<<j))OnePixel(x+i,y+j,1);
			else OnePixel(x+i,y+j,0);
		}
	}
	for(i=0;i<12;i++)
	{
		temp = GBK_Buffer[i + 12];
		for(j=0;j<4;j++)
		{
			if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
			else OnePixel(x+i,y+j+8,0);
		}
	}
	return 0;
}
unsigned char Dis_GBK16(unsigned short x,unsigned short y,unsigned char *ch)
{
	unsigned char i,j;
	unsigned char temp;
	if(Read_One_GBK16(ch))return 1;
	for(i=0;i<16;i++)
	{
		temp = GBK_Buffer[i];
		for(j=0;j<8;j++)
		{
			if(temp&(1<<j))OnePixel(x+i,y+j,1);
			else OnePixel(x+i,y+j,0);
		}
	}
	for(i=0;i<16;i++)
	{
		temp = GBK_Buffer[i + 16];
		for(j=0;j<8;j++)
		{
			if(temp&(1<<j))OnePixel(x+i,y+j+8,1);
			else OnePixel(x+i,y+j+8,0);
		}
	}
	return 0;
}

⌨️ 快捷键说明

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