亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vfd_shift.c

?? vfdshift.c modified for8202 firmware
?? C
字號:
/*
** FILE 
** vfd.c
**
** DESCRIPTION
** handle VFD functions.
*/
//#define VFD_TEST



#if (VFD_MODULE == HT1611_LCD)
#include "vfd_k_ht1611.h" //for NINTAUS DVD-N701 key pad definition
#endif


BYTE 	vfd_state=0;


void __vfd_set_pgm(BYTE method)
{
	
#if VFD_MODULE!=FUT_6_BT_269GK1
	BYTE    i,trk;	
	trk = cd_trk_hi-cd_trk_lo;
	/*** zyf 2000/11/03 add ***/
	if(cd_trk_now>16) 
	{;}//vfd_set_dot(VFD_DOT_OVER);}
	if(trk-1>16)
		trk = 16;
	
	for(i=1;i<=trk;i++)
	{
		if(method==0)
			vfd_mem[vfd_prg[i]>>3]|= (1<<(vfd_prg[i]&0x07));
		else if(--method==0)
			vfd_mem[vfd_prg[i]>>3]&= ~(1<<(vfd_prg[i]&0x07));
		else
			vfd_mem[vfd_prg[i]>>3]^= (1<<(vfd_prg[i]&0x07));    
	}
	
	//vfd_enable=VFD_CNT; //zhyf  1-4-27 9:14
#endif
}

/*** program playback display control 
zyf 2000/10/03
***/

void   vfd_prog_dis(BYTE prog_cnt,UINT16 num)
{
	
#ifdef SUPPORT_VFD	
/*vfd_mem[VFDA_T0]=(VFD_7SEG_P>>1)&0x7f;
vfd_mem[VFDA_T1]=vfd_digit[prog_cnt] | ((VFD_7SEG_P&0x01)<<7);
	*/
	vfd_mem[VFDA_T0] = (vfd_mem[VFDA_T0]&(~VFD_7SEG_MASK)) | (vfd_digit[prog_cnt/10]>>1);
	vfd_mem[VFDA_T1] = (vfd_mem[VFDA_T1]&(~VFD_7SEG_MASK)) | vfd_digit[prog_cnt%10]|((vfd_digit[prog_cnt/10]&0x01)<<7);
	vfd_mem[VFDA_P0]=(vfd_mem[VFDA_P0]&(~VFD_7SEG_DIG_MASK)) | (vfd_digit[num/10]>>1);
	vfd_mem[VFDA_P1]=(vfd_mem[VFDA_P1]&(~VFD_7SEG_MASK)) | (vfd_digit[num%10]|((vfd_digit[num/10]&0x01)<<7)); 
	//vfd_enable=VFD_CNT; //zhyf  1-4-27 9:14
#endif
	
} 



void   vfd_set_7seg(UINT32 t, UINT32 mm) 
{
	t=mm;//reduce warning
}

/*
** FUNCTION
** polling_vfdr
**
** DESCRIPTION
** check if polling-ready
*/
int	polling_vfdr(void)
{
	
#ifdef SUPPORT_VFD
	UINT8     i;
	UINT32    temp;
	UINT32    key_data;    
	static UINT8 key_state=0;
	static UINT32 key_previ=0;
	
	if(regs0->iop_data[0]&FUN_MASK)
		return 0; 
	
	switch(vfd_state)
	{       //pppp
		
	case VFD_READ:           
		regs0->iop_data[VFD_CMD]=0x42;	//key polling
		regs0->iop_data[0]=(regs0->iop_data[0]&VFD_DATLEN_MASK)|
			(FUN_VFD_READ|3); 
		
		vfd_state       = VFD_READ_BUSY;
		break;
	case VFD_READ_BUSY:
		
		key_data=(reverse_fun(regs0->iop_data[VFD_DAT0]))|(reverse_fun(regs0->iop_data[VFD_DAT0]>>8)<<8) \
			| (reverse_fun(regs0->iop_data[VFD_DAT1])<<16);
		
		if(key_data==0)
		{ 
			key_state = 0;
			key_previ = 0;
		}
		else
		{
			if(key_data!=key_previ)
			{
				key_state = 1;
				key_previ  = key_data;	               
			}
			else
			{
				if(key_state==1)
				{
					key_state = 2;           
					
					for(i=0;i<24;i++)
					{
						temp = 0x01<<i;
						if(key_data&temp)
						{
							key_data = i+1;  
							break;
						}
					}        
#ifdef VFD_TEST
					psprintf(linebuf, "KEY %02d F:%d",key_data,vfd_keycode[key_data-1]);
					strcpy(RegionValStr[REGION1], linebuf);
					PrintOsdMsg(STR_OS_SPACE, REGION1, 1, 1);
					//osd_print1(linebuf);
					
#else
					call_ir_func(vfd_keycode[key_data-1]);
#endif              
				}                   
			}
		}
		
		vfd_state =  VFD_WRITE;
		return 1;    
		
		
	case VFD_IDLE:
		vfd_state = VFD_READ;
		break;
	}
#endif        
	return 0; 
	
}  

/*
** FUNCTION
** polling_vfd
** 
** DESCRIPTION
** checking if we could issue VFD task
*/

int	polling_vfd(void)
{
#ifdef    SUPPORT_VFD
	static    BYTE i = 0;
	
	//check IOP is free ?          
	if(regs0->iop_data[0]&FUN_MASK)
		return 0; 
	
	switch(vfd_state)
	{       //pppp
		
    case VFD_WRITE:     
		regs0->iop_data[VFD_CMD]=(0xc0|i);
    	   regs0->iop_data[VFD_DAT0]=vfd_mem[i+1]<<8|vfd_mem[i];
		   regs0->iop_data[VFD_DAT1]=vfd_mem[i+3]<<8|vfd_mem[i+2];
		   regs0->iop_data[VFD_DAT2]=vfd_mem[i+5]<<8|vfd_mem[i+4];    	   
		   
		   regs0->iop_data[0]=(regs0->iop_data[0]&VFD_DATLEN_MASK)|
			   (FUN_VFD_WRITE|VFD_DAT_LEN6);
		   
		   /* transfer data size add by chichang 2001 6/6 */
		   
#if (VFD_MODULE == HT1611_LCD)
		   {
			   i+=6;
			   if(i==42)
				   i=0;
		   }
		   
#elif (VFD_MODULE == FUT_6_BT_269GK1)
		   {
			   i+=6;
			   if(i==12)
				   i=0;                    
		   }
#endif
		   
		   
		   vfd_state = VFD_WRITE_BUSY;
		   break;     
	case VFD_WRITE_BUSY:
		
		
		vfd_state = VFD_READ;
		break;
	case VFD_IDLE:
     	 	
		vfd_state = VFD_READ;
		break;
	}     
#endif
	return 0;
}


void init_vfd_clear(void)
{
	int i,j;
	BYTE mem_count;
	
	
	//check IOP function free ?
	for (i=0;i<0xffff;i++)
	{
		if(!(regs0->iop_data[0]&FUN_MASK))
			break;
	}
	
	erase_vfd_mem();
    
	//send memory data to VFD  
	
#if VFD_MODULE == HT1611_LCD
	mem_count=42;
#elif VFD_MODULE == FUT_6_BT_269GK1
	mem_count=12;
#endif 
	
	for(j=0;j<5000;j++)//I think 5000 times are too long
		for(i=0;i<mem_count;i+=6)
		{
			regs0->iop_data[VFD_CMD]=(0xc0|i);
			regs0->iop_data[VFD_DAT0]=vfd_mem[i+1]<<8|vfd_mem[i];
			regs0->iop_data[VFD_DAT1]=vfd_mem[i+3]<<8|vfd_mem[i+2];
			regs0->iop_data[VFD_DAT2]=vfd_mem[i+5]<<8|vfd_mem[i+4];    	   
			
			regs0->iop_data[0]=(regs0->iop_data[0]&VFD_DATLEN_MASK)|
				(FUN_VFD_WRITE|VFD_DAT_LEN6);
			
			
		}
		
    	   
		
		//check IOP function free ?
		for (i=0;i<0xffff;i++)
		{
			if(!(regs0->iop_data[0]&FUN_MASK))
				break;
		}	     	   	
		
		
		
		
}	



/*
** FUNCTION
** reset_vfd
**
** DESCRIPTION
** setup VFD.  Should only called at power-up or emergency.
*/

void	reset_vfd(void)
{
	//#ifdef SUPPORT_VFD   
	
	UINT16 i;
	
	
	init_vfd_clear();	   	
	
	/* display mode ? 13d15s or 6d16s add by chichang 2001/6/6 */
	
	
#if (VFD_MODULE == HT1611_LCD)
	{
		regs0->iop_data[VFD_CMD]=VFDC_SET_DISP | VFDC_SET_DISP_13D15S;    /* 13D15S */
	} 
	
	
#elif (VFD_MODULE == FUT_6_BT_269GK1)
	{ 
		regs0->iop_data[VFD_CMD]=VFDC_SET_DISP | VFDC_SET_DISP_6D16S;    /* 6D16S */  	  
	}
#endif
	
	
	
	
    regs0->iop_data[0]=(regs0->iop_data[0]&VFD_DATLEN_MASK)|
		(FUN_VFD_WRITE|VFD_DAT_LEN0);
	
	//erase_vfd_mem();
    
    //check IOP function free ?
	for (i=0;i<0xffff;i++)
	{
		if(!(regs0->iop_data[0]&FUN_MASK))
			break;
    }
	
	regs0->iop_data[VFD_CMD]=VFDC_DISP_CTRL | VFDC_DISP_CTRL_ON | VFDC_DISP_CTRL_10_16;
	
	regs0->iop_data[0]=(regs0->iop_data[0]&VFD_DATLEN_MASK)|
		(FUN_VFD_WRITE|VFD_DAT_LEN0);
	
	//#endif  
}


/*
** FUNCTION
** erase_vfd_mem
**
** DESCRIPTION
** clear vfd memory.
*/


void erase_vfd_mem(void)
{
#ifdef SUPPORT_VFD	
	unsigned  i;
	for(i=0;i<VFD_MEM_LEN; i++)
	{
		vfd_mem[i]=0;
	}
	//vfd_enable=VFD_CNT; //zhyf  1-4-27 9:14
#endif
}  	

void   vfd_dot_pgm(BYTE prog_cont,UINT16 num)
{
	prog_cont=num;
}
void   vfd_dot(UINT32 method, UINT32 p)
{
	UINT32 A   = p>>3;
	UINT32 tag = 1<<(p&0x07);
	BYTE  *ptr = &vfd_mem[A];
	BYTE	 x   = *ptr;
	
	if (method==0)
		x |= tag; 
	else if (--method==0)
		x &= ~tag; 
	else
		x ^= tag; 
	
	*ptr        = x;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩日日夜夜| 伊人色综合久久天天人手人婷| 成人教育av在线| 日本久久精品电影| 韩国v欧美v亚洲v日本v| 偷偷要91色婷婷| 亚洲国产成人高清精品| 亚洲高清中文字幕| 午夜伦理一区二区| 亚洲第一福利一区| 蜜桃精品视频在线| 国产乱码精品一品二品| 成人黄色免费短视频| 色综合久久久久综合| 欧美日本精品一区二区三区| 欧美乱熟臀69xxxxxx| 欧美成人性福生活免费看| 久久久久国产精品麻豆ai换脸 | 国产精品一二三在| 色哟哟国产精品免费观看| 国产日韩欧美麻豆| 国产农村妇女精品| 国产精品日韩精品欧美在线| 亚洲精品成a人| 午夜精品久久久久久| 国产乱理伦片在线观看夜一区| 成人午夜又粗又硬又大| 97久久精品人人做人人爽50路| 欧美视频日韩视频在线观看| 欧美一级国产精品| 国产精品―色哟哟| 亚洲成人精品一区| 国产黄色91视频| 欧美网站一区二区| 国产调教视频一区| 婷婷亚洲久悠悠色悠在线播放| 久久99精品国产麻豆不卡| 北条麻妃国产九九精品视频| 日本欧美久久久久免费播放网| 成人激情av网| 欧洲av在线精品| 91精品国产91久久久久久一区二区 | 日产国产欧美视频一区精品| 国产福利精品导航| 在线播放中文字幕一区| 久久久.com| 丝袜美腿成人在线| 91视视频在线直接观看在线看网页在线看| 欧美久久久久中文字幕| 国产精品乱码妇女bbbb| 久久不见久久见免费视频7| 91国在线观看| 中文在线一区二区| 久久不见久久见免费视频1| 欧美性猛片xxxx免费看久爱| 国产精品女人毛片| 国产精品中文字幕一区二区三区| 欧美另类z0zxhd电影| 精品奇米国产一区二区三区| 精品国产123| 青青草一区二区三区| 欧美tickling网站挠脚心| 欧美v国产在线一区二区三区| 久久一区二区三区四区| 美女一区二区三区在线观看| 久久黄色级2电影| 日韩情涩欧美日韩视频| 国产精品一区二区不卡| 亚洲综合色网站| 久久精品一区二区| 欧美色男人天堂| 国产永久精品大片wwwapp| 亚洲精品综合在线| 欧美zozozo| 91欧美激情一区二区三区成人| 国内精品写真在线观看| 欧美丰满美乳xxx高潮www| 国模冰冰炮一区二区| 亚洲老妇xxxxxx| 日韩亚洲国产中文字幕欧美| 欧美三级在线看| 亚洲综合另类小说| 欧美另类z0zxhd电影| 日本三级亚洲精品| 精品福利视频一区二区三区| 国产一区二区三区久久悠悠色av| 精品国产凹凸成av人导航| 精品无人区卡一卡二卡三乱码免费卡| 精品国精品自拍自在线| 国产一区二区三区不卡在线观看 | 91蝌蚪porny| 亚洲永久免费视频| 制服丝袜中文字幕亚洲| 久久成人免费网| 中文字幕欧美国产| 在线观看亚洲精品视频| 蜜臀精品一区二区三区在线观看| 久久精品人人做人人爽人人| 国产一区二区不卡老阿姨| 国产亚洲一本大道中文在线| 成人精品鲁一区一区二区| 亚洲视频每日更新| 欧美亚洲另类激情小说| 久久成人免费网| 国产精品国产三级国产专播品爱网 | 亚洲成av人**亚洲成av**| 91精品国产综合久久香蕉的特点| 久久99国产精品久久99| 中文一区二区完整视频在线观看| 97se亚洲国产综合在线| 日日夜夜精品免费视频| 欧美三级在线看| 亚洲高清免费观看| 日韩欧美国产一区在线观看| 国产ts人妖一区二区| 亚洲成年人网站在线观看| 精品日韩欧美一区二区| 日本道在线观看一区二区| 免费欧美高清视频| 亚洲天堂av一区| 精品奇米国产一区二区三区| 色综合av在线| 国产乱码精品一区二区三区忘忧草| 亚洲精品国产第一综合99久久| 精品国产百合女同互慰| 欧美日韩一区二区三区高清| 国产成人无遮挡在线视频| 亚洲国产精品视频| 亚洲欧美日韩综合aⅴ视频| 久久蜜桃av一区二区天堂| 欧美精品乱码久久久久久按摩 | 亚洲午夜私人影院| 国产精品久久久久久福利一牛影视 | 视频一区二区国产| 国产精品欧美一区喷水| 日韩欧美高清一区| 久久婷婷国产综合精品青草| 色综合天天综合网天天狠天天 | 精品久久久久久久久久久久包黑料 | 亚洲一本大道在线| 亚洲少妇中出一区| 久久一夜天堂av一区二区三区| 这里是久久伊人| 欧美日韩久久不卡| 色网综合在线观看| av成人动漫在线观看| 岛国精品在线播放| 韩国女主播成人在线观看| 婷婷中文字幕一区三区| 亚洲成人一区二区在线观看| 成人免费视频在线观看| 中文字幕的久久| 国产日韩欧美电影| 国产日韩欧美不卡在线| 欧美激情自拍偷拍| 中文字幕av不卡| 国产欧美视频一区二区| 欧美国产激情一区二区三区蜜月| 久久青草国产手机看片福利盒子| 精品国产伦一区二区三区观看方式| 91精品国产综合久久精品图片| 欧美精选午夜久久久乱码6080| 欧美人成免费网站| 欧美一二三区在线| 久久综合国产精品| 国产欧美一区二区在线| 国产精品免费av| 亚洲精品午夜久久久| 亚洲电影激情视频网站| 青娱乐精品在线视频| 国产伦精品一区二区三区视频青涩 | 一区二区在线观看免费| 亚洲成精国产精品女| 日韩综合在线视频| 精久久久久久久久久久| 国内精品写真在线观看| 国产在线精品一区二区不卡了| 亚洲精品老司机| 亚洲成人免费观看| 天堂影院一区二区| 日韩影院精彩在线| 麻豆成人免费电影| 国产精品综合在线视频| 国产美女在线观看一区| 处破女av一区二区| 色诱亚洲精品久久久久久| 在线欧美日韩精品| 555夜色666亚洲国产免| 777xxx欧美| 久久精品夜夜夜夜久久| 亚洲电影一级片| 成人91在线观看| 欧美一区二区三级| 国产日韩欧美制服另类| 亚洲综合一二区| 东方欧美亚洲色图在线| 91精品国产91综合久久蜜臀| 日韩欧美国产综合| 欧美精品一区二区三区视频| 亚洲女同一区二区|