Diff for /np2/i286c/i286c_fe.c between versions 1.6 and 1.7

version 1.6, 2003/11/21 06:51:11 version 1.7, 2003/11/24 09:14:01
Line 25  I286_F6 _inc_ea8(UINT op) { Line 25  I286_F6 _inc_ea8(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(7);                  I286_WORKCLOCK(7);
                 madr = c_calc_ea_dst[op]();                  madr = CALC_EA(op);
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         BYTE value = i286_memoryread(madr);                          BYTE value = i286_memoryread(madr);
                         BYTE_INC(value)                          BYTE_INC(value)
Line 48  I286_F6 _dec_ea8(UINT op) { Line 48  I286_F6 _dec_ea8(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(7);                  I286_WORKCLOCK(7);
                 madr = c_calc_ea_dst[op]();                  madr = CALC_EA(op);
                 if (madr >= I286_MEMWRITEMAX) {                  if (madr >= I286_MEMWRITEMAX) {
                         BYTE value = i286_memoryread(madr);                          BYTE value = i286_memoryread(madr);
                         BYTE_DEC(value)                          BYTE_DEC(value)
Line 71  I286_F6 _inc_ea16(UINT op) { Line 71  I286_F6 _inc_ea16(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(7);                  I286_WORKCLOCK(7);
                 madr = c_calc_ea_dst[op]();                  madr = CALC_EA(op);
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         UINT16 value = i286_memoryread_w(madr);                          UINT16 value = i286_memoryread_w(madr);
                         WORD_INC(value)                          WORD_INC(value)
Line 94  I286_F6 _dec_ea16(UINT op) { Line 94  I286_F6 _dec_ea16(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(7);                  I286_WORKCLOCK(7);
                 madr = c_calc_ea_dst[op]();                  madr = CALC_EA(op);
                 if (INHIBIT_WORDP(madr)) {                  if (INHIBIT_WORDP(madr)) {
                         UINT16 value = i286_memoryread_w(madr);                          UINT16 value = i286_memoryread_w(madr);
                         WORD_DEC(value)                          WORD_DEC(value)
Line 116  I286_F6 _call_ea16(UINT op) { Line 116  I286_F6 _call_ea16(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(11);                  I286_WORKCLOCK(11);
                 src = i286_memoryread_w(c_calc_ea_dst[op]());                  src = i286_memoryread_w(CALC_EA(op));
         }          }
         REGPUSH0(I286_IP);          REGPUSH0(I286_IP);
         I286_IP = src;          I286_IP = src;
Line 124  I286_F6 _call_ea16(UINT op) { Line 124  I286_F6 _call_ea16(UINT op) {
   
 I286_F6 _call_far_ea16(UINT op) {  I286_F6 _call_far_ea16(UINT op) {
   
           UINT32  seg;
           UINT16  ad;
   
         I286_WORKCLOCK(16);          I286_WORKCLOCK(16);
         if (op < 0xc0) {          if (op < 0xc0) {
                 UINT16 ad = c_get_ea[op]();                  ad = GET_EA(op, &seg);
                 REGPUSH0(I286_CS)                                                               // ToDo                  REGPUSH0(I286_CS)                                                               // ToDo
                 REGPUSH0(I286_IP)                  REGPUSH0(I286_IP)
                 I286_IP = i286_memoryread_w(ad + EA_FIX);                  I286_IP = i286_memoryread_w(seg + ad);
                 ad += 2;                  ad += 2;
                 I286_CS = i286_memoryread_w(ad + EA_FIX);                  I286_CS = i286_memoryread_w(seg + ad);
                 CS_BASE = I286_CS << 4;                  CS_BASE = I286_CS << 4;
         }          }
         else {          else {
Line 147  I286_F6 _jmp_ea16(UINT op) { Line 150  I286_F6 _jmp_ea16(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(11);                  I286_WORKCLOCK(11);
                 I286_IP = i286_memoryread_w(c_calc_ea_dst[op]());                  I286_IP = i286_memoryread_w(CALC_EA(op));
         }          }
 }  }
   
 I286_F6 _jmp_far_ea16(UINT op) {  I286_F6 _jmp_far_ea16(UINT op) {
   
           UINT32  seg;
           UINT16  ad;
   
         I286_WORKCLOCK(11);          I286_WORKCLOCK(11);
         if (op < 0xc0) {          if (op < 0xc0) {
                 UINT16 ad = c_get_ea[op]();                  ad = GET_EA(op, &seg);
                 I286_IP = i286_memoryread_w(ad + EA_FIX);                  I286_IP = i286_memoryread_w(seg + ad);
                 ad += 2;                  ad += 2;
                 I286_CS = i286_memoryread_w(ad + EA_FIX);                  I286_CS = i286_memoryread_w(seg + ad);
                 CS_BASE = I286_CS << 4;                  CS_BASE = I286_CS << 4;
         }          }
         else {          else {
Line 176  I286_F6 _push_ea16(UINT op) { Line 182  I286_F6 _push_ea16(UINT op) {
         }          }
         else {          else {
                 I286_WORKCLOCK(5);                  I286_WORKCLOCK(5);
                 src = i286_memoryread_w(c_calc_ea_dst[op]());                  src = i286_memoryread_w(CALC_EA(op));
         }          }
         REGPUSH0(src);          REGPUSH0(src);
 }  }
Line 191  I286_F6 _pop_ea16(UINT op) { Line 197  I286_F6 _pop_ea16(UINT op) {
                 *(REG16_B20(op)) = src;                  *(REG16_B20(op)) = src;
         }          }
         else {          else {
                 i286_memorywrite_w(c_calc_ea_dst[op](), src);                  i286_memorywrite_w(CALC_EA(op), src);
         }          }
 }  }
   

Removed from v.1.6  
changed lines
  Added in v.1.7


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