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

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

?? skyeye_mach_ps7500.c

?? skyeye是一個可以模擬嵌入式硬件開發板的系統軟件
?? C
?? 第 1 頁 / 共 2 頁
字號:
			data = io.irq[IRQD];			//DBG_PRINT("@0x%08x: IRQSTATD(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;		case IOMD_IRQREQD:			data = io.irq[IRQD] & io.irqmask[IRQD];			//DBG_PRINT("@0x%08x: IRQREQD(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;				case IOMD_DMAMASK:			data = io.irqmask[IRQDMA];			//DBG_PRINT("@0x%08x: DMAMASK(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;		case IOMD_DMASTAT:			data = io.irq[IRQDMA];			//DBG_PRINT("@0x%08x: DMASTAT(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;		case IOMD_DMAREQ:			data = io.irq[IRQDMA] & io.irqmask[IRQDMA];			//DBG_PRINT("@0x%08x: DMAREQ(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;				case IOMD_FIQSTAT:			data = io.fiq[FIQ];			//DBG_PRINT("@0x%08x: FIQSTAT(0x%08x) -> %02x\n",			//	PC - 8, addr, data );			break;		case IOMD_FIQREQ:			data = io.fiqmask[FIQ] & io.fiqmask[FIQ];			//DBG_PRINT("@0x%08x: FIQREQ(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;		case IOMD_KCTRL:			data = io.kb_stat;			//DBG_PRINT("@0x%08x: KCTRL(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;				case IOMD_KARTRX:			io.kb_stat &= ~KB_RXF;			CLR_IRQ(IRQ_KEYBOARDRX);			data = io.kb_data;			ps7500_kb_next(state);			//DBG_PRINT("@0x%08x: KARTRX(0x%08x) -> %02x\n",			//	PC - 8, addr, data);			break;		}		return data;							}			if ((addr >= NET_ADDR_START) && (addr < NET_ADDR_END)) {		offset = (addr - NET_ADDR_START) >> 2;		DBG_PRINT("@0x%08x: Ethernet reg %03x read byte start\n",			PC - 8, offset);		//data = nic_read(0, state, offset);		DBG_PRINT("@0x%08x: Ethernet reg %03x read byte 0x%02x\n",			PC - 8, offset, data);		return data;	}		DBG_PRINT("@0x%08x: io_read_byte(0x%08x) -> 0x%02x\n", PC - 8,			 addr, data);	return data;}ARMword ps7500_io_read_halfword(ARMul_State *state, ARMword addr){	DBG_PRINT("SKYEYE: ps7500_io_read_halfword error\n");}FILE *fo = NULL;#define RAMSTART	0x10000000#define BANKOFFSET	0x04000000#define BANKSIZE	0x00400000ARMword ps7500_io_read_word(ARMul_State *state, ARMword addr){	ARMword data = 0;	ARMword data2;	ARMword b;	ARMword i;		if (fo == NULL) {		DBG_PRINT("Dumping memory\n");		fo = fopen("mem.dump", "w");		for (b=0; b < 4; b++) {			for (i=0; i < BANKSIZE; i = i + 4) {				data2 = real_read_word(state,					 RAMSTART + (b * BANKOFFSET) + i); 				fwrite(&data2, 4, 1, fo);			}		}		fclose(fo);		DBG_PRINT("Done\n");	}					DBG_PRINT("io_read_word(0x%08x) = 0x%08x\n", addr, data);	return data;}void ps7500_io_write_byte(ARMul_State *state, ARMword addr, ARMword data){	ARMword offset;		if ((addr >= IOMD_ADDR_START) && (addr < IOMD_ADDR_END)) {		offset = addr - IOMD_ADDR_START;		switch (offset) {				case IOMD_CONTROL:			io.iocr_write = data & 0x03;			DBG_PRINT("@0x%08x: IOCR(0x%08x) <- 0x%02x\n",				PC - 8, addr, data);			break;					case IOMD_IRQMASKA:			io.irqmask[IRQA] = data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: IRQMASKA(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_IRQCLRA:			io.irq[IRQA] &= ~data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: IRQCLRA(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_IRQMASKB:			io.irqmask[IRQB]= data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: IRQMSKB(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_IRQMASKC:			io.irqmask[IRQC] = data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: IRQMASKC(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_IRQMASKD:			io.irqmask[IRQD] = data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: IRQMASKD(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;				case IOMD_DMAMASK:			io.irqmask[IRQDMA] = data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: DMAMSK(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;				case IOMD_FIQMASK:			io.fiqmask[FIQ] = data;			ps7500_update_int(state);			//DBG_PRINT("@0x%08x: FIQMSK(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;					case IOMD_CLKCTL:			//DBG_PRINT("@0x%08x: CLKCTL(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;					case IOMD_T0CNTL:			io.tcd_reload[0] = (io.tcd_reload[0] & 0xff00) | data;			//DBG_PRINT("@0x%08x: T0CNTL(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_T0CNTH:			io.tcd_reload[0] = (io.tcd_reload[0] & 0x00ff) | data;			//DBG_PRINT("T0CNTH(0x%08x) <- 0x%02x\n", PC - 8, addr, data);			break;					case IOMD_T0GO:			io.tcd[0] = io.tcd_reload[0];			//DBG_PRINT("@0x%08x: T0GO(0x%08x) <- 0x%02x\n",				//	PC - 8, addr, data);			break;					case IOMD_T1CNTL:			io.tcd_reload[1] = (io.tcd_reload[1] & 0xff00) | data;			DBG_PRINT("@0x%08x: T1CNTL(0x%08x) <- 0x%02x\n",				PC - 8, addr, data);			break;		case IOMD_T1CNTH:			io.tcd_reload[1] = (io.tcd_reload[1] & 0x00ff) | data;			//DBG_PRINT("T1CNTH(0x%08x) <- 0x%02x\n", PC - 8, addr, data);			break;					case IOMD_T1GO:			io.tcd[1] = io.tcd_reload[1];			//DBG_PRINT("@0x%08x: T1GO(0x%08x) <- 0x%02x\n",				//	PC - 8, addr, data);			break;					case IOMD_ROMCR0:			//DBG_PRINT("@0x%08x: ROMCR0(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_ROMCR1:			//DBG_PRINT("@0x%08x: ROMCR1(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;		case IOMD_DRAMCR:			//DBG_PRINT("@0x%08x: DRAMCR(0x%08x) <- 0x%02x\n",			//	PC - 8, addr, data);			break;					case IOMD_VIDCR:			DBG_PRINT("@0x%08x: VIDCR(0x%08x) <- 0x%02x\n",				PC - 8, addr, data);			if ((data & 0x20) && (io.lcd_started == 0)) {				DBG_PRINT("Start LCD\n");				//lcd_enable(state, 640, 480, 8);				io.lcd_started = 1;			}			io.vidcr = data;			break;					case IOMD_KCTRL:			if (data & 0x08) 		// Enable				io.kb_stat = KB_SKC | KB_SKD | KB_ENA | KB_TXE;			else				// Disable				io.kb_stat = 0;			//DBG_PRINT("@0x%08x: KCTRL(0x%08x) <- 0x%02x\n", 			//	PC - 8, addr, data);			break;					case IOMD_KARTTX:			//DBG_PRINT("@0x%08x: KARTTX(0x%08x) <- 0x%02x\n", 			//	PC - 8, addr, data);			// Send a character to PS2 keyboard.			// This is a keyboard command.			// Clear TXEmpty, clear TX interrupt, set TXBusy			// Queue an ACK (0xfa) response			// If command is RESET (0xff), then			// also queue a reset done (0xaa) response			io.kb_stat &= ~ KB_TXE;			CLR_IRQ(IRQ_KEYBOARDTX);			io.kb_stat |= KB_TXB ;			io.kb_delay = 10;			ps7500_kb_queue(state, 0xfa);			if (data == 0xff)  				ps7500_kb_queue(state, 0xaa);			break;				default:			DBG_PRINT("@0x%08x: io_write_byte(0x%08x) <- 0x%02x\n", 				PC - 8, addr, data);			break;		}		return;	} 		if (addr == VIDEO_ADDR) {		DBG_PRINT("@0x%08x: Video register write 0x%08x\n", PC - 8, data);		return;	}		if ((addr >= NET_ADDR_START) && (addr <= NET_ADDR_END)) {		offset = (addr - NET_ADDR_START) >> 2;		DBG_PRINT("@0x%08x: Ethernet reg %03x write byte 0x%02x\n",			PC - 8, offset, data);		//nic_write(0, state, offset, data);		return;	}		DBG_PRINT("@0x%08x: io_write_byte(0x%08x) <- 0x%08x\n",		PC - 8, addr, data);}void ps7500_io_write_halfword(ARMul_State *state, ARMword addr, ARMword data){	DBG_PRINT("io_write_halfword(0x%08x) <- 0x%08x\n", addr, data);}void ps7500_io_write_word(ARMul_State *state, ARMword addr, ARMword data){       	ARMword offset;		if ((addr >= IOMD_ADDR_START) && ( addr < IOMD_ADDR_END)) {		offset = addr - IOMD_ADDR_START;		switch (offset) {		case IOMD_CURSINIT:			DBG_PRINT("CURSINIT <- 0x%08x\n", data);			break;		case IOMD_VIDEND:			io.vidend = data;			DBG_PRINT("VIDEND <- 0x%08x\n", data);			break;		case IOMD_VIDSTART:			io.vidstart = data;			io.lcd_addr_begin = data;			DBG_PRINT("VIDSTART <- 0x%08x\n", data);			break;		case IOMD_VIDINIT:			io.vidinit = data;			DBG_PRINT("VIDINIT <- 0x%08x\n", data);			break;					default:			DBG_PRINT("io_write_word(0x%08x) <- 0x%08x\n", 				addr - 0x03200000, data);			break;		}		return;	} 		if (addr == VIDEO_ADDR) {		DBG_PRINT("Video register write <- 0x%08x\n", data);		return;	}		// Network data sometimes written in 16 bit pieces	if ((addr >= NET_ADDR_START) && (addr < NET_ADDR_END)) {		offset = (addr - NET_ADDR_START) >> 2;		if (offset != 0x10) {			printf("Net word write at bad address\n");			exit(1);		}		DBG_PRINT("Net data write <- 0x%04x\n", data & 0xffff);		//nic_write(0, state, offset, data & 0xff);		//nic_write(0, state, offset, (data >> 8) & 0xff);		return;	}			DBG_PRINT("io_write_word(0x%08x) <- 0x%08x\n", addr, data);}void ps7500_mach_init(ARMul_State *state, machine_config_t *this_mach){	ARMul_SelectProcessor(state, ARM_v4_Prop);        //chy 2004-05-09, set lateabtSig        state->lateabtSig = HIGH;	this_mach->mach_io_do_cycle = 		ps7500_io_do_cycle;	this_mach->mach_io_reset = 		ps7500_io_reset;        this_mach->mach_io_read_byte = 		ps7500_io_read_byte;        this_mach->mach_io_write_byte = 	ps7500_io_write_byte;        this_mach->mach_io_read_halfword = 	ps7500_io_read_halfword;        this_mach->mach_io_write_halfword = 	ps7500_io_write_halfword;	this_mach->mach_io_read_word = 		ps7500_io_read_word;	this_mach->mach_io_write_word = 	ps7500_io_write_word;		this_mach->mach_update_int =            ps7500_update_int;	this_mach->mach_set_intr = ps7500_set_intr;	this_mach->mach_pending_intr = ps7500_pending_intr;	this_mach->mach_update_intr = ps7500_update_intr;		/*	state->mach_io.lcd_is_enable = (ARMword *)&io.lcd_is_enable;	state->mach_io.lcd_addr_begin = (ARMword *)&io.lcd_addr_begin;	state->mach_io.lcd_addr_end = (ARMword *)&io.lcd_addr_end;	*/	state->mach_io.ts_int		=(ARMword *)&io.ts_int;	state->mach_io.ts_is_enable	=(ARMword *)&io.ts_is_enable;		state->mach_io.ts_addr_begin	=(ARMword *)&io.ts_addr_begin;		state->mach_io.instr		=(ARMword *)io.irq;	state->mach_io.net_int		=(ARMword *)io.net_int;		state->mach_io.net_flag		=(ARMword *)&io.net_flag;		printf("%02x %02x\n", state->mach_io.instr, state->mach_io.net_int);}ARMbyte scancode_alpha[] = {	0x1c, 0x32, 0x21, 0x23, 0x24, 0x2b, 0x34, 0x33,	0x43, 0x3b, 0x42, 0x4b, 0x3a, 0x31, 0x44, 0x4d,	0x15, 0x2d, 0x1b, 0x2c, 0x3c, 0x2a, 0x1d, 0x22,	0x35, 0x1a};	ARMbyte scancode_number[] = {	0x45, 0x16, 0x1e, 0x26, 0x25, 0x2e, 0x36, 0x3d,	0x3e, 0x46}; ARMbyte ps7500_getcode(ARMbyte c){	if ((c >= 'a') && (c <= 'z')) 		return scancode_alpha[c - 'a'];	if ((c >= '0') && (c <= '9'))		return scancode_number[c - '0'];	if (c == '\n')		return 0x5a;	if (c == '.')		return 0x49;	if (c == '/')		return 0x4a;	return 0x49;}	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品免费人成网站| 夜夜嗨av一区二区三区| 亚洲欧美日韩成人高清在线一区| 亚洲成av人片在线观看| 福利视频网站一区二区三区| 欧美浪妇xxxx高跟鞋交| 国产精品毛片久久久久久| 日韩电影在线观看网站| 色综合久久天天| 久久九九国产精品| 免费观看一级欧美片| 日本久久一区二区| 国产精品视频观看| 狠狠色丁香婷婷综合久久片| 欧美亚洲一区三区| 亚洲男女一区二区三区| 国产盗摄一区二区三区| 日韩欧美一级二级三级| 亚洲国产美女搞黄色| 色悠久久久久综合欧美99| 欧美极品美女视频| 国产成人免费在线观看不卡| 欧美不卡视频一区| 蜜桃视频在线观看一区二区| 欧美日韩激情在线| 亚洲一区二区三区在线播放| 一本到高清视频免费精品| 国产精品天干天干在线综合| 国产精品白丝av| 国产亚洲欧美在线| 国产夫妻精品视频| 久久久久久久久伊人| 国产在线不卡一区| 久久精品亚洲精品国产欧美| 国产高清在线精品| 国产精品网站一区| 91免费看`日韩一区二区| 中文字幕一区三区| 日本韩国欧美一区| 亚洲chinese男男1069| 制服视频三区第一页精品| 日韩国产欧美在线播放| 91精品在线观看入口| 精品在线你懂的| 国产日产亚洲精品系列| 99国产精品久久久久久久久久 | 欧美三级欧美一级| 一区二区三区在线视频观看58| 色综合天天做天天爱| 一区二区不卡在线播放| 在线观看91av| 国产美女一区二区三区| 国产精品白丝在线| 欧美视频一区二区三区四区 | 日韩av午夜在线观看| 日韩亚洲欧美在线| 丁香婷婷综合色啪| 一个色综合av| 欧美精品一区二区三区很污很色的 | 国产91精品免费| 欧美极品另类videosde| 99精品视频免费在线观看| 亚洲午夜羞羞片| 欧美变态口味重另类| 99精品欧美一区二区三区小说| 亚洲永久免费av| 精品成人一区二区| 91小视频在线免费看| 五月婷婷激情综合| 欧美国产亚洲另类动漫| 欧美日韩极品在线观看一区| 国产综合一区二区| 亚洲国产一区二区三区青草影视| 日韩欧美中文字幕精品| 不卡区在线中文字幕| 午夜一区二区三区在线观看| 国产欧美日本一区视频| 欧美日韩国产一级片| 成人动漫在线一区| 蜜臀av一区二区三区| 亚洲精品国产高清久久伦理二区| 精品少妇一区二区| 欧美视频日韩视频在线观看| 粉嫩绯色av一区二区在线观看| 亚洲妇女屁股眼交7| 亚洲国产精品精华液ab| 日韩限制级电影在线观看| 色综合天天综合网天天看片| 加勒比av一区二区| 天天综合天天做天天综合| 亚洲人成亚洲人成在线观看图片 | 日本午夜精品视频在线观看| 中文字幕制服丝袜一区二区三区| 日韩一区二区高清| 欧美日韩精品一区二区天天拍小说| 国产高清精品网站| 精品在线播放午夜| 首页国产欧美久久| 亚洲一卡二卡三卡四卡无卡久久| 中文无字幕一区二区三区| 精品久久久久av影院| 欧美精品一二三区| 欧美美女一区二区三区| 色综合天天狠狠| 色综合久久中文综合久久牛| 成人激情动漫在线观看| 国产91高潮流白浆在线麻豆 | 日韩精品一区二区三区在线观看| 欧美中文字幕一二三区视频| 色综合久久综合中文综合网| 99久久久久久99| 99免费精品视频| 99久免费精品视频在线观看| 国产成人精品影院| 成人精品国产福利| 成人国产电影网| 91原创在线视频| 在线免费av一区| 欧美日韩日本视频| 91精品国产91综合久久蜜臀| 3751色影院一区二区三区| 91精品欧美一区二区三区综合在| 欧美伦理电影网| 日韩午夜在线影院| www国产亚洲精品久久麻豆| 久久久三级国产网站| 国产丝袜欧美中文另类| 中文字幕av一区 二区| 成人欧美一区二区三区视频网页| 亚洲色图欧洲色图| 亚洲成a人在线观看| 免费观看一级特黄欧美大片| 久草中文综合在线| 成人精品视频一区二区三区| 97se亚洲国产综合在线| 欧美在线色视频| 欧美一区二区三区思思人| 精品福利在线导航| 亚洲欧洲日韩在线| 日韩精品一卡二卡三卡四卡无卡| 国内欧美视频一区二区| 不卡欧美aaaaa| 69久久99精品久久久久婷婷| 久久亚洲综合色一区二区三区| 国产精品人成在线观看免费| 亚洲精品国产品国语在线app| 全国精品久久少妇| 成人av网站在线观看免费| 欧美日韩高清在线| 国产亚洲综合av| 国产福利精品导航| 欧美日韩性生活| 国产丝袜在线精品| 亚洲丶国产丶欧美一区二区三区| 韩国三级中文字幕hd久久精品| 成人黄色软件下载| 日韩一卡二卡三卡四卡| 亚洲欧洲国产日韩| 久久99久久99| 欧美三级日韩在线| 国产精品免费丝袜| 久久精品国产99久久6| 日本高清成人免费播放| 2017欧美狠狠色| 天天色天天操综合| 99精品视频一区| 国产日韩一级二级三级| 视频一区在线播放| 日本道精品一区二区三区| 久久久久久久久久久久久夜| 亚洲成a人在线观看| 97se亚洲国产综合自在线观| 精品国产一区二区三区久久影院| 亚洲国产精品天堂| www.久久久久久久久| 久久婷婷国产综合国色天香| 亚洲第一主播视频| 色噜噜夜夜夜综合网| 欧美极品aⅴ影院| 国产精品一品视频| 欧美大片拔萝卜| 日韩成人伦理电影在线观看| 91福利在线看| 亚洲青青青在线视频| 成人黄色大片在线观看| 久久久蜜桃精品| 国产在线观看一区二区| 精品噜噜噜噜久久久久久久久试看| 亚洲午夜在线观看视频在线| 99久精品国产| 亚洲欧洲美洲综合色网| 成人国产视频在线观看| 欧美国产综合色视频| 国产盗摄女厕一区二区三区| www欧美成人18+| 国产成人丝袜美腿| 国产精品丝袜一区| 99国产精品国产精品毛片| 国产精品久久久久久久久久免费看 | 一级做a爱片久久|