Diff for /xmil/io/fdc.c between versions 1.1 and 1.3

version 1.1, 2004/08/02 13:38:46 version 1.3, 2004/08/09 04:47:53
Line 79  void IOOUTCALL fdc_o(UINT port, REG8 val Line 79  void IOOUTCALL fdc_o(UINT port, REG8 val
   
         REG8    cmd;          REG8    cmd;
   
           if ((port & (~7)) != 0x0ff8) {
                   return;
           }
         port &= 0xf;          port &= 0xf;
         if (port == 8) {                                                // コマンド          if (port == 8) {                                                // コマンド
                 driveset = 0;                  driveset = 0;
Line 165  void IOOUTCALL fdc_o(UINT port, REG8 val Line 168  void IOOUTCALL fdc_o(UINT port, REG8 val
                                 break;                                  break;
   
                         case 0xc:                                                               // リードアドレス                          case 0xc:                                                               // リードアドレス
                                 fdc.crc_off = 0;                                  fdc.s.bufpos = 0;
                                   fdc.s.bufsize = 0;
                                 fdcdummyread = 2;                                  fdcdummyread = 2;
                                 if (fdc.motor) {                                                                        // ver0.25                                  if (fdc.motor) {                                                                        // ver0.25
                                         if (dma.DMA_ENBL) {                                          if (dma.DMA_ENBL) {
Line 175  void IOOUTCALL fdc_o(UINT port, REG8 val Line 179  void IOOUTCALL fdc_o(UINT port, REG8 val
                                 {                                  {
                                         FDDFILE fdd = fddfile + fdc.drv;                                          FDDFILE fdd = fddfile + fdc.drv;
                                         switch(fdd->type) {                                          switch(fdd->type) {
                                                 case DISKTYPE_NOTREADY:  
                                                         break;  
   
                                                 case DISKTYPE_BETA:                                                  case DISKTYPE_BETA:
                                                         fdd_crc_2d();                                                          fdd2d_crc(fdd);
                                                         break;                                                          break;
   
                                                 case DISKTYPE_D88:                                                  case DISKTYPE_D88:
                                                 default:                                                  default:
                                                         fdd_crc_d88();                                                          fddd88_crc(fdd);
                                                         break;                                                          break;
                                         }                                          }
                                 }                                  }
Line 303  static short last_off; Line 304  static short last_off;
                 BYTE    ans;                  BYTE    ans;
                 REG8    cmd;                  REG8    cmd;
   
           if ((port & (~7)) != 0x0ff8) {
                   return(0xff);
           }
         cmd = (REG8)(fdc.cmd >> 4);          cmd = (REG8)(fdc.cmd >> 4);
   
         if ((port &= 0xf) != 8) {          if ((port &= 0xf) != 8) {
                 last_r = -1;                  last_r = -1;
                 last_off = -1;                  last_off = -1;
Line 379  static short last_off; Line 382  static short last_off;
                                         inc_off();                                          inc_off();
                                 }                                  }
                                 else if (cmd == 0x0c) {                 // リード・アドレス                                  else if (cmd == 0x0c) {                 // リード・アドレス
                                         if (fdc.crc_off < 6) {          // ver0.25                                          if (fdc.s.bufpos < 6) {
                                                 fdc.data = fdc.crc_dat[fdc.crc_off];                                                  fdc.data = fdc.s.buffer[fdc.s.bufpos];
                                                 if (fdcdummyread) {             // ver0.25                                                  if (fdcdummyread) {
                                                         fdcdummyread--;                                                          fdcdummyread--;
                                                 }                                                  }
                                                 else {                                                  else {
                                                         fdc.crc_off++;                                                          fdc.s.bufpos++;
                                                 }                                                  }
                                         }                                          }
                                 }                                  }
Line 401  static short last_off; Line 404  static short last_off;
 //                      break;  //                      break;
   
                 case 0xe:                                                               // 1.6M                  case 0xe:                                                               // 1.6M
                         fdc.media = 1;                          fdc.s.media = DISKTYPE_2HD;
                         return(0xff);                          return(0xff);
   
                 case 0xf:                                                               // 500K/1M                  case 0xf:                                                               // 500K/1M
                         fdc.media = 0;                          fdc.s.media = DISKTYPE_2D;
                         return(0xff);                          return(0xff);
         }          }
         return(0);          return(0);

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


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