Diff for /xmil/io/fdc.c between versions 1.14 and 1.15

version 1.14, 2004/08/13 02:16:33 version 1.15, 2004/08/14 12:16:17
Line 29  static void setbusy(SINT32 clock) { Line 29  static void setbusy(SINT32 clock) {
                 fdc.s.busy = TRUE;                  fdc.s.busy = TRUE;
                 nevent_set(NEVENT_FDC, clock, neitem_fdcbusy, NEVENT_ABSOLUTE);                  nevent_set(NEVENT_FDC, clock, neitem_fdcbusy, NEVENT_ABSOLUTE);
         }          }
           else {
                   fdc.s.busy = FALSE;
                   nevent_reset(NEVENT_FDC);
           }
 }  }
   
 static void setmotor(REG8 drvcmd) {  static void setmotor(REG8 drvcmd) {
Line 240  static REG8 crccmd(void) { Line 244  static REG8 crccmd(void) {
   
         track = (fdc.s.c << 1) + fdc.s.h;          track = (fdc.s.c << 1) + fdc.s.h;
         fdd = fddfile + fdc.s.drv;          fdd = fddfile + fdc.s.drv;
   TRACEOUT(("fdd->crc %d %d %d", fdc.s.drv, track, fdc.s.crcnum));
         stat = fdd->crc(fdd, fdc.s.media, track, fdc.s.crcnum, fdc.s.buffer);          stat = fdd->crc(fdd, fdc.s.media, track, fdc.s.crcnum, fdc.s.buffer);
         if (stat & FDDSTAT_RECNFND) {          if (stat & FDDSTAT_RECNFND) {
                 fdc.s.crcnum = 0;                  fdc.s.crcnum = 0;
Line 249  static REG8 crccmd(void) { Line 254  static REG8 crccmd(void) {
                 fdc.s.bufdir = FDCDIR_IN;                  fdc.s.bufdir = FDCDIR_IN;
                 fdc.s.bufsize = 6;                  fdc.s.bufsize = 6;
                 fdc.s.rreg = fdc.s.buffer[0];                  fdc.s.rreg = fdc.s.buffer[0];
                   fdc.s.crcnum++;
         }          }
         else {          else {
                 fdc.s.bufdir = FDCDIR_NONE;                  fdc.s.bufdir = FDCDIR_NONE;
Line 322  void IOOUTCALL fdc_o(UINT port, REG8 val Line 328  void IOOUTCALL fdc_o(UINT port, REG8 val
                         setbusy(20);                          setbusy(20);
                         switch(cmd) {                          switch(cmd) {
                                 case 0x00:                                                              // リストア                                  case 0x00:                                                              // リストア
                                 //      if (value & 8) {                                        // LAYDOCK  
                                 //              setbusy(0);  
                                 //      }  
                                         fdc.s.motor = 0x80;                                     // モーターOn?                                          fdc.s.motor = 0x80;                                     // モーターOn?
                                         fdc.s.c = 0;                                          fdc.s.c = 0;
                                         fdc.s.step = 1;                                          fdc.s.step = 1;
Line 387  void IOOUTCALL fdc_o(UINT port, REG8 val Line 390  void IOOUTCALL fdc_o(UINT port, REG8 val
                                 case 0x0d:                                                              // フォースインタラプト                                  case 0x0d:                                                              // フォースインタラプト
                                         setbusy(0);                                                     // 必要ない?                                          setbusy(0);                                                     // 必要ない?
 //                                      fdc.s.skip = 0;                                         // 000330  //                                      fdc.s.skip = 0;                                         // 000330
                                           fdc.s.stat = 0;
                                         dmac_sendready(FALSE);                                          dmac_sendready(FALSE);
                                         break;                                          break;
   
Line 469  REG8 IOINPCALL fdc_i(UINT port) { Line 473  REG8 IOINPCALL fdc_i(UINT port) {
                         if (!(ret & 0x02)) {                          if (!(ret & 0x02)) {
                                 dmac_sendready(FALSE);                                  dmac_sendready(FALSE);
                         }                          }
 //                      TRACEOUT(("ret->%.2x", ret));                          TRACEOUT(("ret->%.2x", ret));
                         return(ret);                          return(ret);
   
                 case 1:                                                                 // トラック                  case 1:                                                                 // トラック
Line 482  REG8 IOINPCALL fdc_i(UINT port) { Line 486  REG8 IOINPCALL fdc_i(UINT port) {
                         if (fdc.s.motor) {                          if (fdc.s.motor) {
                                 if (fdc.s.bufdir == FDCDIR_IN) {                                  if (fdc.s.bufdir == FDCDIR_IN) {
                                         fdc.s.data = fdc.s.buffer[fdc.s.bufpos];                                          fdc.s.data = fdc.s.buffer[fdc.s.bufpos];
 // TRACEOUT(("read %.2x %.2x [%.4x]", fdc.s.data, fdc.s.bufpos, Z80_PC));  TRACEOUT(("read %.2x - %.2x [%.4x]", fdc.s.bufpos, fdc.s.data, Z80_PC));
                                         bufposinc();                                          bufposinc();
                                 }                                  }
                         }                          }

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


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