Diff for /np2/i286x/i286x.cpp between versions 1.15 and 1.18

version 1.15, 2004/01/10 17:24:01 version 1.18, 2004/01/29 00:27:29
Line 57  void i286x_initialize(void) { Line 57  void i286x_initialize(void) {
         v30xinit();          v30xinit();
 }  }
   
   void i286x_deinitialize(void) {
   
           if (CPU_EXTMEM) {
                   _MFREE(CPU_EXTMEM);
                   CPU_EXTMEM = NULL;
                   CPU_EXTMEMSIZE = 0;
           }
   }
   
 static void i286x_initreg(void) {  static void i286x_initreg(void) {
   
         I286_CS = 0xf000;          I286_CS = 0xf000;
Line 78  void i286x_shut(void) { Line 87  void i286x_shut(void) {
         i286x_initreg();          i286x_initreg();
 }  }
   
   void i286x_setextsize(UINT32 size) {
   
           if (CPU_EXTMEMSIZE != size) {
                   if (CPU_EXTMEM) {
                           _MFREE(CPU_EXTMEM);
                           CPU_EXTMEM = NULL;
                   }
                   if (size) {
                           CPU_EXTMEM = (BYTE *)_MALLOC(size + 16, "EXTMEM");
                           if (CPU_EXTMEM == NULL) {
                                   size = 0;
                           }
                   }
                   CPU_EXTMEMSIZE = size;
           }
           i286core.e.ems[0] = mem + 0xc0000;
           i286core.e.ems[1] = mem + 0xc4000;
           i286core.e.ems[2] = mem + 0xc8000;
           i286core.e.ems[3] = mem + 0xcc000;
   }
   
   void i286x_setemm(UINT frame, UINT32 addr) {
   
           BYTE    *ptr;
   
           frame &= 3;
           if (addr < USE_HIMEM) {
                   ptr = mem + addr;
           }
           else if ((addr - 0x100000 + 0x4000) <= CPU_EXTMEMSIZE) {
                   ptr = CPU_EXTMEM + (addr - 0x100000);
           }
           else {
                   ptr = mem + 0xc0000 + (frame << 14);
           }
           i286core.e.ems[frame] = ptr;
   }
   
   
 LABEL void i286x_resetprefetch(void) {  LABEL void i286x_resetprefetch(void) {
   
Line 2714  I286 _popf(void) {        // 9D: popf Line 2761  I286 _popf(void) {        // 9D: popf
                                 je              irqcheck                                // fast_intr                                  je              irqcheck                                // fast_intr
                                 test    ah, 2                                  test    ah, 2
                                 je              nextop                                  je              nextop
                                 cmp             pic.ext_irq, 0  
                                 jne             nextop  
                                 mov             al, pic.pi[0].imr                                  mov             al, pic.pi[0].imr
                                 mov             ah, pic.pi[1].imr                                  mov             ah, pic.pi[1].imr
                                 not             ax                                  not             ax
Line 3612  I286 _into(void) {        // CE: into Line 3657  I286 _into(void) {        // CE: into
 I286 _iret(void) {                                                              // CF: iret  I286 _iret(void) {                                                              // CF: iret
   
                 __asm {                  __asm {
                                 call    extirq_pop  
                                 I286CLOCK(31)                                  I286CLOCK(31)
                                 mov             edi, SS_BASE                                  mov             edi, SS_BASE
                                 movzx   ebx, I286_SP                                  movzx   ebx, I286_SP
Line 3642  I286 _iret(void) {        // CF: iret Line 3686  I286 _iret(void) {        // CF: iret
                                 jne             irqcheck                                  jne             irqcheck
                                 test    I286_FLAG, I_FLAG                                  test    I286_FLAG, I_FLAG
                                 je              nextop                                  je              nextop
                                 cmp             pic.ext_irq, 0  
                                 jne             nextop  
                                 mov             al, pic.pi[0].imr                                  mov             al, pic.pi[0].imr
                                 mov             ah, pic.pi[1].imr                                  mov             ah, pic.pi[1].imr
                                 not             ax                                  not             ax
Line 4226  I286 _sti(void) {        // FB: sti Line 4268  I286 _sti(void) {        // FB: sti
                                 setne   I286_TRAP                                  setne   I286_TRAP
   
                                 jne             nextopandexit                   // fast_intr                                  jne             nextopandexit                   // fast_intr
                                 cmp             pic.ext_irq, 0  
                                 jne             jmp_nextop  
                                 mov             al, pic.pi[0].imr                                  mov             al, pic.pi[0].imr
                                 mov             ah, pic.pi[1].imr                                  mov             ah, pic.pi[1].imr
                                 not             ax                                  not             ax

Removed from v.1.15  
changed lines
  Added in v.1.18


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