Diff for /np2/i286c/Attic/dmap.c between versions 1.1 and 1.5

version 1.1, 2003/10/16 17:57:49 version 1.5, 2003/12/12 01:04:40
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "memory.h"  #include        "cpucore.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "dmap.h"  #include        "dmap.h"
Line 36  void dmap_i286(void) { Line 36  void dmap_i286(void) {
                                                 ch->outproc(i286_memoryread(ch->adrs.d));                                                  ch->outproc(i286_memoryread(ch->adrs.d));
                                                 break;                                                  break;
                                 }                                  }
                                 ch->adrs.d += (((ch->mode) & 0x20)?-1:1);                                  ch->adrs.d += ((ch->mode & 0x20)?-1:1);
                           }
                           ch++;
                           bit <<= 1;
                   } while(bit & 0x0f);
           }
   }
   
   void dmap_v30(void) {
   
           DMACH   ch;
           int             bit;
   
           if (dmac.working) {
                   ch = dmac.dmach;
                   bit = 1;
                   do {
                           if (dmac.working & bit) {
                                   // DMA working !
                                   if (!ch->leng.w) {
                                           dmac.stat |= bit;
                                           dmac.working &= ~bit;
                                           ch->extproc(DMAEXT_END);
                                   }
                                   ch->leng.w--;
   
                                   switch(ch->mode & 0x0c) {
                                           case 0x00:              // verifty
                                                   ch->inproc();
                                                   break;
   
                                           case 0x04:              // port->mem
                                                   i286_memorywrite(ch->adrs.d, ch->inproc());
                                                   break;
   
                                           default:
                                                   ch->outproc(i286_memoryread(ch->adrs.d));
                                                   break;
                                   }
                                   ch->adrs.w[DMA16_LOW] += ((ch->mode & 0x20)?-1:1);
                         }                          }
                         ch++;                          ch++;
                         bit <<= 1;                          bit <<= 1;

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


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