Diff for /np2/i286c/i286c_mn.c between versions 1.4 and 1.5

version 1.4, 2003/10/17 12:49:52 version 1.5, 2003/10/17 22:50:02
Line 1003  I286FN _aas(void) {        // 3f: aas Line 1003  I286FN _aas(void) {        // 3f: aas
         }          }
 }  }
   
 I286_P _inc_ax(void) INCWORD(I286_AX, 2)        // 40:  inc             ax  I286FN _inc_ax(void) INCWORD(I286_AX, 2)        // 40:  inc             ax
 I286_P _inc_cx(void) INCWORD(I286_CX, 2)        // 41:  inc             cx  I286FN _inc_cx(void) INCWORD(I286_CX, 2)        // 41:  inc             cx
 I286_P _inc_dx(void) INCWORD(I286_DX, 2)        // 42:  inc             dx  I286FN _inc_dx(void) INCWORD(I286_DX, 2)        // 42:  inc             dx
 I286_P _inc_bx(void) INCWORD(I286_BX, 2)        // 43:  inc             bx  I286FN _inc_bx(void) INCWORD(I286_BX, 2)        // 43:  inc             bx
 I286_P _inc_sp(void) INCWORD(I286_SP, 2)        // 44:  inc             sp  I286FN _inc_sp(void) INCWORD(I286_SP, 2)        // 44:  inc             sp
 I286_P _inc_bp(void) INCWORD(I286_BP, 2)        // 45:  inc             bp  I286FN _inc_bp(void) INCWORD(I286_BP, 2)        // 45:  inc             bp
 I286_P _inc_si(void) INCWORD(I286_SI, 2)        // 46:  inc             si  I286FN _inc_si(void) INCWORD(I286_SI, 2)        // 46:  inc             si
 I286_P _inc_di(void) INCWORD(I286_DI, 2)        // 47:  inc             di  I286FN _inc_di(void) INCWORD(I286_DI, 2)        // 47:  inc             di
 I286_P _dec_ax(void) DECWORD(I286_AX, 2)        // 48:  dec             ax  I286FN _dec_ax(void) DECWORD(I286_AX, 2)        // 48:  dec             ax
 I286_P _dec_cx(void) DECWORD(I286_CX, 2)        // 49:  dec             cx  I286FN _dec_cx(void) DECWORD(I286_CX, 2)        // 49:  dec             cx
 I286_P _dec_dx(void) DECWORD(I286_DX, 2)        // 4a:  dec             dx  I286FN _dec_dx(void) DECWORD(I286_DX, 2)        // 4a:  dec             dx
 I286_P _dec_bx(void) DECWORD(I286_BX, 2)        // 4b:  dec             bx  I286FN _dec_bx(void) DECWORD(I286_BX, 2)        // 4b:  dec             bx
 I286_P _dec_sp(void) DECWORD(I286_SP, 2)        // 4c:  dec             sp  I286FN _dec_sp(void) DECWORD(I286_SP, 2)        // 4c:  dec             sp
 I286_P _dec_bp(void) DECWORD(I286_BP, 2)        // 4d:  dec             bp  I286FN _dec_bp(void) DECWORD(I286_BP, 2)        // 4d:  dec             bp
 I286_P _dec_si(void) DECWORD(I286_SI, 2)        // 4e:  dec             si  I286FN _dec_si(void) DECWORD(I286_SI, 2)        // 4e:  dec             si
 I286_P _dec_di(void) DECWORD(I286_DI, 2)        // 4f:  dec             di  I286FN _dec_di(void) DECWORD(I286_DI, 2)        // 4f:  dec             di
   
 I286_P _push_ax(void) REGPUSH(I286_AX, 3)       // 50:  push    ax  I286FN _push_ax(void) REGPUSH(I286_AX, 3)       // 50:  push    ax
 I286_P _push_cx(void) REGPUSH(I286_CX, 3)       // 51:  push    cx  I286FN _push_cx(void) REGPUSH(I286_CX, 3)       // 51:  push    cx
 I286_P _push_dx(void) REGPUSH(I286_DX, 3)       // 52:  push    dx  I286FN _push_dx(void) REGPUSH(I286_DX, 3)       // 52:  push    dx
 I286_P _push_bx(void) REGPUSH(I286_BX, 3)       // 53:  push    bx  I286FN _push_bx(void) REGPUSH(I286_BX, 3)       // 53:  push    bx
 I286_P _push_sp(void) SP_PUSH(I286_SP, 3)       // 54:  push    sp  I286FN _push_sp(void) SP_PUSH(I286_SP, 3)       // 54:  push    sp
 I286_P _push_bp(void) REGPUSH(I286_BP, 3)       // 55:  push    bp  I286FN _push_bp(void) REGPUSH(I286_BP, 3)       // 55:  push    bp
 I286_P _push_si(void) REGPUSH(I286_SI, 3)       // 56:  push    si  I286FN _push_si(void) REGPUSH(I286_SI, 3)       // 56:  push    si
 I286_P _push_di(void) REGPUSH(I286_DI, 3)       // 57:  push    di  I286FN _push_di(void) REGPUSH(I286_DI, 3)       // 57:  push    di
 I286_P _pop_ax(void) REGPOP(I286_AX, 5)         // 58:  pop             ax  I286FN _pop_ax(void) REGPOP(I286_AX, 5)         // 58:  pop             ax
 I286_P _pop_cx(void) REGPOP(I286_CX, 5)         // 59:  pop             cx  I286FN _pop_cx(void) REGPOP(I286_CX, 5)         // 59:  pop             cx
 I286_P _pop_dx(void) REGPOP(I286_DX, 5)         // 5A:  pop             dx  I286FN _pop_dx(void) REGPOP(I286_DX, 5)         // 5A:  pop             dx
 I286_P _pop_bx(void) REGPOP(I286_BX, 5)         // 5B:  pop             bx  I286FN _pop_bx(void) REGPOP(I286_BX, 5)         // 5B:  pop             bx
 I286_P _pop_sp(void) REGPOP(I286_SP, 5)         // 5C:  pop             sp  I286FN _pop_sp(void) REGPOP(I286_SP, 5)         // 5C:  pop             sp
 I286_P _pop_bp(void) REGPOP(I286_BP, 5)         // 5D:  pop             bp  I286FN _pop_bp(void) REGPOP(I286_BP, 5)         // 5D:  pop             bp
 I286_P _pop_si(void) REGPOP(I286_SI, 5)         // 5E:  pop             si  I286FN _pop_si(void) REGPOP(I286_SI, 5)         // 5E:  pop             si
 I286_P _pop_di(void) REGPOP(I286_DI, 5)         // 5F:  pop             di  I286FN _pop_di(void) REGPOP(I286_DI, 5)         // 5F:  pop             di
   
 I286_P _pusha(void) {                                           // 60:  pusha  I286FN _pusha(void) {                                           // 60:  pusha
   
         UINT16  tmp;          UINT16  tmp;
   
Line 1053  I286_P _pusha(void) {      // 60: pusha Line 1053  I286_P _pusha(void) {      // 60: pusha
         I286_CLOCK(17)          I286_CLOCK(17)
 }  }
   
 I286_P _popa(void) {                                            // 61:  popa  I286FN _popa(void) {                                            // 61:  popa
   
         REGPOP0(I286_DI);          REGPOP0(I286_DI);
         REGPOP0(I286_SI);          REGPOP0(I286_SI);
Line 1066  I286_P _popa(void) {      // 61: popa Line 1066  I286_P _popa(void) {      // 61: popa
         I286_CLOCK(19)          I286_CLOCK(19)
 }  }
   
 I286_P _bound(void) {                                           // 62:  bound  I286FN _bound(void) {                                           // 62:  bound
   
         UINT    vect = 0;          UINT    vect = 0;
         UINT    op;          UINT    op;
Line 1092  I286_P _bound(void) {      // 62: bound Line 1092  I286_P _bound(void) {      // 62: bound
         INT_NUM(vect, I286_IP);          INT_NUM(vect, I286_IP);
 }  }
   
 I286_P _arpl(void) {                                            // 63:  arpl  I286FN _arpl(void) {                                            // 63:  arpl
   
         UINT    op;          UINT    op;
         UINT    tmp;          UINT    tmp;
Line 1104  I286_P _arpl(void) {      // 63: arpl Line 1104  I286_P _arpl(void) {      // 63: arpl
         INT_NUM(6, I286_IP);          INT_NUM(6, I286_IP);
 }  }
   
 I286_P _push_data16(void) {                             // 68:  push    DATA16  I286FN _push_data16(void) {                             // 68:  push    DATA16
   
         UINT16  tmp;          UINT16  tmp;
   
Line 1112  I286_P _push_data16(void) {    // 68: pu Line 1112  I286_P _push_data16(void) {    // 68: pu
         REGPUSH(tmp, 3)          REGPUSH(tmp, 3)
 }  }
   
 I286_P _imul_reg_ea_data16(void) {              // 69:  imul    REG, EA, DATA16  I286FN _imul_reg_ea_data16(void) {              // 69:  imul    REG, EA, DATA16
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 1126  I286_P _imul_reg_ea_data16(void) {  // 6 Line 1126  I286_P _imul_reg_ea_data16(void) {  // 6
         *out = (UINT16)res;          *out = (UINT16)res;
 }  }
   
 I286_P _push_data8(void) {                              // 6A:  push    DATA8  I286FN _push_data8(void) {                              // 6A:  push    DATA8
   
         UINT16  tmp;          UINT16  tmp;
   
Line 1134  I286_P _push_data8(void) {    // 6A: pus Line 1134  I286_P _push_data8(void) {    // 6A: pus
         REGPUSH(tmp, 3)          REGPUSH(tmp, 3)
 }  }
   
 I286_P _imul_reg_ea_data8(void) {               // 6B:  imul    REG, EA, DATA8  I286FN _imul_reg_ea_data8(void) {               // 6B:  imul    REG, EA, DATA8
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 1148  I286_P _imul_reg_ea_data8(void) {  // 6B Line 1148  I286_P _imul_reg_ea_data8(void) {  // 6B
         *out = (UINT16)res;          *out = (UINT16)res;
 }  }
   
 I286_P _insb(void) {                                            // 6C:  insb  I286FN _insb(void) {                                            // 6C:  insb
   
         BYTE    dat;          BYTE    dat;
   
Line 1158  I286_P _insb(void) {      // 6C: insb Line 1158  I286_P _insb(void) {      // 6C: insb
         I286_DI += STRING_DIR;          I286_DI += STRING_DIR;
 }  }
   
 I286_P _insw(void) {                                            // 6D:  insw  I286FN _insw(void) {                                            // 6D:  insw
   
         UINT16  dat;          UINT16  dat;
   
Line 1168  I286_P _insw(void) {      // 6D: insw Line 1168  I286_P _insw(void) {      // 6D: insw
         I286_DI += STRING_DIRx2;          I286_DI += STRING_DIRx2;
 }  }
   
 I286_P _outsb(void) {                                           // 6E:  outsb  I286FN _outsb(void) {                                           // 6E:  outsb
   
         BYTE    dat;          BYTE    dat;
   
Line 1178  I286_P _outsb(void) {      // 6E: outsb Line 1178  I286_P _outsb(void) {      // 6E: outsb
         iocore_out8(I286_DX, dat);          iocore_out8(I286_DX, dat);
 }  }
   
 I286_P _outsw(void) {                                           // 6F:  outsw  I286FN _outsw(void) {                                           // 6F:  outsw
   
         UINT16  dat;          UINT16  dat;
   
Line 1188  I286_P _outsw(void) {      // 6F: outsw Line 1188  I286_P _outsw(void) {      // 6F: outsw
         iocore_out16(I286_DX, dat);          iocore_out16(I286_DX, dat);
 }  }
   
 I286_P _jo_short(void) {                                        // 70:  jo short  I286FN _jo_short(void) {                                        // 70:  jo short
   
         if (!I286_OV) JMPNOP(2) else JMPSHORT(7)          if (!I286_OV) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jno_short(void) {                                       // 71:  jno short  I286FN _jno_short(void) {                                       // 71:  jno short
   
         if (I286_OV) JMPNOP(2) else JMPSHORT(7)          if (I286_OV) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jc_short(void) {                                        // 72:  jnae/jb/jc short  I286FN _jc_short(void) {                                        // 72:  jnae/jb/jc short
   
         if (!(I286_FLAGL & C_FLAG)) JMPNOP(2) else JMPSHORT(7)          if (!(I286_FLAGL & C_FLAG)) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jnc_short(void) {                                       // 73:  jae/jnb/jnc short  I286FN _jnc_short(void) {                                       // 73:  jae/jnb/jnc short
   
         if (I286_FLAGL & C_FLAG) JMPNOP(2) else JMPSHORT(7)          if (I286_FLAGL & C_FLAG) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jz_short(void) {                                        // 74:  je/jz short  I286FN _jz_short(void) {                                        // 74:  je/jz short
   
         if (!(I286_FLAGL & Z_FLAG)) JMPNOP(2) else JMPSHORT(7)          if (!(I286_FLAGL & Z_FLAG)) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jnz_short(void) {                                       // 75:  jne/jnz short  I286FN _jnz_short(void) {                                       // 75:  jne/jnz short
   
         if (I286_FLAGL & Z_FLAG) JMPNOP(2) else JMPSHORT(7)          if (I286_FLAGL & Z_FLAG) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jna_short(void) {                                       // 76:  jna/jbe short  I286FN _jna_short(void) {                                       // 76:  jna/jbe short
   
         if (!(I286_FLAGL & (Z_FLAG | C_FLAG))) JMPNOP(2) else JMPSHORT(7)          if (!(I286_FLAGL & (Z_FLAG | C_FLAG))) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _ja_short(void) {                                        // 77:  ja/jnbe short  I286FN _ja_short(void) {                                        // 77:  ja/jnbe short
         if (I286_FLAGL & (Z_FLAG | C_FLAG)) JMPNOP(2) else JMPSHORT(7)          if (I286_FLAGL & (Z_FLAG | C_FLAG)) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _js_short(void) {                                        // 78:  js short  I286FN _js_short(void) {                                        // 78:  js short
   
         if (!(I286_FLAGL & S_FLAG)) JMPNOP(2) else JMPSHORT(7)          if (!(I286_FLAGL & S_FLAG)) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jns_short(void) {                                       // 79:  jns short  I286FN _jns_short(void) {                                       // 79:  jns short
   
         if (I286_FLAGL & S_FLAG) JMPNOP(2) else JMPSHORT(7)          if (I286_FLAGL & S_FLAG) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jp_short(void) {                                        // 7A:  jp/jpe short  I286FN _jp_short(void) {                                        // 7A:  jp/jpe short
   
         if (!(I286_FLAGL & P_FLAG)) JMPNOP(2) else JMPSHORT(7)          if (!(I286_FLAGL & P_FLAG)) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jnp_short(void) {                                       // 7B:  jnp/jpo short  I286FN _jnp_short(void) {                                       // 7B:  jnp/jpo short
   
         if (I286_FLAGL & P_FLAG) JMPNOP(2) else JMPSHORT(7)          if (I286_FLAGL & P_FLAG) JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jl_short(void) {                                        // 7C:  jl/jnge short  I286FN _jl_short(void) {                                        // 7C:  jl/jnge short
   
         if (((I286_FLAGL & S_FLAG) == 0) == (I286_OV == 0))          if (((I286_FLAGL & S_FLAG) == 0) == (I286_OV == 0))
                                                                                                 JMPNOP(2) else JMPSHORT(7)                                                                                                  JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jnl_short(void) {                                       // 7D:  jnl/jge short  I286FN _jnl_short(void) {                                       // 7D:  jnl/jge short
   
         if (((I286_FLAGL & S_FLAG) == 0) != (I286_OV == 0))          if (((I286_FLAGL & S_FLAG) == 0) != (I286_OV == 0))
                                                                                                 JMPNOP(2) else JMPSHORT(7)                                                                                                  JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jle_short(void) {                                       // 7E:  jle/jng short  I286FN _jle_short(void) {                                       // 7E:  jle/jng short
   
         if ((!(I286_FLAGL & Z_FLAG)) &&          if ((!(I286_FLAGL & Z_FLAG)) &&
                 (((I286_FLAGL & S_FLAG) == 0) == (I286_OV == 0)))                  (((I286_FLAGL & S_FLAG) == 0) == (I286_OV == 0)))
                                                                                                 JMPNOP(2) else JMPSHORT(7)                                                                                                  JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _jnle_short(void) {                                      // 7F:  jg/jnle short  I286FN _jnle_short(void) {                                      // 7F:  jg/jnle short
   
         if ((I286_FLAGL & Z_FLAG) ||          if ((I286_FLAGL & Z_FLAG) ||
                 (((I286_FLAGL & S_FLAG) == 0) != (I286_OV == 0)))                  (((I286_FLAGL & S_FLAG) == 0) != (I286_OV == 0)))
                                                                                                 JMPNOP(2) else JMPSHORT(7)                                                                                                  JMPNOP(2) else JMPSHORT(7)
 }  }
   
 I286_P _calc_ea8_i8(void) {                                     // 80:  op              EA8, DATA8  I286FN _calc_ea8_i8(void) {                                     // 80:  op              EA8, DATA8
                                                                                         // 82:  op              EA8, DATA8                                                                                          // 82:  op              EA8, DATA8
         BYTE    *out;          BYTE    *out;
         UINT    op;          UINT    op;
Line 1296  I286_P _calc_ea8_i8(void) {     // 80: o Line 1296  I286_P _calc_ea8_i8(void) {     // 80: o
         c_op8xreg8_table[(op >> 3) & 7](out);          c_op8xreg8_table[(op >> 3) & 7](out);
 }  }
   
 I286_P _calc_ea16_i16(void) {                           // 81:  op              EA16, DATA16  I286FN _calc_ea16_i16(void) {                           // 81:  op              EA16, DATA16
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 1322  I286_P _calc_ea16_i16(void) {    // 81:  Line 1322  I286_P _calc_ea16_i16(void) {    // 81: 
         c_op8xreg16_table[(op >> 3) & 7](out, src);          c_op8xreg16_table[(op >> 3) & 7](out, src);
 }  }
   
 I286_P _calc_ea16_i8(void) {                            // 83:  op              EA16, DATA8  I286FN _calc_ea16_i8(void) {                            // 83:  op              EA16, DATA8
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 1348  I286_P _calc_ea16_i8(void) {    // 83: o Line 1348  I286_P _calc_ea16_i8(void) {    // 83: o
         c_op8xreg16_table[(op >> 3) & 7](out, src);          c_op8xreg16_table[(op >> 3) & 7](out, src);
 }  }
   
 I286_P _test_ea_r8(void) {                                      // 84:  test    EA, REG8  I286FN _test_ea_r8(void) {                                      // 84:  test    EA, REG8
   
         BYTE    *out;          BYTE    *out;
         UINT    op;          UINT    op;
Line 1375  I286_P _test_ea_r8(void) {     // 84: te Line 1375  I286_P _test_ea_r8(void) {     // 84: te
         ANDBYTE(tmp, src);          ANDBYTE(tmp, src);
 }  }
   
 I286_P _test_ea_r16(void) {                                     // 85:  test    EA, REG16  I286FN _test_ea_r16(void) {                                     // 85:  test    EA, REG16
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 1402  I286_P _test_ea_r16(void) {     // 85: t Line 1402  I286_P _test_ea_r16(void) {     // 85: t
         ANDWORD(tmp, src);          ANDWORD(tmp, src);
 }  }
   
 I286_P _xchg_ea_r8(void) {                                      // 86:  xchg    EA, REG8  I286FN _xchg_ea_r8(void) {                                      // 86:  xchg    EA, REG8
   
         BYTE    *out;          BYTE    *out;
         BYTE    *src;          BYTE    *src;
Line 1428  I286_P _xchg_ea_r8(void) {     // 86: xc Line 1428  I286_P _xchg_ea_r8(void) {     // 86: xc
         SWAPBYTE(*out, *src);          SWAPBYTE(*out, *src);
 }  }
   
 I286_P _xchg_ea_r16(void) {                                     // 87:  xchg    EA, REG16  I286FN _xchg_ea_r16(void) {                                     // 87:  xchg    EA, REG16
   
         UINT16  *out;          UINT16  *out;
         UINT16  *src;          UINT16  *src;
Line 1454  I286_P _xchg_ea_r16(void) {     // 87: x Line 1454  I286_P _xchg_ea_r16(void) {     // 87: x
         SWAPWORD(*out, *src);          SWAPWORD(*out, *src);
 }  }
   
 I286_P _mov_ea_r8(void) {                                       // 88:  mov             EA, REG8  I286FN _mov_ea_r8(void) {                                       // 88:  mov             EA, REG8
   
         BYTE    src;          BYTE    src;
         UINT    op;          UINT    op;
Line 1472  I286_P _mov_ea_r8(void) {     // 88: mov Line 1472  I286_P _mov_ea_r8(void) {     // 88: mov
         }          }
 }  }
   
 I286_P _mov_ea_r16(void) {                                      // 89:  mov             EA, REG16  I286FN _mov_ea_r16(void) {                                      // 89:  mov             EA, REG16
   
         UINT16  src;          UINT16  src;
         UINT    op;          UINT    op;
Line 1488  I286_P _mov_ea_r16(void) {     // 89: mo Line 1488  I286_P _mov_ea_r16(void) {     // 89: mo
         }          }
 }  }
   
 I286_P _mov_r8_ea(void) {                                       // 8A:  mov             REG8, EA  I286FN _mov_r8_ea(void) {                                       // 8A:  mov             REG8, EA
   
         BYTE    *out;          BYTE    *out;
         BYTE    src;          BYTE    src;
Line 1498  I286_P _mov_r8_ea(void) {     // 8A: mov Line 1498  I286_P _mov_r8_ea(void) {     // 8A: mov
         *out = src;          *out = src;
 }  }
   
 I286_P _mov_r16_ea(void) {                                      // 8B:  mov             REG16, EA  I286FN _mov_r16_ea(void) {                                      // 8B:  mov             REG16, EA
   
         UINT16  *out;          UINT16  *out;
         UINT16  src;          UINT16  src;
Line 1508  I286_P _mov_r16_ea(void) {     // 8B: mo Line 1508  I286_P _mov_r16_ea(void) {     // 8B: mo
         *out = src;          *out = src;
 }  }
   
 I286_P _mov_ea_seg(void) {                                      // 8C:  mov             EA, segreg  I286FN _mov_ea_seg(void) {                                      // 8C:  mov             EA, segreg
   
         UINT    op;          UINT    op;
         UINT16  tmp;          UINT16  tmp;
Line 1525  I286_P _mov_ea_seg(void) {     // 8C: mo Line 1525  I286_P _mov_ea_seg(void) {     // 8C: mo
         }          }
 }  }
   
 I286_P _lea_r16_ea(void) {                                      // 8D:  lea             REG16, EA  I286FN _lea_r16_ea(void) {                                      // 8D:  lea             REG16, EA
   
         UINT    op;          UINT    op;
   
Line 1539  I286_P _lea_r16_ea(void) {     // 8D: le Line 1539  I286_P _lea_r16_ea(void) {     // 8D: le
         }          }
 }  }
   
 I286_P _mov_seg_ea(void) {                                      // 8E:  mov             segrem, EA  I286FN _mov_seg_ea(void) {                                      // 8E:  mov             segrem, EA
   
         UINT    op;          UINT    op;
         UINT    tmp;          UINT    tmp;
Line 1580  I286_P _mov_seg_ea(void) {     // 8E: mo Line 1580  I286_P _mov_seg_ea(void) {     // 8E: mo
         }          }
 }  }
   
 I286_P _pop_ea(void) {                                          // 8F:  pop             EA  I286FN _pop_ea(void) {                                          // 8F:  pop             EA
   
         UINT    op;          UINT    op;
         UINT16  tmp;          UINT16  tmp;
Line 1597  I286_P _pop_ea(void) {      // 8F: pop   Line 1597  I286_P _pop_ea(void) {      // 8F: pop  
         }          }
 }  }
   
 I286_P _nop(void) {                                                     // 90: nop / bios func  I286FN _nop(void) {                                                     // 90: nop / bios func
   
 #if 1                                                                           // call BIOS  #if 1                                                                           // call BIOS
         UINT32  adrs;          UINT32  adrs;
Line 1616  I286_P _nop(void) {       // 90: nop / b Line 1616  I286_P _nop(void) {       // 90: nop / b
         I286_CLOCK(3)          I286_CLOCK(3)
 }  }
   
 I286_P _xchg_ax_cx(void) {                                      // 91:  xchg    ax, cx  I286FN _xchg_ax_cx(void) {                                      // 91:  xchg    ax, cx
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_CX);          SWAPWORD(I286_AX, I286_CX);
 }  }
   
 I286_P _xchg_ax_dx(void) {                                      // 92:  xchg    ax, dx  I286FN _xchg_ax_dx(void) {                                      // 92:  xchg    ax, dx
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_DX);          SWAPWORD(I286_AX, I286_DX);
 }  }
   
 I286_P _xchg_ax_bx(void) {                                      // 93:  xchg    ax, bx  I286FN _xchg_ax_bx(void) {                                      // 93:  xchg    ax, bx
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_BX);          SWAPWORD(I286_AX, I286_BX);
 }  }
   
 I286_P _xchg_ax_sp(void) {                                      // 94:  xchg    ax, sp  I286FN _xchg_ax_sp(void) {                                      // 94:  xchg    ax, sp
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_SP);          SWAPWORD(I286_AX, I286_SP);
 }  }
   
 I286_P _xchg_ax_bp(void) {                                      // 95:  xchg    ax, bp  I286FN _xchg_ax_bp(void) {                                      // 95:  xchg    ax, bp
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_BP);          SWAPWORD(I286_AX, I286_BP);
 }  }
   
 I286_P _xchg_ax_si(void) {                                      // 96:  xchg    ax, si  I286FN _xchg_ax_si(void) {                                      // 96:  xchg    ax, si
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_SI);          SWAPWORD(I286_AX, I286_SI);
 }  }
   
 I286_P _xchg_ax_di(void) {                                      // 97:  xchg    ax, di  I286FN _xchg_ax_di(void) {                                      // 97:  xchg    ax, di
   
         I286_CLOCK(3);          I286_CLOCK(3);
         SWAPWORD(I286_AX, I286_DI);          SWAPWORD(I286_AX, I286_DI);
 }  }
   
 I286_P _cbw(void) {                                                     // 98:  cbw  I286FN _cbw(void) {                                                     // 98:  cbw
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_AX = __CBW(I286_AL);          I286_AX = __CBW(I286_AL);
 }  }
   
 I286_P _cwd(void) {                                                     // 99:  cwd  I286FN _cwd(void) {                                                     // 99:  cwd
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_DX = ((I286_AH & 0x80)?0xffff:0x0000);          I286_DX = ((I286_AH & 0x80)?0xffff:0x0000);
 }  }
   
 I286_P _call_far(void) {                                        // 9A:  call far  I286FN _call_far(void) {                                        // 9A:  call far
   
         UINT16  newip;          UINT16  newip;
   
Line 1683  I286_P _call_far(void) {     // 9A: call Line 1683  I286_P _call_far(void) {     // 9A: call
         I286_IP = newip;          I286_IP = newip;
 }  }
   
 I286_P _wait(void) {                                            // 9B:  wait  I286FN _wait(void) {                                            // 9B:  wait
   
         I286_CLOCK(2)          I286_CLOCK(2)
 }  }
   
 I286_P _pushf(void) {                                           // 9C:  pushf  I286FN _pushf(void) {                                           // 9C:  pushf
   
         REGPUSH(REAL_FLAGREG, 3)          REGPUSH(REAL_FLAGREG, 3)
 }  }
   
 I286_P _popf(void) {                                            // 9D:  popf  I286FN _popf(void) {                                            // 9D:  popf
   
         I286_CLOCK(5)          I286_CLOCK(5)
         REGPOP0(I286_FLAG)          REGPOP0(I286_FLAG)
Line 1703  I286_P _popf(void) {      // 9D: popf Line 1703  I286_P _popf(void) {      // 9D: popf
         I286IRQCHECKTERM          I286IRQCHECKTERM
 }  }
   
 I286_P _sahf(void) {                                            // 9E:  sahf  I286FN _sahf(void) {                                            // 9E:  sahf
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAGL = I286_AH;          I286_FLAGL = I286_AH;
 }  }
   
 I286_P _lahf(void) {                                            // 9F:  lahf  I286FN _lahf(void) {                                            // 9F:  lahf
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_AH = I286_FLAGL;          I286_AH = I286_FLAGL;
 }  }
   
 I286_P _mov_al_m8(void) {                                       // A0:  mov             al, m8  I286FN _mov_al_m8(void) {                                       // A0:  mov             al, m8
   
         UINT    op;          UINT    op;
   
Line 1724  I286_P _mov_al_m8(void) {     // A0: mov Line 1724  I286_P _mov_al_m8(void) {     // A0: mov
         I286_AL = i286_memoryread(DS_FIX + op);          I286_AL = i286_memoryread(DS_FIX + op);
 }  }
   
 I286_P _mov_ax_m16(void) {                                      // A1:  mov             ax, m16  I286FN _mov_ax_m16(void) {                                      // A1:  mov             ax, m16
   
         UINT    op;          UINT    op;
   
Line 1733  I286_P _mov_ax_m16(void) {     // A1: mo Line 1733  I286_P _mov_ax_m16(void) {     // A1: mo
         I286_AX = i286_memoryread_w(DS_FIX + op);          I286_AX = i286_memoryread_w(DS_FIX + op);
 }  }
   
 I286_P _mov_m8_al(void) {                                       // A2:  mov             m8, al  I286FN _mov_m8_al(void) {                                       // A2:  mov             m8, al
   
         UINT    op;          UINT    op;
   
Line 1742  I286_P _mov_m8_al(void) {     // A2: mov Line 1742  I286_P _mov_m8_al(void) {     // A2: mov
         i286_memorywrite(DS_FIX + op, I286_AL);          i286_memorywrite(DS_FIX + op, I286_AL);
 }  }
   
 I286_P _mov_m16_ax(void) {                                      // A3:  mov             m16, ax  I286FN _mov_m16_ax(void) {                                      // A3:  mov             m16, ax
   
         UINT    op;          UINT    op;
   
Line 1751  I286_P _mov_m16_ax(void) {     // A3: mo Line 1751  I286_P _mov_m16_ax(void) {     // A3: mo
         i286_memorywrite_w(DS_FIX + op, I286_AX);          i286_memorywrite_w(DS_FIX + op, I286_AX);
 }  }
   
 I286_P _movsb(void) {                                           // A4:  movsb  I286FN _movsb(void) {                                           // A4:  movsb
   
         BYTE    tmp;          BYTE    tmp;
   
Line 1762  I286_P _movsb(void) {      // A4: movsb Line 1762  I286_P _movsb(void) {      // A4: movsb
         I286_DI += STRING_DIR;          I286_DI += STRING_DIR;
 }  }
   
 I286_P _movsw(void) {                                           // A5:  movsw  I286FN _movsw(void) {                                           // A5:  movsw
   
         UINT16  tmp;          UINT16  tmp;
   
Line 1773  I286_P _movsw(void) {      // A5: movsw Line 1773  I286_P _movsw(void) {      // A5: movsw
         I286_DI += STRING_DIRx2;          I286_DI += STRING_DIRx2;
 }  }
   
 I286_P _cmpsb(void) {                                           // A6:  cmpsb  I286FN _cmpsb(void) {                                           // A6:  cmpsb
   
         UINT    src;          UINT    src;
         UINT    dst;          UINT    dst;
Line 1787  I286_P _cmpsb(void) {      // A6: cmpsb Line 1787  I286_P _cmpsb(void) {      // A6: cmpsb
         I286_DI += STRING_DIR;          I286_DI += STRING_DIR;
 }  }
   
 I286_P _cmpsw(void) {                                           // A7:  cmpsw  I286FN _cmpsw(void) {                                           // A7:  cmpsw
   
         UINT32  src;          UINT32  src;
         UINT32  dst;          UINT32  dst;
Line 1801  I286_P _cmpsw(void) {      // A7: cmpsw Line 1801  I286_P _cmpsw(void) {      // A7: cmpsw
         I286_DI += STRING_DIRx2;          I286_DI += STRING_DIRx2;
 }  }
   
 I286_P _test_al_data8(void) {                           // A8:  test    al, DATA8  I286FN _test_al_data8(void) {                           // A8:  test    al, DATA8
   
         UINT    src;          UINT    src;
         UINT    dst;          UINT    dst;
Line 1812  I286_P _test_al_data8(void) {    // A8:  Line 1812  I286_P _test_al_data8(void) {    // A8: 
         ANDBYTE(dst, src)          ANDBYTE(dst, src)
 }  }
   
 I286_P _test_ax_data16(void) {                          // A9:  test    ax, DATA16  I286FN _test_ax_data16(void) {                          // A9:  test    ax, DATA16
   
         UINT32  src;          UINT32  src;
         UINT32  dst;          UINT32  dst;
Line 1823  I286_P _test_ax_data16(void) {    // A9: Line 1823  I286_P _test_ax_data16(void) {    // A9:
         ANDWORD(dst, src)          ANDWORD(dst, src)
 }  }
   
 I286_P _stosb(void) {                                           // AA:  stosw  I286FN _stosb(void) {                                           // AA:  stosw
   
         I286_CLOCK(3)          I286_CLOCK(3)
         i286_memorywrite(I286_DI + ES_BASE, I286_AL);          i286_memorywrite(I286_DI + ES_BASE, I286_AL);
         I286_DI += STRING_DIR;          I286_DI += STRING_DIR;
 }  }
   
 I286_P _stosw(void) {                                           // AB:  stosw  I286FN _stosw(void) {                                           // AB:  stosw
   
         I286_CLOCK(3)          I286_CLOCK(3)
         i286_memorywrite_w(I286_DI + ES_BASE, I286_AX);          i286_memorywrite_w(I286_DI + ES_BASE, I286_AX);
         I286_DI += STRING_DIRx2;          I286_DI += STRING_DIRx2;
 }  }
   
 I286_P _lodsb(void) {                                           // AC:  lodsb  I286FN _lodsb(void) {                                           // AC:  lodsb
   
         I286_CLOCK(5)          I286_CLOCK(5)
         I286_AL = i286_memoryread(I286_SI + DS_FIX);          I286_AL = i286_memoryread(I286_SI + DS_FIX);
         I286_SI += STRING_DIR;          I286_SI += STRING_DIR;
 }  }
   
 I286_P _lodsw(void) {                                           // AD:  lodsw  I286FN _lodsw(void) {                                           // AD:  lodsw
   
         I286_CLOCK(5)          I286_CLOCK(5)
         I286_AX = i286_memoryread_w(I286_SI + DS_FIX);          I286_AX = i286_memoryread_w(I286_SI + DS_FIX);
         I286_SI += STRING_DIRx2;          I286_SI += STRING_DIRx2;
 }  }
   
 I286_P _scasb(void) {                                           // AE:  scasb  I286FN _scasb(void) {                                           // AE:  scasb
   
         UINT    src;          UINT    src;
         UINT    dst;          UINT    dst;
Line 1864  I286_P _scasb(void) {      // AE: scasb Line 1864  I286_P _scasb(void) {      // AE: scasb
         I286_DI += STRING_DIR;          I286_DI += STRING_DIR;
 }  }
   
 I286_P _scasw(void) {                                           // AF:  scasw  I286FN _scasw(void) {                                           // AF:  scasw
   
         UINT32  src;          UINT32  src;
         UINT32  dst;          UINT32  dst;
Line 1877  I286_P _scasw(void) {      // AF: scasw Line 1877  I286_P _scasw(void) {      // AF: scasw
         I286_DI += STRING_DIRx2;          I286_DI += STRING_DIRx2;
 }  }
   
 I286_P _mov_al_imm(void) MOVIMM8(I286_AL)       // B0:  mov             al, imm8  I286FN _mov_al_imm(void) MOVIMM8(I286_AL)       // B0:  mov             al, imm8
 I286_P _mov_cl_imm(void) MOVIMM8(I286_CL)       // B1:  mov             cl, imm8  I286FN _mov_cl_imm(void) MOVIMM8(I286_CL)       // B1:  mov             cl, imm8
 I286_P _mov_dl_imm(void) MOVIMM8(I286_DL)       // B2:  mov             dl, imm8  I286FN _mov_dl_imm(void) MOVIMM8(I286_DL)       // B2:  mov             dl, imm8
 I286_P _mov_bl_imm(void) MOVIMM8(I286_BL)       // B3:  mov             bl, imm8  I286FN _mov_bl_imm(void) MOVIMM8(I286_BL)       // B3:  mov             bl, imm8
 I286_P _mov_ah_imm(void) MOVIMM8(I286_AH)       // B4:  mov             ah, imm8  I286FN _mov_ah_imm(void) MOVIMM8(I286_AH)       // B4:  mov             ah, imm8
 I286_P _mov_ch_imm(void) MOVIMM8(I286_CH)       // B5:  mov             ch, imm8  I286FN _mov_ch_imm(void) MOVIMM8(I286_CH)       // B5:  mov             ch, imm8
 I286_P _mov_dh_imm(void) MOVIMM8(I286_DH)       // B6:  mov             dh, imm8  I286FN _mov_dh_imm(void) MOVIMM8(I286_DH)       // B6:  mov             dh, imm8
 I286_P _mov_bh_imm(void) MOVIMM8(I286_BH)       // B7:  mov             bh, imm8  I286FN _mov_bh_imm(void) MOVIMM8(I286_BH)       // B7:  mov             bh, imm8
 I286_P _mov_ax_imm(void) MOVIMM16(I286_AX)      // B8:  mov             ax, imm16  I286FN _mov_ax_imm(void) MOVIMM16(I286_AX)      // B8:  mov             ax, imm16
 I286_P _mov_cx_imm(void) MOVIMM16(I286_CX)      // B9:  mov             cx, imm16  I286FN _mov_cx_imm(void) MOVIMM16(I286_CX)      // B9:  mov             cx, imm16
 I286_P _mov_dx_imm(void) MOVIMM16(I286_DX)      // BA:  mov             dx, imm16  I286FN _mov_dx_imm(void) MOVIMM16(I286_DX)      // BA:  mov             dx, imm16
 I286_P _mov_bx_imm(void) MOVIMM16(I286_BX)      // BB:  mov             bx, imm16  I286FN _mov_bx_imm(void) MOVIMM16(I286_BX)      // BB:  mov             bx, imm16
 I286_P _mov_sp_imm(void) MOVIMM16(I286_SP)      // BC:  mov             sp, imm16  I286FN _mov_sp_imm(void) MOVIMM16(I286_SP)      // BC:  mov             sp, imm16
 I286_P _mov_bp_imm(void) MOVIMM16(I286_BP)      // BD:  mov             bp, imm16  I286FN _mov_bp_imm(void) MOVIMM16(I286_BP)      // BD:  mov             bp, imm16
 I286_P _mov_si_imm(void) MOVIMM16(I286_SI)      // BE:  mov             si, imm16  I286FN _mov_si_imm(void) MOVIMM16(I286_SI)      // BE:  mov             si, imm16
 I286_P _mov_di_imm(void) MOVIMM16(I286_DI)      // BF:  mov             di, imm16  I286FN _mov_di_imm(void) MOVIMM16(I286_DI)      // BF:  mov             di, imm16
   
 I286_P _shift_ea8_data8(void) {                         // C0:  shift   EA8, DATA8  I286FN _shift_ea8_data8(void) {                         // C0:  shift   EA8, DATA8
   
         BYTE    *out;          BYTE    *out;
         UINT    op;          UINT    op;
Line 1922  I286_P _shift_ea8_data8(void) {    // C0 Line 1922  I286_P _shift_ea8_data8(void) {    // C0
         sft_r8cl_table[(op >> 3) & 7](out, cl);          sft_r8cl_table[(op >> 3) & 7](out, cl);
 }  }
   
 I286_P _shift_ea16_data8(void) {                        // C1:  shift   EA16, DATA8  I286FN _shift_ea16_data8(void) {                        // C1:  shift   EA16, DATA8
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 1950  I286_P _shift_ea16_data8(void) {   // C1 Line 1950  I286_P _shift_ea16_data8(void) {   // C1
         sft_r16cl_table[(op >> 3) & 7](out, cl);          sft_r16cl_table[(op >> 3) & 7](out, cl);
 }  }
   
 I286_P _ret_near_data16(void) {                         // C2:  ret near DATA16  I286FN _ret_near_data16(void) {                         // C2:  ret near DATA16
   
         UINT16  ad;          UINT16  ad;
   
Line 1960  I286_P _ret_near_data16(void) {    // C2 Line 1960  I286_P _ret_near_data16(void) {    // C2
         I286_SP += ad;          I286_SP += ad;
 }  }
   
 I286_P _ret_near(void) {                                        // C3:  ret near  I286FN _ret_near(void) {                                        // C3:  ret near
   
         I286_CLOCK(11)          I286_CLOCK(11)
         REGPOP0(I286_IP)          REGPOP0(I286_IP)
 }  }
   
 I286_P _les_r16_ea(void) {                                      // C4:  les             REG16, EA  I286FN _les_r16_ea(void) {                                      // C4:  les             REG16, EA
   
         UINT    op;          UINT    op;
         UINT16  ad;          UINT16  ad;
Line 1985  I286_P _les_r16_ea(void) {     // C4: le Line 1985  I286_P _les_r16_ea(void) {     // C4: le
         }          }
 }  }
   
 I286_P _lds_r16_ea(void) {                                      // C5:  lds             REG16, EA  I286FN _lds_r16_ea(void) {                                      // C5:  lds             REG16, EA
   
         UINT    op;          UINT    op;
         UINT16  ad;          UINT16  ad;
Line 2005  I286_P _lds_r16_ea(void) {     // C5: ld Line 2005  I286_P _lds_r16_ea(void) {     // C5: ld
         }          }
 }  }
   
 I286_P _mov_ea8_data8(void) {                           // C6:  mov             EA8, DATA8  I286FN _mov_ea8_data8(void) {                           // C6:  mov             EA8, DATA8
   
         UINT    op;          UINT    op;
   
Line 2024  I286_P _mov_ea8_data8(void) {    // C6:  Line 2024  I286_P _mov_ea8_data8(void) {    // C6: 
         }          }
 }  }
   
 I286_P _mov_ea16_data16(void) {                         // C7:  mov             EA16, DATA16  I286FN _mov_ea16_data16(void) {                         // C7:  mov             EA16, DATA16
   
         UINT    op;          UINT    op;
   
Line 2043  I286_P _mov_ea16_data16(void) {    // C7 Line 2043  I286_P _mov_ea16_data16(void) {    // C7
         }          }
 }  }
   
 I286_P _enter(void) {                                           // C8:  enter   DATA16, DATA8  I286FN _enter(void) {                                           // C8:  enter   DATA16, DATA8
   
         UINT16  dimsize;          UINT16  dimsize;
         BYTE    level;          BYTE    level;
Line 2084  I286_P _enter(void) {      // C8: enter  Line 2084  I286_P _enter(void) {      // C8: enter 
         }          }
 }  }
   
 I286_P leave(void) {                                            // C9:  leave  I286FN leave(void) {                                            // C9:  leave
   
         I286_CLOCK(5)          I286_CLOCK(5)
         I286_SP = I286_BP;          I286_SP = I286_BP;
         REGPOP0(I286_BP)          REGPOP0(I286_BP)
 }  }
   
 I286_P _ret_far_data16(void) {                          // CA:  ret far DATA16  I286FN _ret_far_data16(void) {                          // CA:  ret far DATA16
   
         UINT16  ad;          UINT16  ad;
   
Line 2103  I286_P _ret_far_data16(void) {    // CA: Line 2103  I286_P _ret_far_data16(void) {    // CA:
         CS_BASE = I286_CS << 4;          CS_BASE = I286_CS << 4;
 }  }
   
 I286_P _ret_far(void) {                                         // CB:  ret far  I286FN _ret_far(void) {                                         // CB:  ret far
   
         I286_CLOCK(15)          I286_CLOCK(15)
         REGPOP0(I286_IP)          REGPOP0(I286_IP)
Line 2111  I286_P _ret_far(void) {      // CB: ret  Line 2111  I286_P _ret_far(void) {      // CB: ret 
         CS_BASE = I286_CS << 4;          CS_BASE = I286_CS << 4;
 }  }
   
 I286_P _int_03(void) {                                          // CC:  int             3  I286FN _int_03(void) {                                          // CC:  int             3
   
         I286_CLOCK(23)          I286_CLOCK(23)
         INT_NUM(3, I286_IP);          INT_NUM(3, I286_IP);
 }  }
   
 I286_P _int_data8(void) {                                       // CD:  int             DATA8  I286FN _int_data8(void) {                                       // CD:  int             DATA8
   
         UINT    vect;          UINT    vect;
   
Line 2126  I286_P _int_data8(void) {     // CD: int Line 2126  I286_P _int_data8(void) {     // CD: int
         INT_NUM(vect, I286_IP);          INT_NUM(vect, I286_IP);
 }  }
   
 I286_P _into(void) {                                            // CE:  into  I286FN _into(void) {                                            // CE:  into
   
         I286_CLOCK(4)          I286_CLOCK(4)
         if (I286_OV) {          if (I286_OV) {
Line 2135  I286_P _into(void) {      // CE: into Line 2135  I286_P _into(void) {      // CE: into
         }          }
 }  }
   
 I286_P _iret(void) {                                            // CF:  iret  I286FN _iret(void) {                                            // CF:  iret
   
         extirq_pop();          extirq_pop();
         I286_CLOCK(31)          I286_CLOCK(31)
Line 2149  I286_P _iret(void) {      // CF: iret Line 2149  I286_P _iret(void) {      // CF: iret
         I286IRQCHECKTERM          I286IRQCHECKTERM
 }  }
   
 I286_P _shift_ea8_1(void) {                             // D0:  shift EA8, 1  I286FN _shift_ea8_1(void) {                             // D0:  shift EA8, 1
   
         BYTE    *out;          BYTE    *out;
         UINT    op;          UINT    op;
Line 2172  I286_P _shift_ea8_1(void) {    // D0: sh Line 2172  I286_P _shift_ea8_1(void) {    // D0: sh
         sft_r8_table[(op >> 3) & 7](out);          sft_r8_table[(op >> 3) & 7](out);
 }  }
   
 I286_P _shift_ea16_1(void) {                    // D1:  shift EA16, 1  I286FN _shift_ea16_1(void) {                    // D1:  shift EA16, 1
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 2195  I286_P _shift_ea16_1(void) {   // D1: sh Line 2195  I286_P _shift_ea16_1(void) {   // D1: sh
         sft_r16_table[(op >> 3) & 7](out);          sft_r16_table[(op >> 3) & 7](out);
 }  }
   
 I286_P _shift_ea8_cl(void) {                    // D2:  shift EA8, cl  I286FN _shift_ea8_cl(void) {                    // D2:  shift EA8, cl
   
         BYTE    *out;          BYTE    *out;
         UINT    op;          UINT    op;
Line 2223  I286_P _shift_ea8_cl(void) {   // D2: sh Line 2223  I286_P _shift_ea8_cl(void) {   // D2: sh
         sft_r8cl_table[(op >> 3) & 7](out, cl);          sft_r8cl_table[(op >> 3) & 7](out, cl);
 }  }
   
 I286_P _shift_ea16_cl(void) {                   // D3:  shift EA16, cl  I286FN _shift_ea16_cl(void) {                   // D3:  shift EA16, cl
   
         UINT16  *out;          UINT16  *out;
         UINT    op;          UINT    op;
Line 2251  I286_P _shift_ea16_cl(void) {   // D3: s Line 2251  I286_P _shift_ea16_cl(void) {   // D3: s
         sft_r16cl_table[(op >> 3) & 7](out, cl);          sft_r16cl_table[(op >> 3) & 7](out, cl);
 }  }
   
 I286_P _aam(void) {                                                     // D4:  AAM  I286FN _aam(void) {                                                     // D4:  AAM
   
         BYTE    al;          BYTE    al;
         BYTE    div;          BYTE    div;
Line 2271  I286_P _aam(void) {       // D4: AAM Line 2271  I286_P _aam(void) {       // D4: AAM
         }          }
 }  }
   
 I286_P _aad(void) {                                                     // D5:  AAD  I286FN _aad(void) {                                                     // D5:  AAD
   
         BYTE    mul;          BYTE    mul;
   
Line 2283  I286_P _aad(void) {       // D5: AAD Line 2283  I286_P _aad(void) {       // D5: AAD
         I286_FLAGL |= szpcflag[I286_AL];          I286_FLAGL |= szpcflag[I286_AL];
 }  }
   
 I286_P _setalc(void) {                                          // D6:  setalc (80286)  I286FN _setalc(void) {                                          // D6:  setalc (80286)
   
         I286_AL = ((I286_FLAGL & C_FLAG)?0xff:0);          I286_AL = ((I286_FLAGL & C_FLAG)?0xff:0);
 }  }
   
 I286_P _xlat(void) {                                            // D7:  xlat  I286FN _xlat(void) {                                            // D7:  xlat
   
         I286_CLOCK(5)          I286_CLOCK(5)
         I286_AL = i286_memoryread(((I286_AL + I286_BX) & 0xffff) + DS_FIX);          I286_AL = i286_memoryread(((I286_AL + I286_BX) & 0xffff) + DS_FIX);
 }  }
   
 I286_P _esc(void) {                                                     // D8:  esc  I286FN _esc(void) {                                                     // D8:  esc
   
         UINT    op;          UINT    op;
   
Line 2305  I286_P _esc(void) {       // D8: esc Line 2305  I286_P _esc(void) {       // D8: esc
         }          }
 }  }
   
 I286_P _loopnz(void) {                                          // E0:  loopnz  I286FN _loopnz(void) {                                          // E0:  loopnz
   
         I286_CX--;          I286_CX--;
         if ((!I286_CX) || (I286_FLAGL & Z_FLAG)) JMPNOP(4) else JMPSHORT(8)          if ((!I286_CX) || (I286_FLAGL & Z_FLAG)) JMPNOP(4) else JMPSHORT(8)
 }  }
   
 I286_P _loopz(void) {                                           // E1:  loopz  I286FN _loopz(void) {                                           // E1:  loopz
   
         I286_CX--;          I286_CX--;
         if ((!I286_CX) || (!(I286_FLAGL & Z_FLAG))) JMPNOP(4) else JMPSHORT(8)          if ((!I286_CX) || (!(I286_FLAGL & Z_FLAG))) JMPNOP(4) else JMPSHORT(8)
 }  }
   
 I286_P _loop(void) {                                            // E2:  loop  I286FN _loop(void) {                                            // E2:  loop
   
         I286_CX--;          I286_CX--;
         if (!I286_CX) JMPNOP(4) else JMPSHORT(8)          if (!I286_CX) JMPNOP(4) else JMPSHORT(8)
 }  }
   
 I286_P _jcxz(void) {                                            // E3:  jcxz  I286FN _jcxz(void) {                                            // E3:  jcxz
   
         if (I286_CX) JMPNOP(4) else JMPSHORT(8)          if (I286_CX) JMPNOP(4) else JMPSHORT(8)
 }  }
   
 I286_P _in_al_data8(void) {                                     // E4:  in              al, DATA8  I286FN _in_al_data8(void) {                                     // E4:  in              al, DATA8
   
         UINT    port;          UINT    port;
   
Line 2339  I286_P _in_al_data8(void) {     // E4: i Line 2339  I286_P _in_al_data8(void) {     // E4: i
         i286reg.inport = 0;          i286reg.inport = 0;
 }  }
   
 I286_P _in_ax_data8(void) {                                     // E5:  in              ax, DATA8  I286FN _in_ax_data8(void) {                                     // E5:  in              ax, DATA8
   
         UINT    port;          UINT    port;
   
Line 2348  I286_P _in_ax_data8(void) {     // E5: i Line 2348  I286_P _in_ax_data8(void) {     // E5: i
         I286_AX = iocore_inp16(port);          I286_AX = iocore_inp16(port);
 }  }
   
 I286_P _out_data8_al(void) {                            // E6:  out             DATA8, al  I286FN _out_data8_al(void) {                            // E6:  out             DATA8, al
   
         UINT    port;          UINT    port;
   
Line 2357  I286_P _out_data8_al(void) {    // E6: o Line 2357  I286_P _out_data8_al(void) {    // E6: o
         iocore_out8(port, I286_AL);          iocore_out8(port, I286_AL);
 }  }
   
 I286_P _out_data8_ax(void) {                            // E7:  out             DATA8, ax  I286FN _out_data8_ax(void) {                            // E7:  out             DATA8, ax
   
         UINT    port;          UINT    port;
   
Line 2366  I286_P _out_data8_ax(void) {    // E7: o Line 2366  I286_P _out_data8_ax(void) {    // E7: o
         iocore_out16(port, I286_AX);          iocore_out16(port, I286_AX);
 }  }
   
 I286_P _call_near(void) {                                       // E8:  call near  I286FN _call_near(void) {                                       // E8:  call near
   
         UINT16  ad;          UINT16  ad;
   
Line 2376  I286_P _call_near(void) {     // E8: cal Line 2376  I286_P _call_near(void) {     // E8: cal
         I286_IP += ad;          I286_IP += ad;
 }  }
   
 I286_P _jmp_near(void) {                                        // E9:  jmp near  I286FN _jmp_near(void) {                                        // E9:  jmp near
   
         UINT16  ad;          UINT16  ad;
   
Line 2385  I286_P _jmp_near(void) {     // E9: jmp  Line 2385  I286_P _jmp_near(void) {     // E9: jmp 
         I286_IP += ad;          I286_IP += ad;
 }  }
   
 I286_P _jmp_far(void) {                                         // EA:  jmp far  I286FN _jmp_far(void) {                                         // EA:  jmp far
   
         UINT16  ad;          UINT16  ad;
   
Line 2396  I286_P _jmp_far(void) {      // EA: jmp  Line 2396  I286_P _jmp_far(void) {      // EA: jmp 
         I286_IP = ad;          I286_IP = ad;
 }  }
   
 I286_P _jmp_short(void) {                                       // EB:  jmp short  I286FN _jmp_short(void) {                                       // EB:  jmp short
   
         UINT16  ad;          UINT16  ad;
   
Line 2405  I286_P _jmp_short(void) {     // EB: jmp Line 2405  I286_P _jmp_short(void) {     // EB: jmp
         I286_IP += ad;          I286_IP += ad;
 }  }
   
 I286_P _in_al_dx(void) {                                        // EC:  in              al, dx  I286FN _in_al_dx(void) {                                        // EC:  in              al, dx
   
         I286_CLOCK(5)          I286_CLOCK(5)
         I286_AL = iocore_inp8(I286_DX);          I286_AL = iocore_inp8(I286_DX);
 }  }
   
 I286_P _in_ax_dx(void) {                                        // ED:  in              ax, dx  I286FN _in_ax_dx(void) {                                        // ED:  in              ax, dx
   
         I286_CLOCK(5)          I286_CLOCK(5)
         I286_AX = iocore_inp16(I286_DX);          I286_AX = iocore_inp16(I286_DX);
 }  }
   
 I286_P _out_dx_al(void) {                                       // EE:  out             dx, al  I286FN _out_dx_al(void) {                                       // EE:  out             dx, al
   
         I286_CLOCK(3)          I286_CLOCK(3)
         iocore_out8(I286_DX, I286_AL);          iocore_out8(I286_DX, I286_AL);
 }  }
   
 I286_P _out_dx_ax(void) {                                       // EF:  out             dx, ax  I286FN _out_dx_ax(void) {                                       // EF:  out             dx, ax
   
         I286_CLOCK(3)          I286_CLOCK(3)
         iocore_out16(I286_DX, I286_AX);          iocore_out16(I286_DX, I286_AX);
 }  }
   
 I286_P _lock(void) {                                            // F0:  lock  I286FN _lock(void) {                                            // F0:  lock
                                                                                         // F1:  lock                                                                                          // F1:  lock
         I286_CLOCK(2)          I286_CLOCK(2)
 }  }
   
 I286_P _repne(void) {                                           // F2:  repne  I286FN _repne(void) {                                           // F2:  repne
   
         i286reg.prefix++;          i286reg.prefix++;
         if (i286reg.prefix < MAX_PREFIX) {          if (i286reg.prefix < MAX_PREFIX) {
Line 2448  I286_P _repne(void) {      // F2: repne Line 2448  I286_P _repne(void) {      // F2: repne
         }          }
 }  }
   
 I286_P _repe(void) {                                            // F3:  repe  I286FN _repe(void) {                                            // F3:  repe
   
         i286reg.prefix++;          i286reg.prefix++;
         if (i286reg.prefix < MAX_PREFIX) {          if (i286reg.prefix < MAX_PREFIX) {
Line 2462  I286_P _repe(void) {      // F3: repe Line 2462  I286_P _repe(void) {      // F3: repe
         }          }
 }  }
   
 I286_P _hlt(void) {                                                     // F4:  hlt  I286FN _hlt(void) {                                                     // F4:  hlt
   
         nevent.remainclock = -1;          nevent.remainclock = -1;
         I286_IP--;          I286_IP--;
 }  }
   
 I286_P _cmc(void) {                                                     // F5:  cmc  I286FN _cmc(void) {                                                     // F5:  cmc
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAGL ^= C_FLAG;          I286_FLAGL ^= C_FLAG;
 }  }
   
 I286_P _ope0xf6(void) {                                         // F6:    I286FN _ope0xf6(void) {                                         // F6:  
   
         UINT    op;          UINT    op;
   
Line 2482  I286_P _ope0xf6(void) {      // F6:  Line 2482  I286_P _ope0xf6(void) {      // F6: 
         c_ope0xf6_table[(op >> 3) & 7](op);          c_ope0xf6_table[(op >> 3) & 7](op);
 }  }
   
 I286_P _ope0xf7(void) {                                         // F7:    I286FN _ope0xf7(void) {                                         // F7:  
   
         UINT    op;          UINT    op;
   
Line 2490  I286_P _ope0xf7(void) {      // F7:  Line 2490  I286_P _ope0xf7(void) {      // F7: 
         c_ope0xf7_table[(op >> 3) & 7](op);          c_ope0xf7_table[(op >> 3) & 7](op);
 }  }
   
 I286_P _clc(void) {                                                     // F8:  clc  I286FN _clc(void) {                                                     // F8:  clc
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAGL &= ~C_FLAG;          I286_FLAGL &= ~C_FLAG;
 }  }
   
 I286_P _stc(void) {                                                     // F9:  stc  I286FN _stc(void) {                                                     // F9:  stc
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAGL |= C_FLAG;          I286_FLAGL |= C_FLAG;
 }  }
   
 I286_P _cli(void) {                                                     // FA:  cli  I286FN _cli(void) {                                                     // FA:  cli
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAG &= ~I_FLAG;          I286_FLAG &= ~I_FLAG;
         I286_TRAP = 0;          I286_TRAP = 0;
 }  }
   
 I286_P _sti(void) {                                                     // FB:  sti  I286FN _sti(void) {                                                     // FB:  sti
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAG |= I_FLAG;          I286_FLAG |= I_FLAG;
Line 2518  I286_P _sti(void) {       // FB: sti Line 2518  I286_P _sti(void) {       // FB: sti
         REMAIN_ADJUST(1)          REMAIN_ADJUST(1)
 }  }
   
 I286_P _cld(void) {                                                     // FC:  cld  I286FN _cld(void) {                                                     // FC:  cld
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAG &= ~D_FLAG;          I286_FLAG &= ~D_FLAG;
 }  }
   
 I286_P _std(void) {                                                     // FD:  std  I286FN _std(void) {                                                     // FD:  std
   
         I286_CLOCK(2)          I286_CLOCK(2)
         I286_FLAG |= D_FLAG;          I286_FLAG |= D_FLAG;
 }  }
   
 I286_P _ope0xfe(void) {                                         // FE:    I286FN _ope0xfe(void) {                                         // FE:  
   
         UINT    op;          UINT    op;
   
Line 2538  I286_P _ope0xfe(void) {      // FE:  Line 2538  I286_P _ope0xfe(void) {      // FE: 
         c_ope0xfe_table[(op >> 3) & 1](op);          c_ope0xfe_table[(op >> 3) & 1](op);
 }  }
   
 I286_P _ope0xff(void) {                                         // FF:    I286FN _ope0xff(void) {                                         // FF:  
   
         UINT    op;          UINT    op;
   
Line 2826  const I286OP i286op[] = { Line 2826  const I286OP i286op[] = {
   
 // ----------------------------------------------------------------- repe  // ----------------------------------------------------------------- repe
   
 I286_P _repe_segprefix_es(void) {  I286FN _repe_segprefix_es(void) {
   
         DS_FIX = ES_BASE;          DS_FIX = ES_BASE;
         SS_FIX = ES_BASE;          SS_FIX = ES_BASE;
Line 2843  I286_P _repe_segprefix_es(void) { Line 2843  I286_P _repe_segprefix_es(void) {
         }          }
 }  }
   
 I286_P _repe_segprefix_cs(void) {  I286FN _repe_segprefix_cs(void) {
   
         DS_FIX = CS_BASE;          DS_FIX = CS_BASE;
         SS_FIX = CS_BASE;          SS_FIX = CS_BASE;
Line 2860  I286_P _repe_segprefix_cs(void) { Line 2860  I286_P _repe_segprefix_cs(void) {
         }          }
 }  }
   
 I286_P _repe_segprefix_ss(void) {  I286FN _repe_segprefix_ss(void) {
   
         DS_FIX = SS_BASE;          DS_FIX = SS_BASE;
         SS_FIX = SS_BASE;          SS_FIX = SS_BASE;
Line 2877  I286_P _repe_segprefix_ss(void) { Line 2877  I286_P _repe_segprefix_ss(void) {
         }          }
 }  }
   
 I286_P _repe_segprefix_ds(void) {  I286FN _repe_segprefix_ds(void) {
   
         DS_FIX = DS_BASE;          DS_FIX = DS_BASE;
         SS_FIX = DS_BASE;          SS_FIX = DS_BASE;
Line 3171  const I286OP i286op_repe[] = { Line 3171  const I286OP i286op_repe[] = {
   
 // ----------------------------------------------------------------- repne  // ----------------------------------------------------------------- repne
   
 I286_P _repne_segprefix_es(void) {  I286FN _repne_segprefix_es(void) {
   
         DS_FIX = ES_BASE;          DS_FIX = ES_BASE;
         SS_FIX = ES_BASE;          SS_FIX = ES_BASE;
Line 3188  I286_P _repne_segprefix_es(void) { Line 3188  I286_P _repne_segprefix_es(void) {
         }          }
 }  }
   
 I286_P _repne_segprefix_cs(void) {  I286FN _repne_segprefix_cs(void) {
   
         DS_FIX = CS_BASE;          DS_FIX = CS_BASE;
         SS_FIX = CS_BASE;          SS_FIX = CS_BASE;
Line 3205  I286_P _repne_segprefix_cs(void) { Line 3205  I286_P _repne_segprefix_cs(void) {
         }          }
 }  }
   
 I286_P _repne_segprefix_ss(void) {  I286FN _repne_segprefix_ss(void) {
   
         DS_FIX = SS_BASE;          DS_FIX = SS_BASE;
         SS_FIX = SS_BASE;          SS_FIX = SS_BASE;
Line 3222  I286_P _repne_segprefix_ss(void) { Line 3222  I286_P _repne_segprefix_ss(void) {
         }          }
 }  }
   
 I286_P _repne_segprefix_ds(void) {  I286FN _repne_segprefix_ds(void) {
   
         DS_FIX = DS_BASE;          DS_FIX = DS_BASE;
         SS_FIX = DS_BASE;          SS_FIX = DS_BASE;

Removed from v.1.4  
changed lines
  Added in v.1.5


RetroPC.NET-CVS <cvs@retropc.net>