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

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

?? microvfd.c

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉動及連續播放,已大量生產的CODE.
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* 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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜亚洲精品中文字幕一区| 一区二区三区在线影院| 久久综合九色综合欧美亚洲| 精品动漫一区二区三区在线观看| 91精品国产一区二区人妖| 国内精品写真在线观看| 亚洲超碰精品一区二区| 菠萝蜜视频在线观看一区| 日韩视频一区在线观看| 亚洲成人午夜电影| 在线一区二区三区四区五区| 国产精品久久免费看| 国产精品一区二区免费不卡| 日韩欧美二区三区| 免费成人在线播放| 日韩欧美www| 久久精品国产成人一区二区三区| 精品嫩草影院久久| 中文av一区二区| 三级在线观看一区二区| 91亚洲精品久久久蜜桃| 精品伦理精品一区| 午夜成人在线视频| av电影在线观看不卡| 精品欧美一区二区在线观看| 三级亚洲高清视频| 色婷婷久久久久swag精品| 国产欧美日韩中文久久| 久久精品99国产国产精| 9191久久久久久久久久久| 亚洲天天做日日做天天谢日日欢 | 日韩久久一区二区| 国产乱子轮精品视频| 91精品国产乱码| 午夜精品福利一区二区三区av| 91片在线免费观看| 亚洲欧洲性图库| 99国产精品一区| 亚洲欧洲av在线| 色老汉av一区二区三区| 国产精品热久久久久夜色精品三区| 韩国欧美国产一区| 国产亚洲精品福利| 9色porny自拍视频一区二区| 欧美极品xxx| 99久久精品免费看国产免费软件| 久久久精品影视| jizz一区二区| 亚洲视频在线一区观看| 在线免费不卡电影| 视频精品一区二区| 精品国一区二区三区| 成人精品一区二区三区四区| 国产精品第五页| 欧美精品粉嫩高潮一区二区| 日本va欧美va精品发布| 精品成人佐山爱一区二区| www..com久久爱| 亚洲免费毛片网站| 日韩欧美国产一区二区三区 | 欧美午夜精品一区二区蜜桃| 亚洲一区二区三区视频在线播放| 5566中文字幕一区二区电影| 欧美aaa在线| 国产精品人人做人人爽人人添| 色婷婷综合久久| 国产中文一区二区三区| 亚洲精品中文在线观看| 精品少妇一区二区三区日产乱码| 成人精品国产免费网站| 日本欧美久久久久免费播放网| 国产女同性恋一区二区| 91精品一区二区三区久久久久久 | 91福利社在线观看| 国产一区二区在线观看视频| 亚洲激情第一区| 国产夜色精品一区二区av| 欧美日韩精品欧美日韩精品一 | 欧美美女激情18p| av电影在线观看完整版一区二区| 另类人妖一区二区av| 亚洲国产精品一区二区www| 国产精品嫩草99a| 久久久99久久| 精品sm捆绑视频| 日韩精品一区二区三区在线 | 欧美精品一区二区三区在线| 欧美日韩精品高清| 欧美在线观看视频一区二区三区| 成人网在线播放| 懂色av一区二区三区免费观看| 精品一区二区三区免费| 欧美a一区二区| 韩国在线一区二区| 国产乱色国产精品免费视频| 久久69国产一区二区蜜臀| 日产欧产美韩系列久久99| 蜜臀a∨国产成人精品| 免费黄网站欧美| 国产精品一卡二| 成人av网址在线| 色婷婷综合在线| 欧美日韩在线一区二区| 欧美亚洲国产一区在线观看网站| 欧美系列亚洲系列| 日韩欧美色综合| 国产人伦精品一区二区| 自拍偷在线精品自拍偷无码专区| 日韩美女视频一区二区| 亚瑟在线精品视频| 久久精品国产久精国产| 国产成人精品一区二区三区四区| 99热精品一区二区| 欧美日韩精品一区二区三区四区| 日韩欧美国产综合一区 | 国产成人免费在线视频| 91浏览器打开| 日韩精品最新网址| 最新国产成人在线观看| 婷婷中文字幕综合| 成人综合日日夜夜| 欧美性感一区二区三区| 久久久久国产精品免费免费搜索| 亚洲欧美日本在线| 激情久久五月天| 91国产免费观看| 国产午夜精品在线观看| 爽好久久久欧美精品| 成人亚洲精品久久久久软件| 欧美男生操女生| 亚洲欧美一区二区三区久本道91 | 韩国一区二区视频| 欧美少妇一区二区| 日韩毛片高清在线播放| 国产又黄又大久久| 欧美一区二区三区婷婷月色| 国产精品久久久久久久久动漫| 久久激五月天综合精品| 欧美日韩电影在线| 一区二区三区在线观看网站| 成人午夜免费视频| 国产午夜精品美女毛片视频| 美女一区二区视频| 欧美精品少妇一区二区三区| 亚洲男帅同性gay1069| 99精品国产99久久久久久白柏| 久久精品一区二区三区不卡牛牛 | 日韩三级高清在线| 亚瑟在线精品视频| 欧美久久久久中文字幕| 亚洲国产aⅴ天堂久久| 欧美午夜影院一区| 偷拍与自拍一区| 日韩一区二区不卡| 久久99精品国产.久久久久久| 精品久久一区二区三区| 麻豆精品久久精品色综合| 制服视频三区第一页精品| 偷窥少妇高潮呻吟av久久免费| 91麻豆精品91久久久久同性| 日韩成人免费看| 日韩精品自拍偷拍| 国产大陆a不卡| 亚洲天堂a在线| 欧美亚洲丝袜传媒另类| 久久精品国产成人一区二区三区| 久久欧美中文字幕| www.久久精品| 七七婷婷婷婷精品国产| 久久―日本道色综合久久| av中文字幕在线不卡| 午夜精品久久久久久久久久| 欧美成人欧美edvon| 99久久精品国产观看| 日韩avvvv在线播放| 中文字幕精品综合| 欧美日韩一区高清| 国产剧情一区在线| 一区二区视频在线| 精品99久久久久久| 欧美性猛交xxxxxxxx| 国产成人av电影在线观看| 亚洲自拍欧美精品| 欧美高清在线精品一区| 在线综合+亚洲+欧美中文字幕| 懂色av噜噜一区二区三区av| 午夜欧美大尺度福利影院在线看| 国产欧美精品国产国产专区| 欧美日韩在线综合| 91麻豆福利精品推荐| 国产精品亚洲第一区在线暖暖韩国 | 亚洲色图在线播放| 久久精品一级爱片| 久久综合久久综合久久综合| 91福利视频久久久久| 成人动漫精品一区二区| 韩国av一区二区三区四区| 伦理电影国产精品| 日韩精品电影一区亚洲| 亚洲综合成人在线视频|