Diff for /np2/i286c/i286c.mcr between versions 1.10 and 1.11

version 1.10, 2003/11/29 03:38:26 version 1.11, 2003/11/30 11:20:55
Line 1 Line 1
   
   #if defined(ARM) && defined(BYTESEX_LITTLE)
   #define INHIBIT_WORDP(m)        (((m) & 1) || ((m) >= 0xa0000))
   #else
 #define INHIBIT_WORDP(m)        (1)  #define INHIBIT_WORDP(m)        (1)
   #endif
   
 #define __CBW(src)              (UINT16)((char)(src))  #define __CBW(src)              (UINT16)((char)(src))
 #define __CBD(src)              ((char)(src))  #define __CBD(src)              ((char)(src))
Line 404  extern UINT calc_a(UINT op, UINT32 *seg) Line 408  extern UINT calc_a(UINT op, UINT32 *seg)
         }          }
   
   
 #define REGPUSH(reg, clock)     {                                                                               \  // ---- stack
                 I286_WORKCLOCK(clock);                                                                          \  
                 I286_SP -= 2;                                                                                           \  
                 i286_memorywrite_w(I286_SP + SS_BASE, reg);                                     \  
         }  
   
   
 #define REGPUSH0(reg)                                                                                           \  #define REGPUSH0(reg)                                                                                           \
                 I286_SP -= 2;                                                                                           \                  I286_SP -= 2;                                                                                           \
                 i286_memorywrite_w(I286_SP + SS_BASE, reg);                  i286_memorywrite_w(I286_SP + SS_BASE, reg);
   
   #define REGPOP0(reg)                                                                                            \
                   reg = i286_memoryread_w(I286_SP + SS_BASE);                                     \
                   I286_SP += 2;
   
 #define SP_PUSH(reg, clock)     {                                                                               \  #if defined(ARM) && defined(BYTESEX_LITTLE)
                 UINT16 sp = reg;                                                                                        \  
   #define REGPUSH(reg, clock)     {                                                                               \
                   UINT32 addr;                                                                                            \
                   I286_WORKCLOCK(clock);                                                                          \
                 I286_SP -= 2;                                                                                           \                  I286_SP -= 2;                                                                                           \
                 i286_memorywrite_w(I286_SP + SS_BASE, sp);                                      \                  addr = I286_SP + SS_BASE;                                                                       \
                   if (INHIBIT_WORDP(addr)) {                                                                      \
                           i286_memorywrite_w(addr, reg);                                                  \
                   }                                                                                                                       \
                   else {                                                                                                          \
                           *(UINT16 *)(mem + addr) = (reg);                                                \
                   }                                                                                                                       \
           }
   
   #define REGPOP(reg, clock) {                                                                            \
                   UINT32 addr;                                                                                            \
                 I286_WORKCLOCK(clock);                                                                          \                  I286_WORKCLOCK(clock);                                                                          \
                   addr = I286_SP + SS_BASE;                                                                       \
                   if (INHIBIT_WORDP(addr)) {                                                                      \
                           (reg) = i286_memoryread_w(addr);                                                \
                   }                                                                                                                       \
                   else {                                                                                                          \
                           (reg) = *(UINT16 *)(mem + addr);                                                \
                   }                                                                                                                       \
                   I286_SP += 2;                                                                                           \
         }          }
   
   #else
   
   #define REGPUSH(reg, clock)     {                                                                               \
                   I286_WORKCLOCK(clock);                                                                          \
                   I286_SP -= 2;                                                                                           \
                   i286_memorywrite_w(I286_SP + SS_BASE, reg);                                     \
           }
   
 #define REGPOP(reg, clock) {                                                                            \  #define REGPOP(reg, clock) {                                                                            \
                 I286_WORKCLOCK(clock);                                                                          \                  I286_WORKCLOCK(clock);                                                                          \
Line 430  extern UINT calc_a(UINT op, UINT32 *seg) Line 460  extern UINT calc_a(UINT op, UINT32 *seg)
                 I286_SP += 2;                                                                                           \                  I286_SP += 2;                                                                                           \
         }          }
   
 #define SP_POP(reg, clock) {                                                                            \  #endif
   
   #define SP_PUSH(reg, clock)     {                                                                               \
                   REG16 sp = (reg);                                                                                       \
                   I286_SP -= 2;                                                                                           \
                   i286_memorywrite_w(I286_SP + SS_BASE, sp);                                      \
                 I286_WORKCLOCK(clock);                                                                          \                  I286_WORKCLOCK(clock);                                                                          \
                 reg = i286_memoryread_w(I286_SP + SS_BASE);                                     \  
         }          }
   
   #define SP_POP(reg, clock) {                                                                            \
 #define REGPOP0(reg)                                                                                            \                  I286_WORKCLOCK(clock);                                                                          \
                 reg = i286_memoryread_w(I286_SP + SS_BASE);                                     \                  reg = i286_memoryread_w(I286_SP + SS_BASE);                                     \
                 I286_SP += 2;          }
   
   
   
 #define JMPSHORT(clock) {                                                                                       \  #define JMPSHORT(clock) {                                                                                       \

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


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