Diff for /np2/io/cpuio.c between versions 1.5 and 1.11

version 1.5, 2003/12/08 06:24:03 version 1.11, 2004/03/25 10:41:13
Line 2 Line 2
 #include        "cpucore.h"  #include        "cpucore.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "sound.h"  
 #include        "fmboard.h"  
   
 // ¸å¤ÇÄ´À°  
 #if defined(CPUCORE_IA32)  
 DWORD cpumem_addrmask = 0xfffff;  
 #endif  
   
   
 // ---- I/O  // ---- I/O
   
 static void IOOUTCALL cpuio_of0(UINT port, REG8 dat) {  static void IOOUTCALL cpuio_of0(UINT port, REG8 dat) {
   
         CPU_ADRSMASK = 0x0fffff;  #if defined(TRACE)
 #if defined(CPUCORE_IA32)          if (CPU_MSW & 1) {
         cpumem_addrmask = 0xfffff;                  TRACEOUT(("80286 ProtectMode Disable"));
           }
 #endif  #endif
           epsonio.cpumode = (CPU_MSW & 1)?'P':'R';
           CPU_A20EN(FALSE);
         CPU_RESETREQ = 1;          CPU_RESETREQ = 1;
         CPU_INTERRUPT(0x02);  
         nevent_forceexit();          nevent_forceexit();
         (void)port;          (void)port;
         (void)dat;          (void)dat;
Line 28  static void IOOUTCALL cpuio_of0(UINT por Line 23  static void IOOUTCALL cpuio_of0(UINT por
   
 static void IOOUTCALL cpuio_of2(UINT port, REG8 dat) {  static void IOOUTCALL cpuio_of2(UINT port, REG8 dat) {
   
         CPU_ADRSMASK = 0x1fffff;          CPU_A20EN(TRUE);
 #if defined(CPUCORE_IA32)  
         cpumem_addrmask = 0xffffffff;  
 #endif  
         (void)port;          (void)port;
         (void)dat;          (void)dat;
 }  }
Line 40  static REG8 IOINPCALL cpuio_if0(UINT por Line 32  static REG8 IOINPCALL cpuio_if0(UINT por
   
         BYTE    ret;          BYTE    ret;
   
         if (!(usesound & 0x80)) {          if (!(pccore.sound & 0x80)) {
                 ret = 0x00;                  ret = 0x00;
         }          }
         else {                          // for AMD-98          else {                          // for AMD-98
Line 54  static REG8 IOINPCALL cpuio_if2(UINT por Line 46  static REG8 IOINPCALL cpuio_if2(UINT por
   
         REG8    ret;          REG8    ret;
   
 #if 1  
         ret = 0xff;          ret = 0xff;
         ret -= (REG8)((CPU_ADRSMASK >> 20) & 1);          ret -= (REG8)((CPU_ADRSMASK >> 20) & 1);
 #else  
         ret = 0xfe;  
         if (CPU_ADRSMASK != 0x1fffff) {  
                 ret++;  
         }  
 #endif  
         (void)port;          (void)port;
         return(ret);          return(ret);
 }  }
Line 73  static void IOOUTCALL cpuio_of6(UINT por Line 58  static void IOOUTCALL cpuio_of6(UINT por
   
         switch(dat) {          switch(dat) {
                 case 0x02:                  case 0x02:
                         CPU_ADRSMASK = 0x1fffff;                          CPU_A20EN(TRUE);
 #if defined(CPUCORE_IA32)  
                         cpumem_addrmask = 0xffffffff;  
 #endif  
                         break;                          break;
   
                 case 0x03:                  case 0x03:
                         CPU_ADRSMASK = 0x0fffff;                          CPU_A20EN(FALSE);
 #if defined(CPUCORE_IA32)  
                         cpumem_addrmask = 0xfffff;  
 #endif  
                         break;                          break;
         }          }
         (void)port;          (void)port;
Line 94  static REG8 IOINPCALL cpuio_if6(UINT por Line 73  static REG8 IOINPCALL cpuio_if6(UINT por
         REG8    ret;          REG8    ret;
   
         ret = 0x00;          ret = 0x00;
         if (CPU_ADRSMASK != 0x1fffff) {          if (!(CPU_ADRSMASK & (1 << 20))) {
                 ret |= 0x01;                  ret |= 0x01;
         }          }
         if (nmiio.enable) {          if (nmiio.enable) {

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


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