Diff for /np2/i386c/ia32/segments.c between versions 1.24 and 1.26

version 1.24, 2012/02/05 02:18:10 version 1.26, 2012/02/05 06:16:08
Line 27 Line 27
 #include "cpu.h"  #include "cpu.h"
 #include "ia32.mcr"  #include "ia32.mcr"
   
   static void CPUCALL segdesc_set_default(int, UINT16, descriptor_t *);
   
 void CPUCALL  void CPUCALL
 load_segreg(int idx, UINT16 selector, UINT16 *sregp, descriptor_t *sdp, int exc)  load_segreg(int idx, UINT16 selector, UINT16 *sregp, descriptor_t *sdp, int exc)
Line 42  load_segreg(int idx, UINT16 selector, UI Line 43  load_segreg(int idx, UINT16 selector, UI
                 /* real-mode or vm86 mode */                  /* real-mode or vm86 mode */
                 *sregp = selector;                  *sregp = selector;
                 segdesc_clear(&sel.desc);                  segdesc_clear(&sel.desc);
                 sel.desc.u.seg.limit = 0xffff;  
                 segdesc_set_default(idx, selector, &sel.desc);                  segdesc_set_default(idx, selector, &sel.desc);
                 *sdp = sel.desc;                  *sdp = sel.desc;
                 return;                  return;
Line 385  segdesc_init(int idx, UINT16 sreg, descr Line 385  segdesc_init(int idx, UINT16 sreg, descr
   
         CPU_REGS_SREG(idx) = sreg;          CPU_REGS_SREG(idx) = sreg;
         segdesc_clear(sdp);          segdesc_clear(sdp);
         sdp->u.seg.limit = 0xffff;  
         segdesc_set_default(idx, sreg, sdp);          segdesc_set_default(idx, sreg, sdp);
 }  }
   
 void CPUCALL  static void CPUCALL
 segdesc_set_default(int idx, UINT16 selector, descriptor_t *sdp)  segdesc_set_default(int idx, UINT16 selector, descriptor_t *sdp)
 {  {
   
Line 397  segdesc_set_default(int idx, UINT16 sele Line 396  segdesc_set_default(int idx, UINT16 sele
         __ASSERT((sdp != NULL));          __ASSERT((sdp != NULL));
   
         sdp->u.seg.segbase = (UINT32)selector << 4;          sdp->u.seg.segbase = (UINT32)selector << 4;
         /* sdp->u.seg.limit */          sdp->u.seg.limit = 0xffff;
         sdp->u.seg.c = (idx == CPU_CS_INDEX) ? 1 : 0;   /* code or data */          sdp->u.seg.c = (idx == CPU_CS_INDEX) ? 1 : 0;   /* code or data */
         sdp->u.seg.g = 0;       /* non 4k factor scale */          sdp->u.seg.g = 0;       /* non 4k factor scale */
         sdp->u.seg.wr = 1;      /* execute/read(CS) or read/write(others) */          sdp->u.seg.wr = 1;      /* execute/read(CS) or read/write(others) */

Removed from v.1.24  
changed lines
  Added in v.1.26


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