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

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

?? ledctrl.c

?? 簡單的便協式游戲機的實現
?? C
字號:
// 8x8 Dot Matrix LED Control(Block Game)+Sound ON
// by Takuya Matsubara

#include "fx2.h"
#include "fx2regs.h"
#include "ledctrl.h"
#include "sound.h"

#define LEDWIDTH 8
#define BLOCKWIDTH 3

BYTE  ledvram[LEDWIDTH];     // LED Bitmap Buffer
BYTE  block[LEDWIDTH];       // 
BYTE  myblock[BLOCKWIDTH];   //儅僀僽儘僢僋忣曬
BYTE level;		// 僎乕儉儗儀儖
BYTE rnd;
char seq;
BYTE x,y;		// 僽儘僢僋嵗昗
int  keycnt;
char dropcnt;	// 棊壓僇僂儞僞
char score;		// 僗僐傾
char row;


#define LEDCOL   IOB		// LED梡億乕僩
#define LEDCOLOE OEB
#define LEDROW   IOD
#define LEDROWOE OED

#define SW_PORT		IOA		// 僗僀僢僠梡億乕僩
#define SW_PORTOE	OEA

#define SW_UP		(1<<0)
#define SW_DOWN		(1<<1)
#define SW_LEFT		(1<<2)
#define SW_RIGHT	(1<<3)
#define SW_A		(1<<4)
#define SW_B		(1<<5)

#define KABE	0x81
#define LINE	0x7E

char sw_chk(BYTE bitmask);
void block2vram(BYTE tx,BYTE ty);
void turnblock(void);
void newblock(void);
BYTE hitcheck(BYTE cx, BYTE cy);
void fixblock(BYTE tx, BYTE ty);
void hex2vram(char tx,char ty,char ch);

void led_getvram(BYTE *p)
{
	char i;

	for(i=0; i<LEDWIDTH; i++){
		*(p+i) = ledvram[i];
	}
}

void led_init(void)
{
	LEDCOLOE = 0xff;	//output
	LEDROWOE = 0x00;	//input
 	SW_PORTOE = 0; 		//input

	row = 0;
	seq = 0;
}

// 僼僅儞僩僨乕僞 0乣9
const BYTE ledfont[]={
	0x02,0x55,0x52,
	0x02,0x62,0x22,
	0x06,0x12,0x47,
	0x06,0x12,0x16,
	0x05,0x57,0x11,
	0x07,0x46,0x16,
	0x03,0x46,0x52,
	0x07,0x12,0x44,
	0x02,0x52,0x52,
	0x02,0x53,0x16
};

/*悢抣僉儍儔僋僞傪VRAM揮憲*/
void hex2vram(char tx,char ty,char ch)
{
	BYTE i;
	BYTE bitdata;

	ch *=3;

	for(i=0 ;i<6 ;i++) {
		ledvram[i+ty] &= ~(0xf << (4-tx));
		if(i % 2)
			bitdata = (ledfont[ch++] & 0xf);
		else
			bitdata = (ledfont[ch] >> 4) & 0xf;

		bitdata <<= (4-tx);
		ledvram[i+ty] |= bitdata;
	}
}

/*僗僀僢僠撉傒庢傝*/
char sw_chk(BYTE bitmask)
{
	if((SW_PORT & bitmask)==0)
		return(1);
	else
		return(0);
}


void block2vram(BYTE tx,BYTE ty)
{
	BYTE	i;

	for(i=0; i<LEDWIDTH; i++){
		ledvram[i] = block[i];
	}
	//	---------儅僀僽儘僢僋傪vram偵揮憲
	for(i=0; i<BLOCKWIDTH; i++){
		ledvram[i+ty] |= (myblock[i]<<((LEDWIDTH-1)-tx));
	}
}


//------------------儅僀僽儘僢僋夞揮
void turnblock(void)
{
	BYTE col,col2;
	BYTE blockbak[BLOCKWIDTH];

	for( col=0; col<BLOCKWIDTH; col++){
		blockbak[col] = myblock[col];
		myblock[col]=0;
	}
	for( col=0; col<BLOCKWIDTH; col++){
		for( col2=0; col2<BLOCKWIDTH; col2++){
			myblock[col] <<= 1;
			myblock[col] |= ((blockbak[col2] >> col) & 1);
		}
	}
}

//---------------------怴婯儅僀僽儘僢僋
void newblock(void)
{
	switch(rnd % 8){
	case 0:
		myblock[0] = 2;	//0b010
		myblock[1] = 4;	//0b100
		myblock[2] = 2;	//0b010
		break;
	case 1:
		myblock[0] = 2;	//0b010
		myblock[1] = 3;	//0b011
		myblock[2] = 4;	//0b100
		break;
	case 2:
		myblock[0] = 0;	//0b000
		myblock[1] = 2;	//0b010
		myblock[2] = 3;	//0b011
		break;
	case 3:
		myblock[0] = 0;	//0b000
		myblock[1] = 5;	//0b101
		myblock[2] = 4;	//0b100
		break;
	case 4:
		myblock[0] = 0;	//0b000
		myblock[1] = 5;	//0b101
		myblock[2] = 0;	//0b000
		break;
	case 5:
		myblock[0] = 3;	//0b011
		myblock[1] = 0;	//0b000
		myblock[2] = 6;	//0b110
		break;
	case 6:
		myblock[0] = 6;	//0b110
		myblock[1] = 6;	//0b110
		myblock[2] = 0;	//0b000
		break;
	case 7:
		myblock[0] = 0;	//0b000
		myblock[1] = 7;	//0b111
		myblock[2] = 0;	//0b000
		break;
	}
	x = 5;
	y = 0;
}
//-------------------僽儘僢僋徴撍僠僃僢僋
BYTE hitcheck(BYTE cx, BYTE cy)
{
	BYTE i;

	for(i=0; i<BLOCKWIDTH; i++){
		if(block[cy+i] & (myblock[i]<<((LEDWIDTH-1)-cx)))
			return(1);
	}

	return(0);
}


//-------------------僽儘僢僋傪掕拝
void fixblock(BYTE tx, BYTE ty)
{
	BYTE col,i;

	sound_set("A");
	for(col=0; col<BLOCKWIDTH; col++){
		block[col+ty] |= (myblock[col]<<((LEDWIDTH-1)-tx));
	}

	//---------偦傠偭偨楍偺僽儘僢僋傪徚偡
	for( col = 0; col<(LEDWIDTH-1); col++)
	{
		if( ledvram[col] == (LINE | KABE) ){
			for( i=col ;i>=1 ;i--){
				block[i] = block[i-1];
			}
			ledvram[0] = KABE;
			if( level > 1 ) level --;
			score++;
			sound_set("YZ");
		}
	}

	newblock();	//怴婯儅僀僽儘僢僋
}

// LED惂屼
void disp_vram()
{
	LEDCOL = 0x00;
	LEDROWOE = (1<<row);
	LEDROW = 0;
	LEDCOL = ledvram[row];

	row = (row+1) % LEDWIDTH;
}

// 僎乕儉梡張棟僾儘僌儔儉
void led_ctrl(void)
{
	BYTE i;

	disp_vram();
	EZUSB_Delay(1);

	switch(seq)
	{
	case 0:		//僽儘僢僋弶婜壔
		sound_init();
		for( i=0; i<LEDWIDTH; i++){
			block[i]=KABE;
		}
		block[LEDWIDTH-1] = KABE|LINE;

		newblock();	//怴婯儅僀僽儘僢僋

		dropcnt=1;
		level = 20;	//僎乕儉儗儀儖
		score=0;
		seq++;
		break;

	case 1:		//僎乕儉僾儗僀
		rnd++;

		keycnt=(keycnt+1) % 150;
		if(keycnt != 0) break;

		if (sw_chk(SW_DOWN)) {	// 壓儃僞儞
			sound_set("S");
			dropcnt = 0;		// 僽儘僢僋棊壓
		}else{
			if((sw_chk(SW_LEFT)) && (x>0)){     // 塃儃僞儞
				sound_set("T");
				if(hitcheck(x-1,y)==0) x--;
				block2vram(x,y);
			}
			if((sw_chk(SW_RIGHT)) &&(x<(LEDWIDTH-1))) {     // 嵍儃僞儞
				sound_set("U");
				if(hitcheck(x+1,y)==0) x++;
				block2vram(x,y);
			}
		}

		if (sw_chk(SW_A) || sw_chk(SW_B))
		{ 	// 夞揮儃僞儞
			sound_set("V");
			turnblock();	//儅僀僽儘僢僋夞揮
			//僽儘僢僋徴撍僠僃僢僋
			if(hitcheck(x,y)) {
				//尦偵栠偡
				turnblock();	//儅僀僽儘僢僋夞揮
				turnblock();	//儅僀僽儘僢僋夞揮
				turnblock();	//儅僀僽儘僢僋夞揮
			}else{
				block2vram(x,y);
			}
		}

		//---------儅僀僽儘僢僋偺棊壓丄徴撍敾掕
		if(dropcnt==0)
		{
			dropcnt = level;
			if (y>=(LEDWIDTH-BLOCKWIDTH)) {
				fixblock(x,y);	//僽儘僢僋傪掕拝
			}else{
				//'僽儘僢僋徴撍僠僃僢僋
				if (hitcheck(x,y+1)) {
					fixblock(x,y);		//'僽儘僢僋傪掕拝

					//----------嵟忋抜偺応崌丄僎乕儉僆乕僶乕
					if( block[0] & ~KABE){
						seq++;
						break;
					}
				}else{
					y++;
				}
			}
			block2vram(x,y);
		}
		dropcnt--;
		break;
	case 2:		//僗僐傾昞帵
		sound_set("HDA");
		for(i=0; i<LEDWIDTH; i++){
			ledvram[i] = 0;
		}
		hex2vram(0 ,0 ,score / 10 );
		hex2vram(4 ,0 ,score % 10 );
		keycnt = 0;
		seq++;	
		break;
	case 3:
		keycnt = keycnt+1;
		if(keycnt > 3000) seq=0;
		break;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四| 亚洲欧美视频在线观看| 在线观看一区二区视频| 国产精品18久久久久久久网站| 男男视频亚洲欧美| 日本不卡一区二区三区 | 欧美xxx久久| 在线成人午夜影院| 日韩一区二区免费在线电影| 9191久久久久久久久久久| 6080亚洲精品一区二区| 欧美一二三区精品| 日韩久久免费av| 久久亚洲影视婷婷| 国产亚洲欧美日韩俺去了| 国产人伦精品一区二区| 国产精品家庭影院| 一区二区三区高清| 日本女优在线视频一区二区| 精品制服美女丁香| 成人不卡免费av| 一本一道久久a久久精品| 欧美吞精做爰啪啪高潮| 制服丝袜亚洲精品中文字幕| 久久蜜桃av一区精品变态类天堂 | 日日摸夜夜添夜夜添亚洲女人| 日韩成人一区二区| 国产福利一区二区三区在线视频| 福利一区二区在线观看| 一本大道av一区二区在线播放| 欧美偷拍一区二区| 久久夜色精品一区| 亚洲视频中文字幕| 免费av网站大全久久| 国产99久久久国产精品潘金| 91国产成人在线| 精品卡一卡二卡三卡四在线| 中文字幕五月欧美| 久久精品二区亚洲w码| 成人毛片视频在线观看| 69堂精品视频| 国产精品成人免费| 久久精品99国产精品| 成人av综合一区| 3atv一区二区三区| 亚洲欧美日韩综合aⅴ视频| 欧美aⅴ一区二区三区视频| 97se亚洲国产综合自在线观| 欧美精选在线播放| 亚洲三级小视频| 黑人巨大精品欧美黑白配亚洲| 在线观看日韩精品| 欧美激情自拍偷拍| 毛片av一区二区三区| 在线视频观看一区| 国产精品成人免费精品自在线观看| 久久精品免费观看| 欧美日韩成人综合在线一区二区| 亚洲国产高清在线观看视频| 人人爽香蕉精品| 欧美日韩视频专区在线播放| 亚洲欧美一区二区三区极速播放 | 国产成人午夜片在线观看高清观看| 欧美写真视频网站| 中文字幕一区二区5566日韩| 国产一区二区福利| 日韩精品一区国产麻豆| 丝袜国产日韩另类美女| 欧美性一区二区| 亚洲日韩欧美一区二区在线| 国产精品无码永久免费888| 国产麻豆一精品一av一免费| 精品91自产拍在线观看一区| 精品国产髙清在线看国产毛片| 久久综合网色—综合色88| 久久久综合视频| 欧美成人精品二区三区99精品| 99国产精品99久久久久久| 九一九一国产精品| 国产精品羞羞答答xxdd| 欧美少妇一区二区| 一区二区三区四区蜜桃| 一区二区三区日韩欧美精品 | 欧美一级搡bbbb搡bbbb| 精品国产乱码久久久久久图片| 日韩一区二区三区电影在线观看| 亚洲高清三级视频| 欧美人妖巨大在线| 日韩av一二三| 日韩欧美国产精品| 日韩一二三区视频| 麻豆精品精品国产自在97香蕉| 久久99国产精品久久| 精品日韩一区二区三区 | 亚洲老妇xxxxxx| 欧美三级电影一区| 天天免费综合色| 精品奇米国产一区二区三区| 国产精品综合二区| 亚洲精品综合在线| 91精品国产福利在线观看| 麻豆国产精品777777在线| 久久精品无码一区二区三区| 9人人澡人人爽人人精品| 亚洲国产日韩在线一区模特| 欧美一区二区福利在线| 亚洲天堂av老司机| 日韩欧美国产三级电影视频| 蓝色福利精品导航| 亚洲色欲色欲www| 日韩美女天天操| 99久久99久久久精品齐齐| 亚洲va国产天堂va久久en| 国产欧美日韩中文久久| 欧美午夜精品一区二区三区| 欧美人动与zoxxxx乱| 成人午夜伦理影院| 精品国产乱码久久久久久牛牛 | 亚洲va欧美va人人爽午夜| 精品88久久久久88久久久| 婷婷激情综合网| 一区二区三区国产精品| 91丝袜美女网| 蜜臀久久久久久久| 国产精品欧美久久久久一区二区| 精品国产91久久久久久久妲己| 欧美日本视频在线| 色婷婷精品久久二区二区蜜臀av| 九九视频精品免费| 精品一区二区日韩| 国产精品不卡一区二区三区| 欧美性受xxxx黑人xyx性爽| 久久99九九99精品| 亚洲超丰满肉感bbw| 久久久久99精品一区| 欧美日韩精品欧美日韩精品一综合| 久久国产免费看| 亚洲午夜在线电影| 中文字幕一区二区三区视频| www日韩大片| 欧美一区二区免费视频| 一本久久a久久精品亚洲| 成人黄页毛片网站| 国产经典欧美精品| 国产一区在线观看麻豆| 免费观看在线色综合| 一区二区三区精品视频在线| 国产精品亲子伦对白| 日本一区二区视频在线观看| 精品国产乱码久久久久久久久| 欧美一区二区在线观看| 欧美在线播放高清精品| 91久久精品一区二区三区| 99国产精品99久久久久久| 99久免费精品视频在线观看| 成人深夜福利app| 不卡免费追剧大全电视剧网站| 国产精品99久久久久久似苏梦涵| 国产福利一区二区| 国产精品99久久久久久久女警| 国产成人a级片| 91在线小视频| 色噜噜久久综合| 在线观看视频一区二区| 欧美人xxxx| 欧美刺激午夜性久久久久久久| 精品免费日韩av| 国产婷婷色一区二区三区| 亚洲欧洲日本在线| 亚洲国产另类av| 麻豆91在线观看| 国产成人午夜99999| 99久久伊人网影院| 在线观看欧美黄色| 欧美精品一二三| 久久久99精品免费观看不卡| 欧美国产激情一区二区三区蜜月| 亚洲日本在线视频观看| 丝袜亚洲精品中文字幕一区| 国产专区欧美精品| 成人午夜av电影| 欧美性视频一区二区三区| 欧美大片免费久久精品三p| 久久久不卡网国产精品一区| **欧美大码日韩| 丝袜亚洲另类欧美| 国产69精品久久久久777| 在线观看视频欧美| 国产视频亚洲色图| 亚洲国产精品久久久久婷婷884| 免费高清视频精品| 99久久99久久精品国产片果冻 | 亚洲免费伊人电影| 日韩av午夜在线观看| av不卡在线观看| 日韩欧美国产一区在线观看| 亚洲欧美一区二区三区国产精品| 麻豆国产精品视频| 欧美色爱综合网| 亚洲国产精品v|