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

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

?? low.c

?? 一個兩碟控制的VCD的代碼,兩碟之間的轉動及連續播放,已大量生產的CODE.
?? C
字號:
/* Copyright 1996, ESS Technology, Inc.					*//* SCCSID @(#)low.c	1.54 3/27/98 *//* * $Log$ */#include "mvd.h"#include "common.h"#include "util.h"#include "debug.h"#include "vcxi.h"#include "buffer.h"#include "low.h"#include "vp.h"#include "pts.h"#include "ioport.h"#include "constvar.h"#ifdef ECHO#include "echo.h"#endif#define PRINTF(a)/****************************************************************************** RDMA initialisation.******************************************************************************/void LOW_init_rdma(void){    RDMADoneMask = 0;    mvd[rdma_donemask] = RDMADoneMask;    mvd[rdma_done] = 0x3f;	/* Reset status flags */    mvd[rdma_transr_pri] = 0;    mvd[rdma_transr_cnt] = 0;    mvd[rdma_tdmw_pri] = 0;    mvd[rdma_tdmw_cnt] = 0;    mvd[rdma_gatewayr_pri] = 0;    mvd[rdma_gatewayr_cnt] = 0;    mvd[rdma_gatewayw_pri] = 0;    mvd[rdma_gatewayw_cnt] = 0;    mvd[rdma_hostr_pri] = 0;    mvd[rdma_hostr_cnt] = 0;    mvd[rdma_hostw_pri] = 0;    mvd[rdma_hostw_cnt] = 0;    mvd[rdma_tdmr_pri] = 0;    mvd[rdma_tdmr_cnt] = 0;    mvd[rdma_pageaddress] = 0;          /* locate to data segment */}/****************************************************************************** Gateway initialisation.******************************************************************************/#define B2RSTART     	0x00L#define B2REND     	(RiscFifoSize/2-1)#define R2BSTART   	(RiscFifoSize/2)#define R2BEND     	(RiscFifoSize-1)#define XPASTART	0x00L#define XPAEND		(XportFifoSize/2-1)#define XPVSTART	(XportFifoSize/2)#define XPVEND		(XportFifoSize-1)#define AHUFSTART	0x00#define VHUFSTART	(B2DFifoSize/4)#define AOUTSTART	(B2DFifoSize/2)#define HOUTSTART       (B2DFifoSize/2)#define AHUFEND    	(VHUFSTART-1)	#define VHUFEND		(AOUTSTART-1)	#define AOUTEND		(B2DFifoSize-1)#define HOUTEND         (B2DFifoSize-1)                #define AINSTART	0x00#define AINEND		(D2BFifoSize-1)/* address bits*/#define RiscFifo	5L#define XportFifo	7L#define D2BFifo		5L#define B2DFifo		6L/* ram size */#define RiscFifoSize		0x20L#define XportFifoSize		0x80L#define D2BFifoSize		0x20L#define B2DFifoSize		0x40L/* bits */#define gate_b2r_bit		0x00000001L#define gate_r2b_bit		0x00000002L#define gate_xportv_bit		0x00000004L#define gate_xporta_bit		0x00000008L#define gate_hufenc_bit		0x00000010L#define gate_audin_bit		0x00000020L#define gate_vhufdec_bit	0x00000040L#define gate_ahufdec_bit	0x00000080L#define gate_audout_bit		0x00000100L#define gata_hostout_bit 	0x00000200L#define gate_xa2_bit		gate_audin_bit#define gate_xa1_bit		gate_hufenc_bit#define gate_xa2_ff_vals	gate_audin_ff_vals#define gate_xa2_status		gate_audin_status#define gate_xa1_ff_vals	gate_hufenc_ff_vals#define gate_xa1_status		gate_hufenc_status/*RiscFifo	[r2b , b2r]XportFIFO	[xportv,xporta]Dma2BusFifo	[audin]Bus2DmaFifo 	[audout,ahufdec,vhufdec,hostout]*/#define enable_gateff(ch){					\	lwpoke(riface_irqsupress,0); asm("nop"); asm("nop");	\	gbl_gate_fiforeset &= ~cat3(gate_,ch,_bit);		\	lwpoke(gate_fiforeset,gbl_gate_fiforeset);		\}#define disable_gateff(ch){					\	lwpoke(riface_irqsupress,0); asm("nop"); asm("nop");	\	gbl_gate_fiforeset |= cat3(gate_,ch,_bit);		\	lwpoke(gate_fiforeset,gbl_gate_fiforeset);		\}#define set_gateff(ch,start,end,n) do {		\	lwpoke(cat3(gate_,ch,_ff_vals), 	\	((((end-start+1)/4-1) << (n<<1L)) 	\		| ((end) << n) 			\		| (start)			\	)); 					\} while (0)void LOW_init_gateway(void){    int	timeout;    gbl_gate_control = 0;    mvd[gate_control] = 0xfcL;			/* flush & reset all fifo */    mvd[gate_control] = gbl_gate_control;	/* flush end */    mvd[gate_fiforeset] = 0x3ff;		/* reset gateway fifo */    gbl_gate_fiforeset = 0x200;    set_gateff(r2b,	R2BSTART,  R2BEND,  RiscFifo);    set_gateff(b2r,	B2RSTART,  B2REND,  RiscFifo);    set_gateff(xporta,	XPASTART,  XPAEND,  XportFifo);    set_gateff(xportv,	XPVSTART,  XPVEND,  XportFifo);    set_gateff(audin,	AINSTART,  AINEND,  D2BFifo);    set_gateff(ahufdec, AHUFSTART, AHUFEND, B2DFifo);    set_gateff(vhufdec, VHUFSTART, VHUFEND, B2DFifo);    set_gateff(audioout,AOUTSTART, AOUTEND, B2DFifo);    mvd[gate_fiforeset] = gbl_gate_fiforeset;	/* unreset gateway fifo */} /****************************************************************************** DRAM related defines.******************************************************************************/#define DRAM_RFENBL		0x0200#define DRAM_CFG05		(0<<6)	/* .5 meg 1-256kx16 */#define DRAM_CFG1		(1<<6)	/* 1  meg 2-256kx16 */#define DRAM_CFG15		(2<<6)	#define DRAM_CFG2		(3<<6)	/* 2  meg 4-256kx16 */#define DRAM_CFG25		(4<<6)#define DRAM_CFG3		(5<<6)	#define DRAM_CFG4		(6<<6)	/* 4  meg 2-1megx16 */#define DRAM_CFG8		(7<<6)	/* 8  meg 4-1megx16 */#define DRAM_SPD2T3T3T	0x04#define DRAM_SPD2T2T3T	0x00#define DRAM_SPD3T3T3T  0x09#define NRSCR4TEN 0x6000  /* 0x6000 = enable 4t for noise reduction,			     0x2000 = enable 6t for nr */#define ENPRIODMA  0x20   /* Enable level priority and limit transfer block */ #ifndef DRAM_DMA_CNTL    /* Get rid of this item as soon as we use config file */#ifdef DVD_VCD#define DRAM_DMA_CNTL  (0xe01 | NRSCR4TEN | ENPRIODMA)/* edo , Stat3On , enable vpdma, endioOn, enable DMA level prior  */#else#ifdef MVD_BOARD#define DRAM_DMA_CNTL  (0xe01 | NRSCR4TEN | ENPRIODMA)/* edo , Stat3On , enable vpdma, endioOn, enable DMA level prior  */#else#define DRAM_DMA_CNTL  (0xe00 | NRSCR4TEN | ENPRIODMA | vcx_use_edo)/*       Stat3On , enable vpdma, endioOn, enable DMA level prior  */#endif#endif /* DVD_VCD */#endif #define DRAM_RESET_SCAL	0x080static int width3_shadow;/****************************************************************************** Buscon initialisation.******************************************************************************/void LOW_init_buscon(void){    mvd[gate_fiforeset] = 0x3ff;		/* reset gateway fifo */    mvd[buscon_vp_control] = 0;			/* reset on */    mvd[buscon_cmdque_clrhmode] = 0;		/* clr bits (blkdoneflag) */    mvd[buscon_cmdque_vpstatwait] = 0x0400;	/* clear endio */    mvd[buscon_cmdque_vpdmax] = 0x8000;		/* enable break */        mvd[buscon_dma_cntl] = DRAM_DMA_CNTL | 0x02;	/* reset dma */    mvd[buscon_dma_cntl] = DRAM_DMA_CNTL;    mvd[buscon_vp_control] = 0;			/* reset */    mvd[buscon_dma_disable] = x00ffffff;    mvd[buscon_dma_width0] = DMAWIDTH0;		/* whoever 512/4 */    mvd[buscon_dma_width1] = DMAWIDTH1;		/* UV 360/4 */    mvd[buscon_dma_width2] = DMAWIDTH2;		/* Y 720/4 & refresh */    width3_shadow = -1;}/************************************************************ * buscon related ************************************************************//************************************************************ * function: * width3 is a general purpose width for use like quant table, * mpgaudio, karaoke ... * the value of which should be loaded on the fly whenever it's used. * Altough mvd[buscon_dma_width3] is readable, we make a shadow to save * some code and time. ************************************************************/void LOW_set_buscon_dma_width3(ushort new_value){    assert(new_value < 0x200);    if (new_value != width3_shadow) {	VP_xfer_wait();	mvd[buscon_dma_width3] = new_value;	width3_shadow = new_value;    }}/****************************************************************************** Initiate DRAM refresh.******************************************************************************/void LOW_init_dram(void){#ifdef BUSCON_DRAM_CONTROL    /* For boards with special configuration specified in cfg file	*/    mvd[buscon_dram_control] = BUSCON_DRAM_CONTROL;#else#ifdef DVD_VCD    mvd[buscon_dram_control] = DRAM_RFENBL + DRAM_CFG2 + DRAM_SPD2T3T3T;#else#ifdef MPEG1#ifdef SVCD    mvd[buscon_dram_control] = DRAM_RFENBL + DRAM_CFG1 + DRAM_SPD2T3T3T;#else    /*     * The browser board can also be set to:     * mvd[buscon_dram_control] = DRAM_RFENBL + DRAM_CFG2 + DRAM_SPD3T3T3T;     */    mvd[buscon_dram_control] = DRAM_RFENBL + DRAM_CFG05 + DRAM_SPD2T3T3T;#endif#else    mvd[buscon_dram_control] = DRAM_RFENBL + DRAM_CFG3 + DRAM_SPD2T3T3T;#endif#endif /* DVD_VCD */#endif    /************************************************************    *    * For 3Mega Dram 729 times per 8ms .	    * New refresh period at 80MHz clk is    * 8ms/729 = (2048 -N* 8) * 12.5us    * N = 146d (0x92)    ************************************************************/    mvd[buscon_dram_reftime] = 0x92;	    /************************************************************    * deltas = ((0x80-dy)<<9) | (0x200 - dx);    * DeltaY=0,DeltaX=1    ************************************************************/    mvd[buscon_dma_deltas_ref] = (0x200 - 0x01);     /* use width0(256) for refresh */    mvd[buscon_dma_xpos_ref] = BDMA_WIDTH0+BDMA_INC2;    mvd[buscon_dma_ypos_ref] = 0x00;  }/****************************************************************************  Audio related.****************************************************************************/static int acnt0[3] = {0x620, 0x600, 0x400};	/* 44.1, 48 and 32 */static int acnt1[3] = {0x77a, 0x8d1, 0x6d1};#ifdef MPEG1static int pts_units_per_256_samples[3] = {261, 240, 360};#elsestatic int pts_units_per_256_samples[3] = {156734, 144000, 216000};#endif#ifdef DACLEFT				/* E.g. 1718			*/#define	FRAMEALIGN	0x40		/* Left justified		*/#else#define	FRAMEALIGN	0x80		/* Right justified		*/#endif#ifdef DACLAST#define	LASTBITLAST	0x2000		/* Last bit last		*/#else#define	LASTBITLAST	0		/* First bit first		*/#endif#ifdef INVATFS#define	ATFS_SETTING	0x20		/* Invert ATFS			*/#else	#define	ATFS_SETTING	0		/* Don't invert ATFS		*/#endif#ifdef SPDIFstatic int spdif_fs[3] = {0x00, 0x40, 0xc0};#endifvoid LOW_init_audio(void){    volatile int i;    gbl_gate_fiforeset &= ~gate_d2a_bit;    mvd[gate_fiforeset] = gbl_gate_fiforeset;    LOW_set_audio_sampling_frequency(0);#ifdef FS384    mvd[audioxmt] = 0x1118 | ATFS_SETTING | LASTBITLAST | FRAMEALIGN;#else#ifdef SPDIF    /* For MVD2 with 512FS */    mvd[audioxmt] = 0x0030 | FRAMEALIGN;#else    mvd[audioxmt] = 0x1018 | ATFS_SETTING | FRAMEALIGN;#endif#endif#ifdef ECHO    mvd[audiorcv] = 0x10a0;     /* MSB, sense on falling edge */    mvd[audioctl] = 0x0030;	/* external mclk */#else    mvd[audiorcv] = 0x00a8;#endif}void LOW_set_audio_sampling_frequency(int freq_code){    mvd[audiocnt0] = acnt0[freq_code];    mvd[audiocnt1] = acnt1[freq_code];    PTS_units_per_256_audio_samples = pts_units_per_256_samples[freq_code];#ifdef DVD_VCD 	/* fix it ASAP */    if (freq_code == 0) {	SET_AUX3; SET_AUX2;    } else if (freq_code == 1) {	CLEAR_AUX3; CLEAR_AUX2;    } else if (freq_code == 2) {	SET_AUX3; CLEAR_AUX2;    }#endif#ifdef SPDIF    {	int *cs8401a = (int *)0x14000100;	cs8401a[11] = spdif_fs[freq_code];    }#ifndef AUDIOCLK    if (freq_code == 0) {	TRISTATE_AUX3; SET_AUX2;    } else if (freq_code == 1) {	CLEAR_AUX3; CLEAR_AUX2;    } else if (freq_code == 2) {	SET_AUX3; CLEAR_AUX2;    }#endif#endif    prev_sampling_frequency = freq_code;}/****************************************************************************  Private DMA.****************************************************************************/#define pri_d2host	0x00000001#define pri_xax12d	0x00000002#define pri_d2ahuf	0x00000004#define pri_d2vhuf	0x00000008#define pri_aud2d	0x00000010#define pri_d2aud	0x00000020#define pri_d2tdm	0x00000040#define pri_xaud2d	0x00000080#define pri_xvid2d	0x00000100#define pri_ehuf2d  	0x00000200#define pri_xax22d	0x00000400#define pri_rst		0x00000800void LOW_init_private_dma(void){    int	private;    mvd[privatedmaenables] = pri_rst;    private = pri_xax12d | pri_xvid2d | pri_xaud2d | pri_d2ahuf | pri_d2vhuf;#ifdef ECHO    private |= pri_aud2d;#endif    private |= pri_d2aud;    mvd[privatedmaenables] = private;}/****************************************************************************  RISC interface. SRAM timing, timer, audio DAC etc.****************************************************************************/void LOW_init_riface(void){#ifndef MKROM    mvd[riface_width] = vcx_riface_width;     mvd[riface_wait_state] = vcx_riface_wait_state;#endif    mvd[riface_turnoff_delay] = vcx_riface_turnoff_delay;    mvd[riface_timer1] = 0;    mvd[riface_timer2] = 0;#ifdef PROBE_VP    mvd[riface_aux1] = 0x1b6;    shadow_riface_aux1 = 0x1b6;#else    mvd[riface_aux1] = 0x036;    shadow_riface_aux1 = 0x036;#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久综合九色综合欧美就去吻| 国产一区美女在线| 欧美在线三级电影| 亚洲国产精品久久一线不卡| 欧美日韩综合在线免费观看| 婷婷综合在线观看| 日韩欧美国产不卡| 国产一区二三区| 国产精品天美传媒| www.欧美日韩| 亚洲亚洲精品在线观看| 在线不卡免费av| 国产东北露脸精品视频| 中文字幕中文字幕在线一区| 在线看不卡av| 开心九九激情九九欧美日韩精美视频电影 | 国产欧美一区二区在线观看| 粉嫩一区二区三区性色av| 国产精品久久久久9999吃药| 欧美三片在线视频观看| 久久精品国产免费看久久精品| 久久精品一区二区三区不卡| 91片黄在线观看| 日本三级韩国三级欧美三级| 久久女同性恋中文字幕| 色偷偷成人一区二区三区91 | 中文字幕中文在线不卡住| 欧美在线观看视频在线| 久久99精品国产.久久久久久| 中文字幕一区免费在线观看| 欧美老年两性高潮| 国产91清纯白嫩初高中在线观看 | 免费观看日韩av| 久久精品免费在线观看| 欧美视频一区在线观看| 国产一区999| 亚洲国产一区在线观看| 久久精品视频一区二区| 欧美日韩高清在线| 成人av网在线| 久久国产精品色婷婷| 亚洲人成网站精品片在线观看| 欧美一区二区三级| 97国产精品videossex| 黄色小说综合网站| 亚洲一区二区在线播放相泽| 国产午夜亚洲精品午夜鲁丝片| 91麻豆福利精品推荐| 国内精品伊人久久久久影院对白| 亚洲一二三专区| 中文字幕一区二区三区av| 精品久久久久久无| 欧美猛男gaygay网站| 不卡的av网站| 精品亚洲免费视频| 日韩高清不卡一区二区三区| 亚洲视频 欧洲视频| 国产亚洲成av人在线观看导航| 91精品国产麻豆国产自产在线| 91蜜桃视频在线| 国产成人av电影在线观看| 美女被吸乳得到大胸91| 婷婷综合另类小说色区| 亚洲小说欧美激情另类| 樱花影视一区二区| 亚洲天堂成人网| 中文字幕在线不卡一区| 国产精品私人自拍| 国产欧美精品区一区二区三区 | 日韩理论在线观看| 欧美高清在线一区| 国产亚洲综合在线| 久久久高清一区二区三区| 日韩精品在线一区二区| 日韩一区二区三区三四区视频在线观看| 精品视频全国免费看| 在线观看视频欧美| 欧美视频第二页| 欧美日韩中字一区| 在线不卡中文字幕播放| 欧美电影在线免费观看| 欧美精品久久一区| 欧美久久久久久久久| 91精品久久久久久蜜臀| 日韩一级黄色片| 久久综合色综合88| 国产欧美日韩综合| 中文字幕av一区二区三区免费看| 国产精品人妖ts系列视频| 中文字幕av一区二区三区高| **性色生活片久久毛片| 亚洲综合色区另类av| 亚洲国产精品一区二区久久| 日韩高清不卡在线| 精品一区二区三区在线播放视频 | 欧美在线视频全部完| 欧美精品 日韩| 日韩欧美亚洲国产另类| 久久色.com| 成人免费在线播放视频| 一区二区免费视频| 欧美aaaaa成人免费观看视频| 久久精品久久精品| 成人免费高清视频| 欧美午夜影院一区| 日韩精品一区在线观看| 国产精品久久久久久妇女6080| 亚洲伦理在线精品| 亚洲成av人片一区二区三区| 国内欧美视频一区二区 | 99久久久久免费精品国产 | 另类成人小视频在线| 国产一区二区三区最好精华液| 国产99精品国产| 91国产免费看| 精品少妇一区二区三区在线视频| 日本一区二区不卡视频| 亚洲综合激情小说| 韩国理伦片一区二区三区在线播放| 成人va在线观看| 欧美一级黄色片| 亚洲国产精品传媒在线观看| 亚洲电影一级黄| 福利视频网站一区二区三区| 欧美性xxxxxxxx| 国产亚洲一区二区三区在线观看 | 99视频精品全部免费在线| 欧美日韩在线播放一区| 精品国产露脸精彩对白 | 日韩精品一卡二卡三卡四卡无卡| 国产成人在线观看| 欧美日韩国产大片| 一色屋精品亚洲香蕉网站| 毛片av中文字幕一区二区| 91理论电影在线观看| 精品剧情在线观看| 亚洲高清视频的网址| 国产精品系列在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美手机在线视频| 国产精品国产自产拍高清av王其 | 久久久久国产一区二区三区四区| 亚洲在线中文字幕| 粉嫩蜜臀av国产精品网站| 91视视频在线观看入口直接观看www | 欧美视频三区在线播放| 久久久久久久综合狠狠综合| 亚洲午夜免费电影| 成人深夜福利app| 91高清视频免费看| 久久一日本道色综合| 亚洲精品欧美激情| a级精品国产片在线观看| 日韩欧美亚洲国产另类 | 亚洲国产你懂的| 91麻豆国产福利在线观看| 久久精品一二三| 日本不卡一区二区三区 | 成人高清免费在线播放| 久久欧美中文字幕| 美腿丝袜亚洲综合| 欧美美女bb生活片| 久久久亚洲精品一区二区三区| 蜜桃av一区二区三区电影| 欧美日韩在线播| 亚洲黄色尤物视频| 99精品欧美一区二区蜜桃免费| 国产日韩v精品一区二区| 美女性感视频久久| 日韩欧美www| 免费在线观看不卡| 欧美老人xxxx18| 亚洲成人一区二区| 91精品国产综合久久国产大片| 一区二区三区精品在线| 97国产精品videossex| 国产精品国产三级国产普通话蜜臀 | 亚洲婷婷在线视频| 国产精品小仙女| 精品福利二区三区| 国产成人午夜视频| 久久毛片高清国产| 国产精品一区二区男女羞羞无遮挡 | 亚洲一区二区3| 一本一本大道香蕉久在线精品| 中文字幕一区二区三区乱码在线| 99国产精品久久久久| 中文字幕日本不卡| 91丨porny丨国产入口| 亚洲精品日韩专区silk| 91极品美女在线| 亚洲一区二区三区四区不卡| 色女孩综合影院| 亚洲尤物视频在线| 欧美私人免费视频| 日韩不卡手机在线v区| 精品区一区二区| 成人亚洲一区二区一| 亚洲成av人片一区二区梦乃| 欧美一级精品大片|