Diff for /np2/io/dmac.c between versions 1.8 and 1.9

version 1.8, 2004/01/29 09:41:50 version 1.9, 2004/03/06 18:25:36
Line 84  static void IOOUTCALL dmac_o01(UINT port Line 84  static void IOOUTCALL dmac_o01(UINT port
   
         dmach = dmac.dmach + ((port >> 2) & 3);          dmach = dmac.dmach + ((port >> 2) & 3);
         lh = dmac.lh;          lh = dmac.lh;
         dmac.lh = lh ^ 1;          dmac.lh = (UINT8)(lh ^ 1);
         dmach->adrs.b[lh + DMA32_LOW] = dat;          dmach->adrs.b[lh + DMA32_LOW] = dat;
         dmach->adrsorg.b[lh] = dat;          dmach->adrsorg.b[lh] = dat;
 }  }
Line 154  static void IOOUTCALL dmac_o21(UINT port Line 154  static void IOOUTCALL dmac_o21(UINT port
         DMACH   dmach;          DMACH   dmach;
   
         dmach = dmac.dmach + (((port >> 1) + 1) & 3);          dmach = dmac.dmach + (((port >> 1) + 1) & 3);
   #if defined(CPUCORE_IA32)
           dmach->adrs.b[DMA32_HIGH + DMA16_LOW] = dat;
   #else
           // IA16では ver0.75で無効、ver0.76で修正
         dmach->adrs.b[DMA32_HIGH + DMA16_LOW] = dat & 0x0f;          dmach->adrs.b[DMA32_HIGH + DMA16_LOW] = dat & 0x0f;
   #endif
   }
   
   static void IOOUTCALL dmac_o29(UINT port, REG8 dat) {
   
           DMACH   dmach;
   
           dmach = dmac.dmach + (dat & 3);
           dmach->bound = dat;
           (void)port;
 }  }
   
 static REG8 IOINPCALL dmac_i01(UINT port) {  static REG8 IOINPCALL dmac_i01(UINT port) {
Line 200  static const IOINP dmaci00[16] = { Line 214  static const IOINP dmaci00[16] = {
                                         dmac_i11,       NULL,           NULL,           NULL,                                          dmac_i11,       NULL,           NULL,           NULL,
                                         NULL,           NULL,           NULL,           NULL};                                          NULL,           NULL,           NULL,           NULL};
   
 static const IOOUT dmaco21[4] = {  static const IOOUT dmaco21[8] = {
                                         dmac_o21,       dmac_o21,       dmac_o21,       dmac_o21};                                          dmac_o21,       dmac_o21,       dmac_o21,       dmac_o21,
                                           dmac_o29,       NULL,           NULL,           NULL};
   
 void dmac_reset(void) {  void dmac_reset(void) {
   
Line 216  void dmac_bind(void) { Line 231  void dmac_bind(void) {
   
         iocore_attachsysoutex(0x0001, 0x0ce1, dmaco00, 16);          iocore_attachsysoutex(0x0001, 0x0ce1, dmaco00, 16);
         iocore_attachsysinpex(0x0001, 0x0ce1, dmaci00, 16);          iocore_attachsysinpex(0x0001, 0x0ce1, dmaci00, 16);
         iocore_attachsysoutex(0x0021, 0x0cf1, dmaco21, 4);          iocore_attachsysoutex(0x0021, 0x0cf1, dmaco21, 8);
 }  }
   
   
Line 240  static void dmacset(REG8 channel) { Line 255  static void dmacset(REG8 channel) {
         if (dmadev >= sizeof(dmaproc) / sizeof(DMAPROC)) {          if (dmadev >= sizeof(dmaproc) / sizeof(DMAPROC)) {
                 dmadev = 0;                  dmadev = 0;
         }          }
         TRACEOUT(("dmac set %d - %d", channel, dmadev));  //      TRACEOUT(("dmac set %d - %d", channel, dmadev));
         dmac.dmach[channel].proc = dmaproc[dmadev];          dmac.dmach[channel].proc = dmaproc[dmadev];
 }  }
   

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


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