示例#1
0
I286_F6 _dec_ea16(UINT op) {

	UINT32	madr;
	UINT16	*out;
	REG16	res;

	if (op >= 0xc0) {
		I286_WORKCLOCK(2);
		out = REG16_B20(op);
	}
	else {
		I286_WORKCLOCK(7);
		madr = CALC_EA(op);
		if (INHIBIT_WORDP(madr)) {
			res = i286_memoryread_w(madr);
			DECWORD(res)
			i286_memorywrite_w(madr, res);
			return;
		}
		out = (UINT16 *)(mem + madr);
	}
	res = *out;
	DECWORD(res)
	*out = (UINT16)res;
}
示例#2
0
I286_SFT _sar_e16_cl(UINT32 madr, REG8 cl) {

	UINT32	src;
	UINT32	dst;

	src = i286_memoryread_w(madr);
	WORD_SARCL(dst, src, cl)
	i286_memorywrite_w(madr, (REG16)dst);
}
示例#3
0
I286_SFT _sar_e16_1(UINT32 madr) {

	UINT32	src;
	UINT32	dst;

	src = i286_memoryread_w(madr);
	WORD_SAR1(dst, src)
	i286_memorywrite_w(madr, (REG16)dst);
}
示例#4
0
I286_F6 _pop_ea16(UINT op) {

	UINT16	src;

	REGPOP0(src);
	I286_WORKCLOCK(5);
	if (op >= 0xc0) {
		*(REG16_B20(op)) = src;
	}
	else {
		i286_memorywrite_w(CALC_EA(op), src);
	}
}