|
|
| version 1.1, 2003/10/26 07:50:36 | version 1.4, 2003/11/28 08:01:32 |
|---|---|
| Line 174 I286FN v30mov_seg_ea(void) { // 8E: m | Line 174 I286FN v30mov_seg_ea(void) { // 8E: m |
| GET_PCBYTE(op); | GET_PCBYTE(op); |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| I286_WORKCLOCK(2); | I286_WORKCLOCK(2); |
| tmp = *(reg16_b20[op]); | tmp = *(REG16_B20(op)); |
| } | } |
| else { | else { |
| I286_WORKCLOCK(5); | I286_WORKCLOCK(5); |
| tmp = i286_memoryread_w(c_calc_ea_dst[op]()); | tmp = i286_memoryread_w(CALC_EA(op)); |
| } | } |
| switch(op & 0x18) { | switch(op & 0x18) { |
| case 0x00: // es | case 0x00: // es |
| Line 232 I286FN v30shift_ea8_data8(void) { // C | Line 232 I286FN v30shift_ea8_data8(void) { // C |
| GET_PCBYTE(op) | GET_PCBYTE(op) |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| I286_WORKCLOCK(5); | I286_WORKCLOCK(5); |
| out = reg8_b20[op]; | out = REG8_B20(op); |
| } | } |
| else { | else { |
| I286_WORKCLOCK(8); | I286_WORKCLOCK(8); |
| madr = c_calc_ea_dst[op](); | madr = CALC_EA(op); |
| if (madr >= I286_MEMWRITEMAX) { | if (madr >= I286_MEMWRITEMAX) { |
| GET_PCBYTE(cl) | GET_PCBYTE(cl) |
| if ((op & 0x30) == 0x10) { // rotate with carry | if ((op & 0x30) == 0x10) { // rotate with carry |
| Line 272 I286FN v30shift_ea16_data8(void) { // | Line 272 I286FN v30shift_ea16_data8(void) { // |
| GET_PCBYTE(op) | GET_PCBYTE(op) |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| I286_WORKCLOCK(5); | I286_WORKCLOCK(5); |
| out = reg16_b20[op]; | out = REG16_B20(op); |
| } | } |
| else { | else { |
| I286_WORKCLOCK(8); | I286_WORKCLOCK(8); |
| madr = c_calc_ea_dst[op](); | madr = CALC_EA(op); |
| if (INHIBIT_WORDP(madr)) { | if (INHIBIT_WORDP(madr)) { |
| GET_PCBYTE(cl); | GET_PCBYTE(cl); |
| if ((op & 0x30) == 0x10) { // rotate with carry | if ((op & 0x30) == 0x10) { // rotate with carry |
| Line 312 I286FN v30shift_ea8_cl(void) { // D2: | Line 312 I286FN v30shift_ea8_cl(void) { // D2: |
| GET_PCBYTE(op) | GET_PCBYTE(op) |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| I286_WORKCLOCK(5); | I286_WORKCLOCK(5); |
| out = reg8_b20[op]; | out = REG8_B20(op); |
| } | } |
| else { | else { |
| I286_WORKCLOCK(8); | I286_WORKCLOCK(8); |
| madr = c_calc_ea_dst[op](); | madr = CALC_EA(op); |
| if (madr >= I286_MEMWRITEMAX) { | if (madr >= I286_MEMWRITEMAX) { |
| cl = I286_CL; | cl = I286_CL; |
| I286_WORKCLOCK(cl); | I286_WORKCLOCK(cl); |
| Line 352 I286FN v30shift_ea16_cl(void) { // D3 | Line 352 I286FN v30shift_ea16_cl(void) { // D3 |
| GET_PCBYTE(op) | GET_PCBYTE(op) |
| if (op >= 0xc0) { | if (op >= 0xc0) { |
| I286_WORKCLOCK(5); | I286_WORKCLOCK(5); |
| out = reg16_b20[op]; | out = REG16_B20(op); |
| } | } |
| else { | else { |
| I286_WORKCLOCK(8); | I286_WORKCLOCK(8); |
| madr = c_calc_ea_dst[op](); | madr = CALC_EA(op); |
| if (INHIBIT_WORDP(madr)) { | if (INHIBIT_WORDP(madr)) { |
| cl = I286_CL; | cl = I286_CL; |
| I286_WORKCLOCK(cl); | I286_WORKCLOCK(cl); |
| Line 402 I286FN v30_aad(void) { // D5: AAD | Line 402 I286FN v30_aad(void) { // D5: AAD |
| I286_AL += (BYTE)(I286_AH * 10); | I286_AL += (BYTE)(I286_AH * 10); |
| I286_AH = 0; | I286_AH = 0; |
| I286_FLAGL &= ~(S_FLAG | Z_FLAG | P_FLAG); | I286_FLAGL &= ~(S_FLAG | Z_FLAG | P_FLAG); |
| I286_FLAGL |= szpcflag[I286_AL]; | I286_FLAGL |= BYTESZPF(I286_AL); |
| } | } |
| I286FN v30_xlat(void) { // D6: xlat | I286FN v30_xlat(void) { // D6: xlat |
| I286_WORKCLOCK(5); | I286_WORKCLOCK(5); |
| I286_AL = i286_memoryread(((I286_AL + I286_BX) & 0xffff) + DS_FIX); | I286_AL = i286_memoryread(LOW16(I286_AL + I286_BX) + DS_FIX); |
| } | } |
| I286FN v30_repne(void) { // F2: repne | I286FN v30_repne(void) { // F2: repne |