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

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

?? newcpu.c

?? 十七種模擬器源代碼 非常有用的作課程設計不可缺少的
?? C
?? 第 1 頁 / 共 2 頁
字號:
{    MakeSR();    if (!regs.s) {		regs.usp = m68k_areg(regs, 7);		m68k_areg(regs, 7) = regs.m ? regs.msp : regs.isp;		regs.s = 1;    }    if (nr == 2 || nr == 3) {		int i;		/* @@@ this is probably wrong (?) */		for (i = 0 ; i < 12 ; i++) {			m68k_areg(regs, 7) -= 2;			cpu_writemem24_word (m68k_areg(regs, 7), 0);		}		m68k_areg(regs, 7) -= 2;		cpu_writemem24_word(m68k_areg(regs, 7), 0xa000 + nr * 4);	} else if (nr ==5 || nr == 6 || nr == 7 || nr == 9) {		m68k_areg(regs, 7) -= 4;		cpu_writemem24_dword (m68k_areg(regs, 7), oldpc);		m68k_areg(regs, 7) -= 2;		cpu_writemem24_word (m68k_areg(regs, 7), 0x2000 + nr * 4);	} else if (regs.m && nr >= 24 && nr < 32) {		m68k_areg(regs, 7) -= 2;		cpu_writemem24_word (m68k_areg(regs, 7), nr * 4);		m68k_areg(regs, 7) -= 4;		cpu_writemem24_dword (m68k_areg(regs, 7), m68k_getpc ());		m68k_areg(regs, 7) -= 2;		cpu_writemem24_word (m68k_areg(regs, 7), regs.sr);		regs.sr |= (1 << 13);		regs.msp = m68k_areg(regs, 7);		m68k_areg(regs, 7) = regs.isp;		m68k_areg(regs, 7) -= 2;		cpu_writemem24_word (m68k_areg(regs, 7), 0x1000 + nr * 4);	} else {		m68k_areg(regs, 7) -= 2;		cpu_writemem24_word (m68k_areg(regs, 7), nr * 4);	}    m68k_areg(regs, 7) -= 4;    cpu_writemem24_dword (m68k_areg(regs, 7), m68k_getpc ());	//kludge_me_do:    m68k_areg(regs, 7) -= 2;    cpu_writemem24_word (m68k_areg(regs, 7), regs.sr);    m68k_setpc (cpu_readmem24_dword (regs.vbr + 4*nr));    regs.t1 = regs.t0 = regs.m = 0;}static int caar, cacr;int m68k_move2c (int regno, UINT32 *regp){	switch (regno) {	case 0: regs.sfc = *regp & 7; break;	case 1: regs.dfc = *regp & 7; break;	case 2: cacr = *regp & 0x3; break;	/* ignore C and CE */	case 0x800: regs.usp = *regp; break;	case 0x801: regs.vbr = *regp; break;	case 0x802: caar = *regp &0xfc; break;	case 0x803: regs.msp = *regp; if (regs.m == 1) m68k_areg(regs, 7) = regs.msp; break;	case 0x804: regs.isp = *regp; if (regs.m == 0) m68k_areg(regs, 7) = regs.isp; break;	default:		op_illg (0x4E7B);		return 0;	}    return 1;}int m68k_movec2 (int regno, UINT32 *regp){	switch (regno) {	case 0: *regp = regs.sfc; break;	case 1: *regp = regs.dfc; break;	case 2: *regp = cacr; break;	case 0x800: *regp = regs.usp; break;	case 0x801: *regp = regs.vbr; break;	case 0x802: *regp = caar; break;	case 0x803: *regp = regs.m == 1 ? m68k_areg(regs, 7) : regs.msp; break;	case 0x804: *regp = regs.m == 0 ? m68k_areg(regs, 7) : regs.isp; break;	default:		op_illg (0x4E7A);		return 0;	}    return 1;}static DEF_INLINE intdiv_unsigned(UINT32 src_hi, UINT32 src_lo, UINT32 div, UINT32 *quot, UINT32 *rem){	UINT32 q = 0, cbit = 0;	int i;		if (div <= src_hi) {		return 1;	}	for (i = 0 ; i < 32 ; i++) {		cbit = src_hi & 0x80000000ul;		src_hi <<= 1;		if (src_lo & 0x80000000ul) src_hi++;		src_lo <<= 1;		q = q << 1;		if (cbit || div <= src_hi) {			q |= 1;			src_hi -= div;		}	}	*quot = q;	*rem = src_hi;	return 0;}void m68k_divl (UINT32 opcode, UINT32 src, UINT16 extra, CPTR oldpc){	(void)(opcode);    if (src == 0) {		Exception (5, oldpc);		return;    }    if (extra & 0x800) {		/* signed variant */		INT64 a = (INT64)(INT32)m68k_dreg(regs, (extra >> 12) & 7);		INT64 quot, rem;				if (extra & 0x400) {			a &= 0xffffffffu;			a |= (INT64)m68k_dreg(regs, extra & 7) << 32;		}		rem = a % (INT64)(INT32)src;		quot = a / (INT64)(INT32)src;		if ((quot & (UINT64)(0xffffffff80000000)) != 0			&& (quot & (UINT64)(0xffffffff80000000)) != (UINT64)(0xffffffff80000000))		{			SET_VFLG (1);			SET_NFLG (1);			SET_CFLG (0);		} else {			if (((INT32)rem < 0) != ((INT64)a < 0)) rem = -rem;			SET_VFLG (0);			SET_CFLG (0);			SET_ZFLG (((INT32)quot) == 0);			SET_NFLG (((INT32)quot) < 0);			m68k_dreg(regs, extra & 7) = rem;			m68k_dreg(regs, (extra >> 12) & 7) = quot;		}    } else {		/* unsigned */		UINT64 a = (UINT64)(INT32)m68k_dreg(regs, (extra >> 12) & 7);		UINT64 quot, rem;				if (extra & 0x400) {			a &= 0xffffffffu;			a |= (UINT64)m68k_dreg(regs, extra & 7) << 32;		}		rem = a % (UINT64)src;		quot = a / (UINT64)src;		if (quot > 0xffffffffu) {			SET_VFLG (1);			SET_NFLG (1);			SET_CFLG (0);		} else {			SET_VFLG (0);			SET_CFLG (0);			SET_ZFLG (((INT32)quot) == 0);			SET_NFLG (((INT32)quot) < 0);			m68k_dreg(regs, extra & 7) = rem;			m68k_dreg(regs, (extra >> 12) & 7) = quot;		}    }}static DEF_INLINE voidmul_unsigned(UINT32 src1, UINT32 src2, UINT32 *dst_hi, UINT32 *dst_lo){	UINT32 r0 = (src1 & 0xffff) * (src2 & 0xffff);	UINT32 r1 = ((src1 >> 16) & 0xffff) * (src2 & 0xffff);	UINT32 r2 = (src1 & 0xffff) * ((src2 >> 16) & 0xffff);	UINT32 r3 = ((src1 >> 16) & 0xffff) * ((src2 >> 16) & 0xffff);	UINT32 lo;		lo = r0 + ((r1 << 16) & 0xffff0000ul);	if (lo < r0) r3++;	r0 = lo;	lo = r0 + ((r2 << 16) & 0xffff0000ul);	if (lo < r0) r3++;	r3 += ((r1 >> 16) & 0xffff) + ((r2 >> 16) & 0xffff);	*dst_lo = lo;	*dst_hi = r3;}void m68k_mull (UINT32 opcode, UINT32 src, UINT16 extra){	(void)(opcode);    if (extra & 0x800) {		/* signed variant */		UINT64 a = (INT64)(INT32)m68k_dreg(regs, (extra >> 12) & 7);				a *= (INT64)(INT32)src;		SET_VFLG (0);		SET_CFLG (0);		SET_ZFLG (a == 0);		SET_NFLG (a < 0);		if (extra & 0x400)			m68k_dreg(regs, extra & 7) = a >> 32;		else if ((a & (UINT64)(0xffffffff80000000)) != 0			&& (a & (UINT64)(0xffffffff80000000)) != (UINT64)(0xffffffff80000000))		{			SET_VFLG (1);		}		m68k_dreg(regs, (extra >> 12) & 7) = (UINT32)a;    } else {		/* unsigned */		UINT64 a = (UINT64)(UINT32)m68k_dreg(regs, (extra >> 12) & 7);				a *= (UINT64)src;		SET_VFLG (0);		SET_CFLG (0);		SET_ZFLG (a == 0);		SET_NFLG (((UINT64)a) < 0);		if (extra & 0x400)			m68k_dreg(regs, extra & 7) = a >> 32;		else if ((a & (UINT64)(0xffffffff00000000)) != 0) {			SET_VFLG (1);		}		m68k_dreg(regs, (extra >> 12) & 7) = (UINT32)a;    }}static char* ccnames[] ={ "T ","F ","HI","LS","CC","CS","NE","EQ","VC","VS","PL","MI","GE","LT","GT","LE" };void Reset68020 (void){    m68k_areg (regs, 7) = cpu_readmem24_dword(0);    m68k_setpc (cpu_readmem24_dword(4));    regs.s = 1;    regs.m = 0;    regs.stopped = 0;    regs.t1 = 0;    regs.t0 = 0;    SET_ZFLG (0);    SET_XFLG (0);    SET_CFLG (0);    SET_VFLG (0);    SET_NFLG (0);    regs.intmask = 7;    regs.vbr = regs.sfc = regs.dfc = 0;	regs.sr=0x2700;	MakeFromSR();}unsigned long op_illg (UINT32 opcode){	(void)(opcode);        Exception (4,0);    return 4;}static int n_insns = 0, n_spcinsns = 0;static CPTR last_trace_ad = 0;void m68k_disasm (CPTR addr, CPTR *nextpc, int cnt, output_func_ptr debug_out){    CPTR newpc = 0;    m68kpc_offset = addr - m68k_getpc ();    while (cnt-- > 0) {		char instrname[20],*ccpt;		int opwords;		UINT32 opcode;		struct mnemolookup *lookup;		struct instr *dp;		(*debug_out) ("%08lx: ", m68k_getpc () + m68kpc_offset);		for (opwords = 0; opwords < 5; opwords++){			(*debug_out) ("%04x ", get_iword_1 (m68kpc_offset + opwords*2));		}		opcode = get_iword_1 (m68kpc_offset);		m68kpc_offset += 2;		if (cpufunctbl[opcode] == op_illg_1) {			opcode = 0x4AFC;		}		dp = table68k + opcode;		for (lookup = lookuptab;lookup->mnemo != dp->mnemo; lookup++)			;				strcpy (instrname, lookup->name);		ccpt = strstr (instrname, "cc");		if (ccpt != 0) {			strncpy (ccpt, ccnames[dp->cc], 2);		}		(*debug_out) ("%s", instrname);		switch (dp->size){		case sz_byte: (*debug_out) (".B "); break;		case sz_word: (*debug_out) (".W "); break;		case sz_long: (*debug_out) (".L "); break;		default: (*debug_out) ("   "); break;		}				if (dp->suse) {			newpc = m68k_getpc () + m68kpc_offset;			newpc += ShowEA (dp->sreg, dp->smode, dp->size, 0, debug_out);		}		if (dp->suse && dp->duse)			(*debug_out) (",");		if (dp->duse) {			newpc = m68k_getpc () + m68kpc_offset;			newpc += ShowEA (dp->dreg, dp->dmode, dp->size, 0, debug_out);		}		if (ccpt != 0) {			if (cctrue(dp->cc))				(*debug_out) (" == %08lx (TRUE)", newpc);			else				(*debug_out) (" == %08lx (FALSE)", newpc);		} else if ((opcode & 0xff00) == 0x6100) /* BSR */			(*debug_out) (" == %08lx", newpc);		(*debug_out) ("\n");    }    if (nextpc)		*nextpc = m68k_getpc () + m68kpc_offset;}void Execute68020(int c){	UINT32 opcode;	cycles = (c>>4);    while ( cycles )	{		opcode = get_iword (0);		cycles -= (*cpufunctbl[opcode])(opcode);		opcode = get_iword (0);		cycles -= (*cpufunctbl[opcode])(opcode);		opcode = get_iword (0);		cycles -= (*cpufunctbl[opcode])(opcode);		opcode = get_iword (0);		cycles -= (*cpufunctbl[opcode])(opcode);	}}void Interrupt68020(int level){	MakeSR();	if(level>=((regs.sr&0xf00)>>8)) Exception(level+24,regs.pc);}void Stop68020(void){   cycles=0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲第一成人在线| 亚洲欧美成人一区二区三区| 欧美日韩国产首页| 91久久精品一区二区三| 99精品国产视频| 91免费版在线| 欧美做爰猛烈大尺度电影无法无天| av色综合久久天堂av综合| 成人高清视频免费观看| 91一区在线观看| 欧美无砖专区一中文字| 欧美精品 国产精品| 日韩一区二区不卡| 久久亚洲免费视频| 中文字幕欧美国产| 亚洲综合一区二区三区| 亚洲一区精品在线| 久久er精品视频| 国产不卡视频在线播放| 一本一本大道香蕉久在线精品 | 亚洲视频综合在线| 亚洲成人av一区二区| 另类小说视频一区二区| 国产成人精品亚洲日本在线桃色 | 久久女同精品一区二区| 亚洲欧洲精品天堂一级| 亚洲成av人影院| 国产在线播放一区| 色综合久久中文综合久久97| 欧美日韩在线亚洲一区蜜芽| 精品sm捆绑视频| 国产精品欧美久久久久无广告 | 国产精品久久久久久久久晋中 | 久久久久久久综合色一本| 亚洲欧洲三级电影| 免费看日韩精品| 99久久久国产精品免费蜜臀| 制服丝袜亚洲精品中文字幕| 中文字幕精品一区| 麻豆国产精品777777在线| 99久久国产综合精品女不卡| 欧美一级搡bbbb搡bbbb| 亚洲欧美一区二区三区国产精品| 九色综合国产一区二区三区| 色屁屁一区二区| 欧美国产国产综合| 久久精品国产一区二区三区免费看| 91视频观看视频| 国产午夜精品久久久久久久| 日韩av在线发布| 欧美在线免费视屏| 国产精品理伦片| 精品综合免费视频观看| 欧美一区二区三区视频在线 | 蜜臀av性久久久久蜜臀aⅴ流畅| 99国产欧美另类久久久精品| 久久综合久久久久88| 日本女人一区二区三区| 欧美丝袜丝nylons| 亚洲六月丁香色婷婷综合久久 | 亚洲国产三级在线| 99国产精品久久| 中文av一区二区| 丁香婷婷综合激情五月色| 久久嫩草精品久久久久| 另类的小说在线视频另类成人小视频在线 | 国产精品一区二区视频| 日韩一区二区不卡| 蜜臀av一区二区| 精品国产伦一区二区三区观看方式| 午夜精品国产更新| 在线91免费看| 美女网站色91| 精品欧美乱码久久久久久1区2区| 日本成人在线网站| 欧美一区二区三区播放老司机| 视频一区二区三区入口| 日韩一区二区三区在线| 经典三级一区二区| 日本一区二区三级电影在线观看| 国产精品亚洲第一区在线暖暖韩国| 久久蜜桃一区二区| 国产精品一二一区| 中文字幕在线观看不卡| 色香蕉久久蜜桃| 午夜精品免费在线| 日韩欧美在线观看一区二区三区| 秋霞午夜av一区二区三区| 精品捆绑美女sm三区| 国产精品一级片| 玉米视频成人免费看| 精品视频一区三区九区| 久久99久久久欧美国产| 国产精品午夜在线| 欧美日韩在线免费视频| 久久国产精品99久久人人澡| 欧美激情在线一区二区| 91久久精品国产91性色tv| 青草av.久久免费一区| 久久人人97超碰com| 91视频xxxx| 久久精品国产网站| 最新国产成人在线观看| 欧美日韩国产中文| 国产精品综合一区二区三区| 成人免费在线视频观看| 91精品国产综合久久久久久久| 国产一本一道久久香蕉| 一级精品视频在线观看宜春院| 精品剧情v国产在线观看在线| 99免费精品在线| 奇米精品一区二区三区在线观看| 国产精品久久久久婷婷| 欧美一区二区三区在线看| 国产91精品在线观看| 三级欧美在线一区| 综合久久久久久久| 欧美videos大乳护士334| 日本韩国欧美一区二区三区| 国产一区二区看久久| 爽爽淫人综合网网站| 亚洲欧美日韩电影| 国产偷v国产偷v亚洲高清 | 日韩电影免费在线观看网站| 国产亚洲女人久久久久毛片| 在线播放欧美女士性生活| 色诱亚洲精品久久久久久| 国产裸体歌舞团一区二区| 午夜视频在线观看一区| 亚洲精品欧美在线| 国产精品欧美极品| 久久精品夜色噜噜亚洲a∨| 91精品国产综合久久精品麻豆| 99久精品国产| 成人h精品动漫一区二区三区| 久久99久久久欧美国产| 奇米综合一区二区三区精品视频 | 免费人成精品欧美精品| 亚洲一区影音先锋| 亚洲老司机在线| 亚洲另类中文字| 亚洲免费成人av| 一区二区三区日韩欧美精品| 中文字幕亚洲视频| 国产精品久久久久久久第一福利 | 精品国内二区三区| 日韩一区二区在线看片| 在线不卡的av| 欧美一级爆毛片| 日韩一级黄色大片| 精品国产亚洲一区二区三区在线观看| 欧美人伦禁忌dvd放荡欲情| 欧美日韩精品一区二区三区四区 | 国产风韵犹存在线视精品| 国产一区在线观看麻豆| 国产精品一二一区| 大胆欧美人体老妇| 91免费视频网址| 欧美日韩性生活| 欧美一区二区三区视频| 日韩一区国产二区欧美三区| 欧美成人免费网站| 久久精品人人做人人综合| 国产欧美一区二区精品忘忧草| 久久久久久久久久久99999| 中文字幕av一区 二区| 亚洲精品大片www| 日韩和欧美的一区| 国产专区欧美精品| 91在线视频官网| 欧美视频在线一区二区三区| 日韩一卡二卡三卡| 国产色产综合产在线视频| 日韩毛片高清在线播放| 亚洲成av人影院| 国产成人免费视频网站| 99久久免费视频.com| 欧美日韩视频不卡| 久久免费午夜影院| 亚洲精品午夜久久久| 老司机午夜精品| 99热在这里有精品免费| 欧美精品一二三四| 国产欧美精品国产国产专区| 洋洋成人永久网站入口| 国产综合久久久久久久久久久久| 99九九99九九九视频精品| 欧美日韩国产a| 日本一区二区三区四区| 日韩精品久久理论片| 成人国产精品免费观看视频| 91精品国产综合久久婷婷香蕉| 中文一区二区在线观看| 日韩成人精品在线观看| www.亚洲色图| 欧美mv日韩mv国产| 亚洲第一二三四区| 91日韩精品一区| 久久久久久久久99精品| 日韩高清在线观看|