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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? microvfd.c

?? 一個(gè)兩碟控制的VCD的代碼,兩碟之間的轉(zhuǎn)動(dòng)及連續(xù)播放,已大量生產(chǎn)的CODE.
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
/* Copyright 1997, ESS Technology, Inc.					*/
/* SCCSID @(#)microvfd.c	1.72 12/7/98 */

/*
 * $Log$
 */
#include <stdio.h>
#include "common.h"
#include "mvd.h"
#include "constvar.h"
#include "const.h"
#include "timedef.h"
#include "ioport.h"
#include "util.h"
#include "sysinfo.h"
#include "micro.h"
#include "play.h"
#include "panel.h"
#include "ir.h"
#include "dsa.h"
#include "dsc.h"
#include "panelcmd.h"
#include "config.h"
#include "vfdshare.h"
#include "keydef.h"

#ifdef SGAME
#include "sgame.h"
#endif


#ifdef DVD_VCD
#include "debug.h"
#include "talk.h"
#endif

/************************************************************************
 * Shodows are for VFD icons.						*
 * 									*
 * Size if determined by the number of grids (G). By default, we'll 	*
 * handle up to VFD with 9 G's. 					*
 *									*
 * The number is G*2 because we handle up to 16 segments (P)		*
 ************************************************************************/
#define SHADOW_LENGTH           18

/************************************************************************
 * Macros specific to different VFD drivers.				*
 ************************************************************************/
#ifdef D16312

/* VFD_MODE is set according to the target VFD's grid/segment		*/
#ifdef VFD_FUTABA
#define VFD_MODE                0x02	/* 6G, 16P			*/
#else
#define VFD_MODE                0x05	/* 9G, 13P			*/
#endif /* VFD_FUTABA */

#ifdef VFD_EXPEND
#define KEY_LENGTH              7
#define KEY_LED                 4
#else
#define KEY_LENGTH              3
#endif

#define VFD_DUTY_CYCLE          0x8c
#define VFD_ADDRESS_INC         0x40
#define VFD_ADDRESS_FIX         0x44
#define VFD_ADDRESS_MASK        0xc0
#define VFD_READ_KEY            0x42
#define VFD_READ_SW             0x43
#define VFD_WRITE_LED           0x41

#ifdef  VFD_EXPEND
#define VFD_WRITE_LED           0x41
PRIVATE char WRITE_LED[4]={0x07,0x0b,0x0d,0x0e};
unsigned char Data_LED;
int DataLED;
#endif


#endif /* D16312 */

#ifdef MN12510
/* By Liang Weihua */

#define KEY_LENGTH              12   

#define VFD_ADDRESS_MASK        0x40
#define VFD_READ_KEY            0x80

#ifdef  AIQING
#define FLPCNT                  0x01   
#define DGTCNT                  0x7e       
#define SEGCNT                  0x0f
#define P01CNT                  0x0f
#define P2DIR                   0x0f
#define P2CNT                   0x0f
#define P3DIR                   0x00   
#define P3CNT                   0x00   
#define KEYCNT                  0x1b   
#define P01DATA                 0x0f
#define P2DATA                  0x0f
#define P3DATA                  0x00

#else
#define FLPCNT                  0x01   
#define DGTCNT                  0x5e   
#define SEGCNT                  0x0f
#define P01CNT                  0x0f
#define P2DIR                   0x0f
#define P2CNT                   0x0f
#define P3DIR                   0x00   
#define P3CNT                   0x00   
#define KEYCNT                  0x1b   
#define P01DATA                 0x0f
#define P2DATA                  0x0f
#define P3DATA                  0x00
#endif  /*AIQING*/
#endif /* MN12510 */

#ifdef BU2872
/* By Liang Weihua */
#ifdef VFD_FUTABA
#define VFD_MODE                0x3a	/* 6 G, 16P			*/
#else
#define VFD_MODE                0x3f	/* 11G, 11P			*/
#endif /* VFD_FUTABA */

#define KEY_LENGTH              3

#define VFD_ADDRESS_MASK        0x80
#define VFD_READ_KEY            0xa0

#endif /* BU2872 */

/* the shaowram address of track, min and second. */

#ifdef VFD_FUTABA
#ifdef  FU271
#ifdef  A300

#ifndef CHANGE_271

#define TRACK_LOW               0x00    /*0x0e*/
#define TRACK_HIGH              0x01    /*0x0c*/
#define SECOND_LOW              0x06    /*0x0a*/
#define SECOND_HIGH             0x07    /*0x08*/
#define MINUTE_LOW              0x04    /*0x06*/
#define MINUTE_HIGH             0x05    /*0x04*/

#else

#define TRACK_LOW               0x0a    /*0x0e*/
#define TRACK_HIGH              0x0b    /*0x0c*/
#define SECOND_LOW              0x04    /*0x0a*/
#define SECOND_HIGH             0x05    /*0x08*/
#define MINUTE_LOW              0x06    /*0x06*/
#define MINUTE_HIGH             0x07    /*0x04*/

#endif

#else
#define TRACK_LOW               0x0b    /*0x0e*/
#define TRACK_HIGH              0x0a    /*0x0c*/
#define SECOND_LOW              0x05    /*0x0a*/
#define SECOND_HIGH             0x04    /*0x08*/
#define MINUTE_LOW              0x07    /*0x06*/
#define MINUTE_HIGH             0x06    /*0x04*/
#endif

#else
#ifdef FU265
#define TRACK_LOW               0x00    /*0x0e*/
#define TRACK_HIGH              0x01    /*0x0c*/
#define SECOND_LOW              0x06    /*0x0a*/
#define SECOND_HIGH             0x07    /*0x08*/
#define MINUTE_LOW              0x04    /*0x06*/
#define MINUTE_HIGH             0x05    /*0x04*/
#else
#ifdef SVA_06MM
#define TRACK_LOW               0x00    /*0x0e*/
#define TRACK_HIGH              0x01    /*0x0c*/
#define SECOND_LOW              0x06    /*0x0a*/
#define SECOND_HIGH             0x07    /*0x08*/
#define MINUTE_LOW              0x04    /*0x06*/
#define MINUTE_HIGH             0x05    /*0x04*/
#else


#ifdef FU239
#define TRACK_LOW               0x00    /*0x0e*/
#define TRACK_HIGH              0x01    /*0x0c*/
#define SECOND_LOW              0x06    /*0x0a*/
#define SECOND_HIGH             0x07    /*0x08*/
#define MINUTE_LOW              0x04    /*0x06*/
#define MINUTE_HIGH             0x05    /*0x04*/
#else

#ifdef   FU_KANGHUI30
#define TRACK_LOW               ANODE_G6L
#define TRACK_HIGH              ANODE_G6H
#define SECOND_LOW              ANODE_G3L
#define SECOND_HIGH             ANODE_G4L
#define MINUTE_LOW              ANODE_G4H
#define MINUTE_HIGH             ANODE_G5L
#else
#ifdef  FU_HUASHENG
#define TRACK_LOW               0x00    /*0x0e*/
#define TRACK_HIGH              0x01    /*0x0c*/
#define SECOND_LOW              0x06    /*0x0a*/
#define SECOND_HIGH             0x07    /*0x08*/
#define MINUTE_LOW              0x04    /*0x06*/
#define MINUTE_HIGH             0x05    /*0x04*/
#else
#define TRACK_LOW               0x06
#define TRACK_HIGH		0x07
#define SECOND_LOW		0x08
#define SECOND_HIGH		0x09
#define MINUTE_LOW		0x0a
#define MINUTE_HIGH		0x0b

#endif
#endif
#endif
#endif    /* SVA_06MM */
#endif    /*fu_huasheng */
#endif    /*kanghui*/

#else
#define TRACK_HIGH              0x0e
#define TRACK_LOW               0x0c
#define MINUTE_HIGH             0x0a
#define MINUTE_LOW              0x08
#define SECOND_HIGH             0x06
#define SECOND_LOW              0x04
#endif /* VFD_FUTABA */


void put_keycode(int key);

#if 0
#ifndef MASTER /* for vcd slave and stand alone vcd */
#define put_keycode(key)	(key0 = key) 
#endif
#endif

#ifdef MASTER /* DVD master and VCD master */
extern unsigned short codeIR ;
extern int user_input_key;

#if defined(DVD_VCD)  /*VCD master have no chance to process key */ 
#define put_keycode(key)
#else /* for DVD master */
#define put_keycode(key) user_input_key = key
#endif

#endif /* MASTER */
 
/************************************************************************
 * Macros relate to VFD communication.					*
 ************************************************************************/
#ifndef SET_VFD_CLK		/* We'll get rid of this via config.h	*/
#define SET_VFD_CLK		SET_AUX7
#define SET_VFD_DATA		SET_AUX2
#define SET_VFD_STROBE		SET_AUX6

#define CLEAR_VFD_CLK		CLEAR_AUX7
#define CLEAR_VFD_DATA		CLEAR_AUX2
#define CLEAR_VFD_STROBE	CLEAR_AUX6

#define TRISTATE_VFD_DATA	TRISTATE_AUX2
#define VFD_DATA_HIGH           AUX2_HIGH

#ifdef VFD_STB_ACTIVE_HIGH
/* E.g. BU2872 */
#define	VFD_STROBE_ACTIVE	SET_VFD_STROBE
#define	VFD_STROBE_INACTIVE	CLEAR_VFD_STROBE
#else
/* E.g. D16312, MN12510 */
#define	VFD_STROBE_ACTIVE	CLEAR_VFD_STROBE
#define	VFD_STROBE_INACTIVE	SET_VFD_STROBE
#endif /* else of VFD_STB_ACTIVE_HIGH */
#endif /* SET_VFD_CLK */

#define TRIGGER_HOST_PORT       reg0 = *(int *)x1c060000

/************************************************************************
 * Macros relate to remote control ASSIGN_SYSCODE moved to ir.c
 ************************************************************************/

#define CLEAR_REMOTE            (codeIR &= ~0x100)

#ifdef IR_PHILIPS
/* Philips IR only has 6 bits */
#define REMOTE_KEY              (char)(codeIR & 0x3f)
#endif /* IR_PHILIPS */

#if (IR_NEC || IR_SANYO)
/* NEC/SANYO IR have 8 bits */
#define REMOTE_KEY              (char)(codeIR & 0xff)
#endif /* IR_NEC || IR_SANYO */

/************************************************************************
 * Global functions.							*
 ************************************************************************/
void	initMicroObject(void);
int	get_keycode();
void	microEngine(void);

/************************************************************************
 * Private functions.							*
 ************************************************************************/
PRIVATE	void	VFD_clearSegment(int, unsigned short *);
PRIVATE	void	VFD_flashCalendar(void);
PRIVATE	void	VFD_objectReadByte(void);
PRIVATE	void	VFD_objectSendByte(int);
PRIVATE	void	VFD_parseKey(void);
PRIVATE	void	VFD_process7Segments(int, int, unsigned char, int);
PRIVATE	void	VFD_processBlank(int);
PRIVATE	void	VFD_processIndicator(int type,char indicator);
PRIVATE	void	VFD_processMessage(int);
PRIVATE	void	VFD_push(int);
PRIVATE	void	VFD_searchKey(void);
PRIVATE	void	VFD_strobeSendByte(int);

#ifdef VFD_LED
PRIVATE int vfdsw;
PRIVATE void    VFD_state_read_sw_0(void);
PRIVATE void    VFD_state_read_sw_1(void);
PRIVATE void    VFD_state_write_led_0(void);
PRIVATE void    VFD_state_write_led_1(void);
#endif

PRIVATE	void	VFD_state_init(void);
PRIVATE	void	VFD_state_scan_key_0(void);
PRIVATE	void	VFD_state_scan_key_1(void);
PRIVATE	void	VFD_state_scan_key_2(void);
PRIVATE	void	VFD_state_scan_key_3(void);
PRIVATE	void	VFD_state_scan_key_4(void);
PRIVATE	void	VFD_state_scan_key_5(void);
PRIVATE	void	VFD_state_refresh_0(void);
PRIVATE	void	VFD_state_refresh_1(void);
PRIVATE	void	VFD_state_refresh_2(void);
PRIVATE	void	VFD_state_refresh_3(void);
PRIVATE	void	VFD_state_refresh_4(void);
PRIVATE	void	VFD_state_refresh_5(void);

#ifdef VFD_EXPEND
PRIVATE void    VFD_state_scan_keys_0(void);
PRIVATE void    VFD_state_scan_keys_1(void);
PRIVATE void    VFD_state_scan_keys_2(void);
PRIVATE void    VFD_state_scan_keys_3(void);
PRIVATE void    VFD_state_scan_keys_4(void);
#endif

/************************************************************************
 * Local variables							*
 ************************************************************************/
PRIVATE struct {
    unsigned int     FlashTime;
} ObjectTime;

PRIVATE struct {
    char    KeyBuffer[KEY_LENGTH];
    char    FireKey;
    char    Digit10Key;
} ObjectKey;
 
/*
 * There is a stack to keep track which "G/P" byte needs to be updated.
 * G/P combinations are defined as ANODE_G1L, ANODE_G1H etc in vfdshare.h.
 */
PRIVATE	int		VFDptr;
PRIVATE	char		VFD_refresh_stack[SHADOW_LENGTH]; 
#define POPVFD          VFD_refresh_stack[--VFDptr]

/*
 * ShadowRam keeps track of the value that needs to be set for the
 * corresponding G/P combination.
 */
PRIVATE	unsigned char	ShadowRam[SHADOW_LENGTH];

PRIVATE	int		RefreshCounter;
PRIVATE	int		EnableFlashing, FlashingCalendar;
PRIVATE	char		DataLength;
PRIVATE	int		key0 = NO_KEY;


PRIVATE	PFV		VFD_next_state = VFD_state_init;

/*add*/
#ifdef  SGAME
unsigned char  av_game_flag =0;
#endif


/************************************************************************
 * Global variables							*
 ************************************************************************/
int last_voice_clock;

int microKeyPending()
{
    if ((REMOTE_VALID) || (key0 != NO_KEY))
	return (1);

    return (0);
}

void initMicroObject(void)
{
    int i;

#ifdef DVD_VCD /* VCD slave and master */
    return;
#endif

    ObjectTime.FlashTime = glbTimer + HALF_SECOND;
    VFD_STROBE_INACTIVE;
    SET_VFD_CLK;
    SET_VFD_DATA;
    VFD_processBlank(BLANK_ALL);
}

void put_keycode(int key)
{
	key0 = key;
}

int get_keycode()
{
    int return_key;

    return_key = key0;
    key0 = NO_KEY;
    return return_key;
}

volatile int KeySearchLock;
/*===========================================================================*/
PRIVATE void VFD_searchKey(void)
{
    int bitCounter,keyLength,keyCounter,keyInCounter,keyCode;
    char *p,tmp;

    p = ObjectKey.KeyBuffer;
    keyLength = KEY_LENGTH;
    keyCounter = keyInCounter = keyCode = 0;

    do {
        for (bitCounter = 0, tmp = *p; bitCounter < 8; bitCounter++) {
            if (tmp & 0x01) {
                keyInCounter++;
                keyCode = keyCounter;
            }
            keyCounter++;
            tmp >>= 1;
        }
        *p++;
    } while (--keyLength);

    if (keyInCounter) {
        if (keyInCounter == 1 && !KeySearchLock) {
	    unsigned char * key_tbl = T_VFD_key_tbl;
	    KeySearchLock = 1;
#ifdef DEBUG_OSD
           debug_osd("VFDKEY",keyCode,10);
#endif
            ObjectKey.FireKey = key_tbl[keyCode];
	} else {
	    ObjectKey.FireKey = NO_KEY;
	}
    }
    else {
	    KeySearchLock = 0;
        ObjectKey.FireKey = NO_KEY;
    }
}

/*===========================================================================*/
PRIVATE void VFD_parseKey(void)
{
    int ignore_key, key;

#ifdef VCDROM
    if (VCD_30) {
	if (ObjectKey.FireKey != NO_KEY) {
	    key = ObjectKey.FireKey ;    
	    ObjectKey.FireKey = NO_KEY;
	    if (key == EJECT_KEY)
		put_keycode(NO_KEY);	/* Clear possible key left in queue */
	    vcd30_key_preprocess(key);
    
	    put_keycode(key);
	}
#ifdef IR_PHILIPS
            key = NO_KEY;                           /* starts at 0xffxx.*/
#endif /* IR_PHILIPS */

	    return ;
    }

#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青草国产精品97视觉盛宴| 精品国产一区a| 日韩国产欧美在线播放| 国产精品系列在线| 欧美三级视频在线观看| 久久99精品久久久久久久久久久久| 国产亚洲午夜高清国产拍精品| 在线播放日韩导航| 96av麻豆蜜桃一区二区| 激情欧美一区二区| 亚洲h精品动漫在线观看| 日本一区免费视频| 日韩视频在线你懂得| 色综合激情久久| 国产精品影音先锋| 日韩av电影天堂| 亚洲激情一二三区| 国产精品伦理在线| 久久美女艺术照精彩视频福利播放| 欧洲在线/亚洲| 97久久超碰国产精品| 国产精品一区二区你懂的| 青娱乐精品视频| 亚洲制服丝袜在线| 亚洲天堂中文字幕| 国产精品丝袜91| 国产亚洲1区2区3区| 精品国产免费久久| 制服丝袜激情欧洲亚洲| 欧美日韩五月天| 91传媒视频在线播放| 91视频xxxx| av一区二区三区四区| 国产黄色精品网站| 国产麻豆成人精品| 久草热8精品视频在线观看| 日韩制服丝袜先锋影音| 一区二区成人在线视频| 亚洲最快最全在线视频| 亚洲乱码国产乱码精品精可以看 | 欧美美女激情18p| 在线精品视频小说1| 91免费在线视频观看| 91在线观看成人| 91啪亚洲精品| 色婷婷综合久久| 91国在线观看| 91超碰这里只有精品国产| 欧美日本一区二区三区四区| 欧洲视频一区二区| 欧美日本一区二区三区| 777午夜精品视频在线播放| 日韩一二三四区| 精品少妇一区二区三区免费观看| 精品久久久久久最新网址| 26uuu另类欧美| 中文子幕无线码一区tr| 国产精品不卡一区| 亚洲激情综合网| 亚洲国产精品久久人人爱| 日韩电影在线一区二区| 韩国欧美国产1区| 成人手机电影网| 色综合久久中文综合久久牛| 欧美性极品少妇| 日韩欧美亚洲另类制服综合在线 | 亚洲视频中文字幕| 亚洲一区二区精品视频| 日韩vs国产vs欧美| 国产原创一区二区| eeuss鲁一区二区三区| 91久久精品一区二区| 在线不卡欧美精品一区二区三区| 日韩午夜av电影| 国产日韩欧美一区二区三区乱码| 国产精品乱人伦| 亚洲免费看黄网站| 日韩制服丝袜av| 高清国产一区二区三区| 一本一道久久a久久精品| 88在线观看91蜜桃国自产| 精品欧美乱码久久久久久 | 中文字幕一区二区三区色视频 | 欧美日韩亚洲综合| 精品国产伦一区二区三区免费 | 亚洲成av人片在线观看无码| 久久电影国产免费久久电影| 成人av免费网站| 欧美一区二区三区色| 国产精品久久久久aaaa| 日韩精品1区2区3区| 成人综合婷婷国产精品久久免费| 日本高清不卡一区| 久久久久综合网| 亚洲无线码一区二区三区| 国产老妇另类xxxxx| 在线观看亚洲专区| 国产三级一区二区| 石原莉奈一区二区三区在线观看 | 91精品欧美综合在线观看最新| 亚洲国产精品ⅴa在线观看| 天天综合日日夜夜精品| 风间由美一区二区av101 | 99精品久久99久久久久| 91精品蜜臀在线一区尤物| 亚洲免费在线视频一区 二区| 久久精品国产精品亚洲精品 | 91捆绑美女网站| 久久久五月婷婷| 日本成人中文字幕| 欧美探花视频资源| 中文字幕一区av| 丁香桃色午夜亚洲一区二区三区| 欧美一区二区视频在线观看2022| 国产精品久久久久久亚洲伦| 国产在线视频一区二区三区| 欧美日韩国产影片| 亚洲一区二区三区小说| 99久久久免费精品国产一区二区| 久久综合九色综合97婷婷女人| 日韩不卡一区二区| 欧美色涩在线第一页| 一区二区三区欧美日| 99精品偷自拍| 国产精品久久久久久福利一牛影视| 国产一区二区三区av电影| 日韩小视频在线观看专区| 日韩精品午夜视频| 欧美日韩久久一区| 亚洲成人自拍一区| 欧美另类高清zo欧美| 亚洲午夜久久久久中文字幕久| 91最新地址在线播放| 综合久久国产九一剧情麻豆| 不卡视频免费播放| 亚洲欧洲日本在线| 成人高清视频在线| 成人欧美一区二区三区视频网页 | 一色屋精品亚洲香蕉网站| 国产成人一级电影| 国产精品美女www爽爽爽| 波多野结衣中文字幕一区二区三区 | 国产精品一区二区三区四区| 国产午夜一区二区三区| 国产91丝袜在线18| 国产精品国产a| 色哟哟亚洲精品| 亚洲综合一二区| 欧美日韩精品欧美日韩精品| 亚洲成人在线免费| 日韩欧美在线网站| 国内成人免费视频| 国内精品视频一区二区三区八戒| 精品国产乱码久久久久久蜜臀| 久久国产综合精品| 国产欧美视频一区二区三区| 成人自拍视频在线观看| 亚洲视频小说图片| 欧美日韩国产影片| 麻豆精品视频在线观看视频| 国产午夜亚洲精品不卡| 99在线热播精品免费| 午夜伦理一区二区| 精品国产亚洲一区二区三区在线观看| 国产精品一区二区久久精品爱涩| 日本一区二区三区在线不卡| 91麻豆免费看| 亚洲成人tv网| 久久久国产一区二区三区四区小说 | 99这里都是精品| 天堂一区二区在线| 精品国产乱码久久久久久久久| 国产福利91精品一区| 亚洲色图欧美偷拍| 日韩精品专区在线影院观看| 成人午夜av影视| 午夜成人在线视频| 国产三级久久久| 欧美日韩国产精品自在自线| 国产麻豆91精品| 亚洲最大的成人av| 欧美精品一区二区三区一线天视频 | 国产另类ts人妖一区二区| 一区二区视频免费在线观看| 欧美一区二区福利在线| 成人动漫一区二区三区| 午夜精品久久久久久久久| 国产日产欧美一区二区三区| 欧美性高清videossexo| 国产91色综合久久免费分享| 午夜精品国产更新| 国产欧美日韩在线视频| 欧美男生操女生| proumb性欧美在线观看| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲欧美在线另类| 久久中文娱乐网| 欧美丰满少妇xxxbbb| 99精品欧美一区| 国产精品 欧美精品|