Diff for /np2/i386c/ia32/cpu.h between versions 1.13 and 1.16

version 1.13, 2004/02/04 13:24:35 version 1.16, 2004/02/13 14:52:35
Line 149  typedef struct { Line 149  typedef struct {
   
 typedef struct {  typedef struct {
         descriptor_t    sreg[CPU_SEGREG_NUM];          descriptor_t    sreg[CPU_SEGREG_NUM];
         descriptor_t    ldtr_desc;          descriptor_t    ldtr;
         descriptor_t    tr_desc;          descriptor_t    tr;
   
         UINT32          adrsmask;          UINT32          adrsmask;
         DWORD           ovflag;          DWORD           ovflag;
Line 158  typedef struct { Line 158  typedef struct {
         BYTE            ss_32;          BYTE            ss_32;
         BYTE            resetreq;          BYTE            resetreq;
         BYTE            trap;          BYTE            trap;
         BYTE            _dummy;  
   
         BYTE            cpl;          BYTE            page_wp;
   
         BYTE            protected_mode;          BYTE            protected_mode;
         BYTE            paging;          BYTE            paging;
         BYTE            vm86;          BYTE            vm86;
           BYTE            user_mode;
   
           BYTE            hlt;
           BYTE            pad[3];
   
         DWORD           pde_base;          DWORD           pde_base;
   
Line 229  extern I386CORE  i386core; Line 233  extern I386CORE  i386core;
 #define CPU_EXTMEMSIZE  i386core.e.extsize  #define CPU_EXTMEMSIZE  i386core.e.extsize
 #define CPU_INPADRS     i386core.e.inport  #define CPU_INPADRS     i386core.e.inport
   
 extern BYTE             iflags[];  
 extern sigjmp_buf       exec_1step_jmpbuf;  extern sigjmp_buf       exec_1step_jmpbuf;
   
   
Line 417  void set_eflags(DWORD new_flags, DWORD m Line 420  void set_eflags(DWORD new_flags, DWORD m
 #define CPU_STAT_SS32           CPU_STATSAVE.cpu_stat.ss_32  #define CPU_STAT_SS32           CPU_STATSAVE.cpu_stat.ss_32
 #define CPU_STAT_RESETREQ       CPU_STATSAVE.cpu_stat.resetreq  #define CPU_STAT_RESETREQ       CPU_STATSAVE.cpu_stat.resetreq
 #define CPU_STAT_PM             CPU_STATSAVE.cpu_stat.protected_mode  #define CPU_STAT_PM             CPU_STATSAVE.cpu_stat.protected_mode
 #define CPU_STAT_VM86           CPU_STATSAVE.cpu_stat.vm86  
 #define CPU_STAT_PAGING         CPU_STATSAVE.cpu_stat.paging  #define CPU_STAT_PAGING         CPU_STATSAVE.cpu_stat.paging
 #define CPU_STAT_CPL            CPU_STATSAVE.cpu_stat.cpl  #define CPU_STAT_VM86           CPU_STATSAVE.cpu_stat.vm86
   #define CPU_STAT_WP             CPU_STATSAVE.cpu_stat.page_wp
   #define CPU_STAT_CPL            CPU_STAT_SREG(CPU_CS_INDEX).rpl
   #define CPU_STAT_USER_MODE      CPU_STATSAVE.cpu_stat.user_mode
 #define CPU_STAT_PDE_BASE       CPU_STATSAVE.cpu_stat.pde_base  #define CPU_STAT_PDE_BASE       CPU_STATSAVE.cpu_stat.pde_base
   
   #define CPU_STAT_HLT            CPU_STATSAVE.cpu_stat.hlt
   
 #define CPU_STAT_IOPL           ((CPU_EFLAG & IOPL_FLAG) >> 12)  #define CPU_STAT_IOPL           ((CPU_EFLAG & IOPL_FLAG) >> 12)
 #define CPU_IOPL0               0  #define CPU_IOPL0               0
 #define CPU_IOPL1               1  #define CPU_IOPL1               1
Line 431  void set_eflags(DWORD new_flags, DWORD m Line 438  void set_eflags(DWORD new_flags, DWORD m
 #define CPU_STAT_IOADDR         CPU_STATSAVE.cpu_stat.ioaddr  #define CPU_STAT_IOADDR         CPU_STATSAVE.cpu_stat.ioaddr
 #define CPU_STAT_IOLIMIT        CPU_STATSAVE.cpu_stat.iolimit  #define CPU_STAT_IOLIMIT        CPU_STATSAVE.cpu_stat.iolimit
   
 #define CPU_STAT_NERROR         CPU_STATSAVE.cpu_stat.nerror  #define CPU_STAT_PREV_EXCEPTION         CPU_STATSAVE.cpu_stat.prev_exception
 #define CPU_STAT_PREV_EXCEPTION CPU_STATSAVE.cpu_stat.prev_exception  #define CPU_STAT_EXCEPTION_COUNTER              CPU_STATSAVE.cpu_stat.nerror
   #define CPU_STAT_EXCEPTION_COUNTER_INC()        CPU_STATSAVE.cpu_stat.nerror++
   #define CPU_STAT_EXCEPTION_COUNTER_CLEAR()      CPU_STATSAVE.cpu_stat.nerror = 0
   
 #define CPU_MODE_SUPERVISER     0  #define CPU_MODE_SUPERVISER     0
 #define CPU_MODE_USER           1  #define CPU_MODE_USER           1
 #define CPU_IS_USER_MODE()      ((CPU_STAT_CPL == 3) ? CPU_MODE_USER : CPU_MODE_SUPERVISER)  #define CPU_SET_CPL(cpl) \
   do { \
           BYTE __t = (cpl) & 3; \
           CPU_STAT_CPL = __t; \
           CPU_STAT_USER_MODE = (__t == 3) ? CPU_MODE_USER : CPU_MODE_SUPERVISER; \
   } while (/*CONSTCOND*/ 0)
   
 #define CPU_CLI         do { CPU_FLAG &= ~I_FLAG;       \  #define CPU_CLI         do { CPU_FLAG &= ~I_FLAG;       \
                                         CPU_TRAP = 0; } while (/*CONSTCOND*/ 0)                                          CPU_TRAP = 0; } while (/*CONSTCOND*/ 0)
Line 448  void set_eflags(DWORD new_flags, DWORD m Line 462  void set_eflags(DWORD new_flags, DWORD m
 #define CPU_IDTR_LIMIT  CPU_STATSAVE.cpu_sysregs.idtr_limit  #define CPU_IDTR_LIMIT  CPU_STATSAVE.cpu_sysregs.idtr_limit
 #define CPU_IDTR_BASE   CPU_STATSAVE.cpu_sysregs.idtr_base  #define CPU_IDTR_BASE   CPU_STATSAVE.cpu_sysregs.idtr_base
 #define CPU_LDTR        CPU_STATSAVE.cpu_sysregs.ldtr  #define CPU_LDTR        CPU_STATSAVE.cpu_sysregs.ldtr
 #define CPU_LDTR_DESC   CPU_STATSAVE.cpu_stat.ldtr_desc  #define CPU_LDTR_DESC   CPU_STATSAVE.cpu_stat.ldtr
 #define CPU_LDTR_BASE   CPU_STATSAVE.cpu_stat.ldtr_desc.u.seg.segbase  #define CPU_LDTR_BASE   CPU_STATSAVE.cpu_stat.ldtr.u.seg.segbase
 #define CPU_LDTR_END    CPU_STATSAVE.cpu_stat.ldtr_desc.u.seg.segend  #define CPU_LDTR_END    CPU_STATSAVE.cpu_stat.ldtr.u.seg.segend
 #define CPU_LDTR_LIMIT  CPU_STATSAVE.cpu_stat.ldtr_desc.u.seg.limit  #define CPU_LDTR_LIMIT  CPU_STATSAVE.cpu_stat.ldtr.u.seg.limit
 #define CPU_TR          CPU_STATSAVE.cpu_sysregs.tr  #define CPU_TR          CPU_STATSAVE.cpu_sysregs.tr
 #define CPU_TR_DESC     CPU_STATSAVE.cpu_stat.tr_desc  #define CPU_TR_DESC     CPU_STATSAVE.cpu_stat.tr
 #define CPU_TR_BASE     CPU_STATSAVE.cpu_stat.tr_desc.u.seg.segbase  #define CPU_TR_BASE     CPU_STATSAVE.cpu_stat.tr.u.seg.segbase
 #define CPU_TR_END      CPU_STATSAVE.cpu_stat.tr_desc.u.seg.segend  #define CPU_TR_END      CPU_STATSAVE.cpu_stat.tr.u.seg.segend
 #define CPU_TR_LIMIT    CPU_STATSAVE.cpu_stat.tr_desc.u.seg.limit  #define CPU_TR_LIMIT    CPU_STATSAVE.cpu_stat.tr.u.seg.limit
   
 /*  /*
  * control register   * control register
Line 501  void set_eflags(DWORD new_flags, DWORD m Line 515  void set_eflags(DWORD new_flags, DWORD m
   
   
 void ia32_init(void);  void ia32_init(void);
   void ia32_initreg(void);
   void ia32_setextsize(UINT32 size);
   
 void ia32reset(void);  void ia32reset(void);
 void ia32shut(void);  void ia32shut(void);
Line 517  void exec_1step(void); Line 533  void exec_1step(void);
 #define INST_STRING     (1 << 1)  #define INST_STRING     (1 << 1)
 #define REP_CHECKZF     (1 << 7)  #define REP_CHECKZF     (1 << 7)
   
   int disasm(DWORD *eip, char *buf, size_t size);
   
 void ia32_printf(const char *buf, ...);  void ia32_printf(const char *buf, ...);
 void ia32_warning(const char *buf, ...);  void ia32_warning(const char *buf, ...);
 void ia32_panic(const char *buf, ...);  void ia32_panic(const char *buf, ...);
Line 527  void FASTCALL change_pm(BOOL onoff); Line 545  void FASTCALL change_pm(BOOL onoff);
 void FASTCALL change_vm(BOOL onoff);  void FASTCALL change_vm(BOOL onoff);
 void FASTCALL change_pg(BOOL onoff);  void FASTCALL change_pg(BOOL onoff);
   
 extern BYTE szpcflag[0x200];  extern const UINT8 iflags[];
   #define szpcflag        iflags
 extern BYTE szpflag_w[0x10000];  extern BYTE szpflag_w[0x10000];
   
 extern BYTE  *reg8_b20[0x100];  extern BYTE  *reg8_b20[0x100];

Removed from v.1.13  
changed lines
  Added in v.1.16


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