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; }
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); }
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); }
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); } }