Diff for /np2/i286c/i286c.c between versions 1.8 and 1.9

version 1.8, 2003/11/24 09:14:01 version 1.9, 2003/11/28 08:01:32
Line 48  const BYTE iflags[256] = {     // Z_FLAG Line 48  const BYTE iflags[256] = {     // Z_FLAG
   
 // ----  // ----
   
         BYTE    szpcflag[0x200];          BYTE    _szpcflag8[0x200];
   
 #if !defined(MEMOPTIMIZE)  #if !defined(MEMOPTIMIZE)
         BYTE    szpflag_w[0x10000];          BYTE    _szpflag16[0x10000];
 #endif  #endif
   
 #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)  #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)
Line 82  void i286_initialize(void) { Line 82  void i286_initialize(void) {
                 if (i & 0x80) {                  if (i & 0x80) {
                         f |= S_FLAG;                          f |= S_FLAG;
                 }                  }
                 szpcflag[i+0x000] = f;                  _szpcflag8[i+0x000] = f;
                 szpcflag[i+0x100] = f | C_FLAG;                  _szpcflag8[i+0x100] = f | C_FLAG;
         }          }
   
 #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)  #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)
Line 124  void i286_initialize(void) { Line 124  void i286_initialize(void) {
                 if (i & 0x8000) {                  if (i & 0x8000) {
                         f |= S_FLAG;                          f |= S_FLAG;
                 }                  }
                 szpflag_w[i] = f;                  _szpflag16[i] = f;
         }          }
 #endif  #endif
 #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)  #if !defined(MEMOPTIMIZE) || (MEMOPTIMIZE < 2)
Line 144  void i286_reset(void) { Line 144  void i286_reset(void) {
 void i286_resetprefetch(void) {  void i286_resetprefetch(void) {
 }  }
   
 void CPUCALL i286_intnum(UINT vect, UINT16 IP) {  void CPUCALL i286_intnum(UINT vect, UINT IP) {
   
 const BYTE      *ptr;  const BYTE      *ptr;
   
         REGPUSH0(REAL_FLAGREG)          REGPUSH0(REAL_FLAGREG)
         REGPUSH0(I286_CS)          REGPUSH0(I286_CS)
         REGPUSH0(IP)          REGPUSH0((UINT16)IP)
   
         I286_FLAG &= ~(T_FLAG | I_FLAG);          I286_FLAG &= ~(T_FLAG | I_FLAG);
         I286_TRAP = 0;          I286_TRAP = 0;
Line 231  void i286_step(void) { Line 231  void i286_step(void) {
         dmap_i286();          dmap_i286();
 }  }
   
   
   // ---- test
   
   #if defined(I286C_TEST)
   BYTE BYTESZPF(UINT r) {
   
           if (r & (~0xff)) {
                   TRACEOUT(("BYTESZPF bound error: %x", r));
           }
           return(_szpcflag8[r & 0xff]);
   }
   
   BYTE BYTESZPCF(UINT r) {
   
           if (r & (~0x1ff)) {
                   TRACEOUT(("BYTESZPCF bound error: %x", r));
           }
           return(_szpcflag8[r & 0x1ff]);
   }
   
   BYTE WORDSZPF(UINT32 r) {
   
           BYTE    f1;
           BYTE    f2;
   
           if (r & (~0xffff)) {
                   TRACEOUT(("WORDSZPF bound error: %x", r));
           }
           f1 = _szpflag16[r & 0xffff];
           f2 = _szpcflag8[r & 0xff] & P_FLAG;
           f2 += (r)?0:Z_FLAG;
           f2 += (r >> 8) & S_FLAG;
           if (f1 != f2) {
                   TRACEOUT(("word flag error: %.2x %.2x", f1, f2));
           }
           return(f1);
   }
   
   BYTE WORDSZPCF(UINT32 r) {
   
           BYTE    f1;
           BYTE    f2;
   
           if ((r & 0xffff0000) && (!(r & 0x00010000))) {
                   TRACEOUT(("WORDSZPCF bound error: %x", r));
           }
           f1 = (r >> 16) & 1;
           f1 += _szpflag16[LOW16(r)];
   
           f2 = _szpcflag8[r & 0xff] & P_FLAG;
           f2 += (LOW16(r))?0:Z_FLAG;
           f2 += (r >> 8) & S_FLAG;
           f2 += (r >> 16) & 1;
   
           if (f1 != f2) {
                   TRACEOUT(("word flag error: %.2x %.2x", f1, f2));
           }
           return(f1);
   }
   #endif
   

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


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