Diff for /np2/i286c/i286c_0f.c between versions 1.7 and 1.9

version 1.7, 2003/11/24 09:14:01 version 1.9, 2003/11/29 00:36:00
Line 8 Line 8
 I286_0F _sgdt(UINT op) {  I286_0F _sgdt(UINT op) {
   
         UINT32  seg;          UINT32  seg;
         UINT16  ad;          UINT    ad;
   
         I286_WORKCLOCK(11);          I286_WORKCLOCK(11);
         if (op < 0xc0) {          if (op < 0xc0) {
                 ad = GET_EA(op, &seg);                  ad = GET_EA(op, &seg);
                 i286_memorywrite_w(seg + ad, i286reg.GDTR.limit);                  i286_memorywrite_w(seg + ad, i286reg.GDTR.limit);
                 ad += 2;                  i286_memorywrite_w(seg + LOW16(ad + 2), i286reg.GDTR.base);
                 i286_memorywrite_w(seg + ad, i286reg.GDTR.base);                  i286_memorywrite_w(seg + LOW16(ad + 4),
                 ad += 2;                                                                          (REG16)(0xff00 + i286reg.GDTR.base24));
                 i286_memorywrite_w(seg + ad,  
                                                                         (UINT16)(0xff00 + i286reg.GDTR.base24));  
         }          }
         else {          else {
                 INT_NUM(6, I286_IP - 2);                  INT_NUM(6, I286_IP - 2);
Line 28  I286_0F _sgdt(UINT op) { Line 26  I286_0F _sgdt(UINT op) {
 I286_0F _sidt(UINT op) {  I286_0F _sidt(UINT op) {
   
         UINT32  seg;          UINT32  seg;
         UINT16  ad;          UINT    ad;
   
         I286_WORKCLOCK(12);          I286_WORKCLOCK(12);
         if (op < 0xc0) {          if (op < 0xc0) {
                 ad = GET_EA(op, &seg);                  ad = GET_EA(op, &seg);
                 i286_memorywrite_w(seg + ad, i286reg.IDTR.limit);                  i286_memorywrite_w(seg + ad, i286reg.IDTR.limit);
                 ad += 2;                  i286_memorywrite_w(seg + LOW16(ad + 2), i286reg.IDTR.base);
                 i286_memorywrite_w(seg + ad, i286reg.IDTR.base);                  i286_memorywrite_w(seg + LOW16(ad + 4),
                 ad += 2;                                                                          (REG16)(0xff00 + i286reg.IDTR.base24));
                 i286_memorywrite_w(seg + ad,  
                                                                         (UINT16)(0xff00 + i286reg.IDTR.base24));  
         }          }
         else {          else {
                 INT_NUM(6, I286_IP - 2);                  INT_NUM(6, I286_IP - 2);
Line 48  I286_0F _sidt(UINT op) { Line 44  I286_0F _sidt(UINT op) {
 I286_0F _lgdt(UINT op) {  I286_0F _lgdt(UINT op) {
   
         UINT32  seg;          UINT32  seg;
         UINT16  ad;          UINT    ad;
   
         I286_WORKCLOCK(11);          I286_WORKCLOCK(11);
         if (op < 0xc0) {          if (op < 0xc0) {
                 ad = GET_EA(op, &seg);                  ad = GET_EA(op, &seg);
                 i286reg.GDTR.limit = i286_memoryread_w(seg + ad);                  i286reg.GDTR.limit = i286_memoryread_w(seg + ad);
                 ad += 2;                  i286reg.GDTR.base = i286_memoryread_w(seg + LOW16(ad + 2));
                 i286reg.GDTR.base = i286_memoryread_w(seg + ad);                  i286reg.GDTR.base24 = i286_memoryread(seg + LOW16(ad + 4));
                 ad += 2;                  i286reg.GDTR.reserved = i286_memoryread(seg + LOW16(ad + 5));
                 i286reg.GDTR.base24 = i286_memoryread(seg + ad);  
                 ad++;  
                 i286reg.GDTR.reserved = i286_memoryread(seg + ad);  
         }          }
         else {          else {
                 INT_NUM(6, I286_IP - 2);                  INT_NUM(6, I286_IP - 2);
Line 69  I286_0F _lgdt(UINT op) { Line 62  I286_0F _lgdt(UINT op) {
 I286_0F _lidt(UINT op) {  I286_0F _lidt(UINT op) {
   
         UINT32  seg;          UINT32  seg;
         UINT16  ad;          UINT    ad;
   
         I286_WORKCLOCK(11);          I286_WORKCLOCK(11);
         if (op < 0xc0) {          if (op < 0xc0) {
                 ad = GET_EA(op, &seg);                  ad = GET_EA(op, &seg);
                 i286reg.IDTR.limit = i286_memoryread_w(seg + ad);                  i286reg.IDTR.limit = i286_memoryread_w(seg + ad);
                 ad += 2;                  i286reg.IDTR.base = i286_memoryread_w(seg + LOW16(ad + 2));
                 i286reg.IDTR.base = i286_memoryread_w(seg + ad);                  i286reg.IDTR.base24 = i286_memoryread(seg + LOW16(ad + 4));
                 ad += 2;                  i286reg.IDTR.reserved = i286_memoryread(seg + LOW16(ad + 5));
                 i286reg.IDTR.base24 = i286_memoryread(seg + ad);  
                 ad++;  
                 i286reg.IDTR.reserved = i286_memoryread(seg + ad);  
         }          }
         else {          else {
                 INT_NUM(6, I286_IP - 2);                  INT_NUM(6, I286_IP - 2);

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


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