Diff for /np2/i286c/i286c_rp.c between versions 1.9 and 1.10

version 1.9, 2003/12/08 00:55:31 version 1.10, 2003/12/09 15:49:14
Line 70  I286EXT i286c_rep_outsw(void) { Line 70  I286EXT i286c_rep_outsw(void) {
   
 // ---------------------------------------------------------------------- movs  // ---------------------------------------------------------------------- movs
   
   #if 1
   I286EXT i286c_rep_movsb(void) {
   
           UINT16  r_cx;
           int             stp;
           UINT16  r_si;
           UINT16  r_di;
   
           I286_WORKCLOCK(5);
           r_cx = I286_CX;
           if (r_cx) {
                   stp = STRING_DIR;
                   r_si = I286_SI;
                   r_di = I286_DI;
                   while(1) {
                           REG8 dat = i286_memoryread(DS_FIX + r_si);
                           i286_memorywrite(ES_BASE + r_di, dat);
                           r_si += stp;
                           r_di += stp;
                           I286_WORKCLOCK(4);
                           r_cx--;
                           if (!r_cx) {
                                   break;
                           }
                           if (I286_REMCLOCK <= 0) {
                                   I286_IP -= I286_PREFIX + 1;
                                   break;
                           }
                   }
                   I286_CX = r_cx;
                   I286_SI = r_si;
                   I286_DI = r_di;
           }
   }
   
   I286EXT i286c_rep_movsw(void) {
   
           UINT16  r_cx;
           int             stp;
           UINT16  r_si;
           UINT16  r_di;
   
           I286_WORKCLOCK(5);
           r_cx = I286_CX;
           if (r_cx) {
                   stp = STRING_DIRx2;
                   r_si = I286_SI;
                   r_di = I286_DI;
                   while(1) {
                           REG16 dat = i286_memoryread_w(DS_FIX + r_si);
                           i286_memorywrite_w(ES_BASE + r_di, dat);
                           r_si += stp;
                           r_di += stp;
                           I286_WORKCLOCK(4);
                           r_cx--;
                           if (!r_cx) {
                                   break;
                           }
                           if (I286_REMCLOCK <= 0) {
                                   I286_IP -= I286_PREFIX + 1;
                                   break;
                           }
                   }
                   I286_CX = r_cx;
                   I286_SI = r_si;
                   I286_DI = r_di;
           }
   }
   #else
 I286EXT i286c_rep_movsb(void) {  I286EXT i286c_rep_movsb(void) {
   
         I286_WORKCLOCK(5);          I286_WORKCLOCK(5);
Line 115  I286EXT i286c_rep_movsw(void) { Line 184  I286EXT i286c_rep_movsw(void) {
                 }                  }
         }          }
 }  }
   #endif
   
   
 // ---------------------------------------------------------------------- lods  // ---------------------------------------------------------------------- lods

Removed from v.1.9  
changed lines
  Added in v.1.10


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